BBB nicht anwesende Schülerinnen mit Python herausfiltern - ein Bastelprojekt

Ich habe mal etwas mit Python programmiert, um nicht anwesende Schüler bei einer Videokonferenz nach Ausführung von bbb.py im Terminal angezeigt zu bekommen. Für eine kleine Klasse lässt sich das sicher auch mit einer Abhak-Liste erledigen aber wie sieht es bei Gesamtlehrerkonferenzen aus?
Da manche eventuell nur am Anfang da sind und dann gehen, kann man in BigBlueButton die Teilnehmer zu mehreren Zeitpunkten herunterladen und bbb.py zeigt dann die nicht anwesenden Personen zu den verschiedenen Zeitpunkten an. Zusätzlich werden die fehlenden Personen noch in einer Textdatei mit Zeitstempel gespeichert, sodass man bei seiner Klasse nach einer Woche mal die Fehlzeiten in Summe anschauen kann und auch mal nachhaken kann woran es liegt, manchmal liegt es ja auch an einer mangelnden technischen Ausrüstung der Schüler.
Ich würde das Ganze mal als Bastelprojekt bezeichnen (=, ich bin Python-Neuling und habe einfach ein sinnvolles Übungsprojekt gesucht. Gerne nach Wunsch verändern (z.B. von mir nicht entdeckte Fehler beheben) und veränderte Versionen hier posten.

Hier gibts die Datei zum Downlaod: https://nx14428.your-storageshare.de/s/PrS6gT6SaoWdxze

Viel Spaß damit
Klemens

Hallo Klemens,
finde ich technisch fast schon zu weit gehend, geht schon ein bisschen in Richtung Überwachung. Vor allem werde ichbei einer Gesamtlehrerkonferenz nicht meine KuK überwachen, wer wann da ist, die sind alle alt genug! Aber auch in Klassen finde ich das problematisch, ich glaube nicht dass dir seitens der Schulleitung diese technische Komponente erlaubt ist und wird!

Ich bin weit davon entfernt hier irgendjemand überwachen zu wollen, Schwerpunkt liegt hier ganz klar bei:

habe einfach ein „sinnvolles“ Übungsprojekt gesucht

Wobei ich denke, dass man als Lehrer schon irgendwie einen gewissen Überblick behalten sollte, wer zu den Videokonferenzen kommt und wen man eventuell verloren hat. Bei mir ist Fernlernunterricht auch ungleich Videokonferenzen; zwinge meine Schüler nicht ihre Kamera anzumachen; wer bescheißen will, kann das …

Bei einer Lehrerkonferenz wird wohl die Schulleitung auch die Anwesenheitsliste herunterladen. Wenn das nicht erlaubt wäre, wäre bei der Landesinfrastruktur die Möglichkeit des Herunterladens der Anwesenheitsliste deaktiviert.

Aber soweit ich das bis jetzt beurteilen kann, sind in diesem Forum hier alle sehr verantwortungsbewusst und werden für sich selbst entscheiden können, ob und wie sie so etwas nutzen wollen.

Grüße Klemens

Morgen,

ich sehe da auch keine rechtlichen Probleme, bei uns gibt’s Anwesenheitspflicht und auch die Pflicht fuer Lehrer diese zu kontrollieren.
Ich gehoere nicht zur law&order-Fraktion, aber das Skript gefaellt mir schon, noch schicker waere es, wenn Dein Skript die Ausgaben von diesem hier verwursten wuerde, dann koennte man abends die „Soll-Listen“ (Klassenliste) einfach mit den Gesamtereignissen abgleichen und haette eine schicke Anwesenheitsliste mit Ankunfts- und Abgangszeiten.

Waere auch nicht schlecht, wenn Du Dein Skript im Sourcecode hier reinposten wuerdest, Nextcloudlinks haben die Angewohnheit zu verschwinden.

Gruss Harry

Dem Wunsch komme ich gerne nach, wusste gestern noch nicht wie ich das anstelle (=, drei ``` vor und nach dem Code scheinen zu funktionieren. @irrlicht wie gesagt, gerne beliebig ändern und machen was man will damit.

Grüße Klemens


#!/usr/bin/python3

# Anwesenheitskontrolle BBB-Konferenz
# Version 1.1
###############################
#Anleitung:
#1. Erstelle eine Textdatei (.txt), in der alle TN untereinander aufgeführt sind
#2. Passe den Speicherort dieser Datei unten an (path_all_students)
#3. Lade die Teilnehmer zu beliebig vielen Zeitpunkten während einer BBB-Sitzung
#   herunter. Speicherort muss unten angepasst werden (path_present_students)
#4. Mache das Skript ausführbar (sudo chmod +x bbb.py)
#5. Starte bbb.py im Terminal mit ./bbb.py
#   (bbb.py muss dazu direkt im Home-Verzeichnis gespeichert sein)
###############################

import os
import datetime

path_all_students = '/home/jupiter/all_students.txt'
path_present_students = '/home/jupiter/Downloads'
point_of_time = 1

with open(path_all_students) as f:
    all_students = f.readlines()
    all_students = [x.strip() for x in all_students]

for filename in os.listdir(path_present_students):
    if filename.startswith('save') and filename.endswith('.txt'):
        path_file = path_present_students +'/'+ filename
        date_file = datetime.date.fromtimestamp(os.stat(path_file).st_mtime)

        if date_file == datetime.date.today():
            with open(path_file) as f:
                #missing_students
                present_students = f.readlines()
                present_students = [x.strip() for x in present_students]
                missing_students = []
                for student in all_students:
                    if student not in present_students:
                        missing_students.append(student)
                #timestamp
                first_line = str(present_students[0]).split()
                time = first_line[-1]

            #print in terminal
            print('Missing students, point of time '+ str(point_of_time) + ':')
            print(time)
            print('##################################')
            for student in missing_students:
                print(student)

            #write missing_students with timestamp in log_missing_students.txt
            #(log helps to count absence after several weeks
            #with e.g. the filter function in libre office calc)
            with open("log_missing_students.txt", "a") as f:
                for student in missing_students:
                    f.write(time + " ")
                    f.write(student +"\n")
                f.write("\n")

            point_of_time += 1
            print('')