- // ==UserScript==
- // @name rTWi stylish
- // @namespace http://tothimre.changeip.net/svn
- // @description A http://hyena.hu seed szerverén futó rTWi kinézetét módosítja
- // @author Tóth Imre
- // @copyright (C) 2012-2015 Tóth Imre
- // @include http://dcore.hu/*
- // @include /https?://(debian\.intra|tothimre\.changeip\.net)/admin/rtwi/.*/
- // @include http://zilla.hu/*
- // @include http://denber.hu/*
- // @include http://zilla.webhop.org/*
- // @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js
- // @require https://gf.qytechs.cn/scripts/9136-color-picker/code/Color%20picker.js
- // @resource colorpicker_css http://tothimre.changeip.net/lib/ColorPicker/css/colorpicker.css
- // @resource colorpicker_background http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_background.png
- // @resource colorpicker_overlay http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_overlay.png
- // @resource colorpicker_select http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_select.gif
- // @resource colorpicker_indic http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_indic.gif
- // @resource colorpicker_hex http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_hex.png
- // @resource colorpicker_rgb_r http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_rgb_r.png
- // @resource colorpicker_rgb_g http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_rgb_g.png
- // @resource colorpicker_rgb_b http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_rgb_b.png
- // @resource colorpicker_hsb_h http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_hsb_h.png
- // @resource colorpicker_hsb_s http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_hsb_s.png
- // @resource colorpicker_hsb_b http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_hsb_b.png
- // @resource colorpicker_submit http://tothimre.changeip.net/lib/ColorPicker/images/colorpicker_submit.png
- // @version 2.3.4
- // @icon http://dcore.hu/favicon.ico
- // @grant GM_addStyle
- // @grant GM_getResourceText
- // @grant GM_getResourceURL
- // @grant GM_getValue
- // @grant GM_setValue
- // @svn-id $Id: rTWi stylish_v2.user.js 24 2014-02-27 08:33:14Z tothimre $
- // ==/UserScript==
-
- /** rTWi stylish
- * Copyright (C) 2012-2015 Tóth Imre (ti00652 at gmail)
- *
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- *
- *
- * Ez a program szabad szoftver; terjeszthető illetve módosítható a
- * Free Software Foundation által kiadott GNU General Public License
- * dokumentumában leírtak; akár a licenc 3-as, akár (tetszőleges) későbbi
- * változata szerint.
- *
- * Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz,
- * de minden egyéb GARANCIA NÉLKÜL, az ELADHATÓSÁGRA vagy VALAMELY CÉLRA
- * VALÓ ALKALMAZHATÓSÁGRA való származtatott garanciát is beleértve.
- * További részleteket a GNU General Public License tartalmaz.
- *
- * A felhasználónak a programmal együtt meg kell kapnia a GNU General
- * Public License egy példányát; ha mégsem kapta meg, akkor
- * tekintse meg a <http://www.gnu.org/licenses/> oldalon (nem hivatalos magyar
- * fordítás: <http://gnu.hu/gplv3.html/>).
- */
-
-
- // beállítások; v2+: használd az UI-t a beállításhoz!
- var settings = {
- background_color: "FFFFFF", // háttér színe (hexa módban)
- active_speed_color: "FF00FF", // aktív torrent sebességének színe (hexa módban)
- ratio_limit: 1.000, // cél arány, ez felett és alatt más színnel lesznek színezve a torrentek
- ratio_color_good: "008000", // cél arányt elért torrent arányának színe (hexa módban)
- ratio_color_bad: "FF0000" // cél arányt el nem ért torrent arányának színe (hexa módban)
- };
-
- var loc = window.location;
-
- // függvények
- function init() {
- // beállítások betöltése
- $.extend(settings, JSON.parse(GM_getValue("settings_" + loc.hostname, "{}")));
-
- // stílus beállítása
- GM_addStyle("body { background: none repeat scroll 0 0 #" + settings["background_color"] + " !important; }\n" + // ronda (fos)sárga háttér (#ECE5B6) eltüntetése
- ".tline:hover { background-color: #E0E0E0; }\n" + // torrent sorának kiemelése, ha fölékerül az egér
- ".ds_active_speed { color: #" + settings["active_speed_color"] + "; }\n" + // sebesség kiemelés stílusa
- ".ds_ratio_good { color: #" + settings["ratio_color_good"] + "; }\n" + // arány kiemelés stílusa
- ".ds_ratio_bad { color: #" + settings["ratio_color_bad"] + "; }"); // arány kiemelés stílusa
-
-
- // sebességek, arány kiemelése (hogy hogyan, azt függvénye válogatja)
- if (loc.pathname.match(/\/(index\.php|$)/)) {
- $("div.trates > span").each(highlight_active_speed); // torrent lista
- $("div.trates_total > span").each(highlight_active_speed); // globális sebesség
- $("div.tratio > span:last-child").each(highlight_active_ratio); // arány
- }
-
- // beállítások menüpont
- var menu = $("#mainmenu");
- if (menu.length) {
- $("ul", menu).append('<li><a id="ds_settings" href="#">Stylish beállítások</a></li>');
- $("#ds_settings").click(show_settings);
- }
-
- // tárhely adatok átírása a torrent hozzáadása fülön
- if (loc.search.match(/\?mod=addtorrent/)) {
- var disk_space_div = $("div.tufspace:first");
- var disk_space = disk_space_div.text().match(/(\d+)(\w+) \/ (\d+)(\w+)/);
- // " 45122M / 45056M"
- if (disk_space[2] == disk_space[4]) // ha mások a prefixek, nem csinálunk semmit
- disk_space_div.text(disk_space[0] + " használatban, " + (disk_space[3] - disk_space[1]) + disk_space[2] + " szabad");
- else
- disk_space_div.text(disk_space[0] + " használatban");
- }
-
- // konzol alól is legyen jQuery
- unsafeWindow.$$=jQuery;
- }
-
- // kiemeli a torrent sebességét
- function highlight_active_speed() {
- var speed = $(this).text().match(/([\d\.]+)/)[1];
- if (speed > 0)
- $(this).attr("class", "ds_active_speed");
- }
-
- // kiemeli a torrent arányát
- function highlight_active_ratio() {
- var ratio = $(this).text().match(/([\d\.]+)/)[1];
- if (ratio >= settings["ratio_limit"])
- $(this).attr("class", "ds_ratio_good");
- else
- $(this).attr("class", "ds_ratio_bad");
- }
-
- // felépíti és megjeleníti a beállításokat
- function show_settings() {
- if ($("#ds_settings_body").length) // ha már meg van nyitva a menü, kilépünk
- return false;
-
- // ColorPicker stílus hozzáadása
- GM_addStyle(GM_getResourceText("colorpicker_css") + "\n" +
- ".colorpicker { background: url(" + GM_getResourceURL("colorpicker_background") + "); }\n" + // képek linkjének átírása; a CSS-t is át lehetne írni és úgy feltölteni, viszont akkor nem cache-elné GM a fájlt
- ".colorpicker_color div { background: url(" + GM_getResourceURL("colorpicker_overlay") + "); }\n" +
- ".colorpicker_color div div { background: url(" + GM_getResourceURL("colorpicker_select") + "); }\n" +
- ".colorpicker_hue div { background: url(" + GM_getResourceURL("colorpicker_indic") + ") left top; }\n" +
- ".colorpicker_hex { background: url(" + GM_getResourceURL("colorpicker_hex") + ") top; }\n" +
- ".colorpicker_rgb_r { background-image: url(" + GM_getResourceURL("colorpicker_rgb_r") + "); }\n" +
- ".colorpicker_rgb_g { background-image: url(" + GM_getResourceURL("colorpicker_rgb_g") + "); }\n" +
- ".colorpicker_rgb_b { background-image: url(" + GM_getResourceURL("colorpicker_rgb_b") + "); }\n" +
- ".colorpicker_hsb_h { background-image: url(" + GM_getResourceURL("colorpicker_hsb_h") + "); }\n" +
- ".colorpicker_hsb_s { background-image: url(" + GM_getResourceURL("colorpicker_hsb_s") + "); }\n" +
- ".colorpicker_hsb_b { background-image: url(" + GM_getResourceURL("colorpicker_hsb_b") + "); }\n" +
- ".colorpicker_submit { background: url(" + GM_getResourceURL("colorpicker_submit") + ") top; }");
-
- /* nem működik
- // @resource layout_js http://tothimre.changeip.net/lib/ColorPicker/js/layout.js
- // @resource layout_css http://tothimre.changeip.net/lib/ColorPicker/css/layout.css
- // @resource select http://tothimre.changeip.net/lib/ColorPicker/images/select.png
- // @resource select2 http://tothimre.changeip.net/lib/ColorPicker/images/select2.png
- // @resource custom_background http://tothimre.changeip.net/lib/ColorPicker/images/custom_background.png
- // @resource custom_indic http://tothimre.changeip.net/lib/ColorPicker/images/custom_indic.gif
- // @resource custom_hex http://tothimre.changeip.net/lib/ColorPicker/images/custom_hex.png
- // @resource custom_rgb_r http://tothimre.changeip.net/lib/ColorPicker/images/custom_rgb_r.png
- // @resource custom_rgb_g http://tothimre.changeip.net/lib/ColorPicker/images/custom_rgb_g.png
- // @resource custom_rgb_b http://tothimre.changeip.net/lib/ColorPicker/images/custom_rgb_b.png
- // @resource custom_hsb_s http://tothimre.changeip.net/lib/ColorPicker/images/custom_hsb_s.png
- // @resource custom_hsb_h http://tothimre.changeip.net/lib/ColorPicker/images/custom_hsb_h.png
- // @resource custom_hsb_b http://tothimre.changeip.net/lib/ColorPicker/images/custom_hsb_b.png
- // @resource custom_submit http://tothimre.changeip.net/lib/ColorPicker/images/custom_submit.png
-
- GM_addStyle(GM_getResourceText("layout_css") + "\n" + // fehér ColorPicker
- "#colorSelector { background: url(" + GM_getResourceURL("select") + "); }\n" +
- "#colorSelector div { background: url(" + GM_getResourceURL("select") + ") center; }\n" +
- "#colorSelector2 { background: url(" + GM_getResourceURL("select2") + "); }\n" +
- "#colorSelector2 div { background: url(" + GM_getResourceURL("select2") + ") center; }\n" +
- "#colorpickerHolder2 .colorpicker { background-image: url(" + GM_getResourceURL("custom_background") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_hue div { background-image: url(" + GM_getResourceURL("custom_indic") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_hex { background-image: url(" + GM_getResourceURL("custom_hex") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_rgb_r { background-image: url(" + GM_getResourceURL("custom_rgb_r") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_rgb_g { background-image: url(" + GM_getResourceURL("custom_rgb_g") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_rgb_b { background-image: url(" + GM_getResourceURL("custom_rgb_b") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_hsb_s { background-image: url(" + GM_getResourceURL("custom_hsb_s") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_hsb_h { background-image: url(" + GM_getResourceURL("custom_hsb_h") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_hsb_b { background-image: url(" + GM_getResourceURL("custom_hsb_b") + "); }\n" +
- "#colorpickerHolder2 .colorpicker_submit { background-image: url(" + GM_getResourceURL("custom_submit") + "); }");
- */
-
- // beállítások megjelenítése
- GM_addStyle(".ds_bad_field { border: 2px solid red }\n" + // hibás mező stílusa
- ".ds_settings_left { float: left; font-weight: bold; width: 17%; }\n" + // bal oszlop stílusa
- ".ds_settings_right {float: left; width: 83%; }\n" + // jobb oszlop stílusa
- ".ds_formsend { margin: 1em 0 0 17%; }"); // gombsor stílusa
- var html = '<div id="ds_settings_body"><ul class="tuform">\n' +
- '<li><div class="ds_settings_left">Háttér színe:</div><div class="ds_settings_right"><input id="ds_background_color_field" title="Háttér színe (hexa módban)" type="text"></div><div class="clr"></div></li>\n' +
- '<li><div class="ds_settings_left">Aktív sebesség színe:</div><div class="ds_settings_right"><input id="ds_active_speed_color_field" title="Aktív torrent sebességének a színe (hexa módban)" type="text"></div><div class="clr"></div></li>\n' +
- '<li><div class="ds_settings_left">Cél arány:</div><div class="ds_settings_right"><input id="ds_ratio_limit_field" title="Cél arány (pl. 1.00)" type="text"></div><div class="clr"></div></li>\n' +
- '<li><div class="ds_settings_left">Szín a cél arány felett:</div><div class="ds_settings_right"><input id="ds_ratio_color_good_field" title="Torrent arányának a színe a cél arány felett (hexa módban)" type="text"></div><div class="clr"></div></li>\n' +
- '<li><div class="ds_settings_left">Szín a cél arány alatt:</div><div class="ds_settings_right"><input id="ds_ratio_color_bad_field" title="Torrent arányának a színe a cél arány alatt (hexa módban)" type="text"></div><div class="clr"></div></li>\n' +
- '<li class="ds_formsend"><input id="ds_save_settings" class="inputok" title="Beállítások mentése" value="Beállítások mentése" type="button"> <input id="ds_cancel_save" class="inputok" title="Mégsem" value="Mégsem" type="button"> <input id="ds_default_settings" class="inputok" title="Alapértelmezés visszaállítása" value="Alapértelmezés" type="button"></li>\n' +
- '</ul></div>';
- $("#maincol").html(html);
-
- // mezők feltöltése az értékekkel, eseménykezelés (ciklusban, mert nem szeretem az ismétlődő sorokat :)
- var x = ["background_color", "active_speed_color", "ratio_limit", "ratio_color_good", "ratio_color_bad"];
- for (i in x)
- $("#ds_" + x[i] + "_field").val(settings[x[i]]).change(lock_page);
- $("#ds_background_color_field, #ds_active_speed_color_field, #ds_ratio_color_good_field, #ds_ratio_color_bad_field").ColorPicker({
- onSubmit: function(hsb, hex, rgb, el) {
- lock_page();
- $(el).val(hex.toUpperCase());
- $(el).ColorPickerHide();
- },
- onBeforeShow: function () {
- $(this).ColorPickerSetColor(this.value);
- }
- }).bind('keyup', function(){
- $(this).ColorPickerSetColor(this.value);
- });
- $("#ds_save_settings").click(save_settings);
- $("#ds_cancel_save").click(reload_page);
- $("#ds_default_settings").click(reset_settings);
- return false;
- }
-
- // validálja és menti a beállításokat
- function save_settings() {
- // előző üzenet és mező kiemelés törlése
- $("#err").remove();
- $(".ds_bad_field").removeClass("ds_bad_field");
-
- // color mezők validálása
- var x = ["background_color", "active_speed_color", "ratio_color_good", "ratio_color_bad"];
- var errors = 0;
- var field, val;
- for (i in x) {
- field = $("#ds_" + x[i] + "_field");
- val = $.trim(field.val());
- if (!val.match(/^[\da-f]{3,6}$/i)) {
- errors++;
- field.addClass("ds_bad_field");
- } else
- settings[x[i]] = val.toUpperCase();
- }
- if (errors) {
- show_info("Érvénytelen szín!");
- return false;
- }
-
- // ratio mező validálása
- field = $("#ds_ratio_limit_field");
- val = $.trim(field.val());
- if (!val.match(/^\d+\.?\d*$/)) {
- field.addClass("ds_bad_field");
- show_info("Érvénytelen szám!");
- return false;
- } else
- settings["ratio_limit"] = parseFloat(val);
-
- GM_setValue("settings_" + loc.hostname, JSON.stringify(settings));
- show_info("Beállítások elmentve");
- setTimeout(reload_page, 3000);
- return false;
- }
-
- // törli a beállításokat és újratölti az oldalt
- function reset_settings() {
- GM_setValue("settings_" + loc.hostname, "{}");
- reload_page();
- }
-
- // az oldal elhagyásakor figyelmeztető üzenetet jelenít meg (meta refresh ellen)
- function lock_page() {
- $(window).bind("beforeunload", function () {
- return "A változások még nincsenek mentve. Ha most elhagyod az oldalt, a módosítások elvesznek!";
- });
- }
-
- // törli a figyelmezető üzenetet, és újratölti az oldalt
- function reload_page() {
- $(window).unbind("beforeunload");
- loc.reload()
- }
-
- // információt jelenít meg a torrentlista felett
- function show_info(message) {
- $("#maincol").prepend('<div title="Kattints ide az elrejtéshez" id="err" style="cursor: pointer;"><div>' + message + '</div></div>');
- $("#err").click(function() {
- $(this).slideUp();
- setTimeout(function () { $("#err").remove(); }, 1000);
- });
- }
-
-
- // script aktiválása
- init();