Class: Federails::Host
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Federails::Host
- Defined in:
- app/models/federails/host.rb
Class Method Summary collapse
-
.create_or_update(domain, min_update_interval: 0) ⇒ Object
Creates or update a Host.
Instance Method Summary collapse
- #same_app? ⇒ Boolean
- #same_app_and_version? ⇒ Boolean
-
#sync! ⇒ Object
Update from remote data.
Class Method Details
.create_or_update(domain, min_update_interval: 0) ⇒ Object
Creates or update a Host
34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'app/models/federails/host.rb', line 34 def create_or_update(domain, min_update_interval: 0) entry = find_or_initialize_by domain: domain return if min_update_interval && entry.persisted? && (entry.updated_at + min_update_interval) > Time.current entry.sync! entry rescue Fediverse::NodeInfo::NoActivityPubError Rails.logger.info { "#{domain} does not provide ActivityPub service" } rescue Federails::Utils::JsonRequest::UnhandledResponseStatus, Faraday::SSLError => e Rails.logger.info { "Error connecting to #{domain}: '#{e.}'" } end |
Instance Method Details
#same_app? ⇒ Boolean
16 17 18 |
# File 'app/models/federails/host.rb', line 16 def same_app? software_name == Configuration.app_name end |
#same_app_and_version? ⇒ Boolean
20 21 22 |
# File 'app/models/federails/host.rb', line 20 def same_app_and_version? software_name == Configuration.app_name && app_version == Configuration.app_version end |