Skip to content
This repository has been archived by the owner on Sep 6, 2024. It is now read-only.

Documentation

Jayant Hegde Kageri edited this page Jan 18, 2022 · 14 revisions

Page Index

tgEasy.tgClient

  • A Class for Initialising the tgEasy and it's Methods, Types and Functions
  • Parameters:
    • client (pyrogram.Client):
      • The Pyrogram Client

Example

from tgEasy import tgClient
from pyrogram import Client

app = tgClient(Client("my_account"))

tgEasy.tgClient.command

  • A decorater to Register Commands in simple way and manage errors in that Function itself, alternative for @pyrogram.Client.on_message(pyrogram.filters.command('command'))
  • Parameters:
    • command (str || list):

      • The command to be handled for a function
    • group_only (bool) optional:

      • If True, the command will only be executed in Groups, By Default False.
    • pm_only (bool) optional:

      • If True, the command will only be executed in Private Messages, By Default False.
    • self_admin (bool) optional:

      • If True, the command will only be executed if the Bot is Admin in the Chat, By Default False
    • self_only (bool) optional:

      • If True, the command will only be executed if the Bot is Admin in the Chat, By Default False
    • handler (list) optional:

      • If set, the command will be handled by the specified Handler, By Default Config.HANDLERS.
    • filter (~pyrogram.filters) optional:

      • Pyrogram Filters, hope you know about this, for Advanced usage. By Default ~pyrogram.filters.edited and this can't be changed. Use and for separating filters.

Example

import pyrogram
from tgEasy import tgClient

app = tgClient(pyrogram.Client())

@app.command("start", group_only=False, pm_only=False, self_admin=False, self_only=False, pyrogram.filters.chat("777000") and pyrogram.filters.text)
async def start(client, message):
    await message.reply_text(f"Hello {message.from_user.mention}")

tgEasy.tgClient.callback

  • A decorater to Register Callback Quiries in simple way and manage errors in that Function itself, alternative for @pyrogram.Client.on_callback_query(pyrogram.filters.regex('^data.*'))
  • Parameters:
    • data (str || list):

      • The callback query to be handled for a function
    • self_admin (bool) optional:

      • If True, the command will only be executed if the Bot is Admin in the Chat, By Default False
    • filter (~pyrogram.filters) optional:

      • Pyrogram Filters, hope you know about this, for Advanced usage. Use and for separating filters.

Example

import pyrogram
from tgEasy import tgClient

app = tgClient(pyrogram.Client())

@app.command("start")
async def start(client, message):
    await message.reply_text(
      f"Hello {message.from_user.mention}",
      reply_markup=pyrogram.types.InlineKeyboardMarkup([[
        pyrogram.types.InlineKeyboardButton(
          "Click Here",
          "data"
        )
      ]])
    )

@app.callback("data")
async def data(client, CallbackQuery):
  await CallbackQuery.answer("Hello :)", show_alert=True)

tgEasy.tgClient.adminsOnly

  • A decorator for running the function only if the admin has the specified Rights.
  • If the admin is Anonymous Admin, it also checks his rights by making a Callback.
  • Parameters:
    • permission (str):
      • Permission which the User must have to use the Functions
    • TRUST_ANON_ADMIN (bool) optional:
      • If the user is an Anonymous Admin, then it bypasses his right check.

Example

from tgEasy import tgClient
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("start")
@app.adminsOnly("can_change_info")
async def start(client, message):
    await message.reply_text(f"Hello Admin {message.from_user.mention}")

tgEasy.tgClient.run()

  • Runs the pyrogram.Client by adding tgEasy.tgClient.run() in your main file and run.

  • This calls pyrogram.Client.start(), pyrogram.idle() and pyrogram.Client.stop()

Example

import pyrogram
from tgEasy import tgClient

app = tgClient(pyrogram.Client())

app.run()

tgEasy.tgClint.runClients()

  • Runs the Multiple pyrogram.Client of tgEasy by adding tgEasy.tgClient.run() in your main file and run.

  • This calls pyrogram.Client.start(), pyrogram.idle() and pyrogram.Client.stop()

  • Pass the tgEasy Clients in it.

Example

