initial commit
This commit is contained in:
commit
d206c242ca
|
@ -0,0 +1,16 @@
|
||||||
|
#! /bin/bash
|
||||||
|
|
||||||
|
CHCH_ICAL_SRC="https://cloud.chch.it/remote.php/dav/public-calendars/KVJE5OXYIY9B9V5C?export"
|
||||||
|
CHCH_ICAL="/var/www/chch_api/chch.ical"
|
||||||
|
RAND="$(date +%s)$RANDOM$RANDOM$RANDOM"
|
||||||
|
|
||||||
|
rm -rf /tmp/chch_*.ical
|
||||||
|
wget "$CHCH_ICAL_SRC" -O /tmp/chch_$RAND.ical -q -T 45
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "ERROR: wget failed to download calendar" >&2
|
||||||
|
else
|
||||||
|
mv /tmp/chch_$RAND.ical $CHCH_ICAL
|
||||||
|
fi
|
||||||
|
|
||||||
|
head $CHCH_ICAL -n1 >/dev/null 2>&1 && php /etc/chch/chch_ical2mediawiki.php $CHCH_ICAL 2>/dev/null | php /var/www/chch/maintenance/edit.php -m -b --no-rc -s "automatische Aktualisierung aus dem ical feed" "Aktuelle_ChCh-Termine" >/dev/null 2>&1
|
||||||
|
echo "Hauptseite" | php /var/www/chch/maintenance/purgeList.php --purge > /dev/null 2>&1
|
|
@ -0,0 +1,91 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SSH_IP="127.0.0.1"
|
||||||
|
SSHPORT="2322"
|
||||||
|
SSH_USER="command"
|
||||||
|
SSH_SUCCESS_FILE="/tmp/chch-status_ssh-success"
|
||||||
|
JSON_FILE="/var/www/chch_api/chch.json"
|
||||||
|
JSON_FILE_TEMPL="/etc/chch/chch.json.template"
|
||||||
|
JSON_FILE_TMP="$(mktemp)"
|
||||||
|
STATUS_FILE="/tmp/chch-status"
|
||||||
|
STATUS_OPEN="geöffnet"
|
||||||
|
STATUS_CLOSED="geschlossen"
|
||||||
|
STATUS_NULL="unbekannt"
|
||||||
|
STATUS_NULL_DELAY_MINUTES=10
|
||||||
|
STATUS_NULL_TIMEOUT_MINUTES=180
|
||||||
|
STATUS_MSG_CLOSED="Geschlossen | Closed"
|
||||||
|
STATUS_MSG_OPEN="Geöffnet | Open"
|
||||||
|
WIKI_PATH="/var/www/chch/"
|
||||||
|
WIKI_IMAGE_CLOSED="ChCh_Logo_closed.png"
|
||||||
|
WIKI_IMAGE_OPEN="ChCh_Logo_open.png"
|
||||||
|
WIKI_MAIN_PAGE="Hauptseite"
|
||||||
|
WIKI_STATUS_PAGE="Aktueller_ChCh-Öffnungsstatus"
|
||||||
|
|
||||||
|
find "$SSH_SUCCESS_FILE" -mmin +$STATUS_NULL_TIMEOUT_MINUTES -exec rm "$STATUS_FILE" \; 2>/dev/null
|
||||||
|
|
||||||
|
OLD_STATUS="$(cat "$STATUS_FILE" 2>/dev/null)"
|
||||||
|
STATUS="$(echo status | ssh -q -p $SSHPORT $SSH_USER@$SSH_IP 2>/dev/null)"
|
||||||
|
|
||||||
|
if [ -z "$STATUS" ]; then
|
||||||
|
if [ -f "$SSH_SUCCESS_FILE" ] && test $(find "$SSH_SUCCESS_FILE" -mmin -$STATUS_NULL_DELAY_MINUTES -mmin +0); then
|
||||||
|
STATUS="$OLD_STATUS"
|
||||||
|
[ -z "$STATUS" ] && STATUS="$STATUS_NULL"
|
||||||
|
else
|
||||||
|
STATUS="$STATUS_NULL"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
touch $SSH_SUCCESS_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null) || TIMESTAMP_LASTCHANGE=$(date +%s)
|
||||||
|
[ "$STATUS" != "$STATUS_NULL" ] && printf "%s\n" "$STATUS" > "$STATUS_FILE"
|
||||||
|
if [ "$STATUS" == "$OLD_STATUS" -o "$STATUS" == "$STATUS_NULL" ]; then
|
||||||
|
touch --date=@$TIMESTAMP_LASTCHANGE "$STATUS_FILE"
|
||||||
|
else
|
||||||
|
TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null)
|
||||||
|
fi
|
||||||
|
TIMESTAMP_LASTCHANGE_DATE="$(date -d "@$TIMESTAMP_LASTCHANGE" "+%H:%M (%d.%m.%Y)")"
|
||||||
|
|
||||||
|
API_STATUS="null"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''unbekannt'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
case $STATUS in
|
||||||
|
$STATUS_OPEN)
|
||||||
|
API_STATUS="true"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_OPEN|link=|right|frame|'''$STATUS'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_OPEN"
|
||||||
|
;;
|
||||||
|
$STATUS_CLOSED)
|
||||||
|
API_STATUS="false"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''$STATUS'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
;;
|
||||||
|
$STATUS_NULL)
|
||||||
|
API_STATUS="null"
|
||||||
|
STATUS_="'''Öffnungsstatus unbekannt'''"
|
||||||
|
IMAGE="ChCh_Logo_closed.png"
|
||||||
|
if [ -f "$STATUS_FILE" ]; then
|
||||||
|
case $(head -n1 "$STATUS_FILE") in
|
||||||
|
$STATUS_OPEN)
|
||||||
|
STATUS_="'''unbekannt'''<br>zuletzt war $STATUS_OPEN"
|
||||||
|
IMAGE="$WIKI_IMAGE_OPEN"
|
||||||
|
;;
|
||||||
|
$STATUS_CLOSED)
|
||||||
|
STATUS_="'''unbekannt'''<br>zuletzt war $STATUS_CLOSED"
|
||||||
|
IMAGE="$STATUS_MSG_CLOSED"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$IMAGE|link=|right|frame|$STATUS_<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The status file for spaceapi.ccc.de and for our IRC bot.
|
||||||
|
sed "s/%%STATUS%%/${API_STATUS}/;s/%%MESSAGE%%/${API_STATUS_MSG}/;s/%%LASTCHANGE%%/${TIMESTAMP_LASTCHANGE}/" $JSON_FILE_TEMPL > $JSON_FILE_TMP
|
||||||
|
chown --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP
|
||||||
|
chmod --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP
|
||||||
|
mv $JSON_FILE_TMP $JSON_FILE
|
||||||
|
|
||||||
|
echo -n "$WIKI_STATUS" | php "$WIKI_PATH/maintenance/edit.php" -m -b --no-rc -s "$STATUS" "$WIKI_STATUS_PAGE" >> /dev/null 2>&1
|
||||||
|
echo "$WIKI_MAIN_PAGE" | php "$WIKI_PATH/maintenance/purgeList.php" --purge >> /dev/null 2>&1
|
|
@ -0,0 +1,92 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
SSH_IP="127.0.0.1"
|
||||||
|
SSHPORT="0000"
|
||||||
|
SSH_USER="command"
|
||||||
|
SSH_SUCCESS_FILE="/tmp/test_chch-status_ssh-success"
|
||||||
|
JSON_FILE="/tmp/test_chch.json"
|
||||||
|
JSON_FILE_TEMPL="/var/www/chch_api/chch.json.template"
|
||||||
|
JSON_FILE_TMP="$(mktemp)"
|
||||||
|
STATUS_FILE="/tmp/test_chch-status"
|
||||||
|
STATUS_OPEN="geöffnet"
|
||||||
|
STATUS_CLOSED="geschlossen"
|
||||||
|
STATUS_NULL="unbekannt"
|
||||||
|
STATUS_NULL_DELAY_MINUTES=10
|
||||||
|
STATUS_NULL_TIMEOUT_MINUTES=180
|
||||||
|
STATUS_MSG_CLOSED="Geschlossen | Closed"
|
||||||
|
STATUS_MSG_OPEN="Geöffnet | Open"
|
||||||
|
WIKI_PATH=""
|
||||||
|
WIKI_IMAGE_CLOSED="ChCh_Logo_closed.png"
|
||||||
|
WIKI_IMAGE_OPEN="ChCh_Logo_open.png"
|
||||||
|
WIKI_MAIN_PAGE="Hauptseite"
|
||||||
|
WIKI_STATUS_PAGE="Aktueller_ChCh-Öffnungsstatus"
|
||||||
|
|
||||||
|
find "$SSH_SUCCESS_FILE" -mmin +$STATUS_NULL_TIMEOUT_MINUTES -exec rm "$STATUS_FILE" \; 2>/dev/null
|
||||||
|
|
||||||
|
OLD_STATUS="$(cat "$STATUS_FILE" 2>/dev/null)"
|
||||||
|
#STATUS="$(echo status | ssh -q -p $SSHPORT $SSH_USER@$SSH_IP 2>/dev/null)"
|
||||||
|
STATUS="$(echo status | cat /tmp/test_chch_fake_status 2>/dev/null)"
|
||||||
|
|
||||||
|
if [ -z "$STATUS" ]; then
|
||||||
|
if [ -f "$SSH_SUCCESS_FILE" ] && test $(find "$SSH_SUCCESS_FILE" -mmin -$STATUS_NULL_DELAY_MINUTES -mmin +0); then
|
||||||
|
STATUS="$OLD_STATUS"
|
||||||
|
[ -z "$STATUS" ] && STATUS="$STATUS_NULL"
|
||||||
|
else
|
||||||
|
STATUS="$STATUS_NULL"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
touch $SSH_SUCCESS_FILE
|
||||||
|
fi
|
||||||
|
|
||||||
|
TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null) || TIMESTAMP_LASTCHANGE=$(date +%s)
|
||||||
|
[ "$STATUS" != "$STATUS_NULL" ] && printf "%s\n" "$STATUS" > "$STATUS_FILE"
|
||||||
|
if [ "$STATUS" == "$OLD_STATUS" -o "$STATUS" == "$STATUS_NULL" ]; then
|
||||||
|
touch --date=@$TIMESTAMP_LASTCHANGE "$STATUS_FILE"
|
||||||
|
else
|
||||||
|
TIMESTAMP_LASTCHANGE=$(stat -c '%Y' "$STATUS_FILE" 2>/dev/null)
|
||||||
|
fi
|
||||||
|
TIMESTAMP_LASTCHANGE_DATE="$(date -d "@$TIMESTAMP_LASTCHANGE" "+%H:%M (%d.%m.%Y)")"
|
||||||
|
|
||||||
|
API_STATUS="null"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''unbekannt'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
case $STATUS in
|
||||||
|
$STATUS_OPEN)
|
||||||
|
API_STATUS="true"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_OPEN|link=|right|frame|'''$STATUS'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_OPEN"
|
||||||
|
;;
|
||||||
|
$STATUS_CLOSED)
|
||||||
|
API_STATUS="false"
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$WIKI_IMAGE_CLOSED|link=|right|frame|'''$STATUS'''<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
;;
|
||||||
|
$STATUS_NULL)
|
||||||
|
API_STATUS="null"
|
||||||
|
STATUS_="'''Öffnungsstatus unbekannt'''"
|
||||||
|
IMAGE="ChCh_Logo_closed.png"
|
||||||
|
if [ -f "$STATUS_FILE" ]; then
|
||||||
|
case $(head -n1 "$STATUS_FILE") in
|
||||||
|
$STATUS_OPEN)
|
||||||
|
STATUS_="'''unbekannt'''<br>zuletzt war $STATUS_OPEN"
|
||||||
|
IMAGE="$WIKI_IMAGE_OPEN"
|
||||||
|
;;
|
||||||
|
$STATUS_CLOSED)
|
||||||
|
STATUS_="'''unbekannt'''<br>zuletzt war $STATUS_CLOSED"
|
||||||
|
IMAGE="$STATUS_MSG_CLOSED"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
API_STATUS_MSG="$STATUS_MSG_CLOSED"
|
||||||
|
WIKI_STATUS="[[File:$IMAGE|link=|right|frame|$STATUS_<br>seit $TIMESTAMP_LASTCHANGE_DATE]]"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# The status file for spaceapi.ccc.de and for our IRC bot.
|
||||||
|
sed "s/%%STATUS%%/${API_STATUS}/;s/%%MESSAGE%%/${API_STATUS_MSG}/;s/%%LASTCHANGE%%/${TIMESTAMP_LASTCHANGE}/" $JSON_FILE_TEMPL > $JSON_FILE_TMP
|
||||||
|
chown --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP
|
||||||
|
chmod --reference=$JSON_FILE_TEMPL $JSON_FILE_TMP
|
||||||
|
mv $JSON_FILE_TMP $JSON_FILE
|
||||||
|
|
||||||
|
echo -n "$WIKI_STATUS" #| php "$WIKI_PATH/maintenance/edit.php" -m -b --no-rc -s "$STATUS" "$WIKI_STATUS_PAGE" >> /dev/null 2>&1
|
||||||
|
#echo "$WIKI_MAIN_PAGE" | php "$WIKI_PATH/maintenance/purgeList.php" --purge >> /dev/null 2>&1
|
|
@ -0,0 +1,40 @@
|
||||||
|
{
|
||||||
|
"api": "0.13",
|
||||||
|
"space": "Chaostreff Chemnitz",
|
||||||
|
"logo": "http://chaoschemnitz.de/chch_logo.png",
|
||||||
|
"url": "https://chaoschemnitz.de",
|
||||||
|
"location": {
|
||||||
|
"address": "Augustusburger Str. 102, 09126 Chemnitz, Germany",
|
||||||
|
"lon": 12.939537,
|
||||||
|
"lat": 50.830659
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"ml": "kontakt@chaoschemnitz.de",
|
||||||
|
"phone": "+49 37 1337 18088",
|
||||||
|
"irc": "irc://irc.hackint.eu/#ChaosChemnitz",
|
||||||
|
"facebook": "https://www.facebook.com/ChaosChemnitz",
|
||||||
|
"twitter": "@ChaosChemnitz",
|
||||||
|
"issue_mail": "florz@florz.net"
|
||||||
|
},
|
||||||
|
"issue_report_channels": [
|
||||||
|
"ml",
|
||||||
|
"issue_mail"
|
||||||
|
],
|
||||||
|
"open": %%STATUS%%,
|
||||||
|
"state": {
|
||||||
|
"open": %%STATUS%%,
|
||||||
|
"lastchange": %%LASTCHANGE%%,
|
||||||
|
"message": "%%MESSAGE%%",
|
||||||
|
"icon": {
|
||||||
|
"open": "http://chaoschemnitz.de/chch_open.png",
|
||||||
|
"closed": "http://chaoschemnitz.de/chch_closed.png"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"feeds": {
|
||||||
|
"calendar": {
|
||||||
|
"type": "ical",
|
||||||
|
"url": "http://chaoschemnitz.de/chch.ical"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"ext_ccc": "chaostreff"
|
||||||
|
}
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
$ical_file=$argv[1];
|
||||||
|
$backward_seconds=60*60*6;
|
||||||
|
$preview_seconds=60*60*24*60;
|
||||||
|
?>
|
||||||
|
{| class="wikitable"
|
||||||
|
|-
|
||||||
|
! scope="col" rowspan="2"| Datum
|
||||||
|
! scope="col"| Titel
|
||||||
|
! scope="col"| Ort
|
||||||
|
|-
|
||||||
|
! scope="col" colspan="2"| Beschreibung
|
||||||
|
|-
|
||||||
|
<?php
|
||||||
|
require_once __DIR__ . '/icalparser/src/IcalParser.php';
|
||||||
|
require_once __DIR__ . '/icalparser/src/Recurrence.php';
|
||||||
|
require_once __DIR__ . '/icalparser/src/Freq.php';
|
||||||
|
$cal = new \om\IcalParser();
|
||||||
|
$results = $cal->parseFile("$ical_file");
|
||||||
|
|
||||||
|
foreach ($cal->getSortedEvents() as $r) {
|
||||||
|
if($r['DTEND']->getTimestamp()>(time()-$backward_seconds) and $r['DTSTART']->getTimestamp()<(time()+$preview_seconds)) {
|
||||||
|
if($r['DTSTART']->format('d.m.Y')!=$r['DTEND']->format('d.m.Y') and $r['DTEND']->format('H:i')=="00:00") {
|
||||||
|
$chch_end_date=date('d.m.Y' ,$r['DTEND']->getTimestamp()-1);
|
||||||
|
$chch_end_time="23:59";
|
||||||
|
} else {
|
||||||
|
$chch_end_date=$r['DTEND']->format('d.m.Y');
|
||||||
|
$chch_end_time=$r['DTEND']->format('H:i');
|
||||||
|
}
|
||||||
|
echo sprintf('|rowspan="2" style="text-align:center;"|%s %s<br>-<br>%s %s' . PHP_EOL .
|
||||||
|
'|\'\'\'%s\'\'\'' . PHP_EOL .
|
||||||
|
'|%s ' . PHP_EOL .
|
||||||
|
'|-' . PHP_EOL .
|
||||||
|
'|colspan="2"|%s ' . PHP_EOL .
|
||||||
|
'|-' . PHP_EOL,
|
||||||
|
$r['DTSTART']->format('d.m.Y'), $r['DTSTART']->format('H:i'), $chch_end_date, $chch_end_time,
|
||||||
|
$r['SUMMARY'],
|
||||||
|
$r['LOCATION'],
|
||||||
|
$r['DESCRIPTION']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|}
|
Loading…
Reference in New Issue