Fix errors and improve codes

This commit is contained in:
Moe Poi ~ 2019-01-07 17:24:20 +07:00
parent 30fa210a39
commit 367e17b1eb
8 changed files with 89 additions and 53 deletions

2
.gitignore vendored
View file

@ -102,3 +102,5 @@ venv.bak/
# mypy # mypy
.mypy_cache/ .mypy_cache/
.idea/

1
Quintal/__init__.py Normal file
View file

@ -0,0 +1 @@
from .quintal import QuintalGrabber

62
Quintal/quintal.py Normal file
View file

@ -0,0 +1,62 @@
import requests
import sys
try:
import ujson as json
except:
import json
'''
Author : Moe Poi <moepoi@protonmail.com>
License MIT
'''
class QuintalGrabber:
def __init__(self, id):
self.host = "https://quintal.id"
self.id = id
def get_data(self, query=None):
endpoint = "/id/api/initial_data/{}/?format=json".format(str(self.id))
try:
req = requests.get(self.host + endpoint)
data = json.loads(req.text)
except:
print ("Invalid ID")
sys.exit()
x = {
"lastlogin": data["student_class_semester"]["profile"]["user"]["last_login"],
"username": data["student_class_semester"]["profile"]["user"]["username"],
"firstname": data["student_class_semester"]["profile"]["user"]["first_name"],
"lastname": data["student_class_semester"]["profile"]["user"]["last_name"],
"email": data["student_class_semester"]["profile"]["user"]["email"],
"gender": data["student_class_semester"]["profile"]["gender"],
"phonenumber": data["student_class_semester"]["profile"]["mobile_no"],
"address": data["student_class_semester"]["profile"]["address"],
"city": data["student_class_semester"]["profile"]["city"],
"province": data["student_class_semester"]["profile"]["province"],
"country": data["student_class_semester"]["profile"]["country"],
"profilephoto": self.host + data["student_class_semester"]["profile"]["profile_photo"],
"birthdate": data["student_class_semester"]["profile"]["birth_date"],
"sectionname": data["student_class_semester"]["section_name"],
"gradename": data["student_class_semester"]["grade_name"],
"classname": data["student_class_semester"]["class_name"],
"i_fullname": data["student_class_semester"]["profile"]["institution"]["full_name"],
"i_shortname": data["student_class_semester"]["profile"]["institution"]["short_name"],
"i_address": data["student_class_semester"]["profile"]["institution"]["address"],
"i_city": data["student_class_semester"]["profile"]["institution"]["city"],
"i_province": data["student_class_semester"]["profile"]["institution"]["province"],
"i_country": data["student_class_semester"]["profile"]["institution"]["country"],
"i_logo": self.host + data["student_class_semester"]["profile"]["institution"]["logo"],
"i_domain": data["student_class_semester"]["profile"]["institution"]["sch_domain"]
}
if query is None:
return(x)
else:
try:
xm = x["{}".format(str(query))]
return (xm)
except Exception as e:
xm = "type {} not found".format(str(query))
return (xm)

View file

@ -1,15 +1,26 @@
# Quintal Grabber # Quintal Grabber
*Get Information from Quintal Private API* *Get Data from Quintal Private API*
---- ## Installation
Installation is simple. It can be installed from pip using the following command:
```sh
$ pip3 install -r requirements.txt
```
## Usage ## Usage
```sh ```sh
$ python3 example_run.py from Quintal import QuintalGrabber
id = 123456
quintal = QuintalGrabber(id)
#x = quintal.get_data("email")
x = quintal.get_data()
print (x)
``` ```
## Created By ## Credit
Moe Poi ~ / [@moepoi](https://gitlab.com/moepoi) Moe Poi ~ / [@moepoi](https://gitlab.com/moepoi)

7
example.py Normal file
View file

@ -0,0 +1,7 @@
from Quintal import QuintalGrabber
id = 123456
quintal = QuintalGrabber(id)
#x = quintal.get_data("email")
x = quintal.get_data()
print (x)

View file

@ -1,11 +0,0 @@
from quintal import Quintal
id = input("Quintal ID : ")
data = Quintal(id).studentinfo()
username = data[1]
name = data[2] + data[3]
email = data[4]
address = data[7]
profilephoto = data[11]
grade = data[14]
print ("Username : {}\nName : {}\nEmail : {}\nAddress : {}\nClass : {}\nProfile photo : {}".format(str(username), str(name), str(email), str(address), str(grade), str(profilephoto)))

View file

@ -1,38 +0,0 @@
import requests as rq
import json
class Quintal(object):
def __init__(self, id):
self.host = "https://quintal.id"
self.id = id
def studentinfo(self):
endpoint = "/id/api/initial_data/{}/?format=json".format(str(self.id))
req = rq.get(self.host + endpoint)
data = json.loads(req.text)
lastlogin = data["student_class_semester"]["profile"]["user"]["last_login"]
username = data["student_class_semester"]["profile"]["user"]["username"]
firstname = data["student_class_semester"]["profile"]["user"]["first_name"]
lastname = data["student_class_semester"]["profile"]["user"]["last_name"]
email = data["student_class_semester"]["profile"]["user"]["email"]
gender = data["student_class_semester"]["profile"]["gender"]
phonenumber = data["student_class_semester"]["profile"]["mobile_no"]
address = data["student_class_semester"]["profile"]["address"]
city = data["student_class_semester"]["profile"]["city"]
province = data["student_class_semester"]["profile"]["province"]
country = data["student_class_semester"]["profile"]["country"]
profilephoto = self.host + data["student_class_semester"]["profile"]["profile_photo"]
birthdate = data["student_class_semester"]["profile"]["birth_date"]
sectionname = data["student_class_semester"]["section_name"]
gradename = data["student_class_semester"]["grade_name"]
classname = data["student_class_semester"]["class_name"]
i_fullname = data["student_class_semester"]["profile"]["institution"]["full_name"]
i_shortname = data["student_class_semester"]["profile"]["institution"]["short_name"]
i_address = data["student_class_semester"]["profile"]["institution"]["address"]
i_city = data["student_class_semester"]["profile"]["institution"]["city"]
i_province = data["student_class_semester"]["profile"]["institution"]["province"]
i_country = data["student_class_semester"]["profile"]["institution"]["country"]
i_logo = self.host + data["student_class_semester"]["profile"]["institution"]["logo"]
i_domain = data["student_class_semester"]["profile"]["institution"]["sch_domain"]
return (lastlogin, username, firstname, lastname, email, gender, phonenumber, address, city, province, country, profilephoto, birthdate, sectionname, gradename, classname, i_fullname, i_shortname, i_address, i_city, i_province, i_country, i_logo, i_domain)

2
requirements.txt Normal file
View file

@ -0,0 +1,2 @@
requests
ujson