Всех с воскресеньем.
Пока основной баянометр в разработке заделал небольшой такой заменитель http://joy.komato3.net/
Сканирует апрувнутые посты 2 раза в минуту (надеюсь, не буду за это забанен).
Немного умеет в гифки, но это пока сильно эксперементально. Гифки бьются по 2 кадра в секунду и этот хеш идёт в базу.
Любителям поковыряться в JS-коде и прочей диагностике - найдёте API-запросы на странице, пожалуйста, не переусердствуйте.
Текущий интерфейс люто не дружелюбен: ограничен на загрузку 10 файлов одновременно, но в силу неких ограничений может туповато работать, так что не брезгуйте F5, и в целом выглядит как для роботов. Порой nginx может послать Вас нахуй за частоту запросов, такие дела.
У поиска есть не мнимая возможность найти лютейшее говно или не найти ничего, для этого есть кнопка "Bullshit" справа, создаёт некий реквест с копией вашей картинки. Поковыряюсь в алгоритмах поиска и хеширования, но не злоупотребляйте, пожалуйста.
В остальном, прошу потестить - есть ли смысл во всём этом?
Смысл есть, приятно, что есть тот, кто старается во благо кудахтора
Да, тоже думал как бы более кучнее расположить превьюшки. Сейчас 2 колонки, сделаю 3 - с инфой по файлу, превьюшки, и список баянов.
Кстати он когда проверяет, просматривает фулл арты у постов? Просто если так делает то ещё хорошо бы если выводил разрешение артов у постов.
Если нет, ну там сам думай, просто тогда число запросов возрастет не хило.
Если нет, ну там сам думай, просто тогда число запросов возрастет не хило.
Сейчас не проверяется подноготная постов, они не парсятся и не накручивается ничего, проверяются только те данные, что выдаёт главная Джоя и её пагинация.
а ну всё тогда
Если проблема с конкретным постом, плиз, жмакни "Bullshit", это поможет понять в чём тупняк поиска. Сейчас установлена куча чёстких условий, вероятно, ухудшающих, но и убыстряющих поиск.
*жёстких
Да особо проблем пока не обнаружил, главное, мне кажется, чтобы искало посты с такой же картинкой, причём чтобы не было тега "удалённое".
А что должно появляться при нажатии на эту кнопку? Вот, скажем, есть гифка, где девка выламывает лобовое стекло машины, чтобы уйти от полицейского. Кидаю её на твой баянометрозаменитель. Обнаруживает пост, но там удалённое в тегах (http://joyreactor.cc/post/2873631), а изначальный пост не ищется (http://joyreactor.cc/post/2738337). Полагаю, это из-за вотермарки в углу. Жму на кнопку Bullshit - ничего не происходит. Хоть бы какое уведомление писалось, дескать, репорт отправлен.
Для пользователя - ничего, просто делается копия всего этого дела для дальнейшего ручного разбирательства. Добавил "реакцию" на нажатие. Как будет время посмотрю реквесты.
Подкрутил дистанцию поиска, теперь находится как по оригинальной гифке, так и с вотермаркой. Надеюсь не начнётся лютый ад.
Спасибо, красавец!
Скажите непосвященному, что не так с этим Баянометром? Почему он, подобно Фениксу, так часто помирает, чтобы спустя время снова родиться и повторить цикл?
Вы про прошлые боянометры? Вероятно, по тому, что просто разработчики устали, ибо это реально тяжело, это и усилия разработчика, это и нагрузка на сервер (у всех есть внешний сервер?).
Ковыряться в баянометре можно только когда тот отключен. Поэтому каждый раз, когда хостинг отключают за неуплату, админ спрашивает, оставлять работать старый или пилить новый функционал.
"админ" в смысле чувак, сделавший баянометр.
У вас баянометр неправильно время показывает, ровно на один месяц.
Спасибо, вижу, проверяю.
Будет ли open-source?
Немного уточню вопрос, что именно оперсурсного нужно? Если непосредственный код обработки (выкачивание картинок, хеширование, разбивка гифок на кадры), то это сложно, там тонны говнокода и платформозависимого кода, я, честно говоря, стесняюсь это публиковать. Если нужны какие-то http-запросы для работы с хешами - я сделал кое-какой rest-интерфейс, логику можно глянуть в ajax-запросах страницы. Если интересует этот момент, могу расписать что там к чему.
И, если честно, не думал, что кому-то это может пригодиться. Если дело пойдёт, то причешу код и выложу, а пока не вижу смысла.
По-моему, смысл есть. Во-первых, было бы интересно посмотреть, как оно работает. Во-вторых, появится возможность пофиксить/доделать что-то коллективными усилиями. И, в-третьих, любой желающий сможет собрать и захостить свой баянометр, то есть ситуация с глубокой отладкой™ не повторится.
присоединяюсь - я мог бы поконтрибьютить во фронтенд
>что именно оперсурсного нужно?
В идеале, всё. Даже frontend, даже небо и Аллах.
В идеале, всё. Даже frontend
хеширование сам писал или брал готовую библиотеку?
хеши ищешь одинаковые или вплоть до какой-то дистанции?
хеши ищешь одинаковые или вплоть до какой-то дистанции?
пасиб.
а как решал проблему с поиском?
делал какие-то индексы или у тебя каждый поиск фуллскан ?
а как решал проблему с поиском?
делал какие-то индексы или у тебя каждый поиск фуллскан ?
Больной вопрос. Читал статьи по этому поводу, но, так понимаю, сильно это не оптимизировать, нужен призыв квалифицированных математиков. Да, делаю фуллскан по всей базе.
Проскользнула идея брать перцептивный хеш от хеша (по сути перцептивный хеш является сильно-упрощённой картинкой оригинала), тоесть грубо говоря: от картинки получаем 256-битный хеш (32 байта), берём от этого хеша хеш 4x4 (8 байт). Получается некого рода LOD, и этот хеш довольно удобно сравнивать Хеммингом ибо 8 байт это основа 64-битной архитектуры. Не сильно уверен в моей теории, математик я так себе, но вроде работает.
Проскользнула идея брать перцептивный хеш от хеша (по сути перцептивный хеш является сильно-упрощённой картинкой оригинала), тоесть грубо говоря: от картинки получаем 256-битный хеш (32 байта), берём от этого хеша хеш 4x4 (8 байт). Получается некого рода LOD, и этот хеш довольно удобно сравнивать Хеммингом ибо 8 байт это основа 64-битной архитектуры. Не сильно уверен в моей теории, математик я так себе, но вроде работает.
Заминусивших прошу отписать, в чём моя логика неправильна?
Они просто нихуя не поняли :) Всё норм, отличная работа!
не минусил, но это так работать не будет.
64бита хеш тебя не спасет, так как чтоб искать по нему нужно так же либо мутить индексы для него, либо делать фуллскан.
насчет индексов смотри мой ответ к твоему предыдущему посту, у меня изначально хеши были по 64бит.
64бита хеш тебя не спасет, так как чтоб искать по нему нужно так же либо мутить индексы для него, либо делать фуллскан.
насчет индексов смотри мой ответ к твоему предыдущему посту, у меня изначально хеши были по 64бит.
я читал, что есть какие-то BK-tree индексы, но так нихуя и не понял (я тоже с матаном неочень). а готовых бд с ним так и не нашел.
потом появилась идея генерить близкие хеши для картинки, которую стянули с реактора и вести таблицу сопоставлений. такой себе индекс.
тобишь есть у нас картинка на реакторе, у нее хеш 11110001100110111000101011100100000011000000011001110011111011. мы генерим к нему все числа с расстоянием 1, с расстоянием 2 итд и записываем в бд.
а потом просто ищем в этом индексе точное совпадение с индексом искомой картинки.
нюанс крылся в одном - количестве данных. для int64 количество хешей с расхождением от 1 до 5 составляло 7666240 значений. то есть 7666240 64битных интов для каждой! картинки. это было уже не в какие ворота, их ж где-то нужно хранить. плюс время на генерацию.
хотя хз, они ж в целом пересекаются. может что-то и можно было бы сообразить, но в тот момент меня окончательно заебали бразильские проксики, которые постоянно отваливались и я забил на всю затею.
потом появилась идея генерить близкие хеши для картинки, которую стянули с реактора и вести таблицу сопоставлений. такой себе индекс.
тобишь есть у нас картинка на реакторе, у нее хеш 11110001100110111000101011100100000011000000011001110011111011. мы генерим к нему все числа с расстоянием 1, с расстоянием 2 итд и записываем в бд.
а потом просто ищем в этом индексе точное совпадение с индексом искомой картинки.
нюанс крылся в одном - количестве данных. для int64 количество хешей с расхождением от 1 до 5 составляло 7666240 значений. то есть 7666240 64битных интов для каждой! картинки. это было уже не в какие ворота, их ж где-то нужно хранить. плюс время на генерацию.
хотя хз, они ж в целом пересекаются. может что-то и можно было бы сообразить, но в тот момент меня окончательно заебали бразильские проксики, которые постоянно отваливались и я забил на всю затею.
с твоими 256бит хешами это вообще будет какое-то фантастическое количество данных.
прокси - чтобы реактор тебя по ip не банил за количество запросов?
можно ж было с кокой договориться, чтобы он для конкретного ip защиту отрубил
можно ж было с кокой договориться, чтобы он для конкретного ip защиту отрубил
С хранением таких данных начнётся лютый ад, мой сервер за три бакса не потянет, особенно учитывая что я увеличил дистанцию поиска до 30.
Слушай, а не хочешь помочь запилить Reverse proxy на ESXI. на чём именно решай сам. надо что бы он только заработал. пиши в ЛС если готов взяться.
Вопрос только в том - а где тут проблема то, кроме, собственно, настройки самого реверс прокса?
По сути ставишь нужное ПО на серваке с белым ипом, смотрящим в эти ваши интернеты (хоть бы тот же самый NGINX), указываешь локальные ресурсы в виде серверов по внутренней адресации. Тут же уже не суть на ESXI у тебя всё или на иных ОС, тут тупо 2L-3L маршрутизация который на виртуализацию серверов мягко-говоря поебать. Ну только если у тебя все настроено с выводом серверов в общий сетевой пул(подпул) для каждого хоста (сервера) и каждой VM.
По сути ставишь нужное ПО на серваке с белым ипом, смотрящим в эти ваши интернеты (хоть бы тот же самый NGINX), указываешь локальные ресурсы в виде серверов по внутренней адресации. Тут же уже не суть на ESXI у тебя всё или на иных ОС, тут тупо 2L-3L маршрутизация который на виртуализацию серверов мягко-говоря поебать. Ну только если у тебя все настроено с выводом серверов в общий сетевой пул(подпул) для каждого хоста (сервера) и каждой VM.
там что-то настроено... я пока пытался всё это сделать на Apache думал что повешусь. и знаешь что? ничего не заработало. и я просто всё послал нах. так что если ты шаришь, го законтачимся и по удалёнке дам тебе доступ.
О великий!!! А по URL будет загрузка изображений?
Добавил, но особо не тестировал.
Ошибку загрузки файла пишет.
По любым ссылкам или каким-то конкретно не грузится (можно в личку скинуть)?
Пофиксил, должно работать.
Ага. Фурычит.
Лучше мобильное приложение запилил бы бездельник
Лично мне эта тема не интересна, а вот тема поиска баянов весьма занятна.
Мобильных приложений уже было минимум 2 штуки.
А он в глаза ебётся...
Смысл более чем есть, постоянно получаю минусы за баяны.
В секретных разделах не нашло одну, а так спасибо.
Пили обязательно дальше, тема интересна!
http://pornreactor.cc/post/3269528 вот тут не сработало ни через загрузку, ни через ссылку. Гугл гифку-дубликат нашел.
Со специфическим контентом пока никак, только вчера добавил его индексацию, потребуется несколько дней.
подождем
Чтобы написать коммент, необходимо залогиниться