+12
app/import_worker.rb
+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
+5
db/migrate/20250923180153_add_user_created_at.rb
+2
-1
db/schema.rb
+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