Du bist nicht angemeldet.
Als ich mich gestern mit den Attribut imdb_id im <programme> Container der database_programmes.xml beschäftigt habe, ist mir aufgefallen, dass manche imdb_IDs doppelt drin sind.
Ich habe folgendes TestProgramm erstellt:
imdbNummernTest.cs
using System;
using System.Xml;
using System.Collections.Generic;
namespace imdbNummernTest
{
public class meineIMDBListe
{ public string imdb_ID { get; set; }
public bool zuoft { get; set; }
}
class Program
{
static void Main(string[] args)
{
string xmlFileName1 = "database_programmes.xml";
XmlDocument altXML = new XmlDocument ();
altXML.Load (xmlFileName1);
XmlTextReader reader = new XmlTextReader (xmlFileName1);
int i = 0, j = 0, dopplung = 1; string myTestID = "";
List<meineIMDBListe> _imdb = new List<meineIMDBListe>(); // imdb Liste
// Alle einlesen
while (reader.Read ())
{ if (reader.Name == "programme")
{ if (reader.GetAttribute ("imdb_id") != null)
{ string myIMDB_ID = reader.GetAttribute ("imdb_id");
if (myIMDB_ID != "")
{ _imdb.Add( new meineIMDBListe () { imdb_ID = myIMDB_ID, zuoft=false});
i++;
}
}
}
}
// nach mehrfach Bezeichungen suchen
dopplung = 0;j = 0; int d = 0;
while (j < i)
{ while (dopplung<i)
{ if ((_imdb [dopplung].imdb_ID.Equals (_imdb [j].imdb_ID)) && (dopplung != j))
{
_imdb.Add( new meineIMDBListe () {imdb_ID = _imdb [dopplung].imdb_ID, zuoft=true}); d++;
} dopplung++;
}
j++; dopplung = 0;
}
// Ausgabe
j = 0;
while (j < (i+d)) {
if ((_imdb [j].zuoft == true) && (_imdb [j].imdb_ID != myTestID))
{ Console.WriteLine (" IMDB_ID : {0} zuoft: {1}", _imdb [j].imdb_ID, _imdb [j].zuoft);
myTestID = _imdb [j].imdb_ID;dopplung++;
} j++;
}
// result:
Console.WriteLine ("{0} IMDB# gelesen. {1} IMDB# mehrfach gefunden.", i , dopplung);
}
} // Ende Class Program
} //Ende Namespace
was folgendes ausspuckt:
Nun habe ich folgendes an der xml geändert:
EDIT:
database_programmes.xml
Jedesmal 0.5MB laden war mir zu krass. Sucht Euch die xml Datei selber unter:
https://github.com/TVTower/TVTower/tree/master/res/database/Default
imdbNummernTest.cs bringt nun: 363 IMDB# gelesen. 0 IMDB# mehrfach gefunden.
Ich habe noch drei Fragen, und stell die gleich hier, weil nix Beitag spamen:
1. Irgendwo hab ich gelesen, dass Du (Ronny) alle programm Daten noch sep. in einer SQL Datei hast, ist die aktuell & kann man die irgendwo sehen.
2. Gibt es Restriktionen was den Inhalt von <description> angeht ? Wird das im Spiel nochmal geprüft (Länge des Strings) oder muss man beim Einstellen schon auf irgendwas achten?
3. Wenn man was an der database_programmes verändert wie ist der Weg für alle am besten? Jetzt hab ich 7 imdb_id's 1 land und ein Herstellungsjahr (8 Werte) geändert und oben im Code Block .XML sind 10247 Zeilen. Fühlt sich nicht richtig an.
Beitrag geändert von DannyF (29.04.2017 11:56)
Offline
@ 1.
Nein die ist schon lange nicht mehr aktuell. Kann sie dir aber bereitstellen, wenn ich am PC bin.
@ 2.
Es gibt keine Restriktionen. Was dann grafisch nicht passt (bzw. in den von dadurch festgelegten Textrahmen), wird mit "..." abgewuergt.
Ein Buchstabenlimit hilft nur ungefaehr, da die Schrift ja aenderbar ist...und so Buchstabenweiten nicht klar definiert sind.
@ 3.
Bei github das Projekt forken ... dann an deiner Kopie die Aenderungen durchfuehren und mir per PullRequest andienen. Ich kann dann die Aenderungen uebernehmen.
Ansonsten gaenge auch eine Diff-Datei. Das ist ein spezielles Format, was Aenderungen in Textdateien markiert. Der Codeblock-Tag hier im Forum faerbt dir das auch schoen ein.
Bye
Ron
Offline
Da ich keine Einschränkung der Schauspieler bei der Eigenproduktion entdeckt habe, definiere ich es als Bug:
Drehbuch Engel oder Bengel gekauft -> Einkaufsliste -> Supermarkt.
Da es "zu viele" Schauspieler sind, kann ich nicht alle Positionen besetzen und somit nicht die Einkaufsliste abschließen. Entsprechend kann ich den Film auch nicht produzieren.
Die Anzeige bei der Auswahl ist zu klein. Man sieht, dass man noch etwas einkaufen muss. Es ist aber überschrieben mit den Produktionshinweisen. Hier müsste man noch scrollen können.
V.04.1 vom 17.04.17
Beitrag geändert von TheRob (28.04.2017 21:20)
Offline
Wie gehe ich mit Abweichungen in der Jahres-Zahl in database_programmes.xml gegenüber omdbapi.com vor ?
Ist das kreative Freiheit der Erstellers oder kann das weg?
https://github.com/DerDannyF/CSharp-XML-API/tree/master/1%20omdb%20API%20Jahreszahlen
Offline
Eine Abweichung von 19 oder 29 Jahren wuerde ich kritisch hinterfragen. Abweichungen von <=2 Jahren hingegen koennten kleine Fehler sein. Generell vermute ich, dass jeder eingetragene Film schon irgendwo her "abgelesen" worden ist (Schauspieler, Herkunftsland, Jahr).
Was sagen denn deine Stichproben? Liegt die DB daneben (verglichen mit IDMB und deinem eigenen Wissen) oder liegt sie richtig und die DB-Eintraege sind falsch?
@ TheRob
Ich schaue mal, was sich tun laesst.
bye
Ron
Offline
Fuer einige Filme koennte TheRob vielleicht Hilfe geben ("Gestern gab es Western"). Er hatte da sogar glaube ich schon was dazu gesagt.
Schoen, dass Du dich so in die Themen reinfuchst und Programme zusammenschraubst und die Kalkulationssoftware anwirfst.
bye
Ron
Offline
Ich kann nur zu meinen etwas sagen. Denke es weicht von den anderen Titeln nicht wirklich ab. Wenn man Massen eingibt, dann passieren Tippfehler, Lesefehler und manchmal waren die Daten auch mal anders. Falsche IDs kann man korrigieren und falsche Jahresangaben auch.
Western von Gestern: Das hat mit dem Inhalt zu tun. Das ZDF hat damals (ab 1978) alte Filme der 30er 40er Western auf Serienformat gekürzt und gesendet. Daraus muss man jetzt nicht wirklich eine aktuelle Serie machen. Die BAsis ist dennoch gleich. Entscheidung für das Drehjahr ist also gewünscht gesetzt worden. Denn es ist ein Serie aus der Schwarz-weiß-zeit. Betrifft genauso Riesenstadt. Da gab es die gleich Diskussion. Die genannte Edition ist von ich glaube 2004. Es muss also Drehjahr 2004 sein. Man kann aber auch sagen: Es bleibt ein alter Schinken. Auch wenn es Filmgeschichte ist.
Der Blau Bembelsche ist ähnlich. Er ist genutzt worden um den Reiter Show zu füllen. Und da er sehr wohl ein Originalvorbild hat, hat er eine IMDB. Hier war es einfach: Die Wahrscheinlichkeit, dass jemand noch mehr Folgen Blau Bembelsche erstellt wurde auf Null gesetzt.
Alles was mit Serien zu tun hat, ist imho hinfällig. Ich werde nach der Logik nur Serien mit Fehlern umsetzen. Jede Serie wird trotz ID bei mir genau ein Drehjahr haben. Egal was die Vorlage sagt. Ich mache eine kaufbare Serie. Und somit wird es immer eine reduzierte Version sein.
Offline
TheRob, Danny wollte dir damit nicht auf den Schlipps treten (ein wenig "rechtfertigend" klingt dein Beitrag irgendwie).
Da er sich wohl gerade damit beschaeftigt, die DB automatisiert mit "IMDB/TMDB/..."-Daten zu fuellen/ersetzen, waere es wichtig, dass wir wissen an welcher Stelle eben mit Absicht andere Zahlen eingetragen worden sind. Denn danach richten sich ja oft auch die gegebenen Attribute (Tempo, Kinokasse...).
Wie waere es, wenn wir fuer solche Dinge einen eigenen "Marker" einsetzen. Also sowas wie 'manualData="1"' damit man weiss: diesen Eintrag nicht anfassen, der ist schon so wie er angedacht ist.
Ich lagere diese Diskussion mal aus.
bye
Ron
Offline
Wenn es so klingt, war es nicht so gemeint. Ich habe sehr wohl verstanden, was Danny da gerade leistet. Deswegen wollte ich es so erklären. Ich würde noch nicht einmal den Marker einsetzen. Mal ganz ehrlich; Wem fällt denn im Spiel auf, das Gestern von Western als Serie in Schwarz Weiß ist.
Und bei den Serien ist die Aussage durchaus generell richtig: Wir haben keine Staffel Umsetzung. Deswegen wird die Anfrage immer so laufen.
Mir ist nur sehr wichtig zu erklären, auf welche Daten man trifft. Es gibt immer Gründe und Fehler. Und egal aus welcher Sicht man sich nähert (Automatisierung, neues Feature, erstes Spiel , Balancierung, es wird immer von jeder Seite die Frage geben: Ist das Kunst, oder kann das weg?
Bitte auch meine Antwort genau so verstehen.
Offline
Ich hoffe ja eigentlich, dass sich Danny so reinfuchst, dass er sich auch an einen kleinen Editor wagt (so anfaenglich zur Korrektur bestehender Werbung, Personen, Programme ... also "einfacher" Datenbloecke).
Aber auch so finde ich es schon klasse, was man mit ein wenig Hirnschmalz und Zeit an "Ungereimtheiten" in unserem Datenbestand finden kann
bye
Ron
Offline
Zum Thema: Editor
Jeder von Uns der sich mit den Daten beschäftigt hat irgendeine Lösung für sich gefunden. Bei mir ist es ein kleiner, kostenfreier Editor Namens xed.
Dieser zeigt mir die XML Datei an, ich kann Suchen/Ersetzen/Kopieren/Einfügen uvm...
Um das alles in gleicher Qualität (sonst nutzt es ja niemand) auch zu haben benötigt es schon ne Menge Zeit&Hirnschmalz.
Eine externe App-Lösung ist vergebene Liebesmüh.
Ich sehe zwei Möglichkeiten:
1. Interne Lösung, dazu müßt ich mich vielmehr mit BlitzBasic auseinandersetzen wie bisher
Möglicher Vorteil: Spontane Editierung der Daten.
2. CMS - eine Online Lösung, die eine SQL DB befüllt.
Möglicher Vorteil: Zusammenführen der Daten
zu1) ohne Semikolon - Ich glaube, es hakt
zu2) Ich nehme an, die meisten Spieler haben Lust 0-10 Datensätze zu bearbeiten (Lieblingsfilme/Lieblingsschauspieler/Lieblingsserie). Selten wird es vorkommen dass ein Spieler hunderte von Datensätzen bearbeiten will/wird.
Diese Annahme läßt vermuten dass die CMS Lösung eine Gute ist, wo jeder seine Lieblingslizenen einpflegt und damit eine Gesamtheit eine ordentliche DB zusammenschrauben.
Offensichtliche Probleme wären Anmeldepflicht, Daten.Pflege.Säuberung, rechtliche Verletzungen, Aufwand - Nutzen.
Ich denke in Zukunft ein wenig drauf rum.
Zum Thema: Schlipps treten
Ich hoffe, dass ich das nicht getan habe. Wenn doch, war nicht so gemeint und
ich fühle mich nicht auf den Schlipps getreten.
Offline
Schlips treten: Mir auf jeden Fall nicht. Wenn Du in der DB Ungereimtheiten findest, einfach fragen. Ich bin mir sicher Du entdeckst noch viele. ;-) Gibt wirklich nur bei ein paar Sendungen bewusste Entscheidungen gegen die Realität.
Offline
Unsere südlichen Nachbarn machen Probleme!
Ich dachte ich fange mal mit einer reißerischen Schlagzeile an.
Habe mir die Länderkennungen unter <data "Country"...> durchgeschaut:
Klare Länderkürzel: USA, GB, I, D, J, VRC, DK, POL, F, NL, AUS, BOL, CAN, DDR, CSSR, HUN und UdSSR.
Schreibfehler: SUE muss SWE heißen (oder heißt das SwedenUnionEurope)
Dann die Össis ... Da gab es drei (!!) verschiedene Schreibweisen: A, AT und AUT
es möge einer aus dem Stamm der Österreicher sprechen wie wir zu einem Ergebniss kommen.
Offline
Bzgl.Ländercodes:
Wie wäre es mit dem UN/LOCODE (https://de.wikipedia.org/wiki/ISO-3166-1-Kodierliste)?
Besteht immer aus zwei Buchstaben und umfasst alles von der UN anerkannten Länder (soweit ich das überblicken kann)...
Wäre übrigens für Österreich "AT"...
Beitrag geändert von Glotzer (03.05.2017 17:20)
Offline
UN-Code:
Was machen wir dann mit den Ländern die es nicht mehr gibt (DDR, UdSSR, CSSR)?
Habe mich mom. (kann man noch ändern) auf AUT eingeschossen, da wenn ich Ländercode Östereich "google" dann zeigt er mir das an.
Offline
Eigentlich sind diese Nummern nicht im Einsatz.
Aktuell geht es bis 18. Siehe auch:
https://github.com/TVTower/TVTower/blob/master/source/game.gameconstants.bmx
Hast Du noch Datensätze mit den Nummern gefunden?
Nachtrag: Länder klingt plausibel. Auf jeden Fall ersetzen und vor allem immer Einheitlich. Die alten Länder bei zu behalten macht Sinn. Gehört zur Filmgeschichte. Ich wüsste auch nicht welchem Land man die Filme zu ordnen soll.
Von daher finde ich den Erhalt besser.
Beitrag geändert von TheRob (03.05.2017 21:47)
Offline
UN-Code:
Was machen wir dann mit den Ländern die es nicht mehr gibt (DDR, UdSSR, CSSR)?
Alternativ wäre noch ISO-3166 ALPHA-2 vorhanden; die hat auch die historischen Kürzel wie DD, SU, CS...
Offline
Wie Glotzer schon vorschlug ist ISO-3166 das interessanteste.
Irgendwo hatten wir das uebrigens sogar schon einmal erwaehnt und die Sprachdateien enthalten:
COUNTRYNAME_ISO3166_DE = Deutschland
:-)
@ Sweden
IOC-Country-Codes
SVE (1956 W, 1960 S)
SUE (1968 S)
Quelle: https://de.wikipedia.org/wiki/Liste_der_IOC-L%C3%A4nder-Codes
-> in der Sommerolympiade '68 war also "SUE" die Abkuerzung :-)
bye
Ron
Offline
@Rob / Thema Nummern:
Nein, ich habe keine Datensätze mit anderen Nummern gefunden, die Nummern da habe ich mir selbst "ausgedacht", die sollte auch niemand sehen -> "verdammtes Copy Paste"
Immer wenn ich was rein-bekomme was nicht durch
/*GenreKürzel*/
if (mySubGenre == "Abenteuer") mySubGenre="1";
if (mySubGenre == "Action") mySubGenre="2";
if (mySubGenre == "Animation") mySubGenre="3";
if (mySubGenre == "Krimi") mySubGenre="4";
if (mySubGenre == "Komödie") mySubGenre="5";
if (mySubGenre == "Dokumentation") mySubGenre="6";
if (mySubGenre == "Drama") mySubGenre="7";
if (mySubGenre == "Erotik") mySubGenre="8";
if (mySubGenre == "Kinder-/Familienfilm") mySubGenre="9";
if (mySubGenre == "Fantasy") mySubGenre="10";
if (mySubGenre == "History") mySubGenre="11";
if (mySubGenre == "Horror") mySubGenre="12";
if (mySubGenre == "Monumental") mySubGenre="13";
if (mySubGenre == "Mystery") mySubGenre="14";
if (mySubGenre == "Liebe/Romantik") mySubGenre="15";
if (mySubGenre == "Science-Fiction") mySubGenre="16";
if (mySubGenre == "Thriller") mySubGenre="17";
if (mySubGenre == "Western") mySubGenre="18";
abgedeckt ist bekommt es von mir ne Nummer (lfd. von 19 an).
Nachdem ich ein paar tausend Datensätze eingelesen habe sind die 7 Genres da oben rausgekommen die keine Nummer hatten.
Alpha Zusammenlegung: (sehr kontrovers!)
Doku/Biographie = "6"
Drama/Katastrophen = "7"
Erotik/Sex = "8"
Splatter/Horror = "12
für Amateur, Kampfsport, Krieg, Eastern und Musikfilm habe ich nix gefunden und ignoriere mom. Filme mit diesem Genre.
Offline
Doku und Biografie .... ja und nein.
Ein Biopic kann auch ein Drama sein. Also eine Verfilmte Lebensgeschichte ist etwas anderes, als eine Dokumentation. Dementsprechend waere "Biografie" fuer mich ein Subgenre.
Erotik und Sex: Kann man so sehen, da wir ja eh keine harte Pornografie im Spiel anbieten. Heisst es sind eh "Softsexfilme". Um also die Frauen bei 9 1/2 Wochen mit an den Start zu bekommen, muss es wohl ein Genre-Mix werden: Erotik / Liebesfilm.
Erotik alleine ist eher "maennerdominiert".
Splatter/Horror - ja geht klar.
Amateur: BMovie/Trash
Kampfsport: Action
Krieg: Action, Action/Drama, Action/Historisch ..
Eastern: Action/Komoedie
Musikfilm: Musik ist in der Tat weggefallen - waere zusammen mit "Musicals" moeglich, wuerde ich aber dennoch als "Subgenre" sehen (keine eigene "Schublade"). Grease waere dann also "Liebesfilm/Musik"
Aehnlich kann ja auch mit Eastern und Co vorgegangen werden - solange sich da genuegend Unterschiede in den Zielgruppen von "Hauptgenre" und "neues Subgenre" ergeben.
bye
Ron
Offline
@Ronny: Mom. kämpfe ich - seit 2 Tagen - um jede Sekunde.
Da ich sehr große Mengen Daten (tausende XML Datein) einlese, verarbeite, abspeichere, ist es wichtig welche Schleifen und welche Abzweigungen etc, ich nehme.
Wenn man sich jeden Film für sich anschaut, findet man oft gute Main & Sub-genres Lösungen.
Ich bin mom. auf der Ignorier bzw. "Was nicht passt, wird passend gemacht" Schiene
seit ~8min läuft: 1197Filme dafür 11460*2 API Aufrufe
Jedesmal 'nen dicker String 3-10kb.
Ich muss meine Ignoranzquote auf alle Fälle senken.
Alles in Arbeit.
Offline
Ich hoffe Du cachest die API Aufrufe...
im Zweifelsfall einfach die "Antworten" in Dateien ablegen
-> cache/imdbid123456.requestAll.txt
-> cache/imdbid123456.requestCast.txt
....
Ist die Datei vorhanden, diese nehmen, ansonsten vom Server verlangen, die Cachedatei anlegen und Antwort an das Programm zurueckgeben.
Damit sollte ein Durchlauf in wenigen Sekunden abgearbeitet sein. Du kannst sogar eine Art "Gesamtcache" (mit Arrays) anlegen um die Dateioperationen zu reduzieren, aber das sollte echt nicht noetig sein.
Beim Start des Programmes koennte der "cache-Ordner" nach bestimmten Regeln aufgeraeumt werden (Dateien aelter als X Tage) - oder per "--forceCacheClean" einfach alles wegraeumen ;-)
Edit:
PS: Die Genrezuordnung hat ja nix damit zu tun, ich wollte eher darauf hinweisen, dass bestimmte Genre nur Subgenre sind. Im Programmcode gaebe es also zwei Arrays
NebengenreID HauptgenreID
NebengenreID enthaelt "alle" Genre, Hauptgenre nur die "angezeigten". Damit koenntest Du dann bequem "mappen", was wirklich genutzt wird.
EasternID -> ActionID
usw. usf.
bye
Ron
Offline