Руководство по настройке бота @fl_bot_monitor

Бот “Freelance монитор” ( @fl_monitor_bot ) создан для автоматического поиска новых проектов по заданным критериям на разных биржах фриланса с выводом их в одну “ленту” telegram. Подобные боты уже имеются, но я нигде не нашел возможности настроить фильтрацию рассылки (то есть чтобы бот присылал не все новые проекты, а только удовлетворяющие заданным мной условиям).

Бот будет полезен всем фрилансерам любых профессий и специальностей, необходимо только его немного настроить. Как это сделать и будет рассмотрено в этой статье.

Список поддерживаемых сайтов на текущий момент:

Русскоязычные биржи:

Международные биржи:

Еще есть две биржи студенческих работ:

Разумеется, можно подписаться не на все биржи, а только на одну или несколько выбранных.

Если в данном списке нет биржи, с которой Вы работаете, напишите нам ( через команду /feedback ) и мы постараемся ее добавить.


Оглавление

  1. Как это работает
  2. Немного теории
  3. Управление ботом
  4. Параметры сайтов (бирж фриланса)
  5. Пример работы с ботом в текстовом режиме
  6. Справочник по командам бота

Как это работает

Бот регулярно сканирует новые проекты на сайтах бирж и при обнаружении оных рассылает уведомления подписавшимся на них пользователям. Уведомления выглядят примерно следующим образом:

Но прежде чем бот сможет отправлять Вам такие уведомления, необходимо как минимум выполнить следующие действия:

  • Подключить хотя бы одну биржу (сайт)
  • Добавить как минимум одно ключевое “плюс” слово в список “глобальных” ключевых слов (глобальные списки включены по умолчанию для каждого сайта).

Как это сделать, будет подробно изложено в данной статье. В дальнейшем Вы сможете выполнить и более “тонкие” настройки для каждого сайта (биржи).


Немного теории и возможности бота

Прежде чем я приступить к настройкам бота, необходимо объяснить принцип работы бота, чтобы было понятно, что и для чего. Итак, для каждого сайта предусмотрены два типа фильтров:

Можно использовать оба фильтра; можно только какой-то один; можно вообще отключить все фильтры, и тогда все новые проекты будут “сыпаться” вам в чат. По умолчанию (при подключении нового сайта / биржи) включен только фильтр по ключевым словам, фильтр по разделам сайта не работает. Если Вы временно отключали какой-либо сайт, то сделанные ранее настройки сохраняться.

В общем случае схема работы бота выглядит как-то так (категории сайта это тоже самое, что и разделы сайта):

Как настроить фильтры будет описано ниже, пока рассмотрим только механизм их работы.

1. Фильтр по разделам сайта

Список избранных (или исключаемых) разделов настраивается только для каждого сайта отдельно (так как на разных сайтах разные названия разделов). Для фильтра по разделам предусмотрены два режима:

  • только мои – рассылаются проекты только из избранного списка разделов
  • кроме моих – рассылаются проекты только тех разделов, которых нет в списке исключений

Кроме того, можно использовать два режима сравнения названий разделов на сайте и в списке фильтра:

  • частичное – частичное сравнение названий разделов, в списке фильтра можно использовать только определенные фрагменты названий разделов на сайте (например: если Вы указали слово “программирование”, то фильтр сработает и для раздела “web-программирование”). Это позволяет сильно сократить список избранных разделов, но возможны “ложные” срабатывания.
  • целиком – полное сравнение названий разделов, то есть фильтр срабатывает только при полном совпадении названий (регистр символов не учитывается).

2. Фильтр по ключевым словам включает в себя два списка ключевых слов или фраз:

  • “плюс”-слова ( далее [+]-слова ) – для отбора проектов с этими словами
  • “минус”-слова ( далее [-]-слова ) – для исключения проектов с этими словами

