Template of a custom feed generator service for the Bluesky network in Ruby
1require 'json' 2require 'rainbow' 3 4class PostConsolePrinter 5 def initialize(feed) 6 @feed = feed 7 Rainbow.enabled = true 8 end 9 10 def display(post) 11 print Rainbow(post.time).bold + ' * ' + Rainbow(post.id).bold + ' * ' 12 13 langs = post.record['langs'] 14 if langs.nil? 15 print '[nil] * ' 16 elsif langs != ['en'] 17 label = langs.map { |ln| ln.upcase.tr('A-Z', "\u{1F1E6}-\u{1F1FF}") }.join 18 print "#{label} * " 19 end 20 21 puts Rainbow("https://bsky.app/profile/#{post.repo}/post/#{post.rkey}").darkgray 22 puts 23 puts @feed.colored_text(post.text) 24 if post.record['embed'] 25 json = JSON.generate(post.record['embed']) 26 colored = @feed.colored_text(json) 27 puts colored unless colored == json 28 end 29 puts 30 puts "---" 31 puts 32 end 33end