PDA

Показать полную графическую версию : Утилита для своевременного обновления разного софта


Страниц : [1] 2

fantik
10-02-2008, 23:50
Увы, не нашел подходящего раздела под программку, а так как понадобиться она может любому именно в этом разделе, опубликую здесь. Да простят меня уважаемые модераторы.

Программа очень простая, хранит в ini-файле список программ, выход новых версий которых желательно отслеживать. Как правило, авторы программ первым делом публикуют на оф. сайте новую версию, чуть меняя код страницы, это легко отследить.

Скриншот:
http://ipicture.ru/uploads/080704/CTRm5y6UQ9.png

Соответственно, настройки :

1. Адрес странички в интернете, откуда берется новая версия
2. Префикс и суффикс - это кусочки кода страницы, между которыми, собственно, и находится искомая версия в коде HTML
3. Номер вхождения - если программа найдет несколько кусочков кода prefix и suffix, то вхождение - как раз порядковый номер нужного (с версией).
4. ID и Название - соответственно, хранимый т.н. код, например, "winrar" и отображаемое название, напр. "Архиватор WinRAR"
5. Поле внизу и кнопка "Код HTML" нужны для правильного поиска вхождения, так как существуют разные кодировки страниц и т.п., программа их игнорирует. Но текстовые редакторы, как правило, переводят в правильную кодировку. И при копировании в программу кода из текстового редактора, может нарушиться двоичный код фразы, хоть и сохранится ее внешний вид, и программа не сможет ничего найти. Так что лучше всего копировать prefix и suffix именно из этого поля.

Кнопки "Тест", "ОК" и "Отмена", я полагаю, не нуждаются в комментариях.


Пример :

<a href="" class="version">Version: 1.0</a>

Префикс:
<a href="" class="version">Version: (с пробелом в конце)
Суффикс:
</a>

Несколько хинтов по поводу пользования :

- Высвечиваемое название есть ссылка на страницу, с которой берется версия, можно надавить, и попадете на сайт разработчика
- Если вдруг версия обновилась (отображается зеленым), то в ini-файле она обновится ТОЛЬКО после двойного щелчка по строке.
- Если таймаут соединения, или производитель решил поменять код страницы - в поле "Версия" будет высвечиваться "Error".

В комплекте идёт файл ini с некоторыми моими настройками, в том числе с поиском новых версий UpdatePack-XPSP3-Rus с этого форума. Для ознакомления (пользования).

