您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Planetdp portaldaki yapım sayfalarına forumdaki ilgili konuları ekler.
// ==UserScript== // @name [DP] PlanetDP Forum Konuları // @description Planetdp portaldaki yapım sayfalarına forumdaki ilgili konuları ekler. // @version 1.1 // @author nht.ctn // @namespace https://github.com/nhtctn // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAARrgAAEa4BJbqpYAAAABh0RVh0U29mdHdhcmUAcGFpbnQubmV0IDQuMC45bDN+TgAABXVJREFUeF7tmlmIHFUUhk80JC5xF3dcQMUHEyU+qPiiiSIqOIqRccOFYEJ6m4mTRAU1uIArRogPkijBII4PmgcVwQeJScyDLy4jBoKCS2IkErOgJHESq/zundPVS053V2e6ZqrH+uGnqrvO8p9bt++9faskQ4YMGTJkyJChEwj75MSgKFcFJbknyMsizl+CrwQFeYvja2FBXuB8gPN7gz65kuPx6tqdCOfJCRTUSyGrOP4QFiVsh/gFcDO+KznOCXMyTUOnF2Eok7i7NyL6fbjfKuxwSby9cDDIyexQZJKmTAfCpXIE4nrh95b4TpM83/pekYaG4I7PRMyXltCkSUNshJeplLGFv+tFeQoBByxxY0U0DMNHnR6VljyCxXIcST+xBI0X0fNBMCDHqsTk4Iun61kixp0F+TzRRqCbTXFJzOQpITfnU3ROVsmdBcFft5KmjSy2XlbJnYOb361kaSTjQRDm5VqVPnq4LkXQzVaytBK9Qx2bGdz63UqSehbkNi3Bwy2caJhz9GN84PSZmSDlZMz6SEuIwHfr4OLYvcP/qSnKQStB2onufeEDcpSW4lEeyLm2jnHtLP26MXCYVR+4m0iRV2spHtSTi64VZCs/7xl6yQZGc6sDdhvRf7eW4sGd76m5XpSd2DT+P8FA8li1Q7eR4kpaigefbzJstgXz5Ww1qQUt1F/v0FXMyzwtxcNqAEe+3xjeKUeqWQVdOwUqgz65VUvxoNBey86RawNqVgGDyHTLuFvIDbxIS/Fo9pOmAXYx652qpiPw21wF2W45pJ3o3qJlROAnPWjZRqSB1LQCnJabxiknDbBMS/Bwix9q+d2yLROfTWpegetGXPjXckgrKfRgsFAu1BI83JrAsq1nkJPz1KUCGmClZZxW0gArVHqE2DXU/YfwoPVOadV90kKnk7t/skr3CPrlTBpgn2VfT+xq1g4RCHwdF8d1E7QV0TjMT3a2So6A7tibOcR4XN0OBcEfwiCwHNNACp2rUiPQe2fyfewxrGEPKAODh2GqeoIrkBuzQCVGYF4/hmubLJ9GJE6PujcGPeFmAu+yAow10bGHu1yz4nPwa5iivGf5NKM5C1gIS3IuyddaQcaK5N8AL1BJNaBRXrR8mpEGO3Qd0AoIWG0FS5II3cp09aC7yyqjBlx/3vJrSWsl2Axux4Vkv5nBEiCN/SMsMM0drRJqgJap8G3LNwZ3hwvkJA0VD83+XHSKFLQDvkmu65vt5bmfAnaH/aAW/4UaKh78mxwF+ccKVk/sNiDuG4rYbV0vE5u/sP0ODnK+yOVotYGpa/y887VixiG+X8TeKHVwOyiI3GIFq6azIfgcdfNwz+/C+XI+g+gVEfv4nJNp7T7zJ/4s+JWVOy7x38aA2XqDtAxdFg9Zwcok6B74dBKvtridG/L3wPVW7nZIjO1M6Zdq6NZw3YRu3PABKUX/BJe0PZi0gH+oUZIZCH6W+C17Xhy6OG0V7+Dvft2yElE/w+XueVynXlvxdzkvF5PrfmKv4PhLdc5R0z1KL8npmq494HgXgp7geHvsVVMVXGL4JCLcq3FLKPAZt2jh3L0R9jEc4nyvKXyUJO7fxH+krQEvCTA2nIGQNxAUaxbpFMm5SiWkA345XZRX4U5LcKdJg+8nV/sPSJOGX1GW5A4EvoPARDdhybEmFa/YNYIf8UcGwPtolOdokHfhevg1/DUi8z/HtRxXw6VwAP5pFV1P/Po13cQCi6zTKM69ntt0A4TrB+At6jbxwMrycgr8sFlD0FBu2X2NukxMMNVeQpHLKHaH2QgF+cPtGqn5xAXz/mTGlRt8Y4yMHcO+AUb+aU5Vs/8PaJApNMh0t12uX2XIkCFDhgwZyhD5D0uUCqsOhFuBAAAAAElFTkSuQmCC // @include *://planetdp.org/title/* // @include *://www.planetdp.org/title/* // @grant GM_addStyle // @grant GM_xmlhttpRequest // @grant GM_getValue // @grant GM_setValue /* global $ */ // ==/UserScript== /*jshint esversion: 6 */ (function() { 'use strict'; // Bir sayfa için çekilen verinin ne kadar zamanda bir tazeleneceği [X, milisaniye / saniye / dakika / saat / gün / hafta / ay / yıl] var cacheTime = millisecondConverter(1, "saat"); // Yanıt sayısı ve açılma tarihini gösterip göstermeme. [true / false] var detailOpt = true; // Yapımın sadece bahsedildiği konuları gösterip göstermeme. [true / false] var metionOpt = true; // Geliştirme için notlar: =============================== // Şablon için: document.querySelector('.ipsComposeArea_dummy').click(); // ======================================================= // Yapım türü ve forum id eşleştirmesi. // Bilgiler: type: Sohbet, Çeviri, Çeviri İstek, Aktivite // ft: forum, topic // url: // main: Film, Dizi // sub: Genel, Uzak Doğu, Anime, Belgesel, Yerli, DpID -// Portalda önerdiğim sistem de buydu bu arada :/ DpID hariç tabii. var forum = [ // Sinema {type: "Sohbet", ft: "topic", id: 14, title: "Bugün Hangi Filmi İzlediniz?", url: "14-bugün-hangi-filmi-izlediniz/", main: ["Film"], sub: ["Genel", "Uzak Doğu", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 15, title: "Sinema Haberleri", url: "15-sinema-haberler/", main: ["Film"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 236, title: "Asya Film Haberleri", url: "236-asya-film-haberleri/", main: ["Film"], sub: ["Uzak Doğu"]}, {type: "Sohbet", ft: "forum", id: 17, title: "Vizyondaki Filmler", url: "17-vizyondaki-filmler/", main: ["Film"], sub: ["Genel", "Yerli", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 18, title: "Gelecek Program, Pek Yakında", url: "18-gelecek-program-pek-yakında/", main: ["Film"], sub: ["Genel", "Yerli", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 19, title: "Gösterimden Kalkan Filmler Arşivi", url: "19-gösterimden-kalkan-filmler-arşivi/", main: ["Film"], sub: ["Genel", "Uzak Doğu", "Yerli", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 224, title: "TV Filmleri", url: "224-tv-filmleri/", main: ["Film"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 20, title: "Film İncelemeleri", url: "20-film-incelemeleri/", main: ["Film"], sub: ["Genel", "Uzak Doğu", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 28, title: "Yerli Film İncelemeleri", url: "28-yerli-film-incelemeleri/", main: ["Film"], sub: ["Yerli"]}, {type: "Sohbet", ft: "forum", id: 21, title: "Eleştiri & Yorum", url: "21-eleştiri-yorum/", main: ["Film"], sub: ["Genel", "Yerli", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 22, title: "Unutulmazlar", url: "22-unutulmazlar/", main: ["Film"], sub: ["Genel", "Yerli", "Belgesel"]}, // Dizi {type: "Sohbet", ft: "topic", id: 17, title: "Bugün Hangi Dizi ve Dizi Bölümlerini İzlediniz?", url: "17-bugün-hangi-dizi-ve-dizi-bölümlerini-izlediniz/", main: ["Dizi"], sub: ["Genel", "Uzak Doğu", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 151, title: "Gösterimi Devam Eden Diziler", url: "151-gösterimi-devam-eden-diziler/", main: ["Dizi"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 238, title: "Asya Dizileri", url: "238-asya-dizileri/", main: ["Dizi"], sub: ["Uzak Doğu"]}, {type: "Sohbet", ft: "forum", id: 32, title: "Yerli Diziler", url: "32-yerli-diziler/", main: ["Dizi"], sub: ["Yerli"]}, {type: "Sohbet", ft: "forum", id: 152, title: "Gelecek Dönemde Yayınlanacak Diziler", url: "152-gelecek-dönemde-yayınlanacak-diziler/", main: ["Dizi"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 237, title: "Gelecek Asya Dizileri", url: "237-gelecek-asya-dizileri/", main: ["Dizi"], sub: ["Uzak Doğu"]}, {type: "Sohbet", ft: "forum", id: 219, title: "Mini Seriler", url: "219-mini-seriler/", main: ["Dizi"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 153, title: "Sonlanmış Diziler", url: "153-sonlanmış-diziler/", main: ["Dizi"], sub: ["Genel", "Belgesel"]}, {type: "Sohbet", ft: "forum", id: 226, title: "Final Yapanlar", url: "226-final-yapanlar/", main: ["Dizi"], sub: ["Genel"]}, {type: "Sohbet", ft: "forum", id: 227, title: "İptal Edilenler", url: "227-iptal-edilenler/", main: ["Dizi"], sub: ["Genel"]}, {type: "Sohbet", ft: "forum", id: 241, title: "Sonlanmış Asya Dizileri", url: "241-sonlanmış-asya-dizileri/", main: ["Dizi"], sub: ["Uzak Doğu"]}, // Diziye Özel Forumlar {type: "Sohbet", ft: "forum", id: 126, title: "Agents of S.H.I.E.L.D.", url: "126-agents-of-shield/", main: ["Dizi"], sub: ["dp2235"]}, {type: "Sohbet", ft: "forum", id: 127, title: "Arrow", url: "127-arrow/", main: ["Dizi"], sub: ["dp3927"]}, {type: "Sohbet", ft: "forum", id: 128, title: "Doctor Who", url: "128-doctor-who/", main: ["Dizi"], sub: ["dp12322"]}, {type: "Sohbet", ft: "forum", id: 129, title: "Game of Thrones", url: "129-game-of-thrones/", main: ["Dizi"], sub: ["dp16274", "dp98690"]}, {type: "Sohbet", ft: "forum", id: 130, title: "Gotham", url: "130-gotham/", main: ["Dizi"], sub: ["dp17412"]}, {type: "Sohbet", ft: "forum", id: 131, title: "Homeland", url: "131-homeland/", main: ["Dizi"], sub: ["dp54404"]}, {type: "Sohbet", ft: "forum", id: 125, title: "Legion", url: "125-legion/", main: ["Dizi"], sub: ["dp54351"]}, {type: "Sohbet", ft: "forum", id: 133, title: "Prison Break", url: "133-prison-break/", main: ["Dizi"], sub: ["dp35724", "dp35723"]}, {type: "Sohbet", ft: "forum", id: 134, title: "Shameless", url: "134-shameless/", main: ["Dizi"], sub: ["dp39406"]}, {type: "Sohbet", ft: "forum", id: 136, title: "Supernatural", url: "136-supernatural/", main: ["Dizi"], sub: ["dp42140"]}, {type: "Sohbet", ft: "forum", id: 137, title: "The Big Bang Theory", url: "137-the-big-bang-theory/", main: ["Dizi"], sub: ["dp43687"]}, {type: "Sohbet", ft: "forum", id: 138, title: "The Flash", url: "138-the-flash/", main: ["Dizi"], sub: ["dp44890"]}, {type: "Sohbet", ft: "forum", id: 140, title: "True Detective", url: "140-true-detective/", main: ["Dizi"], sub: ["dp49990"]}, {type: "Sohbet", ft: "forum", id: 141, title: "The Walking Dead", url: "141-the-walking-dead/", main: ["Dizi"], sub: ["dp48410", "dp95039"]}, {type: "Sohbet", ft: "forum", id: 142, title: "The X-Files", url: "142-the-x-files/", main: ["Dizi"], sub: ["dp48644"]}, {type: "Sohbet", ft: "forum", id: 143, title: "Westworld", url: "143-westworld/", main: ["Dizi"], sub: ["dp52252"]}, {type: "Sohbet", ft: "forum", id: 145, title: "Breaking Bad", url: "145-breaking-bad/", main: ["Dizi"], sub: ["dp6992"]}, {type: "Sohbet", ft: "forum", id: 146, title: "Dexter", url: "146-dexter/", main: ["Dizi"], sub: ["dp11707"]}, {type: "Sohbet", ft: "forum", id: 147, title: "Friends", url: "147-friends/", main: ["Dizi"], sub: ["dp15877"]}, {type: "Sohbet", ft: "forum", id: 148, title: "Lost", url: "148-lost/", main: ["Dizi"], sub: ["dp27780"]}, // Altyazı {type: "Aktivite", ft: "forum", id: 35, title: "Türk Sineması Aktiviteleri", url: "35-türk-sineması-aktiviteleri/", main: ["Film", "Dizi"], sub: ["Yerli"]}, {type: "Çeviri İstek", ft: "forum", id: 36, title: "Çeviri İstek", url: "36-çeviri-istek/", main: ["Film", "Dizi"], sub: ["Genel", "Uzak Doğu", "Anime", "Belgesel"]}, {type: "Çeviri İstek", ft: "topic", id: 5929, title: "Sahipsiz Kalmış Diziler", url: "5929-sahipsiz-kalmış-diziler/", main: ["Dizi"], sub: ["Genel"]}, {type: "Çeviri", ft: "forum", id: 39, title: "Film Çevirileri", url: "39-film-çevirileri/", main: ["Film"], sub: ["Genel"]}, {type: "Çeviri", ft: "forum", id: 40, title: "Dizi Çevirileri", url: "40-dizi-çevirileri/", main: ["Dizi"], sub: ["Genel"]}, {type: "Çeviri", ft: "forum", id: 239, title: "Anime Film Çevirileri", url: "239-anime-film-çevirileri/", main: ["Film"], sub: ["Anime"]}, {type: "Çeviri", ft: "forum", id: 240, title: "Anime Dizi Çevirileri", url: "240-anime-dizi-çevirileri/", main: ["Dizi"], sub: ["Anime"]}, {type: "Çeviri", ft: "forum", id: 42, title: "Belgesel Çevirileri", url: "42-belgesel-çevirileri/", main: ["Film"], sub: ["Belgesel"]}, {type: "Çeviri", ft: "forum", id: 234, title: "Asya Film Çevirileri", url: "234-asya-film-çevirileri/", main: ["Film"], sub: ["Uzak Doğu"]}, {type: "Çeviri", ft: "forum", id: 235, title: "Asya Dizi Çevirileri", url: "235-asya-dizi-çevirileri/", main: ["Dizi"], sub: ["Uzak Doğu"]}, {type: "Aktivite", ft: "forum", id: 43, title: "Çeviri Aktiviteleri", url: "43-çeviri-aktiviteleri/", main: ["Film", "Dizi"], sub: ["Genel", "Uzak Doğu", "Belgesel"]}, {type: "Aktivite", ft: "topic", id: 178, title: "Anime Çeviri Aktiviteleri", url: "178-anime-çeviri-aktiviteleri/", main: ["Dizi"], sub: ["Anime"]}, {type: "Aktivite", ft: "topic", id: 9485, title: "Anime Çeviri Aktiviteleri", url: "9485-anime-çeviri-aktiviteleri/", main: ["Film"], sub: ["Anime"]}, // Anime {type: "Sohbet", ft: "topic", id: 79, title: "En Son Hangi Animeyi İzlediniz?", url: "79-en-son-hangi-animeyi-izlediniz/", main: ["Film", "Dizi"], sub: ["Anime"]}, {type: "Sohbet", ft: "forum", id: 87, title: "Anime Gelecek Program", url: "87-anime-gelecek-program/", main: ["Film", "Dizi"], sub: ["Anime"]}, {type: "Sohbet", ft: "forum", id: 88, title: "Gösterime Girmiş/Tamamlanmış Animeler",url: "88-gösterime-girmiştamamlanmış-animeler/", main: ["Film", "Dizi"], sub: ["Anime"]}, {type: "Sohbet", ft: "forum", id: 89, title: "Anime İncelemeleri", url: "89-anime-incelemeleri/", main: ["Film", "Dizi"], sub: ["Anime"]}, // Animeye Özel Forumlar {type: "Sohbet", ft: "forum", id: 91, title: "One Piece", url: "91-one-piece/", main: ["Film", "Dizi"], sub: ["dp51902"]}, {type: "Sohbet", ft: "forum", id: 92, title: "Naruto", url: "92-naruto/", main: ["Film", "Dizi"], sub: ["dp31731", "dp31734", "dp55543"]}, {type: "Sohbet", ft: "forum", id: 93, title: "Fairy Tail", url: "93-fairy-tail/", main: ["Film", "Dizi"], sub: ["dp14635"]}, {type: "Sohbet", ft: "forum", id: 94, title: "Bleach", url: "94-bleach/", main: ["Film", "Dizi"], sub: ["dp6299"]}, {type: "Sohbet", ft: "forum", id: 95, title: "Meitantei Conan", url: "95-meitantei-conan/", main: ["Film", "Dizi"], sub: ["dp29551"]}, {type: "Sohbet", ft: "forum", id: 96, title: "Gintama", url: "96-gintama/", main: ["Film", "Dizi"], sub: ["dp16914"]}, {type: "Sohbet", ft: "forum", id: 97, title: "Hunter X Hunter", url: "97-hunter-x-hunter/", main: ["Film", "Dizi"], sub: ["dp19995", "dp19996"]}, {type: "Sohbet", ft: "forum", id: 221, title: "Universal Century", url: "221-universal-century/", main: ["Film", "Dizi"], sub: [""]}, {type: "Sohbet", ft: "forum", id: 222, title: "Paralel Evrenler", url: "222-paralel-evrenler/", main: ["Film", "Dizi"], sub: [""]}, ]; var excludedForum = [ {type: "archive", id: 117, title: "Deneme", url: "117-deneme/"}, ]; // Yapım sayfası için gerekli HTML ve CSS'ler. var forumHtml = ` <section class="forum_main" id="forumdiv"> <h1> <i class="fa fa-comments" aria-hidden="true"></i> Forum Konuları <a id="forumButton">FORUMDA KONU AÇ<i class="fa fa-caret-down" id="caret-down"></i></a> <div style="position: relative;"> <ul class="forum-dropdown unselectable"> </ul> </div> </h1> <div class="exactTopicContainer"></div> <div class="mentionedTopicContainer"></div> </section> `; var forumCss = ` .forumCol { display: grid; grid-template-columns: repeat(6, 1fr); grid-template-rows: 1fr; grid-column-gap: 0px; grid-row-gap: 0px; align-items: center; padding: 0 8px; margin-bottom: 3px; border-radius: 2px;} .div1 { grid-area: 1 / 1 / span 1 / span 3; text-align:left; align-items: center; padding: 0 4px; display: flex; position: relative;} .div2 { grid-area: 1 / 4 / span 1 / span 2; text-align:right; align-items: center; padding: 0 4px; } .div3 { grid-area: 1 / 6 / span 1 / span 1; text-align:right; align-items: center; padding: 0 4px; } .div2 a, .div3 a { color: inherit; cursor: pointer; } .colColor:nth-of-type(2n+1) { background-color: #d8d8d8; } .colColor:nth-of-type(2n) { background-color: #f1efed; } .colColor:hover { background-color:#ffffe0; } .topicThumb { height: 50px; width: 50px; margin: 4px 10px 4px 18px; background-size: cover; background-position: center center; } .defaultThumb_Dizi { background-image: url(https://forum.planetdp.org/uploads/monthly_2018_02/topicthumbnail.png.da974cf5f9ef0f494f4728dff92febde.png); } .defaultThumb_Film { background-image: url(https://i.ibb.co/MP8wvPJ/film-default2.png); } #caret-down {font-size: 15px;color: #fff;vertical-align: middle;margin-left: 15px;} .autor-avatar { display: inline-block; height: 20px; width: 20px; border-radius: 50%; vertical-align: sub; margin: 0 8px 0 0; background-size: cover; background-position: center center; } .forum_main { width: 100%; float: left; background: #fff; margin: 30px 0 0 0; padding: 25px; } .forum_main h1 { color: #000; font-size: 24px; font-weight: bold; margin: 0 0 20px 0; } .topicUrl { display: flex; align-items: center; } .forumBadge { height: 17px; border-radius: 4px; margin-right: 5px; color: white; font-weight: 500; padding: 0 8px; font-size: 10px; } .readStatus { font-size: 12px!important; color: #ff6d00c4; position: absolute; left: -2px; top: 50%; transform: translateY(-40%); } .readedTopic .readStatus { color: #74797dd9; } .readedTopic b { font-weight: 600; } a#forumButton:hover { background-color: #ff6d00; } a#forumButton { background-color: #3f51b5; color: #fff; font-size: 14px; font-weight: 400; padding: 10px 11px 10px 11px; border-radius: 5px; float: right; margin: -5px 0 0 0; cursor: pointer; } .forum-dropdown { display: none; list-style: none; position: absolute; z-index: 100; width: 166px; text-align: left; right: 0px; left: auto; top: 6px; } .unselectable { -webkit-user-select: none; /* Safari */ -moz-user-select: none; /* Firefox */ -ms-user-select: none; /* IE10+/Edge */ user-select: none; /* Standard */ } .forum-dropdown li { height: 32px; line-height: 30px!important; box-shadow: none; border: none; margin-top: 1px; text-align: center; list-style: none; } .forum-dropdown > li { background-color: #ff6d00; } .forum-dropdown > li a { font-size: 16px; height: 32px; color: #fff!important; text-decoration: none!important; display: block!important; cursor: pointer; font-weight: 600; float: none!important; margin: 0!important; transform: none!important; -webkit-transform: none!important; transition: none!important; -webkit-transition: none!important; } .forum-dropdown > li a:hover { text-shadow: 0px 0px 1.5px white; } .forum-drop-show { display: inherit!important; } .forum-dropdown > li > ul { display: none; flex-direction: column; width: max-content; right: 0; position: absolute; z-index: 101; } .forum-dropdown > li > ul > li { min-width: 180px; background-color: brown; padding: 0 10px; } .sublist-drop-show { display: flex!important; } /* MOBİL GÖRÜNÜM */ @media only screen and (max-width: 767px) and (min-width: 320px){ .forum_main {padding: 25px 15px;} .forum_main h1 {font-size: 18px !important;} .readStatus {display: none!important;} .topicThumb {margin: 0 10px 0 0;} a#forumButton {padding: 4px 6px 3px 6px; font-size: 12px; margin:auto;} .forumCol {display: flex; flex-wrap: wrap; flex-direction: column; align-items: center; padding: 8px; margin-bottom: 3px; width: 100%;} .div1 {display: inline-flex; width: 100%; text-align: left;} .div2 {display: inline-flex; width: 100%; text-align: end;} .div3 {display: inline-flex; width: 100%; text-align: end;} #date {display: none;} #comments {display: none;} .mentionCol #comments {display: block;} .mentionCol .div3 {display: none;} .aName {flex: auto; margin-right: 10px;} .tName {flex: auto; margin-bottom: 5px; font-size: 15px;} #autor {font-weight: normal !important;} #topicUrl {font-size: 15px;} .autor-avatar {box-shadow: 1px 1px 5px black;} .forum-dropdown {top: 2px;} } `; var forumCss_dark = ` .forum_main { background: #2a2a2a!important; } .forum_main h1 { color: #ccc!important; } .colColor:nth-of-type(2n+1) { background-color: #14141452!important; } .colColor:nth-of-type(2n) { background-color: #2e2e2e!important; } .colColor:hover { background-color: #1b1b1b!important; } `; // HTML ve CSS'leri uygula. document.querySelector('section.section-one').insertAdjacentHTML("afterend", forumHtml); GM_addStyle(forumCss); $('#dpDarkCss').after('<style id="forumCss_dark">' + forumCss_dark + '</style>'); darkToggle(); $('#darkSwitchButton').on("click", function() {darkToggle();} ); function darkToggle() { if ($('#dpDarkCss').attr("disabled")) { $('#forumCss_dark').prop("disabled", "disabled"); } else { $('#forumCss_dark').prop("disabled", ""); } } // Butona tıkladığında menüyü aç/kapa document.querySelector('#forumButton').onclick = function() { document.querySelector('.forum-dropdown').classList.toggle('forum-drop-show'); this.querySelector('i.fa').classList.toggle('fa-caret-up'); this.querySelector('i.fa').classList.toggle('fa-caret-down'); }; // Buton dışı bir yere tıklandığında menüyü kapa window.onclick = function(event) { if (!$(event.target).closest('#forumButton').length && !$(event.target).closest('.forum-dropdown').length && document.querySelector(".forum-dropdown.forum-drop-show")) { document.querySelector(".forum-drop-show").classList.remove('forum-drop-show'); var icon = document.querySelector('#forumButton > i.fa'); icon.classList.toggle('fa-caret-up'); icon.classList.toggle('fa-caret-down'); } else if (!$(event.target).closest('#sohbet-sublist').length && document.querySelector('#sohbet-sublist + .sublist-drop-show')) { document.querySelector('#sohbet-sublist + .sublist-drop-show').classList.remove('sublist-drop-show'); } else if (!$(event.target).closest('#çeviri-sublist').length && document.querySelector('#çeviri-sublist + .sublist-drop-show')) { document.querySelector('#çeviri-sublist + .sublist-drop-show').classList.remove('sublist-drop-show'); } else if (!$(event.target).closest('#çeviri-i̇stek-sublist').length && document.querySelector('#çeviri-i̇stek-sublist + .sublist-drop-show')) { document.querySelector('#çeviri-i̇stek-sublist + .sublist-drop-show').classList.remove('sublist-drop-show'); } else if (!$(event.target).closest('#aktivite-sublist').length && document.querySelector('#aktivite-sublist + .sublist-drop-show')) { document.querySelector('#aktivite-sublist + .sublist-drop-show').classList.remove('sublist-drop-show'); } }; // PlanetDP, IMDb ve MAL ID'lerini al. var malId = document.querySelector( 'h1 span > a[href*="myanimelist.net/anime"]'); if (malId != null) { malId = malId.href.replace( /.+\/anime\/(\/?\d+)/, "$1"); } var imdbId = document.querySelector( 'div.baba_main_right a[href*="imdb.com/title/"]' ); if (imdbId != null && imdbId.textContent.length > 2) { imdbId = imdbId.href.replace( /.+\/title\/tt(\d+)\/?/, "$1"); } var pageUrl = window.location.href; var dpId = pageUrl.match( /planetdp\.org\/title\/.+?dp(\d+)/ )[1]; // Forumda aranacak terimi belirle. var searcText = (malId) ? "%22[mal%20type=anime%20id=" + malId + "]%22" : "%22[imdb=tt" + imdbId + "]%22"; // Yapımın tipini belirle (Temel: Dizi, Film | Alt: Genel, Anime, Drama, Belgesel, Yerli) var mainType = (document.querySelector( '[itemprop="copyrightYear"]').parentElement.querySelector('span > span:first-of-type' ).textContent.search("Dizi") >= 0) ? "Dizi" : "Film"; var countryInfo = document.querySelector( '[itemprop="countryOfOrigin"]' ).textContent.trim(); var genreInfo = document.querySelector( '[class*="three"] > [class="abd_value"]' ).textContent.trim(); var subType = null; subType = (document.querySelector( 'h1 span > a[href*="myanimelist.net/anime"]') != null) ? "Anime" : subType; subType = (countryInfo.search( /(Türkiye)/i ) >= 0) ? "Yerli" : subType; subType = (genreInfo.search( /Belgesel/i ) >= 0) ? "Belgesel" : subType; subType = (countryInfo.search( /(ABD|İngiltere)/i ) < 0 && genreInfo.search( /Animasyon/i ) < 0 && countryInfo.search( /(Güney Kore|Japonya|Tayland|Çin|Tayvan|Hong Kong)/i ) >= 0) ? "Uzak Doğu" : subType; subType = !(subType) ? "Genel" : subType; // Cache'de bilgi yoksa istek atan fonksiyonu çalıştır. var topicArray = []; var topics = []; var d = new Date(); var currentTime = d.getTime(); var lastUpdateArray = GM_getValue("cache_time"); var lastUpdateTime = (lastUpdateArray) ? JSON.parse(lastUpdateArray) : 0; // Cache yoksa istek at. if (lastUpdateTime[dpId] == null) { findTopics(searcText); } else { // Cache varsa eski bilgileri alıp yaz. topics = JSON.parse( GM_getValue( "exactCache" ) )[dpId]; placeTopics(topics); if (metionOpt) { topics = JSON.parse( GM_getValue( "mentionedCache" ) )[dpId]; placeTopics(topics, "mentioned"); } // Cache var ama kodun başında belirtilen cache süresindenden eskiyse yeni istek at. if (currentTime - lastUpdateTime[dpId] > cacheTime) { findTopics(searcText); } } // Kütüphanedeki forum ve konuları bu yapımın türlerini kullanarak süz. var forumsForThis = []; for( let f = 0; f < forum.length; f++ ){ if ( forum[f].main.includes(mainType) && ( forum[f].sub.includes(subType) || forum[f].sub.includes("dp" + dpId) ) ) { forumsForThis.push(forum[f]); } } // Dropdown menüsünün içini doldur. makeTypeDropdowns("Sohbet"); makeTypeDropdowns("Çeviri"); makeTypeDropdowns("Çeviri İstek"); makeTypeDropdowns("Aktivite"); function makeTypeDropdowns(type) { var fa = arrayFilter(forumsForThis, "type", type); if (fa.length > 0) { var id = type.toLowerCase().replace(" ", "-"); var inside = ''; var idParams = "&template=yes&dpid=" + dpId + ( (malId) ? "&malid=" + malId : "&imdbid=tt" + imdbId ); for (let x = 0; x < fa.length; x++) { var url = "https://forum.planetdp.org/index.php?/" + (fa[x].ft == "forum" ? "forum/" + fa[x].url + "&do=add" + idParams : "topic/" + fa[x].url + idParams + "/#replyForm"); inside += '<li><a href="' + url + '" target="_blank">' + fa[x].title + '</a></li>'; } var outside = '<li><a id="' + id + '-sublist">' + type + '</a><ul class="' + id + '-dropdown">' + inside + '</ul></li>'; document.querySelector('ul.forum-dropdown').insertAdjacentHTML("beforeend", outside); // Butona tıkladığında menüyü aç/kapa document.querySelector('#' + id + '-sublist').onclick = function() { document.querySelector('.' + id + '-dropdown').classList.toggle('sublist-drop-show'); }; } } function findTopics (search, pageNo) { // Eğer birden sayfadan fazla sonuç varsa sayfa no'yu belirlemek için "repeat" değişkeni sakla. Bir sayfada 25 sonuç var. pageNo = (pageNo == null) ? 1 : pageNo; var offset = pageNo*25; GM_xmlhttpRequest({ method: "GET", url: "https://forum.planetdp.org/index.php?/search/&q=" + search + "&page=" + pageNo, onload: function(response) { var json = response.responseText; var htmlObj = $(json); var page = htmlObj.find('[data-role="resultsArea"]')[0]; var lang = htmlObj.find('.ipsMenu_itemChecked button[name="id"]')[0].value == 1 ? "eng" : "tr"; // Foruma giriş yapılmadıysa veya bir sorun varsa portala uyarı ekle. if (page == null) { $('.exactTopicContainer').html('Konuların çekilmesi için foruma giriş yapmanız gerekir. Giriş yapmış olmanıza rağmen bunu görüyorsanız bir hata var demektir. Eklenti yazarı ile iletişime geçin.'); } // Sonuçları ayıkla. var topics = page.querySelectorAll('.ipsStreamItem_header .ipsStreamItem_title'); for (let x = 0; x < topics.length; x++) { // Konunun bilgilerini ayrıştır ve "topicArray" dizisine kaydet. var steamItem = topics[x].closest(".ipsStreamItem_container"); topicArray.push({ type: steamItem.querySelector('.ipsStreamItem_header .ipsStreamItem_title.ipsStreamItem_titleSmall') ? "old" : "new", topic: steamItem.querySelector('h2.ipsStreamItem_title > span.ipsType_break > a').textContent, topic_url: steamItem.querySelector('h2.ipsStreamItem_title > span.ipsType_break > a').href.replace(/\/\&do\=findComment\&comment\=\d+/, ""), topic_id: steamItem.querySelector('h2.ipsStreamItem_title > span.ipsType_break > a').href.replace(/.+\/topic\/(\d+)-.+/, "$1"), comment_id:steamItem.querySelector('h2.ipsStreamItem_title > span.ipsType_break > a').href.replace(/.+\/\&do\=findComment\&comment\=(\d+)/, "$1"), autor: steamItem.querySelector('p.ipsStreamItem_status > a[href*="planetdp.org/index.php?/profile/"]').textContent, autor_url: steamItem.querySelector('p.ipsStreamItem_status > a[href*="planetdp.org/index.php?/profile/"]').href, autor_img: steamItem.querySelector('.ipsStreamItem_header > a.ipsUserPhoto > img').src, forum: steamItem.querySelector('p.ipsStreamItem_status > a[href*="planetdp.org/index.php?/forum/"]').textContent, forum_url: steamItem.querySelector('p.ipsStreamItem_status > a[href*="planetdp.org/index.php?/forum/"]').href, forum_id: steamItem.querySelector('p.ipsStreamItem_status > a[href*="planetdp.org/index.php?/forum/"]').href.replace(/.+\/forum\/(\d+)-.+\//, "$1"), badge: steamItem.querySelector('.ipsStreamItem_title .ipsBadge') ? steamItem.querySelector('.ipsStreamItem_title .ipsBadge').textContent : null, badge_clr: steamItem.querySelector('.ipsStreamItem_title .ipsBadge') ? steamItem.querySelector('.ipsStreamItem_title .ipsBadge').style.backgroundColor : null, not_read: steamItem.querySelector('.ipsItemStatus:not(.ipsItemStatus_read)') ? true : false, posted: steamItem.querySelector('.ipsItemStatus_posted') ? true : false, thumbnail: steamItem.querySelector('img.ipsImage.ipsStream_image') ? steamItem.querySelector('img.ipsImage.ipsStream_image').src : null, date: dateTransform(steamItem.querySelector('ul.ipsStreamItem_meta time').title, "dd_month_yyyy", lang), comments: steamItem.querySelector('ul.ipsStreamItem_meta i.fa-comment') ? steamItem.querySelector('ul.ipsStreamItem_meta i.fa-comment').parentElement.textContent.trim() : "", }); } // Yapılan arama ile eşleşen sonuç sayısına bakarak tüm sayfalara bakana kadar isteği tekrarla. var resultNumber = page.querySelector('p.ipsType_sectionTitle').textContent.trim().match(/(\d+)/)[1]; if(resultNumber > offset) { findTopics (search, pageNo + 1); } // Tüm sayfalara bakınca cacheye al ve konuları bastır. else { // Yapıma ait konular var exactTopics = arrayIntersection(forum, arrayFilter(topicArray, "type", "new"), "second", "id", "forum_id"); // Yapımdan bahsedilen konular (Büyük listenin üstteki süzülmüş hariç kısmı) var mentionedTopics = arrayExclusion(topicArray, exactTopics, "first", "forum_id", "forum_id"); mentionedTopics = arrayExclusion(mentionedTopics, excludedForum, "first", "forum_id", "id"); // Veri tabnalarını al, yoksa yarat. var exactCache = GM_getValue("exactCache"); exactCache = (exactCache) ? JSON.parse(exactCache) : []; var mentionedCache = GM_getValue("mentionedCache"); mentionedCache = (mentionedCache) ? JSON.parse(mentionedCache) : []; var cache_time = GM_getValue("cache_time"); cache_time = (cache_time) ? JSON.parse(cache_time) : []; // Veri tabanlarına konuları işle ve kaydet. exactCache[dpId] = exactTopics; mentionedCache[dpId] = mentionedTopics; cache_time[dpId] = currentTime; GM_setValue( "exactCache", JSON.stringify(exactCache) ); GM_setValue( "mentionedCache", JSON.stringify(mentionedCache) ); GM_setValue( "cache_time", JSON.stringify(cache_time) ); // Konulara sayfaya bastır. placeTopics(exactTopics); if (metionOpt) { placeTopics(mentionedTopics, "mentioned"); } console.log("Forum topics are refreshed."); } } }); } // Konuları yapım sayfasındaki HTML'ye yerleştiren fonksiyon. function placeTopics(array, isMentioned) { if (isMentioned != "mentioned") { array = arraySorter( arraySorter(array, "topic_id"), "forum_id" ); } else { array = arraySorter( arraySorter( arraySorter(array, "comment_id", "reverse"), "topic_id" ), "forum_id" ); array = arrayGroup(array, "topic_id"); } var topicHtml = ""; for (let x = 0; x < array.length; x++) { var a, comment, autorTitle, clss, url, urlThumb, dateTitle; if (isMentioned != "mentioned") { // Gerekli bilgileri topla. a = array[x]; clss = `forumCol colColor`; url = a.topic_url; comment = `<br><span id="comments" class="aName">` + a.comments + `</span>`; autorTitle = `Konuyu açan üye`; dateTitle = `Konunun açıldığı tarih`; } else { // Gerekli bilgileri topla. var commentTitle = 'Bahsedenler: '; for (let y = 0; y < array[x].length; y++) {commentTitle += (y != 0) ? ', ' + array[x][y].autor : array[x][y].autor;} a = array[x][0]; clss = `forumCol colColor mentionCol`; url = `https://forum.planetdp.org/index.php?/search/&q=` + searcText + `&type=forums_topic&item=` + a.topic_id; comment = `<br><a id="comments" class="aName" href="https://forum.planetdp.org/index.php?/search/&q=` + searcText + `&type=forums_topic&item=` + a.topic_id + `" title="` + commentTitle + `" target="_blank">` + array[x].length + ` yanıtta bahsedilmiş</a>`; autorTitle = `Son bahseden üye`; dateTitle = `Son bahsedilme tarihi`; /* Üste altyazı listesi gibi bir açıklama barı koyup onun üstünden iki kısmı ayıracağım galiba. */ } topicHtml += ` <div class="` + clss + `"> <div class="div1 ` + (!a.not_read ? `readedTopic` : ``) + `"> <a href="` + a.topic_url + `/&do=getNewComment" target="_blank" title="İlk okunmamış iletiye git" target="_blank" style="position: relative;"> <i class="fa fa-` + (a.posted ? 'star' : 'circle' ) + ` readStatus" title="İlk okunmamış iletiye git" target="_blank" goToNew="tooltip" data-placement="top"></i> <div class="topicThumb defaultThumb_` + mainType + `" style="` + ( a.thumbnail ? `background-image: url(` + a.thumbnail +`);` : `` ) + `"></div> </a> <div> ` + (a.badge ? `<a href="https://forum.planetdp.org/index.php?/search/&type=forums_topic&tags=` + a.badge + `&nodes=` + a.forum_id + `" target="_blank"> <span class="forumBadge" style="background-color:` + a.badge_clr + `" title="Aynı forumda bu etikete sahip diğer konular">` + a.badge + `</span> </a>` : ``) + ` <a href="` + url + `" target="_blank"> <b>` + a.topic + `</b> </a> </div> </div> <div class="div2"> <span class="tName"> <a href="` + a.forum_url + `" target="_blank" title="Konunun bulunduğu forum"><b>` + a.forum + `</b></a>` + (!detailOpt ? `` : comment ) + ` </span> </div> <div class="div3"> <span class="aName"> <a href="` + a.autor_url + `" target="_blank" title="` + autorTitle + `"> <div class="autor-avatar" style="background-image: url(` + a.autor_img +`);"></div>` + ( !detailOpt ? `</b>` : `<b>`) + `<span id="autor">` + a.autor +`</span></b> </a> ` + ( !detailOpt ? `` : `<br><span id="date" title="` + dateTitle + `">` + a.date + `</span>` ) + `</span> </div> </div> `; } if (isMentioned != "mentioned") { topicHtml = (topicHtml == "") ? "Bu yapım için hiçbir konu bulunamadı." : topicHtml; document.querySelector('.exactTopicContainer').innerHTML = topicHtml; } else { // Exact kısmı boşsa onun içini temizle. if (document.querySelectorAll('.exactTopicContainer .forumCol').length < 1) { document.querySelector('.exactTopicContainer').innerHTML = ''; topicHtml = (topicHtml == "") ? "Bu yapım için hiçbir konu bulunamadı." : topicHtml; } document.querySelector('.exactTopicContainer').insertAdjacentHTML("beforeend", topicHtml); } //document.querySelector( '#forumdiv ' + (isMentioned == "mentioned" ? '.mentionedTopicContainer' : '.exactTopicContainer') ).innerHTML = topicHtml; $('[goToNew="tooltip"]').tooltip(); } function millisecondConverter(unit, from, to) { var result; to = to == null ? "millisecond" : to; from = from.replace(/milisaniye/i,"millisecond").replace(/saniye/i,"second").replace(/dakika/i,"minute").replace(/saat/i,"hour").replace(/gün/i,"day").replace(/hafta/i,"week").replace(/^(ay)/i,"month").replace(/yıl/i,"year"); to = to.replace(/milisaniye/i,"millisecond").replace(/saniye/i,"second").replace(/dakika/i,"minute").replace(/saat/i,"hour").replace(/gün/i,"day").replace(/hafta/i,"week").replace(/^(ay)/i,"month").replace(/yıl/i,"year"); switch (from) { case "millisecond" : switch (to) { case "year": result = Math.round(unit / 31556952000); break; case "month" : result = Math.round(unit / 2592000000); break; case "week" : result = Math.round(unit / 604800000); break; case "day" : result = Math.round(unit / 86400000); break; case "hour" : result = Math.round(unit / 3600000); break; case "minute" : result = Math.round(unit / 60000); break; case "second" : result = Math.round(unit / 1000); break; } break; case "year": switch (to) {case "millisecond": result = unit * 31556952000; break;} break; case "month": switch (to) {case "millisecond": result = unit * 2592000000; break;} break; case "week": switch (to) {case "millisecond": result = unit * 604800000; break;} break; case "day": switch (to) {case "millisecond": result = unit * 86400000; break;} break; case "hour": switch (to) {case "millisecond": result = unit * 3600000; break;} break; case "minute": switch (to) {case "millisecond": result = unit * 60000; break;} break; case "second": switch (to) {case "millisecond": result = unit * 1000; break;} break; } return result; } function dateTransform(date, output, lang) { var day, month, month_name, month_name_short, year; var dateRegex2 = /(\d{4})-(\d{1,2})-(\d{1,2})/; // 2017-04-16T21:16:35Z var dateRegex3 = /(\d{1,2})(-|\/)(\d{1,2})(-|\/)(\d{2,4})/; // 11/18/18 00:25 || 11/18/2018 00:25 if (date.search(dateRegex2) >= 0) { day = Number( dateRegex2.exec(date)[3] ); // 09 => 9 month = Number( dateRegex2.exec(date)[2] ); // 03 => 3 year = Number( dateRegex2.exec(date)[1] ); } else if (date.search(dateRegex3) >= 0) { //Gün ve ay yer değiştirmiş hal için. Buna bir belirteç eklemek lazım. day = Number( dateRegex3.exec(date)[3] ); // 09 => 9 month = Number( dateRegex3.exec(date)[1] ); // 03 => 3 year = Number( dateRegex3.exec(date)[5] ); year = year < 2000 ? 2000 + year : year; // 18 => 2018 } // Ek işlemler month_name = lang == "eng" ? ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"][month-1] : ["Ocak", "Şubat", "Mart", "Nisan", "Mayıs", "Haziran", "Temmuz", "Ağustos", "Eylül", "Ekim", "Kasım", "Aralık"][month-1]; month_name_short = ""; // lazım olabilir if (output == "dd_month_yyyy") return day + " " + month_name + " " + year; } function arraySorter(array, objectType, isReverse) { var resultArray = []; resultArray = array.sort(function(a, b) { var x = ( isFinite(a[objectType]) ) ? Number(a[objectType]) : a[objectType].toString().toLowerCase(); var y = ( isFinite(b[objectType]) ) ? Number(b[objectType]) : b[objectType].toString().toLowerCase(); if (x < y) {return (isReverse == "reverse" ? 1 : -1);} if (x > y) {return (isReverse == "reverse" ? -1 : 1);} return 0; }); return resultArray; } function arrayFilter(array, type, typeValue) { var newArray = []; for (let x = 0; x < array.length; x++) { if (array[x] != null) { if (array[x][type] == typeValue) { newArray.push(array[x]); } } } return newArray; } function arrayIntersection(array1, array2, which, attr1, attr2) { var resultArray = []; for(let o = 0; o < array1.length; o++){ for (let i = 0; i < array2.length; i++) { if ( array1[o][attr1] == array2[i][attr2] ) { if (which == "first") { resultArray.push(array1[o]); } else { resultArray.push(array2[i]); } } } } return resultArray; } function arrayExclusion(array1, array2, which, attr1, attr2) { var resultArray = []; if (array1.length == 0 || array2.length == 0) { resultArray = (which == "first") ? array1 : array2; } else { for(let o = 0; o < array1.length; o++){ for (let i = 0; i < array2.length; i++) { if (array1[o][attr1] == array2[i][attr2]) { break; } else if (i+1 == array2.length) { if(which == "first") { resultArray.push(array1[o]); } else { resultArray.push(array2[i]); } } } } } return resultArray; } function arrayGroup(array, attr) { var resultArray = []; var usedIndex = []; for(let o = 0; o < array.length; o++){ if (usedIndex.indexOf(o) < 0) { var subArray = []; for (let i = 0; i < array.length; i++) { if (array[o][attr] == array[i][attr]) { subArray.push(array[i]); usedIndex.push(i); } } resultArray.push(subArray); } } return resultArray; } })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址