Changing moodle activity handling
This commit is contained in:
32
MoodleClasses/MoodleActivity.py
Normal file
32
MoodleClasses/MoodleActivity.py
Normal file
@@ -0,0 +1,32 @@
|
||||
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
|
||||
Reference in New Issue
Block a user