Merge pull request #87 from tootsuite/master

merge upstream
This commit is contained in:
beatrix
2017-07-20 11:24:32 -04:00
committed by GitHub
64 changed files with 499 additions and 332 deletions

View File

@@ -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

View File

@@ -26,8 +26,6 @@ class Web::PushSubscription < ApplicationRecord
before_create :send_welcome_notification
def push(notification)
return unless pushable? notification
name = display_name notification.from_account
title = title_str(name, notification)
body = body_str notification
@@ -45,7 +43,7 @@ class Web::PushSubscription < ApplicationRecord
title: title,
dir: dir,
image: image,
badge: full_asset_url('badge.png'),
badge: full_asset_url('badge.png', skip_pipeline: true),
tag: notification.id,
timestamp: notification.created_at,
icon: notification.from_account.avatar_static_url,
@@ -69,6 +67,10 @@ class Web::PushSubscription < ApplicationRecord
)
end
def pushable?(notification)
data && data.key?('alerts') && data['alerts'][notification.type.to_s]
end
def as_payload
payload = {
id: id,
@@ -115,7 +117,7 @@ class Web::PushSubscription < ApplicationRecord
when :mention then [
{
title: translate('push_notifications.mention.action_favourite'),
icon: full_asset_url('emoji/2764.png'),
icon: full_asset_url('emoji/2764.png', skip_pipeline: true),
todo: 'request',
method: 'POST',
action: "/api/v1/statuses/#{notification.target_status.id}/favourite",
@@ -148,16 +150,12 @@ class Web::PushSubscription < ApplicationRecord
rtl?(body) ? 'rtl' : 'ltr'
end
def pushable?(notification)
data && data.key?('alerts') && data['alerts'][notification.type.to_s]
end
def send_welcome_notification
Webpush.payload_send(
message: JSON.generate(
title: translate('push_notifications.subscribed.title'),
icon: full_asset_url('android-chrome-192x192.png'),
badge: full_asset_url('badge.png'),
icon: full_asset_url('android-chrome-192x192.png', skip_pipeline: true),
badge: full_asset_url('badge.png', skip_pipeline: true),
data: {
content: translate('push_notifications.subscribed.body'),
actions: [],