Ankündigung

Einklappen
Keine Ankündigung bisher.

Google Calendar - update für "neue" GoogleAPI

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • smai
    antwortet
    Nun, selbst gemacht müsste er nicht mal sein, vieleicht gibt's ja was, das man einfach integrieren könnte.
    Aber wahrscheinlich würde gar nicht viel fehlen, man müsste ja erstmal nur die 3 vorhandenen Implementierungen (GoggleV3, iCloud und ownCloud) zusammenführen.

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Wenn ich's könnte - ich würd's machen ...

    Allerdings finde ich in Deinen vier Sätzen genau sieben Fachbegriffe, die ich zwar schonmal gehört habe, aber erstmal googlen muss, um die von Dir gemachten Aussagen in der Tiefe zu verstehen.

    Lass es uns in 2 Schritten angehen, die paar Zeilen kopieren und eine neue Datei anzulegen ist doch in 5 Minuten gemacht. Zumal es sowieso schon etliche Leute nutzen.

    Ich kann mich gern in die von Dir genannten Begriffe einlesen und mich so einfuchsen, dass ich php nicht nur lesen, sondern damit auch halbwegs vernünftig coden kann - so ist der generische CalDAV-Client aber auch nicht in 2 Tagen fertig ...

    /tom

    Einen Kommentar schreiben:


  • smai
    antwortet
    Damit ich es aufnehmen würde, müsste es auf den ics-Parser umgeschrieben werden, ich mag keine doppelten Implementierungen.
    Genau genommen müsste es mit dem iCloud-Treiber vereint werden, den eigentlich implementieren diese beide doch einfach CalDav.
    Und auch der GoogleV3 implementiert übrigens CalDav, nur wird dort OAuth2 anstelle von HTTP Basic Authentication eingesetzt und ein API-Key benötigt.

    Mein Traum wäre ein einziger, generischer CalDav-Client, der alldies vereint und auch noch konfigurierbar ist.

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Zitat von smai Beitrag anzeigen
    Und was soll mit den categories geschehen? Einfach für die Vergabe von Icons zur Verfügung stehen?
    Neben einigen anderen Feldern, die noch nicht abgedeckt werden, kennen viele Provider halt auch Kategorien, siehe auch iCalendar Spezifikation hier, Abschnitt 4.8.

    Beispiel: Schau Dir mal das Müll-Widget weiter oben an - zur Zeit werden da Termine nach Namen gefiltert (z.B. Blaue Tonne, Gelbe Tonne etc). Das wird sich mit den von Dir oben beschriebenen Filtern nicht ändern.

    Eleganter wäre eine Kategorie 'Müll', wie ich sie zwar schon in meinem ownCloud-Kalender oder in Outlook definieren kann, die derzeit nirgendwo ausgewertet wird.
    Jetzt kann ich in dem Widget schreiben: Liste alle Termine, die der Kategorie 'Müll' angehören, egal was im Titel steht.

    Genauso könnte man z.B. Familienmitgliedern jeweils eine Kategorie zuweisen und für die Ausgabe entsprechend filtern / gruppieren, und Deine Filter noch zusätzlich für die Zuweisung von Icons / Farben nutzen..

    Ich gebe zu, das ist kein Endnutzer-Feature, sondern eher etwas für Leute, die eigene Widgets und Erweiterungen schreiben.

    Zitat von smai Beitrag anzeigen
    ownCloud ist übrigens gar nicht Teil der SV.
    Nimm's halt auf - wer, wenn nicht Du?

    Eine Möglichkeit mehr, den nicht mehr funktionierenden Google-Kalender zu ersetzen. Ich bin mir sicher, dass viele die Möglichkeit schätzen, für ihre Kalenderdaten nicht erst zu Google oder Apple telefonieren zu müssen. Zumal ja für die sV sowieso ein Webserver laufen muss, dann ist es halt eine lokale Installation (own-/nextCloud) mehr.

    Die Anbindung von Morg funktioniert hier einwandfrei, nur die Konfiguration ist bei manchen etwas hakelig, da je nach Version unterschiedliche Pfade zur ics angegeben werden müssen. Aber darum können wir uns hier im Forum kümmern, ggf. erstelle ich eine kurze Doku. Rest und Code siehe hier.

    /tom
    Zuletzt geändert von Tom Bombadil; 21.12.2016, 21:27.

    Einen Kommentar schreiben:


  • flipkill1985
    antwortet
    Hallo,

    @smai
    Also mir würde die Liste die du da hast vollkommen reichen das wäre so ein Traum.

    Gruß Jan

    Einen Kommentar schreiben:


  • smai
    antwortet
    Und was soll mit den categories geschehen? Einfach für die Vergabe von Icons zur Verfügung stehen?
    ownCloud ist übrigens gar nicht Teil der SV.

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Gefühlt wäre eine. cfg wahrscheinlich auf lange Sicht einfacher zu warten, aber die lang_xx.txt tut's sicher auch.

    Könntest Du in diesem Zuge auch gleich die Kategorien implementieren (sofern vom Provider geliefert)? So wie ich es bis jetzt verstehe, müsste dafür eigentlich nur folgendes geändert werden:

    lib/calendar/service/iCloud.php ab Zeile 92:
    Code:
    [FONT=courier new]    foreach ($events as $event) {
           $this->data[] = array('pos' => $i++,
            'start' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtstart)),
            'end' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtend)),
            'title' => $event->summary,
            'content' => '',
            'where' => str_replace(array("\n\r", "\n", "\r", "\\"), "<br />", $event->location),
            'link' => 'https://www.icloud.com/#calendar'[COLOR=#FF0000],[/COLOR][/FONT]
    [COLOR=#FF0000][FONT=Courier New]       'categories' => $event->categories  [/FONT][/COLOR][FONT=Courier New][COLOR=#ff0000]   // new for categories[/COLOR][/FONT]
    [FONT=courier new]     );
        }[/FONT]
    lib/calendar/service/iCal.php ab Zeile 32:
    Code:
    [FONT=courier new]      foreach ($events as $event) {
              $this->data[] = array('pos' => $i++,
                'start' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtstart)),
                'end' => date('y-m-d H:i:s', $ics->iCalDateToUnixTimestamp($event->dtend)),
                'title' => $event->summary,
                'content' => str_replace("\\n", "\n", $event->description),
                'where' => $event->Location[COLOR=#FF0000],[/COLOR][/FONT]
    [FONT=Courier New]           //,'link' => ''[/FONT]
    [COLOR=#FF0000][FONT=Courier New]           'categories' => $event->categories [/FONT][/COLOR][FONT=Courier New][COLOR=#ff0000]// new for categories[/COLOR][/FONT]
    [FONT=courier new]        );
            }[/FONT]

    lib/calendar/service/ownCloud.php ab Zeile 81:
    Code:
    [FONT=courier new]         if($name == 'DTEND')
                {
                    preg_match('/((.*)=(.*):)?(.*)/', $value, $matches);
                    //TODO TZID handling
                    date_default_timezone_set('Europe/Berlin');
                    $ts = strtotime($matches[4]) + date("Z", strtotime($matches[4]));
                    $this->vevent['end'] = date('y-m-d', $ts).' '.gmdate('H:i:s', $ts);
                }
    
    [COLOR=#FF0000]         if($name == 'CATEGORIES')  [/COLOR][/FONT][FONT=Courier New][COLOR=#ff0000]// new for categories[/COLOR][/FONT]
    [COLOR=#FF0000][FONT=Courier New]          {[/FONT]
    [FONT=courier new]              $this->vevent['categories'] = (string)($value);[/FONT]
    [FONT=Courier New]          }[/FONT][/COLOR]
    Das würde die Filterung von Events massiv vereinfachen, sofern wie gesagt der Provider die Kategorien auch liefert (z.B. ownCloud / nextCloud, siehe #161; aber bestimmt auch andere).

    Nachbemerkung: Vermutlich wäre das Einlesen in ein Array statt in einen String sogar noch eleganter, aber mit php-Arrayfunktionen kenne ich mich leider nicht aus.

    /tom
    Zuletzt geändert von Tom Bombadil; 21.12.2016, 17:50.

    Einen Kommentar schreiben:


  • smai
    antwortet
    Nun, mit steigender Nachfrage werde ich nachgiebig

    Sinnvoll für den Filter wären wohl die Felder title (= Betreff), content (= Beschreibung) und where (= Ort).

    Da dies sprachabhängig ist, würde ich es wohl in die lang_XX.txt aufnehmen.
    Vom Datenkonstrukt her bietet sich deshalb ein assoziatives Array an, dein INI-Code würde dann so aussehen:

    PHP-Code:
    $lang['calendar']['tag'][] = ['filter' => ['title' => 'Papiertonne'], 'icon' => 'message_garbage.svg''color' => '#04B404' ];
    $lang['calendar']['tag'][] = ['filter' => ['where' => 'Volkswagen'], 'icon' => 'message_service.svg' ]; 
    Dabei würde ich den ersten Eintrag anwenden, der auf einen Teil des betreffenden Feldes passt (unabhängig von Gross-/Kleinschreibung).
    Sind mehrere Felder angegeben (also z.B. title und where) müssen alle passen.


    Im Release lassen sich sicher nicht alle erdenklichen Schüsselwörter einbeziehen, aber ich möchte zumindest die wichtigsten mit ausliefern. Dazu brauche ich euren Input, was für euch von Bedeutung ist.
    Ich schlage mal folgendes vor und nehme eure Ergänzungen gerne entgegen:
    title icon color
    Grüne Tonne message_garbage.svg #008000
    Blaue Tonne message_garbage.svg #0000ff
    Gelbe Tonne message_garbage.svg #ffff00
    Papiertonne message_garbage.svg #ffff00
    Altpapier message_mail_open.svg
    Braune Tonne message_garbage.svg #a52a2a
    Biotonne message_garbage.svg #a52a2a
    Grünabfuhr message_garbage.svg #008000
    Graue Tonne message_garbage.svg #000000
    Schwarze Tonne message_garbage.svg #000000
    Kehricht message_garbage.svg #000000
    Kino scene_scene.svg
    Sport scene_fitness.svg
    Fitness scene_fitness.svg
    Fussball scene_football.svg
    Ferien status_vacation.svg
    Urlaub status_vacation.svg
    Party scene_party.svg
    Geburtstag scene_party.svg
    Feier scene_party.svg
    Arzt message_medicine.svg
    Gärtner scene_garden.svg

    Einen Kommentar schreiben:


  • Yfkt5A
    antwortet
    Zitat von smai Beitrag anzeigen
    Wünschenswert wäre für mich, dass man eine Liste von Wörtern mit Icons angeben könnte und wenn eines der Wörter im Termin vorkommt, dann wird das entsprechende Icon verwendet
    ....
    Ich habe dies mal als Issue 128 erfasst.
    Toll das mein Vorschlag jetzt vielleicht doch so in etwa umgesetzt wird
    Zitat von nEiMi Beitrag anzeigen
    Wäre es nicht möglich das mit Suchbegriffen in einer Datei zu lösen... z.B. so:
    Code:
    [Kalender]
    [Papiertonne]
    Betreff = Papiertonne
    icon = message_garbage.svg
    color = #04B404
    
    [Autowerkstatt]
    Ort = Volkswagen
    icon = message_service.svg
    color = #FFFFFF

    Einen Kommentar schreiben:


  • smai
    antwortet
    Zitat von flipkill1985 Beitrag anzeigen
    Geht so etwas nicht, und kann ich irgendwo Default Icons vergeben?
    Leider nein und nein.

    Wünschenswert wäre für mich, dass man eine Liste von Wörtern mit Icons angeben könnte und wenn eines der Wörter im Termin vorkommt, dann wird das entsprechende Icon verwendet.
    Die Google Kalender-App für Android macht wohl was ähnliches, bei bestimmten Begriffen wird da im Header auch ein passendes Hintergrundbild angezeigt.

    Wenn mir mal langweilig ist, implementiere ich das vielleicht. Leider habe ich so viele gute Ideen und so wenig Zeit ;-)
    Ich habe dies mal als Issue 128 erfasst.
    Zuletzt geändert von smai; 17.12.2016, 21:11. Grund: Issue hinzugefügt

    Einen Kommentar schreiben:


  • flipkill1985
    antwortet
    Hallo,

    das ist mir so schon klar aber ich will doch nicht immer den Pfad des Icons angeben sondern Sprechende Wörter haben wie z.B. Party oder so

    (Party)
    ICON f56257w
    @party /xx/xx/xx

    Geht so etwas nicht, und kann ich irgendwo Default Icons vergeben?
    Danke
    Gruß Jan

    Einen Kommentar schreiben:


  • Tom Bombadil
    antwortet
    Hallo Jan,

    hier mal ein Beispiel aus meinem ownCloud-Kalender:

    Kalender1.png

    Falls es Dir nur um Mülltermine geht, kannst Du auch die praktische Kompaktdarstellung nehmen, siehe hier. Die braucht auch keine Farb- und Iconcodes.

    Kalender2.png

    /tom

    Einen Kommentar schreiben:


  • smai
    antwortet
    Habe ich ja geschrieben: In der Beschreibung des Termins (keine Ahnung, wie das in der iCloud genau heisst).
    Steht auch im Beitrag #6 dieses Threads.

    Einen Kommentar schreiben:


  • flipkill1985
    antwortet
    Hallo,

    wo muss ich das genau hinschreiben, verstehe nicht was du mit "iCal-Treiber per @color und @icon" genau meinst wo muss ich da was einfügen in welcher Datei?

    Vielen Dank Gruß Jan

    Einen Kommentar schreiben:


  • smai
    antwortet
    Farbe und Icon für einzelne Termine bzw. Serien können übrigens auch im iCal-Treiber per @color und @icon in der Beschreibung gesetzt werden.

    Einen Kommentar schreiben:

Lädt...
X