mirror of
https://github.com/EDeev/vkrepost_to_tg.git
synced 2026-06-15 19:00:59 +03:00
168 lines
8.2 KiB
Python
168 lines
8.2 KiB
Python
import sqlite3
|
||
|
||
|
||
class Users:
|
||
def __init__(self, database):
|
||
"""Подключаемся к БД и сохраняем курсор соединения"""
|
||
self.connection = sqlite3.connect(database)
|
||
self.cursor = self.connection.cursor()
|
||
|
||
# КОМАНДЫ USER
|
||
def user_exists(self, user_id):
|
||
"""Проверяем, есть ли уже пользователь в базе"""
|
||
with self.connection:
|
||
result = self.cursor.execute('SELECT * FROM `user` WHERE `user_id` = ?', (user_id,)).fetchall()
|
||
return bool(len(result))
|
||
|
||
def add_user(self, user_id):
|
||
"""Добавляем нового пользователя"""
|
||
with self.connection:
|
||
return self.cursor.execute("INSERT INTO `user` (`user_id`) VALUES(?)", (user_id,))
|
||
|
||
def get_user_id(self, user_id):
|
||
"""Получаем короткое айди юзера"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `id` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
def get_tg_id(self, user_id):
|
||
"""Получаем длинное айди юзера"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `user_id` FROM `user` WHERE `id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
# КОМАНДЫ GROUP
|
||
def group_exists(self, group_id):
|
||
"""Проверяем, есть ли уже группа в базе"""
|
||
with self.connection:
|
||
result = self.cursor.execute('SELECT * FROM `group` WHERE `group_id` = ?', (group_id,)).fetchall()
|
||
return bool(len(result))
|
||
|
||
def add_group(self, group_id):
|
||
"""Добавляем новую группу"""
|
||
with self.connection:
|
||
return self.cursor.execute("INSERT INTO `group` (`group_id`) VALUES(?)", (group_id,))
|
||
|
||
def get_group_id(self, group_id):
|
||
"""Получаем короткое айди группы"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `id` FROM `group` WHERE `group_id` = ?', (group_id,)).fetchone()[0]
|
||
|
||
def get_vk_id(self, group_id):
|
||
"""Получаем длинное айди группы"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `group_id` FROM `group` WHERE `id` = ?', (group_id,)).fetchone()[0]
|
||
|
||
# ЗАКРЫТИЕ ВЫЗОВА
|
||
def close(self):
|
||
"""Закрываем соединение с БД"""
|
||
self.connection.close()
|
||
|
||
|
||
class Base:
|
||
def __init__(self, database):
|
||
"""Подключаемся к БД и сохраняем курсор соединения"""
|
||
self.connection = sqlite3.connect(database)
|
||
self.cursor = self.connection.cursor()
|
||
|
||
# КОМАНДЫ USER
|
||
def infoUser_exists(self, user_id):
|
||
"""Проверяем, есть ли данные уже в базе"""
|
||
with self.connection:
|
||
result = self.cursor.execute('SELECT * FROM `user` WHERE `user_id` = ?', (user_id,)).fetchall()
|
||
return bool(len(result))
|
||
|
||
def add_infoUser(self, user_id):
|
||
"""Добавляем информацию о пользователе"""
|
||
with self.connection:
|
||
return self.cursor.execute("INSERT INTO `user` (`user_id`) VALUES(?)", (user_id, ))
|
||
|
||
def all_activUser(self):
|
||
"""Список активных пользователей"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `user_id`, `groups` FROM `user` WHERE `status` = 1 AND `count` > 0 '
|
||
'AND `token` NOT NULL').fetchall()
|
||
|
||
def all_subUser(self):
|
||
"""Список пользователей подписанных на группу"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `user_id`, `groups` FROM `user` WHERE `status` = 1 AND `count` > 0').fetchall()
|
||
|
||
def get_status(self, user_id):
|
||
"""Получаем статус рассылки уведомлений"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `status` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
def update_status(self, user_id):
|
||
"""Обновляем статус рассылки уведомлений"""
|
||
with self.connection:
|
||
status = self.cursor.execute('SELECT `status` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
return self.cursor.execute("UPDATE `user` SET `status` = ? WHERE `user_id` = ?", (not status, user_id))
|
||
|
||
def get_user_groups(self, user_id):
|
||
"""Получаем группы на которые подписан пользователь"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `groups` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
def update_user_groups(self, user_id, groups):
|
||
"""Обновляем группы на которые подписан пользователь"""
|
||
with self.connection:
|
||
return self.cursor.execute("UPDATE `user` SET `groups` = ? WHERE `user_id` = ?", (groups, user_id))
|
||
|
||
def get_token(self, user_id):
|
||
"""Получаем access token пользователя"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `token` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
def update_token(self, user_id, token):
|
||
"""Обновляем access token пользователя"""
|
||
with self.connection:
|
||
return self.cursor.execute("UPDATE `user` SET `token` = ? WHERE `user_id` = ?", (token, user_id))
|
||
|
||
def get_countUser(self, user_id):
|
||
"""Получаем количество подписок пользователя"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `count` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
|
||
def update_countUser(self, user_id, num):
|
||
"""Обновляем количество подписок пользователя"""
|
||
with self.connection:
|
||
count = self.cursor.execute('SELECT `count` FROM `user` WHERE `user_id` = ?', (user_id,)).fetchone()[0]
|
||
return self.cursor.execute("UPDATE `user` SET `count` = ? WHERE `user_id` = ?", (count + num, user_id))
|
||
|
||
# КОМАНДЫ GROUP
|
||
def infoGroup_exists(self, group_id):
|
||
"""Проверяем, есть ли данные уже в базе"""
|
||
with self.connection:
|
||
result = self.cursor.execute('SELECT * FROM `group` WHERE `group_id` = ?', (group_id,)).fetchall()
|
||
return bool(len(result))
|
||
|
||
def add_infoGroup(self, group_id, tp, last_post):
|
||
"""Добавляем информацию о группе"""
|
||
with self.connection:
|
||
return self.cursor.execute("INSERT INTO `group` (`group_id`, `type`, `last_post`) VALUES(?, ?, ?)",
|
||
(group_id, tp, last_post))
|
||
|
||
def all_notifGroup(self):
|
||
"""Список отслеживаемых групп"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `group_id` FROM `group` WHERE `count` > 0').fetchall()
|
||
|
||
def get_postGroup(self, group_id):
|
||
"""Получаем номер последнего поста"""
|
||
with self.connection:
|
||
return self.cursor.execute('SELECT `last_post` FROM `group` WHERE `group_id` = ?', (group_id,)).fetchone()[0]
|
||
|
||
def update_postGroup(self, group_id, last_post):
|
||
"""Обновляем номер последнего поста"""
|
||
with self.connection:
|
||
return self.cursor.execute("UPDATE `group` SET `last_post` = ? WHERE `group_id` = ?", (last_post, group_id))
|
||
|
||
def update_countGroup(self, group_id, num):
|
||
"""Обновляем количество подписок на группу"""
|
||
with self.connection:
|
||
count = self.cursor.execute('SELECT `count` FROM `group` WHERE `group_id` = ?', (group_id,)).fetchone()[0]
|
||
return self.cursor.execute("UPDATE `group` SET `count` = ? WHERE `group_id` = ?", (count + num, group_id))
|
||
|
||
# ЗАКРЫТИЕ ВЫЗОВА
|
||
def close(self):
|
||
"""Закрываем соединение с БД"""
|
||
self.connection.close()
|