Skip to content

Instantly share code, notes, and snippets.

@Mortinat
Created December 15, 2022 12:16
Show Gist options
  • Save Mortinat/3d81a50951a5ea7cc78cdb372d3b60c2 to your computer and use it in GitHub Desktop.
Save Mortinat/3d81a50951a5ea7cc78cdb372d3b60c2 to your computer and use it in GitHub Desktop.
Find the orphans of dochub tree
import json
import requests
import csv
file2 = open("new_slug.csv", 'w')
writer = csv.writer(file2)
# aller chercher les cookies et le sesskey sur le site de l'uv https://uv.ulb.ac.be/search/index.php (dev tools > network > search > headers)
# + faire une recherche sur un cours (filtre > cours > tapper qqn chose) une requete est envoyée à https://uv.ulb.ac.be/lib/ajax/service.php
cookies = {
"MoodleSession": "<cookie>",
}
headers = {
"Content-Type": "application/x-www-form-urlencoded",
}
params = {
"sesskey": "<sesskey>",
"info": "core_course_search_courses",
}
def get_uv_courses(course):
data = '[{"index":0,"methodname":"core_course_search_courses","args":{"criterianame":"search","criteriavalue":"' + course + '","page":0,"perpage":100,"requiredcapabilities":[],"limittoenrolled":0}}]'
response = requests.post(
"https://uv.ulb.ac.be/lib/ajax/service.php",
params=params,
cookies=cookies,
headers=headers,
data=data,
)
return response.json()[0]["data"]
with open("./oprhans.csv", 'r') as file:
csvreader = csv.reader(file)
for row in csvreader:
slug_find = []
courses = get_uv_courses(row[1])
if courses['total'] != 0:
for course in courses["courses"]:
if course["shortname"].rsplit("-", 1)[-1] == "202223":
slug_find.append(course["fullname"].split(" - ")[0])
else:
courses = get_uv_courses(row[1][:-1])
for course in courses["courses"]:
if course["shortname"].rsplit("-", 1)[-1] == "202223":
slug_find.append(course["fullname"].split(" - ")[0])
if slug_find:
row[-1] = [*set(slug_find)]
writer.writerow(row)
file2.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment