Editing FtpSpider

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search

Warning: The database has been locked for maintenance, so you will not be able to save your edits right now. You may wish to copy and paste your text into a text file and save it for later.

The administrator who locked it offered this explanation: MediaWiki upgrading

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
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={{Lang|b|Python}}
+
|        language=[[Python]]
|        library={{Lib|xmpppy}}
+
|        library=[[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>'''&nbsp;&mdash; изменить режим подписки:
+
* '''!stats <param>''' -- изменить режим подписки:
** full&nbsp;&mdash; получать полную статистику, как её показывает !stats без параметров
+
** full -- получать полную статистику, как её показывает !stats без параметров
** brief&nbsp;&mdash; получать сокращенный вариант
+
** brief -- получать сокращенный вариант
** none&nbsp;&mdash; не получать статистику (по-умолчанию)
+
** none -- не получать статистику (по-умолчанию)
  
 
=== Помощь ===
 
=== Помощь ===
* '''commands'''&nbsp;&mdash; список команд
+
* '''!commands''' -- список команд
* '''help'''&nbsp;&mdash; справка с примерами
+
* '''!help''' -- справка с примерами
  
 
=== Остальное ===
 
=== Остальное ===
* '''quote'''&nbsp;&mdash; экранировать переданный адрес (один!)
+
* '''!quote''' -- экранировать переданный адрес (один!)
* '''unquote'''&nbsp;&mdash; разэкранировать переданные адреса (сколько угодно)
+
* '''!unquote''' -- разэкранировать переданные адреса (сколько угодно)
* '''test'''&nbsp;&mdash; выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats
+
* '''!test''' -- выслать пример сообщения и статистики для проверки настроек команд !mode, !filter, !show, !stats
* '''unregister'''&nbsp;&mdash; удалить себя из базы и больше ничего не получать
+
* '''!unregister''' -- удалить себя из базы и больше ничего не получать
  
 
== FtpSpider и FtpInfo ==
 
== FtpSpider и FtpInfo ==
Бот по сути является «серверной» реализацией известной программы [http://www.ftpinfo.ru/ FtpInfo], точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской:
+
Бот по сути является "серверной" реализацией известной программы [http://www.ftpinfo.ru/ FtpInfo], точнее не её полностью, а той части, которая показывает изменения на FTP. Принцип работы тот же самый, но данная серверная реализация имеет следующие плюсы и минусы по сравнению с клиентской:
  
 
Плюсы:
 
Плюсы:
Line 74: Line 67:
 
* Нельзя запустить сканирование вручную когда хочется.
 
* Нельзя запустить сканирование вручную когда хочется.
  
Кроме того, я не учитываю, что у программы 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 стабильные версии]
+

Please note that all contributions to JaWiki (Jabber/XMPP wiki) may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see JaWiki (Jabber/XMPP wiki):Copyrights for details). Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)