diff --git a/app/helpers/icon_helper.rb b/app/helpers/icon_helper.rb index 8df8a6555..fc3685df9 100644 --- a/app/helpers/icon_helper.rb +++ b/app/helpers/icon_helper.rb @@ -1,6 +1,21 @@ # frozen_string_literal: true module IconHelper + # Names of sites we have a icon for. The logo for e.g. Pixiv is at public/images/pixiv-logo.png. + # + # To add a new site, add the site name here, add the logo in public/images, and update app/logical/source/url/null.rb + # if the site name is irregular. + SITE_ICON_NAMES = %w[ + 4chan Amazon Ameblo Anifty ArtStation Ask.fm BCY Biglobe Bilibili Booth Carrd Catbox Circle.ms Coconala Danbooru + Deviant\ Art Discord DLSite Doujinshi.org Drawcrowd E-Hentai Enty Erogamescape Facebook Fantia FC2 Fiverr Foundation + Furaffinity Geocities Gelbooru Google Gumroad Hentai\ Foundry Hitomi Imgur Infoseek Inprnt Instagram Joyreactor + Ko-fi Konachan Linktree Lit.link Livedoor Luscious Lofter Kemono\ Party Mangaupdates Marshmallow\ Qa Mastodon Mblg + Mega Melonbooks Mihuashi Mihoyo Mixi.jp Monappy Naver Newgrounds Nico\ Seiga Nijie OCN Overdoll Patreon Pawoo Photozou + Piapro.jp Picarto Pinterest Pixiv Fanbox Pixiv\ Sketch Plurk Poipiku Privatter Profcard Redbubble Reddit Rule34.us + Sakura.ne.jp Sankaku\ Complex Steam Stickam Skeb Skima The\ Interviews Tiktok Tinami Tumblr Twitter Toranoana Twipple + Twitch Twitcasting TwitPic Twpf Ustream Vk Webmshare Weebly Weibo Wikipedia Wix Yande.re Yfrog Youtube Wix Zerochan + ] + def icon_tag(icon_class, class: nil, **options) klass = binding.local_variable_get(:class) tag.i(class: "icon #{icon_class} #{klass}", **options) @@ -211,173 +226,8 @@ module IconHelper end def external_site_icon(site_name, **options) - case site_name - when "Amazon" - image_icon_tag("amazon-logo.png", **options) - when "Ameblo" - image_icon_tag("ameblo-logo.png", **options) - when "Anifty" - image_icon_tag("anifty-logo.png", **options) - when "ArtStation" - image_icon_tag("artstation-logo.png", **options) - when "Ask.fm" - image_icon_tag("ask-fm-logo.png", **options) - when "BCY" - image_icon_tag("bcy-logo.png", **options) - when "Biglobe" - image_icon_tag("biglobe-logo.png", **options) - when "Bilibili" - image_icon_tag("bilibili-logo.png", **options) - when "Booth" - image_icon_tag("booth-pm-logo.png", **options) - when "Carrd" - image_icon_tag("carrd-logo.png", **options) - when "Circle.ms" - image_icon_tag("circle-ms-logo.png", **options) - when "Coconala" - image_icon_tag("coconala-logo.png", **options) - when "Deviant Art" - image_icon_tag("deviantart-logo.png", **options) - when "DLSite" - image_icon_tag("dlsite-logo.png", **options) - when "Doujinshi.org" - image_icon_tag("doujinshi-org-logo.png", **options) - when "Erogamescape" - image_icon_tag("erogamescape-logo.png", **options) - when "Facebook" - image_icon_tag("facebook-logo.png", **options) - when "Fantia" - image_icon_tag("fantia-logo.png", **options) - when "FC2" - image_icon_tag("fc2-logo.png", **options) - when "Fiverr" - image_icon_tag("fiverr-logo.png", **options) - when "Foundation" - image_icon_tag("foundation-logo.png", **options) - when "Furaffinity" - image_icon_tag("furaffinity-logo.png", **options) - when "Geocities" - image_icon_tag("geocities-logo.png", **options) - when "Google" - image_icon_tag("google-logo.png", **options) - when "Gumroad" - image_icon_tag("gumroad-logo.png", **options) - when "Hentai Foundry" - image_icon_tag("hentai-foundry-logo.png", **options) - when "Infoseek" - image_icon_tag("infoseek-logo.png", **options) - when "Inprnt" - image_icon_tag("inprnt-logo.png", **options) - when "Instagram" - image_icon_tag("instagram-logo.png", **options) - when "Ko-fi" - image_icon_tag("ko-fi-logo.png", **options) - when "Linktr" # https://linktr.ee - image_icon_tag("linktree-logo.png", **options) - when "Lit.link" - image_icon_tag("lit-link-logo.png", **options) - when "Livedoor" - image_icon_tag("livedoor-logo.png", **options) - when "Lofter" - image_icon_tag("lofter-logo.png", **options) - when "Mangaupdates" - image_icon_tag("mangaupdates-logo.png", **options) - when "Marshmallow Qa" - image_icon_tag("marshmallow-qa-logo.png", **options) - when "Mastodon", "Mstdn" # https://mastodon.cloud, https://mstdn.jp - image_icon_tag("mastodon-logo.png", **options) - when "Mblg" - image_icon_tag("mblg-tv-logo.png", **options) - when "Melonbooks" - image_icon_tag("melonbooks-logo.png", **options) - when "Mihuashi" - image_icon_tag("mihuashi-logo.png", **options) - when "Mixi.jp" - image_icon_tag("mixi-jp-logo.png", **options) - when "Naver" - image_icon_tag("naver-logo.png", **options) - when "Newgrounds" - image_icon_tag("newgrounds-logo.png", **options) - when "Nico Seiga" - image_icon_tag("nicoseiga-logo.png", **options) - when "Nijie" - image_icon_tag("nijie-logo.png", **options) - when "Ocn" - image_icon_tag("ocn-ne-jp-logo.png", **options) - when "Patreon" - image_icon_tag("patreon-logo.png", **options) - when "Pawoo" - image_icon_tag("pawoo-logo.png", **options) - when "Photozou" - image_icon_tag("photozou-logo.png", **options) - when "Piapro.jp" - image_icon_tag("piapro-jp-logo.png", **options) - when "Picarto" - image_icon_tag("picarto-logo.png", **options) - when "Pixiv" - image_icon_tag("pixiv-logo.png", **options) - when "Fanbox" - image_icon_tag("pixiv-fanbox-logo.png", **options) - when "Pixiv Sketch" - image_icon_tag("pixiv-sketch-logo.png", **options) - when "Plurk" - image_icon_tag("plurk-logo.png", **options) - when "Poipiku" - image_icon_tag("poipiku-logo.png", **options) - when "Privatter" - image_icon_tag("privatter-logo.png", **options) - when "Profcard" - image_icon_tag("profcard-logo.png", **options) - when "Redbubble" - image_icon_tag("redbubble-logo.png", **options) - when "Reddit" - image_icon_tag("reddit-logo.png", **options) - when "Sakura.ne.jp" - image_icon_tag("sakura-ne-jp-logo.png", **options) - when "Stickam" - image_icon_tag("stickam-logo.png", **options) - when "Skeb" - image_icon_tag("skeb-logo.png", **options) - when "Skima" - image_icon_tag("skima-logo.png", **options) - when "Theinterviews" - image_icon_tag("the-interviews-logo.png", **options) - when "Tiktok" - image_icon_tag("tiktok-logo.png", **options) - when "Tinami" - image_icon_tag("tinami-logo.png", **options) - when "Tumblr" - image_icon_tag("tumblr-logo.png", **options) - when "Twitter" - image_icon_tag("twitter-logo.png", **options) - when "Toranoana" - image_icon_tag("toranoana-logo.png", **options) - when "Twipple" - image_icon_tag("twipple-logo.png", **options) - when "Twitch" - image_icon_tag("twitch-logo.png", **options) - when "Twitcasting" - image_icon_tag("twitcasting-logo.png", **options) - when "TwitPic" - image_icon_tag("twitpic-logo.png", **options) - when "Twpf" - image_icon_tag("twpf-logo.png", **options) - when "Ustream" - image_icon_tag("ustream-logo.png", **options) - when "Vk" - image_icon_tag("vk-logo.png", **options) - when "Weebly", "Weeblysite" - image_icon_tag("weebly-logo.png", **options) - when "Weibo" - image_icon_tag("weibo-logo.png", **options) - when "Wikipedia" - image_icon_tag("wikipedia-logo.png", **options) - when "Wixsite" - image_icon_tag("wixsite-logo.png", **options) - when "Yfrog" - image_icon_tag("yfrog-logo.png", **options) - when "Youtube" - image_icon_tag("youtube-logo.png", **options) + if site_name.in?(SITE_ICON_NAMES) + image_icon_tag("#{site_name.downcase.tr(" ", "-")}-logo.png", **options) else globe_icon(**options) end diff --git a/app/logical/source/url/null.rb b/app/logical/source/url/null.rb index 49d8ffa04..3c1d10c65 100644 --- a/app/logical/source/url/null.rb +++ b/app/logical/source/url/null.rb @@ -8,29 +8,69 @@ class Source::URL::Null < Source::URL end def site_name - case host - when /ask\.fm\z/i + case [subdomain, domain] + in _, "4cdn.org" + "4chan" + in _, "ask.fm" "Ask.fm" - when /bcy\.net\z/i + in _, ("bcy.net" | "bcyimg.com") "BCY" - when /carrd\.co\z/i - "Carrd" - when /circle\.ms\z/i + in _, "circle.ms" "Circle.ms" - when /dlsite\.(com|net)\z/i + in _, ("dlsite.com" | "dlsite.net" | "dlsite.jp") "DLSite" - when /doujinshi\.org\z/i, /doujinshi\.mugimugi\.org\z/i + in _, "donmai.us" + "Danbooru" # hey, that's us! + in _, ("discordapp.com" | "discordapp.net") + "Discord" + in _, "doujinshi.org" "Doujinshi.org" - when /ko-fi\.com\z/i - "Ko-fi" - when /lit\.link\z/i + in "doujinshi", "mugimugi.org" + "Doujinshi.org" + in _, "cloudfront.net" if host == "dxthpu4318olx.cloudfront.net" + "Drawcrowd" + in _, ("e-hentai.org" | "exhentai.org" | "hath.network") + "E-Hentai" + in _, ("facebook.com" | "fbcdn.net") + "Facebook" + in _, "linktre.ee" + "Linktree" + in _, "lit.link" "Lit.link" - when /mixi\.jp\z/i + in _, "kemono.party" + "Kemono Party" + in _, ("mastodon.cloud" | "mstdn.jp") + "Mastodon" + in _, "mixi.jp" "Mixi.jp" - when /piapro\.jp\z/i + in _, "ocn.ne.jp" + "OCN" + in _, ("overdoll.com" | "dollycdn.net") + "Overdoll" + in _, ("patreon.com" | "patreonusercontent.com") + "Patreon" + in _, "piapro.jp" "Piapro.jp" - when /sakura\.ne\.jp\z/i + in _, ("pinterest.com" | "pinimg.com") + "Pinterest" + in _, ("joyreactor.cc" | "reactor.cc") + "Joyreactor" + in _, "rule34.us" + "Rule34.us" + in _, "sakura.ne.jp" "Sakura.ne.jp" + in _, "sankakucomplex.com" + "Sankaku Complex" + in _, "steamstatic.com" + "Steam" + in _, "the-interviews.jp" + "The Interviews" + in _, ("weebly.com" | "weeblysite.com") + "Weebly" + in _, ("wix.com" | "wixsite.com" | "wixstatic.com") + "Wix" + in _, "youtu.be" + "Youtube" else # "www.melonbooks.co.jp" => "Melonbooks" parsed_domain.sld.titleize diff --git a/app/logical/source/url/rule34_dot_us.rb b/app/logical/source/url/rule34_dot_us.rb index 3cd5391d8..7547c5ffd 100644 --- a/app/logical/source/url/rule34_dot_us.rb +++ b/app/logical/source/url/rule34_dot_us.rb @@ -11,6 +11,10 @@ class Source::URL::Rule34DotUs < Source::URL url.domain.in?(%w[rule34.us]) end + def site_name + "Rule34.us" + end + def parse case [domain, *path_segments] diff --git a/public/images/4chan-logo.png b/public/images/4chan-logo.png new file mode 100644 index 000000000..da013e541 Binary files /dev/null and b/public/images/4chan-logo.png differ diff --git a/public/images/ask-fm-logo.png b/public/images/ask.fm-logo.png similarity index 100% rename from public/images/ask-fm-logo.png rename to public/images/ask.fm-logo.png diff --git a/public/images/booth-pm-logo.png b/public/images/booth-logo.png similarity index 100% rename from public/images/booth-pm-logo.png rename to public/images/booth-logo.png diff --git a/public/images/catbox-logo.png b/public/images/catbox-logo.png new file mode 100644 index 000000000..02f210db6 Binary files /dev/null and b/public/images/catbox-logo.png differ diff --git a/public/images/circle-ms-logo.png b/public/images/circle.ms-logo.png similarity index 100% rename from public/images/circle-ms-logo.png rename to public/images/circle.ms-logo.png diff --git a/public/images/danbooru-logo.png b/public/images/danbooru-logo.png new file mode 100644 index 000000000..cf9c1c00f Binary files /dev/null and b/public/images/danbooru-logo.png differ diff --git a/public/images/deviantart-logo.png b/public/images/deviant-art-logo.png similarity index 100% rename from public/images/deviantart-logo.png rename to public/images/deviant-art-logo.png diff --git a/public/images/doujinshi-org-logo.png b/public/images/doujinshi.org-logo.png similarity index 100% rename from public/images/doujinshi-org-logo.png rename to public/images/doujinshi.org-logo.png diff --git a/public/images/drawcrowd-logo.png b/public/images/drawcrowd-logo.png new file mode 100644 index 000000000..917723053 Binary files /dev/null and b/public/images/drawcrowd-logo.png differ diff --git a/public/images/e-hentai-logo.png b/public/images/e-hentai-logo.png new file mode 100644 index 000000000..259aecbf2 Binary files /dev/null and b/public/images/e-hentai-logo.png differ diff --git a/public/images/enty-logo.png b/public/images/enty-logo.png new file mode 100644 index 000000000..dd30cdce3 Binary files /dev/null and b/public/images/enty-logo.png differ diff --git a/public/images/pixiv-fanbox-logo.png b/public/images/fanbox-logo.png similarity index 100% rename from public/images/pixiv-fanbox-logo.png rename to public/images/fanbox-logo.png diff --git a/public/images/flash-preview.png b/public/images/flash-preview.png old mode 100755 new mode 100644 diff --git a/public/images/gelbooru-logo.png b/public/images/gelbooru-logo.png new file mode 100644 index 000000000..8a5c7744d Binary files /dev/null and b/public/images/gelbooru-logo.png differ diff --git a/public/images/hitomi-logo.png b/public/images/hitomi-logo.png new file mode 100644 index 000000000..ba3c331c8 Binary files /dev/null and b/public/images/hitomi-logo.png differ diff --git a/public/images/imgur-logo.png b/public/images/imgur-logo.png new file mode 100644 index 000000000..1fd309e28 Binary files /dev/null and b/public/images/imgur-logo.png differ diff --git a/public/images/joyreactor-logo.png b/public/images/joyreactor-logo.png new file mode 100644 index 000000000..c5989a19a Binary files /dev/null and b/public/images/joyreactor-logo.png differ diff --git a/public/images/kemono-party-logo.png b/public/images/kemono-party-logo.png new file mode 100644 index 000000000..2e6daffc5 Binary files /dev/null and b/public/images/kemono-party-logo.png differ diff --git a/public/images/konachan-logo.png b/public/images/konachan-logo.png new file mode 100644 index 000000000..1024ab2c0 Binary files /dev/null and b/public/images/konachan-logo.png differ diff --git a/public/images/lit-link-logo.png b/public/images/lit.link-logo.png similarity index 100% rename from public/images/lit-link-logo.png rename to public/images/lit.link-logo.png diff --git a/public/images/luscious-logo.png b/public/images/luscious-logo.png new file mode 100644 index 000000000..37c1bc923 Binary files /dev/null and b/public/images/luscious-logo.png differ diff --git a/public/images/mblg-tv-logo.png b/public/images/mblg-logo.png similarity index 100% rename from public/images/mblg-tv-logo.png rename to public/images/mblg-logo.png diff --git a/public/images/mega-logo.png b/public/images/mega-logo.png new file mode 100644 index 000000000..8d6298b63 Binary files /dev/null and b/public/images/mega-logo.png differ diff --git a/public/images/mihoyo-logo.png b/public/images/mihoyo-logo.png new file mode 100644 index 000000000..a904cd411 Binary files /dev/null and b/public/images/mihoyo-logo.png differ diff --git a/public/images/mixi-jp-logo.png b/public/images/mixi.jp-logo.png similarity index 100% rename from public/images/mixi-jp-logo.png rename to public/images/mixi.jp-logo.png diff --git a/public/images/monappy-logo.png b/public/images/monappy-logo.png new file mode 100644 index 000000000..aabfa1071 Binary files /dev/null and b/public/images/monappy-logo.png differ diff --git a/public/images/nicoseiga-logo.png b/public/images/nico-seiga-logo.png similarity index 100% rename from public/images/nicoseiga-logo.png rename to public/images/nico-seiga-logo.png diff --git a/public/images/ocn-ne-jp-logo.png b/public/images/ocn-logo.png similarity index 100% rename from public/images/ocn-ne-jp-logo.png rename to public/images/ocn-logo.png diff --git a/public/images/overdoll-logo.png b/public/images/overdoll-logo.png new file mode 100644 index 000000000..a4e415b92 Binary files /dev/null and b/public/images/overdoll-logo.png differ diff --git a/public/images/piapro-jp-logo.png b/public/images/piapro.jp-logo.png similarity index 100% rename from public/images/piapro-jp-logo.png rename to public/images/piapro.jp-logo.png diff --git a/public/images/pinterest-logo.png b/public/images/pinterest-logo.png new file mode 100644 index 000000000..e2ba89b21 Binary files /dev/null and b/public/images/pinterest-logo.png differ diff --git a/public/images/rule34.us-logo.png b/public/images/rule34.us-logo.png new file mode 100644 index 000000000..2c344a0b1 Binary files /dev/null and b/public/images/rule34.us-logo.png differ diff --git a/public/images/sakura-ne-jp-logo.png b/public/images/sakura.ne.jp-logo.png similarity index 100% rename from public/images/sakura-ne-jp-logo.png rename to public/images/sakura.ne.jp-logo.png diff --git a/public/images/sankaku-complex-logo.png b/public/images/sankaku-complex-logo.png new file mode 100644 index 000000000..93a03d091 Binary files /dev/null and b/public/images/sankaku-complex-logo.png differ diff --git a/public/images/steam-logo.png b/public/images/steam-logo.png new file mode 100644 index 000000000..f7b76e441 Binary files /dev/null and b/public/images/steam-logo.png differ diff --git a/public/images/webmshare-logo.png b/public/images/webmshare-logo.png new file mode 100644 index 000000000..cf52c06d2 Binary files /dev/null and b/public/images/webmshare-logo.png differ diff --git a/public/images/wix-logo.png b/public/images/wix-logo.png new file mode 100644 index 000000000..8766f4008 Binary files /dev/null and b/public/images/wix-logo.png differ diff --git a/public/images/wixsite-logo.png b/public/images/wixsite-logo.png deleted file mode 100644 index cabcb650a..000000000 Binary files a/public/images/wixsite-logo.png and /dev/null differ diff --git a/public/images/yande.re-logo.png b/public/images/yande.re-logo.png new file mode 100644 index 000000000..cf465ec9c Binary files /dev/null and b/public/images/yande.re-logo.png differ diff --git a/public/images/zerochan-logo.png b/public/images/zerochan-logo.png new file mode 100644 index 000000000..d53b1a812 Binary files /dev/null and b/public/images/zerochan-logo.png differ