Pull to refresh

Сервис конвертации favicon доменов в png (с исходниками:)

Reading time2 min
Views1.4K
Недавно я писал про поиски способов получения иконок доменов в нормальном формате (т.е. png) и о желании написать свой отдельный сервис для этого, поскольку общедоступные конверторы от Google и Yandexа обладают существенными недостатками.

И вот он готов.

Работает это как отдельный сайт — по запросу получает иконки для новых доменов, периодически их обновляет и отдаёт всем желающим. Если нужной иконки ещё нет — отдаётся стандартная и запускается скрипт обновления favicon для домена. После обновления будет доступна иконка домена (если она у него есть).
Скрипт смотрит на мета-теги страницы в поисках ссылки на favicon. Если не находит — идёт по адресу domain.com/favicon.ico. Если где-либо иконка нашлась — определяет её тип и конвертирует в png.

Потестировать всё это можно по адресу http://favicons.tools.strangecompany.ru/?domain=domain.com. Этот хост будет жить ещё долго, поскольку мы его уже используем в своих проектах. Можете использовать и вы. А если захотите — просто скачаете код из svn:

 svn co http://svn.pub.strangecompany.ru/domain_favicon/trunk


Для тех, кто захочет использовать библиотечку в своём проекте доступна возможность легко изменить поведение, проинжектив зависимости в класс Favicon:
1. Класс для получения web-страниц — на случай, если используется какой-то свой механизм. Для этого нужно написать класс, реализующий интерфейс IFaviconWebFetcher и передать его в конструктор Favicon.

2. Класс для получения иконки из веб-страницы. На случай, если вы реализуете более эффективное решение — нужно создать класс, реализующий интерфейс IFaviconExtractor и, опять же, передать его в конструктор Favicon.

3. Класс для превращения изображения в png. Может быть, вы используете PHP 5.3 и захотите работать с ICO встроенными функциями. Или написать свой, более эффективный класс — нужно всего лишь реализовать интерфейс IFaviconConverter и, конечно же, передать его в конструктор Favicon.

Баги, замечания, предложения — в трекер. Цветы, девушек и сладости — по почте ;)
Tags:
Hubs:
Total votes 37: ↑35 and ↓2+33
Comments26

Articles