Юзерскрипт для пинкивизора (то, что вы давно хотели, но боялись попросить!) [обновлён до версии 0.0.11]

+172
makise_homuraв блоге IT Pony!5 апреля 2020, 09:15
Помнится, у нас есть люди, которые любят все посты и комменты проверять с помощью пинкивизора. Так вот, теперь им это станет делать ещё легче, потому что я тут за ночь накодил соответствующий юзерскрипт! =) первый юзерскрипт в моей жизни, азазазаз.

Чтобы его поставить, нужно прежде установить Greasemonkey (или, возможно, Tampermonkey), после чего ткнуть по ссылке:

Скрипт тута!


Разумеется, есть репа на гитхабе, туда можно кидать issue и пулл-реквесты.

После установки скрипта на каждой новой открытой вкладке с табуном в шапке постов, подписях комментариев, а также на страничках блогов и профилей юзеров появится голова Пинки, если на неё ткнуть — то можно увидеть статистику поста/коммента/блога/профиля.
Окошко закрывается кликом где-нибудь мимо окошка. Сразу можно открыть несколько окон (т.е. пока не закроешь его — окно будет маячить на странице). Кликом мимо окон закрываются все открытые окна.
Окошки можно таскать по экрану за заголовок и изменять размер за нижний правый уголок. Размер (но не положение, очевидно) сохраняется.

Если у кого есть какие-то вопросы/рекомендации/сообщения о том, что что-то где-то не работает — милости просим, я постараюсь со всем разобраться (но не обещаю).

Это было сложно (когда я его делал, я думал, что у пинкивизора нет API, а также нет отдельных URL для получения прямой статистики поста/коммента, поэтому мне пришлось конструировать iframe с ответом ручками и в процессе встречать кучу разных непоняток типа глюков из-за символа "#"), но я всё же сделяль эту штуку и она вроде работает.

Проверялось на Firefox 73.0.1 (Windows 7) и Greasemonkey 4.9, а также Firefox 84.0 (Windows 7) и Greasemonkey 4.10. Не знаю, работает ли на других браузерах — не проверял, надеюсь на здесь присутствующих =) Ожидаю, что много у кого что-то не будет работать (или будет работать не так), да. Будем фиксить.

Если кого-то не устраивает этот юзерскрипт, как оказалось, есть другой — официальный юзерскрипт для пинкивизора от zluka . Скачивается тута (нужно просто кликнуть по ссылке и Greasemonkey установит скрипт). Найти его было сложно — в бэкапе Табуна не было постов, посвящённых ему (или я их не нашёл). Так что спасибо Morano за ссылку. =)

UPD: обновлён до версии 0.0.8. Все желающие могут обновить скрипт, зайтя в меню Greasemonkey — Pinkievisor Query — User script options — Update now (а ссылка в посте также всегда ведёт на актуальную версию).

Список исправлений (версия 0.0.3):
1) Результаты иногда улезают под правую панельку и под хвостик с кнопкой обновления треда — пофикшено.
2) В комментах можно мискликнуть на стрелочку вместо цифры — впилил Пинки в левую половину подписи коммента, теперь надо кликать на неё
3) Закрывать окошко по клику вне области окна, а не на кнопке закрытия — сделано.
4) Комменты, полученные кнопкой обновления треда, не получают возможности чекнуть голосования за них — сделано (хотя, похоже, ещё пока работают через раз, буду продолжать разбираться) А, всё, понял, в чём была проблема, «окей, моя ошибка, я дурной», написал при анализе дерева комментов в subtree false вместо true. =)
5) Приделать тултипы к значку Пинки — сделано.
6) Хорошо бы запилить возможность менять размер окошка и перетаскивать его — сделано. Таскать можно за заголовок, изменять размер — за уголок снизу справа. Изменённый размер сохраняется!
7) Переползти с XHR на fetch — сделано.

Список исправлений (версия 0.0.4):
8) Доделать проверку статистики блогов и пользователей (а не только комментов и постов) — сделано.
9) Если на странице несколько постов (блог, лента, новые и т.п.), то статистика доступна только для первого из них — поправлено.
10) Обрабатывать ошибки fetch, а не висеть с Пинки, бесконечно идущей в никуда =) — сделано.
11) Сделать костыль для CORS статистики блогов и пользователей — сделано. Пинкивизор отдаёт Access-Control-Allow-Origin для запросов по постам и комментам, но почему-то не делает это для запросов по пользователям и блогам. Заюзал CORS-прокси для этого, но вообще, по-хорошему, нужно попросить админа пинкивизора починить это.

Список исправлений (версия 0.0.5):
12) CORS-хак больше не нужен, поскольку пинкивизор починен! — хак выпилен. Спасибо Morano ! =)
13) MutationObserver не находит ничего для слежения на страницах пользователя и блога — пофикшено.

Список исправлений (версия 0.0.7):
14) При выводе служебной инфы тёмный текст на цветастом фоне — теперь лепим всё в белый div, даже бегущую Пинки.
15) Пофиксить стили (строки наползают друг на друга) — теперь внутренности окошка похожи на нормальный пинкивизор.
16) Баги с преобразованием ссылок: ссылки в теге «a», ссылки, начинающиеся с "//" — пофикшено.

Список исправлений (версия 0.0.8):
17) Ошибка со stattype в Tampermonkey — поправлено.

Список исправлений (версия 0.0.10):
18) Обойти ошибку Chrome, приводящую к белому окну (пока его не подвинешь) в Chrome — поправлено.

Список исправлений (версия 0.0.11):
19) Исправить показ табуна вместо пинкивизора в некоторых случаях нажатия рядом с Пинки — поправлено.

То, что будет исправлено в следующих версиях:

— Заменить картинку Пинки на что-то менее цветастое, и в подписи коммента переместить её к стрелочкам «предыдущий/последующий коммент».
— Открывать окошко ховером, а не кликом: влепить галочку в футер Табуна (там, где «Версия Табуна: v1.3.3 Сообщить об ошибке»), и если она включена, то открывать окошко через миллисекунд 200 после наведения мышки на Пинки, а в случае увода мышки с открытого окна через миллисекунд 500 убирать его.
— Вернуть обратно крестик закрытия окна (?)
— Добавить иконку, а то уныло как-то, не по-Пинковски (директива @icon)
— В заголовке поста помещать иконку Пинки не около красной стрелки, а около названия блога

244 комментария

— Пинки катится по страничке, а пост катится в ленту!
makise_homura
+4
Помнится, у нас есть люди, которые любят все посты и комменты проверять с помощью пинкивизора.

