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 print "[#{langs.join(', ')}] * "
18 end
19
20 puts Rainbow("https://bsky.app/profile/#{post.repo}/post/#{post.rkey}").darkgray
21 puts
22 puts @feed.colored_text(post.text)
23 if post.record['embed']
24 json = JSON.generate(post.record['embed'])
25 colored = @feed.colored_text(json)
26 puts colored unless colored == json
27 end
28 puts
29 puts "---"
30 puts
31 end
32end