Added singleton config and changed module structure

This commit is contained in:
2023-11-23 22:13:10 +03:00
parent 6389c4f29e
commit 8c2d706401
12 changed files with 41 additions and 29 deletions

View File

@@ -7,12 +7,7 @@ from os.path import dirname, join
import aioschedule as schedule import aioschedule as schedule
import dotenv import dotenv
from aiogram import Bot, Dispatcher, F, types from aiogram import Bot, Dispatcher, F, types
from aiogram.filters import Command, CommandStart from aiogram.filters import CommandStart
from aiogram.fsm.context import FSMContext
from aiogram.fsm.state import State, StatesGroup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from handlers.admin_commands import Admin_commands
dotenv.load_dotenv() dotenv.load_dotenv()
@@ -35,7 +30,6 @@ for filename in os.listdir(handlers_dir):
async def main() -> None: async def main() -> None:
# dp.include_router(Admin_commands(bot)())
await dp.start_polling(bot, skip_updates=True) await dp.start_polling(bot, skip_updates=True)
if __name__ == '__main__': if __name__ == '__main__':

View File

@@ -1,17 +1 @@
from .post import Post from ._neuroapi import neuroapi
from .admin import Admin
from .user import User
from .image import Image
from dotenv import load_dotenv
import os
from os.path import join, dirname
load_dotenv(join(dirname(__file__), "..", '.env'))
class neuroapi:
post = Post(os.environ.get('API_URL'))
admin = Admin(os.environ.get('API_URL'))
user = User(os.environ.get('API_URL'))
image = Image(os.environ.get('API_URL'))

View File

@@ -0,0 +1,8 @@
from ..config import Config
class ApiMethod:
api_url: str
def __init__(self) -> None:
self.api_url = Config().api_url

View File

@@ -1,4 +1,5 @@
from aiohttp import ClientSession from aiohttp import ClientSession
from .api_method import ApiMethod from .api_method import ApiMethod

11
neuroapi/_neuroapi.py Normal file
View File

@@ -0,0 +1,11 @@
from ._methods.admin import Admin
from ._methods.image import Image
from ._methods.post import Post
from ._methods.user import User
class neuroapi:
post = Post()
admin = Admin()
user = User()
image = Image()

View File

@@ -1,5 +0,0 @@
class ApiMethod:
api_url: str
def __init__(self, api_url: str) -> None:
self.api_url = api_url

19
neuroapi/config.py Normal file
View File

@@ -0,0 +1,19 @@
import os
from typing import Self
from dotenv import load_dotenv
class _Singleton:
_instances = {}
def __new__(cls) -> Self:
if cls not in cls._instances:
cls._instances[cls] = super(_Singleton, cls).__new__(cls)
return cls._instances[cls]
class Config(_Singleton):
api_url: str
def __init__(self):
load_dotenv(os.path.join(os.path.dirname(__file__), '..', '.env'))
self.api_url = os.environ.get('API_URL')