Skip to content

Commit

Permalink
refactor: Optimize course enrollment logic and update data structure …
Browse files Browse the repository at this point in the history
…for enrolled courses
  • Loading branch information
techtanic committed Nov 3, 2024
1 parent 7a1ec1d commit 3799fcb
Showing 1 changed file with 17 additions and 10 deletions.
27 changes: 17 additions & 10 deletions base.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def get_scraped_courses(self, target: object) -> list:
)
t.start()
threads.append(t)
time.sleep(0.5)
time.sleep(0.2)
for t in threads:
t.join()
for site in self.sites:
Expand Down Expand Up @@ -484,16 +484,19 @@ def fetch_cookies(self):

def get_enrolled_courses(self):
"""Get enrolled courses
Sets enrolled_courses {id:enrollment_time}
Sets enrolled_courses
{slug:enrollment_time}
"""
next_page = "https://www.udemy.com/api-2.0/users/me/subscribed-courses/?ordering=-enroll_time&fields[course]=enrollment_time&page_size=100"
next_page = "https://www.udemy.com/api-2.0/users/me/subscribed-courses/?ordering=-enroll_time&fields[course]=enrollment_time,url&page_size=100"
courses = {}
while next_page:
r = self.client.get(
next_page,
).json()
for course in r["results"]:
courses[str(course["id"])] = course["enrollment_time"]
slug = course["url"].split("/")[2]
courses[slug] = course["enrollment_time"]
next_page = r["next"]
self.enrolled_courses = courses

Expand Down Expand Up @@ -903,6 +906,16 @@ def print_course_info(self, index, total_courses):
self.print(self.link, color="blue")

def handle_course_enrollment(self):
slug = self.link.split("/")[4]

if slug in self.enrolled_courses:
self.print(
f"You purchased this course on {self.get_date_from_utc(self.enrolled_courses[slug])}",
color="light blue",
)
self.already_enrolled_c += 1
return

course = self.get_course_id(self.link)
if course["is_invalid"]:
self.print(course["msg"], color="red")
Expand All @@ -913,12 +926,6 @@ def handle_course_enrollment(self):
self.handle_course_enrollment()
elif course["is_excluded"]:
self.excluded_c += 1
elif course["course_id"] in self.enrolled_courses:
self.print(
f"You purchased this course on {self.get_date_from_utc(self.enrolled_courses[course['course_id']])}",
color="light blue",
)
self.already_enrolled_c += 1
elif course["is_free"]:
self.handle_free_course(course["course_id"])
elif not course["is_free"]:
Expand Down

0 comments on commit 3799fcb

Please sign in to comment.