Don't forget to lycansubscribe

fetch user's registration time on import start

+12
app/import_worker.rb
··· 1 1 require 'active_record' 2 + require 'minisky' 3 + require 'time' 2 4 3 5 require_relative 'init' 4 6 require_relative 'import_manager' ··· 22 24 end 23 25 24 26 def run(collections) 27 + if @user.registered_at.nil? 28 + registration_time = get_registration_time(@user) 29 + @user.update!(registered_at: registration_time) 30 + end 31 + 25 32 import = ImportManager.new(@user) 26 33 import.report = BasicReport.new if @verbose 27 34 import.start(collections) 35 + end 36 + 37 + def get_registration_time(user) 38 + profile = Minisky.new('public.api.bsky.app', nil).get_request('app.bsky.actor.getProfile', { actor: user.did }) 39 + Time.parse(profile['createdAt']) 28 40 end 29 41 end 30 42
+5
db/migrate/20250923180153_add_user_created_at.rb
··· 1 + class AddUserCreatedAt < ActiveRecord::Migration[7.2] 2 + def change 3 + add_column :users, :registered_at, :datetime, null: true 4 + end 5 + end
+2 -1
db/schema.rb
··· 10 10 # 11 11 # It's strongly recommended that you check this file into your version control system. 12 12 13 - ActiveRecord::Schema[7.2].define(version: 2025_09_23_014702) do 13 + ActiveRecord::Schema[7.2].define(version: 2025_09_23_180153) do 14 14 # These are extensions that must be enabled in order to support this database 15 15 enable_extension "plpgsql" 16 16 ··· 91 91 92 92 create_table "users", id: :serial, force: :cascade do |t| 93 93 t.string "did", limit: 260, null: false 94 + t.datetime "registered_at" 94 95 t.index ["did"], name: "index_users_on_did", unique: true 95 96 end 96 97 end