Was soll der User machen, wenn es keinen solchen Button gibt und er auch nicht Live-Synch aktiv hat?
Entweder er macht bei jedem Film etc. gleich einen Synch per Rechtsklick oder er markiert alle Filme und macht einen manuellen Synch alles regelmässig.
Genau so, alle markieren und über das Kontextmenü syncen.
Echt problematisch wirds bei den command-line User, da geht mit Ki gar nichts.
Doch, aber nur wenn RealTime Sync aktiv ist.
Für Command Line sehe ich eigenlich nur die noch fehlende Funktion "Sync alles". Höchstens wenn wir den Vorschalg von dir mit SyncState noch einbauen, dann könnte man das noch als CL zur Verfügung stellen.
Alles anzeigenIch kann den Code zwar lesen - verstehe aber nichts oder nicht viel.
Jetzt geh ich mal davon aus, dass egal ob Film, Set oder Serie ein Scrapvorgang - auch hier egal ob manuell, automatisch oder sonst wie, es immer in einer immer gleichen Prozedur endet, nämlich da wo der Speichervorgang programmiert ist. Lieg ich da richtig? Da könnte man doch ansetzen?
Beim Speichern Variable == LEER --> bleibt leer, Variable == 0 --> ändere Wert auf 1.Die Dateipfade sind in der Ember.db in den Tabellen - für Filme in 'movie', Sets in 'sets', die Serien in 'tvshow' und die Edisoden in 'files' gespeichert, und in genau diesen Tabellen landet Jeder gleich beim "Datenbank aktualisieren".
Wenn diese Tabellen jetzt jede eine neue Variable namens z.B. 'synch' bekommen, dann steigt die Version von MyVideo33.emm auf MyVideo34.emm ist klar, aber egal da wir eh im alpha noch sind und nicht beta.
So jetzt gibt es bei dieser Variablen den Zustand LEER und dann übers Programm den Wert 0 und 1
LEER --> in Ember drinne, aber noch kein Ki synch gemacht, keine Kodi-ID bekannt.
0 --> Synch gemacht, Kodi == Ember, Kodi-ID ist bekannt.
1 --> Synch muss erneut gemacht werden, da Kodi <> Ember, Kodi-ID ist bekannt.So jetzt kann es einen zentralen Button geben, so wie 'Datenbank aktualisieren' oder bei Tools/KodiInterface, der dann beim Auslösen, alle 4 Tabellen durchgeht und wenn synch == LEER oder synch == 1 ist, Diese synchronisiert und die Variable synch dann auf 0 setzt. Alternativ wenn du es feiner haben willst, so aufteilen wie Tools/...neu laden.
Das Hochstufen der DB ist keine Problem, dafür haben wir die Funtkion ja eingebaut. Das hat nix mit Alpha oder sonst was zu tun. Sobald was an der DB geändert wird kriegt sie ne neue Versions-Nummer.
Deine Idee klingt in der Theorie ja super, aber wie willst du feststellen, dass etwas wirklich synchron mit der Kodi DB ist, vor allem wenn mehrere Kodi's als Host eingestellt sind? Synchron würde bedeuten, dass in beiden Datenbanken die selben Werte stehen. Das ist zur Zeit aber noch nicht möglich, da Kodi einfach nicht alle Werte per JSON übermitteln lässt (Beispiele wären hier: Status (Serien), Schauspieler, DateAdded).
Das einzige was ich mir zur Zeit vorstellen könnte wäre eine Info, ob Sync bei allen Hosts erfolgreich war oder nicht, sprich einen Boolean Wert mit True/False. Der Status würde dann aber nichts über die Synchronität aussagen, sondern nur, ob eben der letzte Sync erfolgreich war oder nicht. Man könnte dann nur diese Syncen lassen, die noch nicht erfolgreich oder noch nie gesynct worden sind. Würde dann aber wiederrum bedeuten, dass für den PlayCount-Sync eine separate Funktion zur Verfügung stehen müsste, die dann unabhängig vom Sync-Status alles erneut synct.