Данный фильтр так же регистронезависим и может работать в четырех режимах:

  • Есть [+] – в этом случае в рассылку попадают проекты, в которых есть “плюс”-слова, “минус”-слова не учитываются
  • Нет [-] – в этом случае в рассылку попадают проекты, в которых нет “минус”-слов, “плюс”-слова не учитываются
  • Есть [+] И нет [-] – в этом случае в рассылку попадают проекты, в которых есть “плюс”-слова и нет “минус”-слов
  • Нет [-] ИЛИ есть [+] – в этом случае в рассылку попадают проекты, в которых нет “минус”-слов или есть “плюс”-слова (другими словами, если есть “плюс”-слова – проект придет в любом случае)

По умолчанию включен режим “Есть [+] И нет [-]“.

Методы указания ключевых слов

Ключевые слова (и в “плюс” и в “минус” списках) могут задаваться разными способами:

  • “слово” – если это одно слово, то ищется его наличие в любом месте текста или заголовка проекта, но это обязательно должно быть слово, а не часть слова! Например: для ключевого слова “dle” фильтр сработает на словах “Dle”, “dle”, “DLE”, но не сработает на слове “middle“. При этом следует учитывать, что у слов могут быть разные окончания, суффиксы и т.д. То есть, если Вы задали слово “сайт“, то на фразу в тексте “создание сайта” фильтр не сработает! Если Вам необходимо, чтобы фильтр реагировал на разные варианты написания слов, используйте маску (см. ниже).
  • “фраза” – если в ключевом “слове” присутствует пробел, то такое “слово” считается “фразой” и просто ищется наличие этой фразы любом месте текста проекта или его заголовка. Например: мы задали фразу “sql server“, в этом случае фильтр сработает и на словах “sql Server-е“, и на “MsSQL server“. Этот режим нужен для выделения устойчивых словосочетаний.
  • маска” – если Вам необходимо задать фильтр по какой-либо части слова, можно использовать “маску” (точно такую же как при работе с файлами операционной системы). При этом можно использовать следующие подстановочные символы: “*” – в этом месте может быть любое количество символов (в том числе и ни одного); “?” – в этом месте должен быть один любой символ; “[abcd]” – в этом месте должен быть один из предложенных символов. Например, маска “*dle” сработает и на слове “dle“, и на слове “middle“. Другая, более сложная маска “e[xk][cs]el*” сработает на словах: “excel“, “eksel“, “exsel“, “excele“, “excel-e“, “excel-ем“, и т.д.
  • regexp“. Те, кто знаком с регулярными выражениями, знают, насколько это мощная штука. Бот также позволяет задавать регэкспы в ключевых словах, единственное условие – регулярное выражение должно быть заключено в “обрамляющую” конструкцию из “re:<” и “>” (или “regexp:<” и “>” – так понятнее, но длиннее), то есть примерно так: “re:<ваше регулярное выражение>“. Именно по этим тегам бот определит, что внутри указано регулярное выражение. Например, если поместить следующее выражение “re:<[_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)>” в список “плюс” слов, то бот начнет присылать все проекты, в которых есть хотя бы один адрес электронной почты.

Глобальные списки ключевых слов

Так как чаще всего для всех сайтов используются одни и те же списки ключевых слов, имеет смысл сохранить ключевые слова в “глобальных” списках ключевых слов (то есть общих для всех сайтов), а в параметрах сайтов задействовать соответствующую опцию. Это значительно облегчает настройку фильтров по ключевым словам для каждого сайта. Но если Вам понадобится для какого либо сайта биржи сделать уникальный список ключевых слов, то такая возможность так же предусмотрена.


Управление ботом

Управлять ботом можно как с помощью “кнопочного” меню, так и с помощью текстовых команд. Список команд приведен в конце статьи. Список доступных команд, можно узнать в любой момент с помощью команды /help (или просто help). Скажу отмечу, что управлять ботом посредством вводимых вручную текстовых команд гораздо быстрее, но потребуется их запомнить.

Любые команды можно отправлять как начиная с символа /, так и без него. Регистр команд не важен.