Берем программу отсюда: VerChecker 1.1 (http://depositfiles.com/files/6382463) 503.06 KB
Исходники: Delphi7, (http://depositfiles.com/files/6382484) 20 KB Требуется TMS Component Pack for Delphi 7
Если кому пригодится - выкладывайте настройки для своих программ из ini-файла

fantik
11-02-2008, 00:55
Чуть-чуть не доглядел, обработчик ошибки на строку ниже поставил, программа вместо вменяемого ответа при пустых значениях полей выдавала Access violation. В остальном функционал тот же.

dimez
11-02-2008, 11:07
fantik, Сразу предупреждаю - понадобится поддержка регэкспов.
А ещё лучше договориться с производителем программ, чтобы те экспортировали xml-файл с версией софта и дёргать его.
P.S. Лет 7 назад писал систему сбора информации с большого количества сайтов, префиксы и суффиксы вбивались несколькими десятками людей.

fantik
11-02-2008, 12:40
dimez,
Вы думаете, я продавать что-ли программу собираюсь? :tongue:
Или ради пары десятков программ для каждого надо договариваться с производителями?

Спасибо, конечно, что предупредили, что бы мы без вас делали :up

Кстати, если вы писали программу с регэкспами, зачем нужны были в вашей программе префиксы и суффиксы?

Debugger
11-02-2008, 15:01
fantik, недавно видел похожую вещь, называется SuMO (Software Update MOnitor), искать здесь. (http://www.kcsoftwares.com/index.php?sumo)

fantik
12-02-2008, 00:29
Debugger,
мерси за ссылку, погуглил, не нашел, наваял свою быстренько, может кому сгодится

aset
12-02-2008, 16:08
fantik,
http://www.cwer.ru/files/u117250/SUMo_screen.png

Утилита для слежения за обновлениями программного обеспечения, установленного на компьютере пользователя. Главная задача SUMo (Software Update Monitor) - уведомление о появлении новых версий приложений, с которыми вы работаете. Для проверки наличия обновления к той или иной программе, достаточно перетащить исполняемый файл программы в окно SUMo. В этом окне можно увидеть название приложения, номер версии, название компании-разработчика и информацию о наличии обновлений. SUMo удобна тем, что позволяет проверить наличие обновлений, не открывая при этом сами программы. С помощью SUMo можно проверять апдейты сразу для нескольких приложений, а затем выборочно загружать их.

ftp://ftp2.kcsoftwares.com/kcsoftwa/files/sumo.exe

dimez
12-02-2008, 16:08
Или ради пары десятков программ для каждого надо договариваться с производителями? »
Им выгодно с вами сотрудничать :)
Спасибо, конечно, что предупредили, что бы мы без вас делали »
Ну вот, хотел сделать доброе дело, сразу обсмеяли...
Кстати, если вы писали программу с регэкспами, зачем нужны были в вашей программе префиксы и суффиксы? »
Там шире немного задача стояла - выдёргивать не одно число, а несколько блоков со страницы одним запросом(парсинг). Соответственно, люди находили общие части, тут же в preview смотрели - работает или нет, и писали в базу.

no404error
12-02-2008, 19:30
Еще есть подобные программы? SuMO - в пролете, подобные VerChecker интересуют :) А то она на моих задачах загибается.

fantik
12-02-2008, 20:37
no404error,

А что конкретно интересует?

Я планирую в ближайшие пару недель сделать подобный серверный модуль, с которого по xml программа будет получать текущие версии, скажем, с обновлением в 2-3 часа. И по WEB чтобы можно было посмотреть

no404error
12-02-2008, 20:38
fantik
Собирать данные с ~9000 страниц. Кусок текста между X и Y.

fantik
12-02-2008, 20:43
no404error,
Насколько часто? Видишь, даже при хорошем интернете по 1-1,5 секунды уходит на запрос версии, соответственно, с 9000 страниц выйдет 3-4 часа...

Или многопоточную писать, или в веб переводить, что, в принципе, тоже означает писать многопоточную.

Напиши в аську, 389893, поговорим, если интересно, насчет заточек под конкретные нужды

no404error
12-02-2008, 20:54
fantik
Насколько часто?
Раз в месяц.
Видишь, даже при хорошем интернете по 1-1,5 секунды уходит на запрос версии,
Выделенка на конкретный сервер - 4 мегабита.
соответственно, с 9000 страниц выйдет 3-4 часа...
Хорошо бы и так, но он с определенного момента перестает собирать, а просто выдает Error на все.
Или многопоточную писать, или в веб переводить, что, в принципе, тоже означает писать многопоточную.
В чем и суть. Самому мне лениво, имхо дохода с этого - 0. До этого я собирал (жуть) wget + сортировка miopad-ом + чистка руками :) Думал смогу автоматизировать, но не вышло.

p.S. Сейчас пройду вторым разом и отпишу с какой его начинает трясти. Может полезным окажется :)

fantik
12-02-2008, 21:05
no404error,

Да у меня, в принципе, память очищается после каждой итерации, собственно, переполнений никаких быть не должно. Расчитывал на 20-30 сайтов, но, полагаю, и пару десятков тысяч должна выдержать программа, если, конечно, это на экран не в таблице выводить, ибо сама визуальная табличка на 20000 строк будет жрать очень прилично ресурсов.

Если рассматривать вывод, например, в файл, то вообще проблем никаких у вас не будет. Могу дополнить, это не сложно.

В принципе, и количество потоков могу сделать вариабельным, тоже не тяжело

no404error
12-02-2008, 21:10
fantik
После 200 - затыки, после 1000 - сплошные Error.

И результаты не сохраняет.

fantik
12-02-2008, 22:00
no404error,
результаты не сохранит - там кликать надо не каждой строке

А можно ваш ini-файлик глянуть?

no404error
12-02-2008, 22:35
fantik
В личке варианты :)

fantik
12-02-2008, 23:01
no404error,

У меня 502 Bad Gateway выдает на все УРЛы.

А не может ли быть включена на сервере защита от кучи пакетов, идущих с одного айпи? Сомневаюсь, чтобы программа была виновата. Она ж простая, как два пальца...

Кстати, посмотрите, что отвечает сервер после прохождения всего списка - просто войдите в редактирование, и выберите "Код HTML", что выдаст, интересно

no404error
12-02-2008, 23:10
fantik
У меня 502 Bad Gateway выдает на все УРЛы.
Он закрыт для внешних IP.

fantik
13-02-2008, 02:18
Он закрыт для внешних IP. »
Это, безусловно, здорово. Но не мог бы ты сам в таком случае проверить реально, что выдает сервер после всех попыток доступа?




© OSzone.net 2001-2012