bay.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import os
  2. import requests
  3. import aiohttp
  4. import aiofiles
  5. from wbb import app, SUDOERS
  6. from pyrogram import filters
  7. from random import randint
  8. __MODULE__ = "BAYFILES"
  9. __HELP__ = """/url [URL] To upload a url to bayfiles. [SUDO ONLY]
  10. /tg To Upload a telegram file to bayfiles. [SUDO ONLY]"""
  11. @app.on_message(filters.command("url") & filters.user(SUDOERS))
  12. async def url(_, message):
  13. if len(message.command) != 2:
  14. await message.reply_text("/url [url]")
  15. return
  16. m = await message.reply_text("Downloading")
  17. lenk = message.text.split(None, 1)[1]
  18. try:
  19. filename = await download(lenk)
  20. files = {'file': open(filename, 'rb')}
  21. await m.edit("Uploading....")
  22. r = requests.post("https://api.bayfiles.com/upload", files=files)
  23. text = r.json()
  24. output = f"""
  25. **status:** `{text['status']}`
  26. **link:** {text['data']['file']['url']['full']}
  27. **id:** `{text['data']['file']['metadata']['id']}`
  28. **name:** `{text['data']['file']['metadata']['name']}`
  29. **size:** `{text['data']['file']['metadata']['size']['readable']}`"""
  30. await m.edit(output)
  31. os.remove(filename)
  32. except Exception as e:
  33. print(str(e))
  34. await m.edit(str(e))
  35. return
  36. @app.on_message(filters.command("tg") & filters.user(SUDOERS))
  37. async def tg(_, message):
  38. if not message.reply_to_message:
  39. await message.reply_text("Reply To A File With /tg To Upload")
  40. return
  41. if not message.reply_to_message.media:
  42. await message.reply_text("Reply To A File With /tg To Upload")
  43. return
  44. m = await message.reply_text("Downloading Document.")
  45. fn = await message.reply_to_message.download()
  46. try:
  47. files = {'file': open(fn, 'rb')}
  48. await m.edit("Uploading....")
  49. r = requests.post("https://api.bayfiles.com/upload", files=files)
  50. text = r.json()
  51. output = f"""
  52. **Status:** `{text['status']}`
  53. **Link:** {text['data']['file']['url']['full']}
  54. **ID:** `{text['data']['file']['metadata']['id']}`
  55. **Name:** `{text['data']['file']['metadata']['name']}`
  56. **Size:** `{text['data']['file']['metadata']['size']['readable']}`"""
  57. await m.edit(output)
  58. os.remove(fn)
  59. except Exception as e:
  60. print(str(e))
  61. await m.edit(str(e))
  62. return
  63. async def download(url):
  64. ext = url.split(".")[-1]
  65. filename = str(randint(1000, 9999)) + "." + ext
  66. async with aiohttp.ClientSession() as session:
  67. async with session.get(url) as resp:
  68. if resp.status == 200:
  69. f = await aiofiles.open(filename, mode='wb')
  70. await f.write(await resp.read())
  71. await f.close()
  72. return filename