Для вызова меню в любой момент отправьте команду /menu (или просто menu), либо команду /start. Меню выглядит примерно так:

Главное меню бота

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

Для подключения (или отключения) сайтов, а также их настройки, используйте кнопку “Сайты (биржи фриланса)” или команду /sitelist. Это меню будет рассмотрено более подробно в следующем параграфе.

Для того, чтобы попасть в меню настроек бота, нажмите кнопку “Настройки” или отправьте команду /settings.

Меню “Параметры бота”

Для временного отключения рассылки уведомлений о новых проектах (например на время отпуска или выходных) можно воспользоваться кнопками “Рассылка” и “Звук” или же использовать текстовые команды:

/subscribe on – включить рассылку новых проектов

/subscribe off – отключить рассылку новых проектов

/notify on – включить звуковое оповещение

/notify off – отключить звуковое оповещение

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

Кнопка “Главное меню” вызывает переход в главное меню (текстовая команда /menu).

Кнопка “Помощь” вызывает меню справки, в том числе ссылку и на эту статью.

Кнопка “Обратная связь” позволяет отправить какое-либо сообщение администратору бота. Например Вы можете сообщить о найденной проблеме или отправить ссылку на новую биржу, которой еще нет в списке бота.

Кнопка “Статистика” выводит количество проектов в сутки и месяц по обрабатываемым биржам.

Параметры сайтов (бирж фриланса)

Для вызова этого меню отправьте команду /sitelist (или просто sitelist) или просто нажмите кнопку в главном меню бота.

Перечень сайтов и управление ими

Список доступных сайтов может со временем расширяться, мы работаем над этим. Если Вы хотите добавить какой-либо сайт, которого нет в списке, отправьте нам ссылку на него через команду /feedback.

Кнопка “Глобальные (общие для всех сайтов) списки ключевых слов” (аналог команды /wordsglobal) служит для настройки общих для всех сайтов списков “плюс” и “минус” слов. К этому режиму мы вернемся позднее, после рассмотрения настроек фильтров сайтов.

В зависимости от подключенных в данный момент сайтов в списке будет доступна либо одна кнопка “Подключить <название сайта>“; либо две кнопки – “<название сайта>” и “Отключить“. Кнопка “<название сайта>” вызывает переход в меню настройки фильтров по данному сайту. Назначение двух других кнопок в пояснениях не нуждается, я думаю.

Текстовые команды для управления списком сайтов:

/siteadd – добавить сайт / биржу в список подключенных

/sitedel – удалить сайт / биржу из списка подключенных

/siteconf – настройка выбранного сайта / биржи фриланса

Кнопка “Руководство по настройке бота” вызывает вот эту самую статью, которую Вы сейчас читаете.

Кнопка “Главное меню” вызывает переход в главное меню (аналог команды /menu).

Кнопка “Команды” выводит список доступных команд (аналог команды /help).

Нажав кнопку “Подключить <название сайта>” бот добавит выбранный сайт в список Ваших подписок и выдаст предупреждение, что сайт требуется настроить:

Настройка сайта

Нажав кнопочку “<название сайта>” мы попадем в меню настройки фильтров сайта. К тому же эффекту приведет текстовая команда /siteconf <site>:

Параметры сайта

Кнопка “Фильтр по разделам” вызывает подменю настройки фильтра по разделам сайта (аналог команды /catsconf). В принципе, команда /catsconf нужна только для более удобной навигации по меню, в текстовом режиме вводить ее не требуется.

Кнопка “Фильтр по ключевым словам” вызывает подменю настройки фильтра по ключевым словам (аналог команды /wordsconf). Эта команда нужна так же только для навигации.

Кнопка “Нормальный режим / Тестовый режим” позволяет включать или отключать тестовый режим. В тестовом режиме бот будет рассылать все новые проекты, но те проекты, которые не удовлетворяют выбранным условиям, будут помечены соответствующим образом.

