Warum UNIQUE constraint actor.name in tabelle actor

  • Hinergrund meiner Frage ist das es in Kodi immer wieder einmal zu falschen Zuordnungen kommt. Ein Beispiel:
    Ich habe mehrere Filme des Regisseurs Paul Verhoeven dem niederländischen Regisseur. Dann habe ich noch einen Film des deutschen Regisseurs Paul Verhoeven. In der kodi Datenbank gibt es aber nur einen Paul Verhoeven und das ärgert mich. Also habe ich versucht in actor einen zusätzlichen Paul Verhoeven anzulegen um dann in director link die Zuordnung zu ändern und bin dann auf das constraint gestossen.

    Jetzt frage ich mich wofür dieses constraint gebraucht wird. Braucht es Kodi um die Daten anzeigen zu können (was mich wundern würde dafür gibt es ja ids in den Tabellen um alles zuordnen zu können) oder brauchen das die "alten" Scraper welche die Informalionen über reguläre Ausdrücke einholen wie zum Beispiel der Universal Movie Scraper den ich benutze weil er meines Wissens der einzige Scraper ist der zusätzliche Ratings von tomato und metacritics einholen kann.

    Weil wenn Kodi das constraint nicht braucht würde ich es löschen und dann alle actor,director_link und writer_link löschen und über ein script mit der tmdb api alles neu einlesen.

    Ich hoffe ihr habt gute Nachrichten für mich. Vielen Dank.

    Libreelec Intel-Generic 10.0 mit Kodi 19.3 Matrix auf Intel NUC6CAYH CELERON J3455 4GB RAM SSD 250 GB mit CEC USB-Adapter von Pulse Eight.

    Sources (Musik, Filme usw.) NFS STATIC IP auf QNAP TS-431P 1GB RAM 4x4 TB HD RAID 5

    Monitor/TV Panasonic TX-40EXW604S 40 ZOLL UHD
    skin.aeonmq8(multimod) extendedinfo plugin.library.node.editor plugin.program.super.favourites plugin.video.amazon-test plugin.video.youtube service.tvheadend42

  • Diese Frage stellst du am allerbesten im englisch-sprachigen Kodi Forum oder im IRC im Channel: #kodi-dev

    Das, was du sagst, macht Sinn. Auch der Fakt, dass dieses Constraint vielleicht noch von den alten Scrapern verwendet wird. Zumindest wäre das ein Grund. Beantworten kann ich es dir persönlich nicht. Mir ist aber auch schon aufgefallen, dass es nicht möglich ist 2 unterschiedliche Einträge mit gleichem Namen zu haben.

    Ich weiß jetzt nicht, wie Kodi das intern macht, wenn ich mir über die GUI alle Filme eines Regisseurs anzeigen lassen möchte. Da weiß ich nicht, ob die DB Abfrage nachher via ID oder via String (Name) abgefragt wird. Über die JSON API wird auf jeden Fall die Kodi interne ID des Regisseurs in deiner DB verwendet. Das sind übrigens andere IDs wie bei TMDB. Das gleiche gilt für Schauspieler. Wenn du dir deine MyVideos119.db anschaust, dann wirst du sehen, dass die Actor-ID was Kodi internes ist. Das ist auch nicht konsistend wenn du verschiedene Kodi instanzen mit jeweils eigener DB hast.

    Das ganze wird also ein wenig tricky ;) . Aber vielleicht kannst du einen PR erstellen. Ich würds cool finden ;)

  • Das ging aber schnell.
    1. Hast du vielleicht auf die schnelle einen passenden thread im englisch-sprachigen Kodi Forum zur Hand wo ich meine Anfrage unterbringen könnte?
    2. Ist mir ein bißchen peinlich aber was ist ein PR? Und wie erstelle ich einen solchen? ?(

    Libreelec Intel-Generic 10.0 mit Kodi 19.3 Matrix auf Intel NUC6CAYH CELERON J3455 4GB RAM SSD 250 GB mit CEC USB-Adapter von Pulse Eight.

    Sources (Musik, Filme usw.) NFS STATIC IP auf QNAP TS-431P 1GB RAM 4x4 TB HD RAID 5

    Monitor/TV Panasonic TX-40EXW604S 40 ZOLL UHD
    skin.aeonmq8(multimod) extendedinfo plugin.library.node.editor plugin.program.super.favourites plugin.video.amazon-test plugin.video.youtube service.tvheadend42

  • Ich hatte dich so verstanden, dass du etwas aus dem Kodi Code entfernst, also selbst ein wenig programmieren kannst.

    Ein PR wäre ein "Pull Request" auf GitHub. Also Code, den du gern in den Kodi Code mit einfließen lassen möchtest.

    Nach ein wenig Google lese ich aber, dass sich der "Unique Constraint" wohl nur auf die DB bezieht.

    Jetzt wäre meine Frage, wie möchtest du den denn raus werfen? Vielleicht lernen wir hier alle noch was ;)

  • Ich hatte dich so verstanden, dass du etwas aus dem Kodi Code entfernst, also selbst ein wenig programmieren kannst.

    Ein PR wäre ein "Pull Request" auf GitHub. Also Code, den du gern in den Kodi Code mit einfließen lassen möchtest.

    Nach ein wenig Google lese ich aber, dass sich der "Unique Constraint" wohl nur auf die DB bezieht.

    Jetzt wäre meine Frage, wie möchtest du den denn raus werfen? Vielleicht lernen wir hier alle noch was ;)

    Ich kann ein wenig programmieren andere würden stümpern dazu sagen allerdings nur in Python.
    Das rausschmeißen des constraints ist wirklich kein Hexenwerk: ;)

    SQL
    CREATE TABLE IF NOT EXISTS new_actor (
    	"actor_id"	INTEGER NOT NULL,
    	"name"	TEXT,
    	"art_urls"	TEXT,
    	PRIMARY KEY("actor_id")
    );
    INSERT INTO new_actor SELECT * FROM actor;
    DROP TABLE IF EXISTS actor;
    ALTER TABLE new_actor RENAME TO actor;


    Hat aber leider nur einen Teilerfolg gebracht. Nachdem ich dann um beim Beispiel Paul Verhoeven zu bleiben einen zusätzlichen Paul Verhoeven in actor angelegt habe und die Zuordnungen in director_link und writer_link geändert habe werden im Node Director auch 2 Paul Verhoeven mit ihren jeweiligen Filmen angezeigt. Wenn ich aber in der DialogVideoInfo.xml den Button "Filme des Regisseurs anzeigen" nutze dann werden wieder alle Filme der 2 Regisseure angezeigt. Es scheint also so zu sein das da doch über den Namen und nicht über die ID gegangen wird. Allerdings ist mir schleierhaft das Kodi da nicht ins stolpern gerät weil der Name ja 2 mal vorhanden ist.
    Aber gut es ist spät geworden vielleicht hab ich irgendwas übersehen und zum lernen von C bzw. C+ um einen PR zu erstellen ist Morgen immer noch Zeit. :sleeping:

    Libreelec Intel-Generic 10.0 mit Kodi 19.3 Matrix auf Intel NUC6CAYH CELERON J3455 4GB RAM SSD 250 GB mit CEC USB-Adapter von Pulse Eight.

    Sources (Musik, Filme usw.) NFS STATIC IP auf QNAP TS-431P 1GB RAM 4x4 TB HD RAID 5

    Monitor/TV Panasonic TX-40EXW604S 40 ZOLL UHD
    skin.aeonmq8(multimod) extendedinfo plugin.library.node.editor plugin.program.super.favourites plugin.video.amazon-test plugin.video.youtube service.tvheadend42

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!