file structure
This commit is contained in:
1
service/__init__.py
Normal file
1
service/__init__.py
Normal file
@ -0,0 +1 @@
|
||||
from .queueManager import QueueManager
|
35
service/queueManager.py
Normal file
35
service/queueManager.py
Normal file
@ -0,0 +1,35 @@
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from entity import Queue
|
||||
from framework import Redis
|
||||
|
||||
|
||||
class QueueManager:
|
||||
def __init__(self, redis: Redis) -> None:
|
||||
self.redis = redis
|
||||
self.queues: dict[int, Queue] = {}
|
||||
|
||||
@asynccontextmanager
|
||||
async def __call__(self, guildId: int) -> Queue:
|
||||
#await self.acquire(guildId)
|
||||
queue = await self.get(guildId)
|
||||
yield queue
|
||||
await self.save(guildId)
|
||||
#await self.release(guildId)
|
||||
|
||||
async def acquire(self, guildId: int) -> None:
|
||||
await self.redis.acquire(guildId)
|
||||
|
||||
async def release(self, guildId: int) -> None:
|
||||
await self.redis.release(guildId)
|
||||
|
||||
async def get(self, guildId: int) -> Queue:
|
||||
queue: Queue | None = await self.redis.get(guildId)
|
||||
if queue is None:
|
||||
queue = Queue()
|
||||
self.queues[guildId] = queue
|
||||
|
||||
return self.queues[guildId]
|
||||
|
||||
async def save(self, guildId: int) -> None:
|
||||
await self.redis.set(guildId, self.queues[guildId])
|
0
service/youtubeDownloader.py
Normal file
0
service/youtubeDownloader.py
Normal file
Reference in New Issue
Block a user