Важно! Если Вы управляете ботом через текстовые команды (а не посредством экранных кнопок), то перед тем как что-либо менять в настройках сайта, необходимо обязательно отправить команду /siteconf <site>. Это позволит боту заполнить сайт, который Вы собираетесь настраивать.

Кнопка “Назад” вызывает переход в список сайтов (аналог команды /sitelist).

Кнопка “Главное меню” вызывает переход в главное меню (аналог команды /menu).

Кнопка “Инструкции” вызывает небольшую справочную информацию по режимам работы фильтров проектов (аналог команды /info filters – обратите внимание, команда с параметром).

Кнопка “Команды” выводит список доступных команд (аналог команды /help).

Фильтр по разделам

Кнопка “Фильтр по разделам” вызывает подменю настройки фильтра по разделам сайта (аналогичная текстовая команда /catsconf)

Фильтр по разделам сайта

Кнопка “Разделы сайта” (команда /catssite) выводит список разделов сайта в виде списка строк:

Кнопка “Мой список” (команда /catslist) выводит список избранных или исключаемых разделов (в зависимости от режима работы фильтра – см. ниже).

Кнопки “Добавить разделы” (команда /catsadd) и “Удалить разделы” (команда /catsdel) предназначены для редактирования списка избранных / исключаемых разделов. После выбора этой команды бот запросит список добавляемых или удаляемых разделов:

Можно отправить сразу несколько разделов (строк), при этом каждый отдельный элемент должен располагаться на отдельной строке (как собственно и в списках).

Кнопки “Фильтр: xxx” и “Сравнение: xxx” вызывает подменю выбора режима фильтра по разделам (обе кнопки вызывают одно и то же подменю, две кнопки нужны только для отображения текущего состояния):

Режимы фильтра по разделам

/catsmode off – не использовать фильтр по разделам

/catsmode include – включить режим “только мои”

/catsmode exclude – включить режим “кроме моих”

/catscomp partial – частичное сравнение названий разделов

/catscomp full – полное сравнение названий разделов

Ну и по аналогии с предыдущими меню, здесь также присутствуют кнопки “Назад“, “Главное меню“, “Инструкции“, “Команды“.

Фильтр по ключевым словам

Кнопка “Фильтр по ключевым словам” в меню настройки сайта вызывает подменю настройки фильтра по ключевым словам (аналог команды /wordsconf). По умолчанию включены глобальные списки ключевых слов:

Фильтр по ключевым словам

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

Того же самого эффекта можно добиться посредством команд:

/wordsglb on – использовать глобальные списки ключевых слов

/wordsglb off – использовать для данного сайта индивидуальные списки ключевых слов

Кнопка “Режим: ххх” позволяет выбрать режим работы фильтра:

Режимы фильтры по ключевым словам

Есть [+] – в этом случае в рассылку попадают проекты, в которых есть “плюс”-слова, “минус”-слова не учитываются (команда /wordsmode plus)

Нет [-] – в этом случае в рассылку попадают проекты, в которых нет “минус”-слов, “плюс”-слова не учитываются (команда /wordsmode minus)

Есть [+] И нет [-] – в этом случае в рассылку попадают проекты, в которых есть “плюс”-слова и нет “минус”-слов (команда /wordsmode include)

Нет [-] ИЛИ есть [+] – в этом случае в рассылку попадают проекты, в которых нет “минус”-слов или есть “плюс”-слова (другими словами, если есть “плюс”-слова – проект придет в любом случае) (команда /wordsmode exclude)

Методы указания ключевых слов

