diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-04-02 15:50:34 -0500 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-05-21 03:16:21 -0500 |
commit | 01acaa792ad23d244a2ea8acfeaa4c0ffba4ffb1 (patch) | |
tree | 98b86a8f97c9a970463eb6e370423b579b6b37d9 | |
parent | d00907014b705a133cab48e3843afe5f4dbf99b4 (diff) |
bangtag to mention admin/mods/staff
-rw-r--r-- | app/models/status.rb | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 859da01ec..37ceb1a9c 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -570,7 +570,7 @@ class Status < ApplicationRecord return if text&.nil? return unless '#!'.in?(text) chunks = [] - text.split(/(#!\w+)/).each do |chunk| + text.split(/(#![\w:]+)/).each do |chunk| if chunk.start_with?("#!") case chunk[2..-1].downcase when 'permalink' @@ -579,6 +579,20 @@ class Status < ApplicationRecord chunks << "https://monsterpit.cloud/~/#{account.username}" when 'blogroot' chunks << "https://monsterpit.blog/~/#{account.username}" + when 'ping:admins' + mentions = User.admins.map { |u| "@#{u.account.username}" } + mentions.sort! + chunks << mentions.join(' ') + when 'ping:mods' + mentions = User.moderators.map { |u| "@#{u.account.username}" } + mentions.sort! + chunks << mentions.join(' ') + when 'ping:staff' + mentions = User.admins.map { |u| "@#{u.account.username}" } + mentions += User.moderators.map { |u| "@#{u.account.username}" } + mentions.uniq! + mentions.sort! + chunks << mentions.join(' ') else chunks << chunk end |