Kalender sync MyPhoneExplorer -> Thunderbird mit Lightnin


tradervienna

Kalender sync MyPhoneExplorer -> Thunderbird mit Lightnin

Beitrag von tradervienna »

Hallo,

ich habe neu den MPE downgeloaded und konnte bei den Einstellungen problemlos eine Synchronisation der Kontakte von MPE auf Thunderbird einstellen.

Unter den Kontakten gibt es ja die Möglichkeit die Kalender-Synchronisation
einzustellen, leider habe ich hier nur die Auswahl für MPE, obwohl ich Lightning installiert habe.

Kann man Lightning überhaupt schon mit MPE synchronisieren ?

Bitte um Eure Unterstützung.

Gruß aus Wien
tradervienna
stahl@kabsi.at
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

MyPhoneExplorer kann zum jetzigen Zeitpun kt noch nicht mit Lighning synchronisieren. Wann es soweit sein wird kann ich noch nicht sagen
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

MyPhoneExplorer und Lighning synchronisieren

Beitrag von NP »

Hi,

kann man dabei irgendwie helfen? Ich habe schon ein bischen Lightning gehackt, vielleicht kann ich beitragen.

Längerfristig wird Lightning / Sunbird selber einen Sync-Mechanismus enthalten, um Termine zwischen verschiedenen Kalendern abzugleichen.
In diesem Fall wäre es am besten, einen MyPhoneExplorer-Provider für Lightining zu schreiben...

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Langfristig sicher, ich will es aber bald möglich machen. Nicht erst in 2 Jahren. Primär geht es um den Zugriff auf die SQLLite-Datenbank die Lightning und Sunbird 0.3 benutzen. Habe auch schon eine Lösung gefunden, muss es nur noch einbauen.
Kennst du dich in C oder C++ ein wenig aus ?
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Durchaus. :twisted:

So die Aufgaben im Büro mir Zeit lassen, bin ich zu allen Schandtaten und Experimenten bereit.

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Es geht um folgendes. Man kann SQLite nicht gerade einfach in VB einbinden, es gibt dazu eine Anleitung wie man die originale DLL abändern kann, damit sie aus VB heraus angesprochen werden kann. Unser Forenmitglied creator-doo hat dies bereits getan. Hier die Projektseite. Das Ganze funktioniert recht gut - nur eben mit dem Haken, daß auf dem Zielrechner die Microsoft Visual C++ 2005 Runtimes installiert sein müssen. Ich frage mich ob es möglich wäre mit vertretbarem Aufwand eine DLL ohne Abhängigkeiten zu machen.

Ich selbst hab mit C++ sehr wenig am Hut, drum frag ich besser dich bevor ich mir den ganzen Kram reinziehe.
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Ich werde die Möglichkeit mal prüfen; allerdings sehe ich einige Nachteile:

Da Sunbird/Lightning die eigene Version dieser Library nutzt, gibt es potientiellen Datenverlust bei Inkompatibilitäten zwischen den Versionen. Ferner unterstützt SQLite nicht den gleichzeitigen Zugriff mehrerer Applikationen auf die gleiche Datei. Außerdem (und das wiegt schwer) gibt Sunbird/Lightning User, die keinen lokcalen Kalender, sondern z.B. einen WCAP-Kalender oder demnächst Google-Kalender nutzen.

Wie wäre es stattdessen mit einer Extension, die das Mozilla-Calender-API zur Synchronisation nutzt, so wie es auch mit dem Adreßbuch funktioniert?

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Das könnte in Thunderbird funktionieren - nicht aber in Sunbird
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Wieso nicht? Sunbird hat genauso einen Extension-Mechanismus wie die
anderen Mozilla-Projekte auch, und die Code-Basis von Lightning und Sunbird ist identisch; damit auch das API für den Kalender-Zugriff.

Das größte Problem ist, aus MyPhone Explorer mit der Extension zu reden, und das sollte genauso gehen wie beim Thunderbird Plugin für die Adreßbuch-Synchronisation.

Ich will ja auf keinen Fall klugscheissen, schliesslich bin ich noch nicht so lange im Thema drin - ich habe MyPhoneExplorer ja gerade erst entdeckt. :-)

