Ok test
Browse files- chatbot/plugins/chat.py +32 -24
chatbot/plugins/chat.py
CHANGED
@@ -181,30 +181,6 @@ Type anything to begin.
|
|
181 |
|
182 |
gen = genai.Client(api_key=GOOGLE_API_KEY)
|
183 |
|
184 |
-
class TaskManager:
|
185 |
-
def __init__(self):
|
186 |
-
self.running_tasks = {}
|
187 |
-
|
188 |
-
async def add_task(self, chat_id, coro):
|
189 |
-
task = asyncio.create_task(coro)
|
190 |
-
self.running_tasks[chat_id] = task
|
191 |
-
try:
|
192 |
-
await task
|
193 |
-
finally:
|
194 |
-
self.running_tasks.pop(chat_id, None)
|
195 |
-
|
196 |
-
async def cancel_task(self, chat_id):
|
197 |
-
task = self.running_tasks.get(chat_id)
|
198 |
-
if task:
|
199 |
-
task.cancel()
|
200 |
-
del self.running_tasks[chat_id]
|
201 |
-
return True
|
202 |
-
return False
|
203 |
-
|
204 |
-
def list_tasks(self):
|
205 |
-
return list(self.running_tasks.keys())
|
206 |
-
|
207 |
-
task_manager = TaskManager()
|
208 |
|
209 |
async def progress(current, total, message, start, type_of_ps, file_name=None):
|
210 |
"""Progress Bar For Showing Progress While Uploading / Downloading File - Normal"""
|
@@ -1113,6 +1089,29 @@ async def chatbot_talk(client: Client, message: Message):
|
|
1113 |
edit_image_now = re.match(r"--edit-images\s*(.*)", caption, re.IGNORECASE)
|
1114 |
if edit_image_now:
|
1115 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1116 |
backup_chat = await db._get_chatbot_chat_from_db(message.from_user.id)
|
1117 |
backup_chat.append({"role": "user", "parts": [{"text": caption}]})
|
1118 |
images = Image.open(await message.download())
|
@@ -1142,6 +1141,15 @@ async def chatbot_talk(client: Client, message: Message):
|
|
1142 |
)
|
1143 |
backup_chat.append({"role": "model", "parts": [{"text": captions}]})
|
1144 |
await db._update_chatbot_chat_in_db(message.from_user.id, backup_chat)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1145 |
await client.send_chat_action(message.chat.id, enums.ChatAction.CANCEL)
|
1146 |
return
|
1147 |
except Exception as e:
|
|
|
181 |
|
182 |
gen = genai.Client(api_key=GOOGLE_API_KEY)
|
183 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
async def progress(current, total, message, start, type_of_ps, file_name=None):
|
186 |
"""Progress Bar For Showing Progress While Uploading / Downloading File - Normal"""
|
|
|
1089 |
edit_image_now = re.match(r"--edit-images\s*(.*)", caption, re.IGNORECASE)
|
1090 |
if edit_image_now:
|
1091 |
try:
|
1092 |
+
user_data = await db.user_premium.find_one({"user_id": message.from_user.id}) or {
|
1093 |
+
"user_id": message.from_user.id,
|
1094 |
+
"credits_used": 0,
|
1095 |
+
"last_reset": dt.now(),
|
1096 |
+
"is_premium": False
|
1097 |
+
}
|
1098 |
+
if dt.now() - user_data["last_reset"] > timedelta(days=1):
|
1099 |
+
user_data["credits_used"] = 0
|
1100 |
+
user_data["last_reset"] = dt.now()
|
1101 |
+
|
1102 |
+
credit_limit = 50 if user_data.get("is_premium") else 5
|
1103 |
+
if user_data["credits_used"] >= credit_limit:
|
1104 |
+
time_left = (user_data["last_reset"] + timedelta(days=1) - dt.now())
|
1105 |
+
hours = int(time_left.total_seconds() // 3600)
|
1106 |
+
return await message.reply_text(
|
1107 |
+
f"🚫 Credit Limit Reached\n\n"
|
1108 |
+
f"• Used: {user_data['credits_used']}/{credit_limit} images today\n"
|
1109 |
+
f"• Resets in: {hours} hours\n\n"
|
1110 |
+
f"💎 Upgrade to Premium for 50 daily credits!",
|
1111 |
+
reply_markup=InlineKeyboardMarkup([[
|
1112 |
+
InlineKeyboardButton("Get Premium", callback_data="get_premium")
|
1113 |
+
]])
|
1114 |
+
)
|
1115 |
backup_chat = await db._get_chatbot_chat_from_db(message.from_user.id)
|
1116 |
backup_chat.append({"role": "user", "parts": [{"text": caption}]})
|
1117 |
images = Image.open(await message.download())
|
|
|
1141 |
)
|
1142 |
backup_chat.append({"role": "model", "parts": [{"text": captions}]})
|
1143 |
await db._update_chatbot_chat_in_db(message.from_user.id, backup_chat)
|
1144 |
+
await db.user_premium.update_one(
|
1145 |
+
{"user_id": user_id},
|
1146 |
+
{
|
1147 |
+
"$inc": {"credits_used": 1},
|
1148 |
+
"$set": {"last_reset": user_data["last_reset"]},
|
1149 |
+
"$setOnInsert": {"is_premium": False}
|
1150 |
+
},
|
1151 |
+
upsert=True
|
1152 |
+
)
|
1153 |
await client.send_chat_action(message.chat.id, enums.ChatAction.CANCEL)
|
1154 |
return
|
1155 |
except Exception as e:
|