from bottle import route, Bottle, request, error, run, post brequest=request import random, threading from urllib import request, parse token=random.randint(0, 1000000000000000000000000000000000000000000000000000000000000) idcode=input("Type the secure code : ") name=input("Name : ") host="ufoclient"+name class Console(threading.Thread): def __init__(self): threading.Thread.__init__(self) def run(self): while True: cmd=input(host+"@ufonetwork$") if cmd=="connect": connectAdress=input("Client name : ") passcode=input("Security code of the client : ") registerTo(connectAdress, passcode) if cmd=="send": adress=input("Client name : ") passcode=input("Security code of the client : ") pack=input("String to send : ") if adress not in clients: print("Ce client n'existe pas") continue send(adress, passcode, pack) clients={} tokenClients={} def getRealName(host): return host.split("ufoclient")[0] @route("/register/<_from>//") def registerClient(_from, token, securecode): if securecode==idcode: clients[_from]=token tokenClients[token]=_from print(_from, "is registered with token", token, "and secure code", securecode) #registerTo(_from, idcode) return "True" else: print(_from, "with token", token, "have try to register with code", securecode) return "False" @route("/") def humanPage(): return "This is an UFO communication platform.
You can't see something in this site because it is used by UFO on computers." @error(404) def error404(error): return humanPage() @post("/send/"+str(token)+"/<_from>/") def receive(_from, passcode): if _from in tokenClients and passcode==idcode: print("vous avez reçu un paquet de", tokenClients[_from], " : ", brequest.forms.get("pack")) return "True" elif passcode!=idcode: print("Un utilisateur a tenté de vous envoyer un paquet avec le mauvais Code : "+passcode) else: print("Un utilisateur a tenté de vous envoyer un paquet avec de mauvais jetons.") def send(to, passcode, data): data=parse.urlencode({"pack" : data}).encode() req=request.Request("http://ufoclient"+to+":8080/send/"+clients[to]+"/"+str(token)+"/"+passcode, data=data) request.urlopen(req) def registerTo(to, passcode): request.urlopen("http://ufoclient"+to+":8080/register/"+name+"/"+str(token)+"/"+passcode) console=Console() console.start() run(host=host, port=8080)