diff --git a/PFERD/crawl/ilias/kit_ilias_html.py b/PFERD/crawl/ilias/kit_ilias_html.py
index 36da7d4..7bb7084 100644
--- a/PFERD/crawl/ilias/kit_ilias_html.py
+++ b/PFERD/crawl/ilias/kit_ilias_html.py
@@ -17,6 +17,7 @@ TargetType = Union[str, int]
class IliasElementType(Enum):
EXERCISE = "exercise"
EXERCISE_FILES = "exercise_files" # own submitted files
+ TEST = "test" # an online test. Will be ignored currently.
FILE = "file"
FOLDER = "folder"
FORUM = "forum"
@@ -373,9 +374,8 @@ class IliasPage:
if "target=file_" in parsed_url.query:
return IliasElementType.FILE
- # Skip forums
- if "cmd=showThreads" in parsed_url.query:
- return IliasElementType.FORUM
+ # TODO: Match based on CMD_CLASS or icon? The folder_like check looks at the icon,
+ # but we could also match the command class. I am not sure what's more stable.
# Everything with a ref_id can *probably* be opened to reveal nested things
# video groups, directories, exercises, etc
@@ -432,6 +432,9 @@ class IliasPage:
if str(img_tag["src"]).endswith("sess.svg"):
return IliasElementType.MEETING
+ if str(img_tag["src"]).endswith("icon_tst.svg"):
+ return IliasElementType.TEST
+
return IliasElementType.FOLDER
@staticmethod
diff --git a/PFERD/crawl/ilias/kit_ilias_web_crawler.py b/PFERD/crawl/ilias/kit_ilias_web_crawler.py
index 11b27d1..0bd3202 100644
--- a/PFERD/crawl/ilias/kit_ilias_web_crawler.py
+++ b/PFERD/crawl/ilias/kit_ilias_web_crawler.py
@@ -274,6 +274,10 @@ class KitIliasWebCrawler(HttpCrawler):
log.explain_topic(f"Decision: Crawl {fmt_path(element_path)}")
log.explain("Forums are not supported")
log.explain("Answer: No")
+ elif element.type == IliasElementType.TEST:
+ log.explain_topic(f"Decision: Crawl {fmt_path(element_path)}")
+ log.explain("Tests contain no relevant files")
+ log.explain("Answer: No")
elif element.type == IliasElementType.LINK:
await self._download_link(element, element_path)
elif element.type == IliasElementType.VIDEO: