Created
March 23, 2021 22:07
-
-
Save rupython/7f963f5603b825acd16b89ac5447e014 to your computer and use it in GitHub Desktop.
From: Mr. Blueberry
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import asyncio | |
import random | |
import sqlite3 | |
import re | |
from aiogram import types | |
from aiogram.types import ParseMode, InlineKeyboardMarkup, InlineKeyboardButton | |
from misc import dp, bot, allow_chats, group_error_msg | |
from datetime import datetime | |
db = sqlite3.connect("bank.db") | |
sql = db.cursor() | |
@dp.message_handler(text_startswith='+') | |
async def save_digit_in_db_handler(message: types.Message): | |
num = message.text[1:] | |
try: | |
int_num = int(num) | |
id = message.from_user.id | |
transfer_ar = int_num | |
if message.reply_to_message.from_user.is_bot == False: | |
if message.reply_to_message.from_user.id == id: | |
pass | |
else: | |
for trans_db in sql.execute(f"SELECT ar FROM user WHERE id_user = {id}"): | |
mts = trans_db[0] | |
sql.execute(f"SELECT id_user FROM user WHERE id_user = {message.reply_to_message.from_user.id}") | |
if sql.fetchone() is None: | |
pass | |
else: | |
for tr_db in sql.execute(f"SELECT ar FROM user WHERE id_user = {message.reply_to_message.from_user.id}"): | |
ots = tr_db[0] | |
if mts >= transfer_ar: | |
sql.execute(f"UPDATE user SET ar = {mts - transfer_ar} WHERE id_user = {id}") | |
sql.execute(f"UPDATE user SET ar = {ots + transfer_ar} WHERE id_user = {message.reply_to_message.from_user.id}") | |
db.commit() | |
await message.answer(f'<b>{message.from_user.get_mention(as_html=True)} передал ' + str(transfer_ar) + f'АР игроку {message.reply_to_message.from_user.get_mention(as_html=True)}</b>', parse_mode='HTML') | |
except ValueError as err: | |
raise SkipHandler | |
@dp.message_handler(commands=['топбанка'], commands_prefix='!') | |
async def top(message: types.Message): | |
a = 1 | |
top = "" | |
for row in sql.execute(f"SELECT username, ar FROM user ORDER BY ar DESC"): | |
top += f"\n{a}. {row[0]}: {row[1]}" | |
a += 1 | |
await message.answer(f'Топ по количеству АР в банке:\n{top}', parse_mode='HTML') | |
@dp.message_handler(commands=['номера'], commands_prefix='!') | |
async def top(message: types.Message): | |
a = 1 | |
top = "" | |
for row in sql.execute(f"SELECT username, post_mesto FROM user ORDER BY post_mesto"): | |
top += f"\n{row[0]}: {row[1]}" | |
a+=1 | |
await message.answer(f'Номера почтовых ячеек:\n{top}', parse_mode='HTML') | |
@dp.message_handler(commands=['номер'], commands_prefix='!') | |
async def kisa(message: types.Message): | |
id = message.from_user.id | |
# Проверка на группу | |
if f'{message.chat.id}' not in allow_chats: | |
return await message.reply(group_error_msg) | |
if message.reply_to_message: | |
for profile in sql.execute(f"SELECT * FROM user WHERE id_user = {message.reply_to_message.from_user.id}"): | |
await message.reply("Номер почтовой ячейки: "+ str(profile[6])+ "", parse_mode='HTML') | |
else: | |
for profile in sql.execute(f"SELECT * FROM user WHERE id_user = {id}"): | |
await message.reply("Номер почтовой ячейки: "+ str(profile[6])+ "", parse_mode='HTML') | |
@dp.message_handler(commands=['банк'], commands_prefix='!') | |
async def balans(message: types.Message): | |
# Проверка на группу | |
if f'{message.chat.id}' not in allow_chats: | |
return await message.reply(group_error_msg) | |
else: | |
id = message.from_user.id | |
for bank in sql.execute(f"SELECT * FROM user WHERE id_user = {id}"): | |
await message.reply("На вашем счету: "+ str(bank[2])+ "АР", parse_mode='HTML') | |
#КОМАНДА !ПРОФИЛЬ | |
@dp.message_handler(commands=['п'], commands_prefix='!') | |
async def porvat(message: types.Message): | |
# Проверка на группу | |
cm_parse = re.compile(r"(!перевод) ?([\w+\D ]+)?") | |
parsed = cm_parse.match(message.text) | |
say = parsed.group(2) | |
text = f"<b>{message.from_user.get_mention(as_html=True)} перевёл {say}!</b>" | |
await message.answer(text, parse_mode=ParseMode.HTML) | |
@dp.message_handler() | |
async def message_text(message: types.Message): | |
id = message.from_user.id | |
username = message.from_user.first_name | |
text = message.from_user.first_name | |
texts = message.from_user.first_name | |
# создание таблицы если она каким-то образом была сциганена | |
sql.execute("""CREATE TABLE IF NOT EXISTS user (id_user INT, username TEXT, ar INT, mesto INT, perevod TEXT, post_ar INT, post_mesto INT, item TEXT)""") | |
db.commit() | |
# проверяем в таблице существование юзера в базе даных | |
sql.execute(F"SELECT id_user FROM user WHERE id_user = {id}") | |
if sql.fetchone() is None: | |
# Добавляем его в гей пати (в базу данных, знаю я еблан, но так тебе будет понятнее ;) ) | |
sql.execute(f"INSERT INTO user VALUES (?, ?, ?, ?, ?, ?, ?, ?)", (id, username, 0, 0, texts, 0, 0, text)) | |
db.commit() | |
else: | |
pass | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment