-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathadminCounter.py
48 lines (38 loc) · 1.69 KB
/
adminCounter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import re
import requests
import json
from bs4 import BeautifulSoup
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, TelegramError
from telegram.ext import (Updater, CommandHandler,
MessageHandler, Filters)
from telegram.ext.dispatcher import run_async
import logging
TOKEN = "BOT_TOKEN"
def getAdminCount(channel):
if channel == "":
print("No channel entered. ")
else:
membersCount = requests.post('https://api.telegram.org/bot'+ TOKEN + '/' + 'getChatMembersCount', data={'chat_id' : channel}).text
members = json.loads(membersCount)['result']
bs = BeautifulSoup(requests.get('http://t.me/{}'.format(channel[1:])).text, 'html.parser')
bs.find('div', class_='tgme_page_extra')
members2=int(re.sub('[A-Za-z ]','', bs.find('div', class_="tgme_page_extra").text))
adminCount = members - members2
return adminCount
def start(bot, update):
update.message.reply_text("به ربات پیدا کردن تعداد ادمین های کانال خوش آمدید. برای استفاده از ربات فقط کافیه که شناسه کانال را برای ما بفرستید . \n برای مثال : \n @Channel")
def main_message(bot, update):
channel_id = update.message.text
try:
count = getAdminCount(channel_id)
update.message.reply_text(text="تعداد ادمین های کانال : {}".format(count))
except:
update.message.reply_text(text="کانال مورد نظر یافت نشد")
updater = Updater(TOKEN, workers=32)
dp = updater.dispatcher
logging.info('[+] Robot started')
dp.add_handler(CommandHandler('start', start))
dp.add_handler(MessageHandler(Filters.text, main_message))
# Start the Bot
updater.start_polling()
updater.idle()