Google Kalender oder ics-Dateien

  • Hallo, ja, die offline-Dateien gehen sowieso. Die online-Dateien sind im Moment das spannende. Das müsste morgen oder übermorgen funktionieren, und dann kommt es auch für 3.Liga und alle Oberligen.

  • Ein Problem, dem ich dabei allerdings begegnet bin, und das sich nicht lösen lässt, ist der Zeichensatz. Google Kalender verwendet offenbar UTF-8 oder -16. Das kann mein Script aber nicht, das verwendet den normalen ASC II-Satz. Dadurch werden Umlaute und Sonderzeichen im GK leider nicht korrekt dargestellt.


    ASCII wohl eher nicht, denn darin gibt es keine Umlaute - vermutlich meintest du eher ANSI, oder?
    UTF-8 ist default für iCalendar.

    1. In welcher Sprache ist das Script denn programmiert?
    2. Aktualisierst du die Kalender dann auch? Dann kann ich mir meine Programmierung sparen

    Irgendwann ist auch mal Schluss!!!

    Einmal editiert, zuletzt von Baden68 (20. August 2012 um 19:04)

  • Ja, ANSI. Das ist der LMO, Liga Manager Online, wahrscheinlich das meistverwendete Tabellenscript. PHP 4. Kann von Hause aus kein UTF, da das Ding schon gut zehn Jahre alt ist, aber es gibt erstens nichts Besseres und zweitens habe ich den im Laufe der Jahre völlig auf meine Bedürfnisse angepasst. Meine ganze Seite basiert quasi auf diesem Script. Ich könnte das umprogrammieren, das würde aber erstens dauern und zweitens müsste ich alle Wappendateien (> 8.000 Stück!) und Teamnamen in den Ligafiles (mehrere hundert inkl. Archiv) anpassen etc. Das geht leider auch nicht per Batch mit Ultra Edit, der verhunzt dabei irgendwas im Dateikopf, ich habe das alles schon probiert. Ich habe schon bei meinem Hoster erwirkt, daß meine Seite auf einem Server liegt, der beides kann, weil ein entsprechender Umzug diese Probleme bereits einmal hervorgerufen hatte (Dateinamen werden auf UTF umgestellt und korrespondieren dann nicht mehr mit dem Script). Es würde mich Wochen kosten, das alles umzustellen, so viel Zeit habe ich dafür nicht.

    Wenn die Online-Dateien sich mal einbinden lassen, müssten die sich theoretisch mit jeder Ergebniseingabe automatisch aktualisieren, weil das ics-File jedesmal neu geschrieben wird. Aber das habe ich wie gesagt noch nicht ausprobiert. Du kannst dir die Eingabe aber sowieso sparen, wenn Du dir einfach die ics-Files herunterlädst, die ich oben schon verlinkt hatte. Die kann man dann beliebig weiter verwenden, Termine sind tagesaktuell von heute. Zweite und Dritte Liga kann ich dir auch machen, das Script kann sie wie gesagt automatisch erzeugen.

  • Werden die ics-dateien bei jedem Aufruf von einem php-Script erzeugt?

    Falls ja, hast du schon einmal probiert, so etwas wie das hier an den Anfang des php Codes zu schreiben:
    header('Content-type: text/calendar; charset=utf-8');
    header('Content-Disposition: inline; filename="calendar.ics"');

    Irgendwann ist auch mal Schluss!!!

  • Es ist ein Hack für LMO und der Header ist durch das LMO-Hauptscript schon geschrieben (und zwar mit ISO-Zeichensatz, weil das ganze Script bei mir sonst nicht mehr funktioniert, wie schon beschrieben), das geht also leider nicht.

    Die Online-Dateien von oben lassen sich jetzt einbinden, das Aktualisieren klappt hier auch einwandfrei (mit Thunderbird/Lightning; Google Kalender aktualisiert leider nur automatisch "alle paar Stunden") - allerdings wird mir bei Spielen, die zur gleichen Zeit stattfinden, immer nur eines angezeigt (und zwar das im File zuletzt geschriebene; die anderen werden irgendwo auf dem Weg zum Empfänger überlagert). Im ics-File selbst sind aber alle vorhanden.

    Da ich mich mit iCal nicht richtig auskenne weiß aber ich nicht, ob das normal oder vielleicht einfach eine Einstellungssache auf Empfängerseite ist. Mir fehlt auch die Ausstattung, um das zu testen (ich habe weder Apple-Hardware noch ein Smartphone noch Lust, deswegen extra Outlook zu installieren). Vielleicht könnte jemand mit entsprechenden Möglichkeiten sich das mal anschauen. Ein Mustertermin wäre der 28.08. (nächster Sonntag), da muß um 17:30 Füchse-Minden und Magdeburg-Neuhausen auftauchen. Bei mir fehlt immer das Füchse-Spiel.

  • ich probiere das mal für den google-Kalender und mit meinem Android Smartphone über icalsync aus

    Edit:
    Der Grund dafür ist, dass beide die gleich UID haben, nämlich 638824eea5d64cc102b675187cf4be6c.
    Vermutlich generierst du sie aus Datum und Uhrzeit, oder?

    Jede UID (weltweit in allen Kalendern!) sollte unique sein.
    In deinem Fall würde sich so etwas wie "130101HBL_spielnummer@bundesligainfo.de" anbieten, wobei du spielnummer durch die jeweilige Spielnummer ersetzen musst.

    Dadurch hast du eine weltweit eindeutige UID, die sich für dieses Spiel auch nie verändert.

    Auf meinem Android Smartphone lässt der Kalender sich mit icalsync nicht verbinden - ich vermute wegen des Konflikts bei den UIDs.

    Noch ein Lösungsansatz für das Problem mit den Umlauten:

    Erstell bitte eine Datei 130101HBL.php in bundesligainfo.de/lmo/output/iCal/ und kopier das hier hinein.

    Code
    <?
    header('Content-type: text/calendar; charset=utf-8');
    header('Content-Disposition: inline; "filename=130101HBL.ics"');
    include '130101HBL.ics';
    exit;
    ?>

    Anschließend dann im Google-Kalender mit diesem Link verknüpfen:
    webcal://bundesligainfo.de/lmo/output/iCal/130101HBL.php

    Sind die Umlaute dann da?

    Irgendwann ist auch mal Schluss!!!

    4 Mal editiert, zuletzt von Baden68 (21. August 2012 um 11:21)

  • Ja, super. Das war's. Ich habe eine eindeutige UID zugeteilt und der "Umweg" mit den Umlauten funktioniert auch bestens, mit G-Kalender und Thunderbird/Lightning. Manchmal ist es eben gut, jemanden zu fragen, der sich auskennt :) Aktualisieren geht bei mir ebenfalls einwandfrei und in Echtzeit. Das sollte also jetzt soweit einsatzfähig sein.

    Ich habe die jeweilige Ligabezeichnung als Kategorie für das Ereignis gewählt ("1.Bundesliga", "2.Bundesliga" usw.)
    Frauen-Ligen werden ein [F] hinter dem Liganamen haben.
    Die Eventdauer beträgt jeweils 90 Minuten (60 Spielzeit + Pause + Timeouts, kommt ja ungefähr hin)
    Nach der Ergebniseingabe steht das Ergebnis hinter der Terminbeschreibung. Der Kalender wird damit also gleichzeitig zum Ergebnisdienst.
    In den Termindetails wird man besondere Anmerkungen wie "verlegt", "ausgefallen" u.ä. finden (aber keine Kurzkommentare oder sowas.)

    Die URLs sind also (Liste wird erweitert und auch bald dauerhaft auf BLI zu finden sein):
    Männer 1.Bundesliga: webcal://bundesligainfo.de/lmo/output/iCal/130101HBL.php
    Männer 2.Bundesliga: webcal://bundesligainfo.de/lmo/output/iCal/130201ZBL.php

    3.Liga folgt heute nachmittag oder morgen früh, da muß ich erst ein Terminupdate machen.

  • also eigentlich müsste es das schon geben.... geh doch mal auf sis-handball.de dann musst du normalerweise nur noch auf das datum klicken.... dann müsste es eigentlich funktionieren....
    LG :hi:

  • Hi,
    Hereticus und Baden68 ich danke euch beiden für die Arbeit und eure Mühe...

    Das Funktioniert Klasse.... :klatschen: :klatschen: :klatschen:

    Das gibt ein :bier: :bier: :bier:

    "Viele Menschen sind gut erzogen, um nicht mit vollem Mund zu sprechen,
    aber sie haben keine Bedenken, es mit leerem Kopf zu tun." (Orson Welles)

  • also eigentlich müsste es das schon geben.... geh doch mal auf sis-handball.de dann musst du normalerweise nur noch auf das datum klicken.... dann müsste es eigentlich funktionieren....
    LG :hi:


    Das haben wir doch schon am Anfang des Threads ausdiskutiert

    Irgendwann ist auch mal Schluss!!!

  • Ja, super. Das war's. Ich habe eine eindeutige UID zugeteilt und der "Umweg" mit den Umlauten funktioniert auch bestens, mit G-Kalender und Thunderbird/Lightning. Manchmal ist es eben gut, jemanden zu fragen, der sich auskennt :)


    Ich hab nur in meinem Buch des unnützen Halbwissens nachgeschlagen und ein bisschen im Internet gesucht.
    Manchmal reicht das ;)

    Edit:
    Du brauchst nicht für jeden Kalender eine eigene php-Datei zu machen, das geht einfacher:

    ical.php erstellen

    Code
    <?
    $id = $_GET["id"];
    header('Content-type: text/calendar; charset=utf-8');
    header('Content-Disposition: inline; "' . $id . '.ics"');
    include ($id . '.ics');
    exit;
    ?>


    Die Links sind dann:
    webcal://bundesligainfo.de/lmo/output/iCal/ical.php?id=130101HBL
    webcal://bundesligainfo.de/lmo/output/iCal/ical.php?id=130201ZBL

    Irgendwann ist auch mal Schluss!!!

    Einmal editiert, zuletzt von Baden68 (21. August 2012 um 14:13)

  • So. Haben wir auch das noch umgesetzt und es funktioniert auch, jedenfalls mit Thunderbird/Lightning. Also lautet nun der generelle Kalenderaufruf:

    webcal://bundesligainfo.de/lmo/output/iCal/ical.php?id=xxx
    (xxx durch die unten stehende Liga-ID ersetzen)

    Die folgenden Ligen sind bislang verfügbar:
    Männer 1.BL bis 3.Liga: 130101HBL / 130201ZBL / 130301DLN / 130302DLO /130303DLW / 130304DLS
    Frauen 1.BL bis 3.Liga: 131101HBF / 131201ZBF / 131301DLN / 131302DLO /131303DLW / 131304DLS

    Mit Google Kalender geht das momentan nicht, vorhin ging es aber bereits. Ich schätze, daß der Google Crawler erst wieder durchpflügen muß, um den Verzeichnisinhalt zu aktualisieren, denn die Dateien sind bis auf die ich vorhin erfolgreich damit importiert habe alle neu angelegt. Das Update der Kalender geht dort ja auch nur "alle paar Stunden" (Google Selbstauskunft) und nur automatisch. Daß das nicht live geht, piepst mich reichlich an und macht das Ding in meinen Augen eigentlich schon unbrauchbar. Vielleicht könnte jemand trotzdem noch mal ein Feedback geben, ob das jetzt so mit Smartphone oder anderem Zeugs klappt.

  • auf dem android smartphone mit icalsync bekomme ich es nicht hin
    Weder als php noch als ics, weder über http noch über webcal.

    Auch beim Google-Kalender funktioniert es mit ical.php nicht.

    Komisch ...

    Irgendwann ist auch mal Schluss!!!

    Einmal editiert, zuletzt von Baden68 (21. August 2012 um 16:54)

  • Grundsätzlich muss es gehen. Mit TB/L funktioniert es über die ical.php mit ID einwandfrei (siehe Bild).

    Im GK hatte ich vorhin über die 130101HBL.php den Kalender einwandfrei importieren können, die ical.php ging nicht. Danach ging allerdings auch die 130101HBL.php nicht mehr. Der Kalender wird eingelesen, die ersten Termine auch schon angezeigt, dann kommt die Fehlermeldung "Die angegebene Adresse enthält keinen Kalender im gültigen iCal- oder GData-Format." - und die Termine sind wieder weg. Das ist halt das Merkwürdige. Das Problem beim GK ist, daß man nichts wirklich löschen kann. Ein Versuch pro Datei, dann liest der alles aus seinem Speicher, auch wenn man den Kalender eigentlich wieder abbestellt hat. Um das Gleiche zweimal zu probieren, muß man stundenlang warten.

    Gestern funktionierten die ersten Versuche erst abends, als der Crawler nochmal über meine Seite gecrawlt (das ist wohl wörtlich zu nehmen) war und dann endlich die robots-datei neu eingelesen hat. Das Teil ist jedenfalls für schnelle Lösungen unbrauchbar. Unter Umständen liegt es aber daran?

  • Gibt es die Datei bundesligainfo.de/lmo/output/iCal/130101HBL.php noch?

    Ich bekomme nämlich Fehlermeldungen, das war vorher nicht so

    Irgendwann ist auch mal Schluss!!!

  • Ja, die gibt es noch und ist auch unverändert.

    Die 130101HBL.php und ics geht jetzt bei mir mir GK, die ical.php mit ID immer noch nicht. Ich gucke mir das morgen noch mal an, jetzt gehe ich erstmal schlafen.

  • So, nachdem ich nun extra ein neues Google Konto angelegt habe, ist der Stand der Dinge folgender:

    Mit meiner lokalen Anwendung (Mozilla Thunderbird mit Lightning-Erweiterung) funktionieren alle Varianten ohne Einschränkung. Updates sind in Echtzeit abrufbar und Änderungen werden nach der Aktualisierung umgehend angezeigt.

    Mit Google Calendar funktionieren:
    - Aufruf über die .ics-Datei: immer (Das ist auch Updatesicher, weil diese Dateien ja sowieso erhalten bleiben, aber es gibt das Problem mit den Umlauten. In meiner lokalen Anwendung werden die übrigens einwandfrei dargestellt, das ist also eine Softwaresache.)

    - Aufruf über die ligabenannte .php-Datei (zB 130101HBL.php): manchmal. Mehrere Versuche mit der selben(!) php-Datei haben mal funktioniert, mal wird der Kalender eingelesen, aber keine Termine angezeigt, mal kommt die Fehlermeldung. Warum das manchmal funktioniert und manchmal nicht, ist für mich absolut nicht nachvollziehbar.

    - Aufruf über die ical.php mit id-Tag: funktioniert nicht. Weshalb kann ich nicht nachvollziehen. Mit lokaler Anwendung klappt das einwandfrei.

    Fazit: Es scheint mir ein Softwareproblem zu sein. Je nach Endanwendung funktioniert die Einbindung oder nicht. Bei Google könnte es daran liegen, daß Google das Verzeichnis auf dem Server wahrscheinlich nicht live abfragt, sondern aus seinem Crawler-Cache bezieht, weshalb auch Updates mehrere Stunden dauern können. Ich weiß aber nicht sicher, ob das tatsächlich die Ursache ist. Daß es mit (vielleicht auch nur mit mancher ?) Android-Software ebenfalls nicht gut zu funktionieren scheint, könnte die gleiche Ursache haben, denn das ist ja auch Google. Originales iCal mit Apple-Produkt haben wir bisher nicht testen können bzw. noch kein Feedback dazu. Hier kann also keine Aussage getroffen werden. Möglicherweise funktioniert es damit.

    Ich werde jetzt erstmal nichts mehr daran verändern. Die Ligen sind alle per .ics-Datei und per identisch benannter .php-Datei gleichermaßen abzurufen (id für die einzelnen Ligen siehe oben). Wer möchte, kann sich daran auf einem der drei beschrieben Wege versuchen und vielleicht seine/ihre jeweiligen Erfahrungen damit hier posten, vielleicht finden wir ja noch eine Lösung, daß es bei allen funktioniert. Die 24 Oberligen (M & F) werde ich jedenfalls in den nächsten Tagen auch noch anlegen, es sind aber bisher noch nicht alle Termine auf dem neuesten Stand, darum wird das noch etwa bis zum Wochenende dauern.

  • Originales iCal mit Apple-Produkt haben wir bisher nicht testen können bzw. noch kein Feedback dazu. Hier kann also keine Aussage getroffen werden. Möglicherweise funktioniert es damit.

    Da kann ich dir/euch ebenfalls ein positives Feedback geben => Funktioniert auch.

    Auch von mir natürlich großes Lob!!