[ /b/ /u/ /rf/ /dt/ /vg/ /r/ /cr/ /lor/ /mu/ /oe/ /s/ /w/ /hr/ ] [ /a/ /ma/ /sw/ /hau/ /azu/ ] [ /tv/ /cp/ /gf/ /bo/ /di/ /vn/ /ve/ /wh/ /fur/ /to/ /bg/ /wn/ /slow/ /mad/ ] [ /d/ /news/ ] [ Главная | Настройки | Закладки | Плеер ]

Ответ в тред 58066. [Назад]
 [ Скрыть форму ]
Имя
Не поднимать тред 
Тема
Сообщение
Капча Капча
Пароль
Файл
Вернуться к
  • Публикация сообщения означает согласие с условиями предоставления сервиса
  • В сообщениях можно использовать разметку wakabamark
  • На данной доске отображаются исходные имена файлов!
  • Разрешенные типы файлов: music, vector, image, code, pdf, flash, archive, text, video
  • Тред перестает подниматься после 500 сообщений.
  • Треды с числом ответов более 10 не могут быть удалены.
  • Старые треды перемещаются в архив после 40 страницы.

No.58066 Ответ
Файл: 1ce4def45f803077c...
Png, 1.39 KB, 225×15
edit Find source with google Find source with iqdb
1ce4def45f803077c98abbc804275aa3.png
Файл: 01860dd2984c07627...
Png, 68.70 KB, 760×473
edit Find source with google Find source with iqdb
01860dd2984c076272885b99debe153d.png
Файл: 79b0b7cb827c94d4b...
Png, 62.84 KB, 424×444
edit Find source with google Find source with iqdb
79b0b7cb827c94d4bd86ebf00b1e28f2.png

В этом треде мы расширяем и без того широкие возможности Доброчана, делая их поистине безграничными, скрываем треды, что пришлись нам не по нраву, осваиваем регулярные выражения и делимся особо хитрыми экземплярами оных, по три года ожидаем возвращения прежних авторов скриптов, а также делимся собственными успехами на поприще скриптописательства. Главное — без фанатизма!

КАК ЧИТАТЬ АРХИВ?
1. HanabiraMagicExtension (см. ниже);
2. DobroArchReader от Юки: >>mad/68532

Чем скрывать посты?
1. Dobrochan Thread Hider (см. Доброскрипт, умеет в регулярки, нативное скрытие);
2. DobroHider (Умеет в регулярки, нативное скрытие, интеграция в настройки. Устарел, нужно подтверждение работоспособности);
3. HanabiraMagicExtension (точное совпадение, нативное скрытие).
Куклоскипт использовать не рекомендуется (он сворачивает треды, но не скрывает нативно).
Небольшой список регекспов хранится здесь: >>55234

Список известных скриптов.

Современные скрипты:
* Куклоскрипт — говорит сам за себя. Любит периодически разваливаться и отваливаться. Оффициальный сайт куклоскрипта: http://www.freedollchan.org/scripts
* HanabiraMagicExtension — новый, частично основанный на коде других проектов, скрипт общего назначения. Нативен для Доброчана, соответственно, заточен под него, на данный момент активно разрабатывается. По своему подходу подобен Юки-скрипту, то есть добавляет в Доброчан самое необходимое с небольшим процентом свистелок. Позволяет читать архив. Есть лайт-версия без свистелок вообще. Ссылка: https://github.com/OpenA/MagiCcode/tree/master/Dobrochan

Более старые скрипты (работоспособность не гарантируется):
* Эврикаскрипт — огромный комбайн со множеством функций и настроек. В настоящее время заброшен, но сохраняет частичную работоспособность. Официальный тред: >>mad/13208
* Юки-скрипт — скрипт общего назначения, добавляющий только те функции, которых недостаёт Доброчану из коробки. Разработка не ведётся^W^W потихоньку ведется уже некоторое время. Официальный тред: >>mad/42580, репозиторий исходного кода: https://github.com/tranquility-yuki/yukiscript. В репозитории также содержится несколько других полезных скриптов, таких как Тредометр и скрипт для поиска по Доброчану, ну и конечно же dobroarchreader, позволяющий читать и сохранять треды из архива доброчана бесплатно, без смс и регистрации. (использовать на свой страх и риск!).
* Доброскрипт — набор отдельных скриптов, каждый из которых выполняет свою функцию. В состав входят Dobrochan Reply Links, Dobrochan Thread Hider, Dobrochan Thread Update Checker и Dobrochan Bookmarks Page Updater. Названия скриптов самоочевидны, отдельно стоит прокомментировать Dobrochan Thread Hider, предназначение которого — скрывать треды в автоматическом режиме (теперь он умеет скрывать и по регулярным выражениям), а также Monitor, который позволяет отслеживать активность на выбранных досках. Ссылка: https://github.com/Unknowny/dobroscript
* DobroHider — независимый скрипт для скрытия тредов. Умеет скрывать треды по регулярным выражениям. По сообщениям анонимных аналитиков, он является тем самым IDDQD, с которым вы сможете пройти сраный дум на найтмаре! Исходный код скрипта: http://dobrochan.com/utils/text/1484194/6431878. Для установки текст скрипта можно скопировать, а затем аккуратно предложить своему плагину юзерскриптов принять его в себя любым удобным способом. После этого окно для скрытия тредов появится на странице с настройками — http://dobrochan.com/settings.

Небольшие скрипты (с большой вероятностью совместимы с другими):
* Dobrochan Offsite Links — перенаправляет все внешние ссылки Доброчана в новую вкладку, чтобы они не открывались во фрейме. Ссылка: https://www.dropbox.com/s/4sdplyhlpnrpdmx/Dobrochan_Offsite_Links.user.js?dl=0
* Dobrochan Magic Spoilers — делает чтение постов с множеством спойлеров удобнее. Теперь содержимое спойлеров можно видеть, наводясь мышкой на пост. Ссылка: https://www.dropbox.com/s/l63hnabn8xztqi0/Dobrochan%20Magic%20Spoilers.user.js?dl=0
* Dobro-report — добавляет кнопку "пожаловаться модератору". Немного староват. Похожий функционал есть в HanabiraMagicExtension. Ссылка: https://github.com/lain-dono/DobroReport
* DobroSearch - скрипт для поиска по Доброчану. Внимание: user discretion is adviced! Подробнее здесь: >>58078
* End Thread - добавляет кнопку вверху треда, по нажатию на которую можно переместиться в конец треда. Подробнее здесь: >>62214
* Dobro & Avatar! - скрывает в указанных тредах все посты без картинок. Подробнее здесь: >>62214
* Genocide /mad/ - скрытие по флажкам в /mad/. Подробнее здесь: >>62214

Уточнения и дополнения приветствуются. А как же иначе?
Предыдущий тред: >>55048
Post was modified last time at 2018-08-06 03:20:21
>> No.58068 Ответ
>>58066
> Уточнения и дополнения приветствуются.
Так что я подредактирую ОП-пост.
>> No.58069 Ответ
>>58066
Ох, на твоем скрине монитора паддинги разъехались. Надо будет посмотреть в чем дело.
И вот еще >>57598
>> No.58070 Ответ
>>58066
>>58068
Подредактировал. Убрал ошибки, опечатки, поехавшую разметку, добавил забытые скрипты и потерявшиеся ссылки. Ну и ответ на животрепещущий вопрос про архив.
Теперь хоть посмотреть не стыдно. Ай-ай-ай так треды создавать. Но всё равно молодец, что попытался.
>> No.58073 Ответ
>>58070
Ммм… Всё равно осталось несколько неточностей. Предлагаю как минимум следующее:
  • Перенести раздел с deprecated-скриптами в самый низ;
  • Оставить в нём только эврикаскрипт и DobroHider;
  • В пункте про Юки-скрипт после упоминания скрипта поиска добавить ссылку >>mad/45498, а после описания dobroarchreader'a там же и в пункте "Как читать архив" — >>mad/68532;
  • Явно отметить, что Dobrochan Thread Hider из состава https://github.com/Unknowny/dobroscript обновился и теперь может скрывать по регулярным выражениям;
  • Добавить после пункта "Как читать архив" ещё два:
    • "Чем автоскрывать треды?" 1)Dobrochan Thread Hider из состава Доброскрипта; 2)DobroHider (оба см. ниже.)
    • "Чем скрыть тот самый тред?" Небольшой сборник хитрых регэкспов лежит вот здесь >>55234. Если уж начинаем делать этакий мини-FAQ, то почему бы не продолжить?
  • Двоеточие после фразы "Список известных скриптов..."
В такие моменты так и хочется сделать pull-реквест, десу.