Ключевые слова (и в “плюс” и в “минус” списках) могут задаваться разными способами:

  • “слово” – если это одно слово, то ищется его наличие в любом месте текста или заголовка проекта, но это обязательно должно быть слово, а не часть слова! Например: для ключевого слова “dle” фильтр сработает на словах “Dle”, “dle”, “DLE”, но не сработает на слове “middle“.
  • “фраза” – если в ключевом “слове” присутствует пробел, то такое “слово” считается “фразой” и просто ищется наличие этой фразы любом месте текста проекта или его заголовка. Например: мы задали фразу “sql server“, в этом случае фильтр сработает и на словах “sql Server-е“, и на “MsSQL server“. Этот режим нужен для выделения устойчивых словосочетаний.
  • маска” – если Вам необходимо задать фильтр по какой-либо части слова, можно использовать “маску” (точно такую же как при работе с файлами операционной системы). При этом можно использовать следующие подстановочные символы: “*” – в этом месте может быть любое количество символов (в том числе и ни одного); “?” – в этом месте должен быть один любой символ; “[abcd]” – в этом месте должен быть один из предложенных символов. Например, маска “*dle” сработает и на слове “dle“, и на слове “middle“. Другая, более сложная маска “e[xk][cs]el*” сработает на словах: “excel“, “eksel“, “exsel“, “excele“, “excel-e“, “excel-ем“, и т.д.
  • regexp“. Те, кто знаком с регулярными выражениями, знают, насколько это мощная штука. Бот также позволяет задавать регэкспы в ключевых словах, единственное условие – регулярное выражение должно быть заключено в “обрамляющую” конструкцию из “re:<” и “>” (или “regexp:<” и “>” – так понятнее, но длиннее), то есть примерно так: “re:<ваше регулярное выражение>“. Именно по этим тегам бот определит, что внутри указано регулярное выражение. Например, если поместить следующее выражение “re:<[_a-zA-Z\d\-\.]+@([_a-zA-Z\d\-]+(\.[_a-zA-Z\d\-]+)+)>” в список “плюс” слов, то бот начнет присылать все проекты, в которых есть хотя бы один адрес электронной почты.

Кнопка “Отключить фильтр по словам” и команда wordsmode off позволяют не использовать фильтр по ключевым словам.

После выбора нужного режима надпись на кнопке “Режим: ххх” поменяется, отображая текущее состояние.

Обратите внимание: для сайта собственно списки слов можно использовать “общие”, но режим работы фильтра всегда выбирается только индивидуально для каждого сайта.

Использование индивидуальных списков ключевых слов

Если Вам для какого либо сайта использовать индивидуальные списки ключевых слов, нажмите кнопку “Используются глобальные списки ключевых слов” или отправьте команду /wordsglb off. Меню изменится:

Используются локальные списки ключевых слов

Кнопка “[+] слова” (команда /wpluslist) выводит список “плюс” слов, кнопка “[-] слова” (команда /wminuslist) выводит список “минус” слов, кнопка “Все списки ключевых слов” (команда /wordslist) выводит оба списка слов.

Далее следуют кнопки для управления соответствующими списками – добавления и удаления ключевых слов из локальных (индивидуальных) списков.

Здесь также можно использовать текстовые команды:

/wplusadd – добавить ключевое слово в список плюс-слов

/wminusadd – добавить ключевое слово в список минус-слов

/wplusdel – удалить ключевое слово из списка плюс-слов

/wminusdel – удалить ключевое слово из списка минус-слов

Добавлять и удалять слова можно, как и категории, сразу по несколько штук, отправляя каждое отдельное слово или фразу с новой строки.

Управление глобальными списками ключевых слов

Для настройки глобального списка ключевых слов используйте кнопку “Глобальные (общие для сайтов) списки ключевых слов” в меню сайтов или отправьте команду /wordsglobal:

Управление глобальными списками ключевых слов

Меню настройки глобальных списков ключевых слов очень похоже на меню настройки индивидуальных списков, за исключением того, что здесь нет команд для выбора режима фильтра. А так же здесь используются точно те же самые текстовые команды, что и для настройки локальных списков (бот “различает” списки по предварительно отправленной команде “/siteconf xxx” или “/wordsglobal”).


Пример работы с ботом в текстовом режиме

