![](https://habrastorage.org/getpro/habr/upload_files/4b5/bca/38e/4b5bca38e2dcc747954098048eadb35d.jpg)
Доброго времени суток, %username%.
Я не являюсь разработчиком (я себя таковым не считаю) и не занимаюсь программированием для заработка (хотя раньше такое и было), но иногда возникает острое желание чего-нибудь написать для себя, чтоб оно работало, как надо мне, чтоб выглядело, как я хочу, и чтоб была возможность что-то изменить в поведении программы/скрипта/сайта.
В очередной такой "приступ" и было решено написать SiteWatcher. А чтобы труд не пропал зря, решил опубликовать свой проект. Может кому понадобится сама программа или что-то из её кода.
Читать всё, что написано ниже не обязательно, можно просто посмотреть скриншоты, скачать или ознакомиться с результатом на GitHub. Там же есть описание элементов интерфейса.
Минимальные системные требования
Windows 7+ x64
Причины создания
В Интернете есть ряд программ для отслеживания активности на сайтах. Самым ярким примером которых являются, наверное, клиенты RSS (Rich Site Summary — обогащённая сводка сайта, чаще всего представлена лентой новостей).
И всё хорошо, когда на сайте есть рассылки или RSS, но иногда возникают ситуации, когда стандартного функционала для уведомления пользователей на сайте нет, недостаточно или он работает не так, как надо или хочется. В этих случаях помогают сторонние программы (клиенты для API, парсеры, шлюзы и т.д. ). Вот одной из таких программ и является SiteWatcher.
В большинстве случаев такого типа продукты представлены в двух видах: как самостоятельное ПО и как расширения для браузеров.
Я использовал несколько вариантов, и в каждом было что-то, что не устраивало
(это не список минусов, а мои "хотелки"):
Обработка происходила в облаке
Было необходимо постоянно держать запущенным браузер
(относится к расширениям для браузеров)Ограничения бесплатных версий
Невозможность повлиять на порядок работы или поведение программы
"Тяжелый" внешний вид
другие незначительные мелочи, вроде хранения данных в облаках или браузере
После очередного "улучшения" разработчиком программы, которой я пользовался, в виде перехода на коммерческие рельсы, я задумался над тем, что бы написать свой вариант с "блэкджеком"...
Чем руководствовался при выборе инструментов для написания
Во избежания дальнейших вопросов, поясню причины выбора
Windows - работаю в основном на ней
x64 - уже везде, за исключением ну очень старого железа
C# / .NET - что-то на нем умею, что-то читал про WPF, родной для Windows и .NET возможно использовать на linux-системах
CefSharp - корректно отображает страницы, популярный, простой
Русский язык - мне достаточно и нет желания разбираться в многоязычных подходах ради такого маленького "проекта", да и не консольное приложение
А также причины, почему программа выглядит именно так
Я не программист и тем более не дизайнер
Программа писалась для себя, и когда было желание
Что реализовано на данный момент
Программа запускается и работает, то, для чего была написана, делает, не без ошибок, не все "хотелки" ещё реализованы.
Список наблюдателей
![Основное окно SiteWatcher Основное окно SiteWatcher](https://habrastorage.org/getpro/habr/upload_files/12e/534/582/12e5345820b6f180c63cedd65599f45d.jpg)
Управление списком
Фильтр элементы по категориям, наличию изменений и тексту
Ссылки на отслеживаемые страницы и их последние изменения
История изменений текста на отслеживаемой странице
![История изменений на странице История изменений на странице](https://habrastorage.org/getpro/habr/upload_files/948/5e3/f47/9485e3f47a42d64321cf2f716b5a1c42.png)
Несколько последних изменений на странице
Подсветка измененных данных
Настройки наблюдателя
![Окно настроек наблюдателя Окно настроек наблюдателя](https://habrastorage.org/getpro/habr/upload_files/97a/2de/97e/97a2de97eda750215c6d1257a31938bc.png)
Возможно выбрать отслеживаемый элемент на странице сайта
Эмуляция движения мыши на сайте
Шаблон вывода данных через regexp
Всплывающие уведомления
![Всплывающее уведомление Всплывающее уведомление](https://habrastorage.org/getpro/habr/upload_files/2d4/7a4/486/2d47a44862197c9878bd29bf831255f9.png)
В уведомлении выводится название наблюдателя и последние изменения на странице
Что планировалось, но (пока?) не сделано
Плагины для обработки данных полученных со страницы
Плагины для уведомлений
Нормальный вывод истории изменений
Доработка иконки в трее
Экспорт и импорт списка наблюдателей
Более тонкая настройка уведомлений
Косметические улучшения интерфейса
Вывести настройки в интерфейс
Пофиксить все найденные баги
На этом всё. Спасибо за внимание
Страница проекта на GitHub
Скачать скомпилированный вариант можно там же в Releases.