Командир завёл трактор, но передачу поменять забыл, поэтому поехал на восток. К счастью, огненная стена не такая уж и горячая, а саппорт плага как всегда бесполезен, поэтому доступ как сайту (хотя и без ютуба), так и ко всем составляющим бота был быстро налажен, так что никаких проблем возникнуть не должно. Разве что, модуль jquery находится прямо на сайт, а не загружается с гугла, как раньше, и добавление новых и/или сложных функций может занять больше времени. Хотя, нахождение на 5 часов в будущем от Москвы должно всё компенсировать. С праздником драконьей лодки вас!
Добавлена команда !picture, позволяющая получить случайную картинку из гугла по вашему запросу. Так как денежки злой компании платить не хочется, используется бесплатная версия API, поэтому количество запросов в день, говорят, ограничено некоторым количестом — около 100. В связи с этим делается следующее: 1. Сервер получает ваш запрос и проверяет, не было ли уже точно такого же ранее. Если был, то загружает из файла предыдущие ссылки. 2. Отправляется в гугл просьба на получение 3-х страниц результатов (по 4 картинки на каждой). Соответственно, это будут либо страницы 0—2, либо (n+1)—(n+3), если по такому запросу уже было скачано что-то, где n — номер последней загруженной страницы. 2а. Эти 12 картинок соединяются с уже имеющимися. 3. Вам высылается случайная картинка из общего списка ссылок. 4. Новые картинки записываются в файл, вместе с номер последней страницы результатов. То есть, чтобы получать наиболее разнообразные картинки, нужно не менять текст запроса, а просто продолжать писать одно и то же.
Запилил небольшой сервачок на питоне, с которым может общаться бот! Теперь бэкапы можно делать с любой периодичностью, а не хранить все данные в localStorage браузера. Но это мелочи. Так как сервер не имеет никаких CORS ограничений, у бота теперь есть доступ ко всему интернету! Что это значит? Можно получать рандомные картинки по рандомному запросу, можно постить на двачике, можно скачивать порно, загружать его на ютуб, добавлять в плейлист и играть для всей румы — всё зависит от вашей фантазии (ну и моих рук, разумеется). Так что придумывайте фичи, пишите в !message или треде — постараюсь добавить. По поводу скробблера: за тегами никто не следит, поэтому треки, содержащие HQ HD 1800p OFFICIALE VIEDOLE и подобное, будут просто игнорироваться. (В перспективе, конечно, запилить автокоррекцию.)
Следуя словам Наполеона, запилил я скробблер сам, так как то дурацкое расширение перестало работать. Правила те же: трек больше 30 секунд, должно пройти больше половины или 4 минуты, иначе не заскробблится. Добавлена команда !noscrobble, позволяющая отключить скробблинг текущего трека (если там, скажем, с тегами полная каша). Включить обратно нельзя. Алсо, плаг наконец-таки починил удаление сообщений.
Добавлена долгожданная связка с ласт.фм! Теперь можно узнать теги или посмотреть количество проигрываний dvachbot'ом играющего исполнителя. В последнее время скробблер работает херово, то скроббля, то нет, поэтому в скором времени планирую переделать/сделать этот плагин сам.
По просьбе петровалика было добавлено оповещение об отключении цикла при большой очереди.
Починена возможная проблема работы сайта при неработающем localStorage (private browsing в сафари на айфоне, например), из-за которой нельзя было передвигаться между закладками. По многочисленным просьбам добавлена команда !iwanttocycleevenwithdjcycleturnedoff, добавляющая вас в список при выключенном цикле. Имеются ограничения. Возможны неполадки (может получиться так, что событие смены диджея отправится до того, как собственно сменится диджей, и команда с добавлением вас в список будет отправлена тогда, когда вы ещё как бы и не вышли из него, а следовательно ничего не произойдёт) — пишите в багрепорт. Алсо, если вдруг не заметили, все розовые команды в блоге кликабельны.
К сожалению, население отреагировало крайне негативно, и всё прошло совсем не так, как хотелось бы. Лично мне в этом всём интересен был лишь детектор мата, правильность его работы и возможность его обойти. Но никто даже особо и не пытался. Из полезного: в очередной раз обновлена !lastpos, теперь ваше место в очереди не теряется даже после рестарта бота. Если вы ни разу не вылетали и напишете !dc, вам будет сообщено, что последнее записанное ваше место было в 1970-ом году.
Наказатель за мат доделан. Запускается сам каждый четверг в 18 часов (по Брянскому времени) на 4 часа. Если в вашем сообщении было слово из запрещённого списка, получите мут на 1 минуту (сообщение удалено не будет, только если это команда была). Самостоятельно можно включить (!enable swear) в любое время. В связи с этим была добавлена команда !letusswear, которая отключит наказатель до следующего четверга, так как !disable swear never выключит как его, так и автоматическое включение, а !disable swear — лишь на 2 часа.
Всё, добавил все возможные описания. Если заметите ошибку/опечатку — обязательно сообщите! А то тут шестьдесят чёртовых шесть тысяч символов. Алсо, сайт запоминает последнюю открытую вами закладку (blog или bot description) и после перезагрузки страницы откроет именно её.
Добавлен детектор мата в ваших сообщениях! В планах устраивать несколько часов в неделю, в течение которых за появление мата в сообщении будет выдаваться мут на 1-2 минуты. Принцип работы детектора: создаётся список запрещённых слов и корней, участвующих в бесконечном количество слов морфологически богатого языка. Далее все буквы каждого из слов изменяются на регулярные выражения, содержащие (почти) все возможные варианты написания этой буквы в слове по-русски, транслитом, или заменяя на внешне похожие буквы из латиницы. Например, буква я оригинального слова будет замечена, если сообщение содержит я, ya, ja, йа или иа. Таким образом происходит нещадная поимка всего, что хоть сколько-то напоминает искомые слова. Очевидно, будет много ошибок. Начиная от слова требушет, закачивая фразой Суп из довольной курицы. Если в сообщении был обнаружен мат, идёт проверка на исключения — т.е. известные ложные срабатывания детектора. Если в сообщении содержалось слово из списка исключений, то оно удаляется, а оставшееся сообщение снова прогоняется через детектор, где всё происходит по той же схеме. Таким образом, изначально детектор настроен на большое количество ошибок первого рода (false positive), которые затем исправляются, так как ошибки второго рода поймать и исправить в данном случае невозможно. В последней версии получалось не более 1% ложных срабатываний на несколько сотен сообщений. Обойти детектор, естественно, возможно. Имеется возможность проверить, является ли сообщение, которое вы хотите отправить, "запрещённым": !sweartest. Полный список слов/замен можно посмотреть примерно на трёхтысячной строке кода.
Количество строк в коде безвозвратно перевалило за 3 тысячи! Добавлена возможность оповещать заходящих в руму людей о чём хотите — !joinmessage.
Описаны все, так сказать, standalone команды, доступные для простых смертных.
Переписаны команда lastpos и несколько других функций, на которые она полагается, поэтому в случае неполадок обязательно пишите в багрепорт!
Добавлена возможность бана/мута на произвольное время. Пока что мут максимум на 45 минут, а бан на 24 часа. Минимум — 18 секунд.
Наконец-то закончил переписывать основную часть кода (принцип обработки сообщений), так что теперь, как говорили админы плага, "внедрение новых фич будет происходить гораздо быстрее"! Ну и сайт начинаю заполнять.
Бот такой же юзер, как и вы. Только лучше. Команды регистронезависимые. Все аргументы команд вводятся через пробел. Если аргумент написан в скобках, значит он не обязателен для ввода. Курсив означает, что это аргумент, текст которого зависит от запроса. Обычный шрифт — то, что нужно вводить именно так, как написано. Менять аргументы местами нельзя. Бот старается казаться умным, поэтому сводит все 'особенные' и невидимые символы к тому, что видите и можете ввести вы. Если буква выглядит одинаково как на кириллице, так и на латинице — вводите как угодно! Иными словами, забанить киттекса через чат можно введя guerrillaforce, а отправить котика Игорьку — Lамigоr. Теоретически, можно ввести лишь часть ника, пропуская дублированные буквы, но результат не гарантирован.
Используемый код всегда можно посмотреть на гитхабе. Экскурсии за кулисы проводятся каждый четверг в 15:00GMT+3. Тред на 2ch.hk