+156
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
// ==UserScript==
// @name GK_nickcolors
// @namespace GK
// @description Highlighting usernames relying their ID's. (Oldfag detector).
// @include http://govnokod.ru/*
// @include http://www.govnokod.ru/*
// @version 0
// @grant none
// ==/UserScript==
var re = /(\d+)$/;
const TOP_BORDER = 8000;
function getColor(href) {
var res = re.exec(href);
var id = parseInt(res[0]);
var coeff = id / TOP_BORDER;
var b = 40;
var g = Math.floor(255 * coeff);
var r = Math.floor(255 - g);
return 'RGB(' + r + ',' + g + ',' + b + ')';
}
function nickColors() {
$ = unsafeWindow.jQuery;
$('p.author a:nth-child(2), strong.entry-author a').each(function() {
this.style.color = getColor(this.href);
});
}
document.onkeydown = function (event) {
if (!document.getElementById) return;
if (window.event) event = window.event;
if (event.ctrlKey)
if ((event.keyCode ? event.keyCode : event.which ? event.which : null) == 13)
nickColors();
}
Скроллишь уютненький. Видишь - срач. И не поймёшь, кто прав, кто виноват. Клацаешь Ctrl+Enter - и вот оно, олдфаги краснеют, зеленки зеленеют.
(Правда диссонанс из-за того, что крестик-то как раз-таки красный, а галочка - зелёная).
Вдохновился http://govnokod.ru/13516#comment190221 тут.
Заодно расквитайте за незнание JS без остатка.
Запостил: vistefan,
02 Августа 2013
vistefan 02.08.2013 15:55 # 0
Vindicar 02.08.2013 18:13 # +1
Кстати, совет: в Chrome+Tampermonkey лишаешься доступа к unsafeWindow если указать директиву @grant none. Вместо этого укажи @grant unsafeWindow или вообще убери @grant.
Еще, что по твоему случится при id>TOP_BORDER?
Ну и в целом выложи на userscripts.org =)
guest 02.08.2013 18:57 # −1
vistefan 02.08.2013 20:23 # 0
Согласен, и не претендовал.
> лишаешься доступа к unsafeWindow
Писал для firefox, тонкостей кроссбраузерного JS, равно как и сам JS нифига не знаю.
> Ну и в целом выложи на userscripts.org
По вышеизложенным причинам очевидно, что это не имеет смысла. Это прототип.
> id>TOP_BORDER
По хорошему надо бы как-то научиться устанавливать TOP_BORDER в значение максимального ID (короче говоря, уютненькому бы API). Но в простом случае можно
Vindicar 02.08.2013 22:01 # 0
Насчет unsafeWindow, поправить несложно (я написал как), а глядишь, у кого-то скрипт заработает. Остальная кроссбраузерность - дело jQuery.
vistefan 02.08.2013 22:08 # 0
Так вот именно, ты ж написал как. Я не собираюсь никуда выкладывать, если кто будет копипастить себе, тот пусть и поправит.
Сохранение последнего увиденного максимума - хорошая идея.
vistefan 02.08.2013 23:27 # 0
Ставил для них , запускалось, но ничего не сохраняло.
Пришлось использовать localStorage, но всё равно хочу выяснить, что не так, подскажите JS-ники.
Такой вариант
Vindicar 03.08.2013 10:54 # 0
И еще, по поводу switch: http://govnokod.ru/13528
vistefan 03.08.2013 11:11 # 0
Там же форкни и покажи как сделать без свитча, но что бы при этом не выглядело как говно и было место расставить комментарии с никами для наглядности. Как по твоей ссылке - там же другой случай, там равномерные значения 0, 1, 2. А с ID - то фиг пойми что, ассоциативный массив нужен.
vistefan 03.08.2013 12:15 # 0
Vindicar 03.08.2013 12:25 # 0
vistefan 03.08.2013 12:32 # 0
Вот свищефикс, верно я понял идею?
http://pastebin.com/iEveur5Y
anonimb84a2f6fd141 03.08.2013 15:22 # 0
Это уже говнокод. Нельзя ли хранить двумерный массив, или лучше хеш-массив массивов?
vistefan 03.08.2013 16:24 # 0
Можно, но я пока вернулся к свитчу, который нагляднее.
vistefan 03.08.2013 17:33 # 0
vistefan 03.08.2013 17:40 # +1
Для пущего счастья у меня родилась такая идея: можно сделать скрипт, который будет мониторить весь твой воутинг и хранить в localStorage массив с ID пользователей и суммарной накопленной ими в ваших глазах репутацией (крестик декрементит, галочка - инкрементит свой элемент массива). Затем на основании этих данных можно тех, кто уж слишком скатился в минуса выделять цветом, уменьшать шрифт их комментов или вовсе скрывать после определённой границы. Особо отличившихся в противоположную сторону наоборот выделять. Выходит как в новостных лентах или тематической рекламе - контент формируется на основе ваших предпочтений.
eth0 04.08.2013 19:45 # 0
Странно, у меня не возникало таких проблем даже при разглядывании по никам.
> контент формируется на основе ваших предпочтений
На стороне жабоскрипта уж больно это некошерно делать.
bormand 04.08.2013 19:50 # +4
У меня тоже почти никогда нет проблем с этим. Но вот сегодня возникла проблема с чтением этой ветки, где vistefan отвечает Vindicar'у ответившему vistefan'у... ;) Ники уж больно похожи при чтении по диагонали.
anonimb84a2f6fd141 04.08.2013 22:41 # 0
vistefan 04.08.2013 23:44 # 0
Видите ли, если пользоваться таким скриптом, то все плебейские ники подцвечиваются довольно узким диапазоном цветов, оттенки красного и зелёного. В этом случае, ники тех, чьи комментарии вы уж точно не хотите пропустить достаточно выделить каким-то особым цветом, далёким от этого ранжа (у меня это ярко-оранжевый). В итоге получится, что вы можете скроллить хоть со всей скорости, а-таки не пропустите важного для вас мнения. Это я и имел ввиду под "распознавать", а не отсутствие скилла чтения. Вот.
> На стороне жабаскрипта
Да уже даже надоело об этом говорить. Понятное дело не кошерно, а как иначе-то? Перепиливать весь честной говнокод? Пока гром не грянет (уж и не знаю, что может быть этим громом), Страйко АПИ не запилит.
anonimb84a2f6fd141 05.08.2013 13:41 # 0
Взлом сайта.
bormand 05.08.2013 13:53 # +4
Хакеры взломали сайт и запилили в нем АПИ. Страйко проснется, перекрестится, и скажет "ну и заебись".
anonimb84a2f6fd141 05.08.2013 15:52 # 0
bormand 05.08.2013 18:23 # +2
Банально. Гоатсе на глагне и так уже сколько раз тут было.
anonimb84a2f6fd141 05.08.2013 20:24 # 0
bormand 05.08.2013 21:05 # +1
Вместо лого поставь, если будешь ломать. Один хрен не нарушит тематику сайта ;)
anonimb84a2f6fd141 05.08.2013 23:52 # +3
inkanus-gray 06.08.2013 00:55 # +2
defecate-plusplus 06.08.2013 06:44 # 0
anonimb84a2f6fd141 06.08.2013 12:10 # −2
Кто такой?
inkanus-gray 06.08.2013 18:36 # +2
3.14159265 06.08.2013 19:59 # 0
inkanus-gray 06.08.2013 21:53 # 0
vistefan 03.08.2013 12:39 # 0
Vindicar 03.08.2013 13:00 # −1
Я делал так:
anonimb84a2f6fd141 03.08.2013 15:19 # −1
vistefan 03.08.2013 16:16 # +1
anonimb84a2f6fd141 04.08.2013 15:09 # 0
vistefan 04.08.2013 19:08 # 0
document.onload = function {
Только вот на какое событие вешать обработку после дополнительной подгрузки комментариев в тело страницы?
anonimb84a2f6fd141 04.08.2013 22:40 # 0
Поясни мысль.
vistefan 04.08.2013 23:47 # 0
defecate-plusplus 04.08.2013 23:50 # 0
vistefan 05.08.2013 00:03 # 0
defecate-plusplus 05.08.2013 00:12 # 0
vistefan 05.08.2013 00:49 # 0
anonimb84a2f6fd141 05.08.2013 13:42 # −1
Vindicar 06.08.2013 16:14 # +1
Vindicar 03.08.2013 12:56 # 0
Вот моя версия. Делает два прохода, но зато корректно отрабатывает ситуации, когда по ходу дела находим новый максимум.
Плюс завернул код в анонимную функцию, это рекомендуют делать.
vistefan 03.08.2013 13:07 # 0
P.S. Сам писал про switch, а код не поправил, и про мою вторую версию ничего не сказал.
Vindicar 03.08.2013 13:27 # 0
Выдача кривых результатов, пусть даже на один раз - вот что по определению плохо. Если обратишь внимание, я кэширую выборку, так что это всего лишь лишний проход по массиву. Учитывая что код вызывается пользователем после дождичка в четверг... В общем, не надо экономить на спичках.
>Сам писал про switch, а код не поправил
Увы, я привык что в питоне можно задавать любые ключи литералу словаря (например, {1:2, 3:4}) и есть метод .get(key, default). В JS такого нет, так что твой способ таки удобнее словаря в данном случае.
> про мою вторую версию ничего не сказал
Ты про альтернативный метод задания исключений из общей формулы? Ну, можно и так, конечно.
vistefan 03.08.2013 16:30 # 0
Говнокод делать присваивание каждый раз, уж лучше иф в одну строку развернуть, коль краткости жаждешь.
TarasB 02.08.2013 21:14 # +10
ТЫ ХУЙ ПИПИСЬКА ВСЕ ОЛДФАГИ СУКА БЛЯ ОХУЕННЫ И ЕСЛИ ИД МЕНЬШЕ ТЫСИЧИ ТО ЭТО ПРО ПАЦАН А ВСЕ НЬЮФАГИ ПИТУШКИ ОЛОЛО И ИХ ВСЕХ ЗАТРАЛЕЛИ КАК ЛАЛОК
vistefan 02.08.2013 22:03 # +3
TarasB 03.08.2013 11:28 # +3
inkanus-gray 03.08.2013 16:49 # +2
inkanus-gray 02.08.2013 22:31 # +4
Tbl KAKA
1024-- 02.08.2013 19:29 # 0
где k монотонно возрастает вместе с ID пользователя, установившего скрипт (мне бы подошло k=5..10, Вам - k=2), а M - TOP_BORDER.
vistefan 02.08.2013 20:30 # +1
>/summon TarasB_
TarasB 02.08.2013 21:18 # +2
Логарифм больше подойдёт.
(ln((ID/TOP_BORDER)*k)+1)/(ln(k)+1);
anonimb84a2f6fd141 02.08.2013 21:30 # 0
1024-- 02.08.2013 21:40 # 0
Это психология труъ олдфага :)
А я, будучи ньюфагом, ожидаю увидеть достаточно красными и тех, у кого ID около 4К. Аналогично с детьми, которым 20ти-30тилетние кажутся стариками.
vistefan 02.08.2013 20:37 # 0
http://tinyurl.com/q8ewrm7
anonimb84a2f6fd141 02.08.2013 20:58 # 0
vistefan 02.08.2013 21:59 # 0
anonimb84a2f6fd141 02.08.2013 23:02 # 0
inkanus-gray 02.08.2013 23:15 # 0
А так вывод окошка (по ссылке в углу страницы, по горячей клавише и т. п.) для установки cookies или localStorage никто не запрещал.
anonimb84a2f6fd141 02.08.2013 23:33 # 0
Куки иногда чистятся, localstorage - мб.
inkanus-gray 03.08.2013 01:16 # 0
Если не хотим редактировать скрипт, то волей-неволей придётся самим рисовать окно с переключателями настроек, например, в виде дива, всплывающего над страницей сайта.
Более удобное решение — завернуть скрипт в расширение браузера. Увы, оно не кроссбраузерное, т. е. придётся пилить xpi, crx, oex и т. п., зато через API расширений можно добавлять пункты меню для редактирования настроек.
wvxvw 03.08.2013 09:39 # +3
vistefan 03.08.2013 10:45 # 0
Но это же круто!
anonimb84a2f6fd141 03.08.2013 21:24 # 0
А нету такого направления, типо легко затачиваемого под клиента вида?
wvxvw 04.08.2013 00:21 # 0
anonimb84a2f6fd141 04.08.2013 11:45 # 0
wvxvw 04.08.2013 17:15 # 0
anonimb84a2f6fd141 04.08.2013 17:33 # 0
bormand 04.08.2013 18:15 # 0
Кто-то у них не осилил HTML и js? ;)
wvxvw 04.08.2013 18:30 # +2
bormand 04.08.2013 18:41 # 0
wvxvw 04.08.2013 19:08 # 0
defecate-plusplus 04.08.2013 22:08 # +1
насколько я помню, под него уже даже под висту официальных дров нет (но подходят от старшей в серии модели)
хорошие раньше вещи делали, у родителей уже 8 лет работает
моему то бывшему hp принтеру поновее уже доводилось мат. плату прогревать, принтер то починился, но осадочек остался, и он впал в немилость
vistefan 04.08.2013 23:51 # +1
впал в немилость... Так типично, узнаю себя. Пожалуй, только люди из таких вот зашкваренных кругов, вроде программистов, могут так относиться к подобным вещам. Принтер может подмочить репутацию, и всё такое.
defecate-plusplus 04.08.2013 23:59 # 0
тщательно выбрал и купил киосеру - езернет, дуплекс, всё отлично
а hp от свалки остановило только то, что я решил таки попробовать вынуть из него материнку и прогреть - благо на работе есть тех отдел (ремонтируют железки и примусы), и вместо духовки/строительного фена (в инете народ смекалист) мне за пачку молока (от пива отказались!) прогрели нормальной паяльной станцией
и всё стало хорошо с ним
теперь hp принтер комиссован в сибирь к тёще бгг
не торт уже hp, ой не торт
vistefan 05.08.2013 00:11 # 0
> не торт уже hp, ой не торт
У меня ноут hp, и да, не торт.
defecate-plusplus 05.08.2013 00:40 # 0
10 лет тому назад большевики о таком и помечтать не могли
vistefan 05.08.2013 00:46 # 0
P.S. да, у меня этот метод подтормаживает. Отзовитесь, если кто попробует сделать так же, как у вас работает. Всё, конечно, на соплях, но зато всё говно не в коде, а по ссылкам. Душа спокойна.
anonimb84a2f6fd141 05.08.2013 13:43 # 0
Не нужно лишних зависимостей, jquery уже загружен, зачем ты его еще раз грузишь?
vistefan 03.08.2013 10:48 # 0
Есть ещё возможность через API обезьянки добавлять в контекстное меню самой макаки пункты, но для нормальных настроек со вводом данных не пойдёт. Так, галочки поставить.
Vindicar 03.08.2013 10:57 # 0
А вообще потыкай палочкой вот это, вдруг пригодится: http://userscripts.org/guides/11
anonimb84a2f6fd141 03.08.2013 11:56 # +2
Лучше были бы расширения, которые грузятся только для конкретного сайта. Т.е. userjs на стероидах. В XBMC, кстати, есть 2 вида аддонов: обычные, которые запускаются с 0 только при вызове, и резидентные, запущенные все время.
inkanus-gray 03.08.2013 16:51 # 0
Особо упоротые разработчики даже CSS и прочую мелкую хрень заворачивают в расширения.
anonimb84a2f6fd141 03.08.2013 19:18 # 0
vistefan 03.08.2013 10:51 # 0
То, что сохраняется через GM_setValue хранится в конфигах самого Firefox, так что если считать "отдельными настройками скрипта" ломление на about:config и ввод имени скрипта, то-таки есть!
anonimb84a2f6fd141 03.08.2013 11:59 # 0
vistefan 03.08.2013 12:01 # 0
p.author a:nth-child(2) - это ссылки под ОП-кодами с именами авторов
strong.entry-author a - это ссылки на авторов комментариев
anonimb84a2f6fd141 03.08.2013 15:21 # 0
vistefan 03.08.2013 16:22 # +1
На уютненьком имя автора поста является ссылкой. В случае с ОП-постом, эта ссылка лежит в блоке 'p' с классом '.author' и является его вторым по счёту ребёнком. (Первый - аватарка, третий - дата постинга.) Выходит селектор 'p.author a:nth-child(2)'.
Имя автора комментария - тоже ссылка, но лежит в блоке 'strong' с классом 'entry-author' и является единственной ссылкой в этом блоке. Выходит 'strong.entry-author a'.
Оба эти случая перечисляются через запятую в селекторе, описывая все имена авторов постов на странице.
Всё это должно быть самоочевидно и выясняется просмотром исходного кода страницы или инспектингом чем-нибудь вроде firebug или встроенных.
Vindicar 03.08.2013 19:06 # +1
Я бы лучше попробовал псевдоселектор ".author a:not(has(img))". Тоже не шедевр стабильности, конечно.
anonimb84a2f6fd141 03.08.2013 19:17 # +1
anonimb84a2f6fd141 03.08.2013 19:38 # +1
Vindicar 03.08.2013 20:16 # +1
anonimb84a2f6fd141 03.08.2013 21:11 # +2
anonimb84a2f6fd141 03.08.2013 19:16 # 0
Да, я их плохо понимаю, веб девелом не занимался, только веб парсингом.
" " и ">" - это одно и то же, т.е. следующий потомок?
Запятая - это или или?
В xpath так будет?
//p[@class="author"]/a[2]
или
//strong[@class="entry-author"]/a
А как получить css выражение для тега? Абсолютный xpath можно, а css?
inkanus-gray 03.08.2013 19:21 # 0
Пробел — это потомок произвольного уровня, а знак «больше» — только непосредственный потомок.
anonimb84a2f6fd141 03.08.2013 21:21 # 0
Как скрыть все tr с идом вида tr-\d+, если у него ниже по дереву в тексте тега a есть запрещенное слово? Есть jquery, но идеально было бы css селектор, тогда можно было бы заюзать правило адблока.
inkanus-gray 03.08.2013 21:51 # 0
К сожалению, поиск текста в элементе (псевдоселектор :contains()) — изобретение jquery, в чистом css поиска содержимого нет. Всё, что есть в CSS3, перечислено по ссылке в разделе #selectors
inkanus-gray 03.08.2013 22:00 # 0
http://dev.w3.org/csswg/selectors4/
anonimb84a2f6fd141 03.08.2013 22:00 # 0
guest 03.02.2017 05:23 # −1
name
William Othem
William aSetdurse
sign1
text
1 cent instant casino accepting wiredpaypaysafe mit payeer kaufen wiredpay
sign profile
<a href=>paysafecard agintitle affiliate programs that pay with bitcoin okpay</a>
sign
<a href=http://day-fund.net>sell webmoney onlinecredit card to lr perfect money</a>
sign2
<a href=http://elitebankir.com?ref=dmslxoj>new hyip $10 signup bonus free depositperfect money bitcoin convert payeer</a>
words
money booker to lrper bitcoin wiredpay kaufen perfect money
links
http://liderfinance.com?ref=qzujyki
testA
http://trust-dollar.com
j123123 03.02.2017 07:16 # 0
roman-kashitsyn 03.02.2017 13:01 # +1
Erlang
CHayT 03.02.2017 13:11 # +1