Предположим, в ленту “упал” проект, который Вы не хотели бы получать в дальнейшем.

Добавим одно слово или словосочетание в список исключений. У меня почти везде используются глобальные списки ключевых слов, поэтому я добавлю исключения в список глобальных “минус”-слов. Как это сделать быстро? Очень просто!

  1. Отправим команду /wordsglobal, тем самым указав боту, что сейчас мы собираемся редактировать список глобальных ключевых слов.
  2. Затем отправим команду /wminusadd и в ответ на запрос бота отправляем список добавляемых “минус”-слов.

Пример обмена с ботом текстовыми командами

Вот собственно и все. Это гораздо проще, чем клацать мышкой по кнопкам меню. Хотя и требует запоминания хотя бы некоторых команд.

Последовательность команд для добавления слов или категорий в список конкретного сайта тоже не сильно сложнее – нужно лишь использовать /siteconf вместо /wordsglobal и указать название сайта.


Справочник по командам бота

Меню, помощь и информация:

/menu – главное меню (кнопки с выбором команд)

/info – описание работы бота

/info filters – описание работы фильтров

/help – список доступных команд

/feedback – отправить сообщение администратору бота

Управление учетной записью:

/unregister – удалить учетную запись из сервиса

Управление подпиской и уведомлениями:

/subscribe on – включить рассылку новых проектов

/subscribe off – отключить рассылку новых проектов

/notify on – включить звуковое оповещение

/notify off – отключить звуковое оповещение

Управление биржами (сайтами):

/sitelist – управление списком бирж фриланса

/siteconf – настройка выбранной биржи фриланса

/siteadd – добавить биржу в список подключенных

/sitedel – удалить биржу из списка подключенных

Управление фильтром по разделам сайта:

/catsconf – вызов подменю настройки фильтра по разделам сайта

/catssite – вывод полного списка разделов сайта

/catslist – вывод Вашего списка разделов

/catsadd – добавить раздел в список фильтра

/catsdel – удалить раздел из списка фильтра

/catsmode off – не использовать фильтр по разделам

/catsmode include – включить режим “только мои”

/catsmode exclude – включить режим “кроме моих”

/catscomp partial – частичное сравнение названий разделов

/catscomp full – полное сравнение названий разделов

Управление фильтром по ключевым словам:

/wordsconf – меню настройки фильтра по ключевым словам

/wordslist – вывод списков слов

/wpluslist – вывод списка плюс-слов

/wminuslist – вывод списка минус-слов

/wplusadd – добавить ключевое слово в список плюс-слов

/wminusadd – добавить ключевое слово в список минус-слов

/wplusdel – удалить ключевое слово из списка плюс-слов

/wminusdel – удалить ключевое слово из списка минус-слов

/wordsmode off – не использовать фильтр по ключевым словам

/wordsmode plus – включить режим “есть [+]”

/wordsmode minus – включить режим “нет [-]”

/wordsmode include – включить режим “есть [+] И нет [-]”

/wordsmode exclude – включить режим “нет [-] ИЛИ есть [+]”

/wordsglb on – использовать глобальные списки ключевых слов

/wordsglb off – использовать индивидуальные списки ключевых слов

Управление глобальными списками ключевых слов:

/wordsglobal – настройка глобальных (общие) списков ключевых слов

/wordslist – вывод списков слов

/wpluslist – вывод списка плюс-слов

/wminuslist – вывод списка минус-слов

/wplusadd – добавить ключевое слово в список плюс-слов

/wminusadd – добавить ключевое слово в список минус-слов

/wplusdel – удалить ключевое слово из списка плюс-слов

/wminusdel – удалить ключевое слово из списка минус-слов

Тестовый режим:

/testmode on – рассылать все проекты, но не удовлетворяющие фильтрам маркировать

/testmode off – рассылать только проекты, удовлетворяющие фильтрам

Команды можно вводить и без символа /, например “help” вместо “/help”

Метки:

Добавить комментарий