# This scripts contains use cases for userbots # This is used on my Moon-Userbot: https://github.com/The-MoonTg-project/Moon-Userbot # YOu can check it out for uses example import os from pyrogram import Client, filters, enums from pyrogram.types import Message from pyrogram.errors import MessageTooLong from utils.misc import modules_help, prefix from utils.scripts import format_exc, import_library from utils.config import gemini_key from utils.rentry import paste as rentry_paste genai = import_library("google.generativeai", "google-generativeai") genai.configure(api_key=gemini_key) model = genai.GenerativeModel("gemini-2.0-flash") @Client.on_message(filters.command("gemini", prefix) & filters.me) async def say(client: Client, message: Message): try: await message.edit_text("Please Wait...") if len(message.command) > 1: prompt = message.text.split(maxsplit=1)[1] elif message.reply_to_message: prompt = message.reply_to_message.text else: await message.edit_text( f"Usage: {prefix}gemini [prompt/reply to message]" ) return chat = model.start_chat() response = chat.send_message(prompt) await message.edit_text( f"**Question:**`{prompt}`\n**Answer:** {response.text}", parse_mode=enums.ParseMode.MARKDOWN, ) except MessageTooLong: await message.edit_text( "Output is too long... Pasting to rentry..." ) try: rentry_url, edit_code = await rentry_paste( text=response.text, return_edit=True ) except RuntimeError: await message.edit_text( "Error: Failed to paste to rentry" ) return await client.send_message( "me", f"Here's your edit code for Url: {rentry_url}\nEdit code: {edit_code}", disable_web_page_preview=True, ) await message.edit_text( f"Output: {rentry_url}\nNote: Edit Code has been sent to your saved messages", disable_web_page_preview=True, ) except Exception as e: await message.edit_text(f"An error occurred: {format_exc(e)}") modules_help["gemini"] = { "gemini [prompt]*": "Ask questions with Gemini Ai", }