streaming-website/config.php
Florian Larysch 7a5c8ff018 Automatically open/close conference based on time.
Toggle the 'closed' bit based on the current time, rather than manually
setting it in the config. This patch also adds a distinction between the
time before the conference and after: Different pages will be displayed
as to not confuse the user.
2015-09-02 14:31:39 +02:00

633 lines
18 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
date_default_timezone_set('Europe/Berlin');
/**
* Während der Entwicklung wird die BASEURL automatisch erraten
* In Produktionssituationen sollte manuell eine konfiguriert werden um Überraschungen zu vermeiden
*
* Protokollfreie URLs (welche, die mit // beginnen), werden automatisch mit dem korrekten Protokoll ergänzt.
* In diesem Fall wird auch ein SSL-Umschalt-Button im Header angezeigt
*/
if($_SERVER['HTTP_HOST'] != 'localhost')
$GLOBALS['CONFIG']['BASEURL'] = '//streaming.media.ccc.de/';
$GLOBALS['CONFIG']['CONFERENCE'] = array(
/**
* Der Startzeitpunkt der Konferenz als Unix-Timestamp. Befinden wir uns davor, wird die Closed-Seite
* mit einem Text der Art "hat noch nicht angefangen" angezeigt.
*/
'STARTS_AT' => strtotime("2014-12-27 06:00"),
/**
* Der Endzeitpunkt der Konferenz als Unix-Timestamp. Befinden wir uns danach, wird eine Danke-Und-Kommen-Sie-
* Gut-Nach-Hause-Seite sowie einem Ausblick auf die kommenden Events angezeigt.
*/
'ENDS_AT' => strtotime("2014-12-30 21:00"),
/**
* Hiermit kann die Funktionalitaet von STARTS_AT/ENDS_AT überschrieben werden. Der Wert 'before'
* simuliert, dass die Konferenz noch nicht begonnen hat. Der Wert 'after' simuliert, dass die Konferenz
* bereits beendet ist. 'running' simuliert eine laufende Konferenz.
*
* Der Boolean true ist aus Abwärtskompatibilitätsgründen äquivalent zu 'after'. False ist äquivalent
* zu 'running'.
*/
//'CLOSED' => false,
/**
* Titel der Konferenz (kann Leer- und Sonderzeichen enthalten)
* Dieser im Seiten-Header, im <title>-Tag, in der About-Seite und ggf. ab weiteren Stellen als
* Anzeigetext benutzt
*/
'TITLE' => '31C3',
/**
* Veranstalter
* Wird für den <meta name="author">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
* <meta>-Tag generiert.
*/
'AUTHOR' => 'CCC',
/**
* Beschreibungstext
* Wird für den <meta name="description">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
* <meta>-Tag generiert.
*/
'DESCRIPTION' => 'Video Live-Streaming vom 31C3',
/**
* Schlüsselwortliste, Kommasepariert
* Wird für den <meta name="keywords">-Tag verdet. Wird diese Zeile auskommentiert, wird kein solcher
* <meta>-Tag generiert.
*/
'KEYWORDS' => '31C3, Hacking, Chaos Computer Club, Video, Media, Streaming, Hacker',
/**
* HTML-Code für den Footer (z.B. für spezielle Attribuierung mit <a>-Tags)
* Sollte üblicherweise nur Inline-Elemente enthalten
* Wird diese Zeile auskommentiert, wird die Standard-Attribuierung für (c3voc.de) verwendet
*/
'FOOTER_HTML' => '
by <a href="https://ccc.de">Chaos Computer Club e.V</a>,
<a href="http://fem.tu-ilmenau.de/">FeM</a>,
<a href="http://www.ags.tu-bs.de/">ags</a> &amp;
<a href="https://c3voc.de">c3voc</a>
',
/**
* HTML-Code für den Banner (nur auf der Startseite, direkt unter dem Header)
* wird üblicherweise für KeyVisuals oder Textmarke verwendet (vgl. Blaues
* Wischiwaschi auf http://media.ccc.de/)
*
* Dieser HTML-Block wird üblicherweise in der main.less speziell für die
* Konferenz umgestaltet.
*
* Wird diese Zeile auskommentiert, wird kein Banner ausgegeben.
*/
//'BANNER_HTML' => '31C3 a new dawn',
/**
* Link zu den Recordings
* Wird diese Zeile auskommentiert, wird der Link nicht angezeigt
*/
'RELEASES' => 'http://media.ccc.de/browse/congress/2014/index.html',
/**
* Um die interne ReLive-Ansicht zu aktivieren, kann hier ein ReLive-JSON
* konfiguriert werden. Üblicherweise wird diese Datei über das Script
* configs/download.sh heruntergeladen, welches von einem Cronjob
* regelmäßig getriggert wird.
*
* Wird diese Zeile auskommentiert, wird der Link nicht angezeigt
*/
'RELIVE_JSON' => 'configs/index.json',
/**
* APCU-Cache-Zeit in Sekunden
* Wird diese Zeile auskommentiert, werden die apc_*-Methoden nicht verwendet und
* das Relive-Json bei jedem Request von der Quelle geladen und geparst
*/
//'RELIVE_JSON_CACHE' => 30*60,
);
/**
* Konfiguration der Stream-Übersicht auf der Startseite
*/
$GLOBALS['CONFIG']['OVERVIEW'] = array(
/**
* Abschnitte aud der Startseite und darunter aufgeführte Räume
* Es können beliebig neue Gruppen und Räume hinzugefügt werden
*
* Die Räume müssen in $GLOBALS['CONFIG']['ROOMS'] konfiguriert werden,
* sonst werden sie nicht angezeigt.
*/
'GROUPS' => array(
'Lecture Rooms' => array(
'saal1',
'saal2',
'saalg',
'saal6',
),
'Live DJ Sets' => array(
'lounge',
'ambient',
),
'Live Podcasts' => array(
'sendezentrum',
),
),
);
/**
* Liste der Räume (= Audio & Video Produktionen, also auch DJ-Sets oä.)
*/
$GLOBALS['CONFIG']['ROOMS'] = array(
/**
* Array-Key ist der Raum-Slug, der z.B. auch zum erstellen der URLs,
* in $GLOBALS['CONFIG']['OVERVIEW'] oder im Feedback verwendet wird.
*/
'saal1' => array(
/**
* Angezeige-Name
*/
'DISPLAY' => 'Saal 1',
/**
* ID des Video/Audio-Streams. Die Stream-ID ist davon abhängig, welches
* Event-Case in welchem Raum aufgebaut wird und wird üblicherweise von
* s1 bis s5 durchnummeriert.
*/
'STREAM' => 's1',
/**
* Stream-Vorschaubildchen auf der Übersichtsseite anzeigen
* Damit das funktioniert muss der entsprechende runit-Task auf dem
* CDN-Quell-Host (live.ber) laufen.
*/
'PREVIEW' => true,
/**
* Übersetzungstonspur aktivieren
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist werden nur
* die native-Streams verwendet, andernfalls wird native und translated
* angeboten und auch für beide Tonspuren eine Player-Seite angezeigt.
*/
'TRANSLATION' => true,
/**
* stereo-Tonspur statt native-Tonspur benutzen
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist werden
* die "native"-Mono-Streams verwendet, andernfalls wird statt "native"
* der Streamname "stereo" eingesetzt. Im normalen Konferenz-Setup
* müssen dann beide Kanäle der Kamera mit einem Signal bespielt werden.
*/
'STEREO' => false,
/**
* SD-Video-Stream (1024×576) verfügbar
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein SD-Video
* angeboten. Wird auch HD_VIDEO auf false gesetzt oder auskommentiert ist, wird
* für diesen Raum überhaupt kein Video angeboten.
*
* In diesem Fall wird, sofern jeweils aktiviert, Slides, Audio und zuletzt Musik
* als Default-Stream angenommen.
*/
'SD_VIDEO' => true,
/**
* HD-Video-Stream (1920×1080) verfügbar
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein HD-Video
* angeboten. Wird auch SD_VIDEO auf false gesetzt oder auskommentiert ist, wird
* für diesen Raum überhaupt kein Video angeboten.
*
* In diesem Fall wird, sofern jeweils aktiviert, Slides, Audio und zuletzt Musik
* als Default-Stream angenommen.
*/
'HD_VIDEO' => true,
/**
* Slide-Only-Stream (1024×576) verfügbar
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Slide-Only-
* Stream angeboten. Für diesen Raum wird dann keim Slides-Tab angeboten.
*
* In diesem Fall wird, sofern jeweils aktiviert, Audio und zuletzt Musik als
* Default-Stream angenommen.
*/
'SLIDES' => true,
/**
* Audio-Only-Stream verfügbar
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Audio-Only-
* Stream angeboten. Für diesen Raum wird dann keim Audio-Tab angeboten.
*
* In diesem Fall wird, sofern aktiviert, Musik als Default-Stream angenommen.
*/
'AUDIO' => true,
/**
* Musik-Stream verfügbar
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist ẃird kein Musik-Stream
* angeboten. Für diesen Raum wird dann keim Musik-Tab angeboten.
*
* Ist kein einziger Stream angebote, wird statt der Stream-Seite ein 404-Fehler
* angezeigt.
*/
'MUSIC' => false,
/**
* Fahrplan-Ansicht auf der Raum-Seite aktivieren (boolean)
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* wird der Raum nicht im Fahrplan gesucht und auch auf der Startseite
* findet keine Darstellung statt.
*
* Ebenso können alle Fahrplan-Funktionialitäten durch auskommentieren
* des globalen $GLOBALS['CONFIG']['SCHEDULE']-Blocks deaktiviert werden
*/
'SCHEDULE' => true,
/**
* Name des Raums im Fahrplan
* Wenn diese Zeile auskommentiert ist wird der Raum-Slug verwendet
*/
'SCHEDULE_NAME' => 'Saal 1',
/**
* Feedback anzeigen (boolean)
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* taucht der Raum auch im globalen Feedback-Formular nicht auf.
*
* Ebenso können alle Feedback-Funktionialitäten durch auskommentieren
* des globalen $GLOBALS['CONFIG']['FEEDBACK']-Blocks deaktiviert werden
*/
'FEEDBACK' => true,
/**
* Subtitles-Player aktivieren (boolean)
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* wird der Subtitles-Button und die damit verbundenen Funktionen deaktiviert.
*
* Ebenso können alle Subtitles-Funktionialitäten durch auskommentieren
* des globalen $GLOBALS['CONFIG']['SUBTITLES']-Blocks deaktiviert werden
*/
'SUBTITLES' => true,
/**
* Embed-Form aktivieren (boolean)
*
* Ist dieses Feld auf true gesetzt, wird ein Embed-Tab unter dem Video
* angezeigt. Darüber kann der Player als iframe eingebunden werden.
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* wird kein Embed-Tab angeboten und die URL zum Einbetten existiert nicht.
*
* Ebenso können alle Embedding-Funktionialitäten durch auskommentieren
* des globalen $GLOBALS['CONFIG']['EMBED']-Blocks deaktiviert werden
*/
'EMBED' => true,
/**
* IRC-Link aktivieren (boolean)
*
* Solange Twitter oder IRC aktiviert ist, wird ein "Chat"-Tab mit den
* jeweiligen Links angezeigt.
*
* Ist dieses Feld auf true gesetzt, wird ein irc://-Link angezeigt.
* WebIrc wird nach dem Congress nicht mehr unterstützt ;)
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* wird kein IRC-Link angezeigt
*
* Ebenso können alle IRC-Links durch auskommentieren
* des globalen $GLOBALS['CONFIG']['IRC']-Blocks deaktiviert werden
*/
'IRC' => true,
/**
* Mit dem Angaben in diesem Block können die Vorgaben aus dem
* globalen $GLOBALS['CONFIG']['IRC'] Block überschrieben werden.
*
* Der globale $GLOBALS['CONFIG']['IRC']-Block muss trotzdem existieren,
* da sonst überhaupt kein IRC-Link erzeugt wird. (ggf. einfach `= true` setzen)
*/
'IRC_CONFIG' => array(
'DISPLAY' => '#31C3-hall-1 @ hackint',
'URL' => 'irc://irc.hackint.eu:6667/31C3-hall-1',
),
/**
* Twitter-Link aktivieren (boolean)
*
* Ist dieses Feld auf true gesetzt, wird ein Link zu Twitter angezeigt.
*
* Solange Twitter oder IRC aktiviert ist, wird ein "Chat"-Tab mit den
* jeweiligen Links angezeigt.
*
* Wenn diese Zeile auskommentiert oder auf false gesetzt ist,
* wird kein Twitter-Link angezeigt
*
* Ebenso können alle Twitter-Links durch auskommentieren
* des globalen $GLOBALS['CONFIG']['TWITTER']-Blocks deaktiviert werden
**/
'TWITTER' => true,
/**
* Mit dem Angaben in diesem Block können die Vorgaben aus dem
* globalen $GLOBALS['CONFIG']['TWITTER'] Block überschrieben werden.
*
* Der globale $GLOBALS['CONFIG']['TWITTER']-Block muss trotzdem existieren,
* da sonst überhaupt kein IRC-Link erzeugt wird. (ggf. einfach `= true` setzen)
*/
'TWITTER_CONFIG' => array(
'DISPLAY' => '#hall1 @ twitter',
'TEXT' => '#31C3 #hall1',
),
),
'saal2' => array(
'DISPLAY' => 'Saal 2',
'STREAM' => 's2',
'PREVIEW' => true,
'TRANSLATION' => true,
'SD_VIDEO' => true,
'HD_VIDEO' => true,
'AUDIO' => true,
'SLIDES' => true,
'MUSIC' => false,
'SCHEDULE' => true,
'SCHEDULE_NAME' => 'Saal 2',
'FEEDBACK' => true,
'SUBTITLES' => true,
'EMBED' => true,
'IRC' => true,
'IRC_CONFIG' => array(
'DISPLAY' => '#31C3-hall-2 @ hackint',
'URL' => 'irc://irc.hackint.eu:6667/31C3-hall-2',
),
'TWITTER' => true,
'TWITTER_CONFIG' => array(
'DISPLAY' => '#hall2 @ twitter',
'TEXT' => '#31C3 #hall2',
),
),
'saalg' => array(
'DISPLAY' => 'Saal G',
'STREAM' => 's3',
'PREVIEW' => true,
'TRANSLATION' => true,
'SD_VIDEO' => true,
'HD_VIDEO' => true,
'AUDIO' => true,
'SLIDES' => true,
'MUSIC' => false,
'SCHEDULE' => true,
'SCHEDULE_NAME' => 'Saal G',
'FEEDBACK' => true,
'SUBTITLES' => true,
'EMBED' => true,
'IRC' => true,
'IRC_CONFIG' => array(
'DISPLAY' => '#31C3-hall-g @ hackint',
'URL' => 'irc://irc.hackint.eu:6667/31C3-hall-g',
),
'TWITTER' => true,
'TWITTER_CONFIG' => array(
'DISPLAY' => '#hallg @ twitter',
'TEXT' => '#31C3 #hallg',
),
),
'saal6' => array(
'DISPLAY' => 'Saal 6',
'STREAM' => 's4',
'PREVIEW' => true,
'TRANSLATION' => true,
'SD_VIDEO' => true,
'HD_VIDEO' => true,
'AUDIO' => true,
'SLIDES' => true,
'MUSIC' => false,
'SCHEDULE' => true,
'SCHEDULE_NAME' => 'Saal 6',
'FEEDBACK' => true,
'SUBTITLES' => true,
'EMBED' => true,
'IRC' => true,
'IRC_CONFIG' => array(
'DISPLAY' => '#31C3-hall-6 @ hackint',
'URL' => 'irc://irc.hackint.eu:6667/31C3-hall-6',
),
'TWITTER' => true,
'TWITTER_CONFIG' => array(
'DISPLAY' => '#hall6 @ twitter',
'TEXT' => '#31C3 #hall6',
),
),
'lounge' => array(
'DISPLAY' => 'Lounge',
'MUSIC' => true,
'EMBED' => true,
),
'ambient' => array(
'DISPLAY' => 'Ambient',
'MUSIC' => true,
'EMBED' => true,
),
'sendezentrum' => array(
'DISPLAY' => 'Sendezentrum',
'STREAM' => 's5',
'STEREO' => true,
'SD_VIDEO' => true,
'HD_VIDEO' => true,
'AUDIO' => true,
'SCHEDULE' => true,
'FEEDBACK' => true,
'SUBTITLES' => false,
'EMBED' => true,
'IRC' => false,
'TWITTER' => false,
),
);
/**
* Konfigurationen zum Konferenz-Fahrplan
* Wird dieser Block auskommentiert, werden alle Fahrplan-Bezogenen Features deaktiviert
*/
$GLOBALS['CONFIG']['SCHEDULE'] = array(
/**
* URL zum Fahrplan-XML
*
* Diese URL muss immer verfügbar sein, sonst können kann die Programm-Ansicht
* aufhören zu funktionieren. Üblicherweise wird diese daher Datei über
* das Script configs/download.sh heruntergeladen, welches von einem
* Cronjob regelmäßig getriggert wird.
*/
'URL' => 'configs/schedule.xml',
/**
* Nur die angegebenen Räume aus dem Fahrplan beachten
*
* Wird diese Zeile auskommentiert, werden alle Räume angezeigt
*/
//'ROOMFILTER' => array('Saal 1', 'Saal 2', 'Saal G', 'Saal 6'),
/**
* APCU-Cache-Zeit in Sekunden
* Wird diese Zeile auskommentiert, werden die apc_*-Methoden nicht verwendet und
* der Fahrplan bei jedem Request von der Quelle geladen und geparst
*/
//'CACHE' => 30*60,
/**
* Skalierung der Programm-Vorschau in Sekunden pro Pixel
*/
'SCALE' => 7,
/**
* Simuliere das Verhalten als wäre die Konferenz bereits heute
*
* Diese folgende Beispiel-Zeile Simuliert, dass das
* Konferenz-Datum 2014-12-29 auf den heutigen Tag 2015-02-24 verschoben ist.
*/
//'SIMULATE_OFFSET' => strtotime(/* Conference-Date */ '2014-12-28') - strtotime(/* Today */ '2015-03-01'),
'SIMULATE_OFFSET' => 0,
);
/**
* Konfiguration des Feedback-Formulars
*
* Wird dieser Block auskommentiert, wird das gesamte Feedback-System deaktiviert
*/
$GLOBALS['CONFIG']['FEEDBACK'] = array(
/**
* DSN zum abspeichern der eingegebenen Daten
* die Datenbank muss eine Tabelle enthaltem, die dem in `lib/schema.sql` angegebenen
* Schema entspricht.
*
* Achtung vor Dateirechten: Bei SQLite reicht es nicht, wenn wer Webseiten-Benutzer
* die .sqlite3-Datei schreiben darf, er muss auch im übergeordneten Order neue
* (Lock-)Dateien anlegen dürfen
*/
'DSN' => 'sqlite:/opt/31c3-streaming-feedback/feedback.sqlite3',
/**
* Login-Daten für die /feedback/read/-Seite, auf der eingegangenes
* Feedback gelesen werden kann.
*
* Durch auskommentieren der beiden Optionen wird diese Seite komplett deaktiviert,
* es kann dann nur noch durch manuelle Inspektion der .sqlite3-Datei auf das Feedback
* zugegriffen werden.
*/
'USERNAME' => 'katze',
'PASSWORD' => trim(@file_get_contents('/opt/streaming-feedback/feedback-password')),
);
/**
* Globaler Schalter für die Embedding-Funktionalitäten
*
* Wird diese Zeile auskommentiert oder auf False gesetzt, werden alle
* Embedding-Funktionen deaktiviert.
*/
$GLOBALS['CONFIG']['EMBED'] = true;
/**
* Konfiguration des L2S2-Systems
* https://github.com/c3subtitles/L2S2
*
* Wird dieser Block auskommentiert, wird das gesamte Subtitle-System deaktiviert
*/
$GLOBALS['CONFIG']['SUBTITLES'] = array(
/**
* URL des L2S2-Servers
*/
'URL' => 'http://subtitles.c3voc.de/',
);
/**
* Globale Konfiguration der IRC-Links.
*
* Wird dieser Block auskommentiert, werden keine IRC-Links mehr erzeugt. Sollen die
* IRC-Links für jeden Raum einzeln konfiguriert werden, muss dieser Block trotzdem
* existieren sein. ggf. einfach auf true setzen:
*
* $GLOBALS['CONFIG']['IRC'] = true
*/
$GLOBALS['CONFIG']['IRC'] = array(
/**
* Anzeigetext für die IRC-Links.
*
* %s wird durch den Raum-Slug ersetzt.
* Ist eine weitere Anpassung erfoderlich, kann ein IRC_CONFIG-Block in der
* Raum-Konfiguration zum Überschreiben dieser Angaben verwendet werden.
*/
'DISPLAY' => '#31C3-%s @ hackint',
/**
* URL für die IRC-Links.
* Hierbei kann sowohl ein irc://-Link als auch ein Link zu einem
* WebIrc-Provider wie z.B. 'https://kiwiirc.com/client/irc.hackint.eu/#31C3-%s'
* verwendet werden.
*
* %s wird durch den urlencodeten Raum-Slug ersetzt.
* Eine Anpassung kann ebenfalls in der Raum-Konfiguration vorgenommen werden.
*/
'URL' => 'irc://irc.hackint.eu:6667/31C3-%s',
);
/**
* Globale Konfiguration der Twitter-Links.
*
* Wird dieser Block auskommentiert, werden keine Twitter-Links mehr erzeugt. Sollen die
* Twitter-Links für jeden Raum einzeln konfiguriert werden, muss dieser Block trotzdem
* existieren sein. ggf. einfach auf true setzen:
*
* $GLOBALS['CONFIG']['TWITTER'] = true
*/
$GLOBALS['CONFIG']['TWITTER'] = array(
/**
* Anzeigetext für die Twitter-Links.
*
* %s wird durch den Raum-Slug ersetzt.
* Ist eine weitere Anpassung erfoderlich, kann ein TWITTER_CONFIG-Block in der
* Raum-Konfiguration zum Überschreiben dieser Angaben verwendet werden.
*/
'DISPLAY' => '#%s @ twitter',
/**
* Vorgabe-Tweet-Text für die Twitter-Links.
*
* %s wird durch den Raum-Slug ersetzt.
* Eine Anpassung kann ebenfalls in der Raum-Konfiguration vorgenommen werden.
*/
'TEXT' => '#31C3 #%s',
);