From 01acaa792ad23d244a2ea8acfeaa4c0ffba4ffb1 Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Tue, 2 Apr 2019 15:50:34 -0500 Subject: [PATCH] bangtag to mention admin/mods/staff --- app/models/status.rb | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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