Кстати, крайне хорошая идея с заготовкой под мини-FAQ при всей её, казалось бы, очевидности.
>> No.58074 Ответ
>>58070
Извинияюсь, просто я редко создавал ОП-посты. Обычно кто-то быстрее успевал до меня их создать. Так что спасибо тебе мод-няша, впредь буду более аккуратным.
>> No.58075 Ответ
>>58073
Удобряю, было бы неплохо это добавить.
>> No.58076 Ответ
>>58070
>>58074
А ещё вам обоим спасибо от медленного ОПа предыдущего треда, который без посторонней помощи всё ещё бы слоупочил с написанием нового оп-поста.
>> No.58077 Ответ
Скрипто-няша, я тут подумал, было бы неплохо добавить возможность прикреплять изображения через ссылки, а то сильно не хватает этого, а также проматывание до последнего непрочитанного поста.
>> No.58078 Ответ
Пост для шапки. Двиньте вперёд, гражданин, нечего видеть здесь.

Как пользоваться DobroSearch?

После установки юзерскрипта вверху страницы появляется кнопочка "Sonar". Если её жмакнуть появляется форма, куда можно вбить слова (через пробел), поставить пару галочек и начать поиск. Поиск не зависит от регистра и порядка слов. Но все слова должны быть в сообщении. Совпадение ищется точное.

Если не вводить поисковые слова и не ставить галочки, будут выведены ВСЕ треды доски в порядке последнего изменения без учёта бамплимита и сажи.

Скрипт ищет АДОВО МЕДЛЕННО. На обход /b/ требуется не менее получаса. При этом скрипт не умеет разворачивать треды, поэтому поиск идёт исключительно в оп-посте и последних 10-ти постах. Можно было бы добавить функцию разворачивания тредов, но это увеличило бы время поиска в десятки раз.

Более того, скрипт создаёт некоторую нагрузку на Доброчан. Поэтому рекомендуется быть благоразумным и не пользоваться поиском, если вам просто лень лезть за тредом на первую-вторую страницу. Особо злостные буратины могут словить и временный бан по IP. Если такое случится, можно постучаться на почту администрации (dobrochan@dobrochan.ru).

Результат выводится в таком формате:
[страница где лежит тред] дата_последнего_изменения_треда Рефлинк_на_оппост Заголовок [картинок в треде / постов в треде] (если поиск был по последним постам, далее идут рефлинки на посты, где эти слова есть)

Если вы прочитали всё вышесказанное и приняли это к сведению, вот ссылка на скачивание:
https://github.com/tranquility-yuki/yukiscript/raw/master/DobroSearch.user.js
Post was modified last time at 2015-10-20 22:23:35
>> No.58079 Ответ
>>58073
>>58075
Допилил.

Ничего в "современные" добавлять не буду без подтверждения пользователей того, что всё действительно работает. Когда я в последний раз пытался поставить юкискрипт, он разваливался прямо на лету на рекомендуемой конфигурации. То же самое с большинством доброскриптов. То, что разработка ещё ведётся, ещё ничего не значит.

И вообще нужно будет перепилить шапку: с добавлением FAQ количество самоповторений зашкалило, а читабельность упала в пол.

>>58074
Пожалуйста. Добра тебе.

>>58076
А тебе спасибо за прошлый тред.
>> No.58080 Ответ
>>58066
У меня жир вытекает.
>> No.58081 Ответ
>>58080
Уже поправил. Но с читабельностью всё плохо.
>> No.58082 Ответ
>>58081
Моя заход - https://gist.github.com/Unknowny/6e1f99c2a6304e3edb67
>>58077
> прикреплять изображения через ссылки
Шота сомневаюсь, что это возможно, а точнее белее чем уверен, что это невозможно. Такое на стороне сервера делается.
>> No.58083 Ответ
>>58082
> Шота сомневаюсь, что это возможно, а точнее белее чем уверен, что это невозможно.
На винде вполне работает. Жмёшь "добавить файл", открывается диалог выбора файла, там вставляешь ссылку на файлик и он прикрепляется. Правда это медленно работает, потому как сначала файл качается тебе (интернет эксплорером. неторопливо), а потом заливается на борду.

Если скрипт выполняется из Гризманки/Тамперманки то можно урлы обрабатывать им. GM_xmlhttpRequest умеет качать кроссдомейн.
>> No.58084 Ответ
>>58083
> GM_xmlhttpRequest умеет качать кроссдомейн
Вот оно как. Тогда да, вполне реализуемо.
>> No.58086 Ответ
>>58077
Оно уже есть (через драгндроп)
Только работает это для одного доброчана, с остальных же ресурсов запросы блокируются в связи с отсутствием заголовка CORS.
>>58083
> GM_xmlhttpRequest умеет качать кроссдомейн.
И Cross-Origin умеет обходить?
>> No.58087 Ответ
>>58086
> И Cross-Origin умеет обходить?
Естественно, он для такого обхода и сделан.

Даже referer можно указать какой надо, никто не впалит что ты с доброчана лазаешь по вконтактику жертвы.
>> No.58088 Ответ
>>58087
> referer можно указать какой надо
Как и Origin. Короче эта функция специально чтоб качать всё что хочешь со страницы откуда этого обычными скриптами не сделать.
>> No.58089 Ответ
>>58087
> Естественно, он для такого обхода и сделан.
Круто, а то так добивает что через <img /> <audio /> <video /> с другого сервера фаил запросить можно, а через XmlHttpRequest в виде блоба нельзя.
> Даже referer можно указать какой надо, никто не впалит что ты с доброчана лазаешь по вконтактику жертвы.
> > referer
Что это?
>> No.58090 Ответ
>> No.58119 Ответ
Скрипто-няша, когда апдейт будет?
>> No.58122 Ответ
>>58119
Ох не знаю, к концу недели может быть. Сейчас вожусь вот с этим вот >>58090 пытаюсь соорудить механизм отсеивающий валидные ссылки от не валидных, и вообще правильно распознающий файлы.
>> No.58124 Ответ
>>58122
А что такого сложного? Если ссылка /.+\.(jpe?g|webp|gif|png|webm|mp4)$/, значит это то что тебе нужно. Ещё можно что-то отдельное придумать для, к примеру, ргхоста.

А если ты хочешь именно детектор типа файлов по содержимому, то https://github.com/sindresorhus/file-type

Только сделай опцию по дефолту выключенной, будут люди которым не понравится что автоматом загружаются картинки с адресом http://hacking.freephphosting.ololo.li/iptracker/palevo.jpg
>> No.58125 Ответ
>>58124
А то что вот так вот выглядит ссылка на видео с ютуба например:
//r2---sn-535qv-n8me.googlevideo.com/videoplayback?itag=43&id=o-ALPzMNNjF-uu8D_Ht2Jzcp41jNzDL2zpsAwC6UR-xvtg&key=yt6&lmt=1420929779276975&dur=0.000&mv=m&source=youtube&ms=au&sver=3&expire=1445694156&requiressl=yes&mn=sn-535qv-n8me&mm=31&ipbits=0&initcwndbps=3902500&mt=1445672452&pl=19&signature=DFC1F2A083177FE572C4ED9C8430238434EACB98.2874D276CAA2C3D8EE3AD9B98FB44A9794803029&ratebypass=yes&fexp=9406006%2C9406148%2C9408522%2C9408710%2C9414764%2C9416126%2C9416403%2C9416729%2C9417703%2C9417707%2C9418200%2C9419061%2C9419545%2C9420438%2C9420539%2C9422847%2C9423204&mime=video%2Fwebm&upn=2elGlQwjF1E&sparams=dur%2Cid%2Cinitcwndbps%2Cip%2Cipbits%2Citag%2Clmt%2Cmime%2Cmm%2Cmn%2Cms%2Cmv%2Cpl%2Cratebypass%2Crequiressl%2Csource%2Cupn%2Cexpire

Цимес еще и в том что у меня сейчас имя файла из адреса берется и получается адовый пиздец, а расширение из имени файла которого в таких случаях вовсе нет. Надо короче как то вот так продумать хорошо чтобы по всякому можно было и скрипт всегда знал что делать.
> Только сделай опцию по дефолту выключенной, будут люди которым не понравится что автоматом загружаются картинки с адресом http://hacking.freephphosting.ololo.li/iptracker/palevo.jpg
Эм, нет, речь о другом - радом с кнопкой "Добавить файлы" будет кнопка "по URL" куда можно будет вставить ссылки на файлы отделяя запятой, после чего скрипт их загрузит в форму - как если бы их загрузили сначала на локальный диск и после добавили.
>> No.58127 Ответ
>>58125
> радом с кнопкой "Добавить файлы" будет кнопка "по URL"
function url2filename(url){
	var fileLink = document.createElement('a');
	fileLink.href = url;

	var match = fileLink.pathname.match(/\/([^\/]+)$/);

	return match ? match[1] : 'file';
}
Вызвав эту функцию для той ссылки на ютуб видео ты получишь в ответ "videoplayback". Так что после того как файлик скачается воспользуйся file-type и проверь что имя оканчивается на правильное расширение. Если нет - тупо добавь к имени ".webm" (ну или какое расширение тебе скажут) и на этом всё. Далее уже всё зависит от доброчана - примет он такой файл или нет.
>> No.58129 Ответ
>>58127
Не-не-не, так не пойдет. Подобные ссылки не только же с ютуба, а еще бывают url адреса у которых на конце расширение файла http://uploadmedia.com/ggc5g4cy4c/download_image.png а на самом деле ссылка ведет на html страницу.

