Dateien nach "/" hochladen

master
Justus Jan Nico Wolff 2023-07-21 14:11:57 +02:00
parent bbe85afc9b
commit 2163482149
2 changed files with 235 additions and 0 deletions

33
justserv.py 100644
View File

@ -0,0 +1,33 @@
import ast
import os
def GET(args, ressources):
if os.path.exists("states"):
file = open("states", 'r')
file = file.read()
file = ast.literal_eval(file)
if args["targetdict"] in file:
return file[args["targetdict"]]
else:
file[args["targetdict"]] = {}
file2 = open("states", 'w')
file2.write(str(file))
file2.close()
return {}
else:
file = open("states", 'w')
file.write(str({}))
file.close()
return {}
def PATCH(args, ressources):
if os.path.exists("states"):
file = open("states", 'r')
file = file.read()
file = ast.literal_eval(file)
else:
file = {}
print(args)
file[args["targetdict"]] = ast.literal_eval(args["dict"])
file2 = open("states", 'w')
file2.write(str(file))
file2.close()

View File

@ -0,0 +1,202 @@
import os
import random
import string
import ast
import copy
import time
if not os.path.exists("PM server/acc's"):
os.mkdir("PM server")
file = open("PM server/acc's", 'w')
file.write(str({}))
file.close()
file = open("PM server/conversations", 'w')
file.write(str({}))
file.close()
file = open("PM server/acc's", 'r')
accounts = file.read()
accounts = ast.literal_eval(accounts)
file.close()
file = open("PM server/conversations", 'r')
conversations = file.read()
conversations = ast.literal_eval(conversations)
file.close()
file = open("PM server/bots", 'r')
bots = file.read()
bots = ast.literal_eval(bots)
file.close()
currentsessionids = {}
sessiontime = {}
def updatefiles():
global accounts
global conversations
global bots
while True:
try:
file = open("PM server/acc's", 'r')
accounts = file.read()
accounts = ast.literal_eval(accounts)
file.close()
file = open("PM server/conversations", 'r')
conversations = file.read()
conversations = ast.literal_eval(conversations)
file.close()
file = open("PM server/bots", 'r')
bots = file.read()
bots = ast.literal_eval(bots)
file.close()
break
except:
pass
updatefiles()
def saveaccounts(target):
file = open("PM server/acc's", 'w')
file.write(str(target))
file.close()
def saveconversations(target):
file = open("PM server/conversations", 'w')
file.write(str(target))
file.close()
def savebots(target):
file = open("PM server/bots", 'w')
file.write(str(target))
file.close()
def GET(args, ressources=None):
global accounts
global conversations
global bots
global currentsessionids
global sessiontime
function = args["targetfunction"]
if function == "getsessionid":
name = args["name"]
password = args["pass"]
for i in currentsessionids.copy():
if currentsessionids[i] == name:
del currentsessionids[i]
del sessiontime[i]
if name in accounts:
if accounts[name]["pass"] == password:
temp = " "
for i in range(1,20):
temp = temp + random.choice(list(string.ascii_letters+string.digits))
currentsessionids[temp] = name
sessiontime[temp] = time.time()
return temp
else:
return "wrong password"
else:
return "account not found"
elif function == "register":
name = args["name"]
password = args["pass"]
if not name in accounts:
accounts[name] = {"pass": password}
saveaccounts(accounts)
temp = " "
for i in range(1,20):
temp = temp + random.choice(list(string.ascii_letters+string.digits))
currentsessionids[temp] = name
sessiontime[temp] = time.time()
return temp
else:
return "name already used!"
elif args["targetfunction"] == "update":
updatefiles()
sessionid = args["sessionid"]
if sessionid in currentsessionids:
lasttime = sessiontime[sessionid]
temp = time.time() - lasttime
if not temp > 60:
sessiontime[sessionid] = time.time()
name = currentsessionids[sessionid]
temp = []
for i in conversations:
if name in i.split("<splitedaccountname>"):
temp.append({"speakers": i, "conversation": copy.deepcopy(conversations[i])})
return temp
else:
currentsessionids.pop(sessionid)
sessiontime.pop(sessionid)
return "sessionid ran out"
elif args["targetfunction"] == "botgetconversations":
updatefiles()
if args["botname"] in bots:
if bots[args["botname"]]["pass"] == args["pass"]:
for i in bots[args["botname"]]["conversations"]:
bots[args["botname"]]["conversations"][i] = conversations[i]
savebots(bots)
print(bots[args["botname"]]["conversations"])
return bots[args["botname"]]["conversations"]
else:
return "wrong password"
else:
return "bot not found"
elif args["targetfunction"] == "botsend":
updatefiles
if args["botname"] in bots:
if bots[args["botname"]]["pass"] == args["pass"]:
message = args["message"]
conversation = args["conversation"]
if conversation in conversations:
if conversation in bots[args["botname"]]["conversations"]:
conversations[conversation] = conversations[conversation] + "message from bot " + message + "\n"
saveconversations(conversations)
return "sucess"
else:
return "no permission to send in this conversation"
else:
return "conversation not found"
else:
return "wrong password"
else:
return "bot not found"
elif args["targetfunction"] == "createbot":
updatefiles()
if not args["botname"] in bots:
bots[args["botname"]] = {}
bots[args["botname"]]["pass"] = args["pass"]
bots[args["botname"]]["conversations"] = {}
savebots(bots)
return "sucess"
else:
return "bot already exists"
def PATCH(args, ressources=None):
global accounts
global conversations
global currentsessionids
global sessiontime
if args["targetfunction"] == "send":
updatefiles()
sessionid = args["sessionid"]
message = args["message"]
name = currentsessionids[sessionid]
conversation = args["conversation"]
if conversation in conversations:
if name in conversation:
if message.split(" ")[0] != "!addbot":
conversations[conversation] = conversations[conversation] + name + ":" + message + "\n"
else:
message = message.split(" ")
if message[1] in bots:
bots[message[1]]["conversations"][conversation] = conversations[conversation]
conversations[conversation] = conversations[conversation] + "bot '{}' added!".format(message[1]) + "\n"
savebots(bots)
else:
conversations[conversation] = conversations[conversation] + "bot not found" + "\n"
saveconversations(conversations)
elif args["targetfunction"] == "newconv":
sessionid = args["sessionid"]
name = currentsessionids[sessionid]
target = args["target"]
if target in accounts:
conversations[name+"<splitedaccountname>"+target] = ""
saveconversations(conversations)