Ich werde mir morgen mal genauer das MyPhone Exp.-Plugin für Thunderbird ansehen, vielleicht kann ich dann abschätzen, ob sich das Prinzip übertragen läßt.

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Hab grad nachgesehen - es stimmt. Sieht so aus als hätte Sunbird 0.3 wirklich eine Plugin-Schnittstelle. Das TB-Plugin ist recht einfach gehalten - das wirst du schnell verstehen.
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

SunBird / Lightning Integration

Beitrag von NP »

Hi,

ich habe mir die Adreßbuch-Extension angesehen. Sehr elegant gemacht, nur als kleiner Verbesserungsvorschlag: Die Extension sollte sich nicht ins globale Extension-Verzeichnis von Thunderbird installieren, sondern in das des User-Profils.

Was ich dem Quellcode der Extension nicht entnehmen kann: Wie kriegst Du es hin, die Extension von MyPhoneExplorer aus mittels des Sync-Buttons zu aktivieren? Die umgekehrte Richtung ist mir klar (glaube ich zumindest ;-) ).

Zur Idee der Termin-Synchronisation: Eigentlich läßt sich das genauso abwickeln wie mit den Adressen; über den CalenderManager lassen sich die konfigurierten Kalender auflisten (siehe http://lxr.mozilla.org/mozilla/source/c ... anager.idl
Funktion getCalendars), dann kann man den ausgewählten über das Interface bearbeiten (siehe http://lxr.mozilla.org/mozilla/source/c ... lendar.idl).

Das ist dann allerdings nicht ganz untricky, da es sich um ein asynchrones Interface handelt; letztlich sollte man sich aber ebenso auf eine Kommunikation über Dateien zurückziehen können.

Einige Fallstricke gibt es aber vorab zu lösen bzw. inhaltlich zu definieren:
- es gibt ReadOnly-Kalender; da kann man nur vom Kalender zum Handy hin synchronisieren;
- es gibt Repeating Events; die kann man im Handy nicht abbilden, glaube ich;
- die Task-Liste sollte man auch synchronisieren; das zugehörige Interface ist aber wohl noch im Fluß, da muß ich noch recherchieren.

Alles in allem erscheint mir der Weg über eine Extension aber am lohnendsten, weil man Sunbird und Lightning gleichzeitig erschlagen kann und alle Kalender-Typen (lokal und remote) gemeinsam abdecken kann und auch besser gegen Formatänderungen im Backend isoliert ist.

Alternativ kann man natürlich auch einfach einen MyPhone Explorer Calender Provider schreiben; solange es in Lightning/SunBird keinen generischen Sync-Mechanismus gibt, ist das aber nicht so ergiebig. Soweit iich gesehen habe, ist der auch in der Version 0.5, die demnächst ansteht, noch nicht drin.

JavaScript ist zwar nicht meine favorisierte Programmiersprache :?; ich bin aber gerne bereit, an einer Extension mitzuschreiben & mitzutesten. Da ich im Lightning einen WCAP-Kalender nutze, kann ich dann ganz gut testen, ob die Synchonisierung auch damit funktioniert.

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Das Plugin liest einfach beim Start einen Registry-Eintrag aus. Schau mal in die myphoneexplorer.xul - dort wirst du einen Event-Listener finden.

Der Vorteil von einer Programmweiten installation liegt auf der hand - es muß nicht für jedes Profil einzeln installiert werden.

Meinst du mit WCAP den Webkalender WebDAV ?
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

OK, das verstehe ich. Das heißt, sobald ich in MyPhoneExplorer auf den Sync-Button drücke, startest Du kurz thunderbird im Adreßbuch-Modus, dies löst das load-Event aus und deine Routine wird aufgerufen, richtig?

Dieses Prinzip sollte sich 1:1 für die Calendar-Synchronisation übertragen lassen.

Gegen eine programmweite Installation habe ich persönlich nichts; ich dachte nur an Rechner, die von mehreren Leuten benutzt werden, wo einer MyPhoneExplorer nutzt und der andere dann vielleicht denkt, "Was ist das denn für eine komische Erweiterung in meinem Thunderbird?" ;-)