С этим в общем то нет проблем - я же запрашиваю блоб, а в нем mime/type есть.
Проблема в написании грамотного верификатора, так как mime/type-ы несколько иные, например audio/mpeg - это mp3, audio/x-wav - это wav, ну итд.
Это не сложно просто мозги сегодня немного туго думают.
> Далее уже всё зависит от доброчана - примет он такой файл или нет.
Ну ограничивать цепляемые файлы я и не собираюсь, исключением может быть разве что text/html.
>> No.58130 Ответ
>>58129
> а на самом деле ссылка ведет на html страницу
Я по этому и предлагаю тебе использовать file-type.

Качаешь файл. Проверяешь его тип, если надо исправляешь расширение и заливаешь на доброчан как есть. Всё, не надо мудрить ибо 99% использования этой функции будут типа "Аааа, блин, как там этот комикс? Окей гугл: гномики набигают медведь кишки брежнев. Ага! Вот эта картинка! Копируем URL и вставляем в форму на доброчан"

В очень редких случаях тебе понадобиться аж целый умный кравлер, который скачает картинку, поймёт что это не картинка а хтмл того дурацкого хостинга где надо через спецовую ссылку качать картинку с кукой, и будет её качать. Это слишком сложно на мой взгляд. И не нужно.

Задача ведь состоит в том чтобы сэкономить один клик. Вместо "сохранить как" кликается "скопировать url". А на форме доброчана просто копипастится ссылка вместо клика на "добавить" и второго клика на скачанный файл (вот этот последний клик и экономится).
>> No.58172 Ответ
Скрипто-няша, когда уже апдейт будет? Или ты снова на работе занят сильно?
>> No.58174 Ответ
Файл: 14438320216860.jpg
Jpg, 30.24 KB, 450×489
edit Find source with google Find source with iqdb
14438320216860.jpg
Файл: talking_captcha.png
Png, 0.78 KB, 73×15
edit Find source with google Find source with iqdb
talking_captcha.png

>>58130
> предлагаю тебе использовать file-type
> > Accessing TypedArray data over Xrays is slow, and forbidden in order to encourage performant code. To copy TypedArrays across origin boundaries, consider using Components.utils.cloneInto().
Вот так вот уважаемая аудитория.

Есть еще утилита BlobViewer (помоему от мозиловцев) которая могет читать бинарии кусками, позволяет разбирать секции и хорошо работает с большими файлами, только там как то это все немного мозголомно сделано, я пытаался при помощи него реализовать читалку метадаты Ogg файлов, но ниасилил т.к. структура их безблагодатна и ужасна.

>>58172
Занят я бездельем, иногда занят им сильно и продолжительно, и вообще осень/безысходность.
Про такие глубинные вещи как апдейт меня лучше не спрашивать, потому что как всегда берешься за одно и начинаешь зачем то переделывать другое, а на следущее утро о чем то задумался выгуливая пса пришел и начал делать третье. А еще код несколько распух.
Короче лучше что то конкретное просите, очень сильно нужное, а не апдейт.

https://www.youtube.com/watch?v=W91xewoFJfE
>> No.58176 Ответ
Не знаю, куда писать, но как вернуть нормальный вид сайту? У меня ответы на посты не видны, будто это мобильный api
>> No.58180 Ответ
>>58176
> У меня ответы на посты не видны
На Доброчане не отображаются ответы на посты, в нём просто нет такой фичи. Ты пользовался каким-то из юзерскриптов, смотри шапку.
>> No.58185 Ответ
>>58174
> что то конкретное просите
плавающая вкладка
>> No.58186 Ответ
Файл: tumblr_mwuz2wIH041shdfeho1_500.gif
Gif, 299.93 KB, 500×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
tumblr_mwuz2wIH041shdfeho1_500.gif
>>58185
Чуть побольше подробностей плиз.
>> No.58190 Ответ
>>58186
Ну форму ответа чтобы можно было двигать, ведь так легко осуществлять навигацию между ответами.
>> No.58192 Ответ
>>58190
Ты в курсе, что её уже можно двигать?
>> No.58194 Ответ
Файл: Silent_Hill_4_The_Room_by_ViperXtreme.jpg
Jpg, 223.24 KB, 717×1024 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Silent_Hill_4_The_Room_by_ViperXtreme.jpg
>>58192
Нет, он имеет в виду форму с фиксированным позиционированием - как форма жалобы.
>>58190
Хорошо, будет тебе анон форма. Парадная!
Её вроде более менее понятно как делать.
>> No.58195 Ответ
Permission denied to access property "length" Блин, ну это уже ни в какие ворота не лезет.
Этот // @grant GM_xmlhttpRequest работу всего скрипта ломает. Как быть?
>> No.58196 Ответ
>>58195
> Этот // @grant GM_xmlhttpRequest работу всего скрипта ломает.
Имеешь ввиду сандбокс включает? Надо было с самого начала на нем писать.
>> No.58197 Ответ
>>58196
> Имеешь ввиду сандбокс включает?
Ну видимо да, потому что когда none указано то все нормально
> Надо было с самого начала на нем писать.
В каком смысле на нем писать?
>> No.58198 Ответ
>>58197
Под ним имел в виду, для больших скриптов я всегда какой-нибудь апи грисманки указываю на всякий случай. Делай грант unsafewindow или как там его.
>> No.58199 Ответ
>>58198
Хм, помогло, но не от всех проблем, и сама природа таких ограничений вообще не понятна: фаил ридер объявленный в каком то конкретном месте - все нормально, фаил ридер оформленный в виде функции которой передают callback - Permission denied видите ли.
Надо бы уходить из юзерскриптов в расширения, а то разработка превращается в странное колдовство.
>> No.58200 Ответ
>>58199
Одна муть, только манифесты и прочий бойлерплейт учить в дополнение.
Btw, не знаю относится ли это к тебе, но в багтрекере грисманки висит открытым: FileReader API is unusable on Greasemonkey #2034
>> No.58210 Ответ
>> No.58211 Ответ
>>58210
Ну это понятно. Я правда вначале скрипта просто прописал
Uint8Array = unsafeWindow.Uint8Array
Но это честно, какой то позор.
>>58200
> Одна муть, только манифесты и прочий бойлерплейт учить в дополнение.
Да что там учить, структуру манифеста только немного покурить, зато файлы можно держать отдельно а не одним монолитным скриптом, не говоря уже о стилях и картинках, можно одну часть исполнять до загрузки страницы а другую по готовности + XHR сможет в кроссдомен.
> Btw, не знаю относится ли это к тебе, но в багтрекере грисманки висит открытым: FileReader API is unusable on Greasemonkey #2034
Ну не знаю у меня так то работает просто без unsafeWindow в сандбоксе вот эту вот фигню писал.
>> No.58212 Ответ
>>58211
А чего ты require директиву не используешь? Ну и билдер какой? То, что на выходе получается это же дело десятое.
>> No.58213 Ответ
>>58199
> Надо бы уходить из юзерскриптов в расширения, а то разработка превращается в странное колдовство.
Расширения для Хрома ставятся только из маркета. Регистрация в гугл-маркете разовая, стоит 5 баксов и оплачивается только пластиком (оплата через гугл-кошелёк, с подтверждением личности).

Можно конечно ставить такие расширения в режиме разработчика, но тогда полностью пропадает фишка автообновлений, всё надо делать руками и вообще не удобно получается.

И расширений будет два - для Лисы и для Хрома. Они пишутся немного по разному и придётся как-то это всё совместить чтоб не писать натуральным образом два разных скрипта.

Можно сделать как Стёпка - писать юзерскрипт и его конверить в расширения. Но тогда какой смысл в этом зоопарке? Ну или полностью забить на Гугл Хром и Оперу, ими ведь никто не пользуется.
>> No.58214 Ответ
>>58213
> Степка
Кто такой?
>> No.58215 Ответ
Файл: 5754767b2c9b44a4d47cdfcadd4f8d5c.png
Png, 165.46 KB, 400×400 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
5754767b2c9b44a4d47cdfcadd4f8d5c.png
>>58214
Шинкуфаг.
>> No.58220 Ответ
>>58213
> И расширений будет два - для Лисы и для Хрома.
Лиса теперь поддерживает https://wiki.mozilla.org/WebExtensions вся разница (ну почти вся) в добавлении в манифест хромого расширения вот такого вот объекта в минимальной комплектации:
"applications": {
	"gecko": {
		"id": "charminghanabira@dobrochan.com"
	}
},
и там и там проверил - все работает, сам хром на наличие такой строки ругается но расширение таки цепляет, так что сильно что то подгонять под кого то не придется. Обновления конечно проблема, но разве нет возможности из посторонних источников ставить? Я помню в сафари пользовался каким то платным расширением для блокировки скриптов и подключения своих, устанавливал с левого сайта и оно вроде обновлялось.

