NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name Supreme7 PH!IMDB // @namespace https://prohardver.hu/tag/supreme7.html // @version 0.5 // @description TMDB (themoviedb.org) film/sorozat adatok lekérése a Prohardver! lapcsalád fórumán IMDB url alapján // @author Supreme7 // @match https://prohardver.hu/tema/* // @match https://mobilarena.hu/tema/* // @match https://itcafe.hu/tema/* // @match https://gamepod.hu/tema/* // @grant GM_xmlhttpRequest // @updateURL https://openuserjs.org/meta/Supreme7/Supreme7_PH!IMDB.meta.js // @downloadURL https://openuserjs.org/install/Supreme7/Supreme7_PH!IMDB.user.js // @copyright 2020, Supreme7 (https://openuserjs.org/users/Supreme7) // @license MIT // ==/UserScript== (function() { 'use strict'; // Ha az új hozzászólás, válasz, vagy szerkesztés gombra kattint, elindul a szkript $(document).on("click", "[data-action-msg-new], [data-action-msg-reply], [data-action-msg-mod]", function(e) { // Megnézzük melyik szerkesztőt használja a felhasználó if($("[data-rtif-legacy='0']").length > 0){ window.editor = 1; // Régi szerkesztő }else{ window.editor = 0; // Új szerkesztő } e.preventDefault(); // IMDB gomb a szerkesztőhöz adása $(".msg-editor").find(".msg-controls").prepend('<a id="s7-imdb-button" data-toggle="collapse" href="#s7-imdb" class="btn btn-success btn-sm text-white">IMDB</a>'); // S7 PH!IMDB felület $(".msg-upload-collapse").before(`<br><div class="card collapse" id="s7-imdb" style="background: none;"><div class="card-header" style="padding: 2px;">SUPREME7 PH!MDB</div> <div class="card-body"><input type="text" placeholder="IMDB url" style="text-align: center; padding: 5px; width: 100%; border: 1px dotted #888;" id="imdb-url"></div> <div id="imdb-rating-box" style="display: none;"></div> <textarea id="movie-data" style="display: none; width: 100%;" rows="4"></textarea> <div class="text-center"> <div class="btn-group"><button class="btn btn-warning copy-movie-data" style="display: none;">Másolás</button></div> <div class="btn-group"><button class="btn btn-success insert-movie-data" style="display: none;">Beillesztés</button></div></div> </div> `); }); // Az IMDB gomb lenyomására scroll az input mezőhöz és fókusz $(document).on('click', '#s7-imdb-button', function(){ $("input#imdb-url").focus(); $("html, body").animate({ scrollTop: $('#s7-imdb').offset().top }, 500); }); // Ha változik az input mező tartalma $(document).on('change', 'input#imdb-url', function(){ $("textarea#movie-data").text(""); var value = $("input#imdb-url").val(); if(value == ""){ // wtf? }else{ // IMDB azonosító kikukázása az URL-ből var imdbId = matchImdb(value); if(imdbId != false){ // TMDB adatok keresése GM_xmlhttpRequest({ url: "https://api.themoviedb.org/3/find/"+imdbId+"?api_key=d90f096470d9bc1233cafec11b273eeb&language=hu&external_source=imdb_id", method: 'GET', onload: function(res) { if (res.status === 200) { var json = JSON.parse(res.responseText); if(json["movie_results"].length > 0 || json["tv_results"].length > 0 ){ // IMDB rating plugn funkció loadImdbRating(imdbId); var dataTitle; var dataOriginalTitle; var dataReleaseYear; var genres = ""; // Filmtalálat if(json["movie_results"].length > 0){ // Film adatok dataTitle = json["movie_results"][0]["title"]; dataOriginalTitle = json["movie_results"][0]["original_title"]; dataReleaseYear = json["movie_results"][0]["release_date"].substring(0,4); // Műfajok $.each(json["movie_results"][0]["genre_ids"], function(key, value){ genres += "#"+ genresById(value) + " "; }); }else if(json["tv_results"].length > 0){ // Sorozat adatok dataTitle = json["tv_results"][0]["name"]; dataOriginalTitle = json["tv_results"][0]["original_name"]; dataReleaseYear = json["tv_results"][0]["first_air_date"].substring(0,4); // Műfajok $.each(json["tv_results"][0]["genre_ids"], function(key, value){ genres += "#"+ genresById(value) + " "; }); } // A szerkesztőnek megfelelően formázott szöveget illesztjük a textarea-ba a kapott filmadatok alapján if(editor === 0){ // ÚJ SZERKESZTŐ $("textarea#movie-data").val('<p><a href="https://www.imdb.com/title/'+ imdbId +'/" target="_blank" rel="noopener"><b>' + dataTitle + '</b></a> (' + dataReleaseYear + ') - ' + dataOriginalTitle + '</p><p>' + genres + '</p>').show(); }else if(editor === 1){ // RÉGI SZERKESZTŐ $("textarea#movie-data").val("[L:https://www.imdb.com/title/"+ imdbId +"/][b]" + dataTitle + "[/b][/L] (" + dataReleaseYear + ") " + dataOriginalTitle + "\n" + genres + "").show(); } // Másolás-beillesztés gombok megjelenítése $(".copy-movie-data").show(); $(".insert-movie-data").show(); // Másolás gombra kattintva vágólapra másolja a kódot $(document).on("click", ".copy-movie-data", function(){ $("textarea#movie-data").select(); document.execCommand('copy'); }); // Beillesztés gombra kattintva a használt szerkesztőnek megfelelő kódott illeszt a szerkesztő mezőbe $(document).one("click", ".insert-movie-data", function(){ var formattedCode = $("textarea#movie-data").val(); var content; if(editor === 0){ // ÚJ SZERKESZTŐ content = $("div.rtif-content").html(); $("div.rtif-content").html((content === "<p><br data-mce-bogus=\"1\"></p>" ? formattedCode : content + "<br>" + formattedCode)); }else if(editor === 1){ // RÉGI SZERKESZTŐ content = $("textarea.rtif-content").val(); $("textarea.rtif-content").val((content == "" ? formattedCode : content + "\n" + formattedCode)); } $("html, body").animate({ scrollTop: $('.msg-editor').offset().top }, 500); }); }else{ alert("Nem található film vagy sorozat a megadott azonosítóval!"); } }else{ alert("Hiba történt az adatok lekérdezése során!"); } } }); } } }); function genresById(id){ // Műfajok azonosító alapján var genres = {"10768": "Háború-politika", "10767" : "Talkshow", "10766":"Szappanopera", "10765" : "Sci-Fi-Fantasy", "10764": "Valóságshow", "10763" : "Hírműsor", "10762" : "Gyerek", "10759" : "Akció-kaland", "28" : "Akció", "12" : "Kaland", "16" : "Animációs", "35" : "Vígjáték", "80" : "Bűnügyi", "99" : "Dokumentum", "18" : "Dráma", "10751" : "Családi", "14" : "Fantasy", "36" : "Történelmi", "27" : "Horror", "10402" : "Zenei", "9648" : "Rejtély", "10749" : "Romantikus", "878" : "Sci-fi", "10770" : "TV-film", "53" : "Thriller", "10752" : "Háborús", "37" : "Western"}; return genres[id]; } function matchImdb(string){ if(string.match(/(https:\/\/|https:\/\/www\.|https:\/\/m\.|m\.)imdb\.com\/title\/tt([0-9]+)\//g)){ //var url = new URL(string); //var split = url.pathname.split("/"); var regexp = /\/tt([0-9]+)\//g; var match = regexp.exec(string); var imdbId = "tt" + match[1]; return imdbId; }else{ alert("Hibás URL formátum"); return false; } } function loadImdbRating(imdbId){ // IMDB rating plugin $("#imdb-rating-box").html('<span id="imdb-rating" class="imdbRatingPlugin text-success" data-user="" data-title="'+imdbId+'" data-style="p4" ></span>'); $('[id^="imdb-jsonp"]').remove(); //to prevent creation of multiple script tags. (function(d,s,id){ var js,stags=d.getElementsByTagName(s)[0];if(d.getElementById(id)){}js=d.createElement(s);js.id=id;js.src="https://ia.media-imdb.com/images/G/01/imdb/plugins/rating/js/rating.js";stags.parentNode.insertBefore(js,stags); })(document,'script','imdb-rating-api'); } // Figyeli, hogy az IMDB értékelés betöltött-e, és ha igen, azt is beilleszti a formázott kódba $("body").on('DOMSubtreeModified', "#imdb-rating", function() { var imdbRatingText = $("#imdb-rating").find("span.rating").text(); var currentVal = $("textarea#movie-data").val(); if(imdbRatingText != ""){ if(editor === 0){ // ÚJ SZERKESZTŐ $("textarea#movie-data").val(currentVal + "<p><b>IMDB:</b> " + imdbRatingText + "</p>"); }else if(editor === 1){ // RÉGI SZERKESZTŐ $("textarea#movie-data").val(currentVal + "\n[b]IMDB:[/b] " + imdbRatingText + ""); } } }); })();