84 lines
2.2 KiB
Python
84 lines
2.2 KiB
Python
import Apikeys
|
|
import requests
|
|
import pprint
|
|
import csv
|
|
import pandas as pd
|
|
|
|
pp = pprint.PrettyPrinter(indent=4)
|
|
APIKEY = Apikeys.ANTHOLOGY
|
|
HEADERS = {
|
|
"accept": "application/json",
|
|
"X-Api-Key": APIKEY,
|
|
}
|
|
BASEURL = "https://api.northpass.com/v2/"
|
|
GROUPS = [
|
|
"Accreditation",
|
|
"Anthology 101",
|
|
"Baseline",
|
|
"Course Evaluations",
|
|
"Engage",
|
|
"Evaluate",
|
|
"Finance & HCM",
|
|
"Learn",
|
|
"Portfolio",
|
|
"Power BI",
|
|
"Raise",
|
|
"Reach",
|
|
"Student",
|
|
]
|
|
|
|
|
|
def group_ids():
|
|
"""
|
|
Get the group Ids from a list of named groups.
|
|
"""
|
|
url = "groups"
|
|
df = pd.DataFrame()
|
|
count = 0
|
|
courses = []
|
|
ids = []
|
|
for group in GROUPS:
|
|
filter = f"?filter[name][cont]={group} - ("
|
|
urlreq = f"{BASEURL}{url}{filter}"
|
|
response = requests.get(urlreq, headers=HEADERS)
|
|
response = response.json()
|
|
|
|
for data in response["data"]:
|
|
group = data["attributes"]["name"]
|
|
id1 = data["id"]
|
|
group_tupe = (id1, group)
|
|
ids.append(group_tupe)
|
|
|
|
for tupe in ids:
|
|
count += 1
|
|
id = tupe[0]
|
|
group = tupe[1]
|
|
url2 = f"groups/{id}/courses?limit=100?page={count}"
|
|
courseurl = f"{BASEURL}{url2}"
|
|
coursereq = requests.get(courseurl, headers=HEADERS)
|
|
coursedata = coursereq.json()
|
|
|
|
for cdata in coursedata["included"]:
|
|
if cdata["attributes"]["status"] == "live":
|
|
name = cdata["attributes"]["name"]
|
|
courseid = cdata["attributes"]["share_course_link"].split("/")[5]
|
|
enrollments = cdata["attributes"]["enrollments_count"]
|
|
created = cdata["attributes"]["created_at"]
|
|
updated = cdata["attributes"]["updated_at"]
|
|
coursedict = {
|
|
"group": group,
|
|
"name": name,
|
|
"id": courseid,
|
|
"enrollments": enrollments,
|
|
"created at": created,
|
|
"updated at": updated,
|
|
}
|
|
courses.append(coursedict)
|
|
|
|
pddata = df.from_records(courses)
|
|
pddata.to_csv("~/Downloads/Anthology_Course_IDs_Names.csv")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
group_ids()
|