webss.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. from wbb import app, app2, SUDOERS
  2. from wbb.utils.errors import capture_err
  3. from pyrogram import filters
  4. from pyppeteer import launch
  5. import os
  6. import asyncio
  7. import time
  8. __MODULE__ = "WebSS"
  9. __HELP__ = "/webss | .webss [URL] - Take A Screenshot Of A Webpage"
  10. @app.on_message(filters.command("webss") & filters.user(SUDOERS))
  11. @app2.on_message(filters.command("webss", prefixes=["."]) & filters.user(SUDOERS))
  12. @capture_err
  13. async def take_ss(_, message):
  14. if len(message.command) != 2:
  15. await message.reply_text("Give A Url To Fetch Screenshot.")
  16. return
  17. start_time = time.time()
  18. url = message.text.split(None, 1)[1]
  19. m = await message.reply_text("**Launching Browser**")
  20. browser = await launch(
  21. headless=True,
  22. args=['--no-sandbox', '--disable-setuid-sandbox']
  23. )
  24. await m.edit("**Loading Page**")
  25. page = await browser.newPage()
  26. await page.setViewport({'width': 2000, 'height': 1381, 'deviceScaleFactor': 2.0})
  27. await page.goto(url, {'waitUntil': 'load'})
  28. await asyncio.sleep(1)
  29. await m.edit("**Taking Screenshot**")
  30. await page.screenshot({'path': 'webss.png'})
  31. await m.delete()
  32. end_time = time.time()
  33. await message.reply_photo(
  34. 'webss.png',
  35. caption=f"`{url}`\n__Took {round(end_time - start_time)} Seconds.__")
  36. await browser.close()
  37. os.remove('webss.png')