Compare commits

..

4 Commits

Author SHA1 Message Date
Nils 09b79181d9 readme 2023-10-17 22:20:15 +02:00
Nils 900bae31a6 replace static archive index with dynamically build 2023-10-17 22:15:04 +02:00
Nils d37b031139 replace next meeting days with php script. no more manual adjusting needed 2023-10-17 21:08:21 +02:00
Nils b11ebef267 readme update 2023-10-17 19:31:59 +02:00
7 changed files with 153 additions and 222 deletions

View File

@ -7,14 +7,28 @@ The webserver uses it's own git clone of this repository.
https://osamc.de/
Edit the HTML files by hand.
Dates for the next meetings are automatically calculated.
For everything else edit the HTML files by hand.
## Deploying the website
The server osamc.de updates a local copy of this repository and will rsync changes to the web
directory. Additional sanity checking and security measures are done in this step to prevent
(accidental) harmful files on the public webserver.
## Archive
https://osamc.de/archiv/
Each sub directory is one talk or project.
Everything that has an .ini file will be parsed by the index generator program.
Everything that has a metadata.ini file will be parsed by the index generator program.
Possible index files are index.html index.php and index.pdf
## Protocols / Pad
The collaborative text pad is currently not in this git. #TODO
## Large File Storage
Since we host large files, like music sessions, in the archive it needs git large file storage for
github. git lfs is detected by github, you or other users don't need to setup anything on github,

1
archiv/.htaccess Normal file
View File

@ -0,0 +1 @@
DirectoryIndex index.php index.html index.htm index.pdf

View File

@ -0,0 +1,50 @@
<?php
function cmpByDate(array $a, array $b) {
return strcmp($a['Date'], $b['Date']);
}
$dirs = array_filter(glob('*'), 'is_dir');
//print_r($dirs);
$projects = array();
foreach($dirs as $projectdir) {
$inifile = $projectdir . "/metadata.ini";
if (file_exists($inifile)) {
$iniAssoArray = parse_ini_file($inifile, false, INI_SCANNER_RAW);
$iniAssoArray["Directory"] = $projectdir;
array_push($projects, $iniAssoArray);
//print_r($iniAssoArray);
//echo $iniAssoArray['Date']."\n";
}
}
usort($projects, 'cmpByDate');
$projects = array_reverse($projects); //newest first
//print_r($projects);
//Now we have all ini files as PHP arrays, sorted by date, and can build HTML.
$resultHTML = "";
foreach($projects as $proj) {
$block = <<<EOD
<h4><small>$proj[Date]</small><br>
<a href="$proj[Directory]">$proj[PrettyName]</a></h4>
<ul>
<li>$proj[Author], $proj[License]</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/$proj[Directory]">https://www.osamc.de/archiv/$proj[Directory]</a></li>
</ul>
<hr>
\n
EOD;
$resultHTML = $resultHTML . $block;
}
//return $resultHTML;
echo $resultHTML;
?>

View File

