montior hashtag impl
This commit is contained in:
@@ -12,41 +12,68 @@ namespace :bluesky do
|
||||
DIDKit::Resolver.new.resolve_handle(handle)&.did
|
||||
end
|
||||
|
||||
desc "Add a DID to the Bluesky monitor"
|
||||
desc "Add a DID or hashtag to the Bluesky monitor"
|
||||
task add: :environment do
|
||||
if (handle = ENV["handle"])
|
||||
if (hashtag = ENV["hashtag"])
|
||||
# Remove # if provided
|
||||
hashtag = hashtag.gsub(/^#/, "")
|
||||
|
||||
Domain::Bluesky::MonitoredObject.create!(value: hashtag, kind: :hashtag)
|
||||
puts "Added hashtag: ##{hashtag}"
|
||||
elsif (handle = ENV["handle"])
|
||||
did = resolve_did(handle)
|
||||
puts "resolved did: #{did}"
|
||||
else
|
||||
did = ENV["did"]
|
||||
end
|
||||
raise "did is required" if did.blank?
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Domain::Bluesky::MonitoredObject.create!(value: did, kind: :user_did)
|
||||
user =
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = handle
|
||||
end
|
||||
Domain::Bluesky::Job::ScanUserJob.perform_later(user:)
|
||||
Domain::Bluesky::MonitoredObject.create!(value: did, kind: :user_did)
|
||||
user =
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = handle
|
||||
end
|
||||
Domain::Bluesky::Job::ScanUserJob.perform_later(user:)
|
||||
elsif (did = ENV["did"])
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Domain::Bluesky::MonitoredObject.create!(value: did, kind: :user_did)
|
||||
user =
|
||||
Domain::User::BlueskyUser.find_or_create_by!(did:) do |user|
|
||||
user.handle = nil
|
||||
end
|
||||
Domain::Bluesky::Job::ScanUserJob.perform_later(user:)
|
||||
else
|
||||
raise "hashtag, handle, or did is required"
|
||||
end
|
||||
end
|
||||
|
||||
desc "Remove a DID from the Bluesky monitor"
|
||||
desc "Remove a DID or hashtag from the Bluesky monitor"
|
||||
task remove: :environment do
|
||||
if (handle = ENV["handle"])
|
||||
if (hashtag = ENV["hashtag"])
|
||||
# Remove # if provided
|
||||
hashtag = hashtag.gsub(/^#/, "")
|
||||
|
||||
Domain::Bluesky::MonitoredObject.find_by(
|
||||
value: hashtag,
|
||||
kind: :hashtag,
|
||||
)&.destroy!
|
||||
puts "Removed hashtag: ##{hashtag}"
|
||||
elsif (handle = ENV["handle"])
|
||||
did = resolve_did(handle)
|
||||
puts "resolved did: #{did}"
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Domain::Bluesky::MonitoredObject.find_by(
|
||||
value: did,
|
||||
kind: :user_did,
|
||||
)&.destroy!
|
||||
elsif (did = ENV["did"])
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Domain::Bluesky::MonitoredObject.find_by(
|
||||
value: did,
|
||||
kind: :user_did,
|
||||
)&.destroy!
|
||||
else
|
||||
did = ENV["did"]
|
||||
raise "hashtag, handle, or did is required"
|
||||
end
|
||||
raise "did is required" if did.blank?
|
||||
|
||||
Domain::Bluesky::MonitoredObject.find_by(value: did)&.destroy!
|
||||
end
|
||||
|
||||
desc "Delete all bluesky posts/files"
|
||||
task delete_all: :environment do
|
||||
raise unless Rails.env.development?
|
||||
Domain::PostFile::BlueskyPostFile.destroy_all
|
||||
Domain::Post::BlueskyPost.destroy_all
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user