|
import asyncio |
|
import time |
|
import os |
|
import datetime |
|
import aiohttp |
|
from pyrogram import Client, filters |
|
from pyrogram.types import * |
|
from pyrogram.enums import * |
|
from pyrogram import * |
|
from database import db |
|
from chatbot.plugins.user_database import users_collection |
|
from chatbot.plugins.keyboards import get_language_keyboard |
|
from chatbot.plugins.languages import LANGUAGES |
|
import akenoai as dev |
|
|
|
from . import force_sub |
|
|
|
LANGUAGES_DEFAULT = "en" |
|
|
|
|
|
BASE_PROMPT = f""" |
|
You are my name Akeno AI and python language powered by @xtdevs on telegram support and language models GPT-5-ULTRA |
|
|
|
- off topic free questions |
|
- Code python clone user telegram available : [HERE LINK](https://github.com/TeamKillerX/akenoai-lib/blob/main/examples/clone.py) by credits @xtdevs |
|
- Support pyrogram and telethon not python-telegram-bot |
|
|
|
{datetime.datetime.now()} |
|
""" |
|
|
|
@Client.on_message( |
|
~filters.scheduled |
|
& filters.command(["web"]) |
|
& ~filters.forwarded |
|
) |
|
@force_sub |
|
async def askwebcmd(client: Client, message: Message): |
|
pro = await message.reply("Processing your web request...", quote=True) |
|
user_id = message.from_user.id |
|
user = await users_collection.find_one({"user_id": user_id}) |
|
lang = user.get("language") if user else LANGUAGES_DEFAULT |
|
chat_user = await db.get_chatbot(message.chat.id) |
|
if not chat_user: |
|
return await pro.edit_text("I need to enable group") |
|
if len(message.command) > 1: |
|
prompt = message.text.split(maxsplit=1)[1] |
|
elif message.reply_to_message: |
|
prompt = message.reply_to_message.text |
|
else: |
|
return await pro.edit_text("Give ask from GPT-5") |
|
await client.send_chat_action(message.chat.id, enums.ChatAction.TYPING) |
|
await asyncio.sleep(1.5) |
|
if not lang: |
|
await message.reply( |
|
"Please select your preferred language:", |
|
reply_markup=get_language_keyboard() |
|
) |
|
await pro.delete() |
|
return |
|
try: |
|
backup_chat = await db._get_openai_chat_from_db(message.from_user.id) |
|
backup_chat.append({"role": "system", "content": BASE_PROMPT}) |
|
backup_chat.append({"role": "user", "content": prompt}) |
|
akeno_api = dev.AkenoPlus(...) |
|
response = await akeno_api.chatgpt_mode_web( |
|
query=prompt, |
|
is_trans="True", |
|
lang=lang |
|
) |
|
data = await akeno_api.get_json(response=response) |
|
backup_chat.append({"role": "assistant", "content": data.randydev.message}) |
|
await pro.edit_text(data.randydev.message, disable_web_page_preview=True) |
|
await db._update_openai_chat_in_db(message.from_user.id, backup_chat) |
|
except aiohttp.ContentTypeError as e: |
|
return await pro.edit_text("Error: try again.") |
|
except Exception as e: |
|
await pro.edit_text("Error: try again") |
|
|
|
@Client.on_message(filters.command("setlang")) |
|
async def setlang_cmd(client: Client, message: Message): |
|
await message.reply( |
|
"Please select your preferred language:", |
|
reply_markup=get_language_keyboard() |
|
) |