Greasy Fork

Greasy Fork is available in English.

Filmweb.pl - Check on IMDb, RottenTomatoes and more

Adds buttons to imdb.com, rottentomatoes.com, metacritic.com, upflix.pl, boxofficemojo.com

当前为 2025-07-13 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name           Filmweb.pl - Check on IMDb, RottenTomatoes and more
// @name:pl        Filmweb.pl - Zobacz na IMDb, RottenTomatoes i innych
// @namespace      http://greasyfork.icu/users/124677-pabli
// @version        0.11
// @description    Adds buttons to imdb.com, rottentomatoes.com, metacritic.com, upflix.pl, boxofficemojo.com
// @description:pl Dodaje przyciski do imdb.com, rottentomatoes.com, metacritic.com, upflix.pl, boxofficemojo.com
// @author         Pabli
// @license        MIT
// @icon           https://icons.duckduckgo.com/ip3/www.filmweb.pl.ico

// @match          https://www.filmweb.pl/serial/*
// @match          https://www.filmweb.pl/film/*
// @match          https://www.filmweb.pl/tvshow/*

// @match          https://www.imdb.com/*
// @match          https://www.rottentomatoes.com/*
// @match          https://www.metacritic.com/*
// @match          https://www.boxofficemojo.com/*
// @match          https://upflix.pl/*

// @grant          GM_addStyle
// ==/UserScript==

(function() {
'use strict';

const hostName = window.location.hostname;
const urlParams = new URLSearchParams(window.location.search);

const clickFirstSearchResult = true;
const param = 'cfsr';

if (hostName === 'www.filmweb.pl') {

	let title = document.querySelector('.filmCoverSection__originalTitle')?.firstChild?.textContent || document.querySelector('.filmCoverSection__title')?.textContent;
	if (!title) return;

	title = encodeURIComponent(title);
	const year = document.querySelector('.filmCoverSection__year').innerText;

	const section = document.querySelector('.filmCoverSection__filmPreview');
	let linkDiv = document.createElement("div");
	linkDiv.setAttribute("id", "zobaczna");

	const path = window.location.pathname.split('/');

	const movieTv = path[1] === 'film' ? 'movie' : 'tv';
	const imdbMovieTv = path[1] === 'film' ? 'ft&ref_=fn_mov' : 'tv&ref_=fn_tv';
	const mcMovieTv = path[1] === 'film' ? '2' : '1';
	const upflixMovieTv = path[1] === 'film' ? 'film' : 'serial';

	function link(search, website, name) {
		let button = `<a href="${search}" title="Zobacz na ${website}" target="_blank"><img src="https://icons.duckduckgo.com/ip3/${website}.ico" width="16"><span>${name}</span></a>`;
		linkDiv.innerHTML += button;
	}

	link(`https://www.imdb.com/find?q=${title} ${year}&s=tt&ttype=${imdbMovieTv}&${param}`, 'imdb.com', 'IMDb');
	link(`https://www.rottentomatoes.com/search/?search=${title}&${param}=${movieTv}`, 'rottentomatoes.com', 'Rotten Tomatoes');
	link(`https://www.metacritic.com/search/${title}/?page=1&category=${mcMovieTv}&${param}`, 'metacritic.com', 'metacritic');
	link(`https://upflix.pl/${upflixMovieTv}/${title}?${param}`, 'upflix.pl', 'upflix');
	if (path[1] === 'film') link(`https://www.boxofficemojo.com/search/?q=${title} ${year}&${param}`, 'boxofficemojo.com', 'BoxOfficeMojo');

	GM_addStyle(`
		#zobaczna {
			max-width: 705px;
		}
		#zobaczna a {
			display: inline-flex;
			align-items: center;
			margin-top: 5px;
			margin-right: 5px;
			color: #ccc;
			border-radius: 0.125rem;
			border: 1px solid var(--main-border-color, rgba(172, 172, 172, .3));
			transition: border-color .3s cubic-bezier(.25,.46,.45,.94);
			padding: 5px 10px;
		}
		#zobaczna a:hover {
			border-color: #888;
		}
		#zobaczna img {
			width: 16px;
			margin-right: 5px;
		}
		.filmCoverSection__ratings {
			height: auto !important;
		}
	`);

	section.appendChild(linkDiv);
}

if (clickFirstSearchResult && hostName !== 'www.filmweb.pl') {
	if (urlParams.has(param)) {

		const movieTv = urlParams.get(param) === 'movie' ? 'movie' : 'tvSeries';

		urlParams.delete(param);
		history.replaceState(null, '', '?' + urlParams);

		switch (hostName) {
			case 'www.imdb.com':
				document.querySelector('.ipc-metadata-list-summary-item__t').click();
				break;
			case 'www.rottentomatoes.com':
				document.querySelector(`[type="${movieTv}"] search-page-media-row:nth-child(1) a`).click();
				break;
			case 'www.metacritic.com':
				setTimeout(() => {
					document.querySelector('.c-pageSiteSearch-results a').click();
				}, 500);
				break;
			case 'upflix.pl':
				setTimeout(() => {
					document.querySelector('.MuiContainer-root div[class*="_video_"] h3 > a').click();
				}, 2000);
				break;
			case 'www.boxofficemojo.com':
				document.querySelector('.a-size-medium.a-link-normal.a-text-bold').click();
				break;
		}
	}

	// Make it possible to go back to the search results
	document.addEventListener('mouseup', (e) => {
		if (e.button === 3) { // Mouse backward button
			history.back();
		}
	});
	document.addEventListener('keydown', (e) => {
		if ((e.altKey && e.code === 'ArrowLeft')) {
			history.back();
		}
	});
}

})();