Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- #from telebot.types import Message
- import conf
- import datetime
- import requests
- from requests.auth import HTTPDigestAuth
- import re
- import os
- import telebot
- from telebot import types
- import subprocess
- from subprocess import Popen, PIPE
- from subprocess import call
- #from telegram.ext import CommandHandler
- from imp import reload
- #from telegram.ext import Updater
- #from telegramcalendar import create_calendar
- import shlex
- import time
- from time import sleep
- #import user_list
- # библиотека логгирования
- import logging
- # готовим логи
- logging.basicConfig(filename="oscam.log", filemode ="w", format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
- level=logging.INFO)
- logger = logging.getLogger(__name__)
- #FOMENU, LOGIN, HELP = range(3)
- #updater = Updater(token=conf.token)
- #dispatcher = updater.dispatcher
- #bot_ = telegram.Bot(token = conf.token)
- bot = telebot.TeleBot(conf.token)
- def run_command(command):
- process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
- global textoutput
- textoutput = ''
- while True:
- global output
- output = process.stdout.readline()
- output = output.decode('utf8')
- if output == '' and process.poll() is not None:
- break
- if output:
- print(output.strip())
- textoutput = textoutput + '\n' + output.strip()
- rc = process.poll()
- return rc
- # user_id = {}
- # print(bot.getMe())
- @bot.message_handler(commands=['start'])
- def start(m):
- user = bot.get_me()
- print(user)
- # updates = bot.get_updates(1234,100,20)
- # print(updates)
- reload(conf)
- user_id = str(m.from_user.id)
- if user_id in conf.admin:
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["Tovább..."]])
- bot.send_message(m.chat.id, text="Üdvözöllek a csatornában! ", reply_markup=keyboard)
- # bot.send_chat_action(m.chat.id, action='typing')
- # reply_markup=pages_keyboard(int(m.data[3:]), int(m.data[3:]) + 700)
- else:
- bot.send_message(m.chat.id, 'Nincsenek jogaid ebben a csatornában!')
- @bot.message_handler(commands=['add'])
- #@bot.message_handler(func=lambda m: True, content_types=['text'])
- def login_add(m):
- reload(conf)
- login = m.text
- bot.delete_message(m.chat.id, m.message_id - 1)
- logger.info(login)
- login = login.split()[1].strip()
- print("login=" + login)
- logger.info(m)
- d = "\"'[]"
- user_id = str(m.from_user.id)
- # print ("{login}".format(login=m.text))
- conf_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- for char in d:
- conf_email = str(conf_email).replace(char, "")
- if user_id in conf.admin: #если пользовательский id в списке admin то команда выполняется
- login1 = ''
- # print (str(login))
- if login1 == login:
- msg = bot.send_message(m.chat.id, "Nem adtál meg logint!")
- return login_menu(msg)
- else:
- file = open(conf.oscam_user).read().split('\n')
- data_login = re.findall(login + '\'', str(file))
- # print (data_login)
- for char in d:
- data_login = str(data_login).replace(char, "")
- # print (data_login)
- if data_login == login:
- msg = bot.send_message(m.chat.id, "Ez a login foglalt!")
- return login_menu(msg)
- else:
- now_date = datetime.date.today() # Текущая дата
- cur_year = str(now_date.year) # Год текущий
- cur_month = now_date.month # Месяц текущий
- if cur_month < 10:
- cur_month = str(now_date.month)
- cur_month = '0' + cur_month
- else:
- cur_month = str(now_date.month)
- cur_day = now_date.day # День текущий
- if cur_day < 10:
- cur_day = str(now_date.day)
- cur_day = '0' + cur_day
- else:
- cur_day = str(now_date.day)
- passdate = cur_year + cur_month + cur_day # формируем текущую дату
- from random import choice
- from string import ascii_lowercase
- rand = ''.join(choice(ascii_lowercase) for i in range(5))
- password = passdate + rand
- my_date = datetime.date.today()
- period = datetime.timedelta(days=31)
- expdate = my_date + period
- expdate = str(expdate)
- # keyboard_hider = types.ReplyKeyboardRemove()
- bot.send_chat_action(m.chat.id, 'typing') # show the bot "typing" (max. 5 secs)
- time.sleep(5)
- msg = bot.send_message(m.chat.id, "A(z) *" + login + "* hozzáférés létrehozva:\nuser = " + login + '''\npwd = ''' + password + '''\nexpdate = ''' + expdate, parse_mode="Markdown")
- logger.info(login + " létrehozása {}.".format(m.from_user.username))
- if str(conf_email) != str(conf.admin_email):
- bot.send_message(conf.myid, "A(z) *" + login + "* hozzáférés létrehozva:\nuser = " + login + '''\npwd = ''' + password + '''\nexpdate = ''' + expdate, parse_mode="Markdown")
- adduser_command = '''curl --digest --user ''' + conf.oscam_user + ''':''' + conf.oscam_pass + ''' "''' + conf.oscam_server_port + '''/user_edit.html?user=''' + login + '''&pwd=''' + password + '''&description=''' + conf_email + ''' -1ho&disabled=0&expdate=''' + expdate + '''&failban=0&allowedtimeframe=&allowedprotocols=&group=1%2C2%2C3%2C4%2C5%2C6%2C7&hostname=&uniq=3&max_connections=1&sleep=240&sleepsend=0&monlevel=0&au=&caid=&ident=&chid=&class=&betatunnel=&suppresscmd08=1&umaxidle=-1&emmreassembly=2&preferlocalcards=-1&services=1815_ruter2&services=1802_ruter2&services=0d97_ruter1&services=1880_ruter1&services=xtra_full&numusers=-1&penalty=-1&acosc_max_active_sids=-1&acosc_zap_limit=-1&acosc_penalty=-1&acosc_penalty_duration=-1&acosc_delay=-1&cccmaxhops=10&cccreshare=-1&cccignorereshare=-1&cccstealth=-1&keepalive=0&keepalive=1&cacheex=0&cacheex_maxhop=0&no_wait_time=0&cacheex_ecm_filter=&cacheex_drop_csp=0&cacheex_allow_request=0&cacheex_allow_filter=0&cacheex_allow_filter=1&cacheex_block_fakecws=0&disablecrccacheex=0&disablecrccacheex_only_for=0&disablecrccacheex_only_for=&cwc_disable=0&action=Save&newuser=" -o /dev/null -s'''
- run_command(adduser_command)
- return login_menu(msg)
- @bot.message_handler(commands=['exp'])
- #@bot.message_handler(func=lambda m: True, content_types=['text'])
- def login_expp(m):
- reload(conf)
- user_id = str(m.from_user.id)
- user_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- d = "'[]"
- # msg = bot.send_message(chatid, "Válassz logint: " + str(messid))
- # bot.register_next_step_handler(msg, login_list)
- for char in d:
- user_email = str(user_email).replace(char, "")
- arg = str(m.text)
- print(arg)
- bot.delete_message(m.chat.id, m.message_id - 1)
- bot.delete_message(m.chat.id, m.message_id - 2)
- logger.info(arg)
- arg = arg.rsplit(' ', 3)
- print(arg)
- command = arg[0]
- try:
- login = arg[1]
- except IndexError:
- login = 'null'
- try:
- month = arg[2]
- except IndexError:
- month = 'null'
- print(command + " " + login + " " + str(month))
- print(len(arg))
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- if len(arg) < 3:
- msg = bot.send_message(m.chat.id, "Nem adtál meg egy kötelező paramétert!")
- return login_menu(msg)
- if re.match("^[A-Za-z0-9_-]*$", login) == False:
- msg = bot.send_message(m.chat.id, "Helytelen karakter a login nevében!")
- return login_menu(msg)
- if month == "null":
- msg = bot.send_message(m.chat.id, "Nem adtad meg a hosszabbítandó hónapok számát!")
- return login_menu(msg)
- if re.findall('-', month):
- msg = bot.send_message(m.chat.id, "A hosszabbítandó hónapok száma nem lehet minusszal!")
- return login_menu(msg)
- if month.isdigit() == False:
- msg = bot.send_message(m.chat.id, "A hosszabbítandó hónap(ok) csak szám lehet!")
- return login_menu(msg)
- else:
- file = open(conf.oscam_user, "r").read()
- c = str(file.split('\n'))
- if login in c:
- c = ' '.join(c.split())
- c = c.replace("[acc", "\n[acc")
- login_data = re.findall(login + '.*pwd =\s(\w+).*description =\s(\w+.*@\w+.\w+).*(\d{4}-\d{2}-\d{2})', c)
- if str(login_data).find(str(user_email)) == -1:
- msg = bot.send_message(m.chat.id, "Nem tartozik hozzád ilyen login.")
- else:
- password = re.findall(login + '\'.*pwd =\s(\w+)', c)
- group = re.findall(login + '\'.*group =\s(\w+)', c)
- # print (group)
- exp_month = re.findall(login + '\'.*description =\s\w+.*@\w+.\w+.(\-\d+)', c)
- if str(exp_month) == '[]':
- exp_month = int(0)
- exp_data = re.findall(login + '\'.*(\d{4}-\d{2}-\d{2})', c)
- exp_data = ' '.join(exp_data)
- # print (exp_data)
- today_data = datetime.date.today()
- # print (today_data)
- if datetime.datetime.strptime(str(today_data), "%Y-%m-%d") > datetime.datetime.strptime(
- str(exp_data), "%Y-%m-%d"):
- # period = datetime.timedelta(days=-1)
- # print (period)
- exp_data = today_data - datetime.timedelta(1)
- # print (exp_data)
- # else:
- exp_y, exp_m, exp_d = str(exp_data).split('-')
- # print (exp_y + '.' + exp_m + '.' + exp_d)
- d = "'[]"
- for char in d:
- password = str(password).replace(char, "")
- exp_month = str(exp_month).replace(char, "")
- group = str(group).replace(char, "")
- # exp_data = exp_data.replace(char, "")
- month_new = str(int(exp_month) - int(month))
- # a = str(exp_data).split('-')
- # print (a)
- # aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
- # print(aa)
- exp_m_new = int(exp_m) + int(month)
- if exp_m_new > 12:
- exp_y_new = int(exp_y) + 1
- exp_m_new = int(exp_m_new) - 12
- else:
- exp_y_new = exp_y
- if exp_m_new < 10:
- exp_m_new = '0' + str(exp_m_new)
- exp_data_new = str(exp_y_new) + '-' + str(exp_m_new) + '-' + str(exp_d)
- # print (exp_data_new)
- # file.close()
- # adduser_command = 'echo A(z) ' + login + ' hosszabbítva lett ' + month + ' hóval ' + exp_data_new + ' -ig, tartozás: ' + month_new + ' hó'
- # # file.close()
- # run_command(adduser_command)
- msg = bot.send_message(m.chat.id, "A(z) " + login + " hosszabbítva lett " + month + " hóval " + exp_data_new + " -ig\ntartozás: " + month_new + " hó")
- logger.info(login + " hosszabbítása " + month + " hóval " + exp_data_new + "-ig -> {}.".format(m.from_user.username))
- # if str(user_email) != str(conf.admin_email):
- # data = [('chat_id', conf.chatid), ('disable_web_page_preview', '1'),
- # ('text', user_email + textoutput)]
- # response = requests.post(conf.url, data=data)
- if int(group) == 1:
- # print ('group=1')
- adduser_command = '''curl --digest --user ''' + conf.oscam_user + ''':''' + conf.oscam_pass + ''' "''' + conf.oscam_server_port + '''/user_edit.html?user=''' + login + '''&pwd=''' + password + '''&description=''' + user_email + ''' ''' + month_new + '''ho&disabled=0&expdate=''' + exp_data_new + '''&failban=0&allowedtimeframe=&allowedprotocols=&group=1%2C2%2C3%2C4%2C5%2C6%2C7&hostname=&uniq=3&max_connections=1&sleep=240&sleepsend=0&monlevel=0&au=&caid=&ident=&chid=&class=&betatunnel=&suppresscmd08=1&umaxidle=-1&emmreassembly=2&preferlocalcards=-1&services=1815_ruter2&services=1802_ruter2&services=0d97_ruter1&services=1880_ruter1&services=xtra_full&numusers=-1&penalty=-1&acosc_max_active_sids=-1&acosc_zap_limit=-1&acosc_penalty=-1&acosc_penalty_duration=-1&acosc_delay=-1&cccmaxhops=10&cccreshare=-1&cccignorereshare=-1&cccstealth=-1&keepalive=0&keepalive=1&cacheex=0&cacheex_maxhop=0&no_wait_time=0&cacheex_ecm_filter=&cacheex_drop_csp=0&cacheex_allow_request=0&cacheex_allow_filter=0&cacheex_allow_filter=1&cacheex_block_fakecws=0&disablecrccacheex=0&disablecrccacheex_only_for=0&disablecrccacheex_only_for=&cwc_disable=0&action=Save&newuser=" -o /dev/null -s'''
- run_command(adduser_command)
- else:
- # print ('group=9')
- adduser_command = '''curl --digest --user ''' + conf.oscam_user + ''':''' + conf.oscam_pass + ''' "''' + conf.oscam_server_port + '''/user_edit.html?user=''' + login + '''&pwd=''' + password + '''&description=''' + user_email + ''' ''' + month_new + '''ho&disabled=0&expdate=''' + exp_data_new + '''&failban=0&allowedtimeframe=&allowedprotocols=&group=9&hostname=&uniq=3&max_connections=1&sleep=240&sleepsend=0&monlevel=0&au=&caid=&ident=&chid=&class=&betatunnel=&suppresscmd08=1&umaxidle=-1&emmreassembly=2&preferlocalcards=-1&numusers=-1&penalty=-1&acosc_max_active_sids=-1&acosc_zap_limit=-1&acosc_penalty=-1&acosc_penalty_duration=-1&acosc_delay=-1&cccmaxhops=10&cccreshare=-1&cccignorereshare=-1&cccstealth=-1&keepalive=0&keepalive=1&cacheex=0&cacheex_maxhop=0&no_wait_time=0&cacheex_ecm_filter=&cacheex_drop_csp=0&cacheex_allow_request=0&cacheex_allow_filter=0&cacheex_allow_filter=1&cacheex_block_fakecws=0&disablecrccacheex=0&disablecrccacheex_only_for=0&disablecrccacheex_only_for=&cwc_disable=0&action=Save&newuser=" -o /dev/null -s'''
- run_command(adduser_command)
- else:
- msg = bot.send_message(m.chat.id, "Nincs ilyen login!")
- return login_menu(msg)
- @bot.message_handler(commands=['stat'])
- def login_stat(m):
- reload(conf)
- user_id = str(m.from_user.id)
- user_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- d = "'[]"
- for char in d:
- user_email = str(user_email).replace(char, "")
- arg = str(m.text)
- print(arg)
- bot.delete_message(m.chat.id, m.message_id - 1)
- bot.delete_message(m.chat.id, m.message_id - 2)
- logger.info(arg)
- arg = arg.rsplit(' ', 2)
- print(arg)
- command = arg[0]
- try:
- login = arg[1]
- except IndexError:
- login = 'null'
- print(command + " " + login)
- print(len(arg))
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- if len(arg) < 2:
- msg = bot.send_message(m.chat.id, "Nem adtál meg egy kötelező paramétert!")
- return login_menu(msg)
- else:
- file = open(conf.oscam_user, "r").read()
- c = str(file.split('\n'))
- if login in c:
- c = ' '.join(c.split())
- print(c)
- c = c.replace("[acc", "\n[acc")
- login_data = re.findall(login + '\'.*pwd =\s(\w+).*description =\s(\w+.*@\w+.\w+).*(\d{4}-\d{2}-\d{2})', c)
- print(login_data)
- if str(login_data).find(str(user_email)) == -1:
- msg = bot.send_message(m.chat.id, "Nem tartozik hozzád ilyen login.")
- return login_menu(msg)
- else:
- response = requests.get(conf.oscam_server_port + '/userconfig.html',
- auth=HTTPDigestAuth(conf.oscam_user, conf.oscam_pass))
- # print (response.content)
- y = str(response.content)
- # print (y)
- y = y.replace("</TR>", "\n</TR>")
- # print (y)
- data = re.findall('\n.*' + login + '.*\n', y)
- # print (data)
- data_ip = re.findall(
- 'data-user-name=\"' + login + '\"\sdata-desc.*sort-value=\"(\d+.\d+.\d+.\d+)\"', y)
- data_email = re.findall('TITLE=\"' + login + '\&\#13\;\((\w+.*@\w+.\w+).*\)\"\>\<A\sHREF', y)
- data_status_connected = re.findall(
- 'data-user-name=\"' + login + '\"\sdata-desc.*sort-value=\"\d+.\d+.\d+.\d+\".* TITLE=""><B>(.*)<BR>\d+.\d+.\d+.\d+</TD',
- y)
- data_status_offline = re.findall(
- 'data-user-name=\"' + login + '\".*data-sort-value="" TITLE="">(.*)<BR>.*usercol4', y)
- d = "<>BR\'/"
- for char in d:
- data_status_connected = str(data_status_connected).replace(char, "")
- # \s-\d+\w+
- data_ch = re.findall(login + '\".*usercol6\"\sdata-sort-value=\"([^"]+)\"', y)
- # .*><B>(\w)</B>', y)
- print(data)
- print(data_ip)
- print(data_email)
- print(data_ch)
- # print (data_status_connected)
- # print (data_status_offline)
- d = "\'[]~"
- # login = login + " "
- for char in d:
- data_ip = str(data_ip).replace(char, "")
- data_email = str(data_email).replace(char, "")
- data_ch = str(data_ch).replace(char, "")
- data_status_offline = str(data_status_offline).replace(char, "")
- print(data_ip)
- print(data_email)
- print(data_ch)
- # - data_email = re.findall(login + '.*pwd =\s(\w+).*description =\s(\w+.*@\w+.\w+).*(\d{4}-\d{2}-\d{2})', c)
- # print (login_data)
- conf_email = user_email
- if str(user_email) == str(conf.admin_email):
- conf_email = str(data_email)
- # 2018/01/08 20:33:31 6076DACC c (ecm) anikob1 (1815:000000:75FB/92): cache2 (397 ms) by 1815_local_rtr1 (P/1/2/2) - Film+
- if data_ip != '':
- msg = bot.send_message(m.chat.id,
- login + " " + data_status_connected + " " + data_ip + ": [" + data_ch + "]")
- logger.info(
- login + " státuszának lekérése " + data_status_connected + " " + data_ip + ": [" + data_ch + "] -> {}.".format(m.from_user.username))
- if str(conf_email) != str(conf.admin_email):
- data = [('chat_id', conf.chatid), ('disable_web_page_preview', '1'), ('text',
- conf_email + "\n" + login + " " + data_status_connected + " " + data_ip + ': [' + data_ch + ']')]
- response = requests.post(conf.url, data=data)
- else:
- msg = bot.send_message(m.chat.id, login + " " + data_status_offline)
- if str(conf_email) != str(conf.admin_email):
- data = [('chat_id', conf.chatid), ('disable_web_page_preview', '1'),
- ('text', conf_email + "\n" + login + " " + data_status_offline)]
- response = requests.post(conf.url, data=data)
- else:
- msg = bot.send_message(m.chat.id, "Nincs ilyen login!")
- return login_menu(msg)
- @bot.message_handler(commands=['sendLongText'])
- def command_long_text(m):
- cid = m.chat.id
- bot.send_message(cid, "If you think so...")
- bot.send_chat_action(cid, 'typing') # show the bot "typing" (max. 5 secs)
- time.sleep(3)
- bot.send_message(cid, ".")
- @bot.message_handler("text")
- def login_menu(message):
- chatid = message.chat.id
- messid = message.message_id
- # bot.delete_message(chatid, messid)
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in
- ["Hozzáadás", "Hosszabbítás", "Össztartozás"]])
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in
- ["Login adatok", "Státusz"]])
- bot.send_chat_action(chatid, 'typing') # show the bot "typing" (max. 5 secs)
- time.sleep(5)
- bot.send_message(chatid, text="Login műveletek: ", reply_markup=keyboard)
- # bot.register_next_step_handler(msg, fomenu)
- return keyboard
- @bot.callback_query_handler(func=lambda c: True)
- def fo_menu(c):
- reload(conf)
- logger.info(c)
- chatid = c.message.chat.id
- messid = c.message.message_id
- user_id = str(c.from_user.id)
- user_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- d = "'[]"
- # msg = bot.send_message(chatid, "Válassz logint: " + str(messid))
- # bot.register_next_step_handler(msg, login_list)
- for char in d:
- user_email = str(user_email).replace(char, "")
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- with open(conf.oscam_user) as f:
- file = f.read()
- s = str(file.split('\n'))
- if user_email in s:
- s = ' '.join(s.split())
- s = s.replace("[acc", "\n[acc")
- user_list = re.findall('user = (\w+).*description =\s' + user_email, s)
- f.close()
- # if c.data == 'Össztartozás':
- if c.data.find('Össztartozás')>=0:
- bot.delete_message(c.message.chat.id, c.message.message_id)
- d = "'[]"
- print(d)
- for char in d:
- user_email = str(user_email).replace(char, "")
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- with open(conf.oscam_user) as f:
- file = f.read()
- s = str(file.split('\n'))
- if user_email in s:
- s = ' '.join(s.split())
- s = s.replace("[acc", "\n[acc")
- exp_month_data = re.findall('user = (\w+).*description =\s' + user_email + '\s(-\d+ho)', s)
- print(exp_month_data)
- exp_month_data = str(exp_month_data).replace("[('", "").replace("')]", "").replace("', '", ": ").replace(
- "'), ('", "\n").replace("ho", " hó")
- print(exp_month_data)
- if str(user_email) != str(conf.admin_email):
- data = [('chat_id', conf.chatid), ('disable_web_page_preview', '1'),
- ('text', user_email + '\n' + str(exp_month_data))]
- response = requests.post(conf.url, data=data)
- # bot.edit_message_text(chat_id=c.message.chat.id, message_id=c.message.message_id, text='*Össztartozásod:*\n' + exp_month_data, parse_mode='Markdown')
- logger.info("Tartozás lekérése {}.".format(c.from_user.username))
- msg = bot.send_message(c.message.chat.id, text='*Össztartozásod:*\n' + exp_month_data, parse_mode='Markdown')
- f.close()
- return login_menu(msg)
- else:
- bot.send_message(chatid, 'Nincsenek jogaid ebben a csatornában!')
- elif c.data.find('Tovább')>=0:
- bot.delete_message(c.message.chat.id, c.message.message_id)
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["Hozzáadás", "Hosszabbítás", "Össztartozás"]])
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["Login adatok", "Státusz"]])
- bot.send_message(c.message.chat.id, text="Login műveletek: ", reply_markup=keyboard)
- # return login_menu(msg)
- # bot.send_chat_action(chatid, action='typing')
- # bot.register_next_step_handler(msg, login)
- elif c.data.find('Hozzáadás')>=0:
- bot.delete_message(c.message.chat.id, c.message.message_id)
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["\U000023EA Vissza"]])
- bot.send_message(chatid, "Adja meg a login nevét az /add parancs után", reply_markup=keyboard)
- bot.register_next_step_handler_by_chat_id(chatid, login_add)
- elif c.data.find('Hosszabbítás')>=0:
- bot.delete_message(c.message.chat.id, c.message.message_id)
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in user_list])
- keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["\U000023EA Vissza"]])
- # user_list = ', '.join(user_list)
- bot.send_message(chatid, "Add meg a login nevét az /exp parancs után, majd a hosszabbítás értékét hónapokban.\nPélda: /exp janika 3", reply_markup=keyboard)
- # bot.send_message(chatid, "Loginjaid: " + user_list, reply_markup=keyboard)
- bot.register_next_step_handler_by_chat_id(chatid, login_exp)
- elif c.data.find('Login adatok')>=0:
- bot.delete_message(chatid, messid)
- keyboard = types.InlineKeyboardMarkup()
- keyboard.add(
- *[types.InlineKeyboardButton(text=name, callback_data=name) for name in user_list])
- bot.send_message(chatid, "Login adatok lekérése: ", reply_markup=keyboard)
- elif c.data.find('Státusz')>=0:
- bot.delete_message(chatid, messid)
- keyboard = types.InlineKeyboardMarkup()
- # keyboard.add(*[types.InlineKeyboardButton(text=name, callback_data=name) for name in ["\U000023EA Vissza"]])
- #user_list = ', '.join(user_list)
- bot.send_message(chatid,
- "Add meg a login nevét az /stat parancs után.\nPélda: /stat lenke")
- # markup = types.ReplyKeyboardMarkup()
- # markup.add(*[types.KeyboardButton(text=name) for name in user_list])
- # itembtn1 = types.KeyboardButton('a')
- # itembtn2 = types.KeyboardButton('v')
- # itembtn3 = types.KeyboardButton('d')
- # markup.add(itembtn1, itembtn2, itembtn3)
- # bot.send_message(chatid, "Valaszd ki a logint:", reply_markup=keyboard)
- # bot.send_message(chatid, "Loginjaid: " + user_list, reply_markup=keyboard)
- keyboard.add(
- *[types.InlineKeyboardButton(text=name, callback_data=name) for name in user_list])
- bot.send_message(chatid, "Statusz lekérése: ", reply_markup=keyboard)
- # bot.register_next_step_handler_by_chat_id(chatid, login_stat)
- else:
- if c.data in user_list:
- if "pappjuli":
- """ТУТ можешь чтото делать, тут проверка на то если была нажата какаято кнопка имя которой есть в списке юзеров"""
- def login_exppp(c):
- if c.data in user_list:
- # print(cdata)
- bot.delete_message(chatid, messid)
- # bot.edit_message_text(chat_id=c.message.chat.id, message_id=c.message.message_id, text='*Jelszavad:*\n' + "jelszó " + str(messid), parse_mode='Markdown')
- user_id = str(c.from_user.id)
- user_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- d = "'[]"
- for char in d:
- user_email = str(user_email).replace(char, "")
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- with open(conf.oscam_user) as f:
- file = f.read()
- s = str(file.split('\n'))
- if user_email in s:
- s = ' '.join(s.split())
- s = s.replace("[acc", "\n[acc")
- user_login = str(c.data)
- # user_pass = ''.join(re.findall(user_login + '\'.*pwd =\s(\w+)', s))
- user_pass = ''.join(re.findall(user_login + '\'.*pwd =\s(\w+)', s))
- user_expdate = ''.join(re.findall(user_login + '\'.*(\d{4}-\d{2}-\d{2})', s))
- f.close()
- msg = bot.send_message(chatid, "*" + user_login + " adatai:*\njelszó: " + user_pass + "\nérvényessége: " + user_expdate,
- parse_mode='Markdown')
- logger.info("Adatok lekérése: " + user_login + " -> [" + user_pass + "] -> [" + user_expdate + "] -> " + c.from_user.username)
- return login_menu(msg)
- def login_exp(c):
- print(c.text)
- if c.text in user_list:
- print(c.data)
- reload(conf)
- user_id = str(m.from_user.id)
- user_email = re.findall(user_id + '\',\s\'([\w.-]+@[\w.-]+.\w+)', str(conf.admin))
- d = "'[]"
- # msg = bot.send_message(chatid, "Válassz logint: " + str(messid))
- # bot.register_next_step_handler(msg, login_list)
- for char in d:
- user_email = str(user_email).replace(char, "")
- arg = str(m.text)
- print(arg)
- bot.delete_message(m.chat.id, m.message_id - 1)
- bot.delete_message(m.chat.id, m.message_id - 2)
- logger.info(arg)
- arg = arg.rsplit(' ', 3)
- print(arg)
- command = arg[0]
- try:
- login = arg[1]
- except IndexError:
- login = 'null'
- try:
- month = arg[2]
- except IndexError:
- month = 'null'
- print(command + " " + login + " " + str(month))
- print(len(arg))
- if user_id in conf.admin: # если пользовательский id в списке admin то команда выполняется
- if len(arg) < 3:
- msg = bot.send_message(m.chat.id, "Nem adtál meg egy kötelező paramétert!")
- return login_menu(msg)
- if re.match("^[A-Za-z0-9_-]*$", login) == False:
- msg = bot.send_message(m.chat.id, "Helytelen karakter a login nevében!")
- return login_menu(msg)
- if month == "null":
- msg = bot.send_message(m.chat.id, "Nem adtad meg a hosszabbítandó hónapok számát!")
- return login_menu(msg)
- if re.findall('-', month):
- msg = bot.send_message(m.chat.id, "A hosszabbítandó hónapok száma nem lehet minusszal!")
- return login_menu(msg)
- if month.isdigit() == False:
- msg = bot.send_message(m.chat.id, "A hosszabbítandó hónap(ok) csak szám lehet!")
- return login_menu(msg)
- else:
- file = open(conf.oscam_user, "r").read()
- c = str(file.split('\n'))
- if login in c:
- c = ' '.join(c.split())
- c = c.replace("[acc", "\n[acc")
- login_data = re.findall(login + '.*pwd =\s(\w+).*description =\s(\w+.*@\w+.\w+).*(\d{4}-\d{2}-\d{2})', c)
- if str(login_data).find(str(user_email)) == -1:
- msg = bot.send_message(m.chat.id, "Nem tartozik hozzád ilyen login.")
- else:
- password = re.findall(login + '\'.*pwd =\s(\w+)', c)
- group = re.findall(login + '\'.*group =\s(\w+)', c)
- # print (group)
- exp_month = re.findall(login + '\'.*description =\s\w+.*@\w+.\w+.(\-\d+)', c)
- if str(exp_month) == '[]':
- exp_month = int(0)
- exp_data = re.findall(login + '\'.*(\d{4}-\d{2}-\d{2})', c)
- exp_data = ' '.join(exp_data)
- # print (exp_data)
- today_data = datetime.date.today()
- # print (today_data)
- if datetime.datetime.strptime(str(today_data), "%Y-%m-%d") > datetime.datetime.strptime(
- str(exp_data), "%Y-%m-%d"):
- # period = datetime.timedelta(days=-1)
- # print (period)
- exp_data = today_data - datetime.timedelta(1)
- # print (exp_data)
- # else:
- exp_y, exp_m, exp_d = str(exp_data).split('-')
- # print (exp_y + '.' + exp_m + '.' + exp_d)
- d = "'[]"
- for char in d:
- password = str(password).replace(char, "")
- exp_month = str(exp_month).replace(char, "")
- group = str(group).replace(char, "")
- # exp_data = exp_data.replace(char, "")
- month_new = str(int(exp_month) - int(month))
- # a = str(exp_data).split('-')
- # print (a)
- # aa = datetime.date(int(a[0]),int(a[1]),int(a[2]))
- # print(aa)
- exp_m_new = int(exp_m) + int(month)
- if exp_m_new > 12:
- exp_y_new = int(exp_y) + 1
- exp_m_new = int(exp_m_new) - 12
- else:
- exp_y_new = exp_y
- if exp_m_new < 10:
- exp_m_new = '0' + str(exp_m_new)
- exp_data_new = str(exp_y_new) + '-' + str(exp_m_new) + '-' + str(exp_d)
- # print (exp_data_new)
- # file.close()
- # adduser_command = 'echo A(z) ' + login + ' hosszabbítva lett ' + month + ' hóval ' + exp_data_new + ' -ig, tartozás: ' + month_new + ' hó'
- # # file.close()
- # run_command(adduser_command)
- msg = bot.send_message(m.chat.id, "A(z) " + login + " hosszabbítva lett " + month + " hóval " + exp_data_new + " -ig\ntartozás: " + month_new + " hó")
- logger.info(login + " hosszabbítása " + month + " hóval " + exp_data_new + "-ig -> {}.".format(m.from_user.username))
- # if str(user_email) != str(conf.admin_email):
- # data = [('chat_id', conf.chatid), ('disable_web_page_preview', '1'),
- # ('text', user_email + textoutput)]
- # response = requests.post(conf.url, data=data)
- if int(group) == 1:
- # print ('group=1')
- adduser_command = '''curl --digest --user ''' + conf.oscam_user + ''':''' + conf.oscam_pass + ''' "''' + conf.oscam_server_port + '''/user_edit.html?user=''' + login + '''&pwd=''' + password + '''&description=''' + user_email + ''' ''' + month_new + '''ho&disabled=0&expdate=''' + exp_data_new + '''&failban=0&allowedtimeframe=&allowedprotocols=&group=1%2C2%2C3%2C4%2C5%2C6%2C7&hostname=&uniq=3&max_connections=1&sleep=240&sleepsend=0&monlevel=0&au=&caid=&ident=&chid=&class=&betatunnel=&suppresscmd08=1&umaxidle=-1&emmreassembly=2&preferlocalcards=-1&services=1815_ruter2&services=1802_ruter2&services=0d97_ruter1&services=1880_ruter1&services=xtra_full&numusers=-1&penalty=-1&acosc_max_active_sids=-1&acosc_zap_limit=-1&acosc_penalty=-1&acosc_penalty_duration=-1&acosc_delay=-1&cccmaxhops=10&cccreshare=-1&cccignorereshare=-1&cccstealth=-1&keepalive=0&keepalive=1&cacheex=0&cacheex_maxhop=0&no_wait_time=0&cacheex_ecm_filter=&cacheex_drop_csp=0&cacheex_allow_request=0&cacheex_allow_filter=0&cacheex_allow_filter=1&cacheex_block_fakecws=0&disablecrccacheex=0&disablecrccacheex_only_for=0&disablecrccacheex_only_for=&cwc_disable=0&action=Save&newuser=" -o /dev/null -s'''
- run_command(adduser_command)
- else:
- # print ('group=9')
- adduser_command = '''curl --digest --user ''' + conf.oscam_user + ''':''' + conf.oscam_pass + ''' "''' + conf.oscam_server_port + '''/user_edit.html?user=''' + login + '''&pwd=''' + password + '''&description=''' + user_email + ''' ''' + month_new + '''ho&disabled=0&expdate=''' + exp_data_new + '''&failban=0&allowedtimeframe=&allowedprotocols=&group=9&hostname=&uniq=3&max_connections=1&sleep=240&sleepsend=0&monlevel=0&au=&caid=&ident=&chid=&class=&betatunnel=&suppresscmd08=1&umaxidle=-1&emmreassembly=2&preferlocalcards=-1&numusers=-1&penalty=-1&acosc_max_active_sids=-1&acosc_zap_limit=-1&acosc_penalty=-1&acosc_penalty_duration=-1&acosc_delay=-1&cccmaxhops=10&cccreshare=-1&cccignorereshare=-1&cccstealth=-1&keepalive=0&keepalive=1&cacheex=0&cacheex_maxhop=0&no_wait_time=0&cacheex_ecm_filter=&cacheex_drop_csp=0&cacheex_allow_request=0&cacheex_allow_filter=0&cacheex_allow_filter=1&cacheex_block_fakecws=0&disablecrccacheex=0&disablecrccacheex_only_for=0&disablecrccacheex_only_for=&cwc_disable=0&action=Save&newuser=" -o /dev/null -s'''
- run_command(adduser_command)
- else:
- msg = bot.send_message(m.chat.id, "Nincs ilyen login!")
- return login_menu(msg)
- if c.data == '\U000023EA Vissza':
- bot.delete_message(chatid, messid)
- msg = bot.send_message(chatid, 'Visszalépés')
- return login_menu(msg)
- # cdata = str(c.data)
- # print(cdata)
- # expdate(c)
- # bot.register_next_step_handler_by_chat_id(msg, expdate)
- #@bot.message_handler(func=lambda message: message.text in user_list)
- #@bot.callback_query_handler(func=lambda c: True)
- #@bot.message_handler(commands=['login'])
- #@bot.message_handler(func=lambda m: True)
- #config parser
- #def login_add
- # # your code
- # config['section']['key'] = name
- if __name__ == '__main__':
- bot.skip_pending = True
- bot.polling(none_stop=True)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement