bsky fixes, ib missing post enqueuer
This commit is contained in:
@@ -16,24 +16,29 @@ module BlueskyRakeHelpers
|
||||
end
|
||||
|
||||
sig do
|
||||
params(handle: T.nilable(String), did: T.nilable(String)).returns(
|
||||
params(handle_or_did: T.nilable(String)).returns(
|
||||
T.nilable(Domain::User::BlueskyUser),
|
||||
)
|
||||
end
|
||||
def self.user_from_env(handle: nil, did: nil)
|
||||
if handle
|
||||
def self.find_bsky_user(handle_or_did)
|
||||
return nil if handle_or_did.blank?
|
||||
if handle_or_did.starts_with?("did:")
|
||||
did = handle_or_did
|
||||
Domain::User::BlueskyUser.find_by(did:) ||
|
||||
begin
|
||||
handle = resolve_handle(did)
|
||||
return nil if handle.blank?
|
||||
Domain::User::BlueskyUser.create!(did:, handle:)
|
||||
end
|
||||
else
|
||||
Domain::User::BlueskyUser.find_by(handle:) ||
|
||||
begin
|
||||
did = self.resolve_did(handle)
|
||||
did = self.resolve_did(handle_or_did)
|
||||
return nil if did.blank?
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = handle
|
||||
user.handle = handle_or_did
|
||||
end
|
||||
end
|
||||
elsif did
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = resolve_handle(did)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -53,8 +58,7 @@ namespace :bluesky do
|
||||
Domain::Bluesky::MonitoredObject.build_for_hashtag(hashtag).save!
|
||||
puts "Added hashtag: ##{hashtag}"
|
||||
elsif ENV["handle"] || ENV["did"]
|
||||
user =
|
||||
BlueskyRakeHelpers.user_from_env(handle: ENV["handle"], did: ENV["did"])
|
||||
user = BlueskyRakeHelpers.find_bsky_user(ENV["handle"] || ENV["did"])
|
||||
if user.nil?
|
||||
puts "user not found"
|
||||
next
|
||||
@@ -63,7 +67,7 @@ namespace :bluesky do
|
||||
Domain::Bluesky::Job::ScanPostsJob.perform_later(user:)
|
||||
Domain::Bluesky::MonitoredObject.build_for_user(user).save!
|
||||
else
|
||||
raise "hashtag, handle, or did is required"
|
||||
raise "hashtag or handle/did is required"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -71,17 +75,18 @@ namespace :bluesky do
|
||||
task add_bulk: :environment do
|
||||
added = 0
|
||||
file = (ENV["file"] ? File.open(T.must(ENV["file"]), "r") : STDIN)
|
||||
skip = ENV["skip"]&.to_i
|
||||
|
||||
while line = file.gets
|
||||
if skip.present?
|
||||
skip -= 1
|
||||
next if skip > 0
|
||||
end
|
||||
|
||||
begin
|
||||
line = line.strip.chomp
|
||||
next if line.blank?
|
||||
user =
|
||||
if line.starts_with?("did:")
|
||||
BlueskyRakeHelpers.user_from_env(did: line)
|
||||
else
|
||||
BlueskyRakeHelpers.user_from_env(handle: line)
|
||||
end
|
||||
user = BlueskyRakeHelpers.find_bsky_user(line)
|
||||
if user
|
||||
unless user.scanned_profile_at.present?
|
||||
Domain::Bluesky::Job::ScanUserJob.perform_later(user:)
|
||||
@@ -102,8 +107,12 @@ namespace :bluesky do
|
||||
loop do
|
||||
queue_size =
|
||||
GoodJob::Job
|
||||
.where("queue_name IN ('bluesky', 'static_file')")
|
||||
.where(finished_at: nil, performed_at: nil, error: nil)
|
||||
.where(
|
||||
finished_at: nil,
|
||||
performed_at: nil,
|
||||
error: nil,
|
||||
queue_name: "bluesky",
|
||||
)
|
||||
.where(
|
||||
[
|
||||
"(serialized_params->'exception_executions' = '{}')",
|
||||
@@ -166,10 +175,8 @@ namespace :bluesky do
|
||||
desc "Watch users that user follows"
|
||||
task watch_follows: :environment do
|
||||
user =
|
||||
BlueskyRakeHelpers.user_from_env(
|
||||
handle: ENV["handle"],
|
||||
did: ENV["did"],
|
||||
) || raise("user is required, use `handle` or `did`")
|
||||
BlueskyRakeHelpers.find_bsky_user(ENV["handle"] || ENV["did"]) ||
|
||||
raise("user is required, need a handle/did")
|
||||
Domain::Bluesky::Job::ScanUserFollowsJob.perform_now(user:)
|
||||
user.reload
|
||||
user.user_user_follows_from.each do |follow|
|
||||
|
||||
@@ -8,6 +8,11 @@ namespace :ib do
|
||||
Domain::Inkbunny::Job::LatestPostsJob.set(priority: -10).perform_later({})
|
||||
end
|
||||
|
||||
desc "Enqueue missing posts"
|
||||
task enqueue_missing_posts: :environment do
|
||||
Tasks::Inkbunny::EnqueueMissingPostsTask.new.run
|
||||
end
|
||||
|
||||
desc "set auth credentials"
|
||||
task set_auth: :environment do
|
||||
username = nil
|
||||
|
||||
Reference in New Issue
Block a user