прописывание GM_xmlhttprequest в grand ломает нахер все, причем в разных браузерах по разному. В хромом например фаилридер вместо DataURL выплевывает порченные данные (а может быть это GM_xhr присылает порченные блобы - я не проверял), из за Uint8Array = unsafeWindow.Uint8Array в фоксе ломается ридер, а в хроме без него Uint8Array ругается на длинну и постоянно срет в консоль какие то ошибки о каких то недопустимых символах типа "S" ">", не говоря уже о том что ни Uint8Array = unsafeWindow.Uint8Array ни grant unsafeWindow не помогают заработать отвалившемуся BlobViewer'у, которым скрипт метадату файлов читает и извлекает обложки.
Вот так вот, переломал весь фаил аплоадинг с превью ради него и постинга файлов по url, а оно сволочь неюзабельно.

Короче не получится его использовать, обходите cors отключением опции в about:config либо расширениями которые его обходят (пихают анонимусов в заголовки) если надо файлы добавлять по url.

Потом может быть дорастут руки полноценно перенести скрипт в расширение, а в нем кроссдоменные запросы из коробки. (по крайней мере в хроме точно, а firefox что то никак всмысле все равно cors все блокирует, или я просто не понял что там в права надо вписать что бы оно так же работало)
> Ну или полностью забить на Гугл Хром и Оперу, ими ведь никто не пользуется.
Вот как раз те кто ими пользуются просят расширение.
>>58212
> А чего ты require директиву не используешь? Ну и билдер какой? То, что на выходе получается это же дело десятое.
Не понял, ты в смысле думаешь я как белый человек из нескольких скриптов его собираю каким нибудь модулем для Node? Нет, ты что, я все руками как автомобили Бентли
Post was modified last time at 2015-11-04 00:41:07
>> No.58221 Ответ
>>58220
> Uint8Array = unsafeWindow.Uint8Array
А ты прям вот так делаешь или обертываешь? Когда напрямую присваиваешь еще же положено .bind делать.
сам я с этим не возился, так говорю, вдруг релевантно
>>58220
> все руками
Хоть бы зависимости и стили в мету вынес, а то как же так то.
>> No.58222 Ответ
>>58220
> Лиса теперь поддерживает
> хром на наличие такой строки ругается
Ну, пока что-то не очень это выглядит.
> прописывание GM_xmlhttprequest в grand ломает нахер все
Ты что, все запросы на него поменял что ли? Используй его только там где надо.

Вот пример: https://gist.github.com/tranquility-yuki/2567764b5136c0d1aecb
Внизу страницы появится кнопка "Get URL". Кликаешь её, вставляешь урл картинки в диалог и жмёшь окей. Картинка загрузится и вставится в страницу рядом с кнопкой. Тамперманки и Гризманки - полёт нормальный, никаких ошибок в консоли, картинки любые вставляются.

>>58221
> Хоть бы зависимости и стили в мету вынес, а то как же так то.
Это ты случаем не про @require и @resource? Очень сомнительные опции.
>> No.58223 Ответ
>>58222
Чем сомнительные?
>> No.58224 Ответ
>>58223
Зареквайришь ты скрипт сторонний, а он через год пропадёт или обновится и сломает совместимость - всё, скрипт не работоспособный. А ты на свой скрипт забил и не найти тебя чтоб ты поправил.

Нет, можно конечно реквайрить с надёжных CDN и по версии, чтоб всё было чётко. Но что если у пользователя эта CDN забанена фаерволлом потому что компания зла?

А так надёжней впилить нужный скрипт прямо в свой и забыть про него вообще.

Ресурсы же надо запрашивать через GM_getResourceText/GM_getResourceURL. Ну и зачем это, если можно опять же вшить прямо в скрипт это всё в виде Base64? Плюс всё выше описанное про сторонние скрипты. Тут ведь не десятки мегабайт используются. Пара картинок дай бог на пять килобайт. Так что зашил и забыл.

В итоге получается скрипт в виде одного единственного файла, который можно при необходимости взять и выдернуть из гризманки и поделиться. Сам помню как на доброчане кто-то реквестил какой-то старый скрипт, в итоге он нашёлся у кого-то в гризманки и его залили сюда в архивчике.

Так что на мой взгялд лучше сделать себе нормальный сборщик скрипта из сорцов, чем использовать эти две дириктивы.
>> No.58225 Ответ
>>58224
Можно в репу сунуть и оттуда брать. По мне так через чур надуманно ты. Хотя про билдер это да, лучший вариант.
>> No.58226 Ответ
>>58225
> чересчур
Да что ты будешь делать. Стыд.
>> No.58227 Ответ
>>58225
А если ты обидишься на доброчанек и репу удалишь?

Конечно надуманно, но как по мне лучше вариант который действительно надёжен, чем тот где могут возникнуть проблемы.
>> No.58228 Ответ
>>58227
> А если ты обидишься на доброчанек и репу удалишь?
В этом случае он совершенно не заинтересован в дальнейшем существовании скрипта, очевидно же. А значит и облегчать его использование в такой ситуации смысла нет.
>> No.58229 Ответ
Файл: 345Н56374654.png
Png, 191.66 KB, 1175×1110 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
345Н56374654.png
>>58221
> А ты прям вот так делаешь или обертываешь? Когда напрямую присваиваешь еще же положено .bind делать.
На прямую в глобальном поле имен, я обычно не делаю того чего совсем не понимаю, а с bind честно сказать я читал документация но так и не понял что и зачем и как его надо использовать.
Понял только что через него какой то конкретной функции в качестве this (который будет внутри функции использоваться) можно передать что то конкретное
function test() {
   console.log(this.msg)
}

var test1 = test.bind({msg: 'test1'})
var test2 = test.bind({msg: 'test2'})

test1()  //'test1'
test2()  //'test2'
Но пока мне это нигде особо еще не пригодилось, хотя наверно штука полезная.

С Uint8Array я тем более не знаю как его использовать - что ему передавать то?
Uint8Array === unsafeWindow.Uint8Array //false
Uint8Array = unsafeWindow.Uint8Array
Uint8Array === unsafeWindow.Uint8Array //true

Uint8Array = unsafeWindow.Uint8Array.bind(???)
> Хоть бы зависимости и стили в мету вынес, а то как же так то.
Ты лучше свое виденье объясни, прямо, как бы ты сделал, а то я же начал с маленького и просто добавлял и добавлялб о смене подходов даже и не задумывался просто.
>>58222
> Ну, пока что-то не очень это выглядит.
Всмысле в девелоперском режиме показывает [Ошибки (1)] напротив скрипта, но главное оно работает и кросс доменные запросы есть и вообще одни плюсы.
> Ты что, все запросы на него поменял что ли? Используй его только там где надо.
Я ничего на него не менял, у меня вот такая функция (я через нее файлы запрашиваю):
	function getUrlData(TYPE, Source, Fn) {
		if (typeof GM_xmlhttpRequest !== 'undefined') {
			new GM_xmlhttpRequest({
				method: 'GET',
				responseType: TYPE.toLowerCase(),
				url: Source,
				onload: function(gm_xhr) {
					if (gm_xhr.readyState !== 4)
						return;
					if (gm_xhr.status === 200) {
						Fn(gm_xhr.response, gm_xhr.finalUrl, gm_xhr);
						Fn = null;
					}
				}
			});
		} else {
			var dtReq = new XMLHttpRequest();
				dtReq.responseType = TYPE.toLowerCase();
				dtReq.onload = function() {
					if (this.readyState !== 4)
						return;
					if (this.status === 200) {
						Fn(this.response, this.responseURL, this);
						Fn = null;
					}
				};
				dtReq.open('GET', Source, true);
				dtReq.send(null);
		}
	}