WCAP ist ein anderes Protokoll für den Zugriff auf einen Remote-Kalender analog CalDAV/WebDAV. Das prominenteste Produkt, das sich über WCAP ansprechen läßt, ist der Java Enterprise System Calendar Server von Sun (aka SunONE aka iPlanet). Zufällig benutzen wir den bei uns in der Firma, deswegen bin ich so interessiert daran. ;-)

Es gibt eine Spezialversion von Lightning, die zusätzlich WCAP unterstützt. Da jetzt aber für die nächste Lightning-Release weitere Kalendertypen unterstützt werden (z.B. Google), wird man das wohl ganz offiziell als Extensions für Lightning/Sunbird realisieren. Alle Typen von supporteten Kalendern passen sich aber in das selbe API ein.

OK, wenn wir den Kalender jetzt tatsächlich mit einer Extension synchronisieren wollen, müssen erstmal die Dateiformate festgelegt werden, die zwischen dem Kalender und MyPhoneExplorer ausgetauscht werden, richtig? Hast Du da irgendwelche Präferenzen?
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Ja, das mit der aktivierung des Plugins hast du richtig erkannt. Ob das auch beim Lighning gehen wird ist aber fraglich, weil das Hauptfenster anders als das Adressbuchfenster nur einmal instanziert wird.

Generell bin ich mir noch nicht ganz sicher ob SQLite nicht die bessere Lösung wäre. Das mit den Plugins ist halt immer so eine Sache - änderung in der Software und theorethisch funktioniert dann das Plugin nichtmehr. Die Kalender API's sind soweit ich weiß auch noch nicht "frozen". JAVA ist auch nicht mein spezialgebiet. Das TB-Plugin ist ist ehrlich gesagt das erste überhaupt was ich in Java geschrieben hab - hat mich viele Nerven gekostet.

Beim Dateiformat bin ich relativ unabhängig, kann ruhig eine Eigenentwicklung sein, sollte eben einfach zu handeln sein. Das jetzige Plugin schreibt Tag-basierende Dateien, in UTF8 kodiert. Einziges Format welches ich nicht verwenden darf ist CSV.
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Hmm, das muß ich mal ausprobieren. Generell dürfte sich auch ein anderer Trigger finden lassen, der die Routine aktiviert. Da dann zuerst der Registry-Eintrag geprüft wird, schadet es nichts, wenn der Trigger ein paar mal zu oft läuft (sollte vielleicht nicht gerade bei jedem Mausklick aktiviert werden... ;-) ).

Was SQLITE angeht: MyPhoneExplorer ist Dein Programm und Du entscheidest natürlich über die Entwicklungsrichtung, aber ich halte das für den falschen Weg. Neben der Tatsache, daß man sich dann auf lokale Kalender für die Synchronisation beschränken muß, ist man damit noch viel abhängiger von Softwareänderungen als beim Calender-API. Die Struktur der SQLite-Datenbank wird ja garnicht garantiert - wenn sich dabei was ändert, kracht es noch viel stärker. Beim API werden die Entwickler zumindest versuchen, nichts Unnötiges zu verändern...

Das Unbehagen gegenüber Javascript kann ich verstehen, ist auch nicht meine favorisierte Sprache. (Bitte nicht mit Java verwechseln, sind echt zwei paar Schuhe). Aber es ist nunmal die Sprache der Mozilla-Extensions...

Wenn Du grundsätzlich bereit bist, den Weg der Extension zu gehen, wäre ich bereit, den größten Teil der Arbeit an der Extension zu übernehmen und das ganze gegenüber Sunbird, Lightning und verschiedenen Kalender-Providern zu testen - aber Du hättest natürlich noch jede Menge Arbeit:
- einen cal_notifier analog dem tb_notifier
- die eigentliche Abgleichslogik (steckt, soweit ich gesehen habe, für die Adressen im MyPhoneExplorer, wäre beim Calender vermutlich genauso)
- die Einstellungs-GUI für die Auswahl des Kalenders
- ...

Gruß,
NP
NP
K800i
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

Da muss ich dir wohl ein wenig recht geben mit SQLite. das Problem ist, daß unser creator-doo schon sehr viel Zeit in die SQLite-Sache gesteckt hat. Mal sehen was er dazu sagt.