Ну уж прямо так и все)) Просто иногда интересно глянуть от кого прилетело и за что (жаль вот только Пинки на второй вопрос ответа дать не может — ей это неведомо).
Так что скриптик весьма полезный, и кстати только что проверен — прекрасно работает. Пасибки!
Darkseer
+2
На Лисе 74.0.1 все ок.
S_Lunaris
+2
А вот и первая проблема
S_Lunaris (ред.)
+4
Такая же фигня, только ещё и крестик закрытия у меня под панелькой
KaskeT
+1
На мобиле тоже крестик лезет под панель, Лиса 68.6.0 причем и у голосования за пост.
S_Lunaris
+1
На хроме 80.0.3987.163 почти всё Ок. Такого лютого эффекта не наблюдаю.
Но наблюдаю вот такую картину:
Спойлер
Darkseer (ред.)
+2
Для тех у кого окно далеко влево уходит, на комментариях.
По тупому в 61 строку дописал "- 500".
Думаю, такая беда только у экранов с низким разрешением.
Akavirec (ред.)
+5
*далеко вправо*
Akavirec
+2
Как раз экранчик квадрат (да-да, в 2К20) и лента боковая перекрывала. Вылечилось, спс.
Lyinx
0
1920x1080 Благодарю за совет. Дописал в строку 61 минус полтысячи — помогло.
Darkseer
+1
Ну, на самом деле там для этого есть параметр safezone, но это не суть важно. Там я старался, чтобы окошко было максимально правее, чтобы как можно меньше перегораживало последующие комментарии. Тут надо ковыряться с z-index…
makise_homura
0
Я знаю, по этому и написал, что «по-тупому».
Akavirec
0
Изначально это так и задумывалось (потому что от этого можно избавиться скроллом страницы), но сейчас я понял, что маловероятно, что при открытом окне статистики тебе может понадобиться обновлять комментарии, а крестик закрытия в таком режиме важнее. Поэтому поправлю z-index, чтобы окошко было сверху.
makise_homura
+1
Вообще, было бы удобней, если бы окошки закрывались бы при любом клике за их пределами, втч при открытии статистики другого коммента/поста. Ну или вынести это настройкой — вручную или автоматом. Вот мне лично вручную неудобно.
Lyinx
+2
было бы удобней, если бы окошки закрывались бы при любом клике за их пределами
Люто плюсую.
S_Lunaris
+1
Окей, я тоже про это думал (но пока не понял, как сделать). Хотя, по идее, в исходниках той же Курисабы это есть, надо посмотреть, как там сделано. Понял, принял.
makise_homura
0
Что-то у меня не воспроизводится, ни на компе, ни на ноуте…
Можно тебя попросить (вместо -500, если ты уже это дописал) после 86 строки, которая вот такая:
pinkiediv.style.display = 'block';
добавить ещё вот эту строчку:
pinkiediv.style.zIndex = '21';
, а потом обновить страницу и посмотреть, налезает ли что-либо на окошко?
makise_homura
+1
Идет поверх всего.
S_Lunaris
+1
О, то есть починилось, хорошо.
Думаю, сегодня ночью выкачу новую версию с этим и некоторыми другими фиксами.
makise_homura
+1
Астрологи объявили неделю срачей за минусы к комментам и постам.
Andrelyx
+3
Комментарий спрятан силами неравнодушных табунчан
Я уже можно сказать ушел от сюда в Вк
Но всё равно исправно тут появляешься
Maxwell
+3
Это для всех тех слишком «умных» людей(будь они брони, фурри или еще кто).

Ну я в смысле того, что на Табуне я больше постов не пишу и комментирую крайне редко.
Я там(на Табуне) не сижу в прямом смысле слова, а захожу периодически посмотреть новости.
sivik (ред.)
-6
И поныть, как хорошо в ВК и плохо на Табуне, как замечательно в первом и как убивают фэндом во втором, да-да.
Lyinx
+7
Ты про мой последний пост? Дак его уже давно НЕТУ! Ты опоздал с этим. Здесь остались лишь пара моих постов со стихами, которые я ещё не перенес на бумагу для того, что бы удалить их от сюда.
sivik
-2
С чем я опоздал?
И «что написано на ТабунЕ — не удалишь в бэкапЕ».
Lyinx
+4
Опоздал на сам пост. А на Ваш бекап мне обсалютно положить!
sivik
-2
«Да что же Вы так убиваетесь-то? Вы же так никогда не убьётесь!» ©
Angelripper
+6
И в добавок хочу заметит то, что Ваш знаменитый в узких кругах програмистов и прошаренных людей составляющих примерно 1-1.5% от всех пользователей Табуна, для обычных пользователей ничего ни значит. Тобишь они даже понятия что это такое не имеют, а если частично и имеют, то где это располагается и где это брать не знают. А некоторым и не нужно.
sivik
-4
Я поставил тебе минус, терпеть не могу твоё мнение.
Akavirec
+7
Я уже можно сказать ушел от сюда в Вк,
KerHarrad
+11
ушел

Правду ж ни кто здесь не любит.

У меня есть для тебя одна правда. Ты пиздобол. Так как никуда не ушел и исправно тут шныряешь. И будешь шнырять.
partizan150 (ред.)
+7
Не ну если ты даже не понимаешь или не видишь разницы между сидеть, активно общаться и толкать контент сюда и заходить раз два в день посмотреть новости, то мне тебе даже нечего сказать. Дурак ты партизан.
sivik
-5
заходить раз два в день

Называется сидеть на сайте. Пиздобол ты сивик.
partizan150
+5
Спойлер
Maxwell
-1
И в чем же? Или для тебя зайти один раз на Табун, что бы чекнуть Табунскую нехватку кислорода для тебя понимание сидения? Тогда я тебя разочарую. Я ТУТ НЕ СИЖУ В ПРЯМОМ СМЫСЛЕ ЭТОГО СЛОВА!!!
Я зашел, чекнул вкладку «новые» и если ничего интересного не увидел, что в последнее время преобладает, ушел дальше заниматься своими делами. Если нашел что-то новое написал коммент или кинул в избранное, что бы когда нибудь посмотреть.
sivik
-2
И ты опять сюда зашел!
partizan150
+3
Да зашел. Согласен. Но только для того, что бы написать тебе же ответ. А не для того, что бы постить тут поняшный контент, для чего собственно этот ресурс и предназначался и создавался. Смекаешь?
С таким же результатом, я бы мог заходить на любой другой сайт не посвященный поняшной тематике и писать другому таком же как ты ответ на что нибудь другое. Даже если для этого мне бы пришлось заходить на него несколько раз за сутки.
sivik
-2
Люди которые действительно ушли не заходят даже читать. Так что не пизди.
partizan150
+1
Не ну меня иногда до мозга костей начинает поражать, до какой степени люди бывают тупы и глупы в чем то! Ему говоришь одно с объяснением, примером и пояснением, а он тебе опять как попугай. Одно ии тоже. Пластинку то смени, Турок!
А если не дошло до тебя еще то, что я так могу зайти на любой мало мальски живой сайт, написать там коммент и если мне на него ответят, то у нас может завязатся беседа, то я уже не знаю как таким как ты объяснять просту разницу в понятиях.
Сижу и слежу запомни- это разные вещи! Дубина ты стаиросовая!
sivik
-2
тупы и глупы
Пластинку то смени, Турок!
Дубина ты стаиросовая!
Демонстрация Высокой Культуры Замечательного ВКонтактика во всей красе.

И грамотности — дубина, она стоеросовая так-то.
ru.wiktionary.org/wiki/%D1%81%D1%82%D0%BE%D0%B5%D1%80%D0%BE%D1%81%D0%BE%D0%B2%D1%8B%D0%B9
KerHarrad
+1
Это я тебе ещё мягко выражаясь сказал. Так как говорили наши предки так сказать)
sivik
-1
Дурик, ты глянь под спойлер, как они правильно говорили то…
KerHarrad
0
В любом случае мне очень льстит то, что он присвоил мне свойство прямоты.
partizan150
0
Не так важна грамотность, как важно то, что моя мысль понятна. И ты её понял.
sivik
-1
Такие вот «истинные брони»))
Irbis
+2
Пластинку то смени

