#!/usr/bin/env python3 import i18n import validators import requests from config import * from getpass import getpass def firstsetup(url = "", username = ""): config = getconfig() # Get URL while True: if url != "": url = input(i18n.t("Server URL") + " (" + url + "): ") or url else: url = input(i18n.t("Server URL") + ": ") if validators.url(url): break else: print(i18n.t("That doesn't look right, try again.")) # Get username while True: if username != "": username = input(i18n.t("Username") + " (" + username + "): ") or username else: username = input(i18n.t("Username") + ": ") if username != "": break # Get password while True: password = getpass(i18n.t("Password") + ": ") if password != "": break try: r = requests.post(url + "/api/ping", auth=(username, password)) except: print(i18n.t("Could not connect to the server. Try again.")) firstsetup() return if r.status_code == 401: print(i18n.t("Login incorrect, try again.")) firstsetup(url) return try: resp = r.json() if resp["status"] == "ERROR": print(resp["msg"]) firstsetup(url, username) return config["url"] = url config["username"] = username config["password"] = password saveconfig() return except ValueError: print(i18n.t("Login incorrect, try again.")) firstsetup(url, username) return def main(): if not checkconfig(): print(i18n.t("No valid settings file found, running setup wizard.")) firstsetup() else: loadconfig() print(getconfig()) if __name__ == "__main__": main()