Ломает скрипт не сам по себе GM_xmlhttpRequest, а то что в заголовке, в строке //@grand что то добавлено кроме none, и, я так понимаю, оно включает песочницу и все баги гризманки переносятся на скрипт.
> Кликаешь её, вставляешь урл картинки в диалог и жмёшь окей. Картинка загрузится и вставится в страницу рядом с кнопкой. Тамперманки и Гризманки - полёт нормальный, никаких ошибок в консоли, картинки любые вставляются.
Пикрелейтед справа видео загруженное по урл (отправлять не пробовал, возможно тоже ушатанное), потом идет картинка запощенная с локального диска, потом png картинка загруженная по урл (по превью наглядно видно что данные испорчены), потом jpg забуксовавшая на удалении exif. Стоит выставить обратно //@grand none и все становится нормально. В фоксе аналогичный набор диковиных проблем которые происходят непонятно где и непонятно почему.
Я в коде ничего менять конечно не буду, тоесть пусть оно все так остается, но по умолчанию будет //@grand none а если кому надо добавят вместо него //@grand GM_xmlhttpRequest //@grand unsafeWindow но только за баги я не отвечаю, либо как уже говорил можно поставить расширение типа CORS disabler которые есть на оба браузера, либо в firefox отлючить CORS в about:config.
>> No.58230 Ответ
>>58229
> Ломает скрипт не сам по себе GM_xmlhttpRequest, а то что в заголовке, в строке //@grand что то добавлено кроме none, и, я так понимаю, оно включает песочницу и все баги гризманки переносятся на скрипт.
> по умолчанию будет //@grand none а если кому надо добавят вместо него //@grand GM_xmlhttpRequest //@grand unsafeWindow но только за баги я не отвечаю
Ну как хочешь. Я думал тебе интересно.
>> No.58232 Ответ
Файл: c5203d37cde4f39f043f0fe855bef77b.webm
Video 450x360 x 0:01:56; 9.4 MB - Click the image to play video
c5203d37cde4f39f043f0fe855bef77b.webm
>>58230
Да мне то интересно просто с ним то одно то другое не работает.
Лучше вот это отдельно накатить: https://addons.mozilla.org/en-US/firefox/addon/cors-everywhere/?src=search
>> No.58233 Ответ
>>58229
Таки да, все шо делает бинд это меняет this (контекст), то есть у unsafeWindow.someMethod() при вызове this это unsafeWindow, а когда этот метод присваиваешь напрямую контекст меняется на твой window в сандбоксе грисманки, так что при присваивании надо контекст сохранить unsafeWindow.someMethod.bind(unsafeWindow). Удобно например алиас на принты log = console.log.bind(console).
> свое виденье объясни
Сам я от нежелания ставить gulp/grunt обычно пишу баш/питон скрипт на 5-10 строк типа cat meta stuff stuff main > build.js. Для стилей дополнительно еще переводы строк резать. Если охота с одним файлом, удобнее всего будет вшить в начало сжатыми однострочниками, чтобы не мешали:
// DEPS //////////////////////