Ну так ты и смени. А то ходишь тут с одним и тем же.
Сижу и слежу

Это одно и то же.
partizan150
0
Или хотя бы не комментируют.
Dany
0
Ну это уже будет переводом вопроса из «выглядеть пиздоболом перед окружающими» в «выглядеть пиздоболом перед собой».
partizan150
0
Альтернативно-сидящий ты наш
Maxwell
+3
Tabun-challenged…
partizan150
+3
Наверное всё ещё пытается уничтожить табун
Maxwell
+1
Разведданные собирает.
partizan150
+3
Хочу назвать это «Ересь Сивика». Или до звания местного Хоруса он не дотягивает?
Maxwell
0
И Партизанки, подмостерья такие же стаиросовые, как и сам предводитель.
sivik
-2
Не могу понять твой поток сознания.
Maxwell
0
Следующим этапом эволюции в этом направлении будет выдумывание армии минусаторов подчиненных Великому Лидеру.
partizan150
+3
Ты уже более полугода ушёл в ВК, но всё продолжаешь тут отмечаться и говорить что уходишь.
Andrelyx
+4
Я уже можно сказать ушел от сюда в Вк,

Angelripper
+3
О да, это я весьма теперь вангую =)
Кто взорвал Табун? Хомура взорвала Табун! =)
makise_homura
0
то, что вы давно хотели

Но ведь такой скрипт существует уже оооооочень давно
Спойлер



Star-Dragon
+4
Лол, где? О.О Я обыскал весь табун — не нашёл!
Алсо, я смотрю, он встраивает свои div-ы в страницу, а не окошками делает. Да ещё и нехило так парсит выдачу пинкивизора…
makise_homura
0
А просто он ушел в подполье и теперь получить его можно только от уже имеющих его ;)
Star-Dragon
+2
Я вот тоже ни сном ни духом, что он есть, как биг систер отвалился, с тех пор смотрю вручную
S_Lunaris (ред.)
+2
Работает. Только маленький нюанс: активация скрипта по цифре между стрелочек легко может спровоцировать промах, и тогда коммент получит незапланированную оценку.
Vl_Jst
+3
Я тоже об этом думал, но адекватного решения не придумал. Лепить туда значок, как в шапке поста? Вроде тоже можно промахнуться…
makise_homura
+1
Как вариант — текст или значок рядом с ником или ссылкой «Ответить» [на комментарий]: в случае промаха откроется профиль комментатора или форма ответа, что уже не так критично.
Vl_Jst
+4
Хм, окей, подумаю над этим…
makise_homura
+1
Идеалом было бы всплывающее при наведении на эту зону окошко…
S_Lunaris
+1
Точно? Я боюсь, что это, во-первых, приведёт к тому, что при движении мышки будут всё время всплывать эти окошки, а во-вторых, непонятно, как это будет работать на тач-интерфейсе, планшетах, например.
makise_homura
0
Тогда лучше дублировать, для тачей, а если всплывет — не страшно, особенно если будет работать только пока мыш в зоне.
S_Lunaris
+1
Только загвоздка в том, что окошки в текущей реализации скроллить приходится.
Но можно сделать примерно как в Пинкивайзере устроен бекап. Но и в нём слишком длинные списки только скролить, поэтому наведение такое себе решение, имо.
Спойлер
Lyinx
+1
Потому что здесь очень много лишней информации, достаточно окрашенных в цвет оценки ников же.
S_Lunaris
+2
Чтобы так делать, нужно парсить результат, возвращаемый пинкивизором, а это мне очень не хочется делать, там жуткий просто html =/
(но если кто сделает пулл-реквест на гитхаб с разбором этого всего — то я его скорее всего приму =))
makise_homura
0
Можно попробовать Morano потрясти, как создателя Пинковода.
Lyinx
0
Было б хорошо. Идеально было бы иметь API и получать результаты GET-запросом в XML, тогда можно было бы что угодно делать с ними и не париться, как мне пришлось =)
makise_homura
0
Я немного в шоке с того, что ты делаешь это через айфрейм, с другой стороны, это проще, чем на чистом жс воссоздавать структуру.
Алсо нынче в моде fetch, который имеет значительно более простой синтаксис, конкретно а твоём случае:
fetch(url)
.then(response => response.text())
.then(text => тут уже код работы с ответом)
.catch(error => console.error('Все плохо ' + error);


А ещё у меня в один прекрасный день сгорело с того, как в жс создаются элементы, поэтому породил небольшой велосипед, у которого нет документации, а примеры нужно искать в моем коде, лол. Мб пригодится:
github.com/stsyn/derpibooruscripts/raw/master/YouBooru/libs/CreateElement.js
StaSyaN
+1
с другой стороны, это проще, чем на чистом жс воссоздавать структуру.
Вот потому и делаю =)
Вообще, сначала у меня была мысль простейшая — iframe с src, соответствующим страничке пинкивизора для конкретного коммента или поста. Но лол, оказалось, что там так нельзя, а формы не кидают на новую страничку, а пастят ответ в infobox внизу страницы. В итоге пришлось с этому ответу прикручивать CSS, фиксить ссылки внутри него, ну и всё такое.
Алсо нынче в моде fetch, который имеет значительно более простой синтаксис
Ммм, спасибо. Он доступен из коробки, не как jQuery? А то да, стандартная работа через XHR немножко громоздкая...
небольшой велосипед, у которого нет документации, а примеры нужно искать в моем коде, лол
Хм, может, как-нибудь попробую поразбираться =) (когда нет документации — это да, такое себе по удобству изучения =)
makise_homura
0
Нынче изкоробочен, разве что ие не поддерживается.

Относительно моей штуки, самый гибкий пример:
createElement('img#id.class-1.class-2', { style: {}|'', attribute: ''}, [ childNodes|'']): node


Айди и классы могут идти в объекте параметра, названия полей совпадают с тем, что ты пишешь в обычном коде. Есть слабоопределенное поведение в случае, когда ты пытаешься одни и те же дочерние элементы использовать в нескольких местах сразу, но это вряд ли тебя коснется.
StaSyaN (ред.)
+1
Хм, надо будет тогда изучить этот fetch().

Ага, кажется, я примерно понимаю. Да, интересная штука, тоже погляжу
makise_homura
0
Юзерскрипт для инквизитора

