+19
-8
lib/tasks/feeds.rake
+19
-8
lib/tasks/feeds.rake
···
136
136
end
137
137
138
138
def rescan_feed_items(feed, dry = false)
139
-
feed_posts = FeedPost.where(feed_id: feed.feed_id).includes(:post).to_a
139
+
feed_posts = FeedPost.where(feed_id: feed.feed_id).includes(:post).order('time DESC').to_a
140
140
total = feed_posts.length
141
141
142
142
puts "Processing posts..."
143
143
144
-
deleted = 0
144
+
deleted = []
145
145
146
146
feed_posts.each do |fp|
147
147
if !feed.post_matches?(fp.post)
148
-
if dry
149
-
puts "Post would be deleted: ##{fp.post.id} \"#{fp.post.text}\""
150
-
else
148
+
if !dry
151
149
puts "Deleting from feed: ##{fp.post.id} \"#{fp.post.text}\""
152
150
fp.destroy
153
151
end
154
-
deleted += 1
152
+
153
+
deleted << fp.post
155
154
end
156
155
end
157
156
158
157
if dry
159
-
puts "#{deleted} post(s) would be deleted."
158
+
Signal.trap("SIGPIPE", "SYSTEM_DEFAULT")
159
+
printer = PostConsolePrinter.new(feed)
160
+
161
+
puts
162
+
puts Rainbow("Posts to delete:").red
163
+
puts Rainbow("==============================").red
164
+
puts
165
+
166
+
deleted.each do |p|
167
+
printer.display(p)
168
+
end
169
+
170
+
puts Rainbow("#{deleted.length} post(s) would be deleted.").red
160
171
else
161
-
puts "Done (#{deleted} post(s) deleted)."
172
+
puts "Done (#{deleted.length} post(s) deleted)."
162
173
end
163
174
end
164
175