В принципе, я думаю, что основная часть посетителей моего блога уже знакома с моей программкой под названием “Пинговалка”. Это небольшая программа, написанная в Lazarus, предназначена для отправки коротких сообщений (пингов) в специальные сервисы, которые помогают индексировать Ваш сайт быстрее. Напримр, у Яндекса есть такой пинг-сервис для того, чтобы оперативно индексировать блоги. Дополнительно пинг помогает, в случае необходимости, доказать, что именно Вы автор статьи и первоисточник Ваш сайт, т.к. большинство пинг сервисов достаточно длительное время хранят логи всех пингов.
Можно, конечно, самостоятельно настроить авто-пинг новых постов блога, например, в WordPress это делается через админку. Но моя первоначальная цель была – пинговать любой пост, статью с любого сайта вне зависимости от того, есть ли у этого сайта RSS-канал, поддерживает ли его хостинг PHP или нет и т.д.
В целом, та цель, которую я первоначально перед собой ставил, была достигнута. Последняя версия “Пинговалки” поддерживает многопоточный пинг по неограниченному количеству сервисов. После выпуска “Пинговалки” пступило несколько предложений от пользователей программы, в т.ч. сделать поддержку многопоточной отправки пингов не только по нескольким сервисам, но и нескольких страниц.
Пока работа по “Пинговалке” находилась в “долгом ящике” были и другие предложения и пожелания. В итоге, когда критическая масса таких пожеланий была набрана, я решил приступить к разработке новой версии. Раз программой пользуюсь не только один я – то почему бы и не разработать на благо общества новую версию, да и для себя кое-каких фич в программе сделать.
Разработку я решил перенести “под крыло” Delphi XE.
Так как основа для новой версии была разработана в Lazarus, то перевод части исходников в Delphi напоминало самый страшный фильм ужасов в мире. Перевести проект из Delphi в Lazarus – без проблем, а вот обратно – уже проблематично, хотя и синтаксис вроде бы похож, но некоторые вещи, например, работа с потоками, XML – очень уж сильно различаются. Можно сказать, что на перенос и ушла большая часть времени.
Сегодня я уже достаточно близко подошел к тому моменту, когда можно будет сказать “Всё, финиш. Новая “Пинговалка” готова”, поэтому решил в своем блоге опубликовать немного материалов по новой версии. Интересно, сколько будет написано постов по текущим делам в разработке прежде, чем будет сказано “Финиш”? :)
Итак, приступим к обзору новых возможностей “Пинговалки”.
Во-первых, “Пинговалка” полностью сменила свой внешний вид:
Теперь “Пинговалка” не только отправляет пинги по сервисам, но и хранит всю информацию по пингам страниц, Вашим сайтам и т.д. Как видите, на рисунке представлена главная вкладка программы с проектами для пингов. Можно создавать неограниченное количество проектов и пнговать страниц сайтов как по отдельности, так и всем скопом, например, занести в очередь на пинг страницы из нескольких проектов. В информации по каждому проекту храниться информация необходимая для того, чтобы можно было, в случае необходимости, автоматически сгенерировать список страниц для пинга.
Кстати, вот так, например, может выглядеть список страниц отдельного только что созданного проекта:
Список страниц можно сгенерировать тремя способами:
- На основании файла sitemap.xml
- Через чтение RSS-канала
- На основании простого txt-файлика со списком всех URL
Можно провести, кстати, и обратную операцию – сохранить весь список URL в текстовый файл или сгенерировать sitemap.xml для сайта.
Список пинг-сервисов также немного преобразился:
По каждому сервису можно отследить последний ответ сервера, количество ошибок и количество использований. Перед пингом можно проверить сервисы на работоспособность и добавить в очередь только те, которые не вернули ошибку.
Вот очень кротко о том, что представляет из себя новая “Пинговалка”. Есть и ещё несколько возможностей программы о над которыми я работаю. В числе них есть и такая как поддержка форматов файлов с заданиями для онлайн-сервисов для пинга, таких как pingator.org и др.
Ну, а закончился “День 1” тем, что был дописан модуль программы, отвечающий за импорт URL из файла sitemap.xml. Следуя рекомендациям по использованию Ribbon UI, я добился того, что теперь в один клик запускается весь процесс импорта: скачивается xml-файл по заданному в настройках проекта адресу, проверяется тип файла (составной sitemap или нет), создается перечень URL и пишется в базу данных. Естественно, все эти операции делаются в отдельном потоке – можно запустить экспорт и, например, вернуться на главную вкладку, чтобы добавить ещё один проект в список и т.д.

Вот спасибо! Буду ждать релиза)