Лучший за все время пост на pikabu

Спасибо пикабущникам, которые капаются в никропостах и напоминают мне, что скрипт перестает работать.

2017-01-25 10:30:23 Лучший за все время пост на pikabu

Я не буду выкладывать какие либо исходники, считаю что в этом нет необходимости. Просто опишу как работает пост ставший лучшим из лучших за все время на Пикабу.

Проводя вечер с бутылочкой светлого не фильтрованного листал я хабр и в одном из постов упоминалось, что завтра будет день программиста. "Почему бы не запилить пост на pikabu.ru" подумал я. Просто поздравить своих коллег и всех причасных обычным постом с картинкой мне показалось слишком банально.

Я вспомнил интерактивные посты пользователя staticspb, где он создавал динамические картинки, которые менялись от количества просмотров картинки. Я тоже делал нечто подобно, ведь это не так уж и сложно даже для начинающего программиста. Это обычный PHP (в моем случае, язык программирования не имеет значения) скрипт, который вместо обычного html или еще чего то, возвращает картинку.

У меня уже был опыт и работы с графикой на PHP и в создании динамических постов на пикабу, где я с периодичным успехом угадывал  ip адреса и местоположение пользователей. Тот пост провалился по тому что сервер просто не выдержал нагрузки, хотя и набрал не мало плюсов.

В этот раз я решил сделать наболевший пост "про логику пикабу". Так как был день программиста я выбрал соответствующую картинку, подобрал текст и решил просто отобразить на пикче количество плюсов и минусов к посту.

Задача разбилась на 2 этапа:

1. получить эти плюсы и минусы с сайта

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

2. Затем стоило  отрисовать их на картинке:

Логика проста. Создаем новое изображение, вставляем в него нашу картинку, пишем текст с количеством плюсов и минусов.

Осталось малость покалдавать над заголовками и адресом скрипта, чтобы он имел расширение как у картинки .jpg и можно пилить пост.

Собственно вы можете видеть сам результат:


В день программиста про логику пикабу


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

НО! через пару часов, картинка начала с трудом грузится, а затем и вовсе перестали отображаться плюсы.

Рисование картинки занимало все большое время, и не всегда скрипт успевал распарсить страницу с постом.

И не удивительно, размер страницы рос от комментариев, а нагрузка на сервер с картинкой росла. Пост вылез в горячее, и тут началось самое страшное, сервер начал заваливаться а админ недоумевать, что происходит, "может DDOS атака...".

Я из за всех сил пытался оптимизировать код, отдавать картинку из кэша. Это немного помогло, но совсем незначительно. В итоге оказалось, что просто просел канал до серванта.

Сейчас прошло уже очень много времени и пост живет овер 1500 дней и имеет за 2к комментариев.

Когда ввели медальки на пикабу, я был даже удивлен, что мой пост стал лучшим из лучших.  Мелочь, но так приятно.
Лучший из Лучших пост


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

Спасибо пикабущникам, которые капаются в никропостах и напоминают мне, что скрипт перестает работать.

Я тоже не упускал моменты поменять картину и вставить туда то парня-охраника детсада,  то котика =) когда это было в тренде. но количество плюсов и минусов всегда рисовалось. Возможно именно по этому он оставался популярным и выбился в топ.

Маленькие но гордые скрипты



Яндекс.Метрика

Контакты