Skip to content
This repository has been archived by the owner on Dec 12, 2023. It is now read-only.

Commit

Permalink
A very little update
Browse files Browse the repository at this point in the history
1. Добавлена команда /show для админов
2. Добавлено пару проверок перед подключением к БД
3. Немного комментариев и косметических изменений
  • Loading branch information
a committed Jul 16, 2021
1 parent b2e6011 commit c203db9
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 9 deletions.
70 changes: 62 additions & 8 deletions main.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import sqlite3

from aiogram import Bot, Dispatcher, executor, types
from random import randint
from json import loads
from time import time
from os import path

from config import *
from random import randint
from json import loads
from os import path
from time import time

if not TOKEN:
print("[!] Empty token!!")
Expand All @@ -26,6 +27,9 @@


class ass_info_obj():
'''
Used for better understanding ass_info
'''
def __init__(self, ass_info: tuple):
self.id = ass_info[0]
self.username = ass_info[1]
Expand Down Expand Up @@ -140,6 +144,7 @@ def ass_main(ass_info, database, group_id):


if not path.exists("list"):
# it created database if it doesn't exist + create tables
database = sqlite3.connect("list")
database.execute("""
CREATE TABLE `reports` (
Expand Down Expand Up @@ -299,6 +304,12 @@ async def show_blacklisted_users(message: types.Message):
elif len(group_id) < 5:
await message.reply("Неповний ID группи!")
else:
try:
group_id_tmp = int(group_id)
except ValueError:
await message.reply("Вибач, але не знаю такої групи.")
return

database = sqlite3.connect("list")
try:
cursor = database.execute("""
Expand Down Expand Up @@ -367,11 +378,10 @@ async def show_groups(message: types.Message):

# table_list = [x[0] for x in cursorObj.fetchall() if x[0] not in ["reports","groups_name"]]



output_message = "💁<i><b>TABLES</b></i>\n"+"="*16+"\n"
for key in groups_dict.keys():
output_message += str(key) + " : " + groups_dict[key] + "\n"

await message.reply(output_message, parse_mode="HTML")


Expand Down Expand Up @@ -461,13 +471,20 @@ async def unban(message: types.Message):
if message.chat.type == "private":
await message.answer("Працює лишу у групах!")
else:
if not message.text[4:]:
user_id = message.text[4:]
if not user_id:
await message.reply("Ти забув уввести ID заблокованого користувача!")
else:
try:
tmp = int(user_id)
except ValueError:
await message.reply("Невірний формат!")
return

database = sqlite3.connect("list")
database.execute("""
UPDATE `{0}` SET blacklisted=0, spamcount=0 WHERE user_id={1}
""".format(message.chat.id * -1, message.text[4:]))
""".format(message.chat.id * -1, user_id))

database.commit()
database.close()
Expand Down Expand Up @@ -635,6 +652,43 @@ async def leave(message: types.Message):
await message.answer("Працює лише у групах!")


@dp.message_handler(lambda message: message.text[:5] == "/show")
async def show_users(message: types.Message):
'''
This function send message with all user from group via group id
:group_id: Yeah, it's Group_id
'''
group_id = message.text[6:].strip(" ")

if message.from_user.id in SUPER_USERS:
if group_id:
try:
group_id = int(group_id)
database = sqlite3.connect("list")

try:
USERS = database.execute(f"SELECT * FROM `{group_id}`").fetchall()
output_message = "ID : USERNAME : NAME : SPAMCOUNT: IS_BANNED\n"
for user in USERS:
if user[6] == 1:
output_message += f"{user[0]} : {user[1]} : {user[2]} : {user[5]} : True\n"
else:
output_message += f"{user[0]} : {user[1]} : {user[2]} : {user[5]} : False\n"

await message.reply(output_message)
except sqlite3.OperationalError:
await message.reply("Такої групи не існує")
finally:
database.close()
return

database.close()
except ValueError:
await message.reply("Невірний формат!")
else:
await message.reply("Ти забув про ідентифікатор групи!")


@dp.message_handler(commands=["start"])
async def start(message: types.Message):
'''
Expand Down
2 changes: 1 addition & 1 deletion messages.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"start": "\uD83D\uDC4B Вітаю в нашій когорті, хлопче/дівчино!\nЦей ботик допоможе тобі файно провести вільний час, граючись із розмірами твоїх ягідок. Скоріше приймай участь, buddy, та не зволікай, пиши /ass",
"help": "Не бійсь, ось усі команди:\n \uD83C\uDF51 /ass — зіграти в нашу гру\n \uD83D\uDD34 /help — побачити довідку\n \uD83D\uDEB6\u200D♂️ /leave — покинути гру (УВАГА! УСІ ДАННІ ПІСЛЯ ПОКИДАННЯ БУДУТЬ ВИДАЛЕНІ!\n \uD83D\uDE4B\u200D♂️ /r ваш_звіт — повідомити про недолік\n \uD83D\uDCCA /statistic — показати рейтинг усіх гравців\n\n \uD83D\uDC68\u200D\uD83D\uDCBB /about — про розробника",
"admin_help": "Режим баті:\n----------------------\n /bl {group_id} — виводить заблокованих підорів\n /ub {user_id} — видаляє користувача з бану\n /ban {user_id} — заблокувати користувача\n */show {group_id} — побачити список\n /show_reports — побачити звіти користувачів\n /show_groups — побачити усі групи\n /clear_reports — очищує звіти\n\n* - Не реализована",
"admin_help": "Режим баті:\n----------------------\n /bl {group_id} — виводить заблокованих підорів\n /ub {user_id} — видаляє користувача з бану\n /ban {user_id} — заблокувати користувача\n /show {group_id} — побачити список\n /show_reports — побачити звіти користувачів\n /show_groups — побачити усі групи\n /clear_reports — очищує звіти\n",
"about": "My GitHub: https://github.com/Fecton\nThat's all \uD83D\uDE09"
}

0 comments on commit c203db9

Please sign in to comment.