Как известно, Гугл купив Feedburner, поматросил его и всех пробросил,  ещё и классически пожелав “удачного всем дня”. :) Апи фидбурнера (Feedburner Awareness API) было выключено как ”устаревшее” 22-го окрября прошлого 2012го года, под аккомпанимент сотен лучей поноса:

feedburner_api

Что же делать наивным чукотским юношам, купившимся на капиталистическую пропаганду о компании с девизом “Don’t be evil”? Есть вариант – лапу сосать. Но мы ж программисты, народ плечистый. :) Отключили апи – мы из картинки цыфить циркуляции вырежем. Картинку то с числом подписчиков пока не выключили, поскольку даже в гугле понимают, что выключать её нельзя, без неё народ весь разбежится в FeedBlitz , поскольку нафига тогда такой фидбёрнер нужен? Итак, вытянуть картинку можно разными способами, я придумал такой:

Первым делом определяем поле картинки с цифрой, вся картинка имеет размер 88х26, но цифры размещаются в прямоугольнике 4-40 х 6-12.
Скачиваем картинку курлом с человеческим юзерагентом без заголовков, сохраняем в файл.
Загружаем из файла функцией imagecreatefromgif.
Сканируем указанную облать по х for ($x = 4; $x < 40; $x++), ищем в вертикальной линии точку, отличную по цвету от фона. Цвет фона взять из точки 4-6 функцией $bgColor = imagecolorat($im, $xStart, $yStart);
Если мы нашли точку, значит мы наткнулись на букву или цифру. Для каждой цифры вычисляем число точек по первой горизонтальной лини (х+5) и первой вертикальной, а также общее число точек в символе (суммируем точки, пока не наткнёмся на следующую пустую вертикаль).
Получаем 3 цифры, комбинация которых является уникальной для любой цифры или буквы, из которых может состоять надписть. Далее с помощью switch-case формируем число.
Задача решена. :)

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

Для непрограммистов, слухаем музыку:

Похожие посты