Skip to content
  • Kategorien
  • Aktuell
  • Tags
  • Beliebt
  • Benutzer
  • Gruppen
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
MediathekView Logo

MediathekView-Forum

  1. Übersicht
  2. Fragen, Hilfe, Kritik
  3. Synchronisation Filmlistestand

Synchronisation Filmlistestand

Geplant Angeheftet Gesperrt Verschoben Fragen, Hilfe, Kritik
21 Beiträge 6 Kommentatoren 1.6k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • G Offline
    G Offline
    Goddert
    antwortete auf MenchenSued am zuletzt editiert von Goddert
    #9

    @MenchenSued

    Korrekt. Ich hab mich nicht klar ausgedrückt.

    Aktueller Zustand:
    2 Mediathekview-Installationen, eine unter macOS und eine unter Windows. Im Idealfall sind beide Konfigurationssets bezüglich OS-unabghängiger Informationen (Abos, Filter, Sets, etc.) identisch. Ausser dem Filmlistenstand.

    Definition Filmlistenstand: Auf selbem OS: Filmliste von Zeitpunkt A. Liste mit den Filmen als “gesehene Filme” markiert.
    Wenn die Filmlisten auf beiden OS von unterschiedlichen Zeitpunkten sind ist der Filmlistenstand unterschiedlich. Die Listen der als “gesehen” markierten Filme muss nicht notwendigerweise unterschiedlich sein, kann aber. Ist aber ein Attribut des Filmlistenstands

    Problemstellung:
    Die Installation der Mediathekview unter macOS mit der Installation unter Windows so abzugleichen, dass nach Abgleich der Filmlistenstand auf beiden OS identisch ist.

    Annahmen:
    Da die jar-Files sich wohl nicht ändern, vermute ich mal, dass die Informationen bzgl. des Filmlistenstands entweder innerhalb der Konfigurationsfiles oder als Konfigurationfiles selbst abgelegt sind.

    Um eben nicht OS-abhängige Informationen in den Konfigurationsfiles zu kompromitieren, wären es natürlich wünschenswert nur die notwendigen Informationen auszutauschen, um das obige Problem zu lösen. (das ist dann eher ein technisches Problem. Skript …) Bleibt die Frage der Informationsidentifizierung.

    So wie ich deine Antwort oben verstehe enthält history.txt nur zum Herunterladen markierte oder schon heruntergeladene Dateien. Also keine notwendige Info für den Filmlistenstand.

    Filme.json enthält wohl die zuletzt geladene Filmliste. Es sollte also eigentlich ein Datumsabgleich des Modifikations- oder Erstellungsdatums reichen, um die aktuellste Version der Filmliste aus beiden OS zu identifizieren, korrekt?

    Fehlt nur noch der Status der “gesehenen Filme”, richtig? Ideal wäre die aktuellste Liste der “gesehenen” Filme. Wie die richtige der beiden Listen der als “gesehen” markierten Filme identifiziert werden kann, hängt davon ab wie die Information abgelegt ist.

    1 Antwort Letzte Antwort
    • vitussonV Offline
      vitussonV Offline
      vitusson
      schrieb am zuletzt editiert von
      #10

      Ich habe damit noch nicht gearbeitet, aber kann man das nicht mit der portablen Version hinbekommen auf zwei verschieden Systemen zu operieren?

      G 1 Antwort Letzte Antwort
      • G Offline
        G Offline
        Goddert
        antwortete auf vitusson am zuletzt editiert von
        #11

        @vitusson
        Die Portabilitätsfunktion hat nichts mit Betriebssysteminteroperabilität zu tun, sondern sorgt nur dafür, dass du deine Mediathekview mit dir herumtragen kannst und auf einem gleichen Betriebssystem mit deinen zuvor bearbeiteten Daten nutzen kannst.

        @alle
        Also der Lackmustest hat ergeben, dass die “gelesen”-Markierung im File history.txt verzeichnet wird, eins zu eins für jeden als gelesen markierten Film eine Zeile.
        Stellt sich natürlich die Frage warum das mit dem hin- und herschieben von filme.json und history.txt nicht so klappt wie ich das gerne hätte…
        After all, tomorrow is another day

        vitussonV 1 Antwort Letzte Antwort
        • herbivoreH Offline
          herbivoreH Offline
          herbivore
          schrieb am zuletzt editiert von
          #12

          Hallo @Goddert,

          als gelesen werden alle Filme aus der neu einzulesenden Filmliste markiert, die in der Datei filme.json im Einstellungsverzeichnis bereits vorhanden sind. Alle anderen Filme aus der neu einzulesenden Filmliste werden als ungelesen markiert. Das hat mit history.txt nichts (oder höchstens marginal) zu tun. In history.txt sind nur die bereits heruntergeladenen Videos eingetragen.

          Damit die Gelesen-Markierungen stimmen, musst du vor dem Einlesen der neuen Filmliste also darauf achten, dass sich im Einstellungsverzeichnis die jeweils neueste filme.json befindet. Das wäre automatisch der Fall, wenn du (was aus anderen Gründen, wie z.B. einer vollständigen history.txt, nötig ist) immer das gesamte Konfigurationsverzeichnis von dem OS, auf dem du die bisher letzte Filmliste eingelesen hast, auf das OS kopierst, auf dem du die neue Filmliste einlesen willst.

          Das klappt natürlich nur, wenn die Umgebungen auf beiden OS ähnlich genug sind, also insbesondere die Pfade auf beiden Seiten gleich sind. Ist das nicht der Fall, müsste man sich mit einem kleinen Script behelfen, dass nicht nur kopiert, sondern die nötige Anpassungen an den (Pfad-)Einstellungen vornimmt.

          herbivore

          G 1 Antwort Letzte Antwort
          • MenchenSuedM Offline
            MenchenSuedM Offline
            MenchenSued Globaler Moderator
            schrieb am zuletzt editiert von
            #13

            Ergänzen sollte man noch, dass die automatische Aktualisierung nicht aktiv sein darf, denn wenn MV gestartet wird und die filme.json älter als drei Stunden ist, wird sie sofort wieder überschrieben.


            MediathekView 14.3.0 nightly (4.3.2025), Linux Mint 21.3, VLC 3.0.16

            1 Antwort Letzte Antwort
            • vitussonV Offline
              vitussonV Offline
              vitusson
              antwortete auf Goddert am zuletzt editiert von
              #14

              @Goddert sagte in Synchronisation Filmlistestand:

              @vitusson
              Die Portabilitätsfunktion hat nichts mit Betriebssysteminteroperabilität zu tun, sondern sorgt nur dafür, dass du deine Mediathekview mit dir herumtragen kannst und auf einem gleichen Betriebssystem mit deinen zuvor bearbeiteten Daten nutzen kannst.

              Ich weiß durchaus was das heißt, aber Danke für den paternalistischen Ton.

              Das kannst du aber auch für 3 Betriebssysteme auf den Stick packen. Aber wenn du nichts ausprobieren willst, bleib halt bei deinem Dual-Gewurschtel. EOT von mir.

              G 1 Antwort Letzte Antwort
              • G Offline
                G Offline
                Goddert
                antwortete auf vitusson am zuletzt editiert von Goddert
                #15

                @vitusson

                Es war sicherlich nicht meine Absicht in paternlistischem Ton zu schreiben. Wenn das so rübergekommen ist, sorry.

                Du wirst sicher mit mir übereinstimmen, dass es wenig Sinn macht 2 portable Versionen auf einen Stick zu packen, wenn ich an dem jeweiligen Ort immer nur ein Betriebssystem zur Verfügung habe. Ort A: Windows und Ort B: macOS und diese beiden haben unterschiedliche Filmlistenstände. Warum soll ich denn die portable macOS Version zu Ort A hintragen, wenn ich sie nicht nutzen kann. Das ist ja der Grund warum ich das Dual-Gewurschtel brauche …

                1 Antwort Letzte Antwort
                • G Offline
                  G Offline
                  Goddert
                  antwortete auf herbivore am zuletzt editiert von
                  #16

                  @herbivore

                  Dein erster Absatz: (stimme ich grösstenteils überein)
                  Was meinst du mit “heruntergeladenenen Videos”? Per Download/Abspiel-Set heruntergeladene Einträge? Nicht die Option “Film als gesehen markieren”, richtig? Dein: “oder höchstens marginal” war hingegen wichtig 🙂 (siehe unten)

                  Dein zweiter Absatz: (stimme ich grösstenteils überein)
                  Ok, wobei ich gerne das Kopieren des kompletten Verzeichnis vermeiden würde (wegen der vielen potenziellen Fehler und den zu schreibenden Skripten wegen der OS-abhängigen Konfigurationen)

                  Dein dritter Absatz: (Korrekt)

                  Mein Ablauf ist recht einfach: Morgens fahr ich zu Ort A (Windows). filme.json ist vom Abend zuvor unter macOS, ein paar Filme sind als gesehen markiert (wegen Übersicht und aus Desinteresse). Kein Download/Abspielen.
                  Jetzt “synchronisiere” ich die Konfiguration irgendwie (Wunsch…), starte Mediathekview unter Windows und würde gerne dieselbe Filmliste vom Abend zuvor unter macOS sehen mit denselben Filmen als “gesehen” markiert. Irgendwann aktualisiere ich dann die Filmliste, markiere ein paar Filme als “gelesen” und schliesse Mediathekview.
                  Abends fahr dann ich zu Ort B (macOS) und das Spiel beginnt von vorne nur in die andere Richtung.

                  @MenchenSued

                  Korrekt. Ist bei mir immer aus, du kennst mein Internet nicht … tiefstes Land 🙂


                  Wie geschrieben, habe ich einige Tests gemacht.

                  Vorbedingungen:

                  • Blacklist ist ausgeschaltet
                  • Filmliste wird nie automatisch geladen, sondern nur manuell. Vorhandene Filmliste ist nicht notwendigerweise die aktuellste.
                  • mit “gesehen” markieren ist die Benutzung der Kontextmenüoption “Film als gesehen markieren” gemeint.
                  • mit “Download”/“Herunterladen” ist der Start eines Sets zum Abspielen, Downloads etc. gemeint.
                  • Kein Filter ist aktiviert.

                  Test 1:

                  • history.txt gelöscht
                  • film.json vorhanden
                  • Mediathekview gestartet
                  • Mediathekview Interface Filmliste: 0 “gesehene” Filme, xxx Filme ungesehen
                  • Mediathekview Statuszeile: xxx Filme
                  • Mediathekview beendet
                  • History.txt vorhanden (0 Bytes)
                  • filme.json unverändert

                  Test 2:

                  • Mediathekview gestartet
                  • Filmliste heruntergeladen (aktualisiert).
                  • Mediathekview Interface Filmliste: 0 “gesehene” Filme, yyy Filme ungesehen
                  • Mediathekview Statuszeile: yyy Filme
                  • Mediathekview beendet.
                  • History.txt vorhanden (0 Bytes)
                  • filme.json verändert

                  Test 3:

                  • Mediathekview gestartet
                  • Einen Film A im Kontextmenu als gesehen markiert
                  • Mediathekview Interface Filmliste: 1 “gesehenen” Film, yyy-1 Filme ungesehen
                  • Mediathekview Statuszeile: yyy Filme, 0 Download
                  • Mediathekview beendet
                  • history.txt enthält genau eine Zeile mit dem als gesehen markierten Film
                  • filme.json unverändert

                  Test 4:

                  • Mediathekview gestartet
                  • Einen Film B mittels Downloadbutton per Set heruntergeladen
                  • Mediathekview Interface Filmliste: 2 “gesehene” Filme, yyy-2 Filme ungesehen
                  • Mediathekview Statuszeile: yyy Filme
                  • Mediathekview beendet
                  • history.txt enthält genau zwei Zeilen. Eine Zeile mit dem als gesehen markierten Film A und eine zweite - Zeile mit dem “heruntergeladenenen” Film.
                  • filme.json unverändert

                  Test:

                  • filme.json gelöscht
                  • Mediathekview gestartet
                  • Mediathekview Interface Filmliste: 0 “gesehene” Filme, 0 Filme ungesehen
                  • Mediathekview Statuszeile: 0 Filme
                  • Mediathekview beendet

                  Schlussfolgerungen:

                  • Markierung eines Films als “Gesehen” mittels Kontextmenu veranlaßt Mediathekview den Film in history.txt einzutragen.

                  • Der “Download”/“Abspielen” eines Films mittels Set veranlaßt Mediathekview den Film als “Gesehen” zu markieren und ihn in history.txt einzutragen (unabhängig davon, ob er dort schon eingetragen war)

                  • Kleiner aber feiner Unterschied: Ich kann einen Film als “Gesehen markieren” ohne ihn herunterzuladen/abzuspielen. Das macht die Markierung als “Gesehen” atomarer als den Download/das Abspielen mit Set. Wichtig, weil ich in der Regel Filme nicht herunterlade/abspiele sondern als “gesehen” markiere und dieser Status wichtig für mich ist (ich blende “gesehene” Filme normalerweise mittels Filter aus)

                  • Ohne filme.json keine Filme in Mediathekview (ziemlich offensichtlich, schon klar)

                  Nebensächlichkeiten:

                  • Jeder “Download” eines Films erzeugt einen neuen Eintrag des Films in history.txt (auch mehrmals denselben Film)
                  • Das Markieren eines Films als “ungelesen” löscht alle Einträge eines Films in history.txt

                  Die anderen Konfigurationsdateien erfahren keine substanziellen Änderungen. Es sollten folglich filme.json und history.txt reichen, um den Filmlistenstand zu trasferieren. Der Fehler warum es bisher nicht klappte sitzt höchstwahrscheinlich vor dem Schirm.

                  Ich denke wir haben jetzt alle Details. Ich probier weiter aus und berichte dann über das Endergebnis.

                  1 Antwort Letzte Antwort
                  • D Offline
                    D Offline
                    DerReisende77 Entwickler
                    schrieb am zuletzt editiert von
                    #17

                    Um Klarheit für alle Beteiligten zu schaffen:

                    1. Es ist nicht möglich, gemeinsame Konfigurationsdateien für MV Windows und MV macOS zu verwenden.
                    2. history.txt speichert Filme, die gedownloadet wurden ODER “als gesehen” markiert wurden.
                    3. downloadAbos.txt speichert Filme, die über ein Abo geladen wurden.
                    4. der gleichzeitige Betrieb von zwei Instanzen MV wird Chaos und Zerstörung über die Konfiguration bringen

                    Warum ist die gemeinsame abwechselnde Nutzung unter Windows und macOS nicht möglich?
                    history.txt und downloadAbos.txt sind wie die Dateiendung es schon ausdrückt Textdateien. Diese werden je nach Betriebssystem mit einer unterschiedlichen Kodierung abgespeichert. Unter macOS ist es UTF-8 und unter einem deutschen Windows ISO8859-1. Um also diese Dateien abwechselnd verwenden zu können müssten sie jedes Mal korrekt konvertiert werden. Ich könnte MV so umprogrammieren dass diese Dateien nur in einem Format geschrieben werden. Das wird aber die vorhandenen Daten zerstören da man das encoding einer vorhandenen Datei nicht ermitteln sondern nur erraten kann.
                    Nach MV 13.3 steht auf dem Plan, diese Textdateien abzuschaffen und durch eine Datenbank zu ersetzen. Dann hätte sich das Problem mit der Austauschbarkeit erledigt. Dies könnte für 13.4 schon erfolgen.

                    Warum bringt die gleichzeitige Nutzung der Dateien Chaos und Zerstörung über meine Konfigurationsdateien?
                    Derzeit liest MV die o.g. Dateien beim Start in den Speicher und schreibt Änderungen komplett wieder in die Datei. Beim gleichzeitigem Betrieb würde deshalb ein ping pong Effekt entstehen und immer wieder Daten verloren gehen. Weiterhin kann java Dateien nicht zuverlässig sperren so dass im schlimmsten Falle das Windows MV eine halbe Datei liest und die macOS MV Version gerade anfängt die Datei neu zu schreiben. Das Ergebnis ist dann Mist.
                    Aus diesem Grund verweigert MV auch den Start einer zweiten Instanz wenn eine vorhandene erkannt wird.

                    MV ist als single user Programm damals konzipiert worden.

                    HTH

                    Open source developers do NOT have to:

                    • Make your issue a priority, just because you say so.
                    • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                    Check your entitlement. Nobody owes you anything.

                    styrollS 1 Antwort Letzte Antwort
                    • styrollS Offline
                      styrollS Offline
                      styroll
                      antwortete auf DerReisende77 am zuletzt editiert von styroll
                      #18

                      @DerReisende77 sagte: downloadAbos.txt speichert Filme, die über ein Abo geladen wurden.

                      Zumindest zwei Personen in diesem Thread müssten jetzt wieder an Pferde denken…

                      Es erscheinen in diesem File zusätzlich auch Einträge aus Abos, die man gelöscht hat, aber eben nicht die Einträge, die ein Abo gefunden hat…

                      (Kann man alles selber ausprobieren und nachvollziehen – “XMLTXT”-Dateien sind ja ziemlich Klartext, nicht Binäres.)

                      D 2 Antworten Letzte Antwort
                      • D Offline
                        D Offline
                        DerReisende77 Entwickler
                        antwortete auf styroll am zuletzt editiert von
                        #19

                        @styroll Ok du hast Recht, es wird auch ein Abo was manuell aus den Downloads gelöscht wurde dort mit abgelegt. mea culpa. Ist aber auch logisch sonst würde es beim nächsten Start wieder auftauchen.
                        Ansonsten muß ich es nicht ausprobieren, ich kann den Code lesen den ich mit- oder selbst geschrieben habe. Und daher weiß ich auch dass es sich bei beiden genannten Dateien auch nicht um XML sondern um Textdateien handelt…

                        Open source developers do NOT have to:

                        • Make your issue a priority, just because you say so.
                        • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                        Check your entitlement. Nobody owes you anything.

                        styrollS 1 Antwort Letzte Antwort
                        • D Offline
                          D Offline
                          DerReisende77 Entwickler
                          antwortete auf styroll am zuletzt editiert von DerReisende77
                          #20

                          @styroll sagte in Synchronisation Filmlistestand:

                          Es erscheinen in diesem File zusätzlich auch Einträge aus Abos, die man gelöscht hat, aber eben nicht die Einträge, die ein Abo gefunden hat…

                          if (daten.getAboHistoryController().urlPruefen(film.getUrlHistory())) {
                                          // ist schon mal geladen worden
                                          continue;
                                      }
                          

                          Deine Aussage stimmt also so nicht. Kannst Du gerne auch in ListeDownloads.java, Funktion abosSuchen(…) nachlesen (Zeile 337ff im develop branch). getAboHistoryController() ist für downloadAbos.txtzuständig.

                          Ich befürchte jedoch deinen Beitrag beim ersten Mal falsch interpretiert zu haben. In der XML-File (du wirst mediathek.xml meinen) stehen die Abo-Definitionen drin als auch die noch nicht abgearbeiteten Downloads drin.
                          Ist ein Download fertig bzw. gelöscht worden wandert er in history.txt und/oder downloadAbos.txt. Dann ist er auch nicht mehr in mediathek.xmldrin.
                          Und ja, grundsätzlich hast Du Recht mit Deiner Aussage das Downloads, die aus einem Abo-Suchlauf resultieren, nicht in mediathek.xmlauftauchen, da sie nach einer Änderung der Filmliste aktiv neu gesucht werden.

                          Ansonsten sind meine Ausführungen oben korrekt.

                          Open source developers do NOT have to:

                          • Make your issue a priority, just because you say so.
                          • Give you any sort of "timetable", or explanation for why it´s "taking too long".

                          Check your entitlement. Nobody owes you anything.

                          1 Antwort Letzte Antwort
                          • styrollS Offline
                            styrollS Offline
                            styroll
                            antwortete auf DerReisende77 am zuletzt editiert von styroll
                            #21

                            @DerReisende77 sagte: Ok du hast Recht, es wird auch ein Abo was manuell aus den Downloads gelöscht wurde dort mit abgelegt.

                            Sorry, ich hab bloss eine völlig korrekte Aussage (zur Funktion der Datei “downloadAbos.txt”) von dir zitiert, diese noch ergänzt und an zwei andere Personen (vgl. mein entsprechender Link) adressiert. Die Ausssage ging also nicht an dich.

                            Fälschlicherweise habe ich XML statt TXT geschrieben (hab ich korrigiert), was dich verständlicherweise verwirrt hat (es ging also nie um “mediathek.xml”)…

                            1 Antwort Letzte Antwort

                            • 1
                            • 2

                            30

                            Online

                            6.6k

                            Benutzer

                            6.1k

                            Themen

                            39.0k

                            Beiträge
                            • Anmelden

                            • Du hast noch kein Konto? Registrieren

                            • Anmelden oder registrieren, um zu suchen
                            • Erster Beitrag
                              Letzter Beitrag
                            0
                            • Kategorien
                            • Aktuell
                            • Tags
                            • Beliebt
                            • Benutzer
                            • Gruppen