>_>
partizan150
+1
makise_homura
+1
У меня давным-давно уже стоит юзерскрипт для Пинкивизора.
Не помню, где его брал, но да, он уже года три точно как существует.
Ginger_Strings
+1
Блин, лол, почему я его не нашёл за полчаса копания в архиве табуна? О.о
makise_homura
0
Я его сам сейчас с ходу не нашел, хех. Могу кинуть код, если интересно.
Ginger_Strings
0
А не завалялось случайно кармаскрипта от Злюки? На Гитхабе потёрто, осталась лишь ссылка в посте:
tabun.everypony.ru/blog/147880.html
Lyinx (ред.)
+1
Забавный скрипт О.о Не, у меня его не было и нет…
makise_homura
0
Может, сразу пост сделаешь? Так будет больше вероятность, что народ о нём узнает (да и в бэкапе табуна сохранится).
Заодно люди смогут выбирать, чей скрипт использовать.
makise_homura
0
Так, подытожу фидбэк за сегодня и пойду фиксить:
1) Результаты иногда улезают под правую панельку и под хвостик с кнопкой обновления треда
2) В комментах можно мискликнуть на стрелочку вместо цифры — впилю, пожалуй, пинки в левую половину подписи коммента
3) Закрывать окошко по клику вне области окна, а не на кнопке закрытия
4) Комменты, полученные кнопкой обновления треда, не получают возможности чекнуть голосования за них
5) Приделать тултипы к значку Пинки
6) Хорошо бы запилить возможность менять размер окошка и перетаскивать его
7) Переползти с XHR на fetch
8) Открывать окошко ховером, а не кликом — спорная, на мой взгляд, идея. Может быть, потом сделаю в настройках.
Если у кого ещё какие пожелания — предлагайте.

P.S. Никто не знает, где можно добыть тех бегущих поней, которые над правой панелькой табуна бегают? А то их URL выглядит, как запрос к скрипту, который напрямую выдаёт image/png.
makise_homura (ред.)
+1
где можно добыть тех бегущих поней, которые над правой панелькой табуна
Немного не те, но все же
github.com/RoosterDragon/Desktop-Ponies/tree/master/Content/Ponies
Vl_Jst
+1
О, спасибо. =) Кажется, как раз эти пони были на рувикии, откуда я и стащил идущую Пинки как анимацию прогрузки =)
makise_homura
+1
Welcome =)
Кстати, Пинки там много, смеха ради можно рандомить их показ в скрипте ;)
Vl_Jst
0
Имхо, слишком серьёзно для банальной анимации прогрузки =)
makise_homura
0
где можно добыть тех бегущих поней

files.everypony.ru/tabun/ponies/?1
и меняешь последнюю цифру подряд от 1 и пока 404 ошибку не даст… их там около 100 вроде
KerHarrad (ред.)
+1
А эта циферка ничего не значит, поня меняется при чистке кэша
andreymal
+1
Нет, там цифра не влияет — скрипт каждый раз отдаёт поню в виде image/gif рандомом.
Блин, протупил, написал выше image/png, разумеется, я оговорился, имел в виду именно image/gif.
makise_homura
0
где можно добыть тех бегущих поней, которые над правой панелькой табуна бегают?

files.everypony.ru/tabun/ponies/c-0.gif
до
files.everypony.ru/tabun/ponies/c-119.gif
andreymal
+1
О! Спасибо огромное!
Жаль, только Пинки там и нет =(
makise_homura
0
удалено
Wererat (ред.)
0
Короче, я went super saiyan и внезапно пофиксил всё (правда, так же внезапно понял, что уже 5:39, лол, а я всё с жаваскриптом копаюсь =)
Щас проапдейчу пост.
makise_homura
+1
А, ещё, кажется, понял, где косякнул с обновлениями комментов, должно теперь починиться.
makise_homura
0
Результаты иногда улезают под правую панельку и под хвостик с кнопкой обновления треда
Спойлер
Dany
+2
Спойлер
KerHarrad
+2
Замечательно))
Darkseer
0
Лал, ну кому какой хвостик =)
makise_homura
0
(disregard that, это тестовый коммент)
makise_homura
0
Есть ещё TabunBigSister
Выглядит так
Спойлер
DNS
+1
Лол, где вы все эти юзерскрипты берёте О.о
makise_homura
0
Олдфаги, сэр.
partizan150
+1
Чувствую себя каким-то ущербным, заявившись на табун в конце 2018 =)
makise_homura
0
Охренеть! Дайте два!
Strannick_Moundest
0
DNS
0
Еще бы скриптик который бы при наведении на ник показывал дату регистрации и карму с рейтингом.
oxide
+1
Вот здесь вроде был (но я его не пробовал ставить, не знаю, работает или нет)
makise_homura
0
Не работает — репозиторий давно выпилен.
oxide
0
Печалька, тоже что ли пилить теперь…
Интересно, а у табуна есть API?
makise_homura
0
Нет
Morano
0
Эх, печально =(
makise_homura
0
Strannick_Moundest
0
Таки а где там описание его API, если он есть?
makise_homura
0
А Дискорд знает где. Забыли, наверное, когда впопыхах писали код форума.
Strannick_Moundest
0
Ну вот я прошерстил исходники, и ничего напоминающего реализацию API не нашёл.
makise_homura
0
Зато можешь легко определить специфику работы необходимых тебе функций, чтобы без труда с ними взаимодействовать. Специфику используемых протоколов, обработки запросов и данных и прочие полезные вещи. Всяко с таким проще написать собственную реализацию, чем тыкать на обум.
Strannick_Moundest
0
Ну, в данном случае её проще написать по уже готовому HTML, который выдаёт движок, нежели смотреть, как HTML генерится. Фишка API была бы в том, что он мог бы отдавать нормальные машиночитаемые данные, а не труднораспарсиваемый HTML.
makise_homura
0
Это не API
andreymal
+1
у пинкивизора нет API

Вот это было бы удобно, да.
NTFS
+1
Ага. Без нормального API тут как без рук но пони ведь и так без рук, wait, oh shi~
makise_homura
0
У единорогов есть телекинез что куда удобней рук.
oxide
0
У единорогов есть РОГ!
KerHarrad
+1

Когда это Тию в единороги с аликорнов разжаловали?
oxide
+1
Дык с трона сместили — все… теперь не аликорн. Простой крылатый единорог))
KerHarrad
+1

Уже исправилась и все вернула на место. Честно.
oxide
+1
Итак, вышла новая версия 0.0.4. Список исправлений:
Доделать проверку статистики блогов и пользователей (а не только комментов и постов) — сделано.
Если на странице несколько постов (блог, лента, новые и т.п.), то статистика доступна только для первого из них — поправлено.
Обрабатывать ошибки fetch, а не висеть с Пинки, бесконечно идущей в никуда =) — сделано.
Сделать костыль для CORS статистики блогов и пользователей — сделано.

Насчёт последнего — там была проблема с самим пинкивизором: он отдаёт Access-Control-Allow-Origin для запросов по постам и комментам, но почему-то не делает это для запросов по пользователям и блогам. Я заюзал CORS-прокси для того, чтобы обойти этот косяк, но вообще, по-хорошему, нужно попросить админа пинкивизора починить это (кто-нибудь знает, как это сделать?..)
makise_homura
0
А вот для CORS-запросов нужен небольшой фолбэк с фетча на старые реквесты: у всех уважающих себя менеджеров юзерскриптов есть метод GM_xmlhttpRequest — www.tampermonkey.net/documentation.php#GM_xmlhttpRequest
StaSyaN
0
Ну это, как мне кажется, фоллбэк не небольшой, а полный =)
Кстати, а я могу вызвать GM_xmlhttpRequest из скриптов, инжектированных в страницу? Как я понимаю, они запускаются в пространстве страницы (и уже не взаимодействуют с Greasemonkey, но зато могут взаимодействовать с консолью и отслеживать состояние страницы (а это важно, когда я ставлю MutationObserver)).
Впрочем, щас проверю.
makise_homura
0
На крайняк ты можешь передавать эту функцию аргументом
StaSyaN
0
Ну вот я пока начал разбираться, как это сделать (впрочем, может, это уже и не нужно будет скоро =)
makise_homura
0
а для чего так инжектить необходимо?.. Из моего опыта, оно просто запускается в немного другом контексте, но доступ к DOM оно имеет и так
StaSyaN (ред.)
0
Ну, если не инжектить, то не работает консоль и MutationObserver. Может, конечно, я что-то не так делал, но после инжекции всё магическим образом заработало.
Вот такая вот магия (скопипастено из скрипта ответов Андреймала):

(function(document, fn) {
  'use strict';
  var script = document.createElement('script');
  script.setAttribute('type', 'text/javascript');
  script.textContent = '(' + fn + ')(window, window.document)';
  document.body.appendChild(script);
  document.body.removeChild(script);
})(document, function(window, document) {
  'use strict';

  // here goes your code

});
makise_homura (ред.)
0
Обсерверы у меня работали без хитровыебов. Консоль уже не будет, да, но тебе она в целом не нужна после отладки. Если она прям нужна, можно на window прицеплять новые поля, они будут видны.
StaSyaN (ред.)
0
Хм, интересно. Я-то делаю по-другому, через коллбэк (хотя подозреваю, что не слишком эффективно — каждый раз пробегаю по всем возможным элементам, не пользуясь содержимым mutationsList), и так у меня не работало без инжекции в страницу:
  function alter_comments_callback(mutationsList, observer)
  {
    for (let mutation of mutationsList)
    {
      alter_comments(document.getElementsByClassName('comment-info'));
    }
  }
  var observer = new MutationObserver(alter_comments_callback);
  observer.observe(document.getElementById('comments'), { attributes: false, childList: true, subtree: true });
makise_homura
0
Честно говоря, хз, с ходу не вижу серьезных отличий (жс без разницы, как ты передаешь функцию, если что). Если ты работаешь в огнелисе, пробуй хром, у него в консоль тамперманки умеет выводить все ошибки (да и в принципе все палить). справедливости ради, я вообще не в курсе, насколько успешно работает под огнелисом ровно тот участок кода
StaSyaN (ред.)
0
Ну вот у меня как раз firefox, потому, видать, и наблюдаются отличия =)
makise_homura
0
— Типа Привет!

Есть давно официальный юзерскрипт для пинкивизора от zluka . Скачивается тута

Кое-какой API тоже есть. Выдача в XML:
Узнать текущий рейтинг топика:
https://pinkievisor.info/pv_api/topic_rating?id=НОМЕР_ТОПИКА

Узнать голосовавших за топик:
https://pinkievisor.info/pv_api/topic_votes?id=НОМЕР_ТОПИКА

Узнать текущий рейтинг коммента:
https://pinkievisor.info/pv_api/comment_rating?id=НОМЕР_КОММЕНТА

Узнать голосовавших за коммент:
https://pinkievisor.info/pv_api/comment_votes?id=НОМЕР_КОММЕНТА

Получить содержимое комментария :
https://pinkievisor.info/pv_api/comment_text?id=НОМЕР_КОММЕНТА

Узнать голосовавших за юзера:
https://pinkievisor.info/pv_api/user_votes?id=НИК_ЮЗЕРА

— Типа Пока!
Morano
+3
— Типа тоже привет и спасибо! =)
Есть давно официальный юзерскрипт для пинкивизора от zluka. Скачивается тута
Йей, наконец-то я нашёл, где этот скрипт находится! =) А то в андреймаловском бэкапе табуна ни одного поста про него =/
Кое-какой API тоже есть. Выдача в XML
О, спасибо! Вызова для блога нет, я правильно понимаю? Эх, знал, бы — сразу с использованием этого API написал бы… Хотя, если б я знал о скрипте Злюки, то я бы вообще свой скрипт не писал бы, наверное =)

… Кстати, а насчёт неотдачи пинкивизором «Access-Control-Allow-Origin: *» при запросах, относящихся к юзеру/блогу — это можно починить? =)
makise_homura
+1
— Этот скрипт, как и впрочем сам Пинкивайзер просто никогда не афишироваись и постов на эту тему не создавалось ибо вещь получилась такая… спорная, конфликтная и возможно срачегонная. Но в некоторых случаях очень полезная. Поэтому об этом знало довольно мало народу. Но, как говорится «Знают двое — знает и ». Вот и разошлась в народе молва. Я не против, сервер нагрузку держит и ладно. Пользуйтесь кто хочет.

Сделаю вызовы для блогов, для текста постов и много чего ещё. Осталось придумать что надо. Вот тебе и получится уже не API пинкивизора, а API табуна. Правда только на чтение :)

Кстати, а насчёт неотдачи пинкивизором «Access-Control-Allow-Origin: *» при запросах, относящихся к юзеру/блогу — это можно починить?


Дай пример get/post-запроса где такое происходит.
Morano
+1
Хех, да, я тоже подумал, что скрипт для пинкивизора — вещь такая, может возбудить много нападок народа друг на друга, еслисмотреть плюсы/минусы будет легче, чем вручную =) Но вроде пока не наблюдаю на табуне особого оживления по этому поводу.
Вот тебе и получится уже не API пинкивизора, а API табуна. Правда только на чтение :)
Это да =)
Дай пример get/post-запроса где такое происходит.
GET вот на такие URL, например:
https://pinkievisor.info/pv_actions/select_user/?id=makise_homura
https://pinkievisor.info/pv_actions/select_blog/?id=https://tabun.everypony.ru/blog/computers/
(соответственно, в id может стоять любой другой юзернейм или ссылка на любой другой блог)
makise_homura
+1
GET вот на такие URL, например:

Ну у меня вроде всё открывается без проблем

