# OverlayTimer nicht nur für Chaos-Studios ## 1. Anforderungen Zeitlich gesteuert HTML-Elemente einblenden, um dies mit anderen Kanälen, zb. in einer OBS-Szene oder als einfaches Stream-Overlay verwenden zu können. Auch mal checken. ### 1.1 Allgemein - Mehrere Ebenen, um Vorder- und Hintergrund vom Mittleren zu trennen - Alpha-Transparenz z.b. durch PNG/SVG - In OBS-Szenen integrierbar - Als Webseite einbindbar (evt. gitpage hub oder CCCV gitlab) - Aufrufbar mit Uhrzeit zum testen ### 1.2 Overlay-Typen - Statische Overlays mit festen Texten. - Dynamische Overlays - Vor einem Event, zb. "Fängt am um an" - Während einer Session, z.b.: "Gerade läuft ..." - Außerhalb einer Session: "Um xx Uhr startet Talk ABC" - Nach einem Event "Event ist vorbei" ## 2. Was muss wann passieren (BauchbinderFlow): ![](https://i.imgur.com/Wa65EwH.png) Seiten im Iframe (Quelle-A): (1) EventBefore.htm (template) (2) EventAfter.htm (template) (3) SessionOnAir.htm (template) (4) SessionPause.htm (template) Seiten mit/ohne Iframe (Quelle-B) (5) Static[Name].htm (Name: Social, TechTrouble, BreakingNews, FlaschenAufraeumen, GleichWiederDa, Tschunk, WaffelnFertig, ...) ## 2.1 Attribute ### 2.1.1 Event Event.Name: Names des Events Event.URL: Startseite vom Event Event.Start: DateTime Event.End: DateTime ### 2.1.2 Session Session[n].Title: Title der Session Session[n].Attendee: Teilnehmende Wesen Session[n].URL: Startseite zur Session Session[n].Start: DateTime Session[n].End: DateTime ### 2.1.3 ot.js[on] (Beispiel tbd) ... ... ## 3. Utils 3.1 Pretalx Fahrplan converter nach ot.js (jinja) 3.2 permaClock (js) 3.3 Mousecursor X|Y (js) 3.4 Seafile Syncer (gitlab ci/cd) 3.5 github Mirror (gitlab ci/cd) ## 4. So geht's (Aufbau-Anleitung) ### 4.1 gitlab/hub projekt forken ### 4.2 gitpage einrichten ### 4.3 Struktur anpassen: [!!!] Decision needed: [!!!] Entscheidung treffen: a. Pro Serial/Season ein Fork oder Verzeichnis b. Pro Event ein Fork oder Verzeichnis c. Pro Operator (z.b. Studio) ein Fork oder Verzeichnis Lösung a) pro Event/Operator ein Fork - Dezentraler Ansatz - Pro: Struktur einfacher - Contra: Verwaltung komplizierter Lösung b) pro Event/Operator ein Verzeichnis - zentraler Ansatz - Pro: Verwaltung einfacher - Pro: Lerneffekte einfacher - Contra: Struktur komplizierter 6. Ein Vorschlag: 7. [www] index.html ot.css ot.js (event) [Standard] index.html event.css event.js (op) [Standard] index.html Sessions [default] 10. sessions.json 11. ### 4.4 timer.js pflegen oder generieren ### 4.5 testen mit virtueller Datum / Uhrzeit ### 4.6 Templates (1-5) nach eigenen Wünschen anpassen . . . . ## 5. FAQ - Was passiert wenn sich der Schedule verschiebt? - timer.js anpassen - Können beliebig viele statische Overlayse angelegt werden? - ja - Wie kann man Verwirrbelungen zwischen statischen und dynamischen Overlays vermeiden? - Sind zwei unterschiedliche URL's, zwei Quellen für OBS. - Warum eine eigene ot.json? - OverlayTimer soll auch ohne Pretalx-Projekt funktionieren können. - Strukturen brechen nicht bei Updates o.ä. - ot.js wesentlich einfacher zu bedienen als Fahrplan JSON|XML|XCAL - Jinjia-Script konvertiert von Fahrplan nach ot.json ## 6. Link-Sammlungen ### 6.1 Repos a) gitlab CCCV (SPOT): https://git.cccv.de/codefreezr/overlaytimer b) github Mirror: InSync with a) c) Seafile-Share: InSync with a) ### Material vom rc3.rev2: - ... - ... ### Material von divoc: - seafile: - gitlab c3: - github: ...