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'
6
7task :enqueue_user do
8 unless ENV['DID']
9 raise "Required DID parameter missing"
10 end
11
12 user = User.find_or_create_by!(did: ENV['DID'])
13
14 if user.import_job
15 puts "Import for #{user.did} is already scheduled."
16 elsif user.active?
17 puts "Import for #{user.did} has already started."
18 else
19 user.create_import_job!
20 puts "Import for #{user.did} scheduled ✓"
21 end
22end
23
24task :import_user do
25 unless ENV['DID']
26 raise "Required DID parameter missing"
27 end
28
29 user = User.find_or_create_by!(did: ENV['DID'])
30
31 unless ENV['COLLECTION']
32 raise "Required COLLECTION parameter missing"
33 end
34
35 import = ImportManager.new(user)
36 import.report = ConsoleReport.new
37 import.time_limit = ENV['UNTIL']
38
39 trap("SIGINT") {
40 puts "\n\n\n\n\n"
41 exit
42 }
43
44 import.start(ENV['COLLECTION'])
45
46 puts "\n\n\n\n\n"
47end
48
49task :process_posts do
50 queue = ItemQueue.new(
51 [Like, Repost, Quote, Pin].map { |x| x.pending.to_a }.reduce(&:+)
52 )
53
54 report = ConsoleReport.new
55
56 trap("SIGINT") {
57 puts "\n\n\n\n\n"
58 exit
59 }
60
61 downloader = PostDownloader.new
62 downloader.report = report
63 downloader.stop_when_empty = true
64 downloader.import_from_queue(queue)
65
66 puts "\n\n\n\n\n"
67end