PM/compiled.server

1 line
4.4 KiB
Plaintext

{'servername': 'python messages main server', 'serverdata': 'import os\nimport random\nimport string\nimport ast\nimport copy\nimport time\n\nif not os.path.exists("PM server/acc\'s"):\n os.mkdir("PM server")\n file = open("PM server/acc\'s", \'w\')\n file.write(str({}))\n file.close()\n file = open("PM server/conversations", \'w\')\n file.write(str({}))\n file.close()\nelse:\n file = open("PM server/acc\'s", \'r\')\n accounts = file.read()\n accounts = ast.literal_eval(accounts)\n file.close()\n file = open("PM server/conversations", \'r\')\n conversations = file.read()\n conversations = ast.literal_eval(conversations)\n file.close()\n\ncurrentsessionids = {}\nsessiontime = {}\n\ndef updatefiles():\n global accounts\n global conversations\n while True:\n try:\n file = open("PM server/acc\'s", \'r\')\n accounts = file.read()\n accounts = ast.literal_eval(accounts)\n file.close()\n file = open("PM server/conversations", \'r\')\n conversations = file.read()\n conversations = ast.literal_eval(conversations)\n file.close()\n break\n except:\n pass\n\ndef saveaccounts(target):\n file = open("PM server/acc\'s", \'w\')\n file.write(str(target))\n file.close()\n\ndef saveconversations(target):\n file = open("PM server/conversations", \'w\')\n file.write(str(target))\n file.close()\n\ndef GET(args, ressources=None):\n function = args["targetfunction"]\n if function == "getsessionid":\n name = args["name"]\n password = args["pass"]\n for i in currentsessionids.copy():\n if currentsessionids[i] == name:\n del currentsessionids[i]\n del sessiontime[i]\n if name in accounts:\n if accounts[name]["pass"] == password:\n temp = " "\n for i in range(1,20):\n temp = temp + random.choice(list(string.ascii_letters+string.digits))\n currentsessionids[temp] = name\n sessiontime[temp] = time.time()\n return temp\n else:\n return "wrong password"\n else:\n return "account not found"\n elif function == "register":\n name = args["name"]\n password = args["pass"]\n if not name in accounts:\n accounts[name] = {"pass": password}\n saveaccounts(accounts)\n temp = " "\n for i in range(1,20):\n temp = temp + random.choice(list(string.ascii_letters+string.digits))\n currentsessionids[temp] = name\n sessiontime[temp] = time.time()\n return temp\n else:\n return "name already used!"\n elif args["targetfunction"] == "update":\n updatefiles()\n sessionid = args["sessionid"]\n if sessionid in currentsessionids:\n lasttime = sessiontime[sessionid]\n temp = time.time() - lasttime\n if not temp > 60:\n sessiontime[sessionid] = time.time()\n name = currentsessionids[sessionid]\n temp = []\n for i in conversations:\n if name in i.split("<splitedaccountname>"):\n temp.append({"speakers": i, "conversation": copy.deepcopy(conversations[i])})\n return temp\n else:\n currentsessionids.pop(sessionid)\n sessiontime.pop(sessionid)\n return "sessionid ran out"\n \ndef PATCH(args, ressources=None):\n if args["targetfunction"] == "send":\n updatefiles()\n sessionid = args["sessionid"]\n message = args["message"]\n name = currentsessionids[sessionid]\n conversation = args["conversation"]\n if conversation in conversations:\n if name in conversation:\n conversations[conversation] = conversations[conversation] + name + ":" + message + "\\n"\n saveconversations(conversations)\n elif args["targetfunction"] == "newconv":\n sessionid = args["sessionid"]\n name = currentsessionids[sessionid]\n target = args["target"]\n if target in accounts:\n conversations[name+"<splitedaccountname>"+target] = ""\n saveconversations(conversations)\n', 'ressources': {}}