Template of a custom feed generator service for the Bluesky network in Ruby

nicer formatting for feed posts to delete in dry_run mode

Changed files
+19 -8
lib
tasks
+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