@ -1,206 +0,0 @@
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="normalize.css" type="text/css">
<link rel="stylesheet" href="sakura.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>OSAMC Archiv</title>
</head>
<body>
<h1>Open Source Audio Meeting Cologne: Archiv</h1>
<p><a href="anleitung.html">Anleitung für OSAMC Mitglieder</a></p>
<h4><small>2023-08</small><br><a href="jtsoftarch">Untersuchung von Software-Architekturen Eine Fallstudie zu häufigen Gründen für Architektur-Erosion in Open Source Software aus dem akademischen Umfeld</a></h4>
<ul>
<li>Sven Thielen, CC BY-NC-SA</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/jtsoftarch">https://www.osamc.de/archiv/jtsoftarch</a></li>
</ul>
<hr>
<h4><small>2023-07</small><br><a href="bleaudio">Bluetooth Low Energy Audio - Harald kannst du mich hören???</a></h4>
<ul>
<li>Marius, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/bleaudio">https://www.osamc.de/archiv/bleaudio</a></li>
</ul>
<hr>
<h4><small>2023-06</small><br><a href="pianotrainer">Piano-Trainer</a></h4>
<ul>
<li>nils, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/pianotrainer">https://www.osamc.de/archiv/pianotrainer</a></li>
</ul>
<hr>
<h4><small>2022-07-20</small><br><a href="gatedreverbdrums">Gated Reverb Drums</a></h4>
<ul>
<li>Christopher Arndt, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/gatedreverbdrums">https://www.osamc.de/archiv/gatedreverbdrums</a></li>
</ul>
<hr>
<h4><small>2021-08</small><br><a href="wifi5iempi">Wi-Fi IEM Pi WLAN In-Ear Monitoring mit Raspberry Pi und Freier Software</a></h4>
<ul>
<li>Sven Thielen, CC BY-NC-SA</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/wifi5iempi">https://www.osamc.de/archiv/wifi5iempi</a></li>
</ul>
<hr>
<h4><small>2021-03</small><br><a href="2021kreiskomposition2">Kreiskompositions-Projekt II</a></h4>
<ul>
<li>OSAMC, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/2021kreiskomposition2">https://www.osamc.de/archiv/2021kreiskomposition2</a></li>
</ul>
<hr>
<h4><small>2021-01</small><br><a href="2021kreiskomposition">Kreiskompositions-Projekt</a></h4>
<ul>
<li>OSAMC, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/2021kreiskomposition">https://www.osamc.de/archiv/2021kreiskomposition</a></li>
</ul>
<hr>
<h4><small>2020-11</small><br><a href="wifi5iem">In-Ear Monitoring über WLAN Eine Analyse zur Realisierbarkeit mit Freier Software</a></h4>
<ul>
<li>Sven Thielen, CC BY-NC-SA</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/wifi5iem">https://www.osamc.de/archiv/wifi5iem</a></li>
</ul>
<hr>
<h4><small>2020-11</small><br><a href="avb">Audio over Ethernet: AVB/TSN</a></h4>
<ul>
<li>Florian "Florob" Zeitz, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/avb">https://www.osamc.de/archiv/avb</a></li>
</ul>
<hr>
<h4><small>2019-11</small><br><a href="ardourscripting">Ardour Scripting 101</a></h4>
<ul>
<li>Daniel Appelt, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/ardourscripting">https://www.osamc.de/archiv/ardourscripting</a></li>
</ul>
<hr>
<h4><small>2019-07</small><br><a href="abcnotation">Praktisches Arbeiten mit der ABC Notation</a></h4>
<ul>
<li>Christopher Arndt, CC-by</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/abcnotation">https://www.osamc.de/archiv/abcnotation</a></li>
</ul>
<hr>
<h4><small>2019-06</small><br><a href="fuenfjahre">Fünf Jahre OSAMC</a></h4>
<ul>
<li>nils, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/fuenfjahre">https://www.osamc.de/archiv/fuenfjahre</a></li>
</ul>
<hr>
<h4><small>2019-05</small><br><a href="orchester">Orchesterpartituren Lesen und Mitverfolgen</a></h4>
<ul>
<li>Nils, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/orchester">https://www.osamc.de/archiv/orchester</a></li>
</ul>
<hr>
<h4><small>2018-08-15</small><br><a href="fmsynths">Open Source FM Software Synthesizer</a></h4>
<ul>
<li>Christopher Arndt, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/fmsynths">https://www.osamc.de/archiv/fmsynths</a></li>
</ul>
<hr>
<h4><small>2018-06</small><br><a href="sfxr">sfxr Random Sound Generator</a></h4>
<ul>
<li>nils, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/sfxr">https://www.osamc.de/archiv/sfxr</a></li>
</ul>
<hr>
<h4><small>2018-05-16</small><br><a href="norns">norns (linux-powered open-source sound computer) - voraussichtliches Erscheinungsdatum: 1. September 2018</a></h4>
<ul>
<li>Markus, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/norns">https://www.osamc.de/archiv/norns</a></li>
</ul>
<hr>
<h4><small>2018-05-16</small><br><a href="mcgv">mcgv-0.01 (monome controlled generative visuals) - In Processing geschriebenes, interaktives Animations-Übungsprojekt. (work-in-progress)</a></h4>
<ul>
<li>Markus, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/mcgv">https://www.osamc.de/archiv/mcgv</a></li>
</ul>
<hr>
<h4><small>2018-05</small><br><a href="cracklebox">Die Crackle Box - intuitiv bedienbarer Klein-Synthesizer mit unvorhersehbarem klanglichem Ergebnis</a></h4>
<ul>
<li>Georg Berger, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/cracklebox">https://www.osamc.de/archiv/cracklebox</a></li>
</ul>
<hr>
<h4><small>2018-04</small><br><a href="speedcompositionapril2018">Speed Composition Event April 2018</a></h4>
<ul>
<li>OSAMC, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/speedcompositionapril2018">https://www.osamc.de/archiv/speedcompositionapril2018</a></li>
</ul>
<hr>
<h4><small>2018-03</small><br><a href="nonsessionmanager">Non Session Manager</a></h4>
<ul>
<li>Nils, CC-by-sa</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/nonsessionmanager">https://www.osamc.de/archiv/nonsessionmanager</a></li>
</ul>
<hr>
<h4><small>2018-02</small><br><a href="demo">Demo-Projekt mit Templates ツ</a></h4>
<ul>
<li>Demona Demonsdottir, CC-by</li>
<li>Permalink: <a href="https://www.osamc.de/archiv/demo">https://www.osamc.de/archiv/demo</a></li>
</ul>
<hr>
</body>
</html>

