Skip to content

Instantly share code, notes, and snippets.

View mackuba's full-sized avatar
Playing with Bluesky API

Kuba Suder mackuba

Playing with Bluesky API
View GitHub Profile
mackuba / delete_list_items.rb
Created July 4, 2024 14:14
Script for deleting all items from a list (even if the list itself was deleted)
#!/usr/bin/env ruby
# to install minisky: `gem install minisky`
require 'minisky'
list_id = ARGV[0]
if list_id.nil?
puts "Usage: #{$PROGRAM_NAME} <list_rkey>"
mackuba / munin-cgi.service
Created June 4, 2024 23:06
Munin CGI configuration to allow zooming in charts
Description=Munin graph CGI
ExecStart=/usr/bin/spawn-fcgi -n -s /var/run/munin/fastcgi-graph.sock -u www-data /usr/lib/munin/cgi/munin-cgi-graph
mackuba / joes_bridgy.rb
Created May 22, 2024 21:53
Find Joe's follows who opted in to Bridgy
#!/usr/bin/env ruby
## gem install minisky
require 'minisky'
sky ='', nil, progress: '.')
joe_follows = sky.fetch_all('app.bsky.graph.getFollows', { actor: '', limit: 100 }, field: 'follows')
ap_followers = sky.fetch_all('app.bsky.graph.getFollowers', { actor: '', limit: 100 }, field: 'followers')
mackuba / bluesky_events
Last active January 28, 2024 22:09
Munin configuration files
if [ "$1" = "config" ]; then
echo "graph_title Bluesky firehose events"
echo "graph_category bluesky"
echo "graph_vlabel Events per second"
echo "graph_args --base 1000 -l 0"
echo "events.label Events"
echo "events.type DERIVE"
echo "events.min 0"
mackuba / firehose.rake
Created January 4, 2024 15:46
Downloading bsky firehose events to a file and streaming them from a mock server
require 'skyfall'
desc "Download a part of the firehose cache to a file"
task :fetch do
current_head = nil
sky =['FIREHOSE'] || '', :subscribe_repos)
sky.on_message do |m|
mackuba / proper_way.rb
Created November 11, 2023 23:45
Bluesky login with federation
# "proper" way, more future- and federation-proof
handle = form.get('handle')
password = form.get('password')
if dns_record = lookup_dns("_atproto.#{handle}")
did = did_from_dns(dns_record)
elsif res = open_url("https://#{handle}/.well-known/atproto-did")
did = did_from_well_known(res)
mackuba / bsky-hashtags.json
Last active June 14, 2024 20:56
Statistics of most popular hashtags on Bluesky in the last 30 days (2.6% of all posts include a hashtag)
"#art": 31687,
"#furryart": 21517,
"#furry": 20375,
"#nsfw": 12831,
"#1": 4572,
"#ListenToBlackVoices": 4341,
"#fursuit": 3950,
"#FogosPT": 3921,
"#ttrpg": 3378,
mackuba / bluesky_loader.rb
Last active July 3, 2023 23:01
Ruby script which loads posts from your Bluesky home feed and saves them to a local file
#!/usr/bin/env ruby
# Created by Kuba Suder on 25/04/2023
# Licensed under WTFPL License
require 'json'
require 'net/http'
require 'open-uri'
require 'set'
require 'time'
mackuba / Bluesky.swift
Created April 24, 2023 14:58
Basic Swift code to log in and send a post to Bluesky
// Bluesky.swift
// Created by Kuba Suder on 24/04/2023.
// Licensed under WTFPL License
import Foundation
struct LoginData: Encodable {
let identifier: String
mackuba / core_data_wwdc.json
Last active May 5, 2024 16:03
List of all WWDC talks about Core Data since 2010
"id": "wwdc2010-118",
"title": "Mastering Core Data",
"description": "Core Data contains a vast set of advanced features to help you better manage your data and evolve your application over time. Master the techniques for working with data in your application, from being more efficient to doing more in the database and changing how you store your data over time. Take your Core Data knowledge to the next level.",
"links": [