Die Seite auf MyPhoneExplorer ist kein Problem, und das Plugin würden wir auch irgendwie hinbekommen. Übrigens habe ich heute erfolgreich mein Handy mit mit Lighning synchronisiert. Über den Umweg WebDAV klappt das ganz gut (auch wenn das sicher nicht die Endlösung sein wird)
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Das verstehe ich sehr gut. Wenn er kurz vor der Fertigstellung ist, kann man das ja ruhig einbauen - ich habe bisher ja nicht mehr gemacht, als die prinzipielle Machbarkeit gecheckt. Vielleicht muß sich auch erst im Praxiseinsatz erweisen, welche die bessere Lösung ist.

Was WebDAV angeht: Heißt das, Du hast jetzt bereits direkte WebDAV-Synchronisation in MPE eingebaut? Cool, dann wird es langsam tatsächlich Zeit für eine Plugin-Schnittstelle für Kontakte und Kalender... ich würde dann auch eine direkte WCAP-Schnittstelle beisteuern, kämpfe gerade wieder mit Lightning/WCAP um einen Bugfix hineinzubekommen...

Wenn Du einverstanden bist, würde ich mal einen Schnittstellenentwurf für die Extension-Methode machen, d.h. insbesondere eine erste Spezifikation für das Dateiformat, der Rest ist ja eher trivial.

Gruß,
NP
NP
K800i
crea-doo
Co-Developer
Beiträge: 59
Registriert: Di 22. Aug 2006, 09:00

Beitrag von crea-doo »

Mein Nickname ist übrigens "crea-doo" :D
FJ
Site Admin
Beiträge: 32106
Registriert: Mi 15. Feb 2006, 01:16
Wohnort: Tirol
Kontaktdaten:

Beitrag von FJ »

@NP: Jap, WebDAV läuft schon, die Dateien sind einfache iCal-Dateien. Ich musste mich also prinzipiell nur um den Up/Download kümmern. Und das war dank crea-doo nicht schwer. Neben HTTP wird auch das FTP-Protokoll unterstützt. Im Supportforum ist ein Sticky-Thread, bitte hin und wieder mal reinschauen. Werde wahrscheinlich heute noch eine beta online stellen.

@crea-doo: Sorry wegen dem Nick ;-) . Aber sag mal - was hältst du von dem Ganzen ?
NP
Co-Developer
Beiträge: 525
Registriert: Di 9. Jan 2007, 13:48
Wohnort: Bonn, Deutschland

Beitrag von NP »

Hi, habe die Beta ausprobiert (via FTP, da ich keinen eigenen WebDAV-Server habe), funktioniert gut, nur SunBird hat Probleme mit dem Zugriff. :-( Das liegt aber eindeutig auf der SunBird-Seite, nicht bei MPE.

Zusätzlich habe ich mir weiter Gedanken gemacht um das Thema Extension; als Austauschformat bietet sich das iCal-Format an; das benutzt Du ja sowieso schon intern und beim Zugriff auf Netzwerkkalender. Wozu also zuviel Arbeit machen. Auch Mozilla Calendar hat ja schon eine Export-Routine, die kann man bestimmt ansprechen, um die Datei zu MPE zu transportieren.

Einziges Problem dabei: Da MPE entscheidet (bzw. der User über die GUI) was bei Konflikten passiert, muß diese Entscheidung auf dem Rückweg in die Datei eingebaut werden. Dazu bietet es sich an, einfach pro Eintrag eine X-MPE-SYNCACTION-Zeile einzufügen, die der Extension mitteilt, was sie mit dem Eintrag zu machen hat.

Ferner habe ich beim Studium der Mozilla-Developer-Seiten festgestellt, daß Du Dir bei der Extension-Installation schon zuviel Mühe gemacht hast: Man kann die Extension ausgepackt in seinem eigenen Programmverzeichnis liegen lassen und einfach mit einem einzigen Registry-Eintrag als Extension anmelden! Den Eintrag könntest Du setzen, wenn ein Benutzer als Sync-Ziel z.B. Thunderbird auswählt.

Das erledigt nebenbei auch das Thema Updates; wenn sich an der Extension etwas ändert, würden die Dateien automatisch bei der Installation übergebügelt.

Was sagt Ihr (FJ, crea_doo) dazu?

Gruß,
NP
NP
K800i
Antworten