Advertisement
Guest User

meejson

a guest
Jan 27th, 2020
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.31 KB | None | 0 0
  1. try:
  2.     import requests
  3.     import json
  4.     import os
  5.  
  6. except ImportError:
  7.     exit('''PLEASE INSTALL THE FOLLOWING REQUIRED LIBRARIES VIA PIP INSTALLER:
  8.    - requests
  9.    - json
  10.    - os
  11.    ''')
  12.  
  13. class meedata():
  14.  
  15.     def __init__(self,serverID,page,limit):
  16.  
  17.         #Checking ServerID
  18.         if isinstance(serverID,str):
  19.             raise ValueError("A server ID can only be a number")
  20.  
  21.         if isinstance(serverID,int):
  22.             x = str(serverID)
  23.             x = list(x)
  24.  
  25.             if len(x) > 18 or len(x) < 18:
  26.                 raise SyntaxError("Server Ids must be 18 characters long!")
  27.  
  28.             if len(x) == 18:
  29.                 y = requests.get(f"https://mee6.xyz/api/plugins/levels/leaderboard/{serverID}?page=0&limit=100")
  30.  
  31.                 errortest = y.json()
  32.                 t = errortest.get("error")
  33.  
  34.                 if t != None:
  35.                     raise LookupError("Error. ServerID not found. Make sure you are typing everything in correctly!")
  36.  
  37.                 else:
  38.                     self.serverID = serverID
  39.  
  40.         #Checking page
  41.  
  42.         if isinstance(page,str):
  43.             raise ValueError("A page can only be a number")
  44.  
  45.         if isinstance(page,int):
  46.             if page < 0:
  47.                 raise TypeError("Page numbers cannot go lower than 0!")
  48.  
  49.             else:
  50.                 self.page = page
  51.  
  52.  
  53.         #Checking limit
  54.  
  55.         if isinstance(limit,str):
  56.             raise ValueError("Limit can only be a number")
  57.  
  58.         if isinstance(limit,int):
  59.  
  60.             if limit <= 0 or limit >= 1000:
  61.                 raise OverflowError("limits can go from 1-999 only!")
  62.  
  63.             else:
  64.                 self.limit = limit
  65.  
  66.  
  67.     def getdata(self):
  68.  
  69.         req = requests.get(f"https://mee6.xyz/api/plugins/levels/leaderboard/{self.serverID}?page={self.page}&limit={self.limit}")
  70.         return req.json()
  71.  
  72.  
  73.     def storedata(self,filename):
  74.  
  75.         req = requests.get(f"https://mee6.xyz/api/plugins/levels/leaderboard/{self.serverID}?page={self.page}&limit={self.limit}")
  76.         with open(f'{filename}.json','w') as outfile:
  77.             json.dump(req.json(),outfile,indent=2)
  78.  
  79.         return outfile
  80.  
  81.  
  82.     def specifyrankbyid(self,filename):
  83.  
  84.         data = self.getdata()
  85.         myDict = {}
  86.         final = []
  87.  
  88.         for i in range(len(data["players"])):
  89.             info = f'{data["players"][i]["id"]}:{data["players"][i]["level"]}'
  90.  
  91.             final.append(info)
  92.  
  93.         if not os.path.isfile(f"{filename}.json"):
  94.  
  95.             if len(final) == 0:
  96.                 return False
  97.  
  98.             for i in final:
  99.                 thelist = i.split(":")
  100.                 myDict[thelist[0]] = thelist[1].replace("\n", "")
  101.  
  102.             with open(f'{filename}.json', 'a') as outfile:
  103.                 json.dump(myDict,outfile,indent=2)
  104.  
  105.  
  106.             return outfile
  107.  
  108.         else:
  109.  
  110.             with open(f'{filename}.json', 'r') as json_file:
  111.                 x = json.load(json_file)
  112.  
  113.             if len(x) == 0:
  114.                 return False
  115.  
  116.             for i in final:
  117.                 t = i.split(":")
  118.                 #if not t[0] in x:
  119.  
  120.                 x[t[0]] = t[1]
  121.  
  122.             with open(f"{filename}.json", "w") as outfile:
  123.                 json.dump(x, outfile, indent=2)
  124.  
  125.  
  126.  
  127.  
  128.             return json_file
  129.  
  130.  
  131.     def __repr__(self):
  132.         return('''
  133.            HELP:
  134.            ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  135.            meedata(serverID,page,limit) -> Grabs specified servers json levels database
  136.            meedata().getdata() -> Returns JSON in form of dictionary
  137.            meedata().storedata(filename) -> Stores entire json data to a specified file (File ends with .json). File extensions are not required to be inputted in argument
  138.            meedata().specifyrankbyid(filename) -> Stores user ID and Level only to a specified file (File ends with .json). File extensions are not required to be inputted in argument
  139.            ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  140.            
  141.            MADE BY ATOMIZATION#7090
  142.               ''')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement