forked from cybrespace/mastodon
		
	Add ActivityPub attributes to accounts (#4273)
This commit is contained in:
		
							parent
							
								
									f0d6550f16
								
							
						
					
					
						commit
						bbdcfd6baf
					
				
					 6 changed files with 27 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -36,6 +36,11 @@
 | 
			
		|||
#  followers_count         :integer          default(0), not null
 | 
			
		||||
#  following_count         :integer          default(0), not null
 | 
			
		||||
#  last_webfingered_at     :datetime
 | 
			
		||||
#  inbox_url               :string           default(""), not null
 | 
			
		||||
#  outbox_url              :string           default(""), not null
 | 
			
		||||
#  shared_inbox_url        :string           default(""), not null
 | 
			
		||||
#  followers_url           :string           default(""), not null
 | 
			
		||||
#  protocol                :integer          default("ostatus"), not null
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
class Account < ApplicationRecord
 | 
			
		||||
| 
						 | 
				
			
			@ -49,6 +54,8 @@ class Account < ApplicationRecord
 | 
			
		|||
  include Remotable
 | 
			
		||||
  include EmojiHelper
 | 
			
		||||
 | 
			
		||||
  enum protocol: [:ostatus, :activitypub]
 | 
			
		||||
 | 
			
		||||
  # Local users
 | 
			
		||||
  has_one :user, inverse_of: :account
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@ class SendInteractionService < BaseService
 | 
			
		|||
    @source_account = source_account
 | 
			
		||||
    @target_account = target_account
 | 
			
		||||
 | 
			
		||||
    return if block_notification?
 | 
			
		||||
    return if !target_account.ostatus? || block_notification?
 | 
			
		||||
 | 
			
		||||
    delivery = build_request.perform
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,8 @@
 | 
			
		|||
 | 
			
		||||
class SubscribeService < BaseService
 | 
			
		||||
  def call(account)
 | 
			
		||||
    return unless account.ostatus?
 | 
			
		||||
 | 
			
		||||
    @account        = account
 | 
			
		||||
    @account.secret = SecureRandom.hex
 | 
			
		||||
    @response       = build_request.perform
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,6 +2,8 @@
 | 
			
		|||
 | 
			
		||||
class UnsubscribeService < BaseService
 | 
			
		||||
  def call(account)
 | 
			
		||||
    return unless account.ostatus?
 | 
			
		||||
 | 
			
		||||
    @account  = account
 | 
			
		||||
    @response = build_request.perform
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										9
									
								
								db/migrate/20170718211102_add_activitypub_to_accounts.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								db/migrate/20170718211102_add_activitypub_to_accounts.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,9 @@
 | 
			
		|||
class AddActivityPubToAccounts < ActiveRecord::Migration[5.1]
 | 
			
		||||
  def change
 | 
			
		||||
    add_column :accounts, :inbox_url, :string, null: false, default: ''
 | 
			
		||||
    add_column :accounts, :outbox_url, :string, null: false, default: ''
 | 
			
		||||
    add_column :accounts, :shared_inbox_url, :string, null: false, default: ''
 | 
			
		||||
    add_column :accounts, :followers_url, :string, null: false, default: ''
 | 
			
		||||
    add_column :accounts, :protocol, :integer, null: false, default: 0
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
#
 | 
			
		||||
# It's strongly recommended that you check this file into your version control system.
 | 
			
		||||
 | 
			
		||||
ActiveRecord::Schema.define(version: 20170714184731) do
 | 
			
		||||
ActiveRecord::Schema.define(version: 20170718211102) do
 | 
			
		||||
 | 
			
		||||
  # These are extensions that must be enabled in order to support this database
 | 
			
		||||
  enable_extension "plpgsql"
 | 
			
		||||
| 
						 | 
				
			
			@ -56,6 +56,11 @@ ActiveRecord::Schema.define(version: 20170714184731) do
 | 
			
		|||
    t.integer "followers_count", default: 0, null: false
 | 
			
		||||
    t.integer "following_count", default: 0, null: false
 | 
			
		||||
    t.datetime "last_webfingered_at"
 | 
			
		||||
    t.string "inbox_url", default: "", null: false
 | 
			
		||||
    t.string "outbox_url", default: "", null: false
 | 
			
		||||
    t.string "shared_inbox_url", default: "", null: false
 | 
			
		||||
    t.string "followers_url", default: "", null: false
 | 
			
		||||
    t.integer "protocol", default: 0, null: false
 | 
			
		||||
    t.index "(((setweight(to_tsvector('simple'::regconfig, (display_name)::text), 'A'::\"char\") || setweight(to_tsvector('simple'::regconfig, (username)::text), 'B'::\"char\")) || setweight(to_tsvector('simple'::regconfig, (COALESCE(domain, ''::character varying))::text), 'C'::\"char\")))", name: "search_index", using: :gin
 | 
			
		||||
    t.index "lower((username)::text), lower((domain)::text)", name: "index_accounts_on_username_and_domain_lower"
 | 
			
		||||
    t.index ["uri"], name: "index_accounts_on_uri"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue