Skip to content

Instantly share code, notes, and snippets.

@rupython
Created March 23, 2021 22:07
Show Gist options
  • Save rupython/7f963f5603b825acd16b89ac5447e014 to your computer and use it in GitHub Desktop.
Save rupython/7f963f5603b825acd16b89ac5447e014 to your computer and use it in GitHub Desktop.
From: Mr. Blueberry
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