// somelib.min.js ver 1.5
!function(a,b){"object"==typeof module&&"obje.....
// anotherlib.min.js ver 9.1
!function(a,b){"object"==typeof module&&"obje.....

// main.css
var css_main_raw = 'body {...';

//////////////////////////////
>> No.58234 Ответ
>>58232
Ну вот же решение твоих проблем >>58210 эта функция починит тебе файл ридер. И по хорошему это должно быть единственным местом где у тебя используется unsafeWindow.

А то получается "я сделал прикольную фишку, но для её использования нужен костыль который ломает безопасность браузера. Ну или надо самим включить опцию которая ломает скрипт. Если что - ССЗБ." Не круто же.
>> No.58235 Ответ
>>58234
> Ну вот же решение твоих проблем
Да наебался я с ним уже, проблем он не решает, отваливаются фреймворк aurora и metadataaudioparser:
До
`Accessing TypedArray data over Xrays is slow ... consider using Components.utils.cloneInto().`

После
`parseAudioMetadata: TypeError: this.view.getUint8 is not a function`

aurora:
`Permission denied to access object`
В хроме его надо запрещать ибо оно там не работает, в домене добрачана не использовать, еще не хватало костыли/подпорки подсовывать везде.

Еще была то херня с ArrayBuffer length и permissions то там то сям.

Нахуй кароче такое программирование.
>> No.58236 Ответ
>>58235
Ты ведь про HanabiraMagicExtension?
>> No.58237 Ответ
>>58235
Пуш апдейт с этой фичей как есть, я может тоже потыкаю и патч пришлю как время будет.
>> No.58254 Ответ
>>58229
Вау, дизайн достаточно неплохой, когда апдейт будет?
>> No.58261 Ответ
Файл: talking_captcha.png
Png, 0.74 KB, 226×15 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
talking_captcha.png
>>58254
Это версия скрипта для самых непримеримых консерваторов, дизайна в нем нет и не предвидется - там все стандартное, стандартные кнопки стандартные поля ввода, и даже небо и даже аллах. Если ты про то что сверху то это стандартный (системный всмысле) алерт бокс в опере, если нравится то можно в принципе его воспроизвести, только я думал куда нибудь сюда же в форму запилить, а то я как то не очень люблю подходы вроде нажал здесь а раскрылось где то там.

Апдейт скоро, что же касается упрощенной версии то её уже обновил, в нее добавилась подгрузка постов на нулевой, там же сворачивание/разворачивание тредов и просмотр архивных, так же разметка текста по горячим клавишам, так как не вижу смысла от нее там отказываться, редактирование постов ну и в общем все самые такие функции.

Из новых (которые уже успел перенести и в основной): возможность загрузки файлов по урл, рендеринг превью для текстовых файлов и убирание имени файлов по клику на название файла в превью, а то иногда надо например что бы один фаил оригинальное название имел а у второго лучше бы убрать, теперь это можно как можно и вернуть к оригинальному переименованные (может быть и отдельную настройку на это стоит убрать вовсе, а то и убрать обе, посмотрим) естественно автопереименование при отправке убрано то есть файлы отпрявятся с теми названиями которые видны в превью.

>>58236
Конечно, ведь в SME нет ни авроры ни читалки метадаты аудио.
>>58237
Слишком много наломал в основном что бы комитить так как есть, потерпи немного.
>> No.58262 Ответ
>>58261
Ты, на мой взгляд, чересчур много стилей рисуешь в своем скрипте (особенно кол-во box-shadow).
> потерпи немного
Не торопись, не торопись.
>> No.58264 Ответ
Файл: 67958795798579.png
Png, 388.13 KB, 1356×1167 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
67958795798579.png
>>58233
> Для стилей дополнительно еще переводы строк резать. Если охота с одним файлом, удобнее всего будет вшить в начало сжатыми однострочниками, чтобы не мешали
У меня перенос строк стоит, да и скрипты то если честно не так уж и мешают, css бы вот раздельный хорошо бы, только без сборки а то я же постоянно что то делаю и тут же проверяю, собирать не очень удобно.
>>58262
Так в основном одних box-shadow и напихал, больше то ничего нельзя иначе со стилями будет не совместимо. На самом деле я когда то еще вначале напилил несколько разных форм, а сейчас просто добавляю элементов к уже существующим, по просьбе одного анона я даже вынес их из основного их можно вовсе убрать убрав нужную переменную и будет как бы стандартный стиль, либо можно отключать оформление каких то отдельных элементов, например кнопок или тени картинок итд. Согласен что это не очень удобно, может когда нибудь дорастут руки до еще одного элемента меню, в котором будет просто одно большое поле и кусок цсс отвечающий за оформление, из которого можно будет убрать ненужное/что то поменять или даже добавить своего и оно запомнится.
>> No.58267 Ответ
>>58264
Без сборки, увы, стили вынести не выйдет. Либо создать отдельно файл в репе и инжектить стиль с урла при запуске скрипта, но это еще менее удобно и как выше оговорено несколько сомнительно (а еще и с кешами дурка).
Можно скрипт симлинком в папку грисманки сунуть, упрощает процесс сборки и тестирования.
> перенос строк стоит
Зачем видеть этот страх, отключай.
>> No.58268 Ответ
>>58264
> собирать не очень удобно.
Чем же? Жмякнул какое-нибудь ctrl+b и оно сбилдилось за секунду-полторы. А в браузерах вместо полного скрипта ставишь такой:
// ==UserScript==
// @name    		MagicScript Extension for Dobrochan Imageboard
// @include 		*dobrochan.*
// @run-at  		document-start
// @version 		1.5.5
// @grant   		none
// @require      file:///R:\pragrameng\imijbords\dobrochan\extensions\my_super_script.user.js
// ==/UserScript==
Пока ты из редактора в браузер альт-табатся будешь, оно уже всё соберётся, останется только F5 нажать.

Ну и за одно можно перед сборкой ещё какой-нибудь jshint гонять, чтоб он тупые ошибки заранее находил.
>> No.58275 Ответ
Скрипто-няша, а ты можешь запилить скрывалку отдельных постов нормальную?
>> No.58281 Ответ
>>58275
Запилить то можу, но только это сильно потом. Сначало текущее надо доделать.
>>58267
> Зачем видеть этот страх, отключай.
Ну как, а свой код, что бы за края ничего не уезжало, а то так скролить не удобно.
>>58268
> Ну и за одно можно перед сборкой ещё какой-нибудь jshint гонять, чтоб он тупые ошибки заранее находил.
Вот это полезно, лишь бы оно на табы вместо пробелов не ругалоось и другой идиотизм вроде отсутствие скобок после if () а то знаю я эти проверялки синтаксиса.
>> No.58282 Ответ
>>58281
Если свой код уезжает за края дисплея, это сливай воду.
>> No.58283 Ответ
>>58282
Почему за края дисплея? За края окна только.
>> No.58294 Ответ
>>58281
кстати критически не хватает мигающего фавикона с уведомлялкой. Как будет возможность, то припели.
>> No.58295 Ответ
>>58281
А вот еще: почему-то видеоплеер не фурычет, да и превью ссылок не хотят подгружаться. Почини-ка пожалуйста.
>> No.58300 Ответ
Файл: 56534623562.png
Png, 89.34 KB, 847×806 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
56534623562.png
>>58294
> кстати критически не хватает мигающего фавикона с уведомлялкой.
Но ведь блин индикатор о новых постах в фавиконе и звуковые уведомления есть, неужели так нужны эти кукловые
> почему-то видеоплеер не фурычет, да и превью ссылок не хотят подгружаться. Почини-ка пожалуйста.
Опять триал закончился, вот чем надо заниматься то, на другой сервис перевязываться да движок картинок пилить с макросами.
Пока что по этому поводу могу посоветовать вот что:
предлагаю зарегистрировать себе персональный ключь вот здесь http://embed.ly/ его пришлют на почту пикрелейтед, он ограничен 5000ми запросов в месяц, предлагаю записать его в localStorage localStorage.setItem("APIKey", "9cccaccb6ddc490a97bcd2ba6c282191") //-- ключь заменить на свой и забить в консоль браузера в обновлении я сделаю так что если у вас есть свой персональный ключь в localStorage то он будет подменять стандартный (тоесть вот этот, лимит которого исчерпан, и он будет неактивен еще где то две недели). Можно так же в текущем найти строчку ?key=9cccaccb6ddc490a97bcd2ba6c282191и заменить на ?key=свой_ключь если нужно прямо сейчас.
Конечно это временное решение, пока я не пока я не перевяжусь на другой сервис, но когда это все будет еще.
>> No.58365 Ответ
У меня будет реквест к тому доброанону, который монитор сделал: можешь сделать так, чтобы треды которые ты скрыл не отображались в мониторе.
>> No.58368 Ответ
>>58365
Оно так и должно быть, кажется. Интервал обновления в активном состоянии 8 минут (если были новые посты на доске), если скрыл через кнопку или чем-то, что скрывает правильно (нативно доброчановским вызовом), то при следующем опросе скрытых тредов быть не должно.
Можешь самостоятельно обновить временно добавив какую-нибудь доску.
>> No.58370 Ответ
>>58368
А те что на автоскрытия юзерскриптами? Оно вообще не поддерживается? Или все-таки, как-нибудь можно это сделать?
>>58300
Вопрос к скрипто-няше: не хочет отображать форму ответа, а также ломаются в конце треда скрипт здесь: >>cp/950
>> No.58372 Ответ
>>58370
Зависит от юзерскрипта, те про которые в оп-посте написано "нативное скрытие" должны правильно работать. Если какой из них используешь, пиши, я посмотрю.

Алсо, пишу на всякий случай - неугодные треды висят в мониторе до тех пор пока твоя скрывалка их, собственно, не скроет, а для этого предполагается что ты посетишь ту борду, где они расположены. Метод обхода этого дела существует, но оочень некрасивый, очень!

У меня в планах фильтры, но это оочень жирная фича, ожидается оочень не скоро.
>> No.58374 Ответ
>>58372
Пользуюсь магикой. Это Hanabira magic extension, если что.
> неугодные треды висят в мониторе до тех пор пока твоя скрывалка их, собственно, не скроет, а для этого предполагается что ты посетишь ту борду
Посещал их и не раз. И даже, сегодня несколько раз. И все равно оно отображает их.
>> No.58377 Ответ
>>58370
> не хочет отображать форму ответа, а также ломаются в конце треда скрипт здесь: >>cp/950
Глянь что в консоли пишет когда кнопку нажимаешь и форма не открывается. И кто где ломается же?
>>58374
Через спелы HanabiraMagicExtension пока не нативно скрывает, нативно только через кнопку "скрыть" в меню OP поста.
>> No.58378 Ответ
>>58374
Как видишь в посте выше маджика не нативно скрывает, вини опа за дезинформацию. В ближайшее время с этим ничего поделать не смогу, извини.
>> No.58380 Ответ
Файл: 09b2c84143fff05b8...
Png, 326.47 KB, 1600×900
edit Find source with google Find source with iqdb
09b2c84143fff05b8bfb71c6682262b9.png
Файл: 0ea508a22733c5494...
Png, 1.63 KB, 219×15
edit Find source with google Find source with iqdb
0ea508a22733c5494265c4c79f711acf.png

>>58377
> Глянь что в консоли пишет когда кнопку нажимаешь и форма не открывается. И кто где ломается же?
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data HanabiraMagicExtension.user.js:434:17
load settings Object { boards: Array[3] } Dobrochan_Monitor.user.js:72:5
load storage Dobrochan_Monitor.user.js:94:5
resetup boards Array [ "b", "a", "u" ] Dobrochan_Monitor.user.js:111:5
update view (settings lists) Dobrochan_Monitor.user.js:717:5
active started Dobrochan_Monitor.user.js:297:5
[LB] Cannot parse URL: view-source:file:///C:/Users/Denis/AppData/Roaming/Mozilla/Firefox/Profiles/wrrhf3u7.default/gm_scripts/MagicScript_Extension_for_Dobrochan_Imageboard/HanabiraMagicExtension.user.js
[LB] Cannot parse URL: view-source:file:///C:/Users/Denis/AppData/Roaming/Mozilla/Firefox/Profiles/wrrhf3u7.default/gm_scripts/MagicScript_Extension_for_Dobrochan_Imageboard/HanabiraMagicExtension.user.js
TypeError: this._tab is null
> Через спелы HanabiraMagicExtension пока не нативно скрывает, нативно только через кнопку "скрыть" в меню OP поста.
А когда сможешь реализовать? Потому что это первая маст хэв функция для любого нормально работающего с API движком скрипта.
>>58378
А какой тогда на данный момент точно поддерживает нативное автоскрытие?
>> No.58381 Ответ
>>58380
Пункт 2 - DobroHider, не знаю, что там про неработоспособность написано, думаю он норм.
Пункт 1 - скрывалка из доброскрипта (если в нем опция "Оставлять заголовок" отключена).
>> No.58382 Ответ
Я вот тут подумал, что было бы неплохо, если бы скриптоняша добавил возможность ajax-обновление счетчика постов, может быть тогда, он бы стал более точный.
>> No.58385 Ответ
Файл: hme_trip.png
Png, 15.90 KB, 665×257 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
hme_trip.png
Вот какой баг в HanabiraMagicExtension - при подгрузке новых сообщений теряется трипкод а ещё ипхеш и флажок.
>> No.58386 Ответ
>>58385
Да есть такая тема. Ты попробуй перезагрузить страничку, тогда оно должно снова появится.
>> No.58387 Ответ
>>58386
Понятно что появится, но речь-то про автообновление. А то сидишь в треде с анонимусами, а на следующий день заходишь и оказывается что ты один в треде был без трипкода.
>> No.58389 Ответ
>>58381
> DobroHider, не знаю, что там про неработоспособность написано, думаю он норм.
Сам по себе он работоспособен, но его установка сопряжена с некоторым неудобством, которое связано с тем, что его исходный код хранится в Доброчане, который в свою очередь не умеет отдавать залитые js-файлы в виде plain text, что не позволяет осуществить привычную процедуру установки по прямой ссылке, знакомую нам по другим юзерскриптам. Вот и приходилось изворачиваться с ручным копированием сорцов в плагин юзерскриптов. Однако, долгое время это был едва ли не единственный способ пройти сраный дум на найтмаре, как и сказано в оп-посте, и его установка имела большой смысл, даже несмотря на упомянутые неудобства. Но теперь, после обновления скрипта Dobrochan Thread Hider из состава доброскрипта, которое принесло возможность точно так же скрывать треды по регулярным выражениям, DobroHider можно считать устаревшим, потому что обновлённый Dobrochan Thread Hider теперь умеет всё то же самое и даже немного больше, и к тому же его можно установить стандартным способом безо всяких изворотов. Как-то так.

>>58385
>>58387
Насколько я понимаю, всё дело в том, что API Доброчана не отдаёт данные о трипкодах и флажках. А MagicExtension получает новые посты именно через него, не обновляя страницу целиком.
>> No.58390 Ответ
>>58380
Похоже на какой то конфликт скриптов.
Попробуй отключить Dobrochan_Monitor.user.js и посмотри будет ли то же самое
> А когда сможешь реализовать? Потому что это первая маст хэв функция для любого нормально работающего с API движком скрипта.
Как только допилю текущее (скоро) займусь плотно движком автоскрывания и реализую.
Я сам уже думал об этом.
>>58382
Он и так обновляется через ajax же. Если ты про тредометр (постов/час) то его никак.
>>58385
Скрипт собирает посты из json данных приходящих с сервера, в них к сожалению нет данных о geo метках, ипхэше и трипкодов.
В первозданном виде посты подгружает другой скрипт https://github.com/OpenA/MagiCcode/raw/master/Dobrochan/HanabiraSimple[...]er.js если очень нужны оригинально выглядящие посты и не особо нужна подгрузка постов снятых с пре-ерации, а так же мультимедия, скрывальщик тредов и постов, свистоперделки то рекомендую попробовать его.
>> No.58391 Ответ
>>58390
main:1639
	function hooElements(elems) {
		_z.each(elems, function(el) {
			switch (el.classList[0]) {
				case 'fileinfo':
					var a = el.firstElementChild, name = getPageName(a.href);
					_z.setup(a, {'class': 'download-link', 'download': name, 'title': name});
					break;
На этом >>cp/1899 посте var a = el.firstElementChild присваивает <em>.
>> No.58392 Ответ
>>58391
А, понятно.
> На этом >>cp/1899
Eще и собирает их не правильно.
>> No.58396 Ответ
>>58390
> Попробуй отключить Dobrochan_Monitor.user.js и посмотри будет ли то же самое
Сделал. Не помогло.
>> No.58440 Ответ
>>58385
Еще один баг:
Зачеркивание без скрипта:
Пример зачеркивания
Зачеркивание той же области при помощи скрипта:
Пример зачеркивания
>> No.58441 Ответ
Файл: 435325463426.png
Png, 15.94 KB, 794×82 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
435325463426.png
>>58440
Тоже не баг, юзай тройную тильду (два раза кнопку зачеркивания или два раза клавишу тильды по выделенному тексту) - пикрелейтед
>> No.58448 Ответ
>>58441
Надо ввести в скрипт это тоже, что-ли. Чтобы удобнее было.
>> No.58488 Ответ
Когда апдейт и фикс багов скрипто-няша?
>> No.58499 Ответ
>>58448
Так ведь оно и введено, а точнее сразу так и сделано было.
Ну или я просто тебя не понял.
>>58488
Можно в принципе прямо сейчас
>> No.58500 Ответ
Файл: 7e7daaecb519b46dc...
Png, 342.33 KB, 1544×905
edit Find source with google Find source with iqdb
7e7daaecb519b46dc9ce478fd60f2373.png
Файл: 0b7b51311d0ca0897...
Png, 795.86 KB, 1455×1075
edit Find source with google Find source with iqdb
0b7b51311d0ca0897a41d848f05b92b2.png

https://github.com/OpenA/MagiCcode/raw/master/Dobrochan/HanabiraMagicE[...]er.js
  • Сильно переделал алгоритмы поведения превью постов, теперь по Esc закрывается не тупо последний открытый, а тот который слоем выше, для этого потребовалось разделить цепочки прикрепленных и не прикрепленных, так что не прикрепленные теперь на Esc вообще не реагируют (им это впрочем и не нужно), а прикрепленные (если еще где то остались на странице) не закроются автоматически если убрать мышь с не прикрепленных.
    • Пытаясь выполнить старые реквесты "что бы в верх не ползли" и "что бы к краю не жались" решил подсмотреть как оно сделано в кукле и в итоге попиздил алгоритм целиком, потому что работает просто шикарно на самом деле.
  • Все плавающие элементы преведены к общему z-index и вытаскиваются по нажатию реквест >>58050 .
  • плавающая форма реквест >>58045 .
    • Что бы не впиливать настройку добавил такой уголок с краю формы - за него нужно потянуть и форма вытащиться и так и останется в таком положении, если потянуть не достаточно сильно то вернется на то же место. Перемещать плавающую форму по окну не обязательно за этот уголок - можно за любое место. Что бы вернуть обратно нужно кликнуть два раза на уголок и форма приатачится к тому посту, у которого последний раз нажимали кнопку ответа.
  • Новая смотрелка картинок.
    • В посте - изображение масштабируется до макс. размеров в 500px (по ширине или высоте), если реальный размер изображения (по ширине и высоте) меньше 500, то раскрывается 100%, если размер изображения (по ширине или высоте) при этом меньше 200px то изображение масштабируется до 200px. Изображение можно масштабировать вручную потянув за правый нижний угол, (вначале планировалось масштабировать то же колесиком, но c ним напрочь ломается юзабилити).
    • По центру - в принципе почти все так же как в кукле (да и код слегка так же попизжен оттуда), за исключением того что картинка закрывается не кликом на эту же картинку, а наоборот - по клику в области за пределом картинки.
    • Предпросмотр следующих/предыдущих картинок делать не стал, слишком геморно да и наверно излишне свистопердельно, перемещаться по картинкам можно стрелочками (открытыми как в посте так и в центре)
    • Нанесение текста на картинку (то есть макро - пикрелейтед) в процессе разработки.
  • починено >>58392 .
  • Возможно что то еще, но уже не помню
https://soundcloud.com/hitboxx/hitboxx-scorpio-win-vocal?in=hitboxx/se[...]le-on
>> No.58502 Ответ
Файл: Q9IIj4PNmbE.jpg
Jpg, 59.41 KB, 648×864 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
Q9IIj4PNmbE.jpg
>>58500
> Пытаясь выполнить старые реквесты "что бы в верх не ползли" и "что бы к краю не жались" решил подсмотреть как оно сделано в кукле и в итоге попиздил алгоритм целиком, потому что работает просто шикарно на самом деле.
Джва года ждал, пока ты это сделаешь, няша. Наканецта. Можно полностью переезжать с куклы на твой скриптец.
Добра тебе!
>> No.58504 Ответ
>>58500
Потестил. Всё работает.
> Изображение можно масштабировать вручную потянув за правый нижний угол
А вот это нет. Уголок не перетаскивается. А при клике меняет масштабирование, как и при обычном клике по картинке.
>> No.58505 Ответ
Файл: 8725d8800fc0dfde1570fc975bc05831.jpg
Jpg, 277.02 KB, 850×1224 - Нажмите на картинку для увеличения
edit Find source with google Find source with iqdb
8725d8800fc0dfde1570fc975bc05831.jpg
>>58500
Офигенно же. Добра тебе, скрипто-няша. Только вот по url не хочет добавлять картиночку никак. В остальном пока жуков не заметил. Если увижу, то отпишусь тебе.
>> No.58507 Ответ
Файл: 3423725950c3c7c70...
Jpg, 88.94 KB, 748×187
edit Find source with google Find source with iqdb
3423725950c3c7c703e0de0d70e16cd9.jpg
Файл: 60978ffaa9e581c7b...
Jpg, 101.80 KB, 650×241
edit Find source with google Find source with iqdb
60978ffaa9e581c7b73ef227423231b6.jpg

>>58500
А когда в этом скрипте обновляется счетчик постов? Например, сейчас в треде появились новые посты, но счетчик не поменялся. Если обновить страницу, то меняется, но при подгрузке новых постов, автоматической или ручной, счетчик опять откатывается на предыдущее значение.

Я правильно понимаю, что при клике меню "Пожаловаться" откроется форма ответа в последний Модераторам тред?

Можно ли добавить в автоскрытие изображения?

Может раньше предлагалось уже - можно ли сделать функцию быстрого автоскрытия по картинке/имени/тексту через отдельное меню, как в кукле? Пикрелейтед.

Вообще просто офигенный скрипт, спасибо тебе.
>> No.58508 Ответ
>>58507
> А когда в этом скрипте обновляется счетчик постов? Например, сейчас в треде появились новые посты, но счетчик не поменялся. Если обновить страницу, то меняется, но при подгрузке новых постов, автоматической или ручной, счетчик опять откатывается на предыдущее значение.
Вот смотри: при обновлении страницы у тебя 320 постов - это он тупо взял да и сосчитал сколько их document.getElementsByClassName('post').length, а уже потом, при первичном обращении к серверу происходит следующая штука: доброчан присылает значение post_count: 318, скрипт смотрит - здесь же еще 2 поста должно быть. Было 320 стало 318. Опять спиздили. Хуйня какая то. сервер утверждает что постов в треде меньше (сервер же не может лгать), скрипт тянет весь тред целиком (поскольку тянет его в json это происходит очень быстро) запускает скорую проверку даже не так - просто сопоставляет количество постов в json json.result.posts.length c постами на странице, если их полностью одинаково то скорее всего какие то твои посты ожидают проверки и видны только тебе, скрипт запоминает результат {постов: 318, на проверке: 2} отображает в счетчик 318 (+2 на пре-ции) и при следующей проверке это учтет и не станет уже перепроверять весь тред, если что то изменится (например один твой пост одобрят), то изменится и значение post_count: 319 приходящее с доброчана и если это не просто новые посты добавились, то скрипт все перепроверит/пересчитает (вдруг не твои посты раскрылись а чужие) и будет 319 (+1 на пре-ции), ап у других пользователей (который твой пост до этого не видели) он подгрузится прямо в том месте, где он должен располагаться штатно.
> Я правильно понимаю, что при клике меню "Пожаловаться" откроется форма ответа в последний Модераторам тред?
Да, теперь скрипт об этом пишет прямо в заголовке - появляющийся с опозданием номер треда как раз индикатор того что он его поискал и нашел. Она независима от основной формы.
> Можно ли добавить в автоскрытие изображения?
> Может раньше предлагалось уже - можно ли сделать функцию быстрого автоскрытия по картинке/имени/тексту через отдельное меню, как в кукле? Пикрелейтед.
Хорошо, я помедитирую над этим, но только это сильно потом, после того как скрытие тредов/постов допилю до рабочего
>>58505
Добавление по url с других доменов блокируется CORS (ебаная политика безопасности браузеров), обойти ее можно следующими способами:
a) поменять в заголовке скрипта //grand none на //grand GM_xmlhttpRequest но возможны будут глюки в работе скрипта, а на Chrome и родственных ему браузерах вообще добавлять не рекомендую тк во первых будут и глюки и работать добавление файлов все равно не будет.
б) Использование расширений браузера для обхода CORS (типа CORS everywhere), но из за них пострадает безопасность.
  
юки-кун меня уже отхуесосил за то что добавляю фичу которая из коробки не работает, но пилить подпорки под GM_xmlhttpRequest, честно, нет желания совсем.
Для картинок в принципе существует обходной путь - получение dataURL через Canvas, для поддерживаемых браузером Audio и Video скорее всего аналогичный путь (через какой нибудь там AudioContext) тоже имеется. Займусь пожалуй этим прямо сейчас, а то действительно не дело.
>>58504
> Уголок не перетаскивается. А при клике меняет масштабирование, как и при обычном клике по картинке.
ОС? Браузер? И на всех ли не работает или только на каких то конкретных?
>>58502
Всегда пожалуйста
>> No.58511 Ответ
>>58500
> Новая смотрелка картинок.
И тут же вопрос, как её убрать. Благодаря этой смотрелке у меня при открытии стал лагать браузер, мне мелковато на большом мониторе 500х500 и вдобавок ко всему прочему я не могу открыть одновременно больше одной картинки. Нафиг такое нужно.
>> No.58512 Ответ
>>58511
И к тому же с ней теперь не работают рейтинги-спойлеры.
>> No.58514 Ответ
> Для картинок в принципе существует обходной путь
А вот х, тоже не прокатывает

>>58511
> как её убрать
Разумеется я знал что так и будет, и конечно же не придумал никаких альтернатив.

Раскрытие в посте можно переделать в принципе на раскрытие дедовским способом, либо как то делать что бы можно было так и эдак.
>>58512
> не работают рейтинги-спойлеры.
Если ты про превращение вначале в маленькую картинку, то да, пока убрал, потому что надо нормальную уменьшенную статичную превьюшку делать, а то например гифки начинают непрерывно демонстрировать свое кино пожирая cpu
>> No.58519 Ответ
Добавил классический режим раскрывания картинок >>58511
Работает практически аналогично доброчановской смотрелке, но при этом так же умеет разворачивать мелкие изображения до 200px.

Рейтинги (как они раньше были) впилю чуть попозже.
>> No.58521 Ответ
>>58519
> Рейтинги (как они раньше были) впилю чуть попозже.
Да в принципе и так сойдёт, главное чтобы можно было открывать больше одной пикчи за раз. Окей?
>> No.58525 Ответ
>>58519
А что не так с рейтингами?
>> No.58526 Ответ
Недавно видел, что монитор обновили, что в него нового добавили, если не секрет?
>> No.58527 Ответ
>>58526
Срочно понадобилось научить на эскейп закрывать (я на тачпад перешел), заодно исправил конфликт стилей с магикой (оп-пост).
>> No.58530 Ответ
>>58508
> ОС? Браузер? И на всех ли не работает или только на каких то конкретных?
Linux, Firefox 38.4.0.
>> No.58531 Ответ
Можешь сделать опцию для возвращения доброчановского аудиоплеера? Или добавь плейлист с таймлайном к своему.
>> No.58535 Ответ
Скриптоняша, а почему ты не добавишь рейтинги к webm?
>> No.58536 Ответ
>>58535
> почему ты не добавишь рейтинги к webm?
В каком смысле? Если имеется в виду в подгружаемых постах то в последнем апдейте точно должны поддерживаться и для вебм и для всего остального (кроме аудиофайлов и архивов).
>>58531
> Можешь сделать опцию для возвращения доброчановского аудиоплеера? Или добавь плейлист с таймлайном к своему.
Опцию для возвращения дефолтного не буду делать точно, плейлист с таймлайном если честно задумывался изначально, только я думал не вручную туда треки добавлять а собирать их со страницы все списком, как папочные проигрыватели делают.
>>58530
А с последним апдейтом? Или все точно так же?
>> No.58539 Ответ
Файл: meme.webm
Video 1920x800 x 4.61 s; 1957 kB
meme.webm
Файл: snapshot25.png
Png, 201.15 KB, 1467×738
edit Find source with google Find source with iqdb
snapshot25.png

>>58536
При загрузке же.
>> No.58540 Ответ
>>58539
О, так они там должны быть, косяк однако.
>> No.58544 Ответ
>>58536
> А с последним апдейтом? Или все точно так же?
Да, не растягивается.
>> No.58545 Ответ
Починено >>58539
Исправлено >>58540

Еще хотелось бы сказать пару слов по поводу ссылки с номером поста которую анон очень просил не трогать - я ее все же функционально изменил, дело в том что родное доброчановское подсвечивание поста по нажатию на нее несколько отличается от реализации подсветки постов в скрипте и это вынуждало держать костыльный код, который проверял а нет ли на странице постов еще и с доброчановской подсветкой. Можно было бы конечно поменять на подсветку родным способом скрипта и тогда бы никто ничего бы не заметил, но если уж на что то менять то на полезное, а полезность подсветки этого же самого поста представляется сомнительной. Да, она теперь добавляет ссылки на пост в форму как и кнопка ответа, но все же отличается от нее:
  • она не перенаправляет форму в тот тред из которого пост.
  • поскольку форм существует целых три (ответа, репорта и редактирования) добавляет она их в первую найденную.
  • при необходимости указывает в ссылке доску из которой пост.
  • (возможно это лишнее) не проверяет есть ли в форме уже такая ссылка.
Так что вот, прошу понять и простить если что.
>> No.58546 Ответ
>>58544
Аппрувлю.
>> No.58547 Ответ
>>58545
> а полезность подсветки этого же самого поста представляется сомнительной
Теперь я не могу, когда пользуюсь фреймом, открыть нужный мне тред в нужном месте кликом на номер поста. Вместо этого поле постинга, если я его открою позже, будет засрано номерами поста. Поэтому и просил не трогать. Какой смысл дублировать функционал кнопки ответа вообще?
>> No.58548 Ответ
>>58547
Можно тогда сделать вот как: внутри треда пусть вставляет рефлинки, а на нулевой работает как обычная ссылка (как раньше), либо работает как ссылка только когда ни одной формы не открыто (что на нулевой что в треде).
Как больше подойдет?
> Вместо этого поле постинга, если я его открою позже, будет засрано номерами поста.
Не будет, будет добавлять только если какая то из форм открыта.
> Какой смысл дублировать функционал кнопки ответа вообще?
Она не совсем дублирует, я же написал в чем разница.
>>58546
Починил уже, промахнулся по посту малость.
>> No.58551 Ответ
>>58545
Няш, а как работает функция "Редактировать", удаляет моим паролем прошлый пост и постит новый?
>> No.58552 Ответ
>>58551
> удаляет моим паролем прошлый пост и постит новый?
Именно так, а если пост не твой, то пост отправит и напишет что неправильный пароль.
>> No.58553 Ответ
>>58548
> Она не совсем дублирует, я же написал в чем разница.
Добавь эти новые функции в меню слева. Там где редактировать.
>> No.58554 Ответ
>>58548
> Починил уже, промахнулся по посту малость.
Увеличение картинок?
>> No.58555 Ответ
>>58548
> Она не совсем дублирует, я же написал в чем разница.
Частично, но дублирует. Впрочем, тут очень хорошая пришла кому-то идея:

>>58553
Присо