Как стать автором
Обновить

Комментарии 18

А на данный момент я рассказал все, что хотел, буду рад ответить на ваши вопросы, предложения и комментарии!

Комментариев нет :/
А статья хорошая, и бот тоже(по описанию, пока он мне ничего не прислал). Жду, когда ты прикрутишь кинопоиск, потому что вбивать руками 20-30 фильмов — ну такое себе. Надеюсь, ты не затянешь это на месяцы, не хочется пилить своего бота ради одной фичи.
P.S. А фильм который я добавлял в библиотеку уже вышел на торренты в HDRip(1980*...).
Спасибо за отзыв :)
В плане кинопоиска, уже несколько человек писали про это, так что попробую что-нибудь придумать в ближайшее время. Ну а насчет того, что вы смогли добавить уже вышедший фильм, тут я поделать ничего не могу, увы. Сейчас для проверки используется сайт RG Scarabey, это единственная группа, которая всегда выкладывает фильмы только в хорошем качестве и без рекламы. Если вы знаете какие-то альтернативы или трекеры, где фильмы появляются только в хорошем качестве, я был бы благодарен если бы вы ими поделились :)
Если можешь то расскажи подробно как запустить бота.
Полную настройку. И как быть если провайдер блокирует телеграмм?
Для запуска вам нужно установить все зависимости проекта, переименовать файл .env.example в .env и прописать туда соответствующие значения:
  • Токен для бота получается через @BotFather
  • IMDB_API_KEY получается через OMDB Api
  • В проекте используется MongoDB, соответственно создайте новую БД и пропишите ее название
  • Если хотите заморачиваться с вебхуками, то вам нужен сертификат и порт, на котором они будут слушать обновления от Телеграма
  • ADMIN_ID и ADMIN_PASSWORD используются для админки, соответственно. Для первого следует использовать ваш собственный id аккаунта.


Относительно блокировки, ничего конкретного сказать не могу. У меня бот хостится вне РФ, поэтому никаких проблем с этим нет. Обход нужно использовать непосредственно пользователям, если телеграм у них не работает. Ну а так, можете попробовать настроить прокси для long polling'а, но не уверен, насколько просто это будет сделать.
Спасибо, а как его в режим лонг поллинга переключить?
ADMIN_ID и ADMIN_PASSWORD используются для админки — для админки бота? или чего?
Для первого следует использовать ваш собственный id аккаунта. — аккаунта чего?
простите за непонимательность
буду глупые вопросы задавать
пока буду пример из телеграфа тащить через проксю
подскажите что за хостинг если не секрет

Ок, возможно стоило написать более подробно :)
ADMIN_ID и ADMIN_PASSWORD используются для доступа к админке бота. Там можно посмотреть статистику по пользователям или отправлять сообщения от лица бота. Чтобы зайти туда нужно написать боту из главного меню /admin password, где password это ADMIN_PASSWORD.
А ADMIN_ID это id, который телеграм выдал вам когда вы сделали аккаунт. Чтобы его узнать, вы можете либо зарегистрироваться в боте в своем инстансе и проверить базу данных (там появится пользователь, поле _id и есть id телеграма), либо создать аккаунт в моем боте (ссылка есть в конце статьи), там зайти в настройки -> об аккаунте. Там также будет написан ваш id.
А в плане хостинга, я использую DigitalOcean, стоит 6 евро в месяц за минимальную комплектацию, которой тем не менее хватает для нескольких ботов, VPN и ещё некоторых вещей.

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

Понравилась архитектура вашего бота, и сейчас пытаюсь сделать что-то свое на основе вашего. Скажите, а почему вы в этом файле https://github.com/dmbaranov/evemovies-bot/blob/master/src/bot.ts делаете во 2-й строчке


require('./models');

а затем во 11-й строке


import User from './models/User';
Рад, что вам понравился проект :)
Насчет
require('./models');
, я могу ошибаться, но это сделано для того, чтобы зарегистрировтаь все доступные модели в mongoose и потом не пришлось бы делать это по отдельности.
A
import User from './models/User';
уже потому, что мы обращаемся к этой модели на 133 строке

По моему регистрировать это лишнее.

На самом деле я попробовал запустить бота без этой строчки и действительно все заработало. Но есть подозрения, что в каких-то более сложных случаях это может пригодиться. И в целом, если я не ошибаюсь, то это что-то из разряда good practices. Но, опять же, могу ошибаться :)

Скачал ваш проект и появились еще пару вопросов. Почему когда вы определеляли тип для ContextMessageUpdate вы не сделали interface ContextMessageUpdate extends Context? Без этого он ругается, что поля ctx.from, ctx.reply и так далее незадекларированы у меня. Вы просто игнорировали эти warnings или у меня что-то неправильно настроено и они не должны были появится?
П.С. Делаю первые шаги в typescript и поэтому может спрашиваю элементарные вещи.

Вообще странно, сейчас перепроверил, никаких ворнингов нет и даже Visual Studio Code показывает автодополнение и документацию. На самом деле, telegraf.js уже имеет тип ContextMessageUpdate, который как раз делает extends Context. А локально в проекте я лишь добавил новые поля, которые специфичны только для этого проекта.

Странно, у меня в WebStorm куча ошибок связанных с типизацией

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

Действительно странно. Сейчас открыл в WebStorm то же самое место, что и на вашем скриншоте — никаких ошибок, автодополнение тоже работает. Есть подозрения, что вам надо поиграться в настройках IDE.

Ну и рад, что смог помочь вам определиться с выбором. Я тоже в свое долгое время определялся с выбором фреймворком и пока ни разу не пожалел что выбрал telegraf. Особенно его концепция со стейджами очень сильно помогает в разработке :)
Может быть вопрос будет немного не в тему, но все же попробую задать. У меня тоже есть идея сделать телеграм бота с некоторой функциональностью, но меня останавливает один момент — я не знаю как его продвигать. Может поделитесь опытом?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории