Don't forget to lycansubscribe
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