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