Наконец (вроде) работает публикация сайтов

main
none 9 months ago
parent 2339e439ce
commit ef68206cca

@ -49,6 +49,12 @@ os.chdir("../") # возвращаемся в корень
server = Thread(target = server, args=(serv_port,)) server = Thread(target = server, args=(serv_port,))
server.start() server.start()
#print(client(8000, "ping"))
#ports = port_check(serv_port)
#print(ports)
#client(4140, "ping")
''' '''
# Режим отладки # Режим отладки

@ -8,6 +8,7 @@ from random import randint
from shutil import unpack_archive from shutil import unpack_archive
# Убираем ненужное (../some => some) # Убираем ненужное (../some => some)
from re import compile, sub from re import compile, sub
# Timeout для команды
from verify import * from verify import *
from domain_check import * from domain_check import *
@ -30,12 +31,11 @@ def port_gen():
port = randint(4000, 4200) port = randint(4000, 4200)
return port return port
def server_http(): def server_http():
os.chdir("cached") os.chdir("cached")
os.system("python -m http.server") os.system("python -m http.server")
def server(server_port): def server(http_port):
host = "127.0.0.1" host = "127.0.0.1"
port = 8001 port = 8001
@ -51,7 +51,6 @@ def server(server_port):
while True: while True:
try: try:
op = conn.recv(1024).decode() op = conn.recv(1024).decode()
print(op)
except: except:
pass pass
if not op: if not op:
@ -78,6 +77,17 @@ def server(server_port):
conn.close() conn.close()
def recv(q, s):
okay = False
while not okay:
try:
data = s.recv(1024).decode()
okay = True
except:
pass
q.put(data)
import multiprocessing as mp
# op = operation # op = operation
def client(port, op = "ping"): def client(port, op = "ping"):
host = 'jetwork.404.mn' host = 'jetwork.404.mn'
@ -90,16 +100,26 @@ def client(port, op = "ping"):
return None return None
s.send(op.encode()) s.send(op.encode())
okay = False
while not okay: # Канал обмена процесс - наша функция
q = mp.Queue()
# Стартуем процесс получения ответа
p = mp.Process(target=recv, args=(q, s))
p.start()
# Ждём 10 секунд - максимум
p.join(10)
try: try:
data = s.recv(1024).decode() data = q.get(block=False)
okay = True
except: except:
pass data = None
print(data)
# Если процесс жив - убираем
if p.is_alive():
p.terminate()
s.close() s.close()
return data return data
elif op[:4] == "get_": elif op[:4] == "get_":
site = op[4:] site = op[4:]
@ -144,3 +164,16 @@ def client(port, op = "ping"):
# Удаляем фальшивые файлы # Удаляем фальшивые файлы
os.remove(f"verify/{site}.zip") os.remove(f"verify/{site}.zip")
os.remove(f"verify/{site}.sig") os.remove(f"verify/{site}.sig")
from tqdm import tqdm
def port_check(your_port):
ports = []
checks = list(range(4000, 4200))
checks.remove(your_port)
for port in tqdm(range(4000, 4200)):
if client(port, "ping"):
ports.append(port)
return ports

@ -1,8 +1,10 @@
from os import system, mkdir from os import system, mkdir
from db import * from db import *
from shutil import copyfile, make_archive, rmtree
from tqdm import tqdm
from verify import * from verify import *
from shutil import copyfile, make_archive, rmtree from network import *
print("(1) Создать сайт") print("(1) Создать сайт")
print("(2) Обновить сайт") print("(2) Обновить сайт")
@ -89,4 +91,30 @@ elif op == "3":
make_archive(f"mysites/{domain}", "zip", f"mysites/{domain}") make_archive(f"mysites/{domain}", "zip", f"mysites/{domain}")
sign(f"mysites/{domain}.zip", f"mysites/{domain}.key", f"mysites/{domain}") sign(f"mysites/{domain}.zip", f"mysites/{domain}.key", f"mysites/{domain}")
exit()
# Копируем файлы из mysites в cached
copyfile(f"mysites/{domain}", "cached/{domain}")
copyfile(f"mysites/{domain}.pem", "cached/{domain}.pem")
copyfile(f"mysites/{domain}.sig", "cached/{domain}.sig")
copyfile(f"mysites/{domain}.zip", "cached/{domain}.zip")
print("Опубликовать сайт?")
pub = input("y/n >> ")
if pub == "n":
exit()
print("Введите ваш порт сервера (при запуске main.py)")
serv_port = int(input(">> "))
http_port = client(serv_port, f"is_{domain}")
print("Получаем все порты...")
ports = port_check(serv_port)
print("Публикуем сайт...")
for port in tqdm(ports):
client(port, f"publish_{domain}<>{http_port}")

Loading…
Cancel
Save