ub4tg/misc_beta_bot.py

170 lines
4.5 KiB
Python
Raw Normal View History

2024-07-30 03:02:32 +03:00
# -*- coding: utf-8 -*-
from datetime import datetime, timedelta
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from config import TOKEN
2024-07-30 15:39:11 +03:00
from const import REG_OK
import os
import re
import random
import time
#import pymysql
#import pymysql.cursors
import sqlite3
#print('Bot started')
con = sqlite3.connect("db4tg.sqlite")
cur = con.cursor()
cur.execute('''CREATE TABLE IF NOT EXISTS users (
user_id INTEGER NOT NULL DEFAULT 0 UNIQUE,
reg_int INTEGER NOT NULL DEFAULT 0,
f_name VARCHAR NOT NULL DEFAULT 'хз',
mcoins INTEGER NOT NULL DEFAULT 1024,
2024-07-30 15:54:18 +03:00
rnd_kd INTEGER NOT NULL DEFAULT 0,
2024-07-30 15:39:11 +03:00
lng_code VARCHAR NOT NULL DEFAULT ''
)''');
async def reg_user(message: types.Message):
print(message)
user_id = int(message.from_user.id)
user_fn = message.from_user.first_name or ''
lng_code = message.from_user.language_code or ''
when_int = int(datetime.timestamp(message.date))
try:
cur.execute("INSERT OR IGNORE INTO users(user_id,reg_int,f_name,lng_code) VALUES (?,?,?,?)", (int(user_id),int(when_int),str(user_fn),str(lng_code))); con.commit()
except Exception as Err:
print(Err)
try:
cur.execute("SELECT reg_int FROM users WHERE user_id = %d" % int(user_id));
rd = cur.fetchone();
if rd is None:
return 0
else:
rd=rd[0]
if rd==when_int:
print(REG_OK.get(lng_code, REG_OK['default']).format(user_fn=user_fn))
return rd
except Exception as Err:
print(Err)
return 0
2024-07-30 03:02:32 +03:00
bot = Bot(token=TOKEN)
dp = Dispatcher(bot)
print('Bot started')
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
#print(message)
2024-07-30 15:39:11 +03:00
snd_msg = "🖖"
user_id = int(message.from_user.id)
user_fn = message.from_user.first_name or ''
lng_code = message.from_user.language_code or ''
when_int = int(datetime.timestamp(message.date))
rd=int(await reg_user(message))#create or date
if rd == when_int:
snd_msg = REG_OK.get(lng_code, REG_OK['default']).format(user_fn=user_fn)
await message.answer(snd_msg)
@dp.message_handler(commands=['reg'])
async def cmd_reg(message: types.Message):
#print(message)
snd_msg = "🤷"
user_id = int(message.from_user.id)
user_fn = message.from_user.first_name or ''
lng_code = message.from_user.language_code or ''
when_int = int(datetime.timestamp(message.date))
rd=int(await reg_user(message))#create or date
if rd == when_int:
snd_msg = REG_OK.get(lng_code, REG_OK['default']).format(user_fn=user_fn)
elif rd > 0:
snd_msg = time.strftime('%d.%m.%Y', time.localtime(rd))
await message.answer(snd_msg)
@dp.message_handler(commands=['farm','ферма','random','rand','rnd'])
async def cmd_farm (message: types.Message):
user_id = int(message.from_user.id)
when_int = int(datetime.timestamp(message.date))
await reg_user(message)#register_user
bal = 0
rkd = 0
try:
2024-07-30 15:54:18 +03:00
cur.execute("SELECT mcoins,rnd_kd FROM users WHERE user_id = %d" % int(user_id));
2024-07-30 15:39:11 +03:00
rd = cur.fetchone();
if rd is None:
msg = "ERROR"
else:
#print(rd)
bal = rd[0]
rkd = rd[1]
if when_int > rkd:
rnd = random.randint(-32,64)
if rnd > 0:
msg = f"✅ ok! +{rnd}"
rkd = rnd * 60
if rnd < 0:
msg = f"❎ ой! {rnd}"
rkd = (64-rnd) *32
if rnd == 0:
rnd = 100
rkd = rnd * 64
msg = f"оу! +{rnd}"
bal+=rnd
if bal<10:
bal =10 #я сьодня добрьій.
msg=f"{msg}\n🤑 бл: {bal} \n⌚️ кд: {rkd} сек"
rkd+=when_int
try:
2024-07-30 15:54:18 +03:00
cur.execute("UPDATE users SET mcoins = :bal, rnd_kd = :rkd WHERE user_id = :uid;",
2024-07-30 15:39:11 +03:00
{"rkd":int(rkd),"bal":int(bal),"uid":int(user_id)}); con.commit()
except Exception as Err:
msg = Err
print(Err)
else:
rkd = rkd-when_int
msg=f"\n⌚️ кд: {rkd} сек.\n🤑 бл: {bal}"
except Exception as Err:
msg = Err
print(Err)
await message.answer(msg)
2024-07-30 03:02:32 +03:00
@dp.message_handler(commands=['help'])
async def process_help_command(message: types.Message):
2024-07-30 15:39:11 +03:00
#await message.answer(emoji="🤷")
await message.answer('''
💬 /chats
🎲 /dice
🤑 /rnd
''')
2024-07-30 03:02:32 +03:00
@dp.message_handler(commands=['ping'])
async def process_ping_command(message: types.Message):
await message.reply("PONG!")
2024-07-30 15:39:11 +03:00
@dp.message_handler(commands=['dice','кубик'])
2024-07-30 03:02:32 +03:00
async def cmd_dice(message: types.Message):
await message.answer_dice(emoji="🎲")
@dp.message_handler(commands=['chats','чати','чаты','чаті'])
async def cmd_chats(message: types.Message):
await message.answer('''
@misc_chat
🦠 @misc_flood
🦠 @misc_games
🗃 @misc_files_v2
''')
if __name__ == '__main__':
executor.start_polling(dp)