Всех с воскресеньем.
Продолжаю таки работу над баянометрозаменителем и после возрождения основного, и, судя по логам, кто-то им даже пользуется. Мне кажется, хоть какая-то от этого польза да есть, ибо хеши мы (сравниваю с детищем сотоварища ExtraDJ) используем разные, картинки обрабатываются по разному, баяны от этого ищутся немного по разному, тем самым дополняя друг друга. За месяц+ работал более-менее стабильно, нестабильности излечивал как только замечал (пару дней назад внезапно демон-поисковик+хешер+парсер+несколько фоновых процессов внезапно упёрлись в, смешно сказать, 2Гб памяти, перенёс всё это дело на сервер получше).
Спасибо всем тем, кто делал багрепорты, писал в личку и т.п., это сильно помогает подкорректировать как поиск, так и общую юзабельность сервиса. Поиск гифок сильно переделал за это время, теперь считается процентное соотношение как длительности гифки, так и процент соответствия всех захешированных кадров, стало гораздо меньше трэша вылазить, причём гифки ищутся с бОльшим разбросом по дистанции Хемминга, чем обычные картинки, это позволяет найти немного искаженные гифки, но может и сюрпризов выдать. Некоторые картинки по прежнему выдают лютейшую дичь, это особенность хеширования, попробую победить альтернативным хешем, т.е. помимо текущего хеша сейчас вычисляется альтернативный (идея такова, что если взять дистанции сравнения побольше, но прогнать картинку через разные хеши, результат должен быть более объективен. Опять таки, я не математик, а экспериментатор, в профите пока не уверен, но попробовать точно стоит, руки за это пока ещё не рубят), это пока в процессе разработки. И минусом ко всему этому - зааплоденные гифки режутся до 30 кадров, это может весьма влиять на качество поиска, но и позволяет избежать абуза загрузкой дохуя длинных гифок. Тут, думаю, для особо терпеливых и настойчивых добавить опцию на проверку бОльшего числа кадров, но считайте сами, каждый кадр по времени равен проверке одной любой картинки, время поиска растёт линейно.
Плюс наткнулся на один неприятный баг в парсере html/json, из-за этого говна немалая часть постов не попала в базу (в основном, фендомы), пофиксил, перехешируется, ждёмс. Дабы не травмировать мою нежную психику завёл аккаунт-парсер, подписанный на ваши любимые жесть-кровь-кишки-йифф-гуро-лоли-ад, всё это потихоньку пишется в индекс, отчего появился тумблер SFW/NSFW. Здесь прошу помощи, не очень понятна логика работы. Сейчас у меня фильтр такой, что под NSFW попадают такие теги, как Anime Ero Cosplay, art барышня/девушка, ecchi, Faphammer, furotica, Hard Bondage, oglaf (хотя и есть у Оглафа SFW серии), r34, секретные разделы... тут ибанёшься их все перечислять, вбивал в базу вручную на своём опыте и периодически пополняю. Вопрос, есть какой-то более адекватный способ отличить sfw от nsfw? Или есть где список этих тегов? Ну и, естественно, кто теги не проставил, их посты вылазиют вне зависимости от тумблера.
Добавил также проверку на редактирование постов: изменил картинки, добавил хайрез, скорректировал теги - пост обновляется в базе/перехешируется. Одно но - автоматическое обновление происходит в последних 100 постах (10 страницах), все более старые посты - обновляются в базе сильно реже.
Есть переработки в интерфейсе, сейчас _весьма_ не юзабельно при большой выдаче, пока в dev-версии допиливаю, выложу на неделе, но это так, не самое важное в баянометре. Добавил обновлятор токена, теперь не должно (ну или сильно реже) ругаться на проблему загрузки картинок. Добавил вывод разрешения изображения, НО, это пока работает на клиентской стороне (браузер качает картинку, скрипт выдаёт размер как только картинку загрузил ваш браузер, соответственно, это ВАШ трафик, в настройке есть предупреждение если вас это беспокоит).
Есть ещё несколько мыслей по доработке интерфейса (не только моих, спасибо товарищам по переписке), + скорректировать под мобилы, это пока на совсем свободное время.
Ещё вопрос, тег "удалённое". Демон-поисковик в любом случае сравнивает ВСЕ хеши всех постов, абсолютно безусловный поиск, линейный, как современные шутеры. Демон выдаёт набор постов, web-бэкенд далее фильтрует это всё по тегам, и тут можно отбросить ненужное. Думаю сделать в настройках галочку что-то типа "пропускать удалённое" или вроде того, это нужно? Если это монопенисуально, то заморачиваться не буду. Если есть какие предложения - всенепременно учту.
Здесь обращаюсь к Вождю: если текущая работа моей поделки устраивает, возможно добавить ссылку на неё на сайт (окромя ссылки в разделе
http://joyreactor.cc/tag/баянометр )? ИМХО баянометры с разными хешами имеют право на жизнь. Дело бросать пока не вижу смысла ибо это весьма и весьма занимательно лично для меня и есть богатое поля для изысканий (хочу переписать линейный поиск на BK-tree, хотя, есть сомнения, что ~20-30% прироста скорости того стоят), сервер особо денег не ест (два нормальных пива в баре в месяц), работает стабильно (теперь да, ресурсов достаточно).
Если всё плохо, похуистично, или есть конструктивные предложения - с нетерпением жду в комментариях.
Отличный комментарий!