17
archiv/index.php Normal file
View File

@ -0,0 +1,17 @@
<!doctype html>
<html>
<head>
<link rel="stylesheet" href="normalize.css" type="text/css">
<link rel="stylesheet" href="sakura.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>OSAMC Archiv</title>
</head>
<body>
<h1>Open Source Audio Meeting Cologne: Archiv</h1>
<?php include "build_project_index_html.php"; ?>
</body>
</html>

View File

@ -1,3 +1,9 @@
<?php
include "third_wednesday.php";
$nextDate = nextThirdWednesday();
$followingDates = listNextElevenThirdWendesdays();
?>
<!doctype html>
<html lang="en">
<head>
@ -175,21 +181,10 @@
<div class="Information">
<h4>Termine<span><a href="https://plan.osamc.de">18.10.2023</a> 19:00 Uhr </span></h4>
<h4>Termine<span><a href="https://plan.osamc.de"><?php echo $nextDate; ?></a> 19:00 Uhr </span></h4>
<p>Jeder Dritte Mittwoch im Monat (außer Dezember):<br>
15.11.
17.1.
21.2.
20.3.
17.4.
15.5.
19.6.
17.7.
21.8.
18.9.
16.10.
20.11.
<?php echo $followingDates; ?>
</p>
</div>
@ -231,7 +226,7 @@
<div class="Form">
<h3>Nächstes Treffen: <span>18.10.2023</span></h3>
<h3>Nächstes Treffen: <span><?php echo $nextDate; ?></span></h3>
<form method="post" action="#">
<fieldset disabled>

60
third_wednesday.php Normal file
View File

@ -0,0 +1,60 @@
<?php
function nextThirdWednesday() {
// Set the default time zone to your desired one
date_default_timezone_set('Europe/Berlin');
$date = new DateTime( 'third wednesday of this month, 17:00' );
if( date_create()->diff( $date )->invert )
{
$date = new DateTime( 'third wednesday of next month, 17:00' );
}
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$nextThirdWednesdayFormatted = $date->format('d.m.y');
return $nextThirdWednesdayFormatted;
}
function listNextElevenThirdWendesdays() {
date_default_timezone_set('Europe/Berlin');
//Start with the actual next meeting date, that is already calculated by another function already.
$date = new DateTime( 'third wednesday of this month, 17:00' );
if( date_create()->diff( $date )->invert )
{
$date = new DateTime( 'third wednesday of next month, 17:00' );
}
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$result = "";
for ($i=0; $i < 11; $i++) {
$date->modify('third wednesday of next month');
//Again:
if ($date->format('m') == '12') {
// If it's December, advance to January of the following year
$date->modify('third wednesday of January next year');
$date->modify('-1 day'); // not sure why.
}
$result = $result . " " . $date->format('d.m');
}
return $result;
}
?>