Don't forget to lycansubscribe
at master 69 lines 1.5 kB view raw
1require_relative '../../app/import_manager' 2require_relative '../../app/item_queue' 3require_relative '../../app/models/user' 4require_relative '../../app/post_downloader' 5require_relative '../../app/reports/console_report' 6require_relative '../../app/reports/simple_logger' 7 8task :enqueue_user do 9 unless ENV['DID'] 10 raise "Required DID parameter missing" 11 end 12 13 user = User.find_or_create_by!(did: ENV['DID']) 14 15 if user.import_job 16 puts "Import for #{user.did} is already scheduled." 17 elsif user.active? 18 puts "Import for #{user.did} has already started." 19 else 20 user.create_import_job! 21 puts "Import for #{user.did} scheduled ✓" 22 end 23end 24 25task :import_user do 26 unless ENV['DID'] 27 raise "Required DID parameter missing" 28 end 29 30 user = User.find_or_create_by!(did: ENV['DID']) 31 32 unless ENV['COLLECTION'] 33 raise "Required COLLECTION parameter missing" 34 end 35 36 import = ImportManager.new(user) 37 import.report = ConsoleReport.new 38 import.logger = SimpleLogger.new 39 import.time_limit = ENV['UNTIL'] 40 41 trap("SIGINT") { 42 puts "\n\n\n\n\n" 43 exit 44 } 45 46 import.start(ENV['COLLECTION']) 47 48 puts "\n\n\n\n\n" 49end 50 51task :process_posts do 52 queue = ItemQueue.new( 53 [Like, Repost, Quote, Pin].map { |x| x.pending.to_a }.reduce(&:+) 54 ) 55 56 report = ConsoleReport.new 57 58 trap("SIGINT") { 59 puts "\n\n\n\n\n" 60 exit 61 } 62 63 downloader = PostDownloader.new 64 downloader.report = report 65 downloader.stop_when_empty = true 66 downloader.import_from_queue(queue) 67 68 puts "\n\n\n\n\n" 69end