Advertisement
MRtecno98

SfondiPaper Server Management Tool ALPHA 1.0.0

Dec 27th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.58 KB | None | 0 0
  1. from techcore import ftp
  2. import os , getpass , requests , json
  3.  
  4. def checkCategory(category , server , folder) :
  5.     obj = getCategoriesList(server , folder)
  6.     return category in list(obj.keys())
  7.  
  8. def checkImage(image , category , server , folder) :
  9.     imgs = getImagesList(category , server , folder)
  10.     return image in imgs
  11.  
  12. def getImageList(category , server , folder) :
  13.     if checkCategory(category, server , folder) :
  14.         cts = getCategoriesList(server , folder)
  15.         request = requests.get(server + folder + cts[category] + "/list.json")
  16.         request.raise_for_status()
  17.         obj = json.loads(request.text)
  18.         return obj
  19.  
  20. def getCategoriesList(server , folder) :
  21.     request = requests.get(server + folder + "categories.json")
  22.     request.raise_for_status()
  23.     obj = json.loads(request.text)
  24.     return obj
  25. print("SfondiPaper Server Management Tool [V.1.0.0]")
  26. print("Select option:")
  27. print("1) Add Image")
  28. print("2) Remove Image")
  29. print("3) List Images")
  30. print("4) Set Wallpaper of the Month")
  31. op = None
  32. while op == None :
  33.     try :
  34.         op = int(input("Option: "))
  35.     except ValueError :
  36.         print("Inserisci un numero!")
  37. if op == 1 :
  38.     path = ""
  39.     while True :
  40.         path = input("Insert path of the image: ")
  41.         if not os.path.isfile(path) or not (path.endswith(".png") or path.endswith(".jpg")) :
  42.             print("Insert valid path for a PNG/JPG image!")
  43.             continue
  44.         break
  45.     server = input("Insert server: ")
  46.     if not server.startswith("http://") :
  47.         server = "http://" + server
  48.     folder = input("Insert folder: ")
  49.     category = ""
  50.     while not checkCategory(category , server , folder) :
  51.         category = input("Insert category: ")
  52.     user = input("Username: ")
  53.     psw = input("Password: ")
  54.     #print(server,user,psw)
  55.     conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  56.     print("Connected! Uploading Image...")
  57.     filename = ""
  58.     cts = getCategoriesList(server , folder)
  59.     rawCategory = cts[category]
  60.     with open(path , "rb") as file :
  61.         filename = file.name.split("\\")[-1]
  62.         ftp.uploadFile(conn , file , folder + rawCategory)
  63.     print("Upload complete! Updating JSON files...")
  64.     os.makedirs("work" , exist_ok=True)
  65.     os.chdir("work")
  66.     request = requests.get(server + folder + "all.json")
  67.     request.raise_for_status()
  68.     if request.text == "" :
  69.         obj = {}
  70.     else :
  71.         obj = json.loads(request.text)
  72.     obj[category].append(filename)
  73.     text = json.dumps(obj)
  74.     with open("all.json" , "w") as file :
  75.         file.write(text)
  76.     with open("all.json" , "rb") as file :
  77.         ftp.uploadFile(conn , file , folder)
  78.     print("General JSON file updated, updating category-based file...")
  79.     request = requests.get(server + folder + rawCategory + "/list.json")
  80.     request.raise_for_status()
  81.     if request.text == "" :
  82.         obj = []
  83.     else :
  84.         obj = json.loads(request.text)
  85.     obj.append(filename)
  86.     text = json.dumps(obj)
  87.     with open("list.json" , "w") as file :
  88.         file.write(text)
  89.     with open("list.json" , "rb") as file :
  90.         ftp.uploadFile(conn , file , folder + rawCategory)
  91.     print("All files updated! Closing connection...")
  92.     conn.quit()
  93.     print("Connection closed, operations finished!")
  94.  
  95. if op == 2 :
  96.     server = input("Insert server: ")
  97.     if not server.startswith("http://") :
  98.         server = "http://" + server
  99.     folder = input("Insert folder: ")
  100.     category = ""
  101.     while not checkCategory(category , server , folder) :
  102.         category = input("Insert category: ")
  103.     img = ""
  104.     while not checkImage(img , category , server , folder) :
  105.         img = input("Insert Image(With extension .png/.jpg): ")
  106.     user = input("Username: ")
  107.     psw = input("Password: ")
  108.  
  109.     conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  110.     print("Connected! Removing Image...")
  111.  
  112.     cts = getCategoriesList(server , folder)
  113.     ftp.deleteFile(conn , "/" + folder + "/" + cts[category] + "/" + image)
  114.     print("Image deleted! Updating JSON Files")
  115.    
  116.     os.makedirs("work" , exist_ok=True)
  117.     os.chdir("work")
  118.     request = requests.get(server + folder + "all.json")
  119.     request.raise_for_status()
  120.     if request.text == "" :
  121.         obj = {}
  122.     else :
  123.         obj = json.loads(request.text)
  124.     obj[category].remove(image)
  125.     text = json.dumps(obj)
  126.     with open("all.json" , "w") as file :
  127.         file.write(text)
  128.     with open("all.json" , "rb") as file :
  129.         ftp.uploadFile(conn , file , folder)
  130.     print("General JSON file updated, updating category-based file...")
  131.     request = requests.get(server + folder + rawCategory + "/list.json")
  132.     request.raise_for_status()
  133.     if request.text == "" :
  134.         obj = []
  135.     else :
  136.         obj = json.loads(request.text)
  137.     obj.remove(image)
  138.     text = json.dumps(obj)
  139.     with open("list.json" , "w") as file :
  140.         file.write(text)
  141.     with open("list.json" , "rb") as file :
  142.         ftp.uploadFile(conn , file , folder + rawCategory)
  143.     print("All files updated! Closing connection...")
  144.     conn.quit()
  145.     print("Connection closed, operations finished!")
  146. if op == 3 :
  147.     server = input("Insert server: ")
  148.     if not server.startswith("http://") :
  149.         server = "http://" + server
  150.     folder = input("Insert folder: ")
  151.     category = ""
  152.     while not checkCategory(category , server , folder) :
  153.         category = input("Insert category: ")
  154.     user = input("Username: ")
  155.     psw = input("Password: ")
  156.     print("Retrieving images...")
  157.     obj = getImageList(category , server , folder)
  158.     for o in obj :
  159.         print("Image: " + o)
  160.  
  161. if op == 4 :
  162.     server = input("Insert server: ")
  163.     if not server.startswith("http://") :
  164.         server = "http://" + server
  165.     folder = input("Insert folder: ")
  166.     category = ""
  167.     while not checkCategory(category , server , folder) :
  168.         category = input("Insert category: ")
  169.     img = ""
  170.     while not checkImage(img , category , server , folder) :
  171.         img = input("Insert Image(With extension .png/.jpg): ")
  172.     user = input("Username: ")
  173.     psw = input("Password: ")
  174.     print("Updating JSON File...")
  175.     conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  176.     obj = {}
  177.     obj[category] = img
  178.     text = json.dumps(obj)
  179.     with open("month.json" , "w") as file :
  180.         file.write(text)
  181.     with open("month.json" , "rb") as file :
  182.         ftp.uploadFile(conn , file , folder + rawCategory)
  183.     print("All files updated! Closing connection...")
  184.     conn.quit()
  185.     print("Connection closed, operations finished!")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement