Open amureki opened 6 years ago
Ещё вопрос: Для бота нужен только интерфейс или вместе с сервером?
@hulygun не будем переусложнять, пока просто код с ботом, возможные настройки через переменные окружения или небольшую sqlite-базу. Как только будут комплексные фичи, подумаем над сервером. :)
копипаста моих сообщений из чатика:
наверное, ботов нужно несколько (мелких, каждый решает свою задачу)
к примеру, было бы полезно, если бы бот мог трекать пакеты pip'а, не только с гитхаба по тегам (как сейчас)
в идеале, чтобы он ещё и changelog'и показывать конкретно для каждого пакета
это бы сэкономило время
то есть мб прямо ссылку на changelog или копипасту оттуда (именно про новую версию)
@amureki То есть только интерфейс. Переменные окружения будут содержать, наверно, только токены доступа, админов бота и общие настройки. в sqlite, думаю, хорошо бы хранить список "популярных" пакетов. Возможен вариант редиса в качестве базы
в идеале, чтобы он ещё и changelog'и показывать конкретно для каждого пакета
Интересно, ченжлог можно засунуть в Instant View?
@amureki Поставь ишью на меня. Сегодня-завтра начну писать
Ещё вопрос: Для бота нужен только интерфейс или вместе с сервером?
вообще, если бы там был PostgreSQL, допустим, то можно было бы каждому пользователя сделать и через PyCharm бы, например, открывали и делали нужные запросы туда)
я вижу тут три проекта
/code, который чистит сообщение и напоминает о правилах (или копипастит сообщение на dpaste/gist)
это лучше как отдельный проект, то есть отдельный репозиторий, отдельный файл, например, код этого проекта может быть project-code
Трекинг популярных django-related пакетов с PyPI
это тоже лучше как отдельный проект, например, project-packages
всё остальное мелкое и может быть, например, в project-common или ещё как-то раздробить на более мелкие проекты
у проектов нет никаких пересечений друг с другом, их объединяет лишь то, что они используются в 1 чатике и их пишут примерно те же люди :-)
для всех трёх проектов я бы рекомендовал https://github.com/python-telegram-bot/python-telegram-bot потому что тут всё готово, только импортировать и погнали)
project-common выглядит как самый простой проект, project-code выглядит как простой, но могут быть сложности и улучшения (например, угадывание типа языка или замена dpaste.de на gist если dpaste.de не работает...) то есть тут начать можно с самого простого и потом постепенно улучшать, есть куда...
project-packages является довольно сложным при грамотной реализации и где много куда можно улучшать, ну, первый вариант, не обязательно делать сложным, но это прямо чуть ли не отдельный стартап) при желании он легко превращается если не в стартап, то в полноценный отдельный проект, данный проект требует наличие базы данных, в других случаях вполне можно было бы просто захардкодить в файлах что-то и менять через pull-request'ы (впрочем тут не настаиваю - как удобнее)
а вот что можно было бы скопипастить или расшарить между этими проектами - некий workflow для сборки/дестирования/деплоя, первая версия может быть какой угодно, но в будущем, конечно, было бы разумно сделать с тестами и прочим таким)
вообще, если бы там был PostgreSQL, допустим, то можно было бы каждому пользователя сделать и через PyCharm бы, например, открывали и делали нужные запросы туда)
Очень плохо. Это либо давать модерам ssh на сервак или разворачивать постгрю жопой наружу. Безопаснее хранить в окружении айдишники админов и реализовать необходимые методы для бота
Очень плохо. Это либо давать модерам ssh на сервак или разворачивать постгрю жопой наружу. Безопаснее хранить в окружении айдишники админов и реализовать необходимые методы для бота
да, этот вариант лучше, но он отнимает время на реализацию, т.е. мб было бы проще всего вообще без базы данных пока там, где это возможно...
да, этот вариант лучше, но он отнимает время на реализацию, т.е. мб было бы проще всего вообще без базы данных пока там, где это возможно...
БД необязательна, а вот разграничение прав на выполнение тех или иных команд было бы кстати. Заложить ALC на начальном этапе необходимо
БД необязательна, а вот разграничение прав на выполнение тех или иных команд было бы кстати. Заложить ALC на начальном этапе необходимо
если мы управляем ботами путём редактирования yaml'ов в репозитории проекта, то, наверное, все команды можно сделать доступными для всех) ну, по крайней мере, я не вижу вот прямо чего-то такого, что нельзя было бы дать обычному члену сообщества, не модератору... увидел, что сосед большой фрагмент кода написал в сообщениях - почему бы не дать ему возможность отправить этот код на dpaste.de вместо модератора? если будет злоупотреблять ботом - можно ведь просто в личку написать предупреждение или типа того, будет злоупотреблять - забаним)
вот что нашёл https://github.com/yoeo/guesslang ну или по старинке заюзать пигментс
Ладно, пора декомпозировать это всё... попробую разделить на подзадачи
вот что нашёл
https://github.com/github/linguist это выглядит лучше, его использует Github
в первой версии project-code лучше без этой фичи, просто лишь бы как на dpaste.de выкладывалось (например, всем указывать тип python)
а уже потом детектить, там или js или python или django templates будет в большинстве случаев
Давайте в первую очередь введем команду /code
чтоб руками маркировать это. Это уже солидно поможет чату, а парсинг добавим после, ибо не тривиальная задачка, можно потонуть.
Где будет хоститься (у меня есть небольшой постоянный сервер, где уже висит бот для django_jobs, могу предложить его)
мне без разницы, один из вариантов такой:
https://seminar.io/2018/09/03/building-serverless-telegram-bot/
если кто-то хочет поиграться с FaaS, сделайте так, там должно быть платно, но очень дёшево
Рассматриваем идею для бота.
Предварительные команды
/rules
/faq
- скидывает сообщение с правилами/tutorials
/doc
- кидает ссылки на туториалы, документацию/code
, который чистит сообщение и напоминает о правилах (или копипастит сообщение на dpaste/gist)/python
- ссылки на пайтон коммьюнити/newbie
- ссылка на бегиннерсовПредварительные фичи
Интерфейс/Конфигурация
Простые настройки, константы через переменные окружения. Вещи вроде ссылок или правил пока можно напрямую закидывать в sqlite-базу (потом подумаем над интерфейсом для админов - через чат или отдельную страничку).
Стек
Открытые вопросы