|
- namespace :nico do
- desc 'ニコニコ DB 逆連携'
- task export: :environment do
- require 'open3'
-
- mysql_user = ENV.fetch('MYSQL_USER')
- mysql_pass = ENV.fetch('MYSQL_PASS')
- nizika_nico_path = ENV.fetch('NIZIKA_NICO_PATH')
-
- videos = Post.where('url LIKE ?', '%nicovideo.jp/watch/%').pluck(:url).filter_map {
- _1[%r{nicovideo\.jp/watch/([^/?#]+)}, 1]
- }.uniq
-
- next if videos.empty?
-
- _, stderr, status = Open3.capture3(
- { 'MYSQL_USER' => mysql_user, 'MYSQL_PASS' => mysql_pass },
- 'python3', '-m', 'tracked_videos.put_bulk_upsert', *videos,
- chdir: nizika_nico_path)
-
- raise stderr unless status.success?
- end
- end
|