from tgEasy import tgClient
import pyrogram

app = tgClient(pyrogram.Client())
app1 = tgClient(pyrogram.Client())

tgClient.runClients(app, app1)

tgEasy.get_user

  • Gets a User from Message/RepliedMessageFromUser
  • Parameters:
    • m (~pyrogram.types.Message || ~pyrogram.types.CallbackQuery)
  • Returns:
    • pyrogram.types.User on Success
    • False on Error

Example

from tgEasy import get_user, tgClient
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("ban", group_only=True, self_admin=True)
@app.adminsOnly("can_restrict_members")
async def ban(client, message):
  user = await get_user(message)
  await message.chat.kick_member(user.id)

tgEasy.get_user_adv

  • A Function to Get the User from the Message/CallbackQuery, If there is None arguments, returns the From User.
  • Parameters:
    • m (pyrogram.types.Message || pyrogram.types.CallbackQuery):
      • Message or Callbackquery.
  • Returns:
    • pyrogram.types.User on Success
    • False on Error

Example

from tgEasy import get_user_adv
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("id")
async def id(client, message):
  user = await get_user_adv(message)
  await message.reply_text(f"Your ID is `{user.id}`")

tgEasy.check_rights

  • Checks the Rights of a User

  • This is a Helper Function for adminsOnly

  • Parameters:

    • chat_id (int):

      • The Chat ID of Which Chat has to check the Rights.
    • user_id (int):

      • The User ID of Whose Rights have to Check.
    • rights (str):

      • The Rights have to be Checked.
    • client (pyrogram.Client):

      • From which Client to Check the Rights.
  • Returns:

    • True if the User has the Right.
    • False if the User doesn't have the Right.

Example

from tgEasy import tgClient, check_rights, get_user
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("ban", group_only=True, self_admin=True)
async def ban(client, message):
  if not await check_rights(message.chat.id, message.from_user.id, "can_restrict_members"):
    return await message.reply_text("You don't have necessary rights to use this Command.")
  user = await get_user(message)
  await message.chat.kick_member(user.id)

tgEasy.is_admin

  • A Functions to Check if the User is Admin or not

  • Parameters:

    • chat_id (int):

      • The Chat ID of Which Chat has to check the Admin Status.
    • user_id (int):

      • The User ID of Whose Admin Status have to Check.
    • client (pyrogram.Client):

      • From which Client to Check the Admin Status.
  • Returns:

    • True if the User is Admin.
    • False if the User is't Admin.

Example

from tgEasy import tgClient, is_admin, adminsOnly
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("ban", group_only=True, self_admin=True)
@app.adminsOnly("can_restrict_members")
async def ban(client, message):
    if await is_admin(message.chat.id, (await get_user(mesasge)).id):
        return await message.reply_text("You can't Ban Admins.")
    await message.chat.kick_member((await get_user(message)).id)
    await message.reply_text("User has been Banned.")

tgEasy.handle_error

  • A Function to Handle the Errors in Functions.

  • This Sends the Error Log to the Log Group and Replies Sorry Message for the Users.

  • This is a Helper for all of the functions for handling Errors.

  • Parameters:

    • error:

      • The Exceptation.
    • m (pyrogram.types.Message or pyrogram.types.CallbackQuery):

      • The Message or Callback Query where the Error occurred.

Example

from tgEasy import tgClient, handle_error
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("start")
async def start(client, message):
  try:
    await message.reply_text("Hi :D') # I intentionally made an bug for Example :/
  except Exceptation as e:
    return await handle_error(e, message)

tgEasy.send_typing

  • A Function to Send the Typing Status to the Chat.

  • Parameters:

    • m (pyrogram.types.Message || pyrogram.types.CallbackQuery):
      • Message or Callbackquery.

Example

from tgEasy import tgClinet, send_typing
import pyrogram

app = tgClient(pyrogram.Client())

@app.command("start")
async def start(client, message):
  await send_typing(message)
  await message.reply_text("Hello")

tgEasy.tgClient.__client__

  • To access pyrogram.Client of the tgClient.
  • Returns:
    • pyrogram.Client

Example

print(tgClient.__client__) -> Client()

Back to Homepage