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

added a task to delete an item from a feed

Changed files
+31
+31
Rakefile
··· 5 5 require 'sinatra/activerecord/rake' 6 6 7 7 require_relative 'app/config' 8 + require_relative 'app/utils' 8 9 9 10 def get_feed 10 11 if ENV['KEY'].to_s == '' ··· 48 49 puts 49 50 puts "---" 50 51 puts 52 + end 53 + end 54 + 55 + desc "Remove a single post from a feed" 56 + task :delete_feed_item do 57 + feed = get_feed 58 + 59 + if ENV['URL'].to_s == '' 60 + puts "Please specify post url as URL=https://bsky.app/..." 61 + exit 1 62 + end 63 + 64 + url = ENV['URL'] 65 + parts = url.gsub(/^https:\/\//, '').split('/') 66 + author = parts[2] 67 + rkey = parts[4] 68 + 69 + if author.start_with?('did:') 70 + did = author 71 + handle = Utils.handle_from_did(did) 72 + else 73 + handle = author 74 + did = Utils.did_from_handle(handle) 75 + end 76 + 77 + if item = FeedPost.joins(:post).find_by(feed_id: feed.feed_id, post: { repo: did, rkey: rkey }) 78 + item.destroy 79 + puts "Deleted post by @#{handle} from #{feed.display_name} feed" 80 + else 81 + puts "Post not found in the feed" 51 82 end 52 83 end 53 84