function
This commit is contained in:
parent
3faf6423b4
commit
f2eaa0e930
42
driver/paste.py
Normal file
42
driver/paste.py
Normal file
@ -0,0 +1,42 @@
|
||||
import socket
|
||||
import asyncio
|
||||
|
||||
from functools import partial
|
||||
from asyncio import get_running_loop
|
||||
|
||||
from driver.core import aiohttpsession as session
|
||||
|
||||
|
||||
def _netcat(host, port, content):
|
||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
s.connect((host, 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_queue(content):
|
||||
loop = get_running_loop()
|
||||
link = await loop.run_in_executor(
|
||||
None, partial(_netcat, "ezup.dev", 9999, content)
|
||||
)
|
||||
return link
|
||||
|
||||
|
||||
async def isPreviewUp(preview: str) -> bool:
|
||||
for _ in range(7):
|
||||
try:
|
||||
async with session.head(preview, timeout=2) as resp:
|
||||
status, size = resp.status, resp.content_length
|
||||
except asyncio.exceptions.TimeoutError:
|
||||
return False
|
||||
if status == 404 or (status == 200 and size == 0):
|
||||
await asyncio.sleep(0.4)
|
||||
else:
|
||||
return True if status == 200 else False
|
||||
return False
|
Loading…
Reference in New Issue
Block a user