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:
50
maloja
50
maloja
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user