Difference between revisions of "FtpSpider"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
(удалил ! в начале команд)
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=[[Python]]
+
|        language={{Lang|b|Python}}
|        library=[[xmpppy]]
+
|        library={{Lib|xmpppy}}
|        license=[[GPL]]
+
|        license={{GPL}}
 
|            i18n=да
 
|            i18n=да
 
|          disco=нет
 
|          disco=нет
 
|        plugins=да
 
|        plugins=да
 
|          adhoc=нет
 
|          adhoc=нет
}}[[Category:Python]][[Category:Python_Bot]][[Category:xmpppy]][[Category:GPL]]
+
}}
 +
Бот является ответвлением (форком) [[Neutron|Нейтрона]]. Основное предназначение — следить за деревом файлов на определенном [[w:FTP|FTP]]-сервере и сообщать пользователями о тех изменениях, которые их интересуют.
 +
 
 +
Исходный код можно получить из [https://svn.jrudevels.org/ftpspider/ SVN-репозитария] или скачать [http://jrudevels.org/index.php?pg=downloads.php&dir=ftpspider стабильную версию].
 +
 
 +
== Алгоритм ==
 +
Бот работает по следующему алгоритму: периодически производится сканирование FTP-сервера — создается снимок дерева файлов. Далее определяется разница по сравнению с предыдущим снимком. Из этой разницы для каждого пользователя отдельно выбираются интересующие его изменения и полученный отчет отправляется на его [[JID]].
 +
 
 +
Сам бот состоит из двух частей:
 +
* Первая часть является постоянно запущенным ботом, созданным на основе бота neutron. Он принимает команды, общается с пользователями, сохраняет настройки и рассылает отчеты.
 +
* Вторая часть — многопоточный FTP-сканер. Он создает снимок, высчитывает разницу и статистику и полученные данные отправляет боту.
  
Бот является [[fork|ответвлением]] (форком) [[Neutron|Нейтрона]]. Основное предназначение — следить за изменениями файлов на определенном [[FTP]]-сервере и сообщать пользователями то, что их интересует. Исходный код скоро будет доступен.
 
{{todo|Опубликовать исходные коды}}
 
  
Работает по следующему алгоритму: периодически производится сканирование FTP-дерева и определяется разницу по сравнению с предыдущим результатом опроса. Потом для каждого пользователя из разницы выбираются интересующие файлы в соотвествии с введенными пользователем фильтрами и результат отправляется на его [[JID]].
 
  
 
== Команды ==
 
== Команды ==
 
=== Работа со списками ===
 
=== Работа со списками ===
* '''list''' -- просмотреть списки. (Include -- то, что интересно. Exclude -- то что надо пропустить)
+
* '''list''' — просмотреть списки. (Include — то, что интересно. Exclude — то что надо пропустить)
* '''add''' -- добавить полный URL или его часть в список Include
+
* '''add''' — добавить полный URL или его часть в список Include
* '''exclude''' -- добавить полный URL или его часть в список Exclude
+
* '''exclude''' — добавить полный URL или его часть в список Exclude
* '''del''' -- удалить адрес. Можно указать сам URL или его номер из !list
+
* '''del''' — удалить адрес. Можно указать сам URL или его номер из !list
* '''clear (all, include, exclude)''' -- очистить все или какой-то из фильтров отдельно.
+
* '''clear (all, include, exclude)''' — очистить все или какой-то из фильтров отдельно.
  
 
=== Личные предпочтения ===
 
=== Личные предпочтения ===
* '''show''' -- в каком виде высылать url:
+
* '''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>'''&nbsp;&mdash; изменить режим подписки:
** full -- получать полную статистику, как её показывает !stats без параметров
+
** full&nbsp;&mdash; получать полную статистику, как её показывает !stats без параметров
** brief -- получать сокращенный вариант
+
** brief&nbsp;&mdash; получать сокращенный вариант
** none -- не получать статистику (по-умолчанию)
+
** none&nbsp;&mdash; не получать статистику (по-умолчанию)
  
 
=== Помощь ===
 
=== Помощь ===
* '''commands''' -- список команд
+
* '''commands'''&nbsp;&mdash; список команд
* '''help''' -- справка с примерами
+
* '''help'''&nbsp;&mdash; справка с примерами
  
 
=== Остальное ===
 
=== Остальное ===
* '''quote''' -- экранировать переданный адрес (один!)
+
* '''quote'''&nbsp;&mdash; экранировать переданный адрес (один!)
* '''unquote''' -- разэкранировать переданные адреса (сколько угодно)
+
* '''unquote'''&nbsp;&mdash; разэкранировать переданные адреса (сколько угодно)
* '''test''' -- выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats
+
* '''test'''&nbsp;&mdash; выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats
* '''unregister''' -- удалить себя из базы и больше ничего не получать
+
* '''unregister'''&nbsp;&mdash; удалить себя из базы и больше ничего не получать
  
 
== FtpSpider и FtpInfo ==
 
== FtpSpider и FtpInfo ==
Бот по сути является "серверной" реализацией известной программы [http://www.ftpinfo.ru/ FtpInfo], точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской:
+
Бот по сути является «серверной» реализацией известной программы [http://www.ftpinfo.ru/ FtpInfo], точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской:
  
 
Плюсы:
 
Плюсы:
Line 67: Line 74:
 
* Нельзя запустить сканирование вручную когда хочется.
 
* Нельзя запустить сканирование вручную когда хочется.
  
Кроме того, я не учитываю, что у программы FtpInfo есть другие возможности, которых пока нет у бота: поиск в просканиированных файлах и т.п.
+
Кроме того, я не учитываю, что у программы FtpInfo есть другие возможности, которых пока нет у бота: поиск в просканированных файлах и т.п.
  
 
== Смотри также ==
 
== Смотри также ==
 
* [[Neutron]]
 
* [[Neutron]]
  
[[Category:Bot]]
+
== Ссылки ==
 +
* [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-репозитария или скачать стабильную версию.

Алгоритм[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 есть другие возможности, которых пока нет у бота: поиск в просканированных файлах и т.п.

Смотри также[edit]

Ссылки[edit]