您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Planetdp portalında kendinize özel listeler oluşturmasına olanak sağlar.
- // ==UserScript==
- // @name [DP] PlanetDP Listeler
- // @description Planetdp portalında kendinize özel listeler oluşturmasına olanak sağlar.
- // @version 1.2
- // @author nht.ctn
- // @namespace https://github.com/nhtctn
- // @icon data:image/png;base64,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
- // @run-at document-end
- // @include *://*planetdp.org*
- // @include *://*forum.planetdp.org*
- // @grant GM_addStyle
- // @grant GM_getValue
- // @grant GM_setValue
- // @grant GM_addValueChangeListener
- // @grant GM_xmlhttpRequest
- /* global $ */
- // ==/UserScript==
- /*jshint esversion: 6 */
- (function() {
- 'use strict';
- var defaultQueueForm = {name: "", description: "", counter: 1, delay: 0, note: 1, sortBy: "created", color: "olive"};
- var version = 1.1;
- // var defaultContentForm = {};
- // var oldContentDeleteTime = millisecondConverter(2, "year", "ms"); // 2 Year
- var checkWaitingTime = millisecondConverter(10, "minute", "ms"); // 10 minutes
- var pageUrl = window.location.href;
- var x;
- var enter = `
- `;
- if (pageUrl.search(/forum\.planetdp\.org\/.+/) > 0) {
- waitForKeyElements('.cke_toolbar.cke_toolbar_last > .cke_toolbar_end', function() {addForumExport();}, false);
- }
- else {
- if (pageUrl.search( /planetdp\.org\/title\// ) >= 0) {
- var babaMain = document.querySelector('div.baba_main');
- var cardId = pageUrl.replace(/.+planetdp\.org\/title\/.+-dp(\d+)(.+)?/,"$1");
- var cardInfos = getCardInfos(babaMain, cardId);
- }
- if (document.querySelector( '[href="/logout"]' ) != null)
- {
- // Üye menüsüne Kuyruk ikonu ve içine kuyruk oluştur seçeneğini yerleştir.
- var queueHtmlZero = `
- <li class="dropdown">
- <a data-toggle="dropdown" data-placement="bottom" class="lists-menu648" title="Listeler" class="dropdown-toggle" data-secondary-toggle="tooltip">
- <span class="badge"></span>
- <i class="fa fa-tasks"></i>
- </a>
- <ul class="dropdown-menu user-dropdown"><li id="queue648"><a href="#">Liste Oluştur</a></li></ul>
- </li>
- `;
- $('.user-buttons > .seperator:first').after(queueHtmlZero);
- document.getElementById("queue648").onclick = function() {insertQueueForm("new");};
- // Varsa mevcut kuyrukları da ekle.
- isertQueues();
- // Kuyruklar güncellendiğinde eski seçenek ve butonları temizle, baştan oluşturan fonksiyonu çlıştır.
- GM_addValueChangeListener("queueArray", function(name, old_value, new_value, remote) {
- var oldOptions = document.querySelectorAll('[id^="queue648_"]');
- for (x = 0; x < oldOptions.length; x++) {
- oldOptions[x].remove();
- }
- isertQueues();
- });
- }
- // CSS eklemeleri (Her sayfada gerekli css'ler yok.)
- GM_addStyle(`
- .window-header {
- padding-bottom: 15px;
- border-bottom: 1px solid #000;
- display: contents;
- }
- .mfp-close-btn-in .mfp-close {
- color: #333;
- }
- button.mfp-close, button.mfp-arrow {
- overflow: visible;
- cursor: pointer;
- background: transparent;
- border: 0;
- -webkit-appearance: none;
- display: block;
- outline: none;
- padding: 0;
- z-index: 1046;
- -webkit-box-shadow: none;
- box-shadow: none;
- }
- .mfp-close {
- width: 44px;
- height: 44px;
- line-height: 44px;
- position: absolute;
- right: 0;
- top: 0;
- text-decoration: none;
- text-align: center;
- opacity: .65;
- filter: alpha(opacity=65);
- padding: 0 0 18px 10px;
- color: #fff;
- font-style: normal;
- font-size: 28px;
- font-family: Arial,Baskerville,monospace;
- }
- .mfp-close, .mfp-arrow, .mfp-preloader, .mfp-counter {
- -webkit-user-select: none;
- -moz-user-select: none;
- user-select: none;
- }
- .mfp-bg {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 1042;
- overflow: hidden;
- position: fixed;
- background: #0b0b0b;
- opacity: .8;
- filter: alpha(opacity=80);
- }
- .mfp-wrap {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- z-index: 1043;
- position: fixed;
- outline: none!important;
- -webkit-backface-visibility: hidden;
- }
- .mfp-container {
- text-align: center;
- position: absolute;
- width: 100%;
- height: 100%;
- left: 0;
- top: 0;
- padding: 0 8px;
- -webkit-box-sizing: border-box;
- -moz-box-sizing: border-box;
- box-sizing: border-box;
- }
- .mfp-container:before {
- content: '';
- display: inline-block;
- height: 100%;
- vertical-align: middle;
- }
- .mfp-auto-cursor .mfp-content {
- cursor: auto;
- }
- .mfp-inline-holder .mfp-content, .mfp-ajax-holder .mfp-content {
- width: 100%;
- cursor: auto;
- }
- .mfp-content {
- position: relative;
- display: inline-block;
- vertical-align: middle;
- margin: 0 auto;
- text-align: left;
- z-index: 1045;
- }
- .window-content .btn {
- margin-right: 15px;
- }
- .btn {
- display: inline-block;
- padding: 6px 12px;
- margin-bottom: 0;
- font-size: 14px;
- font-weight: 400;
- line-height: 1.42857143;
- text-align: center;
- white-space: nowrap;
- vertical-align: middle;
- -ms-touch-action: manipulation;
- touch-action: manipulation;
- cursor: pointer;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- user-select: none;
- background-image: none;
- border: 1px solid transparent;
- border-radius: 4px;
- }
- .btn-default {
- color: #333;
- background-color: #fff;
- border-color: #ccc;
- }` +
- // Ekstra CSS'ler
- `
- ul[id^="queueWindow_list"] {
- height: 450px;
- overflow-y: auto;
- }
- ul[id^="queueWindow_list"] > li {
- padding: 7px 5px;
- border-bottom: 1px dotted #000;
- list-style: none;
- display: flex;
- }
- .div-left {
- display: inline-block;
- width: 70%;
- padding-right: 15px;
- }
- .div-right {
- display: inline-block;
- width: 30%;
- }
- .div-left > *, .div-right > * {
- display: block;
- width: 100%;
- word-break: break-word;
- }
- .queue_list_hide {
- display: none;
- }
- .queButtons {
- display: flex;
- flex-direction: row-reverse;
- align-items: center;
- }
- .waitingButtons {
- flex: 1;
- }
- .editButtons > i {
- font-size: 15px;
- border-radius: 15px;
- margin-left: 10px;
- user-select: none;
- }
- #deleteQueue:hover, #editQueue:hover, #exportQueue:hover {
- color: #f00;
- }
- .badge.no-counter {
- opacity: 0.6;
- }
- /* MOBİL GÖRÜNÜM */
- @media only screen and (max-width: 767px) and (min-width: 320px){
- #queueWindow-form {margin: 0;}
- .queButtons { flex-direction: column; }
- .queButtons > * { width: 100%; text-align: left; }
- .editButtons > i { margin: 0 15px 0 0; }
- .waitingButtons { margin-top: 10px; }
- ul[id^="queueWindow_list"] > li { flex-direction: column; }
- .div-right, .div-left { width: 100%; }
- }
- `);
- $('#dpDarkCss').after('<style id="queueCss_dark">queueWindow-form li, [id*="-form"] .window-header { border-color: #4c4c4c!important; }</style>');
- darkToggle();
- $('#darkSwitchButton').on("click", function() {darkToggle();} );
- }
- function darkToggle() {
- if ($('#dpDarkCss').attr("disabled")) { $('#queueCss_dark').prop("disabled", "disabled"); }
- else { $('#queueCss_dark').prop("disabled", ""); }
- }
- function getCardInfos(page, c_ID) {
- var cardTitle = page.querySelector( 'h1[itemprop="name"]' ).textContent.trim();
- var year = page.querySelector('span[itemprop="copyrightYear"]');
- year = (year) ? year.textContent.trim().replace(/\n/gi,"").replace(/(\d{4})\s?-?\s?(\d{4})?/,"$1") : "?";
- var dpRaiting = page.querySelector('span[itemprop="ratingValue"]');
- dpRaiting = (dpRaiting) ? dpRaiting.textContent.trim() : "-";
- var imdbBoxLink = page.querySelector('ul.pd [href*="imdb.com/title/tt"]');
- var imdbID = (imdbBoxLink) ? imdbBoxLink.href.replace(/.+imdb\.com\/title\/tt(\d+)/,"$1") : "-";
- var imdbRating = (imdbBoxLink) ? imdbBoxLink.closest("ul").querySelector('li.active').textContent.trim().replace(/\/10/,"") : "-";
- imdbRating = (imdbRating == "") ? "-" : imdbRating;
- return {cardId: c_ID, cardTitle: cardTitle, year: year, dpRaiting: dpRaiting, imdbID: imdbID, imdbRating: imdbRating};
- }
- function activateElements() {
- var db = GM_getValue("queueArray");
- var lastActivate = GM_getValue("lastActivateTime");
- var currentTime = new Date().getTime();
- if (currentTime - lastActivate >= checkWaitingTime || lastActivate == null) {
- for (let y = 0; y < db.length; y++) {
- var activeWitingArray = db[y][1];
- for (let z = 0; z < activeWitingArray.length; z++) {
- var w = activeWitingArray[z];
- if (w != null) {
- if (w.active == 0) {
- if (currentTime >= w.activateTime) {
- w.active = 1;
- }
- }
- }
- }
- }
- GM_setValue("queueArray", db);
- GM_setValue("lastActivateTime", currentTime);
- }
- }
- function downloadQueue(no) {
- var queue = GM_getValue("queueArray")[no];
- var infos = queue[0];
- var s = ` `;
- var d = new Date();
- var date = d.getFullYear() + "-" + (d.getMonth() + 1) + "-" + d.getDate();
- var filename = infos.name + "_" + date;
- var array = [];
- arrayFilter(queue[1], array);
- arraySorter(array, "object", infos.sortBy);
- var data = `Yapım Adı` + s + `Yıl` + s + `IMDb ID` + s + `DP ID` + s + `Aktif mi?` + s + `Not` + s + `Gecikme` + s + `Oluşturma Zamanı` + s + `Aktifleşme Zamanı` + enter;
- for (let x = 0; x < array.length; x++) {
- var q = array[x];
- if (q != null) {
- data += q.cardTitle + s + q.year + s + q.imdbID + s + q.cardId + s + q.active + s + q.note + s + q.delay + s + q.created + s + q.activateTime + enter;
- }
- }
- var element = document.createElement('a');
- element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(data));
- element.setAttribute('download', filename);
- element.style.display = 'none';
- document.body.appendChild(element);
- element.click();
- document.body.removeChild(element);
- }
- function isUpToDate(no) {
- var infos = GM_getValue("queueArray")[no][0];
- if (infos.version == version) {
- return true;
- }
- else {
- upDateQueue(no);
- }
- }
- function upDateQueue(no) {
- var queueArray = GM_getValue("queueArray");
- var infos = queueArray[no][0];
- var array = queueArray[no][1];
- var filtredArray = [];
- arrayFilter(queueArray[no][1], filtredArray);
- if(confirm("Bu listenin yeni versiyona göre güncellenmesi gerekmektedir." + enter +"Sürüm " + infos.version + " => Sürüm " + version + enter + enter + "Bu işlem birkaç dakika sürebilir. Lütfen sekmeyi kapatmayın.")) {
- try {
- // İlk verisonlu sürüme geçiş. ========
- if (infos.version == null) {
- var change1 = (function(t) { // Version no ekle. Sıralama türü ekle[addedtime].
- return function (e) {
- var n_que = GM_getValue("queueArray");
- infos.version = version;
- infos.sortBy = "created";
- n_que[no][0] = infos;
- GM_setValue("queueArray", n_que);
- };
- })(no);
- upDateQueueContent(no, filtredArray, 0, change1); // Öğe bilgilerini güncellemek için request at. [yıl,imdb ID,imdb puan,dp puan]
- alert("Güncelleme işlemi tamamlandı.");
- }
- // 1.1'e geçiş. ======================= (Henüz yayınlanmadı.)
- else if (infos.version == 1.0) {
- for (let x = 0; x < filtredArray.length; x++) {
- array[filtredArray[x].cardId].year = array[filtredArray[x].cardId].year.replace(/(\d{4})\s?-?\s?(\d{4})?/,"$1");
- }
- queueArray[no][0].version = version;
- queueArray[no][1] = array;
- GM_setValue("queueArray", queueArray);
- alert("Güncelleme işlemi tamamlandı.");
- }
- }
- catch(err) {
- alert("Güncelleme işlemi sırasında bir sorun oluştu." + enter +"Sürüm " + infos.version + " => Sürüm " + version + enter + enter + "Lütfen aşağıdaki hata mesajı ile birlikte uygulama yazarına haber verin." + enter + enter + err.message);
- }
- }
- }
- function upDateQueueContent(no, array, index, myFunction) {
- if (index < array.length) {
- var ax = array[index];
- var id = ax.cardId;
- GM_xmlhttpRequest({
- method: "GET",
- url: "https://www.planetdp.org/title/-" + id,
- onload: function(response) {
- var json = response.responseText;
- var htmlObj = $(json);
- var page = htmlObj.find( 'div.baba_main' )[0];
- var cardInfos2 = getCardInfos(page, id);
- createContentLog(id, no, ax.delay, ax.note, cardInfos2, ax.created);
- setTimeout(function() {upDateQueueContent(no, array, index+1, myFunction);}, 500);
- }
- });
- }
- else if (index == array.length) {
- myFunction();
- }
- }
- function createQueueWindow(queueNo) {
- if (isUpToDate(queueNo) == true) {
- var infos = GM_getValue("queueArray")[queueNo][0];
- insertWindow("queueWindow", "tasks", infos.name, false, infos.color);
- var buttons = `
- <div class="queButtons">
- <div class="editButtons">
- <i id="exportQueue" class="fa fa-file-excel-o" aria-hidden="true" title="Bu Listenin Çıktısını Al"> Çıktı Al</i>
- <i id="editQueue" class="fa fa-pencil" aria-hidden="true" title="Bu Listeyi Düzenle"> Düzenle</i>
- <i id="deleteQueue" class="fa fa-trash" aria-hidden="true" title="Bu Listeyi Sil"> Sil</i>
- </div>
- <div class="waitingButtons">
- <a id="queueWindow_button_active" href="#" class="btn btn-info">Aktif</a>
- <a id="queueWindow_button_waiting" href="#" class="btn btn-default">Beklemede</a>
- <a id="queueWindow_button_done" href="#" class="btn btn-default" style="display: none;">Tamamlanmış</a>
- </div>
- </div>
- `;
- var listCovers = `
- <fieldset class="window-content margintop10">
- <ul id="queueWindow_list_active" class="queue_list_show">
- </ul>
- <ul id="queueWindow_list_waiting" class="queue_list_hide">
- </ul>
- <ul id="queueWindow_list_done" class="queue_list_hide">
- </ul>
- </fieldset>
- `;
- var listFieldset = document.querySelector('#queueWindow-form > .window-content');
- listFieldset.insertAdjacentHTML("beforeend", buttons + listCovers);
- // Sil, düzenle, çıktı al butonlarına fonksiyonları bağla.
- document.querySelector('#queueWindow-form #exportQueue').onclick = function() {
- if (confirm("İnecek olan Txt dosyasının içindekileri kopyalayıp bir Excel dosyasına yapıştırabilirsiniz.")) {
- downloadQueue(queueNo);
- }
- };
- document.querySelector('#queueWindow-form #editQueue').onclick = function() {removeForm("queueWindow"); insertQueueForm("edit", queueNo);};
- document.querySelector('#queueWindow-form #deleteQueue').onclick = (function(t, inf) {
- return function (e) {
- if (confirm("Bu listeyi silmek istediğinize emin misiniz? Bu işlem geri alınamaz.")) {
- var library = GM_getValue("queueArray");
- library.splice(t, 1);
- GM_setValue("queueArray", library);
- removeForm("queueWindow");
- alert("\"" + infos.name + "\" adlı kuruk silindi.");
- }
- };
- })(queueNo, infos);
- // Listelerin içini doldur ve güncelle
- insertLists(queueNo);
- GM_addValueChangeListener("queueArray", function(name, old_value, new_value, remote) {
- var oldLists = document.querySelectorAll('[id^="queueWindow_list"]');
- for (x = 0; x < oldLists.length; x++) {
- oldLists[x].innerHTML = "";
- }
- insertLists(queueNo);
- });
- // Listelerin ve butonların toggle'larını ayarla
- var listButtons = listFieldset.querySelectorAll('[id^="queueWindow_button"]');
- for (let x = 0; x < listButtons.length; x++) {
- listButtons[x].onclick = (function(t) {
- return function (e) {
- // Butonlar
- var oldButton = listFieldset.querySelector('a.btn-info');
- classToogle( oldButton, ["btn-info", "btn-default"] );
- classToogle( listButtons[x], ["btn-info", "btn-default"] );
- // Listeler
- var oldListElement = listFieldset.querySelector( 'ul.queue_list_show' );
- classToogle( oldListElement, ["queue_list_show", "queue_list_hide"] );
- var listElement = listFieldset.querySelector( '#' + listButtons[x].id.replace('button','list') );
- classToogle( listElement, ["queue_list_show", "queue_list_hide"] );
- };
- })(x);
- }
- }
- }
- function insertLists(queueNo) {
- var library = GM_getValue("queueArray");
- var sortBy = library[queueNo][0].sortBy;
- sortBy = sortBy ? sortBy : "cardTitle";
- // Aktif
- var activeArray = [];
- arrayFilter(library[queueNo][1], activeArray, "active");
- arraySorter(activeArray, "object", sortBy);
- var activeList = document.querySelector('#queueWindow_list_active');
- activeList.innerHTML = listHTML(activeArray);
- // Beklemede
- var waitingArray = [];
- arrayFilter(library[queueNo][1], waitingArray, "waiting");
- arraySorter(activeArray, "object", sortBy);
- var waitingList = document.querySelector('#queueWindow_list_waiting');
- waitingList.innerHTML = listHTML(waitingArray);
- // Tamamlanmış (Sonra)
- }
- function listHTML(array) {
- var result = '';
- for (let x = 0; x < array.length; x++) {
- var a = array[x];
- var d = new Date(a.created);
- var date = d.getDate() + "/" + (d.getMonth() + 1) + "/" + d.getFullYear();
- result += `
- <li>
- <div class="div-left">
- <a href="/title/-` + a.cardId + `"><strong>` + a.cardTitle + ` (` + a.year + `)</strong></a>
- <span>` + (a.note == "" ? "" : "<strong>Not:</strong> " + a.note) + `</span>
- </div>
- <div class="div-right">
- <span><strong>Eklenme:</strong> ` + date + `</span>
- <span><strong>Gecikme:</strong> ` + (a.delay == 0 ? "Yok" : a.delay + " gün") + `</span>
- </div>
- </li>
- `;
- }
- result = (result == '') ? "Bu listede hiçbir öğe yok." : result;
- return result;
- }
- function isertQueues() {
- var queues = GM_getValue("queueArray");
- if (queues != null && Array.isArray(queues) && queues.length >= 1) {
- // Aktifleşecek varsa aktifleştir.
- activateElements();
- // Üst menüye eklemeleri yap.
- for (x = 0; x < queues.length; x++) {
- var infos = queues[x][0];
- var activeArray = [];
- arrayFilter(queues[x][1], activeArray, "active");
- var queueOption = '<li id="queue648_' + infos.id + '_menu"><a href="#">' + infos.name + (infos.counter == 0 ? ' <span class="badge">' + activeArray.length + '</span>' : ' <span class="badge no-counter">' + activeArray.length + '</span>') + '</a></li>';
- $('#queue648').parent().append(queueOption);
- // Aktif öğe penceresi için fonksiyonu bağla.
- document.querySelector('#queue648_' + infos.id + '_menu').onclick = (function(t) {
- return function (e) {
- createQueueWindow(t);
- };
- })(x);
- }
- // Üst menü için tooltip ve bildirimi çalıştır.
- // $('script[src^="/js/jquery.min.12.4.js"]').remove();
- $('.lists-menu648').tooltip();
- $('.user-buttons > li.dropdown').each(function() {
- var counter = countCalculator(this);
- $(this).find('a[data-toggle="dropdown"] > .badge').html( (counter > 0 ? counter : "") );
- });
- // Yapım sayfasındaysa karta eklemeleri yap.
- if (pageUrl.search( /planetdp\.org\/title\// ) >= 0) {
- var readMore = document.querySelector('div[itemprop="description"] + a[data-readmore-moretext="Devamını gör"]');
- if (readMore) {
- readMore.style.position = "relative";
- readMore.style.marginRight = "15px";
- }
- for (x = 0; x < queues.length; x++) {
- var queueNo = queues.length - (x + 1);
- var infos2 = queues[queueNo][0];
- var isInQueue = queues[queueNo][1][cardId] != null;
- var buttonTitle = (isInQueue ? 'Listeden çıkar: ' : 'Listeye ekle: ') + infos2.name;
- if (isInQueue) {
- var q = queues[queueNo][1][cardId];
- var currentTime = new Date().getTime();
- buttonTitle += (q.active == 1 ? '' : enter + 'Aktifleşme: ' + millisecondConverter( (q.activateTime - currentTime) , "ms", "day") + ' gün sonra') + enter + (q.note == '' ? '' : 'Not: ' + q.note);
- }
- var queuButton = '<a href="#" id="queue648_' + infos2.id + '" title="' + buttonTitle + '" onclick="this.classList.toggle(`inQueue`)" class="' + (isInQueue ? 'inQueue': '') + '" style="margin-right: 10px; float: left;"><i class="fa fa-tasks" aria-hidden="true"></i></a>';
- document.querySelector('div.baba_main_right > div.text-right.marginver10').insertAdjacentHTML('afterbegin', queuButton);
- GM_addStyle('#queue648_' + infos2.id + ':hover, #queue648_' + infos2.id + '.inQueue {color: ' + infos2.color + '!important;}');
- // Kuyruğa yapım ekleme/çıkarma fonksiyonunu bağla.
- if (isInQueue) {
- document.querySelector('div.baba_main_right #queue648_' + infos2.id).onclick = (function(t, id) {
- return function (e) {
- removeQueueContent(t, id);
- };
- })(x, cardId);
- }
- else {
- document.querySelector('div.baba_main_right #queue648_' + infos2.id).onclick = (function(t) {
- return function (e) {
- createQueueContent(t);
- };
- })(x);
- }
- }
- }
- }
- }
- function countCalculator(dropdownLi) {
- var number = 0;
- $(dropdownLi).find('a:not([data-toggle="dropdown"]) > .badge:not(.no-counter)').each(function() {
- number += parseInt( this.textContent.trim().replace( /(\d+) - \d+/, "$1" ) );
- });
- return number;
- }
- function createQueueContent(queueNo) {
- var queues = GM_getValue("queueArray");
- var r_queueNo = queues.length - (queueNo + 1);
- var infos = queues[r_queueNo][0];
- var c_delay = infos.delay;
- var c_note = infos.note;
- var note = '';
- var delay = c_delay;
- // Lazımsa notu ve/veya gecikme süresini al.
- if (c_note == 0 || c_delay == "?") {
- insertWindow("content", "tasks", "Listeye ekle: " + infos.name, true, infos.color);
- var formContent = [];
- if (c_note == 0) {formContent.push( {name: 'Açıklama', element: 'textarea', elementProperties: 'id="queue_content_note" placeholder="Yapılacak iş ile ilgili bir not bırakabilirsiniz. Bu alan zorunlu değildir." style="resize: vertical;"'} );}
- if (c_delay == "?") {formContent.push( {name: 'Öğe Aktifleşme Gecikmesi', element: 'select', elementProperties: 'id="queue_content_delay"', inside: function() {return optionsHTML(this.options);}, options: [
- {value: '0', text: 'Yok'},
- {value: '1', text: '1 gün sonra'},
- {value: '2', text: '2 gün sonra'},
- {value: '3', text: '3 gün sonra'},
- {value: '7', text: '7 gün sonra'},
- {value: '15', text: '15 gün sonra'},
- {value: '30', text: '30 gün sonra'},
- {value: '*', text: 'Gün sayısını elle gir'}] }
- );}
- document.querySelector('#content-form > .window-content').insertAdjacentHTML("afterbegin", createformHTML(formContent) );
- if (c_delay == "?") {askToPerson( document.querySelector('select#queue_content_delay'), 7 );} // Gün sayısını elle girme fonksiyonu
- document.querySelector('button#save_content').onclick = function() {
- note = (c_note == 0 ? document.querySelector("#queue_content_note").value : '');
- delay = (c_delay == "?" ? getSelected("queue_content_delay") : c_delay);
- // Öğeyi oluştur.
- createContentLog(cardId, r_queueNo, delay, note, cardInfos, new Date().getTime());
- removeForm("content");
- };
- }
- else {
- // Öğeyi oluştur.
- createContentLog(cardId, r_queueNo, delay, note, cardInfos, new Date().getTime());
- }
- }
- function createContentLog(c_id, c_no, delay, note, c_Infos, added) {
- let que = GM_getValue("queueArray");
- var created = added;
- var activateTime = created + (delay*86400000);
- var active = (delay == 0 ? 1 : 0);
- var contentInfos = {cardId: c_id, cardTitle: c_Infos.cardTitle, active: active, note: note, created: created, activateTime: activateTime, delay: delay, year: c_Infos.year, dpRaiting: c_Infos.dpRaiting, imdbID: c_Infos.imdbID, imdbRating: c_Infos.imdbRating};
- que[c_no][1][c_id] = contentInfos;
- console.log(contentInfos);
- GM_setValue("queueArray", que);
- activateElements(); // Bekleyenleri kontrol ederek kaydet.
- }
- function removeQueueContent(queueNo, c_cardId) {
- var validation = confirm("Bu yapımı listeden çıkarmak istediğinize emin misiniz?");
- if (validation) {
- var queues = GM_getValue("queueArray");
- var r_queueNo = queues.length - (queueNo + 1);
- queues[r_queueNo][1][c_cardId] = null;
- GM_setValue("queueArray",queues);
- console.log("removed");
- }
- }
- function insertQueueForm(newOrEdit, queueNo) {
- var windowTitle, queueColor, oldInfos;
- if (newOrEdit == "new") {
- windowTitle = "Liste Oluştur";
- }
- else if (newOrEdit == "edit") {
- var library = GM_getValue("queueArray");
- oldInfos = library[queueNo][0];
- queueColor = oldInfos.color;
- windowTitle = "Listeyi Düzenle";
- }
- insertWindow("queue", "tasks", windowTitle, true, queueColor);
- var formContent = [
- {
- name: 'Liste Adı',
- element: 'input',
- elementProperties: 'id ="queue_name" type="text"'
- },
- {
- name: 'Açıklama',
- element: 'textarea',
- elementProperties: 'id="queue_description" placeholder="Listenin amacı, kullanışı vs. Bu alan zorunlu değildir." style="resize: vertical;"'
- },
- {
- name: 'Bildirim Olarak Göster',
- element: 'select',
- elementProperties: 'id="queue_counter"',
- inside: function() {return optionsHTML(this.options);},
- options: [
- {value:'0', text:'Evet'},
- {value:'1', text:'Hayır'}
- ]
- },
- {
- name: 'Öğe Notu',
- element: 'select',
- elementProperties: 'id="queue_note"',
- inside: function() {return optionsHTML(this.options);},
- options: [
- {value:'0', text:'Evet'},
- {value:'1', text:'Hayır'}] },
- {
- name: 'Öğe Aktifleşme Gecikmesi',
- element: 'select',
- elementProperties: 'id="queue_delay"',
- inside: function() {return optionsHTML(this.options);},
- options: [
- {value: '?', text: 'Ekleyişte sor'},
- {value: '0', text: 'Yok'},
- {value: '1', text: '1 gün sonra'},
- {value: '2', text: '2 gün sonra'},
- {value: '3', text: '3 gün sonra'},
- {value: '7', text: '7 gün sonra'},
- {value: '15', text: '15 gün sonra'},
- {value: '30', text: '30 gün sonra'},
- {value: '*', text: 'Gün sayısını elle gir'},
- ]
- },
- {
- name: 'Sıralama',
- element: 'select',
- elementProperties: 'id="queue_sortBy"',
- inside: function() {return optionsHTML(this.options);},
- options: [
- {value: 'created', text: 'Ekleme Tarihine Göre'},
- {value: 'activateTime', text: 'Aktifleşme Tarihine Göre'},
- {value: 'cardTitle', text: 'Alfabetik'},
- {value: 'year', text: 'Yıla Göre'},
- {value: 'imdbRating', text: 'IMDb Puanına Göre'},
- {value: 'dpRaiting', text: 'PlanetDP Puanına Göre'},
- ]
- },
- {
- name: 'Liste Rengi',
- element: 'select',
- elementProperties: 'id="queue_color" onchange="this.className = `form-control ` + this.options[this.selectedIndex].value"',
- inside: function() {return colorOptionsHTML();}
- }
- ];
- document.querySelector('#queue-form > .window-content').insertAdjacentHTML("afterbegin", createformHTML(formContent) );
- askToPerson( document.querySelector('select#queue_delay'), 8 ); // Gün sayısını elle girme fonksiyonu
- if (newOrEdit == "new") {
- document.querySelector('button#save_queue').onclick = function() { createEditQueue(); };
- fillNewEditQueueForm(defaultQueueForm);
- }
- else if (newOrEdit == "edit") {
- fillNewEditQueueForm(oldInfos);
- document.querySelector('button#save_queue').onclick = function() { createEditQueue(queueNo); createQueueWindow(queueNo); };
- document.querySelector('#queue-form button#close').onclick = function() { removeForm("queue"); createQueueWindow(queueNo); };
- }
- }
- function fillNewEditQueueForm(i_infos) {
- document.querySelector('input#queue_name').value = i_infos.name;
- document.querySelector('textarea#queue_description').value = i_infos.description;
- setSelected("queue_counter", i_infos.counter);
- setSelected("queue_note", i_infos.note);
- setSelected("queue_delay", i_infos.delay);
- setSelected("queue_sortBy", i_infos.sortBy);
- setSelected("queue_color", i_infos.color);
- }
- function setSelected(selectId, option) {
- $('select#' + selectId + ' option[value="' + option + '"]').prop('selected', true);
- }
- function askToPerson(delaySelection, askIndex) {
- delaySelection.onchange = function() {
- if(delaySelection.selectedIndex === askIndex) {
- var manualDelay;
- for (x = 0; !Number.isInteger( parseInt(manualDelay) ); x++) {
- manualDelay = prompt("Listeye eklenen öğeler kaç gün sonra aktifleşsin?");
- if (manualDelay == null) { break; }
- }
- if (manualDelay != null) {
- delaySelection.insertAdjacentHTML("beforeend", '<option value="' + manualDelay + '">' + manualDelay + ' gün sonra</option>');
- delaySelection.querySelector('option[value="' + manualDelay + '"]').selected = true;
- }
- else {
- delaySelection.firstElementChild.selected = true;
- }
- }
- };
- }
- function createformHTML(object) {
- var formContentHTML = '';
- for (x = 0; x < object.length; x++) {
- var f = object[x];
- formContentHTML += `
- <div class="row margintop10">
- <div class="col-md-4">` + f.name + `</div>
- <div class="col-md-8">
- <` + f.element + ` ` + f.elementProperties + ` class="form-control">` + (f.inside ? f.inside(): '') + `</` + f.element + `>
- </div>
- </div>`;
- }
- return formContentHTML;
- }
- function optionsHTML(object) {
- var html = '';
- for (var y = 0; y < object.length; y++ ) {
- html += '<option value="' + object[y].value + '">' + object[y].text + '</option>';
- }
- return html;
- }
- function colorOptionsHTML() {
- var queueColorsHTML = "";
- var queueColors = ["blueviolet", "brown", "cadetblue", "chocolate", "crimson", "darkgoldenrod", "dodgerblue", "forestgreen", "lightseagreen", "mediumvioletred", "olive", "orangered", "orchid", "palevioletred", "peru", "rebeccapurple", "royalblue", "teal", "tomato"];
- for (x = 0; x < queueColors.length; x++) {
- queueColorsHTML += '<option value="' + queueColors[x] + '" style="background-color: ' + queueColors[x] + '"' + (x==0 ? 'selected': '') + '>' + queueColors[x] + '</option>';
- GM_addStyle('.' + queueColors[x] + ' {background-color: ' + queueColors[x] + '}');
- }
- return queueColorsHTML;
- }
- function createEditQueue(c_queueNo) {
- var name = document.querySelector('input#queue_name').value;
- var description = document.querySelector('textarea#queue_description').value;
- var counter = getSelected("queue_counter");
- var note = getSelected("queue_note");
- var delay = getSelected("queue_delay");
- var sortBy = getSelected("queue_sortBy");
- var color = getSelected("queue_color");
- if (name == "") {
- alert("Bir liste adı girmeniz gerekiyor.");
- }
- else {
- var id = name.replace(/[\[\]\(\)\"\!\'\^\#\+\%\&\/\\\{\}\=\*\|\-\_\@\,\;\`\:\.<>\¨\~]/gi,"").replace(/\s+/g,"_").toLowerCase();
- var currentTime = new Date().getTime();
- var queueArray = GM_getValue("queueArray");
- if (queueArray == null) {
- queueArray = [];
- }
- if (c_queueNo == null) {
- var infos = {id: id, created: currentTime, name: name, description: description, counter: counter, note: note, delay: delay, sortBy: sortBy, color: color, version: version};
- var newQueue = [ infos, [], [] ]; // infos, active/waiting, completed
- queueArray.push(newQueue);
- }
- else {
- var oldInfos = queueArray[c_queueNo][0];
- var editedInfos = {id: id, created: oldInfos.created, name: name, description: description, counter: counter, note: note, delay: delay, sortBy: sortBy, color: color, version: version};
- queueArray[c_queueNo][0] = editedInfos;
- }
- // Kaydet ve pencereyi kapat.
- GM_setValue("queueArray", queueArray);
- removeForm("queue");
- }
- }
- function getSelected(selectId) {
- var selected = document.querySelector('select#' + selectId);
- if (selected != null) {
- selected = selected.options[selected.selectedIndex].value;
- return selected;
- }
- else {
- return null;
- }
- }
- function insertWindow(formName, faIcon, title, saveButton, iconColor) {
- // Formu ekle
- var formContainerHTML = `
- <div class="mfp-bg mfp-ready"></div>
- <div class="mfp-wrap mfp-close-btn-in mfp-auto-cursor mfp-ready" tabindex="-1" style="overflow: hidden auto;"><div class="mfp-container mfp-inline-holder"><div class="mfp-content">
- <form id="` + formName + `-form" class="white-popup-block" style="padding-top: 30px">
- <fieldset class="window-header">
- <h1 style="font-size: 25px;">
- <i class="fa fa-` + faIcon + `" aria-hidden="true" style="margin-right: 10px; color:` + (iconColor =! null ? iconColor : 'inherit') + `"></i>` + title + `
- </h1>
- </fieldset>
- <fieldset class="window-content margintop10">` + (saveButton ? `<div class="row margintop10 text-center"><button id="save_` + formName + `" type="button" class="btn btn-info" style="margin-top: 10px;">KAYDET</button></div>` : '') + `
- </fieldset>
- <button id="close" title="Kapat (Esc)" type="button" class="mfp-close">×</button>
- </form></div></div></div>
- `;
- document.querySelector('body').insertAdjacentHTML("afterbegin", formContainerHTML);
- // Kapat tuşuyla formu kapat
- document.querySelector('#' + formName + '-form > button#close').onclick = function() { removeForm(formName); };
- // Esc ile formu kapat
- function doc_keyUp(e) {
- if (e.key === "Escape") {
- removeForm(formName);
- }
- }
- document.addEventListener('keyup', doc_keyUp, false);
- /* Bu kod firefox'da her daim çalıştığı için sorun çıkardı.
- // Form dışı bir yere tıklama ile formu kapat
- window.onclick = function(event) {
- if (event.target.closest('#' + formName + '-form') == null) {
- removeForm(formName);
- }
- };
- */
- }
- function removeForm(formName) {
- if ( document.querySelector('#' + formName + '-form') ) {
- var formDiv = document.querySelector('#' + formName + '-form').parentElement.parentElement.parentElement;
- formDiv.previousElementSibling.remove();
- formDiv.remove();
- }
- }
- function classToogle(element, classes) {
- for (let x = 0; x < classes.length; x++) {
- element.classList.toggle( classes[x] );
- }
- }
- function arrayFilter(sourceArray, targetArray, type) {
- for (let x = 0; x < sourceArray.length; x++) {
- if (sourceArray[x] != null) {
- if (type == "active") {
- if (sourceArray[x].active == 1) targetArray.push(sourceArray[x]);
- }
- else if (type == "waiting") {
- if (sourceArray[x].active == 0) targetArray.push(sourceArray[x]);
- }
- else {
- targetArray.push(sourceArray[x]);
- }
- }
- }
- }
- function arraySorter(array, objectOrNot, objectType) {
- if (objectOrNot == "object") {
- 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 -1;}
- if (x > y) {return 1;}
- return 0;
- });
- if (objectType == "imdbRating" || objectType == "dpRaiting") array.reverse();
- }
- else if (objectOrNot == "nonObject") {
- array.sort();
- }
- }
- function millisecondConverter( unit, from, to ) {
- var result;
- switch (from) {
- case "ms" :
- 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 "ms": result = unit * 31556952000; break;} break;
- case "month":
- switch (to) {case "ms": result = unit * 2592000000; break;} break;
- case "week":
- switch (to) {case "ms": result = unit * 604800000; break;} break;
- case "day":
- switch (to) {case "ms": result = unit * 86400000; break;} break;
- case "hour":
- switch (to) {case "ms": result = unit * 3600000; break;} break;
- case "minute":
- switch (to) {case "ms": result = unit * 60000; break;} break;
- case "second":
- switch (to) {case "ms": result = unit * 1000; break;} break;
- }
- return result;
- }
- function addForumExport() {
- var appsArea = document.querySelector('.cke_toolbar.cke_toolbar_last > .cke_toolbar_end').previousElementSibling;
- var appButton = `
- <a id="cke_queue" class="cke_button cke_button_off" href="javascript:void('Queue')" title="Liste Çıktısı Al" role="button">
- <span class="cke_button_icon" style="background-image: url('https://images2.imgbox.com/6a/18/KWBxXjc7_o.png'); background-position: 0 0px; background-size: 16px;"></span>
- </a>
- `;
- appsArea.insertAdjacentHTML("beforeend", appButton);
- appsArea.querySelector('#cke_queue').onclick = function() {
- var library = GM_getValue("queueArray");
- var promtText = 'Aşağıdaki listelerden çıktısını almak istediğinizin numarısını girin:' + enter;
- for (let x = 0; x < library.length; x++) {
- promtText += enter + x + " - " + library[x][0].name;
- }
- var queueNo = prompt(promtText);
- if (queueNo) {
- var infos = library[queueNo][0];
- var array = [];
- arrayFilter(library[queueNo][1], array);
- arraySorter(array, "object", infos.sortBy);
- var queueHTMLli = '';
- for (let x = 0; x < array.length; x++) {
- var a =array[x];
- queueHTMLli += `<li><strong><a href="https://www.planetdp.org/title/-dp` + a.cardId + `" rel="external nofollow">PlanetDP</a> | <a href="https://www.imdb.com/title/tt` + a.imdbID + `" rel="external nofollow">IMDb</a></strong> >> <strong>` + a.cardTitle + ` (` + a.year + `)</strong></li>`;
- }
- var queueHTML = '<p>Liste: <strong>' + infos.name + ' (' + array.length + ')</strong></p><ul>' + queueHTMLli + '</ul>';
- appsArea.closest('.cke_inner.cke_reset').querySelector('div.cke_enable_context_menu.cke_editable[role="textbox"]').insertAdjacentHTML("beforeend", queueHTML);
- }
- };
- }
- function waitForKeyElements (
- selectorTxt, /* Required: The jQuery selector string that
- specifies the desired element(s).
- */
- actionFunction, /* Required: The code to run when elements are
- found. It is passed a jNode to the matched
- element.
- */
- bWaitOnce, /* Optional: If false, will continue to scan for
- new elements even after the first match is
- found.
- */
- iframeSelector /* Optional: If set, identifies the iframe to
- search.
- */
- ) {
- var targetNodes, btargetsFound;
- if (typeof iframeSelector == "undefined")
- targetNodes = $(selectorTxt);
- else
- targetNodes = $(iframeSelector).contents ()
- .find (selectorTxt);
- if (targetNodes && targetNodes.length > 0) {
- btargetsFound = true;
- /*--- Found target node(s). Go through each and act if they
- are new.
- */
- targetNodes.each ( function () {
- var jThis = $(this);
- var alreadyFound = jThis.data ('alreadyFound') || false;
- if (!alreadyFound) {
- //--- Call the payload function.
- var cancelFound = actionFunction (jThis);
- if (cancelFound)
- btargetsFound = false;
- else
- jThis.data ('alreadyFound', true);
- }
- } );
- }
- else {
- btargetsFound = false;
- }
- //--- Get the timer-control variable for this selector.
- var controlObj = waitForKeyElements.controlObj || {};
- var controlKey = selectorTxt.replace (/[^\w]/g, "_");
- var timeControl = controlObj [controlKey];
- //--- Now set or clear the timer as appropriate.
- if (btargetsFound && bWaitOnce && timeControl) {
- //--- The only condition where we need to clear the timer.
- clearInterval (timeControl);
- delete controlObj [controlKey];
- }
- else {
- //--- Set a timer, if needed.
- if ( ! timeControl) {
- timeControl = setInterval ( function () {
- waitForKeyElements ( selectorTxt,
- actionFunction,
- bWaitOnce,
- iframeSelector
- );
- },
- 300
- );
- controlObj [controlKey] = timeControl;
- }
- }
- waitForKeyElements.controlObj = controlObj;
- }
- })();