Morano
0
Ну, ты открываешь их из окна браузера.
Если открывать их через fetch с другого сайта, то получается вот так:
1) Открываем about:blank
2) Идём в консоль
3) Пишем:
>> function test(url){fetch(url).then(response=>response.text()).then(function(text) {document.body.innerHTML=text;});}
>> test('https://pinkievisor.info/pv_actions/select_topic/?id=194357'); // работает, в окошке появляется результат
>> test('https://pinkievisor.info/pv_actions/select_user/?id=makise_homura'); // не работает, пишет ошибку:
21:07:01.096 Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://pinkievisor.info/pv_actions/select_user/?id=makise_homura. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).
21:07:01.096 TypeError: NetworkError when attempting to fetch resource.
makise_homura
+1
Ага, попробую разобраться.
Morano
+1
Попробуй сейчас по имени пользователя. Получилось? Что еще не работает?
Morano
+1
По блогам вроде тоже поправил. Проверяй.
Morano
+1
Отлично! Вот теперь всё работает! =)
Тогда убираю хак из своего скрипта, теперь будет работать как должно, без него =)
makise_homura
+1
О, спасяба!
С ним всё привычно уже выглядит, кроме кракозябр.
Из CP1252 в UTF-8 нужно перегонять строку «Всего Против Воздержалось Сомнительно».
Lyinx
+1
А шрифты обновить можно?
Strannick_Moundest
0
Это не шрифты. Это кодировка.
Удали в своем tampermonkey скрипт и установи заного.отсюда.
Morano
+1
— А ещё у пинкивизора есть бэкап (архив) табуна. Находится тутачки
— Кстати, в нём помимо текста постов и коментов мы также сохраняем картинки из них.
— И да, это — реклама!
Morano
+4
Йей, спасибо =) Альтернативный бэкап табуна, альтернатива — всегда хорошо =)
makise_homura
+1
— Это да.
Morano
+1
Итак, версия обновлена до 0.0.5 =)
Фиксы:
— CORS-хак больше не нужен — выпилен, поскольку Morano починил пинкивизор! Спасибо! =)
— Пофикшен мелкий баг с MutationObserver-ом, который не находил ничего для слежения на страницах пользователя и блога.
makise_homura
+2
А можно попросить сделать кнопку какой-нибудь менее яркой, а то большое количество Пинки в комментариях режет глаза? Что-нибудь похожее на нынешние кнопки ссылки на коммент и перехода к родительскому комменту. И заодно было бы логично разместить кнопку пинкивизора рядом с этими двумя.
gelirhil
0
Окей, тогда реквестую картинку, на которую можно было бы заменить Пинки.
makise_homura
0
Вот эта: пойдет. Да, для поста можно оставить и Пинки, в количестве одной единицы она не мешает.
gelirhil (ред.)
+1
А еще, наверное, можно юникодовый символ ???? (1F4CA), он совсем хорошо.
P.S. Этот наш табун не умеет в юникод? Тогда картинка, вот версия 8*8: , смотря что лучше впишется в строку:
gelirhil (ред.)
+1
Окей, пасиб, запомнил, в ближайшие дни, видимо, сделаю =)
makise_homura
0
Есть ещё два момента:
1) Замутите настройку окна. Оно охренеть какое громоздкое.
2) Прикрутите к выпадающему окну крестик, чтобы его можно было нормально закрыть.
Strannick_Moundest
0
Прикрутите к выпадающему окну крестик, чтобы его можно было нормально закрыть.
Присоединяюсь!
Navk
0
1) Его можно ресайзить нижним правым уголком. Это подходит или нужно что-то ещё?
2) Эээ, меня как раз попросили это выпилить и закрывать окошко просто кликом вне его. Нужно именно крестиком?
makise_homura
0
Его можно ресайзить нижним правым уголком. Это подходит или нужно что-то ещё?

Что-то это не заметно, хоть какой-то намёк на это оставить можно, как например это делает Windows в своих окнах.
Эээ, меня как раз попросили это выпилить и закрывать окошко просто кликом вне его. Нужно именно крестиком?

Да, потому что кликом вне его оно не закрывается. Особенно если случайно открыл их несколько и не можешь их закрыть.
Strannick_Moundest
+1
хоть какой-то намёк на это оставить можно, как например это делает Windows в своих окнах.
Но там треугольничек розовый должен же быть?
Да, потому что кликом вне его оно не закрывается.
О.о Так, стоп, у тебя что за браузер? Какая версия greasemonkey? Версия скрипта 0.0.5, да? При попытке нажать мимо окна в консоли (обычно открывается по F12) что-нибудь появляется?
makise_homura
0
Но там треугольничек розовый должен же быть?

И вправду есть. Я бы сделал чуть темнее оттенок, чтобы было заметней.
Так, стоп, у тебя что за браузер? Какая версия greasemonkey? Версия скрипта 0.0.5, да? При попытке нажать мимо окна в консоли (обычно открывается по F12) что-нибудь появляется?

Яндекс.Браузер 20.3.2.242. Tampermonkey 4.9 Да Tamper почему-то при загрузке страницы выдаёт 3 с красным индикатором. Может 3 ошибки / предупреждения. Хотя активирован только один скрипт (да-да, я знаю, что второй мог быть смайлопак, но я так до сих пор не могу найти адекватной галереи для него). В консоли после загрузки страницы 2 ошибки и 3 предупреждения.
Причем последняя с кодомuserscript.html?id=459c358f-24ba-4215-add5-6743a741af01:55 Uncaught TypeError: Cannot read property 'match' of undefined
at HTMLDocument.eval (userscript.html?id=459c358f-24ba-4215-add5-6743a741af01:55)
at HTMLDocument.dispatch (userscript.html?id=459c358f-24ba-4215-add5-6743a741af01:6)
at HTMLDocument.r.handle (userscript.html?id=459c358f-24ba-4215-add5-6743a741af01:6)

Похоже я словил занятный баг, когда при уже открытом окне пинкивизора, пытаешься открыть другой комментарий или случайно тот же, то вместо того, чтобы обновить уже имеющееся оно создаёт дополнительное новое, и его уже просто так не закрыть. Не проходило даже после принудительного обновления страницы, решилось перезапуском скрипта.
Strannick_Moundest (ред.)
+1
Я бы сделал чуть темнее оттенок, чтобы было заметней.
Мне как-то кажется, что если я сделаю его темнее, то он не будет смотреться, как часть рамки окна (где обычно ожидаешь увидеть штуку, за которую его ресайзить).

По поводу сообщения — странно, у меня 55 строка выглядит как открывающая фигурная скобка (то есть, очевидно, там такой ошибки возникнуть не может), да и свойство с именем «match» я у себя в коде нигде не использую. Похоже, это ошибки не связаны с моим юзерскриптом… (на всякий случай можешь проверить, будут ли они появляться, если скрипт временно отключить).

При попытке кликнуть вне окна новых ошибок в консоли не появляется?

Да, когда открыто много окон — по клику мимо них все должны закрываться. У тебя так не происходит?
makise_homura
0
Мне как-то кажется, что если я сделаю его темнее, то он не будет смотреться, как часть рамки окна (где обычно ожидаешь увидеть штуку, за которую его ресайзить).

Настолько заметно, что её не увидишь, пока тебе об этом не скажут.
По поводу сообщения — странно, у меня 55 строка выглядит как открывающая фигурная скобка (то есть, очевидно, там такой ошибки возникнуть не может), да и свойство с именем «match» я у себя в коде нигде не использую. Похоже, это ошибки не связаны с моим юзерскриптом… (на всякий случай можешь проверить, будут ли они появляться, если скрипт временно отключить).

Другого скрипта кроме твоего просто нет. Я уже сказал, что активирован только один скрипт.
Strannick_Moundest
+1
Настолько заметно, что её не увидишь, пока тебе об этом не скажут.
Окей. Есть мысли, какой примерно цвет сделать?
В принципе, ты можешь его сам поподбирать. В Tampermonkey, скорее всего, есть функция редактирования скрипта, тебе нужно поизменять в 157 строке «color: #FF0099» на какое-то другое значение (первые две цифры — красный, вторые — зелёный, третьи — синий, 00 — минимум, FF — максимум, это двузначные шестнадцатеричные числа) и, обновляя вкладку с табуном и открывая окошко пинкивизора, оценять результат, а потом мне сказать — я изменю цвет на выбранный тобойю
Другого скрипта кроме твоего просто нет. Я уже сказал, что активирован только один скрипт.
Ну это может, сам Tampermonkey глючит.
makise_homura
0
При попытке кликнуть вне окна новых ошибок в консоли не появляется?

Нет.
Да, когда открыто много окон — по клику мимо них все должны закрываться. У тебя так не происходит?

