From e7db5125a237499ed3083fa7c2406088098cb2c9 Mon Sep 17 00:00:00 2001 From: Antigravity Bot Date: Sun, 30 Aug 2026 15:51:39 +0330 Subject: [PATCH] Initial commit for copykar --- db/repository.py | 1 + docker-compose.yml | 7 ++++--- services/admin_bot.py | 10 +++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/db/repository.py b/db/repository.py index 371ced3..6edcbc1 100644 --- a/db/repository.py +++ b/db/repository.py @@ -1,5 +1,6 @@ import json import asyncpg +from typing import Optional, List, Dict, Any, Tuple from datetime import datetime, timezone from db.models import ( SourceChannel, SourceWebsite, TargetChannel, Post, Setting, diff --git a/docker-compose.yml b/docker-compose.yml index 35bcdc2..018a380 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -10,7 +10,7 @@ services: POSTGRES_DB: ${POSTGRES_DB:-copykar} LD_PRELOAD: /usr/local/lib/libfakestat.so ports: - - "5432:5432" + - "127.0.0.1:5432:5432" volumes: - ./monitoring/postgres/libfakestat_musl.so:/usr/local/lib/libfakestat.so:ro - ./data/postgres:/var/lib/postgresql/data @@ -27,7 +27,7 @@ services: entrypoint: ["redis-server"] command: ["--protected-mode", "no", "--dir", "/data", "--save", "60", "1"] ports: - - "6379:6379" + - "127.0.0.1:6379:6379" volumes: - ./data/redis:/data healthcheck: @@ -49,12 +49,13 @@ services: redis: condition: service_healthy ports: - - "8008:8008" + - "127.0.0.1:8008:8008" env_file: - .env extra_hosts: - "host.docker.internal:host-gateway" volumes: + - ./:/app - ./data/app:/app/data - ./data/sessions:/app/sessions - /home:/host_os/home:ro diff --git a/services/admin_bot.py b/services/admin_bot.py index c348cfe..1e2bd61 100644 --- a/services/admin_bot.py +++ b/services/admin_bot.py @@ -1705,35 +1705,35 @@ class AdminBotService: await event.reply(welcome_text, parse_mode="html", buttons=menu) # --- 5 Primary Category Hubs: Copy, AI, Bots, System, Monitor --- - @self.client.on(events.NewMessage(pattern=r"(?i)^(/copy|📋 مدیریت محتوا \(copy\)|📋 copy \(محتوا\)|📋 مدیریت محتوا|📋 copy|copy)$")) + @self.client.on(events.NewMessage(pattern=r"(?i)^(/copy|📋.*|.*copy.*|.*محتوا.*)$")) async def cmd_copy_hub(event: events.NewMessage.Event): if not self.is_admin(event.sender_id): return text, buttons = await self._render_copy_hub() await event.reply(text, parse_mode="html", buttons=buttons) - @self.client.on(events.NewMessage(pattern=r"(?i)^(/ai|🧠 هوش مصنوعی \(ai\)|🧠 ai \(هوش مصنوعی\)|🧠 هوش مصنوعی|🧠 ai|ai)$")) + @self.client.on(events.NewMessage(pattern=r"(?i)^(/ai|🧠.*|.*ai.*|.*هوش مصنوعی.*)$")) async def cmd_ai_hub(event: events.NewMessage.Event): if not self.is_admin(event.sender_id): return text, buttons = await self._render_ai_menu() await event.reply(text, parse_mode="html", buttons=buttons) - @self.client.on(events.NewMessage(pattern=r"(?i)^(/bots|🤖 کانال‌ها و وب \(bots\)|🤖 bots \(کانال‌ها و ربات‌ها\)|🤖 کانال‌ها و وب|🤖 bots|bots)$")) + @self.client.on(events.NewMessage(pattern=r"(?i)^(/bots|🤖.*|.*bots.*|.*کانال‌ها و وب.*|.*ربات.*)$")) async def cmd_bots_hub(event: events.NewMessage.Event): if not self.is_admin(event.sender_id): return text, buttons = await self._render_bots_hub() await event.reply(text, parse_mode="html", buttons=buttons) - @self.client.on(events.NewMessage(pattern=r"(?i)^(/system|⚙️ مدیریت سیستم \(system\)|⚙️ system \(سیستم\)|⚙️ مدیریت سیستم|⚙️ system|system)$")) + @self.client.on(events.NewMessage(pattern=r"(?i)^(/system|⚙️.*|.*system.*|.*سیستم.*)$")) async def cmd_system_hub(event: events.NewMessage.Event): if not self.is_admin(event.sender_id): return text, buttons = await self._render_system_hub() await event.reply(text, parse_mode="html", buttons=buttons) - @self.client.on(events.NewMessage(pattern=r"(?i)^(/monitor|📊 مانیتورینگ \(monitor\)|📊 monitor \(مانیتورینگ\)|📊 مانیتورینگ|📊 monitor|monitor)$")) + @self.client.on(events.NewMessage(pattern=r"(?i)^(/monitor|📊.*|.*monitor.*|.*مانیتورینگ.*)$")) async def cmd_monitor_hub(event: events.NewMessage.Event): if not self.is_admin(event.sender_id): return