fix(services): ensure session directory exists and handle container paths
This commit is contained in:
@@ -9,6 +9,8 @@ from core.metrics import ADMIN_ACTIONS_TOTAL
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
SESSION_DIR = os.getenv("SESSION_DIR", "/app/sessions" if os.path.exists("/app") else "/projects/telegram-bots/copykar/sessions")
|
||||
|
||||
class AdminBotService:
|
||||
def __init__(
|
||||
self,
|
||||
@@ -18,7 +20,7 @@ class AdminBotService:
|
||||
api_hash: Optional[str] = None,
|
||||
review_channel_id: Optional[int] = None,
|
||||
admin_user_ids: Optional[List[int]] = None,
|
||||
session_name: str = "/projects/telegram-bots/copykar/sessions/admin_bot.session",
|
||||
session_name: Optional[str] = None,
|
||||
):
|
||||
self.repo = repo
|
||||
self.bot_token = bot_token or os.getenv("BOT_TOKEN", "")
|
||||
@@ -27,18 +29,17 @@ class AdminBotService:
|
||||
self.review_channel_id = review_channel_id or int(os.getenv("REVIEW_CHANNEL_ID", "0"))
|
||||
raw_admins = os.getenv("ADMIN_USER_IDS", "")
|
||||
self.admin_user_ids = admin_user_ids or [int(x.strip()) for x in raw_admins.split(",") if x.strip()]
|
||||
self.session_name = session_name
|
||||
self.session_name = session_name or os.path.join(SESSION_DIR, "admin_bot.session")
|
||||
os.makedirs(os.path.dirname(self.session_name), exist_ok=True)
|
||||
self.client = TelegramClient(self.session_name, self.api_id, self.api_hash)
|
||||
|
||||
def is_admin(self, user_id: int) -> bool:
|
||||
return not self.admin_user_ids or user_id in self.admin_user_ids
|
||||
|
||||
async def start(self):
|
||||
os.makedirs(os.path.dirname(self.session_name), exist_ok=True)
|
||||
logger.info("Starting Admin Review Bot...")
|
||||
await self.client.start(bot_token=self.bot_token)
|
||||
logger.info("Admin Review Bot connected successfully.")
|
||||
|
||||
self._register_handlers()
|
||||
|
||||
def _register_handlers(self):
|
||||
|
||||
Reference in New Issue
Block a user