From fa7e6b5a63c0ba584e0e2f457c41fece72c7f8ed Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Mon, 7 Jan 2019 08:00:11 -0600 Subject: Add pseudomentions to various hosts --- app/lib/formatter.rb | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) (limited to 'app/lib') diff --git a/app/lib/formatter.rb b/app/lib/formatter.rb index 78a0e9f25..cb9ca8336 100644 --- a/app/lib/formatter.rb +++ b/app/lib/formatter.rb @@ -186,7 +186,8 @@ class Formatter elsif entity[:hashtag] link_to_hashtag(entity) elsif entity[:screen_name] - link_to_mention(entity, accounts) + link = link_to_pseudo(entity[:screen_name]) + link.nil? ? link_to_mention(entity, accounts) : link end end end @@ -384,4 +385,97 @@ class Formatter def mention_html(account) "@#{encode(account.username)}" end + + def link_to_pseudo(acct) + username, domain = acct.split('@') + + case domain + when 'twitter.com' + return link_to_twitter(username) + when 'tumblr.com' + return link_to_tumblr(username) + when 'weasyl.com' + return link_to_weasyl(username) + when 'furaffinity.net' + return link_to_furaffinity(username) + when 'furrynetwork.com', 'beta.furrynetwork.com' + return link_to_furrynetwork(username) + when 'sofurry.com' + return link_to_sofurry(username) + when 'inkbunny.net' + return link_to_inkbunny(username) + when 'e621.net' + return link_to_e621(username) + when 'e926.net' + return link_to_e926(username) + when 'f-list.net' + return link_to_flist(username) + when 'deviantart.com' + return link_to_deviantart(username) + when 'artstation.com' + return link_to_artstation(username) + when 'github.com' + return link_to_github(username) + when 'gitlab.com' + return link_to_gitlab(username) + else + return nil + end + end + + def link_to_twitter(username) + "@#{username}@twitter.com" + end + + def link_to_tumblr(username) + "@#{username}@tumblr.com" + end + + def link_to_weasyl(username) + "@#{username}@weasyl.com" + end + + def link_to_furaffinity(username) + "@#{username}@furaffinity.net" + end + + def link_to_furrynetwork(username) + "@#{username}@furrynetwork.com" + end + + def link_to_inkbunny(username) + "@#{username}@inkbunny.net" + end + + def link_to_sofurry(username) + "@#{username}@sofurry.com" + end + + def link_to_e621(username) + "@#{username}@e621.net" + end + + def link_to_e926(username) + "@#{username}@e926.net" + end + + def link_to_flist(username) + "@#{username}@f-list.net" + end + + def link_to_deviantart(username) + "@#{username}@deviantart.com" + end + + def link_to_artstation(username) + "@#{username}@artstation.com" + end + + def link_to_github(username) + "@#{username}@github.com" + end + + def link_to_gitlab(username) + "@#{username}@gitlab.com" + end end -- cgit