Advertisement
MRtecno98

SfondiPaper Server Management Tool RELEASE V.2.5.8

Dec 29th, 2017
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 12.00 KB | None | 0 0
  1. from techcore import ftp
  2. import os , getpass , requests , json , time , sys
  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 = getImageList(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 checkExit(x) :
  21.     return False #x == "abort"
  22.  
  23. def getPackList(server , folder) :
  24.     request = requests.get(server + folder + "list.json")
  25.     request.raise_for_status()
  26.     obj = json.loads(request.text)
  27.     return obj
  28.  
  29. def checkPack(pack , server , folder) :
  30.     l = getPackList(server , folder)
  31.     return pack in l
  32.  
  33. def getCategoriesList(server , folder) :
  34.     request = requests.get(server + folder + "categories.json")
  35.     request.raise_for_status()
  36.     obj = json.loads(request.text)
  37.     return obj
  38.  
  39. def newInput(message) :
  40.     t = newInput(message)
  41.     if checkExit(t) :
  42.         raise ImportError()
  43.     else :
  44.         return t
  45. newInput , input = input , newInput
  46.  
  47. def menu() :
  48.     print("SfondiPaper Server Management Tool [V.2.5.8]")
  49.     print("Select option:")
  50.     print("1) Add Image")
  51.     print("2) Remove Image")
  52.     print("3) List Images")
  53.     print("4) Set Wallpaper of the Month")
  54.     print("5) Add Wallpaper Pack")
  55.     print("6) Remove Wallpaper Pack")
  56.     print("7) List Wallapaper Packs")
  57.     print("9) Exit")
  58.  
  59. def start() :
  60.     while True :
  61.         op = None
  62.         while op == None :
  63.             try :
  64.                 op = int(input("\nOption: "))
  65.             except ValueError :
  66.                 print("Inserisci un numero!")
  67.         if op == 1 :
  68.             path = ""
  69.             while True :
  70.                 path = input("Insert path of the image: ")
  71.                 checkExit(path)
  72.                 if not os.path.isfile(path) or not (path.endswith(".png") or path.endswith(".jpg")) :
  73.                     print("Insert valid path for a PNG/JPG image!")
  74.                     continue
  75.                 break
  76.             server = input("Insert server: ")
  77.             if not server.startswith("http://") :
  78.                 server = "http://" + server
  79.             folder = "/categories/"
  80.             category = ""
  81.             while not checkCategory(category , server , folder) :
  82.                 category = input("Insert category: ")
  83.             user = input("Username: ")
  84.             psw = input("Password: ")
  85.             #print(server,user,psw)
  86.             conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  87.             print("Connected! Uploading Image...")
  88.             filename = ""
  89.             cts = getCategoriesList(server , folder)
  90.             rawCategory = cts[category]
  91.             with open(path , "rb") as file :
  92.                 filename = file.name.split("\\")[-1]
  93.             ftp.uploadFile(conn , file , folder + rawCategory)
  94.             print("Upload complete! Updating JSON files...")
  95.             os.makedirs("work" , exist_ok=True)
  96.             os.chdir("work")
  97.             request = requests.get(server + folder + "all.json")
  98.             request.raise_for_status()
  99.             if request.text == "" :
  100.                 obj = {}
  101.             else :
  102.                 obj = json.loads(request.text)
  103.             obj[category].append(filename)
  104.             text = json.dumps(obj)
  105.             with open("all.json" , "w") as file :
  106.                 file.write(text)
  107.             with open("all.json" , "rb") as file :
  108.                 ftp.uploadFile(conn , file , folder)
  109.             print("General JSON file updated, updating category-based file...")
  110.             request = requests.get(server + folder + rawCategory + "/list.json")
  111.             request.raise_for_status()
  112.             if request.text == "" :
  113.                 obj = []
  114.             else :
  115.                 obj = json.loads(request.text)
  116.             obj.append(filename)
  117.             text = json.dumps(obj)
  118.             with open("list.json" , "w") as file :
  119.                 file.write(text)
  120.             with open("list.json" , "rb") as file :
  121.                 ftp.uploadFile(conn , file , folder + rawCategory)
  122.             print("All files updated! Closing connection...")
  123.             conn.quit()
  124.             print("Connection closed, operations finished!")
  125.  
  126.         if op == 2 :
  127.             server = input("Insert server: ")
  128.             if not server.startswith("http://") :
  129.                 server = "http://" + server
  130.             folder = "/categories/"
  131.             category = ""
  132.             while not checkCategory(category , server , folder) :
  133.                 category = input("Insert category: ")
  134.             img = ""
  135.             while not checkImage(img , category , server , folder) :
  136.                 img = input("Insert Image(With extension .png/.jpg): ")
  137.             user = input("Username: ")
  138.             psw = input("Password: ")
  139.  
  140.             conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  141.             print("Connected! Removing Image...")
  142.  
  143.             cts = getCategoriesList(server , folder)
  144.             print(folder + cts[category] + "/" + img)
  145.             ftp.deleteFile(conn , folder + cts[category] + "/" + img)
  146.             print("Image deleted! Updating JSON Files")
  147.    
  148.             os.makedirs("work" , exist_ok=True)
  149.             os.chdir("work")
  150.             request = requests.get(server + folder + "all.json")
  151.             request.raise_for_status()
  152.             if request.text == "" :
  153.                 obj = {}
  154.             else :
  155.                 obj = json.loads(request.text)
  156.             obj[category].remove(img)
  157.             text = json.dumps(obj)
  158.             with open("all.json" , "w") as file :
  159.                 file.write(text)
  160.             with open("all.json" , "rb") as file :
  161.                 ftp.uploadFile(conn , file , folder)
  162.             print("General JSON file updated, updating category-based file...")
  163.             request = requests.get(server + folder + rawCategory + "/list.json")
  164.             request.raise_for_status()
  165.             if request.text == "" :
  166.                 obj = []
  167.             else :
  168.                 obj = json.loads(request.text)
  169.             obj.remove(image)
  170.             text = json.dumps(obj)
  171.             with open("list.json" , "w") as file :
  172.                 file.write(text)
  173.             with open("list.json" , "rb") as file :
  174.                 ftp.uploadFile(conn , file , folder + rawCategory)
  175.             print("All files updated! Closing connection...")
  176.             conn.quit()
  177.             print("Connection closed, operations finished!")
  178.         if op == 3 :
  179.             server = input("Insert server: ")
  180.             if not server.startswith("http://") :
  181.                 server = "http://" + server
  182.             folder = "/categories/"
  183.             category = ""
  184.             while not checkCategory(category , server , folder) :
  185.                 category = input("Insert category: ")
  186.             user = input("Username: ")
  187.             psw = input("Password: ")
  188.             print("Retrieving images...")
  189.             obj = getImageList(category , server , folder)
  190.             for o in obj :
  191.                 print("Image: " + o)
  192.  
  193.         if op == 4 :
  194.             server = input("Insert server: ")
  195.             if not server.startswith("http://") :
  196.                 server = "http://" + server
  197.             folder = "/categories/"
  198.             category = ""
  199.             while not checkCategory(category , server , folder) :
  200.                 category = input("Insert category: ")
  201.             img = ""
  202.             while not checkImage(img , category , server , folder) :
  203.                 img = input("Insert Image(With extension .png/.jpg): ")
  204.             user = input("Username: ")
  205.             psw = input("Password: ")
  206.             print("Updating JSON File...")
  207.             conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  208.             obj = {}
  209.             obj[category] = img
  210.             text = json.dumps(obj)
  211.             with open("month.json" , "w") as file :
  212.                 file.write(text)
  213.             with open("month.json" , "rb") as file :
  214.                 ftp.uploadFile(conn , file , folder + rawCategory)
  215.             print("All files updated! Closing connection...")
  216.             conn.quit()
  217.             print("Connection closed, operations finished!")
  218.  
  219.         if op == 5 :
  220.             server = input("Insert server: ")
  221.             if not server.startswith("http://") :
  222.                 server = "http://" + server
  223.             folder = "/packs/"
  224.             path = ""
  225.             while not (path.endswith(".zip") and os.path.isfile(path)) :
  226.                 path = input("Insert path of zip file: ")
  227.             user = input("Username: ")
  228.             psw = input("Password: ")
  229.             conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  230.             print("Connected! Uploading zip pack...")
  231.             with open(path , "rb") as file :
  232.                 ftp.uploadFile(conn , file , folder)
  233.             print("Upload complete! Updating JSON Files...")
  234.        
  235.             os.makedirs("work" , exist_ok=True)
  236.             os.chdir("work")
  237.             request = requests.get(server + folder + "list.json")
  238.             request.raise_for_status()
  239.             if request.text == "" :
  240.                 obj = []
  241.             else :
  242.                 obj = json.loads(request.text)
  243.             obj.append(os.path.basename(path))
  244.             text = json.dumps(obj)
  245.             with open("list.json" , "w") as file :
  246.                 file.write(text)
  247.             with open("list.json" , "rb") as file :
  248.                 ftp.uploadFile(conn , file , folder)
  249.             print("All files updated! Closing connection...")
  250.             conn.quit()
  251.             print("Connection closed, operations finished!")
  252.  
  253.         if op == 6 :
  254.             server = input("Insert server: ")
  255.             if not server.startswith("http://") :
  256.                 server = "http://" + server
  257.             folder = "/packs/"
  258.             name = ""
  259.             while not checkPack(name , server , folder) :
  260.                 name = input("Insert name of pack to delete: ")
  261.             user = input("Username: ")
  262.             psw = input("Password: ")
  263.             conn = ftp.FTP(host=server[7:], user=user, passwd=psw)
  264.             print("Connected! Deleting zip pack...")
  265.             ftp.deleteFile(conn , folder + name)
  266.             print("Zip file deleted, updating JSON Files...")
  267.             os.makedirs("work" , exist_ok=True)
  268.             os.chdir("work")
  269.             request = requests.get(server + folder + "list.json")
  270.             request.raise_for_status()
  271.             if request.text == "" :
  272.                 obj = [name]
  273.             else :
  274.                 obj = json.loads(request.text)
  275.             obj.remove(name)
  276.             text = json.dumps(obj)
  277.             with open("list.json" , "w") as file :
  278.                 file.write(text)
  279.             with open("list.json" , "rb") as file :
  280.                 ftp.uploadFile(conn , file , folder)
  281.             print("All files updated! Closing connection...")
  282.             conn.quit()
  283.             print("Connection closed, operations finished!")
  284.  
  285.         if op == 7 :
  286.             server = input("Insert server: ")
  287.             if not server.startswith("http://") :
  288.                 server = "http://" + server
  289.             folder = "/packs/"
  290.             l = getPackList(server , folder)
  291.             if l == [] :
  292.                 print("There aren't wallpaper packs now")
  293.             else :
  294.                 print("List of packs in " + server)
  295.                 for i in l :
  296.                     print(i)
  297.  
  298.         if op == 9 :
  299.             print("Exiting...")
  300.             time.sleep(1)
  301.             sys.exit(0)
  302.  
  303. try :
  304.     if __name__ == "__main__" :
  305.         menu()
  306.         start()
  307. except KeyboardInterrupt :
  308.     print("Exiting...")
  309.     time.sleep(1)
  310.     sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement