- // ==UserScript==
- // @name IMDb Quick Search
- // @name:tr IMDb Hızlı Arama
- // @description It adds quick seach buttons for other sites on IMDb.
- // @description:tr IMDb'ye başka siteler için hızlı arama butonu ekler.
- // @author nht.ctn
- // @namespace https://github.com/nhtctn
- // @version 2
-
- // @license MIT
- // @icon https://images2.imgbox.com/a2/50/J4jKvYWH_o.png
-
- // @match *://*.imdb.com/title/*
- // @match *://subscene.com/subtitles/title?q=*
-
- // @grant GM_addStyle
- // @run-at document-idle
-
- // @require https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
- // @require https://greasyfork.org/scripts/427315-url-based-search-for-some-websites/code/URL%20Based%20Search%20for%20Some%20Websites.js?version=936416
-
- /*jshint esversion: 6 */
- // ==/UserScript==
-
- (function() {
- 'use strict';
-
- // URL Variables: @Movie @Series @Episode @Non-English
-
- // %title% -> Fight Club Dexter Dexter Parasite
- // %year% -> 1999 2006 "" 2019
- // %title_year% -> Fight Club 1999 Dexter Dexter Parasite 2019 // This variable calls year for only movies, not series. If you want year in both case, use this: %title%+%year%
- // %org_title% -> Fight Club Dexter "" Gisaengchung // Actually it returns same as %title% in episode pages. It is not possible to get orginal title from there.
- // %imdbid% -> 0137523 0773262 0773262 6751668
- // %ttimdbid% -> tt0137523 tt0773262 tt0773262 tt6751668
-
- const sites = [
- // { name: "PlanetDP", url: "https://www.planetdp.org/movie/search?title=%ttimdbid%", icon: "https://images2.imgbox.com/fc/77/EFoYyf12_o.png", },
- // { name: "PlanetDP Forum", url: "http://forum.planetdp.org/index.php?/search/&q=%title%", icon: "https://images2.imgbox.com/b9/1d/mMZ0k950_o.png", },
- // { name: 'IMDB Kutusu (Forum)', url: 'http://forum.planetdp.org/index.php?/search/&q=%ttimdbid%', icon: 'https://images2.imgbox.com/a0/de/q9nkl3Ot_o.png', },
- // { name: 'ForumDP TAG', url: 'http://forum.planetdp.org/index.php?/tags/%ttimdbid%', icon: 'https://images2.imgbox.com/11/27/hxxGZh9x_o.png', },
- { name: 'Youtube', url: 'https://www.youtube.com/results?search_query=%title%+trailer', icon: 'https://images2.imgbox.com/43/65/k7wbhSal_o.png', },
- // { name: 'Ekşi', url: 'https://eksisozluk.com/?q=%title%', icon: 'https://images2.imgbox.com/e2/78/4Fejmpfi_o.png', },
- { name: 'Resmi Site', url: 'https://www.google.com.tr/search?q=%title%+official+website', icon: 'https://images2.imgbox.com/63/af/U8W35AyF_o.png', },
- { name: 'TheMovieDB', url: 'https://www.themoviedb.org/search?query=%title%', icon: 'https://images2.imgbox.com/cc/ba/AmRxFc36_o.png', },
- { name: 'TheTVDB', url: 'https://www.thetvdb.com/search?query=%title%', icon: 'https://images2.imgbox.com/85/50/WViQFyra_o.png', },
- { name: 'BeyazPerde', url: 'https://www.beyazperde.com/aramak/?q=%title%', icon: 'https://images2.imgbox.com/15/ce/BydtnSMH_o.png', },
- { name: 'Rottentomatoes', url: 'http://www.rottentomatoes.com/search/?search=%title%', icon: 'https://images2.imgbox.com/fc/0a/pm8N3AWv_o.png', },
- { name: 'Metacritic', url: 'https://www.metacritic.com/search/all/%title%/results', icon: 'https://images2.imgbox.com/ce/b0/OmF70Xo6_o.png', },
- { name: 'Trakt', url: 'https://trakt.tv/search/imdb?query=%ttimdbid%', icon: 'https://images2.imgbox.com/b9/55/Scyuh64R_o.png', },
- { name: 'IcheckMovies', url: 'http://www.icheckmovies.com/search/movies/?query=%ttimdbid%', icon: 'https://images2.imgbox.com/f2/d6/fQRQ8Quz_o.png', },
- { name: 'Letterboxd', url: 'https://letterboxd.com/search/films/%ttimdbid%', icon: 'https://images2.imgbox.com/26/8f/a0pCUa2W_o.png', },
- { name: 'Criticker', url: 'https://www.criticker.com/?search=%ttimdbid%', icon: 'https://images2.imgbox.com/f4/83/L04pazdG_o.png', },
- // { name: 'ALLMOVIE', url: 'https://www.allmovie.com/search/movies/%title%', icon: 'https://images2.imgbox.com/41/7a/D8XGwR4Q_o.png', },
- { name: 'Douban', url: 'https://movie.douban.com/subject_search?search_text=%ttimdbid%', icon: 'https://images2.imgbox.com/96/6a/yxMwQBW9_o.png', },
- { name: 'Box Office Mojo', url: 'http://www.boxofficemojo.com/search/?q=%title%', icon: 'https://images2.imgbox.com/07/8a/WdNKBfjC_o.png', },
- { name: 'Sinemalar', url: 'https://www.sinemalar.com/ara/?type=all&q=%title%', icon: 'https://images2.imgbox.com/81/40/1miFBH85_o.png', },
- { name: 'TVShow Time', url: 'https://www.google.com.tr/search?q=%title%+TVShow+Time', icon: 'https://images2.imgbox.com/b0/f1/yl82CbyK_o.png', },
- // { name: 'TVmaze', url: 'http://www.tvmaze.com/search?q=%title%', icon: 'https://images2.imgbox.com/88/3a/nfS7SSXY_o.png', },
- // { name: 'TV.com', url: 'http://www.tv.com/search?q=%title%', icon: 'https://images2.imgbox.com/01/c6/uxF9LWgL_o.png', },
- { name: 'MyDramaList', url: 'https://mydramalist.com/search?q=%title%', icon: 'https://images2.imgbox.com/18/9d/voQieZdD_o.png', },
- { name: 'MAL', url: 'https://myanimelist.net/search/all?q=%title%', icon: 'https://images2.imgbox.com/bf/8b/cQ2UnZIa_o.png', },
- { name: 'AniDB', url: 'https://anidb.net/perl-bin/animedb.pl?adb.search=%title%&show=search&do.search=search', icon: 'https://images2.imgbox.com/3b/c9/eeUYC5n7_o.png', },
- { name: 'LiveChart', url: 'https://www.livechart.me/search?q=%title%', icon: 'https://images2.imgbox.com/85/08/C91WXD3m_o.png', },
- { name: 'RARBG', url: 'https://rarbgmirror.com/torrents.php?search=%imdbid%', icon: 'https://images2.imgbox.com/34/0b/bCrT9fHL_o.png', },
- { name: '1337x', url: 'https://www.1337x.to/sort-search/%title_year%/time/desc/1/', icon: 'https://images2.imgbox.com/1d/9e/mgOmJEvI_o.png', },
- { name: 'Zooqle', url: 'https://zooqle.com/search?q=%title_year%&s=ns&v=t&sd=d', icon: 'https://images2.imgbox.com/25/3b/Sd8La3js_o.png', },
- { name: 'TorrentGalaxy', url: 'https://torrentgalaxy.to/torrents.php?search=%ttimdbid%&sort=id&sort=id&order=desc', icon: 'https://images2.imgbox.com/c2/27/dGkG9vjT_o.png', },
- { name: 'ETTV', url: 'https://www.ettv.tv/torrents-search.php?search=%title%&sort=id&order=desc', icon: 'https://images2.imgbox.com/fa/3e/zi3h52EA_o.png', },
- { name: 'PSA', url: 'http://psarips.com/?s=%title_year%', icon: 'https://images2.imgbox.com/26/c1/2OXmz3tN_o.png', },
- { name: 'RuTracker', url: 'http://rutracker.org/forum/tracker.php?nm=%title_year%', icon: 'https://images2.imgbox.com/24/5d/kj3YSoFr_o.png', },
- { name: 'Zamunda', url: 'http://zamunda.net/bananas?&search=%title_year%', icon: 'https://images2.imgbox.com/89/58/BcmHxuVW_o.png', },
- { name: 'BTN', url: 'http://broadcasthe.net/torrents.php?searchstr=%title_year%', icon: 'https://images2.imgbox.com/d4/a1/PXzzpDjb_o.png', },
- { name: 'TorrentDay', url: 'http://www.torrentday.com/browse.php?search=%title_year%', icon: 'https://images2.imgbox.com/01/c0/sELs3Ft4_o.png', },
- { name: 'CinemaGeddon', url: 'http://cinemageddon.net/browse.php?search=%imdbid%', icon: 'https://images2.imgbox.com/0d/9c/rkhfaakh_o.png', },
- { name: 'KaraGarga', url: 'https://karagarga.in/browse.php?search=%imdbid%&search_type=imdb', icon: 'https://images2.imgbox.com/cc/ea/EMx6RWyb_o.png', },
- // { name: 'Hd-T', url: 'http://hd-torrents.org/torrents.php?search=%imdbid%', icon: 'https://images2.imgbox.com/c1/e7/LFKIWxpN_o.png', },
- // { name: 'Filelist', url: 'http://filelist.ro/browse.php?search=%imdbid%', icon: 'https://images2.imgbox.com/9e/2e/R3yGIQm7_o.png', },
- // { name: 'IPT', url: 'http://www.iptorrents.com/t?q=%ttimdbid%', icon: 'https://images2.imgbox.com/0b/49/AwbWiNMY_o.png', },
- // { name: 'PrivateHD', url: 'https://privatehd.to/torrents?in=1&search=%title%&order=age&sort=desc', icon: 'https://images2.imgbox.com/64/a7/KBgM8R4y_o.png', },
- { name: 'TurkTorrent', url: 'https://turktorrent.us/?p=torrents&pid=10&q=%ttimdbid%', icon: 'https://images2.imgbox.com/79/1f/Jbd4Vu5n_o.png', },
- { name: 'Vikipedi', url: 'https://www.google.com.tr/search?q=%title%+Turkish+Wikipedia', icon: 'https://images2.imgbox.com/11/c7/bY5WbObT_o.png', },
- { name: 'Wikipedia', url: 'https://www.google.com.tr/search?q=%title%+English+Wikipedia', icon: 'https://images2.imgbox.com/cd/e0/OgTwm1AC_o.png', },
- { name: 'Fandom', url: 'http://fandom.wikia.com/?s=%title%', icon: 'https://images2.imgbox.com/18/73/EDiJiEBk_o.png', },
- { name: 'IMP Awards', url: 'http://impawards.com/search.php?search_data=%title%', icon: 'https://images2.imgbox.com/fc/78/oxUxSfB5_o.png', },
- { name: 'Fanart', url: 'https://fanart.tv/?sect=3&s=%title%', icon: 'https://images2.imgbox.com/4b/40/6zjbxrch_o.png', },
- // { name: 'FirstShowing', url: 'https://www.firstshowing.net/?s=%title%', icon: 'https://images2.imgbox.com/79/b3/F8dpZuZD_o.png', },
- { name: 'Subscene', url: 'http://subscene.com/subtitles/title?q=%title%', icon: 'https://images2.imgbox.com/b0/3b/SY0apigg_o.png', },
- { name: 'OpenSubtitles', url: 'https://www.opensubtitles.org/en/search/sublanguageid-eng,tur/imdbid-%imdbid%', icon: 'https://images2.imgbox.com/60/3c/I7sFiFdm_o.png', },
- { name: 'Addic7ed', url: 'https://www.addic7ed.com/search.php?search=%title%', icon: 'https://images2.imgbox.com/79/66/O9utGGF8_o.png', },
- // { name: 'Podnapisi', url: 'https://www.podnapisi.net/en/subtitles/search/?keywords=%title%', icon: 'https://images2.imgbox.com/ed/a7/1tY9szFy_o.png', },
- { name: "PlanetDP", url: "https://www.planetdp.org/movie/search?title=%ttimdbid%", icon: "https://images2.imgbox.com/fc/77/EFoYyf12_o.png", },
- { name: 'Türkçe Altyazı', url: 'http://www.turkcealtyazi.org/find.php?cat=sub&find=%ttimdbid%', icon: 'https://images2.imgbox.com/b1/11/4ULjZm1K_o.png', },
-
- // {name: "", url: "", icon: "",}
- // {name: "", url: "", icon: "",}
- ];
-
- const torrentSites = [
- { name: 'RARBG', url: 'https://rarbgmirror.com/torrents.php?search=%imdbid%', icon: 'https://images2.imgbox.com/34/0b/bCrT9fHL_o.png', },
- { name: '1337x', url: 'https://www.1337x.to/sort-search/%title_year%/time/desc/1/', icon: 'https://images2.imgbox.com/1d/9e/mgOmJEvI_o.png', },
- { name: 'Zooqle', url: 'https://zooqle.com/search?q=%title_year%&s=ns&v=t&sd=d', icon: 'https://images2.imgbox.com/25/3b/Sd8La3js_o.png', },
- { name: 'TorrentGalaxy', url: 'https://torrentgalaxy.to/torrents.php?search=%ttimdbid%&sort=id&sort=id&order=desc', icon: 'https://images2.imgbox.com/c2/27/dGkG9vjT_o.png', },
- { name: 'ETTV', url: 'https://www.ettv.tv/torrents-search.php?search=%title%&sort=id&order=desc', icon: 'https://images2.imgbox.com/fa/3e/zi3h52EA_o.png', },
- { name: 'PSA', url: 'http://psarips.com/?s=%title_year%', icon: 'https://images2.imgbox.com/26/c1/2OXmz3tN_o.png', },
- { name: 'RuTracker', url: 'http://rutracker.org/forum/tracker.php?nm=%title_year%', icon: 'https://images2.imgbox.com/24/5d/kj3YSoFr_o.png', },
- { name: 'Zamunda', url: 'http://zamunda.net/bananas?&search=%title_year%', icon: 'https://images2.imgbox.com/89/58/BcmHxuVW_o.png', },
- { name: 'BTN', url: 'http://broadcasthe.net/torrents.php?searchstr=%title_year%', icon: 'https://images2.imgbox.com/d4/a1/PXzzpDjb_o.png', },
- { name: 'TorrentDay', url: 'http://www.torrentday.com/browse.php?search=%title_year%', icon: 'https://images2.imgbox.com/01/c0/sELs3Ft4_o.png', },
- { name: 'CinemaGeddon', url: 'http://cinemageddon.net/browse.php?search=%imdbid%', icon: 'https://images2.imgbox.com/0d/9c/rkhfaakh_o.png', },
- { name: 'KaraGarga', url: 'https://karagarga.in/browse.php?search=%imdbid%&search_type=imdb', icon: 'https://images2.imgbox.com/cc/ea/EMx6RWyb_o.png', },
- { name: 'Hd-T', url: 'http://hd-torrents.org/torrents.php?search=%imdbid%', icon: 'https://images2.imgbox.com/c1/e7/LFKIWxpN_o.png', },
- { name: 'Filelist', url: 'http://filelist.ro/browse.php?search=%imdbid%', icon: 'https://images2.imgbox.com/9e/2e/R3yGIQm7_o.png', },
- { name: 'IPT', url: 'http://www.iptorrents.com/t?q=%ttimdbid%', icon: 'https://images2.imgbox.com/0b/49/AwbWiNMY_o.png', },
- { name: 'PrivateHD', url: 'https://privatehd.to/torrents?in=1&search=%title%&order=age&sort=desc', icon: 'https://images2.imgbox.com/64/a7/KBgM8R4y_o.png', },
- { name: 'TurkTorrent', url: 'https://turktorrent.us/?p=torrents&pid=10&q=%ttimdbid%', icon: 'https://images2.imgbox.com/79/1f/Jbd4Vu5n_o.png', },
- ];
-
- var drama_sites = [
- { name: 'MyDramaList', url: 'https://mydramalist.com/search?q=%title%', icon: 'https://images2.imgbox.com/18/9d/voQieZdD_o.png', },
- { name: 'AsianWiki', url: 'https://asianwiki.com/index.php?title=Special%3ASearch&search=%title%', icon: 'https://images2.imgbox.com/73/a6/kUDT1yO9_o.png', },
- { name: 'Hancinema', url: 'https://www.hancinema.net/googlesearch.php?cx=partner-pub-1612871806153672%3A2t41l1-gajp&cof=FORID%3A10&ie=ISO-8859-1&hl=en&q=%title%', icon: 'https://images2.imgbox.com/46/c6/qxK0R7S4_o.png', },
- { name: 'Viki', url: 'https://www.viki.com/search?q=%title%&type=series', icon: 'https://images2.imgbox.com/9c/46/Flf1ykIh_o.png', },
- { name: 'Soompi', url: 'https://www.soompi.com/search?query=%title%', icon: 'https://images2.imgbox.com/d9/ab/4jDFz2WS_o.png', },
- { name: 'DramaBeans', url: 'https://www.dramabeans.com/?s=%title%', icon: 'https://images2.imgbox.com/62/c1/2mKN3cII_o.png', },
- ];
-
- var anime_sites = [
- { name: 'MAL', url: 'https://myanimelist.net/search/all?q=%title%', icon: 'https://images2.imgbox.com/bf/8b/cQ2UnZIa_o.png', },
- { name: 'AniDB', url: 'https://anidb.net/perl-bin/animedb.pl?adb.search=%title%&show=search&do.search=search', icon: 'https://images2.imgbox.com/3b/c9/eeUYC5n7_o.png', },
- { name: 'ANN', url: 'https://www.animenewsnetwork.com/search?q=%title%', icon: 'https://images2.imgbox.com/64/ca/uWlLBCwp_o.png', },
- { name: 'LiveChart', url: 'https://www.livechart.me/search?q=%title%', icon: 'https://images2.imgbox.com/85/08/C91WXD3m_o.png', },
- { name: 'AniList', url: 'https://anilist.co/search/anime?search=%title%', icon: 'https://images2.imgbox.com/98/a6/NfPnZ1Hy_o.png', },
- { name: 'Kitsu', url: 'https://kitsu.io/anime?&text=%title%', icon: 'https://images2.imgbox.com/88/c9/Q9wsiMwc_o.png', },
- { name: 'aniSearch', url: 'https://www.anisearch.com/anime/index/?page=1&char=all&text=%title%&smode=2', icon: 'https://images2.imgbox.com/9c/a3/gMmGqWe7_o.png', },
- { name: 'Nyaa', url: 'https://nyaa.si/?&q=%org_title%', icon: 'https://images2.imgbox.com/ae/83/Wt7miqlB_o.png', },
- { name: 'AnimeTosho', url: 'https://animetosho.org/search?q=%org_title%', icon: 'https://images2.imgbox.com/95/99/ielNsiUu_o.png', },
- { name: 'AniDex', url: 'https://anidex.info/?q=%org_title%', icon: 'https://images2.imgbox.com/b4/e1/uCD81F45_o.png', },
- { name: 'AnimeBytes', url: 'https://animebytes.tv/torrents.php?searchstr=%title%&force_default=1', icon: 'https://images2.imgbox.com/aa/58/vsP6uAXE_o.png', },
- { name: 'BakaBT', url: 'https://bakabt.me/browse.php?q=%title%', icon: 'https://images2.imgbox.com/6a/b8/4qBbiNge_o.png', },
- { name: 'RuTracker', url: 'http://rutracker.org/forum/search_cse.php?q=%org_title%', icon: 'https://images2.imgbox.com/24/5d/kj3YSoFr_o.png', },
- { name: 'TürkAnime', url: 'http://www.turkanime.tv/?q=%title%', icon: 'https://images2.imgbox.com/48/1b/6S4bA8pN_o.png', },
- ];
-
- // Styles
- GM_addStyle(`
- .quick-search {margin-left: 0; margin-right: 0;}
- .quick-search > div {justify-content: flex-start; flex-wrap: wrap; height: unset; padding: 0.6rem;}
- .quick-search button {padding: 0.2rem; opacity: 0.7;}
- .quick-search button:hover {opacity: 1;}
- .quick-search a {display: flex;}
- .quick-search img {height: 1.4rem; width: 1.4rem;}
- `);
-
- // Title edit
- const titleEdit=(t) => {
- return t
- .replace(/[\/\\()~?<>{}]/g, "") //remove bad chars
- .replace("&","%26") //replace & with code
- .replace("&", "%26")
- .replace('"', '%22')
- .replace("#", "%23")
- .replace("$", "%24")
- .replace("%", "%25")
- .replace("'", "%27")
- .replace("*", "%2A")
- .replace("-", "%2D")
- ;
- };
-
- // Variables
- const regex = /\/title\/(tt\d+)\/?/;
- const pageUrl = window.location.href;
- var isSerial = ($('.episode-guide-text').length > 0) ? true : false;
- var ttImdbId = regex.exec( pageUrl )[1];
- var title = titleEdit( $('[data-testid="hero-title-block__title"]').text().trim() );
- var orgTitle = titleEdit( $('[data-testid="hero-title-block__original-title"]').text().replace(/Original title: /i,"").trim() );
- orgTitle = (orgTitle == "") ? title : orgTitle;
- var year = $('title').text().replace(/.+\(.*?(\d{4}).*\) - IMDb/, "$1");
- var titleYear = isSerial ? title : title + " " + year;
- var episodeCheck = $('[data-testid="hero-subnav-bar-season-episode-numbers-section"]').length > 0;
- if (episodeCheck) {
- let parent = $('[data-testid="hero-title-block__series-link"]');
- ttImdbId = regex.exec( parent.attr("href") )[1];
- title = parent.text();
- orgTitle = title;
- titleYear = title;
- }
-
- // Anime & Drama
- var isDrama;
- var isAnime;
- var language = $('[data-testid="title-details-languages"]').text().trim();
- var genre = $('[data-testid="genres"]').text().trim();
- if (language.search( /(Korean|Japanese|Mandarin|Chinese|Tagalog|Cantonese)/i ) >= 0 && language.search( /English/i ) < 0 && genre.search( /Animation/i ) < 0) {isDrama = true;}
- if (language.search( /Japanese/i ) >= 0 && language.search( /English/i ) < 0 && genre.search( /Animation/i ) >= 0) {isAnime = true;}
- console.log(isDrama);
-
- // Functions
- const url=(u) => {
- return u
- .replace("%ttimdbid%", ttImdbId)
- .replace("%imdbid%", ttImdbId.replace("tt",""))
- .replace("%title%", title)
- .replace("%year%", year)
- .replace("%title_year%", titleYear)
- .replace("%org_title%", orgTitle)
- ;
- };
- const refPos = (p_ref, nthParent) => {
- let ref = document.querySelector(p_ref);
- for (let x = 0; x < nthParent; x++) {
- ref = ref.parentElement;
- }
- ref = ref.getBoundingClientRect()
- let width = ref.width;
- return {
- top: (window.scrollY + ref.top) + "px",
- bottom: (window.scrollY + ref.bottom) + "px",
- left: ref.left + "px",
- width: width + "px",
- };
- };
- const putBtns=(group, id, ref) => {
- // Delete some margin
- $(':not(#searchOn) >' + ref).parent().parent().children().css("margin-bottom", "0px" );
- // Create clone area
- let cloneArea = $('.watchContainerClone');
- if (cloneArea.length <= 0) {
- $('body').prepend('<div class="watchContainerClone" style="position: absolute; z-index: 100; padding-top: 1rem;"></div>');
- cloneArea = $('.watchContainerClone');
- let pos = refPos('[data-testid="hero-title-block__title"]', 2);
- cloneArea.css("top", pos.bottom).css("left", pos.left).css("width", pos.width);
- }
- // Put bar
- let bar = $('[data-testid="hero-subnav-bar-right-block"]').parent().parent().clone().attr("id", id).addClass("quick-search");
- bar.children(0).html("");
- bar.prependTo( cloneArea );
- // Put buttons
- let cls = $('[data-testid="hero-subnav-bar-all-topics-button"]').attr("class");
- group.forEach(function(s) {
- $('#' + id + ' > div:first-child').append('<button class="' + cls + '" title="' + s.name + '"><a href="' + url(s.url) + '" target="_blank"><img src="' + s.icon + '"></img></a></button>');
- });
- // Position and space for Clone
- cloneArea.css("padding-top", 0);
- let cloneHeight = document.querySelector('.watchContainerClone').getBoundingClientRect().height + "px";
- $(':not(#searchOn) >' + ref).parent().parent().css("margin-bottom", cloneHeight );
- };
-
- // Put Search Buttons
- putBtns(sites, 'searchOn', '[data-testid="hero-title-block__title"]');
- })();