priem_telegram_bot/accounts.py

70 lines
2.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sqlite3
class ALLusers:
def __init__(self, database):
"""Подключаемся к БД и сохраняем курсор соединения"""
self.connection = sqlite3.connect(database)
self.cursor = self.connection.cursor()
def search_player(self, user_id):
"""Проверяем, есть ли уже юзер в базе"""
with self.connection:
result = self.cursor.execute('SELECT * FROM `allusers` WHERE `user_id` = ?', (user_id,)).fetchall()
return bool(len(result))
def add_player(self, user_id, online = True):
"""Добавляем нового подписчика"""
with self.connection:
return self.cursor.execute("INSERT INTO `allusers` (`user_id`, 'online') VALUES(?,?)", (user_id,online))
def online_spam(self, online = True):
"""Получаем всех активных подписчиков бота с подпиской"""
with self.connection:
return self.cursor.execute("SELECT * FROM `allusers` WHERE `online` = ?", (online,)).fetchall()
def update_online(self, user_id, online):
"""Обновляем статус подписки пользователя"""
with self.connection:
return self.cursor.execute("UPDATE `allusers` SET `online` = ? WHERE `user_id` = ?", (online, user_id))
def update_russia(self, user_id, russia):
"""Обновляем статус рф или иностранец"""
with self.connection:
return self.cursor.execute("UPDATE `allusers` SET `russia` = ? WHERE `user_id` = ?", (russia, user_id))
def check_russia(self, user_id) -> str:
"""Получаем рф или иностранец"""
with self.connection:
result = self.cursor.execute('SELECT `russia` FROM `allusers` WHERE `user_id` = ?', (user_id,)).fetchall()
temp_answer = result[0]
return (temp_answer[0])
def log_info(self):
"""Подсчет пользователей"""
with self.connection:
result = self.cursor.execute("SELECT COUNT(DISTINCT id) FROM `allusers`").fetchall()
result2 = self.cursor.execute("SELECT COUNT(DISTINCT id) FROM `allusers` WHERE `online` = 1").fetchall()
result4 = self.cursor.execute("SELECT COUNT(DISTINCT id) FROM `allusers` WHERE `online` = 0").fetchall()
how_id_users = result[0]
how_online_users = result2[0]
how_deactivate_users = result4[0]
return (f"Всего пользователей зарегистрировано: {how_id_users[0]}\n"
f"Активных аккунтов: {how_online_users[0]}\n"
f"Деактивировано аккаунтов: {how_deactivate_users[0]}\n")
def close(self):
"""Закрываем соединение с БД"""
self.connection.close()