Files
MoodleScraper/MoodleClasses/MoodleActivity.py

33 lines
976 B
Python

from urllib.parse import unquote
import bs4
import os
class MoodleActivity:
def __init__(self, soup: bs4.element.Tag):
self.soup = soup
self.all_urls = self._get_all_urls()
self.name = self._get_name()
self.parent_dir = None
def __repr__(self):
return f"{self.parent_dir}/{self.name}"
def _get_all_urls(self) -> list[str]:
return list(map(lambda x: x["href"], self.soup.find_all("a")))
def _get_name(self) -> str:
link = self.soup.find("a")
if link is None:
return self.soup.text.strip().split("\n")[0].strip()
text = link.text
toremove = link.find("span", {"class": "accesshide"})
if toremove is None:
name = text.strip()
else:
name = text[:text.find(toremove.text)].strip()
return unquote(name)[:min(len(name), 50)]
def set_parent_dir(self, parent_dir: os.path) -> None:
self.parent_dir = parent_dir