Issues:
- Как будто не работает парсинг вакансий Хабр.Карьеры
- Как будто не работает получение вакансий Хабр.Карьеры следующих страниц кроме первой
- Как будто не работает получение вакансий Хабр.Карьеры следующих страниц кроме первой
- Один раз не находил в json запросе HH - вакансии по id от html запроса
- Один раз не находил в json запросе HH - вакансии по id от html запроса
- Не выводится новая команда TG-бота в Menu и в autocomplete ввода
Refactoring:
- Полностью разделить логику и стейты Telegram бота с API вакансии
- Написать тесты (сначала - тест на корректный парсинг DOM всей информации об аккаунте)
- Не юзать redis как БД
- Переписать на Typescript
- Поправить наименование переменных (не использовать малоосмысленные и короткие названия)
- Команда
/exwords
- посмотреть ваши настроенные исключаемые слова - Команда
/exwords_add
- добавления новых исключаемых слов с сохранением старых - Команда
/exwords_set
- добавления слов из описания, вакансии с которыми уберутся из выдачи - Команда
/unsub
- отписаться от получения новых вакансий - Команда
/sub
- подписаться на получение новых вакансий согласно фильтру при их появлении - Команда
/get [from_day_ago=2]
- получение вакансий согласно фильтру - Команда
/extags
- посмотреть ваши настроенные исключаемые теги - Команда
/extagsadd
- добавление новых исключаемых тегов с сохранением старых - Команда
/extagsset
- добавление тегов, вакансии с которыми уберутся из выдачи - Команда
/rss [link]
- Установка в бот своей ссылки RSS с фильтрами из career.habr.com - Команда
/salary_min_set
- Установка в бот минимум ЗП в вакансиях, где она указана - Команда
/switch_print_without_salary
- Не показывать вакансии без ЗП - Команда
/words_to_salary_correlation
- Вывести корреляцию buzzword/tag с указанной ЗП в вакансиях (min-max, медиана)
- Парсинг страниц одной вакансии - для составления краткого описания вакансии
- Формирование списка ключевых слов и тегов из вакансий, на выбор для исключения
- Кэширования результата запроса RSS вакансий: время кэша зависит от новизны вакансии
- Фильтрация вакансий по словам в описании вакансии (исключающая вакансии, которые они имеют)
- Фильтрация вакансий по тегам (исключающая вакансии, которые они имеют)
- Парсинг вакансий через RSS (с родным фильтром поиска в ссылке)
- Показывать количество откликов на вакансию из json
- Показывать более полную информацию по вакансии из json
- Сортировка вакансий без ЗП - по откликам? дате публикации?
- Плюсовать отклики в группируемых по локациям вакансиям из json
- Показывать дату публикации/последнего изменения из json
- Работа через официальный API
- Поддержка управлением включаемых и исключаемых слов через бота
- Формирование списка ключевых слов из вакансий, на выбор для исключения
- Указание времени редактирования вакансии при редактировании, чтобы не создавалось впечатление что показывают старую вакансию (сохранять id)
- Вынести hash вакансии отдельно в базе данных, отдельно у пользователей, чтобы не было дублирования
- Подписка на вакансии
- Запрос вакансий по фильтру - фильтр из меню, исключаемые и включаемые слова - везде, в названии, в описании (тегов нет)
- Парсинг вакансий
- Деплой на облаке. AWS? Azure? Google Cloud?
- Сортировка вакансий кроме как по ЗП (настраиваемая сортировка?)
- Добавить поиск HH не только удалёнки (через офиц. фильтр), но и вакансий где в описании указана что возможно удаленка
- Поддержка выбора города(ов) (сейчас ищет HH удалёнку, а Habr.career все города)
- Поддержка разных источников вакансий, рефакторинг команд бота (сейчас HH работает только get/sub/unsub - совмещает вакансии с разных источников)
- Объединение похожих вакансий (0.8 по близости тексту (Коэффициент Сёренсена)). Каким образом отображать?
- Вывод требуемого грейда в вакансии (Intern, Junior, Junior-Middle, Middle, Middle++)
- Объединение одинаковых вакансий (100% совпадение текста, исключая местоположение)
- Возвращения хэша вакансий, для функционала исключения старых
- Форматирование вакансии стандартным образом (кратко, единый формат отображения предложения ЗП)
- Парсинг предлагаемой ЗП в удобной валюте/формате
- Кэширования результата запроса курсов валют (на 12 часов)
- Фоллбек при ошибке запроса курса валют на usd/rub 1/80
- Фильтрация вакансий по min/max ЗП (min указывается в запросе чтоб уменьшить количество запросов, а max фильтруется на месте)