Популярное сообщение Damange Опубликовано: 13 сентября 2016 Популярное сообщение Поделиться Опубликовано: 13 сентября 2016 (изменено) Вступление Интерфейс аукциона не самая удобная штука. Каждый день приходится просматривать большую таблицу, выискивая что-то интересное. В некоторые моменты от количества тем просто рябит в глазах (например после пререлиза). Я решил добавить немного удобства всем пользователям топдека. Встречайте. Публичный релиз скрипта для подсветки нужных лотов. Как это всё работает. Используется JavaScript (то есть дополнительная нагрузка на сервер топдека не создаётся, всё полностью работает на стороне клиента - в браузере). Скрипт ищет названия аукционов или нужных пользователей и выделяет их цветом. ps. Моя специализация - php и серверное программирование. JS я знаю плохо. Но личных знаний и навыков программирования достаточно для создания подобного скрипта. Если у вас будут предложения по улучшению или просто советы - пишите в личку. Установка. Если вы до этого не использовали подобные скрипты, то вам нужно установить плагин для своего браузра. Для Хрома - это Tampermonkey (7 миллионов пользователей) https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=ru Для FireFox - это Grease Monkey (1 миллион пользователей) https://addons.mozilla.org/ru/firefox/addon/greasemonkey/ Опишу установку и настройку на примере браузера Chrome. 1. Перейти по ссылке и установить плагин 2. Перейти в настройки Tampermonkey После добавления плагина в браузер в правом верхнем углу появляется пиктограмма. Необходимо нажать на неё левой кнопкой мыши и выбрать "Панель". 3. Добавить скрипт (сам скрипт под спойлером в конце поста) Для этого нажимаем на "+" и вставляем содержимое скрипта в окно редактора. После чего нажимаем сохранить. 4. Перейти на страницу аукционов и пользоваться. Настройка скрипта. Для того, чтобы произвести настройку "под себя" необходимо зайти в "Панель" Tampermonkey. Выбрать вкладку "установленные скрипты". Выбрать действие "Редактировать" Как можно настроить скрипт. 1. Вариант подсветки фона (ячейка или весь ряд) var highlightRow = false; По умолчанию включена подсветка одной ячейки столбца. Если скрипт нашел совпадение в названии, то он подсветит первую ячейку. А для продавца Продавца - вторую ячейку. Если установить значение в true, то подсвечиваться будет вся строка: var highlightRow = true; При этом подсветка фона Продавца перекрашивает фон от названия. 2. Выделение аукционов с учетом вхождения слов в названии аукциона var wordsConfig = "фойл:PaleGoldenRod|foil:PaleGoldenRod|Эмракул:PaleTurquoise|Нахири:PaleTurquoise"; Для подсветки слов и игроков используется схожий синтаксис: "что ищем" двоеточие "цвет" и разделитель "что ищем" - разрешено использовать любые символы, кроме двоеточия, разделителя или двойных кавычек. "цвет" - используется название цвета или его шестнадцатеричное представление, то есть можно написать red или #FF0000. Для выбора названий цветов можно использовать справочник цветов. Итого каждый элемент поиска выглядит примерно так: Эмракул:PaleTurquoise| 3. Выделение аукционов конкретного Продавца Секция с настройками выглядит аналогично, только указывается id профиля пользователя. Его можно узнать, навеля на имя Продавца. Ссылка на мой профиль имеет такой вид: http://topdeck.ru/forum/index.php?showuser=4324 Секция с настройками пользователей разделена на три сегмента. // Поиск по пользователям var usersConfig = ""; // bad - черный список. Сюда можно занести пользователей, с которыми вы не хотите трейдится var usersConfig = usersConfig + "5370:HotPink|"; // good - список друзей или хороших продавцов. var usersConfig = usersConfig + ""; // topTrade - top 20 пользователей по рейтингу топ трейда. var usersConfig = usersConfig + "....." Если вам не нужно подсвечивать топов по рейтингу просто сотрите или закомментируйте эту строку, для этого нужно поставить "//" в начале строки. Если пользователь попадает сразу в несколько списков, то действует приоритет сверху вниз. То есть вначале применяется "черный список", потом "друзья" и "топы". Тело скрипта примечание: при копировании скрипта в FF добавляются лишние переносы. Для пользователей этого браузера лучше использовать скрипт по ссылке: http://tarlyun.com/files/topdeck/td-gm-2.user.js (версия 1.0.2) Его можно скачать, отредактировать и перетащить в браузер. // ==UserScript== // @name Topdeck_Auc_Coloring // @description Topdeck_Auc_Coloring. More color names at www.w3schools.com/colors/colors_names.asp // @author Maximum_Damange // @version 1.0.2 // @include http://topdeck.ru/auc/aucs.php* // @namespace TD // @grant GM_getValue // @grant GM_setValue // ==/UserScript== // ================== Настройки ==================== // Подсветка всей строки var highlightRow = true; // Поиск по словам в теме аукциона var wordsConfig = "фойл:PaleGoldenRod|foil:PaleGoldenRod|Эмракул:PaleTurquoise|Нахири:PaleTurquoise"; // Поиск по пользователям var usersConfig = ""; // Оставить пустым. // bad usersConfig = usersConfig + "5370:HotPink|"; // good usersConfig = usersConfig + "4324:LightSteelBlue|"; // topTrade - top 20 usersConfig = usersConfig + "5370:PaleGreen|161:PaleGreen|392:PaleGreen|120:PaleGreen|1080:PaleGreen|3036:PaleGreen|4026:PaleGreen|1278:PaleGreen|455:PaleGreen|2848:PaleGreen|5489:PaleGreen|112:PaleGreen|1228:PaleGreen|114:PaleGreen|5959:PaleGreen|1324:PaleGreen|357:PaleGreen|694:PaleGreen|1860:PaleGreen|243:PaleGreen|"; // ================================================== var currentMaxId = 0; var lastTopicId = GM_getValue('lastTopicId', 0); var trs = document.getElementsByTagName('tr'); for (var tri = 1; tri < trs.length; tri++) { tr = trs[tri]; topdeckHighlight(tr, wordsConfig, 1); topdeckHighlight(tr, usersConfig, 2); // Определяем номер аукциона, и видели ли мы уже его topicId = topdeckNewAucs(tr, lastTopicId); if (topicId && currentMaxId < topicId) currentMaxId = topicId; } GM_setValue('lastTopicId', currentMaxId); function topdeckNewAucs(tr, lastTopicId) { var H = tr.childNodes[1].childNodes[0]; if (H.nodeName != 'A') { return false; } var topicId = H.search.split('=')[1]; if (topicId > lastTopicId) { H.innerHTML = '<img src="http://topdeck.ru/forum/public/style_images/delicate-blue/bullet_green.png">' + H.innerHTML; } return topicId; } function topdeckHighlight(tr, config, col) { var cArray = config.split('|'); if (!cArray) return false; if (tr.childNodes[col] && tr.childNodes[col].innerHTML) { var tr_inner = tr.childNodes[col].innerHTML; tr_inner = (getLowerCase(col)) ? tr_inner.toLowerCase() : tr_inner; for (var c = 0; c < cArray.length; c++) { var color = cArray[c].split(':'); pattern = getPattern(color[0], col); pattern = (getLowerCase(col)) ? pattern.toLowerCase() : pattern; if (tr_inner.indexOf(pattern) > -1) { tds = tr.getElementsByTagName('td'); if (highlightRow) { for (tdi = 0; tdi < tds.length; tdi++) { tds[tdi].style.background = color[1]; } } else { tds[col-1].style.background = color[1]; } return true; } } } } function getPattern(pattern, col) { if (col == 2) { return 'showuser=' + pattern + '"'; } return pattern; } function getLowerCase(col) { if (col == 1) { return true; } return false; } История версий 1.0.0 Релиз скрипта 1.0.1 Поиск по названию аукциона не учитывает большие/малые буквы (регистронезависимый поиск) 1.0.2 Подсветка новых аукционов ВНИМАНИЕ Для того, чтобы обновить скрипт и не потерять свои настройки нужно зайти в редактирование скрипта и скопировать настройки. После чего вставить их в новый скрипт. ps. Обновил ссылки на картинки Изменено 17 мая 2017 пользователем Damange 17 Наверх Ссылка на комментарий Поделиться на других сайтах More sharing options...
Achiles Опубликовано: 13 сентября 2016 Поделиться Опубликовано: 13 сентября 2016 Обрадовался, поставил плюсик, установил плагин, добавил скрипт, но ничего не подсвечивается =( Браузер - Firefox. Плагин активен, страницу с ауками видит и показывает, что для нее есть скрипт, но вообще ничего не хайлайтит. Ссылка на комментарий Поделиться на других сайтах More sharing options...
Gefpenst Опубликовано: 13 сентября 2016 Поделиться Опубликовано: 13 сентября 2016 (изменено) Обрадовался, поставил плюсик, установил плагин, добавил скрипт, но ничего не подсвечивается =( Браузер - Firefox. Плагин активен, страницу с ауками видит и показывает, что для нее есть скрипт, но вообще ничего не хайлайтит. Зайдите в редактирование скрипта, если как и я, просто копировали текст скрипта, то в редакторе слева сбоку будут красные крестики - ругается на незакрытую строку, там надо удалить символы "следующая строка" в конце (tl;dr сделать из нескольких строк одну). У меня после этого заработало, но потом придется еще настраивать "под себя", я вот пока не понял, что значит фиолетовая подсветка. Всё, понял, это "черный лист". Наверное, для образца всё же лучше было оставить эту строку пустой Вообще, полезный скрипт, мануальный плюс, надеюсь на развитие идеи с какой-нибудь минимальной формой настройки - чтобы вбить слово/ИД и выбрать один из дефолтных цветов просто, а не влезать в сам текст скрипта Изменено 13 сентября 2016 пользователем Gefpenst Ссылка на комментарий Поделиться на других сайтах More sharing options...
Damange Опубликовано: 13 сентября 2016 Автор Поделиться Опубликовано: 13 сентября 2016 (изменено) Обрадовался, поставил плюсик, установил плагин, добавил скрипт, но ничего не подсвечивается =( Браузер - Firefox. Плагин активен, страницу с ауками видит и показывает, что для нее есть скрипт, но вообще ничего не хайлайтит. На последней версии FF + GM у меня тоже не работает. Завтра проведу исследование. Буквально в последний момент разобрался в чем дело. Добавил новый сегмент в инициализацию скрипта и починил переносы (как написали выше). Можно скачать по ссылке: https://dl.dropboxusercontent.com/u/9306322/mtg/td-gm-2.user.js При этом ФФ предложит установить его. Можно сохранить, отредактировать, и перетащить в браузер. Вообще, полезный скрипт, мануальный плюс, надеюсь на развитие идеи с какой-нибудь минимальной формой настройки - чтобы вбить слово/ИД и выбрать один из дефолтных цветов просто, а не влезать в сам текст скрипта Это первая версия, максимально простая и универсальная. Форма с настройками будет. Как уже писал выше - js я знаю плохо. Нужно много читать / отлаживать, прежде чем получиться хорошо. В планах: - Форма с настройками - Отметка новых аукционов (которые появились с момента последнего посещения аукционов) - Подсветка победителей Изменено 22 декабря 2016 пользователем Damange 2 Наверх Ссылка на комментарий Поделиться на других сайтах More sharing options...
AlexSkuratov Опубликовано: 14 сентября 2016 Поделиться Опубликовано: 14 сентября 2016 Вот я для себя просто скрипт на баше написал, раз в час сканирует страницу и отправляет сообщение, если что-то интересующее появилось. Ссылка на комментарий Поделиться на других сайтах More sharing options...
Weenee Опубликовано: 14 сентября 2016 Поделиться Опубликовано: 14 сентября 2016 Вот я для себя просто скрипт на баше написал, раз в час сканирует страницу и отправляет сообщение, если что-то интересующее появилось. ты молодец 3 Наверх Ссылка на комментарий Поделиться на других сайтах More sharing options...
vlaprohor Опубликовано: 15 сентября 2016 Поделиться Опубликовано: 15 сентября 2016 А можно как-то сделать, чтобы при подсветке фойл и foil не подсвечивались нефойл и non-foil? Ссылка на комментарий Поделиться на других сайтах More sharing options...
temik Опубликовано: 15 сентября 2016 Поделиться Опубликовано: 15 сентября 2016 А можно как-то сделать, чтобы при подсветке фойл и foil не подсвечивались нефойл и non-foil? А вот мы сейчас правила поправим, чтобы никаких NON в заголовках не было. И если у нефойлушки будет написано Foil - будут проблемы. Ссылка на комментарий Поделиться на других сайтах More sharing options...
Damange Опубликовано: 16 сентября 2016 Автор Поделиться Опубликовано: 16 сентября 2016 (изменено) Обновил сразу на 2 версии: 1.0.1 Поиск по названию аукциона не учитывает большие/малые буквы (регистронезависимый поиск) 1.0.2 Подсветка новых аукционов Отображается зелёной точкой в начале названия. При заходе на страницу аукционов запоминается максимальный номер темы с лотом. При первом заходе этот номер равен 0, поэтому все аукционы будут помечены как "новые". Изменено 16 сентября 2016 пользователем Damange Ссылка на комментарий Поделиться на других сайтах More sharing options...
Рекомендованные сообщения