Странно. В прошлый раз нет, а сейчас работает как надо.
Strannick_Moundest
+1
Хм, значит, похоже, это был какой-то временный глюк.
Я правильно понимаю, что тогда крестик уже не нужен, да?
makise_homura
0
3 с красным индикатором

Там количество активных скриптов + ошибки скриптов
match используется в соседнем обычном Пинкивизоре, как раз примерно в том же месте. Алсо нужно уточнить, что не всегда отображаемый номер строки совпадает с реальным, нужно нажать на саму строку и смотреть, что там именно выстрелило.
StaSyaN
+1
Открывать окошко ховером, а не кликом — нужно будет подумать, как её сделать. Например, влепить галочку в футер Табуна (там, где «Версия Табуна: v1.3.3 Сообщить об ошибке»), и если она включена, то открывать окошко через миллисекунд 200 после наведения мышки на Пинки, а в случае увода мышки с открытого окна через миллисекунд 500 убирать его. Пойдёт так?
Вполне!
Navk
0
Окей =) Тогда как у меня будет время — сделаю.
makise_homura
0
@makise_homura
По просьбам пользователей поправил кодировку файла со скриптом Злюки, изменил имя файла, чтобы monkey ставил скрипт автоматически. но ссылка для скачивания изменилась. Теперь: pinkievisor.info/pv.user.js. Поправь в шапке поста.
Morano
+5
Кстати, после установки этого скрипта вы будете видеть оценки постов за которые не голосовали (без скрипта Табун их скрывает пока не проголосуете или не пройдет определенное время для окончания возможности голосования за пост) Так что не пугайтесь! Это фича просто такая ;)
Morano
+1
Кажется что-то сломалось. Ребят, у кого-нибудь прямо сейчас работает скрипт?
Art486
0
Скрипт ни при чём, весь пинкивизор лежит
andreymal
+1
Ясно. Спасибо.
Art486
+1
Уже восстал)
Morano
+1
Йей! Поправил =)
makise_homura
+1
Оперативно! Очень благодарен!
Strannick_Moundest (ред.)
+1
Lyinx
0
Нужно больше золота!
Wererat
0
Аналогичное вижу
StaSyaN
0
Аналогично видел в разных тредах от разных юзернеймов.
KerHarrad
0
Можно примеры также примерно как автор выше приводить?
Morano
0
К сожалению топика больше не существует, но поправил.
Morano
0
Это же Пинки, она может временами сходить с ума =)
makise_homura
+1
Вя-вя?
Pony4tonado
0
Вя! —
Morano
0
Кажись что-то в скрипте сломалось.
Спойлер
Lyinx
+1
Мой (сильно более старый) скрипт вообще слетел. Создатель Пинкивизора на днях обновил сайт, прикрутив донаты, и видимо в АПИ что-то поменял. Или в адресах.
Ginger_Strings
+1
Вроде как скрипт Злюки, говорят, обновился, его просто надо ещё раз по-новой поставить (но это не точно).
makise_homura
0
На репозитории Злюки его ща нету, по крайней мере, на том, который в контактах скрипта.
Ginger_Strings
0
В тексте этого поста есть ссылка на скрипт от Злюки. По этой ссылке всегда доступна актуальная версия. А репозитария Злюки уже не существует.
Morano
+1
У-у, когда в первый раз читал пост — еще не было. Это было давно-о!
Спасибо! :)
Ginger_Strings
+1
Пост иногда меняется автором
Morano
+1
Сейчас УМВР как бы =)
Вообще, это похоже на отвал чего-то (css с фоном и оформлением кнопочек) именно на стороне пинкивизора. То есть страница прогружается нормально, а стили не показываются.
makise_homura
0
Обновление 0.0.7: пофикшены стили (теперь внутренности окошка похожи на нормальный пинкивизор и нет такого, чтобы тёмный текст на цветастом фоне) и баги с преобразованием ссылок.
makise_homura
0
Обновление 0.0.8: пофикшена ошибка со stattype в Tampermonkey (для тех, у кого сообщение об этой ошибке появляется в консоли браузера).
makise_homura
+1
Обновление 0.0.10: Запилен обход ошибки Chrome, приводящей к белому окну (пока его не подвинешь). Спасибо за помощь Morano и Danil_Otritsevski
makise_homura
+1
Чет обновился и переодически выскакивает такое:
S_Lunaris
+2
О.о
Это хром или другой браузер?
И табун потом так и остаётся в этом окне, не заменяется на пинкивизор?
(плюс ещё я вижу, что то ли картинка не прогрузилась, то ли ещё что-то с ней случилось во втором окошке)
makise_homura
+1
Это лиса. Окошко пинкивайзера почему-то взаимодействует с кнопкой «предыдущая страница», но точную закономерность я не нашел.Смайлики не грузит еще, да.
S_Lunaris (ред.)
+1
О.О что-то жесть какая-то =/ А какая версия?
И сразу два вопроса:
1) в консоли никаких ошибок не вылезает?
2) если посмотреть инспектором содержимое iframe-а, там табун или пинкивизор?
makise_homura
0
Как словлю снова, проверю.
С табуна кстати в окне пинкивайзера уйти не получилось, а вот в пределах сайта навигация работает.
S_Lunaris
0
84.0.1
Ошибок нет, вроде Табун.
S_Lunaris (ред.)
+1
Мда, у меня тоже 84.0.1, но почему-то не повторяется =/
Эмм, это именно содержимое iframe в окошке, где должен быть пинкивизор, или это код всей страницы?
makise_homura
0
Нет, это информация из консоли, об открытой в окошке пинкивайзера странице-дубле, они совпадают кстати.
Вот:
S_Lunaris
+1
Мда, какая-то дичь…
А как в инспекторе выглядит сам тег iframe?
У меня как-то вот такМне важно начало того, что в атрибуте src.
makise_homura
0
Как-то так:
S_Lunaris
+1
Хм, да, такое чувство, что у тебя как-то в iframe попали не те данные О.о
Там всё должно заканчиваться на "</div></div></body></html>" или "</sсript></div></body></html>", а у тебя отчего-то, как я вижу, после "</sсript>" несколько символов "%0A", которых в оригинале не должно быть…
Проверь, плз, вдруг это возникает только для комментов, за которые никто не голосовал, либо наоборот — только для тех, за которые кто-то уже голосовал?
А ещё скинь мне скрин с развёрнутым тегом iframe в инспекторе (а ещё внутри него разверни head и body, если влезут в экран; теги внутри head и body уже разворачивать не нужно) — так, чтобы было видно и src тега iframe, и внутренности этого iframe (совпадают ли они)
И ещё посмотри исходник, как в этом твоём комменте, чем оканчивается первая строка?
makise_homura
0
Там вся страница, буквально. Я для проверки закинул в блокнот содержимое и оно улетело вниз на 360 строк.

И ещё посмотри исходник, как в этом твоём комменте, чем оканчивается первая строка?
<html()><head()><link rel=«stylesheet» href=«pinkievisor.info/pv_styles/main_pv.css»()></head()><body()><div style=«border-radius: 5px; border-style: solid; border-color: ff0099; background-color: ffffff; opacity: 0.9; padding: 10px; line-height: 1.9; margin: 5px;»()>
Без ().

