user follows/followed by scans for bluesky

This commit is contained in:
Dylan Knutson
2025-08-14 17:03:36 +00:00
parent e1933104b3
commit 1d248c1f23
37 changed files with 6145 additions and 38 deletions

View File

@@ -0,0 +1,27 @@
# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for dynamic methods in `Domain::Bluesky::Job::ScanUserFollowsJob`.
# Please instead update this file by running `bin/tapioca dsl Domain::Bluesky::Job::ScanUserFollowsJob`.
class Domain::Bluesky::Job::ScanUserFollowsJob
sig { returns(ColorLogger) }
def logger; end
class << self
sig { returns(ColorLogger) }
def logger; end
sig do
params(
args: T::Hash[::Symbol, T.untyped],
block: T.nilable(T.proc.params(job: Domain::Bluesky::Job::ScanUserFollowsJob).void)
).returns(T.any(Domain::Bluesky::Job::ScanUserFollowsJob, FalseClass))
end
def perform_later(args, &block); end
sig { params(args: T::Hash[::Symbol, T.untyped]).returns(T.untyped) }
def perform_now(args); end
end
end

View File

@@ -491,6 +491,20 @@ class Domain::User
sig { params(value: T::Enumerable[::Domain::UserJobEvent::AddTrackedObject]).void }
def favs_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
@@ -519,6 +533,20 @@ class Domain::User
sig { params(value: T::Enumerable[::Domain::User]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def post_ids; end

View File

@@ -591,18 +591,32 @@ class Domain::User::BlueskyUser
sig { params(value: T::Enumerable[::Domain::UserJobEvent::AddTrackedObject]).void }
def favs_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_user_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_users, through: :user_user_follows_to`.
# This method is created by ActiveRecord on the `Domain::User::BlueskyUser` class because it declared `has_many :followed_by_users, through: :user_user_follows_to`.
# 🔗 [Rails guide for `has_many_through` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-through-association)
sig { returns(::Domain::User::PrivateCollectionProxy) }
sig { returns(::Domain::User::BlueskyUser::PrivateCollectionProxy) }
def followed_by_users; end
sig { params(value: T::Enumerable[::Domain::User]).void }
sig { params(value: T::Enumerable[::Domain::User::BlueskyUser]).void }
def followed_by_users=(value); end
sig { returns(T::Array[T.untyped]) }
@@ -611,14 +625,28 @@ class Domain::User::BlueskyUser
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_user_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_users, through: :user_user_follows_from`.
# This method is created by ActiveRecord on the `Domain::User::BlueskyUser` class because it declared `has_many :followed_users, through: :user_user_follows_from`.
# 🔗 [Rails guide for `has_many_through` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-through-association)
sig { returns(::Domain::User::PrivateCollectionProxy) }
sig { returns(::Domain::User::BlueskyUser::PrivateCollectionProxy) }
def followed_users; end
sig { params(value: T::Enumerable[::Domain::User]).void }
sig { params(value: T::Enumerable[::Domain::User::BlueskyUser]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T.nilable(::HttpLogEntry)) }
def last_posts_scan_log_entry; end

View File

@@ -556,6 +556,20 @@ class Domain::User::E621User
sig { params(value: T::Enumerable[::Domain::UserJobEvent::AddTrackedObject]).void }
def favs_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
@@ -584,6 +598,20 @@ class Domain::User::E621User
sig { params(value: T::Enumerable[::Domain::User]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def post_ids; end

View File

@@ -595,6 +595,20 @@ class Domain::User::FaUser
sig { params(value: T::Enumerable[::Domain::UserJobEvent::AddTrackedObject]).void }
def favs_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
@@ -623,6 +637,20 @@ class Domain::User::FaUser
sig { params(value: T::Enumerable[::Domain::User::FaUser]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T.nilable(::HttpLogEntry)) }
def last_gallery_page_log_entry; end

View File

@@ -567,6 +567,20 @@ class Domain::User::InkbunnyUser
sig { params(value: T::Enumerable[::Domain::UserJobEvent::AddTrackedObject]).void }
def favs_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
@@ -595,6 +609,20 @@ class Domain::User::InkbunnyUser
sig { params(value: T::Enumerable[::Domain::User]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T.nilable(::DomainUsersInkbunnyAux)) }
def inkbunny_aux; end

View File

@@ -680,6 +680,20 @@ class Domain::User::SofurryUser
sig { params(value: T::Enumerable[::Domain::PostGroup::SofurryFolder]).void }
def folders=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def followed_by_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :followed_by_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def followed_by_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def followed_by_scans=(value); end
sig { returns(T::Array[T.untyped]) }
def followed_by_user_ids; end
@@ -708,6 +722,20 @@ class Domain::User::SofurryUser
sig { params(value: T::Enumerable[::Domain::User]).void }
def followed_users=(value); end
sig { returns(T::Array[T.untyped]) }
def follows_scan_ids; end
sig { params(ids: T::Array[T.untyped]).returns(T::Array[T.untyped]) }
def follows_scan_ids=(ids); end
# This method is created by ActiveRecord on the `Domain::User` class because it declared `has_many :follows_scans`.
# 🔗 [Rails guide for `has_many` association](https://guides.rubyonrails.org/association_basics.html#the-has-many-association)
sig { returns(::Domain::UserJobEvent::FollowScan::PrivateCollectionProxy) }
def follows_scans; end
sig { params(value: T::Enumerable[::Domain::UserJobEvent::FollowScan]).void }
def follows_scans=(value); end
sig { returns(T.nilable(::HttpLogEntry)) }
def last_scan_log_entry; end

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -646,6 +646,61 @@ class Domain::UserUserFollow
end
module GeneratedAttributeMethods
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at; end
sig { params(value: T.nilable(::ActiveSupport::TimeWithZone)).returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at=(value); end
sig { returns(T::Boolean) }
def followed_at?; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at_before_last_save; end
sig { returns(T.untyped) }
def followed_at_before_type_cast; end
sig { returns(T::Boolean) }
def followed_at_came_from_user?; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def followed_at_change; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def followed_at_change_to_be_saved; end
sig do
params(
from: T.nilable(::ActiveSupport::TimeWithZone),
to: T.nilable(::ActiveSupport::TimeWithZone)
).returns(T::Boolean)
end
def followed_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at_in_database; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def followed_at_previous_change; end
sig do
params(
from: T.nilable(::ActiveSupport::TimeWithZone),
to: T.nilable(::ActiveSupport::TimeWithZone)
).returns(T::Boolean)
end
def followed_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at_previously_was; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def followed_at_was; end
sig { void }
def followed_at_will_change!; end
sig { returns(T.nilable(::Integer)) }
def from_id; end
@@ -756,15 +811,82 @@ class Domain::UserUserFollow
sig { void }
def id_will_change!; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at; end
sig { params(value: T.nilable(::ActiveSupport::TimeWithZone)).returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at=(value); end
sig { returns(T::Boolean) }
def removed_at?; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at_before_last_save; end
sig { returns(T.untyped) }
def removed_at_before_type_cast; end
sig { returns(T::Boolean) }
def removed_at_came_from_user?; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def removed_at_change; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def removed_at_change_to_be_saved; end
sig do
params(
from: T.nilable(::ActiveSupport::TimeWithZone),
to: T.nilable(::ActiveSupport::TimeWithZone)
).returns(T::Boolean)
end
def removed_at_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at_in_database; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def removed_at_previous_change; end
sig do
params(
from: T.nilable(::ActiveSupport::TimeWithZone),
to: T.nilable(::ActiveSupport::TimeWithZone)
).returns(T::Boolean)
end
def removed_at_previously_changed?(from: T.unsafe(nil), to: T.unsafe(nil)); end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at_previously_was; end
sig { returns(T.nilable(::ActiveSupport::TimeWithZone)) }
def removed_at_was; end
sig { void }
def removed_at_will_change!; end
sig { void }
def restore_followed_at!; end
sig { void }
def restore_from_id!; end
sig { void }
def restore_id!; end
sig { void }
def restore_removed_at!; end
sig { void }
def restore_to_id!; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def saved_change_to_followed_at; end
sig { returns(T::Boolean) }
def saved_change_to_followed_at?; end
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def saved_change_to_from_id; end
@@ -779,6 +901,12 @@ class Domain::UserUserFollow
sig { returns(T::Boolean) }
def saved_change_to_id?; end
sig { returns(T.nilable([T.nilable(::ActiveSupport::TimeWithZone), T.nilable(::ActiveSupport::TimeWithZone)])) }
def saved_change_to_removed_at; end
sig { returns(T::Boolean) }
def saved_change_to_removed_at?; end
sig { returns(T.nilable([T.nilable(::Integer), T.nilable(::Integer)])) }
def saved_change_to_to_id; end
@@ -830,12 +958,18 @@ class Domain::UserUserFollow
sig { void }
def to_id_will_change!; end
sig { returns(T::Boolean) }
def will_save_change_to_followed_at?; end
sig { returns(T::Boolean) }
def will_save_change_to_from_id?; end
sig { returns(T::Boolean) }
def will_save_change_to_id?; end
sig { returns(T::Boolean) }
def will_save_change_to_removed_at?; end
sig { returns(T::Boolean) }
def will_save_change_to_to_id?; end
end