Răsfoiți Sursa

Fuck Nekobin

TheHamkerCat 5 ani în urmă
părinte
comite
a4519127bc
5 a modificat fișierele cu 49 adăugiri și 34 ștergeri
  1. 3 3
      wbb/modules/misc.py
  2. 28 18
      wbb/modules/paste.py
  3. 1 1
      wbb/modules/sudoers.py
  4. 0 12
      wbb/utils/nekobin.py
  5. 17 0
      wbb/utils/pastebin.py

+ 3 - 3
wbb/modules/misc.py

@@ -8,7 +8,7 @@ from wbb import app, FERNET_ENCRYPTION_KEY
 from wbb.utils import random_line
 from wbb.utils.json_prettify import json_prettify
 from wbb.utils.fetch import fetch
-from wbb.utils.nekobin import neko
+from wbb.utils.pastebin import paste
 from wbb.utils.errors import capture_err
 
 __MODULE__ = "Misc"
@@ -219,8 +219,8 @@ async def json_fetch(_, message):
         if len(data) < 4090:
             await message.reply_text(data)
         else:
-            neko_link = await neko(data)
-            await message.reply_text(f"[OUTPUT_TOO_LONG]({neko_link})", disable_web_page_preview=True)
+            link = await paste(data)
+            await message.reply_text(f"[OUTPUT_TOO_LONG]({link})", disable_web_page_preview=True)
     except Exception as e:
         await message.reply_text(str(e))
         print(str(e))

+ 28 - 18
wbb/modules/paste.py

@@ -1,36 +1,46 @@
 import os
+import aiofiles
 from pyrogram import filters
-from wbb.utils import nekobin
+from wbb.utils.pastebin import paste
 from wbb import app
 from wbb.utils.errors import capture_err
+from pyrogram.types import InlineKeyboardMarkup, InlineKeyboardButton, InputMediaPhoto
+from random import randint
 
 __MODULE__ = "Paste"
-__HELP__ = "/paste - To Paste Replied Text Or Document To Neokobin"
+__HELP__ = "/paste - To Paste Replied Text Or Document To Nekobin"
 
 
 @app.on_message(filters.command("paste") & ~filters.edited)
 @capture_err
-async def paste(_, message):
+async def paste_func(_, message):
     if message.reply_to_message:
         app.set_parse_mode("markdown")
         if message.reply_to_message.text:
-            m = await message.reply_text("```Pasting To Nekobin...```")
-            message_get = message.reply_to_message.text
-            message_as_str = str(message_get)
-            paste_link = await nekobin.neko(message_as_str)
-            final_link = f"[Nekobin]({paste_link})"
-            await m.edit(final_link, disable_web_page_preview=True)
+            m = await message.reply_text("Pasting...")
+            content = str(message.reply_to_message.text)
+            link = await paste(content)
+            await m.delete()
+            await app.send_photo(
+                    message.chat.id,
+                    photo=link + "/preview.png",
+                    caption=link
+                    )
 
         elif message.reply_to_message.document:
-            if message.reply_to_message.document.file_size > 300000:
-                await message.reply_text("You can only paste files smaller than 300KB.")
+            if message.reply_to_message.document.file_size > 1048576:
+                await message.reply_text("You can only paste files smaller than 1MB.")
                 return
-            m = await message.reply_text("```Pasting To Nekobin...```")
-            await message.reply_to_message.download(file_name='paste.txt')
-            i = open("downloads/paste.txt", "r")
-            paste_link = await nekobin.neko(i.read())
-            os.remove('downloads/paste.txt')
-            final_link = f"[Nekobin]({paste_link})"
-            await m.edit(final_link, disable_web_page_preview=True)
+            m = await message.reply_text("Pasting...")
+            doc_file = await message.reply_to_message.download(file_name='paste.txt')
+            i = open(doc_file, "r")
+            link = await paste(i.read())
+            await m.delete()
+            await app.send_photo(
+                    message.chat.id,
+                    photo=link + "/preview.png",
+                    caption=link
+                    )
+            os.remove(doc_file)
     else:
         await message.reply_text("Reply To A Message With /paste")

+ 1 - 1
wbb/modules/sudoers.py

@@ -8,7 +8,7 @@ import psutil
 import asyncio
 from sys import version as pyver
 from wbb import app, SUDOERS, bot_start_time, BOT_ID, USERBOT_USERNAME
-from wbb.utils import nekobin, formatter
+from wbb.utils import formatter
 from wbb.utils.errors import capture_err
 from wbb.utils.dbfunctions import (
     is_gbanned_user,

+ 0 - 12
wbb/utils/nekobin.py

@@ -1,12 +0,0 @@
-import aiohttp
-
-
-async def neko(data):
-    base_url = "https://nekobin.com"
-    async with aiohttp.ClientSession() as session:
-        async with session.post(
-            f"{base_url}/api/documents", json={"content": data}, timeout=3
-        ) as response:
-            key = (await response.json())["result"]["key"]
-            reply = f"{base_url}/{key}"
-    return reply

+ 17 - 0
wbb/utils/pastebin.py

@@ -0,0 +1,17 @@
+import socket
+
+async def _netcat(host, port, content):
+    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+    s.connect((host, int(port)))
+    s.sendall(content.encode())
+    s.shutdown(socket.SHUT_WR)
+    while True:
+        data = s.recv(4096).decode('utf-8').strip('\n\x00')
+        if not data:
+            break
+        return data
+    s.close()
+
+async def paste(content):
+    link = await _netcat('ezup.dev', 9999, content)
+    return link