Difference between revisions of "FtpSpider"
(удалил ! в начале команд) |
m (GPL -> {{GPL}}) |
||
(7 intermediate revisions by 3 users not shown) | |||
Line 2: | Line 2: | ||
| name=FtpSpider | | name=FtpSpider | ||
| url=[http://mediazona.ru/forum/index.php?automodule=blog&blogid=164&showentry=5022 запись в блоге] | | url=[http://mediazona.ru/forum/index.php?automodule=blog&blogid=164&showentry=5022 запись в блоге] | ||
− | | language= | + | | language={{Lang|b|Python}} |
− | | library= | + | | library={{Lib|xmpppy}} |
− | | license= | + | | license={{GPL}} |
| i18n=да | | i18n=да | ||
| disco=нет | | disco=нет | ||
| plugins=да | | plugins=да | ||
| adhoc=нет | | adhoc=нет | ||
− | }}[[ | + | }} |
+ | Бот является ответвлением (форком) [[Neutron|Нейтрона]]. Основное предназначение — следить за деревом файлов на определенном [[w:FTP|FTP]]-сервере и сообщать пользователями о тех изменениях, которые их интересуют. | ||
+ | |||
+ | Исходный код можно получить из [https://svn.jrudevels.org/ftpspider/ SVN-репозитария] или скачать [http://jrudevels.org/index.php?pg=downloads.php&dir=ftpspider стабильную версию]. | ||
+ | |||
+ | == Алгоритм == | ||
+ | Бот работает по следующему алгоритму: периодически производится сканирование FTP-сервера — создается снимок дерева файлов. Далее определяется разница по сравнению с предыдущим снимком. Из этой разницы для каждого пользователя отдельно выбираются интересующие его изменения и полученный отчет отправляется на его [[JID]]. | ||
+ | |||
+ | Сам бот состоит из двух частей: | ||
+ | * Первая часть является постоянно запущенным ботом, созданным на основе бота neutron. Он принимает команды, общается с пользователями, сохраняет настройки и рассылает отчеты. | ||
+ | * Вторая часть — многопоточный FTP-сканер. Он создает снимок, высчитывает разницу и статистику и полученные данные отправляет боту. | ||
− | |||
− | |||
− | |||
== Команды == | == Команды == | ||
=== Работа со списками === | === Работа со списками === | ||
− | * '''list''' | + | * '''list''' — просмотреть списки. (Include — то, что интересно. Exclude — то что надо пропустить) |
− | * '''add''' | + | * '''add''' — добавить полный URL или его часть в список Include |
− | * '''exclude''' | + | * '''exclude''' — добавить полный URL или его часть в список Exclude |
− | * '''del''' | + | * '''del''' — удалить адрес. Можно указать сам URL или его номер из !list |
− | * '''clear (all, include, exclude)''' | + | * '''clear (all, include, exclude)''' — очистить все или какой-то из фильтров отдельно. |
=== Личные предпочтения === | === Личные предпочтения === | ||
− | * '''show''' | + | * '''show''' — в каком виде высылать url: |
− | ** unquoted | + | ** unquoted — неэкранированный |
− | ** quoted | + | ** quoted — экранированный (по-умолчанию) |
− | ** full | + | ** full — полный (по-умолчанию) |
− | ** path | + | ** path — только путь без сервера |
− | * '''mode''' | + | * '''mode''' — в каком виде вы предпочитаете получать информацию: |
− | ** message | + | ** message — простое сообщение |
− | ** chat | + | ** chat — в чате (по-умолчанию) |
− | ** headline | + | ** headline — как новость (должен поддерживать клиент) |
− | * '''filter''' | + | * '''filter''' — тип информации: |
− | ** add | + | ** add — то, что добавленно (по-умолчанию) |
− | ** del | + | ** del — то, что удалено |
− | ** all | + | ** all — и то и другое |
=== Работа со статистикой === | === Работа со статистикой === | ||
− | * '''stats''' | + | * '''stats''' — показать статистику, собранную во время последнего обхода, и режим вашей подписки на неё |
− | * '''stats <param>''' | + | * '''stats <param>''' — изменить режим подписки: |
− | ** full | + | ** full — получать полную статистику, как её показывает !stats без параметров |
− | ** brief | + | ** brief — получать сокращенный вариант |
− | ** none | + | ** none — не получать статистику (по-умолчанию) |
=== Помощь === | === Помощь === | ||
− | * '''commands''' | + | * '''commands''' — список команд |
− | * '''help''' | + | * '''help''' — справка с примерами |
=== Остальное === | === Остальное === | ||
− | * '''quote''' | + | * '''quote''' — экранировать переданный адрес (один!) |
− | * '''unquote''' | + | * '''unquote''' — разэкранировать переданные адреса (сколько угодно) |
− | * '''test''' | + | * '''test''' — выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats |
− | * '''unregister''' | + | * '''unregister''' — удалить себя из базы и больше ничего не получать |
== FtpSpider и FtpInfo == | == FtpSpider и FtpInfo == | ||
− | Бот по сути является | + | Бот по сути является «серверной» реализацией известной программы [http://www.ftpinfo.ru/ FtpInfo], точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской: |
Плюсы: | Плюсы: | ||
Line 67: | Line 74: | ||
* Нельзя запустить сканирование вручную когда хочется. | * Нельзя запустить сканирование вручную когда хочется. | ||
− | Кроме того, я не учитываю, что у программы FtpInfo есть другие возможности, которых пока нет у бота: поиск в | + | Кроме того, я не учитываю, что у программы FtpInfo есть другие возможности, которых пока нет у бота: поиск в просканированных файлах и т.п. |
== Смотри также == | == Смотри также == | ||
* [[Neutron]] | * [[Neutron]] | ||
− | [[ | + | == Ссылки == |
+ | * [http://bugs.jrudevels.org/index.php?tasks=all&project=7 багтрекер ftpspider-а] | ||
+ | * [https://svn.jrudevels.org/ftpspider/ репозитарий] | ||
+ | * [http://jrudevels.org/index.php?pg=downloads.php&dir=ftpspider стабильные версии] |
Latest revision as of 22:09, 26 July 2009
FtpSpider | |
---|---|
Информация | |
Сайт: | запись в блоге |
Язык: | Python |
Библиотека: | xmpppy |
Лицензия: | GPL |
Характеристики | |
Мультиязычность: | да |
Расширяемость: | да |
Discovery: | нет |
Ad-hoc команды: | нет |
Бот является ответвлением (форком) Нейтрона. Основное предназначение — следить за деревом файлов на определенном FTP-сервере и сообщать пользователями о тех изменениях, которые их интересуют.
Исходный код можно получить из SVN-репозитария или скачать стабильную версию.
Contents
Алгоритм[edit]
Бот работает по следующему алгоритму: периодически производится сканирование FTP-сервера — создается снимок дерева файлов. Далее определяется разница по сравнению с предыдущим снимком. Из этой разницы для каждого пользователя отдельно выбираются интересующие его изменения и полученный отчет отправляется на его JID.
Сам бот состоит из двух частей:
- Первая часть является постоянно запущенным ботом, созданным на основе бота neutron. Он принимает команды, общается с пользователями, сохраняет настройки и рассылает отчеты.
- Вторая часть — многопоточный FTP-сканер. Он создает снимок, высчитывает разницу и статистику и полученные данные отправляет боту.
Команды[edit]
Работа со списками[edit]
- list — просмотреть списки. (Include — то, что интересно. Exclude — то что надо пропустить)
- add — добавить полный URL или его часть в список Include
- exclude — добавить полный URL или его часть в список Exclude
- del — удалить адрес. Можно указать сам URL или его номер из !list
- clear (all, include, exclude) — очистить все или какой-то из фильтров отдельно.
Личные предпочтения[edit]
- show — в каком виде высылать url:
- unquoted — неэкранированный
- quoted — экранированный (по-умолчанию)
- full — полный (по-умолчанию)
- path — только путь без сервера
- mode — в каком виде вы предпочитаете получать информацию:
- message — простое сообщение
- chat — в чате (по-умолчанию)
- headline — как новость (должен поддерживать клиент)
- filter — тип информации:
- add — то, что добавленно (по-умолчанию)
- del — то, что удалено
- all — и то и другое
Работа со статистикой[edit]
- stats — показать статистику, собранную во время последнего обхода, и режим вашей подписки на неё
- stats <param> — изменить режим подписки:
- full — получать полную статистику, как её показывает !stats без параметров
- brief — получать сокращенный вариант
- none — не получать статистику (по-умолчанию)
Помощь[edit]
- commands — список команд
- help — справка с примерами
Остальное[edit]
- quote — экранировать переданный адрес (один!)
- unquote — разэкранировать переданные адреса (сколько угодно)
- test — выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats
- unregister — удалить себя из базы и больше ничего не получать
FtpSpider и FtpInfo[edit]
Бот по сути является «серверной» реализацией известной программы FtpInfo, точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской:
Плюсы:
- Не надо ждать пока дерево просканируется. Вообще не надо об этом заботится: как только данные появятся, вам придет письмо.
- Меньше нагрузки на сервер (один сканер, а не много).
Минусы:
- Меньше контроля и опций.
- Нельзя запустить сканирование вручную когда хочется.
Кроме того, я не учитываю, что у программы FtpInfo есть другие возможности, которых пока нет у бота: поиск в просканированных файлах и т.п.