Beiträge von JakeB

    Eine Möglichkeit wäre die Datenbank anzupassen.
    Vorher zur Sicherheit ein Backup der Movie Datenbank (MyVideos<number>.db) anlegen.

    Movie Datenbank mit z.B. 'DB Browser for SQLite' öffnen und überprüfen was in der Tabelle 'genre' vorhanden ist.
    Folgenden Befehl (z.B. Komödie -> Comedy) könnte man dann ausführen.

    SQL
    UPDATE genre SET name = 'Comedy' WHERE name = 'Komödie';

    Danach erstmal überprüfen ob es funktioniert.

    Ob das jetzt eine einfache Möglichkeit ist, steht auf einem anderen Blatt. :whistling:

    Na schön,... die Pierre Richard Movie Experten sind vermutlich schon alle in Ischgl und genießen ihren Skiurlaub. :rolleyes:

    Der Film heißt:
    Original title: "Je suis timide... mais je me soigne"
    World-wide (English title): "I'm Shy, But I'll Heal"
    East Germany: "Ich bin schüchtern, aber in Behandlung"
    West Germany: "Und jetzt das Ganze nochmal von vorn"
    ... von 1978.

    Dann wer immer mag... *P

    Gibt es diese Ansicht in ähnlicher Form in anderen Skins?

    Skin: Transparency! | Ansicht: Seite (view: slide)

    Was ich bisher in anderen Skins gesehen hab und was mich nervt:
    - Poster relativ groß und verdecken so unnötig die fanart im Hintergrund
    - Poster werden links und rechts animiert, wenn man durch die Bibliothek scrollt. Das erschwert ungemein die Suche nach bestimmten Filmen.

    Hallo @agarnele,

    Zitat von agarnele

    Wie kann ich die weißen FSK flags in farbige wechseln?

    Code-Änderungen für farbige FSK Logos: FSK Angabe
    Sind nur ein paar Zeilen nicht allzu aufwendig. Neue FSK-logos/flags sind nicht notwendig. Den vorhandenen FSK-logos wird einfach eine Farbe zugewiesen.
    Man könnte diese Änderungen dann in einen Skin einbauen der Matrix kompatibel ist (falls dieser Skin von Haus aus keine farbigen FSK Logos bietet).


    Zitat von agarnele

    Wie kann ich die weißen Studio flags in farbige wechseln?

    Add-on 'Studio Icons - Coloured' installieren. Danach den code anpassen (nur eine Zeile ändern).
    Wenn der Matrix kompatible Skin das allerdings schon von selbst bietet, kann man sich das sparen.


    Zitat von agarnele

    ... wie ein anständiges 4K cover?

    'kaffepausse71' hat das hier (Beitrag: #25): 3D-Blu-ray- und 4K-case/flag
    ... sehr gut umgesetzt. Wie schon 'DaVu' schrieb, kann man das z.B. mit Gimp erstellen.


    Habe jetzt zum ersten Mal gelesen das Transparency nicht mehr weiterentwickelt wird und war ziemlich geschockt. ;(
    Über die Jahre habe ich hier viele Anpassungen vorgenommen.

    Ich LIEBE die Ansicht 'Seite' (englisch: Slide). Kennt jemand einen Matrix kompatiblen Skin der eine ähnliche Ansicht bietet?

    @DaVu: Kannst du vielleicht abschätzen wie groß die Wahrscheinlichkeit ist, dass jemand Transparency weiterentwickelt?

    Hallo,

    wüsste nicht, dass man da (advanced.xml) was anlegen müsste.

    z.B.:
    1. default Profil (Master) - zwei Quellen:
    - Filme (FSK 0 bis FSK 12)
    - Filme (FSK 16 + FSK 18)

    2. Profil Kids - eine Quelle:
    - Filme (FSK 0 bis FSK 12)

    Dann werden für jedes Profil die Inhalte angelegt. Fertig.
    Jedes Profil hat seine eigene Datenbank.

    Wenn du aber mit den Kids via "Profil Kids" einen Film kuckst, ist er im "default Profil" natürlich als "ungesehen" markiert.

    MfG

    Zitat von ai5g

    - Reicht es aus, die Pfade in der neuesten Version zu ändern?

    Ja. Kodi greift nur noch auf die neuste Version zurück, in deinem Bsp. wäre das MyVideos116.db.


    Zitat von ai5g

    - Kann ich die alten Versionen (MyVideos93.db etc.) löschen?

    Ja. Im Moment fällt mir nichts ein, indem man auf die alten Datenbanken (z.B. via DB Viewer) nochmal zurückgreifen würde.
    But ... never say never.

    MfG

    Hallo Marky,

    dateAdded für playCount IS NULL ... kein Problem.


    dateAdded aus einer alten Kodi-Datenbank auf die neue Kodi-Datenbank übertragen (für playCount IS NULL)

    1.0 Suche nach Filmen mit playCount IS NULL in der Bibliothek (Datenbank: MyVideos<number>old1.db):

    SQL
    SELECT
     m.c00, -- Filmtitel
     m.premiered, -- Jahr 
     f.dateAdded
     FROM movie m, files f
     WHERE m.idFile = f.idFile
     AND f.playCount IS NULL
     ORDER BY m.c00, m.premiered;


    Find what:
    .* VALUES \('(.*)', '(.*)', '(.*)'\);

    Replace with:

    SQL
    UPDATE files SET dateAdded = '\3' WHERE idFile IN \(SELECT idFile FROM movie WHERE c00 = "\1" AND premiered = '\2'\);

    2.0 Suche nach Serienepisoden mit playCount IS NULL in der Bibliothek (Datenbank: MyVideos<number>old1.db):
    Wichtig: 'Episodentitel' und 'First Aired' MUSS immer vorhanden sein!

    SQL
    SELECT 
     e.c00, -- Episodentitel
     e.c05, -- First Aired 
     f.dateAdded
     FROM episode e, files f
     WHERE e.idFile = f.idFile  
     AND f.playCount IS NULL
     ORDER BY e.c00, e.c05


    Find what: das selbe wie in 1.0

    Replace with:

    SQL
    UPDATE files SET dateAdded = '\3'  WHERE idFile IN \(SELECT idFile FROM episode WHERE c00 = "\1" AND c05 = '\2'\);


    Hinweis:
    Das Feld playCount MUSS bei der Suche 'NULL' sein. DB Browser > Tabelle files > der hellgraue Wert 'NULL' muss vorhanden sein
    Hatte früher mal das Problem, dass ein Update denn playCount auf leer setzte. Habe mich dann gewundert warum mein UPDATE script nicht mehr funktioniert.
    Das Problem war der fehlende Wert 'NULL'. Lässt sich aber wieder korrigieren.

    MfG

    Hallo Marky,

    doppelte Episodentitel stellen kein Problem dar, wenn First Aired unterschiedlich ist. Im Prinzip sollte das eigentlich so sein.
    Ein Update wird nur durchgeführt, wenn 'Episodentitel' und 'First Aired' übereinstimmen.

    Wie schon geschrieben:
    Wichtig: 'Episodentitel' und 'First Aired' MUSS immer vorhanden sein!

    Mit dem folgenden SQL statement kann man sich für Serien alle doppelten Episoden + First Aired anzeigen lassen:

    SQL
    SELECT 
     t.c00 AS Serie,
     e.c00 AS Episodentitel,
     e.c05 AS First_Aired
     FROM episode e, tvshow t
     WHERE e.idShow = t.idShow
     AND (e.c00, e.c05) IN (SELECT e.c00, e.c05 FROM episode e GROUP BY e.c00, e.c05 HAVING COUNT(e.c00) > 1)
     ORDER BY t.c00, e.c12, e.c13;


    Deine Frage zu "dateAdded" verstehe ich noch nicht ganz.
    Wie man im UPDATE script für Filme und Serien sehen kann, wird "dateAdded" auch für die neue Datenbank aktualisiert.

    MfG

    Hallo Shuddery,

    man könnte alles (Filme, Serien und Dateien) auf einmal machen, aber wenn DVDs-/Blu-rays mit Ordnerstruktur vorhanden sind, funktioniert es nicht.
    Wer nur eindeutige Dateinamen (files.strFilename) hat, kann alles in einem Rutsch machen.

    Das Überschreiben von playCount, lastPlayed und dateAdded habe ich schon mit Marky geklärt. Das wichtigste ist der playcount > 0.
    Falls z.B. playCount=3 mit playCount=1 überschrieben wird -> kein Problem

    Den Hinweis, dass man zur Sicherheit nur auf einer Kopie der Datenbank arbeiten soll, habe ich von der alten Anleitung nochmal in die neue kopiert.
    Man kann das gar nicht oft genug sagen/schreiben.

    MfG

    Hallo @marky0736,

    @Shuddery:
    Vielen Dank für die Unterstützung!
    Das Suchergebnis 'Als SQL kopieren' und via RegExp in Notepad++ zu bearbeiten ist genial ... und ich habe mich damals mit dem csv zu xls Export rumgeschlagen. :wacko:

    Vielleicht gibt es in phpMyAdmin ein tab 'SQL' für die Tabelle 'movie'. Hier müsste die korrekte SQL Syntax:

    Code
    CREATE TABLE "movie" ( 
    ...
    );

    ... stehen. Wie auch immer eine Lösung würde man sicherlich irgendwann finden, aber das spielt ja jetzt zum Glück keine Rolle mehr.


    Watched-Flags aus einer alten Kodi-Datenbank auf die neue Kodi-Datenbank übertragen

    Was machen die UPDATE scripts:
    - wenn Filmtitel + Jahr übereinstimmen erfolgt ein Update
    - wenn Episodentitel + First Aired übereinstimmen erfolgt ein Update
    - wenn Dateiname (Dateimodus) übereinstimmt erfolgt ein Update

    - drei Einträge werden in der Tabelle files aktualisiert:
    -- gesehen (playCount)
    -- wann zuletzt abgespielt (lastPlayed)
    -- wann hinzugefügt (dateAdded) ... dateAdded IS NULL bei Dateiname

    Vorbedingungen:
    Um die Kodi-Datenbank zu bearbeiten benötigen wir einen DB-Editor (z.B. 'DB Browser for SQLite'): siehe link im Beitrag #9

    Wichtig: Mit dem DB-Editor arbeiten wir zur Sicherheit NUR auf Kopien.

    zum Beispiel:

    Code
    alte Datenbank | neue Datenbank | Name der Kopie
    ----------------------------------------------------
    MyVideos116.db | -              | MyVideos116old1.db
    MyVideos116.db | -              | MyVideos116old2.db
    MyVideos116.db | -              | MyVideos116old3.db
    -              | MyVideos116.db | MyVideos116new.db

    1.0 Suche nach Filmen mit playCount>=0 in der Bibliothek (Datenbank: MyVideos<number>old1.db):

    SQL
    SELECT
     m.c00, -- Filmtitel
     m.premiered, -- Jahr 
     f.playCount,
     f.lastPlayed,
     f.dateAdded
     FROM movie m, files f
     WHERE m.idFile = f.idFile
     AND f.playCount IS NOT NULL
     ORDER BY m.c00;


    1.1 Das komplette Suchergebnis 'Als SQL kopieren' und in der Datei 'old-1_movie.sql' abspeichern.

    1.2 Die Datei 'old-1_movie.sql' mit Notepad++ öffnen:
    Search > Replace...
    Find what:

    Code
    .* VALUES \('(.*)', '(.*)', '(.*)', '(.*)', '(.*)'\);


    Replace with:

    SQL
    UPDATE files SET playCount = '\3', lastPlayed = '\4', dateAdded = '\5' WHERE idFile IN \(SELECT idFile FROM movie WHERE c00 = "\1" AND premiered = '\2'\);

    Regular expression [x]

    Das Ergebnis sollte dann so aussehen:

    SQL
    UPDATE files SET playCount = '1', lastPlayed = 'YYYY-MM-DD hh:mm:ss', dateAdded = 'YYYY-MM-DD hh:mm:ss' WHERE idFile IN (SELECT idFile FROM movie WHERE c00 = "Filmtitel-1" AND premiered = 'YYYY');
    UPDATE files SET playCount = '1', lastPlayed = 'YYYY-MM-DD hh:mm:ss', dateAdded = 'YYYY-MM-DD hh:mm:ss' WHERE idFile IN (SELECT idFile FROM movie WHERE c00 = "Filmtitel-2" AND premiered = 'YYYY');
    usw.

    2.0 Suche nach Serienepisoden mit playCount>=0 in der Bibliothek (Datenbank: MyVideos<number>old1.db):

    Doppelte Einträge sollten nicht vorhanden sein. Zur Sicherheit überprüfen mit:

    SQL
    SELECT e.c00, e.c05, COUNT(e.c00) AS Wie_oft_doppelt
     FROM episode e
     GROUP BY e.c00
     HAVING (COUNT(e.c00) > 1);


    Wichtig: 'Episodentitel' und 'First Aired' MUSS immer vorhanden sein!

    SQL
    SELECT 
     e.c00, -- Episodentitel
     e.c05, -- First Aired
     f.playCount,
     f.lastPlayed,
     f.dateAdded
     FROM episode e, files f
     WHERE e.idFile = f.idFile  
     AND f.playCount IS NOT NULL
     ORDER BY e.c00, e.c05;


    2.1 Das komplette Suchergebnis 'Als SQL kopieren' und in der Datei 'old-1_episode.sql' abspeichern.

    2.2 Die Datei 'old-1_episode.sql' mit Notepad++ öffnen:
    Search > Replace...
    Find what: <das selbe wie in 1.2>

    Replace with:

    SQL
    UPDATE files SET playCount = '\3', lastPlayed = '\4', dateAdded = '\5'  WHERE idFile IN \(SELECT idFile FROM episode WHERE c00 = "\1" AND c05 = '\2'\);

    Regular expression [x]


    3.0 Suche nach Videos mit playCount>=0 im Dateimodus (Datenbank: MyVideos<number>old1.db):

    Hier ist mir aufgefallen, wenn Videos aus einer Dateimodus-Quelle gelöscht werden, stehen sie immer noch in der Tabelle files.

    Zuerst benötigen wir noch die path.idPath:
    z.B. deine Quelle: smb://MEDIASERVER/Dokus/ -> 'Dokus'

    SQL
    SELECT idPath, strPath FROM path
     WHERE strPath LIKE '%Dokus%' OR strPath LIKE '%Konzerte%';
    SQL
    SELECT 
     f.strFilename, -- Videodateiname
     f.playCount,
     f.lastPlayed
    -- f.dateAdded -- dateAdded gibt es im Dateimodus nicht
     FROM path p, files f
     WHERE p.idPath = f.idPath
     AND p.idPath IN (<number>) -- Hier muss deine path.idPath der Dateimodus-Quelle(n) stehen!
     AND f.playCount IS NOT NULL
     ORDER BY f.strFilename;


    Wenn es z.B. zwei Pfade/Quellen für deinen Dateimodus gibt, müsste es so aussehen:

    Code
    ...
     AND p.idPath IN (<number>, <number>)
     ...


    3.1 Das komplette Suchergebnis 'Als SQL kopieren' und in der Datei 'old-1_Dateimodus.sql' abspeichern.

    3.2 Die Datei 'old-1_Dateimodus.sql' mit Notepad++ öffnen:
    Search > Replace...
    Find what:

    Code
    .* VALUES \('(.*)', '(.*)', '(.*)'\);


    Replace with:

    SQL
    UPDATE files SET playCount = '\2', lastPlayed = '\3'  WHERE idFile IN \(SELECT idFile FROM files WHERE strFilename = '\1'\);

    Regular expression [x]


    4.0 Den Inhalt oder die Dateien 'old-1_movie.sql', 'old-1_episode.sql' und 'old-1_Dateimodus.sql' in der MariaDB laufen lassen.

    Damit wäre das erste Update für:
    - MyVideos<number>old1.db -> MyVideos<number>new.db
    ... fertig. [pr02]

    MfG

    Hallo @Shuddery,

    mir ist gerade beim Testen aufgefallen, dass der Replace Befehl in Notepad++ nicht ganz sauber durchläuft.

    z.B.

    SQL
    SELECT
     m.c00, -- Filmtitel
     m.premiered, -- Jahr 
     f.playCount,
     f.lastPlayed,
     f.dateAdded
     FROM movie m, files f
     WHERE m.idFile = f.idFile
     AND f.playCount IS NOT NULL
     ORDER BY m.c00;


    Find what:

    Code
    .* VALUES \('(.*)', '(.*)', '(.*)', '(.*)', '(.*)'\);


    Replace with:

    SQL
    UPDATE files SET playCount = '\3', lastPlayed = '\4', dateAdded = '\5' WHERE idFile IN (SELECT idFile FROM movie WHERE c00 = "\1" AND premiered = '\2');


    Ergebnis:

    SQL
    UPDATE files SET playCount = '1', lastPlayed = 'YYYY-MM-DD hh:mm:ss', dateAdded = 'YYYY-MM-DD hh:mm:ss' WHERE idFile IN SELECT idFile FROM movie WHERE c00 = "Film_xyz" AND premiered = 'YYYY';

    Er löscht die Klammern um das SELECT statement. Kann man da was machen?

    Falls nicht, könnte man zur Not: ...
    - Ersetze 'SELECT' mit '(SELECT'
    - Ersetze ';' mit ');'
    ... ausführen.

    MfG