Detect and skip ILIAS tests

This commit is contained in:
I-Al-Istannen 2021-05-24 16:32:29 +02:00
parent 342076ee0e
commit 492ec6a932
2 changed files with 10 additions and 3 deletions

View File

@ -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

View File

@ -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: