масончик1337, пайтон 3.11 качай а 3.13 удаляй либо вирт окружение делай, с 3.13 будет конфликтовать сильно
у тебя дохуя импортов повторяется --- Сообщение объединено с предыдущим 24 фев 2025 нахуй тебе sqlite3 в асинке
from config import api_token, log_chat_id, Crypto_Pay_API_Token, sessions_folder import sqlite3 import logging import asyncio import os import json import time from datetime import datetime, timedelta from decimal import Decimal import random from aiogram import Bot, Dispatcher, types, executor from aiogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton from aiogram.contrib.fsm_storage.memory import MemoryStorage from aiogram.dispatcher.filters.state import State, StatesGroup from aiogram.dispatcher import FSMContext import aiosqlite import requests # База данных DATABASE_FILE = 'C:/Users/podse/Desktop/botnet15/database.db' # Настройка бота bot = Bot(token=api_token) storage = MemoryStorage() dp = Dispatcher(bot, storage=storage) logging.basicConfig(level=logging.INFO) def create_database(): conn = sqlite3.connect(DATABASE_FILE, check_same_thread=False) cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, user_id INTEGER UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, timeout DATETIME, white_list TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS api (api_id TEXT, api_hash TEXT, session TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS promocodes (id INTEGER PRIMARY KEY, code TEXT UNIQUE NOT NULL, days_subscription INTEGER NOT NULL, max_activations INTEGER NOT NULL, activations_count INTEGER DEFAULT 0, used_by TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS subscriptions (user_id INTEGER PRIMARY KEY, expiration_date DATETIME)''') conn.commit() conn.close() create_database() # Функции async def check_subscription(user_id): async with aiosqlite.connect(DATABASE_FILE) as conn: await conn.execute('PRAGMA busy_timeout = 3000') async with conn.cursor() as cursor: await cursor.execute("SELECT expiration_date FROM subscriptions WHERE user_id=?", (user_id,)) subscription = await cursor.fetchone() return subscription and datetime.now() <= datetime.strptime(subscription[0], '%Y-%m-%d %H:%M:%S.%f') @dp.message_handler(commands=['start']) async def home(message: Message): if message.chat.type != types.ChatType.PRIVATE: return check_subscription = await check_subscription(message.from_user.id) markup = InlineKeyboardMarkup(row_width=2) markup.add(InlineKeyboardButton(" Купить", callback_data="buy"), InlineKeyboardButton(f" Профиль", callback_data=f"profile")) if check_subscription: caption = '<b>Приветствуем в WonfierSnos </b>' else: caption = '<b>❌У вас отсутствует подписка! Приобретите её по кнопке ниже.</b>' await bot.send_photo(message.from_user.id, open('C:/Users/podse/Desktop/botnet15/net1.png', 'rb'), caption=caption, reply_markup=markup, parse_mode='HTML') @dp.callback_query_handler(lambda call: call.data == 'buy') async def buy(call: types.CallbackQuery): markup = InlineKeyboardMarkup() for option_text, callback_data in [(" 7 дней - 2$", "buy_7"), (" 31 день - 4$", "buy_31"), (" 365 дней - 9$", "buy_365"), (" Навсегда - 12$", "lifetime"), ("Назад", "back")]: markup.add(InlineKeyboardButton(option_text, callback_data=callback_data)) await bot.send_photo(call.message.chat.id, open('C:/Users/podse/Desktop/botnet15/net1.png', 'rb'), caption="<b> Оплата через @send\n⌛ Выберите срок подписки:</b>\nОплата по карте или тг кошельку писать \n@gospodinpvp", reply_markup=markup, parse_mode="HTML") if __name__ == '__main__': executor.start_polling(dp, skip_updates=True) Python from config import api_token, log_chat_id, Crypto_Pay_API_Token, sessions_folder import sqlite3 import logging import asyncio import os import json import time from datetime import datetime, timedelta from decimal import Decimal import random from aiogram import Bot, Dispatcher, types, executor from aiogram.types import Message, InlineKeyboardMarkup, InlineKeyboardButton from aiogram.contrib.fsm_storage.memory import MemoryStorage from aiogram.dispatcher.filters.state import State, StatesGroup from aiogram.dispatcher import FSMContext import aiosqlite import requests # База данных DATABASE_FILE = 'C:/Users/podse/Desktop/botnet15/database.db' # Настройка бота bot = Bot(token=api_token) storage = MemoryStorage() dp = Dispatcher(bot, storage=storage) logging.basicConfig(level=logging.INFO) def create_database(): conn = sqlite3.connect(DATABASE_FILE, check_same_thread=False) cursor = conn.cursor() cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, user_id INTEGER UNIQUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, timeout DATETIME, white_list TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS api (api_id TEXT, api_hash TEXT, session TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS promocodes (id INTEGER PRIMARY KEY, code TEXT UNIQUE NOT NULL, days_subscription INTEGER NOT NULL, max_activations INTEGER NOT NULL, activations_count INTEGER DEFAULT 0, used_by TEXT)''') cursor.execute('''CREATE TABLE IF NOT EXISTS subscriptions (user_id INTEGER PRIMARY KEY, expiration_date DATETIME)''') conn.commit() conn.close() create_database() # Функции async def check_subscription(user_id): async with aiosqlite.connect(DATABASE_FILE) as conn: await conn.execute('PRAGMA busy_timeout = 3000') async with conn.cursor() as cursor: await cursor.execute("SELECT expiration_date FROM subscriptions WHERE user_id=?", (user_id,)) subscription = await cursor.fetchone() return subscription and datetime.now() <= datetime.strptime(subscription[0], '%Y-%m-%d %H:%M:%S.%f') @dp.message_handler(commands=['start']) async def home(message: Message): if message.chat.type != types.ChatType.PRIVATE: return check_subscription = await check_subscription(message.from_user.id) markup = InlineKeyboardMarkup(row_width=2) markup.add(InlineKeyboardButton(" Купить", callback_data="buy"), InlineKeyboardButton(f" Профиль", callback_data=f"profile")) if check_subscription: caption = '<b>Приветствуем в WonfierSnos </b>' else: caption = '<b>❌У вас отсутствует подписка! Приобретите её по кнопке ниже.</b>' await bot.send_photo(message.from_user.id, open('C:/Users/podse/Desktop/botnet15/net1.png', 'rb'), caption=caption, reply_markup=markup, parse_mode='HTML') @dp.callback_query_handler(lambda call: call.data == 'buy') async def buy(call: types.CallbackQuery): markup = InlineKeyboardMarkup() for option_text, callback_data in [(" 7 дней - 2$", "buy_7"), (" 31 день - 4$", "buy_31"), (" 365 дней - 9$", "buy_365"), (" Навсегда - 12$", "lifetime"), ("Назад", "back")]: markup.add(InlineKeyboardButton(option_text, callback_data=callback_data)) await bot.send_photo(call.message.chat.id, open('C:/Users/podse/Desktop/botnet15/net1.png', 'rb'), caption="<b> Оплата через @send\n⌛ Выберите срок подписки:</b>\nОплата по карте или тг кошельку писать \n@gospodinpvp", reply_markup=markup, parse_mode="HTML") if __name__ == '__main__': executor.start_polling(dp, skip_updates=True) а дальше сам