1
0
mirror of https://github.com/krateng/maloja.git synced 2023-08-10 21:12:55 +03:00

Made setup more interactive

This commit is contained in:
Krateng
2019-03-04 17:39:21 +01:00
parent 58aae2643c
commit b6f3791eac
4 changed files with 140 additions and 8 deletions

50
maloja
View File

@@ -20,6 +20,10 @@ recommendedmodules = [
SOURCE_URL = "https://github.com/krateng/maloja/archive/master.zip"
def blue(txt): return "\033[94m" + txt + "\033[0m"
def green(txt): return "\033[92m" + txt + "\033[0m"
def yellow(txt): return "\033[93m" + txt + "\033[0m"
def gotodir():
if os.path.exists("./server.py"):
return True
@@ -32,9 +36,37 @@ def gotodir():
def setup():
print("Make sure to add your Last.FM api key in a file called 'apikey' to your main directory if you want to see images.")
print("Visit http://localhost:42010 to see your web interface. If you get an error, you probably don't have any scrobbles yet. This will be fixed later.")
# LASTFM API KEY
if os.path.exists("./apikey"):
with open("apikey","r") as keyfile:
apikey = keyfile.read().replace("\n","")
if apikey == "NONE": print("Currently not using an API key for image display. Only local images will be used.")
else:
print("Please enter your Last.FM API key. If you do not want to display artist and track images, simply leave this empty and press Enter.")
key = input()
if key == "": key = "NONE"
with open("apikey","w") as keyfile:
keyfile.write(key)
# OWN API KEY
if os.path.exists("./clients/authenticated_machines.tsv"):
pass
else:
print("Do you want to set up a key to enable scrobbling? Your scrobble extension needs that key so that only you can scrobble tracks to your database. [Y/n]")
answer = input()
if answer.lower() in ["y","yes","yea","1","positive","true",""]:
import random
key = ""
for i in range(64):
key += str(random.choice(list(range(10)) + list("abcdefghijklmnopqrstuvwxyz") + list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")))
print("Your API Key: " + yellow(key))
with open("./clients/authenticated_machines.tsv","w") as keyfile:
keyfile.write(key + "\n" + "Default Generated Key")
elif answer.lower() in ["n","no","nay","0","negative","false"]:
pass
#file is generated my server itself if not found
def install():
toinstall = []
@@ -73,7 +105,7 @@ def install():
print("Attempt to install required modules? [Y/n]")
answer = input()
if answer.lower() in ["y","yes","yea","1","positive","true"]:
if answer.lower() in ["y","yes","yea","1","positive","true",""]:
for m in neededmodules:
try:
print("Installing " + m + " with pip...")
@@ -114,12 +146,10 @@ def install():
if fail: return False
print("All modules successfully installed!")
setup()
return True
else:
print("All necessary modules seem to be installed.")
setup()
return True
@@ -139,8 +169,14 @@ def start():
if install():
if gotodir():
setup()
p = subprocess.Popen(["python3","server.py"],stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL)
print("Maloja started! PID: " + str(p.pid))
print(green("Maloja started!") + " PID: " + str(p.pid))
print("Visit your server address (Port 42010) to see your web interface. Visit /setup to get started.")
print("If you're installing this on your local machine, these links should get you there:")
print("\t" + blue("http://localhost:42010"))
print("\t" + blue("http://localhost:42010/setup"))
return True
#else:
# os.chdir("/opt/maloja/")
@@ -217,7 +253,7 @@ def update():
if __name__ == "__main__":
if sys.argv[1] == "start": start()
if sys.argv[1] == "start": restart()
elif sys.argv[1] == "restart": restart()
elif sys.argv[1] == "stop": stop()
elif sys.argv[1] == "update": update()