Template of a custom feed generator service for the Bluesky network in Ruby
1#!/usr/bin/env ruby 2 3require 'bundler/setup' 4require_relative 'app/firehose_stream' 5 6ActiveRecord::Base.logger = nil 7 8def print_help 9 puts "Usage: #{$0} [options...]" 10 puts "Options:" 11 puts 12 puts " * Showing progress: [default: show in development]" 13 puts " -p = show progress dots for each received message" 14 puts " -np = don't show progress dots" 15 puts 16 puts " * Logging status changes: [default: log in any mode]" 17 puts " -ns = don't log status changes" 18 puts 19 puts " * Logging post text: [default: -lm in development, -nl in production]" 20 puts " -lm = log text of matching posts" 21 puts " -la = log text of every post" 22 puts " -nl = don't log posts" 23 puts 24 puts " * Saving posts to db: [default: -da in development, -dm in production]" 25 puts " -da = save all posts to database" 26 puts " -dm = save only matching posts to database" 27 puts " -nd = don't save any posts" 28end 29 30firehose = FirehoseStream.new 31 32ARGV.each do |arg| 33 case arg 34 when '-p' 35 firehose.show_progress = true 36 when '-np' 37 firehose.show_progress = false 38 when '-ns' 39 firehose.log_status = false 40 when '-lm' 41 firehose.log_posts = :matching 42 when '-la' 43 firehose.log_posts = :all 44 when '-nl' 45 firehose.log_posts = false 46 when '-dm' 47 firehose.save_posts = :matching 48 when '-da' 49 firehose.save_posts = :all 50 when '-nd' 51 firehose.save_posts = false 52 when '-h', '--help' 53 print_help 54 exit 0 55 else 56 puts "Unrecognized option: #{arg}" 57 print_help 58 exit 1 59 end 60end 61 62firehose.start 63sleep