+13
-8
app/post_downloader.rb
+13
-8
app/post_downloader.rb
···
9
9
10
10
def initialize
11
11
@sky = Minisky.new(ENV['APPVIEW'] || 'public.api.bsky.app', nil)
12
+
13
+
@total_count = 0
14
+
@oldest_imported = Time.now
12
15
end
13
16
14
17
def import_from_queue(queue)
15
-
count = 0
16
-
oldest = Time.now
17
-
18
18
loop do
19
19
likes = queue.pop_batch
20
20
···
38
38
likes.delete(like)
39
39
40
40
post = save_post(data['uri'], data['record'])
41
-
like.update!(post: post, post_uri: nil)
42
-
count += 1
43
-
oldest = [oldest, like.time].min
44
-
45
-
@report&.update(downloader: { downloaded_posts: count, oldest_date: oldest })
41
+
update_like(like, post)
46
42
rescue StandardError => e
47
43
puts "Error in PostDownloader: #{like.post_uri}: #{e}"
48
44
end
···
68
64
text: text,
69
65
data: JSON.generate(record)
70
66
)
67
+
end
68
+
69
+
def update_like(like, post)
70
+
like.update!(post: post, post_uri: nil)
71
+
72
+
@total_count += 1
73
+
@oldest_imported = [@oldest_imported, like.time].min
74
+
75
+
@report&.update(downloader: { downloaded_posts: @total_count, oldest_date: @oldest_imported })
71
76
end
72
77
end