2018-12-27 16:39:41 -07:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
import i18n
|
|
|
|
import validators
|
|
|
|
import requests
|
2018-12-27 17:39:25 -07:00
|
|
|
from config import *
|
2018-12-27 16:39:41 -07:00
|
|
|
from getpass import getpass
|
|
|
|
|
|
|
|
|
2018-12-27 17:39:25 -07:00
|
|
|
def firstsetup(url = "", username = ""):
|
|
|
|
config = getconfig()
|
|
|
|
# Get URL
|
2018-12-27 16:39:41 -07:00
|
|
|
while True:
|
2018-12-27 17:39:25 -07:00
|
|
|
if url != "":
|
|
|
|
url = input(i18n.t("Server URL") + " (" + url + "): ") or url
|
|
|
|
else:
|
|
|
|
url = input(i18n.t("Server URL") + ": ")
|
2018-12-27 16:39:41 -07:00
|
|
|
if validators.url(url):
|
|
|
|
break
|
|
|
|
else:
|
|
|
|
print(i18n.t("That doesn't look right, try again."))
|
2018-12-27 17:39:25 -07:00
|
|
|
# Get username
|
2018-12-27 16:39:41 -07:00
|
|
|
while True:
|
2018-12-27 17:39:25 -07:00
|
|
|
if username != "":
|
|
|
|
username = input(i18n.t("Username") + " (" + username + "): ") or username
|
|
|
|
else:
|
|
|
|
username = input(i18n.t("Username") + ": ")
|
2018-12-27 16:39:41 -07:00
|
|
|
if username != "":
|
|
|
|
break
|
2018-12-27 17:39:25 -07:00
|
|
|
# Get password
|
2018-12-27 16:39:41 -07:00
|
|
|
while True:
|
2018-12-27 17:39:25 -07:00
|
|
|
password = getpass(i18n.t("Password") + ": ")
|
2018-12-27 16:39:41 -07:00
|
|
|
if password != "":
|
|
|
|
break
|
|
|
|
|
2018-12-27 17:39:25 -07:00
|
|
|
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
|
2018-12-27 16:39:41 -07:00
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
if not checkconfig():
|
|
|
|
print(i18n.t("No valid settings file found, running setup wizard."))
|
|
|
|
firstsetup()
|
2018-12-27 17:39:25 -07:00
|
|
|
else:
|
|
|
|
loadconfig()
|
|
|
|
print(getconfig())
|
|
|
|
|
2018-12-27 16:39:41 -07:00
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
|
main()
|