SiteWatcher — наблюдаем за изменениями на страницах сайтов

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Доброго времени суток, %username%.

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

В очередной такой "приступ" и было решено написать SiteWatcher. А чтобы труд не пропал зря, решил опубликовать свой проект. Может кому понадобится сама программа или что-то из её кода.

Читать всё, что написано ниже не обязательно, можно просто посмотреть скриншоты, скачать или ознакомиться с результатом на GitHub. Там же есть описание элементов интерфейса.

Минимальные системные требования

  • Windows 7+ x64

  • .NET Framework 4

  • .NET Desktop Runtime 6.0.6 x64

  • C++ Redistributable for Visual Studio 2015 x64

Причины создания

В Интернете есть ряд программ для отслеживания активности на сайтах. Самым ярким примером которых являются, наверное, клиенты RSS (Rich Site Summary — обогащённая сводка сайта, чаще всего представлена лентой новостей).

И всё хорошо, когда на сайте есть рассылки или RSS, но иногда возникают ситуации, когда стандартного функционала для уведомления пользователей на сайте нет, недостаточно или он работает не так, как надо или хочется. В этих случаях помогают сторонние программы (клиенты для API, парсеры, шлюзы и т.д. ). Вот одной из таких программ и является SiteWatcher.

В большинстве случаев такого типа продукты представлены в двух видах: как самостоятельное ПО и как расширения для браузеров.

Я использовал несколько вариантов, и в каждом было что-то, что не устраивало
(это не список минусов, а мои "хотелки"):

  • Обработка происходила в облаке

  • Было необходимо постоянно держать запущенным браузер
    (относится к расширениям для браузеров)

  • Ограничения бесплатных версий

  • Невозможность повлиять на порядок работы или поведение программы

  • "Тяжелый" внешний вид

  • другие незначительные мелочи, вроде хранения данных в облаках или браузере

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

Чем руководствовался при выборе инструментов для написания

Во избежания дальнейших вопросов, поясню причины выбора

  • Windows - работаю в основном на ней

  • x64 - уже везде, за исключением ну очень старого железа

  • C# / .NET - что-то на нем умею, что-то читал про WPF, родной для Windows и .NET возможно использовать на linux-системах

  • CefSharp - корректно отображает страницы, популярный, простой

  • Русский язык - мне достаточно и нет желания разбираться в многоязычных подходах ради такого маленького "проекта", да и не консольное приложение

А также причины, почему программа выглядит именно так

  • Я не программист и тем более не дизайнер

  • Программа писалась для себя, и когда было желание

Что реализовано на данный момент

Программа запускается и работает, то, для чего была написана, делает, не без ошибок, не все "хотелки" ещё реализованы.

Список наблюдателей

Основное окно SiteWatcher
Основное окно SiteWatcher



Управление списком

Фильтр элементы по категориям, наличию изменений и тексту

Ссылки на отслеживаемые страницы и их последние изменения

История изменений текста на отслеживаемой странице

История изменений на странице
История изменений на странице



Несколько последних изменений на странице

Подсветка измененных данных

Настройки наблюдателя

Окно настроек наблюдателя
Окно настроек наблюдателя



Возможно выбрать отслеживаемый элемент на странице сайта

Эмуляция движения мыши на сайте

Шаблон вывода данных через regexp

Всплывающие уведомления

Всплывающее уведомление
Всплывающее уведомление



В уведомлении выводится название наблюдателя и последние изменения на странице

Что планировалось, но (пока?) не сделано

  • Плагины для обработки данных полученных со страницы

  • Плагины для уведомлений

  • Нормальный вывод истории изменений

  • Доработка иконки в трее

  • Экспорт и импорт списка наблюдателей

  • Более тонкая настройка уведомлений

  • Косметические улучшения интерфейса

  • Вывести настройки в интерфейс

  • Пофиксить все найденные баги

На этом всё. Спасибо за внимание.

Страница проекта на GitHub: https://github.com/hronoas/SiteWatcher
Скачать скомпилированный вариант можно там же в Releases

Источник: https://habr.com/ru/post/695842/


Интересные статьи

Интересные статьи

Firefox, как и любой другой браузер, может загружать код с ненадёжных и потенциально опасных сайтов, а потом запускать его на компьютере. Чтобы защитить пользователей и в...
Я давно знаком с Битрикс24, ещё дольше с 1С-Битрикс и, конечно же, неоднократно имел дела с интернет-магазинами которые работают на нём. Да, конечно это дорого, долго, местами неуклюже...
В 2020 практически весь мир фронтенда заполонили Javascript фреймворки. Только и слышно о React, Angular, Vue и иногда в далеких просторах можно услышать тихий шепот «Svelte». Разработчик...
Один из ключевых сценариев работы в CRM это общение с клиентом в удобном для него канале. По почте, по телефону, по SMS или в мессенджере. Особенно выделяется WhatsApp — интеграцию с ...
1С Битрикс: Управление сайтом (БУС) - CMS №1 в России по версии портала “Рейтинг Рунета” за 2018 год. На рынке c 2003 года. За это время БУС не стоял на месте, обрастал новой функциональностью...