Задать вопрос
@Lynatik001

Как собрать всю подписоту бота, и отправить им личное сообщение(от бота)?

Использую библиотеку Telegraf - и что-то в документации не могу найти даже как отослать личное сообщение.
Да и команду что б вернула список подписчиков. тоже пока не нашел.

И как лучше всего реализовать?
Запихивать в бд которому уже отослал? - если например аудитория бота 3к людей. - то она может же и прерватся, не заново же тем же пересылать?

Или есть какие пути по проще?:)
  • Вопрос задан
  • 512 просмотров
Подписаться 1 Простой 1 комментарий
Ответ пользователя DTPlayer К ответам на вопрос (4)
@DTPlayer
# -*- coding: utf-8 -*-
import sett
import telebot
import random
import menu
from telebot import types
import time
import traceback

bot = telebot.TeleBot(sett.token)

joinedFile = open('/root/users.txt', 'r')
joinedUser = set()
for line in joinedFile:
    joinedUser.add(line.strip())
joinedFile.close()

@bot.message_handler(commands=['start'])
def start(message):
	try:
		if not str(message.chat.id) in joinedUser:
			file = open('/root/users.txt', 'a')
			file.write(str(message.chat.id) + '\n')
			file.close()
	except Exception as e:
		print(e)
		bot.send_message(sett.admin_id, 'Произошла ошибка, отправьте кодеру!!!\n'+str(e)+'')

@bot.message_handler(commands=['spam'])
def spam(message):
    try:
        if message.chat.id == sett.admin_id:
            for user in joinedUser:
                bot.send_message(user, message.text[message.text.find(' '):])
    except Exception as e:
        print(e)
        bot.send_message(sett.admin_id, 'Произошла ошибка, отправьте кодеру!!!\n'+str(e)+'')

@bot.message_handler(commands=['stats'])
def stats(message):
    try:
        if message.chat.id == sett.admin_id:
            joinedFile = open('/root/users.txt', 'r')
            bot.send_message(message.chat.id, 'Пользователей: *'+str(len(joinedFile.readlines()))'*, parse_mode='markdown')
            joinedFile.close
    except Exception as e:
        print(e)
        bot.send_message(sett.admin_id, 'Произошла ошибка, отправьте кодеру!!!\n'+str(e)+'')

/start - если нету id, его записываьт
/spam - отправка всем сообщения
/stats - кол-во пользователей в боте
Код на python, но от js толком не отличается
Ответ написан