Два последних раза ловил на коментах за которые никто не голосовал точно.
S_Lunaris
+1
Хм, есть у меня глупая догадка. Открой скрипт на редактирование и в строках 32 и 36 соответственно замени
function inject_iframe(body)
на
function inject_iframe(bodyblablabla)
, а
body + '</div></body></html>';
на
bodyblablabla + '</div></body></html>';
. Не вылечится ли?
makise_homura
0
Теперь ловится на комментах за которые голосовали!
Зато смайлик начал прогружатся.)
S_Lunaris
+1
Блин, какая-то магия творится, чесслово(
То есть, после изменения имени переменной штука с табуном на месте пинкивизора не починилась (но при этом он стал появляться также и на комментах, за которые были голоса), но зато смайлик починился?
Вообще не представляю, как такое происходит…
Кстати, у тебя Greasemonkey или Tampermonkey?
makise_homura
0
Greasemonkey
но при этом он стал появляться также и на комментах, за которые были голоса
Вроде все же вместо)
зато смайлик починился?
S_Lunaris (ред.)
+1
Greasemonkey
Блин, и ведь почему-то у меня не получается так его сломать, чтобы он мне табун показал(
Вроде все же вместо)
А, то есть на тех, за которые нет голосов, он перестал появляться?

Так, попробуй в той строчке, которая
bodyblablabla + '</div></body></html>';
заменить временно bodyblablabla на 'xxx' (в одиночных кавычках). У тебя должно теперь получаться при клике на любой комментарий окно без табуна или пинкивизора, но с единственной надписью «xxx» вместо своего содержимого. Проверь, в таком случае у тебя ни разу не получается, чтобы на его месте оказался табун?

(потом, после эксперимента, можешь вернуть bodyblablabla на место)

Если вдруг будет опять табун, то раскрой содержимое такого iframe в инспекторе и пришли скрин мне?
makise_homura
0
Не, ток иксы.
S_Lunaris
0
Так, окей, значит, это ломается в другом месте. Попробуй перед 245 строкой («resiframe.src = inject_iframe(subdiv.innerHTML);») дописать строку «console.log(subdiv.innerHTML);» (без кавычек, разумеется), потом обнови страницу и пришли мне скрин того, что вывалилось в консоль
Как-то вот так оно должно выглядеть
makise_homura
0
Э-э-э...
S_Lunaris
+1
O.O Такого точно не должно было происходить…
Так, а если убрать добавленную строчку обратно, то в консоли всё равно будет появляться вот это «Something went wrong! Can't create pinkie URL from id»?
Будет ли оно появляться с исходной версией скрипта (т.е. если скрипт удалить и по-новой поставить по ссылке)?
Если да, то не появляется ли оно именно тогда, когда в окошке вместо пинкивизора — табун, а если всё ок — то не появляется?

P.S. Ого! Тут уже почти десять часов утра, что-то я засиделся и не заметил, как время прошло… Пожалуй, пойду-ка я спать =/
Постарайся тогда пока по-максимуму собрать всякую диагностику, которая может показаться полезной (если получится со строчкой, которая «console.log(subdiv.innerHTML);» — то вообще хорошо), а я проснусь и попытаюсь разобраться
makise_homura
0
Так, а если убрать добавленную строчку обратно, то в консоли всё равно будет появляться вот это «Something went wrong! Can't create pinkie URL from id»?
Да.
Будет ли оно появляться с исходной версией скрипта (т.е. если скрипт удалить и по-новой поставить по ссылке)?
Да.х2
Если да, то не появляется ли оно именно тогда, когда в окошке вместо пинкивизора — табун, а если всё ок — то не появляется?
Да! х3
Спокойного дня, а я пойду пока еще в спеллфорс пофармлю)
S_Lunaris (ред.)
+1
Да! х3
Так, значит, мы на правильном (в очередной раз надеюсь) пути =)
Попробуй перед 213 строкой
fetch(create_pinkie_url(event.target.id)).then(response =>  response.ok ? response.text() : Promise.reject(response)).then(function(text)
написать вот такие строки:
console.log(event.target.id);
console.log(event.target);
console.log(event);
, а потом обновить страницу, открыть консоль, воспроизвести проблему с табуном вместо пинкивизора и прислать мне скриншот?Так это выглядит у меня (см. таймстампы 21:29:17.166-21:29:17.167)
makise_homura
0
Спойлер
S_Lunaris
+1
ДА! Спасибо, я поймал теперь этот косяк =)
Для того, чтобы его словить, надо кликнуть не по картинке с Пинки, а по однопиксельной колонке пикселей справа от неё: тогда клик ужодит в pinkie-link размера 20х21, а не в картинку размера 20x20 — а в нём отсутствует id.
Сейчас буду чинить =)
P.S. как вы все так умудряетесь тыкать, чтобы попадать в штуки буквально однопиксельной ширины? =)
makise_homura (ред.)
0
P.S. как вы все так умудряетесь тыкать, чтобы попадать в штуки буквально однопиксельной ширины?
Силой статистики! Там не такой уж маленький шанс на самом деле.
S_Lunaris
0
Всё, попробуй обновить скрипт (он предупредит, что он у тебя отредактирован, но нам уже эти редактирования, по идее, не нужны). Если больше не сумеешь с обновлённой версией повторить этот баг — то будем считать, что наконец-то решилось =)

Если что, если считать, что мы тыкаем примерно в центр картинки с нормальным распределением с дисперсией 1, то вероятность ткнуть в эту колонку пикселей будет около 7,6×10-23 =)
makise_homura
0
Если что, если считать, что мы тыкаем примерно в центр картинки с нормальным распределением с дисперсией 1, то вероятность ткнуть в эту колонку пикселей будет около 7,6×10-23 =)
Тут люди порой вместо плюса на минус попадают, а ты от них ждешь чтобы они каждый раз в центр картинки прицеливались)
S_Lunaris
+1
Лол, ну это да, аргумент =)
makise_homura
0
Не скажу за этого юзера, но у меня хром и он также создаёт «табун в табуне». Причём, что удивительно, в версии 0.0.8
(Сорри за то, что давно не выходил на связь. Отходняки, все дела. Днём продолжим вылавливать баги, у меня появились интересные забавности по новой версии)
Danil_Otritsevski
+1
О.о чем дальше в лес — тем занятнее баги, похоже…
Одно плохо — у меян они всё никак не повторяются(( Работает, зараза, как задумывалось, и хоть бы раз глюканул, но нет(
makise_homura
+1
Возможно уже было — никого не смущает расположение мордочки пинки рядом с минусующей стрелкой в рейтинге поста?
Wererat
0
Эмм, не было, ну а где её иначе разместить? Всё равно будет там, где рядом какие-то другие элементы.
makise_homura
0
Где нибудь, где промах мимо иконки не повлечет за собой необратимых последствий). У комментариев она расположена правее штатного набора интерактивных элементов, может быть тут тоже рассположить её аналогичным образом — правее названия блога?
Wererat (ред.)
+1
Хм, кажется, понял, записал себе, попробую сделать.
makise_homura
0
Обновление 0.0.11: Запилен обход ошибки, приводящей к показу табуна вместо пинкивизора, если кликнуть чуть сбоку от Пинки. Спасибо за помощь S_Lunaris !
makise_homura
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.