Frag mal den Alexander, der betreibt das auch so - bin auch sehr gespannt auf deine Erfahrungen diesbezüglich!
Christian
Frag mal den Alexander, der betreibt das auch so - bin auch sehr gespannt auf deine Erfahrungen diesbezüglich!
Christian
So, mysql läuft, epgd auch, Datenbank wurde angelegt und scraper2vdr liefert erste Bilder. Leider aber nur von Aufnahmen. In der channelmap habe ich drei Kanäle hinterlegt. Die Tabelle events in der DB bleibt aber leer. Benötige ich zwingend das epg2vdr Plugin um epgd mit Events zu füttern?
für DVB EPG ja, aber auch um den VDR mit EPG (gelich welcher Quelle) aus der DB zu versorgen
Christian
Die letzten Postings haben nix mit dem restfulapi-Plugin zu tun, oder? Könnt Ihr das vielleicht in einem anderen Thread diskutieren?
Gruß
hepi
Hallo,
habe gerade ein Problem gefunden und frage euch mal.
In Verbindung mit epgsearch kann man ja über rest auch die searchtimer anzeigen und bearbeiten. Bei searchtimer gibt es einen property "dayofweek" (an welchen Tagen die Suche suchen soll). Der Wert kann zwischen -127 und 6 liegen (z.B. -62 für Mo-Fr). Das Plugin versucht jetzt den Wert als int zu parsen und will per regex nur unsigned werte haben:
diff --git a/tools.cpp b/tools.cpp
index a8a032f..fd7a185 100644
--- a/tools.cpp
+++ b/tools.cpp
@@ -985,7 +985,7 @@ string StringExtension::itostr(int i)
int StringExtension::strtoi(string str)
{
- static cxxtools::Regex regex("[0-9]{1,}");
+ static cxxtools::Regex regex("-?[0-9]{1,}");
if(!regex.match(str)) return -LOWINT; // lowest possible integer
return atoi(str.c_str());
}
Alles anzeigen
Leider reicht das nicht denn der jsonparser mag das Minus auch nicht. Eine Änderung im jsonparser brachte leider keinen Erfolg:
diff --git a/jsonparser.cpp b/jsonparser.cpp
index 3a6b15d..7faf8b1 100644
--- a/jsonparser.cpp
+++ b/jsonparser.cpp
@@ -315,7 +315,7 @@ JsonObject* JsonParser::ParseJsonObject(const char* data, long size, long* posit
break;
}
//go to default if char isn't the QUOTATIONCHAR
- default: if((int)data[*position] >= 48 && (int)data[*position] <= 57)
+ default: if(((int)data[*position] >= 48 && (int)data[*position] <= 57) || (int)data[*position] == 45)
{
item = (JsonBase*)ParseDouble(data, size, position);
} else {
Alles anzeigen
Hat jemand eine Idee?
MfG
Muss ja nicht heissen, das das für restfulapi auch gilt. Probier doch einfach mal aus Werte zwischen 0 und 127 zu verwenden.
Ich würde mal annehmen, das 1 Sonntag bedeuten soll, 2 Montag, 3 Sonntag und Montag usw.
Problem ist nur, dass das restful-plugin z.B. -62 liefert. Wenn ich das json obj im dom rendern lasse und nur einen anderen Wert ändere, bringt der Service mir einen Fehler. Werte größer 6 werden auch nicht angenommen da dann wahrscheinlich die api von epgsearch einen Fehler liefert (getestet aber nicht im code verfolgt).
Kannst du mal die Version aus dem yavdr git ausprobieren?
Ohne es kompiliert zu haben sehe ich im source erstmal keinen Unterschied zu Samans Repo. Problem ist doch, dass das parsen von Integer nur im Bereich >= 0 funktioniert. Komme aus der Java Welt aber auch in C gibt es signed int und wenn die API von epgsearch den Bereich von -127 bis 6 liefert und haben will, sollte man da nicht den Parser anpassen? Gebe ich bei Samans fork einen Wert größer 6 ein, deaktiviert sich die Aufnahmefunktion des Suchtimers.
Hätte ja sein können, das restfulapi das irgendwo übersetzt. Ich kenne den Code des epgsearch service nicht. Im Prinzip sollte es ja reichen, wenn ich ein unsigned int übergebe und das Flag ob ich die Tage nutzen will oder nicht.
Wenn dem nicht so ist, dann sollte die API natürlich angepasst werden.
Übersetzten geht denke schlecht weil 3 und -3 unterschiedlich Zeiträume darstellen. Warum das so ist, könnte man höchsten nachfragen da von 0-127 ja auch alles abgedeckt werden kann. Wird aber sicherlich seinen Grund haben.
Ich habe gerade das Problem mit dem jsonparser mit der Funktion JsonParser::ParseJsonObject. Ich habe gerade Probleme das Minus im switch unter zu kriegen.
ParseDouble... da hätte ich auch mal reinschauen sollen... Danke dir. Jetzt geht es.
diff --git a/jsonparser.cpp b/jsonparser.cpp
index 3a6b15d..b486930 100644
--- a/jsonparser.cpp
+++ b/jsonparser.cpp
@@ -315,7 +315,7 @@ JsonObject* JsonParser::ParseJsonObject(const char* data, long size, long* posit
break;
}
//go to default if char isn't the QUOTATIONCHAR
- default: if((int)data[*position] >= 48 && (int)data[*position] <= 57)
+ default: if((int)data[*position] == 45 || ((int)data[*position] >= 48 && (int)data[*position] <= 57))
{
item = (JsonBase*)ParseDouble(data, size, position);
} else {
@@ -353,7 +353,7 @@ JsonBasicValue* JsonParser::ParseBool(const char* data, long size, long* positio
JsonBasicValue* JsonParser::ParseDouble(const char* data, long size, long* position)
{
ostringstream str;
- while(((data[(*position)] >= 48 && data[(*position)] <= 57) || data[(*position)] == '.') && *position < size) {
+ while(((data[(*position)] >= 48 && data[(*position)] <= 57) || data[(*position)] == 45 || data[(*position)] == '.') && *position < size) {
str << data[(*position)];
(*position)++;
}
diff --git a/tools.cpp b/tools.cpp
index a8a032f..fd7a185 100644
--- a/tools.cpp
+++ b/tools.cpp
@@ -985,7 +985,7 @@ string StringExtension::itostr(int i)
int StringExtension::strtoi(string str)
{
- static cxxtools::Regex regex("[0-9]{1,}");
+ static cxxtools::Regex regex("-?[0-9]{1,}");
if(!regex.match(str)) return -LOWINT; // lowest possible integer
return atoi(str.c_str());
}
Alles anzeigen
Was du vorhin geschrieben hast (0-127) ist im Repo von saman schon behoben. Zumindest zeigt mir ein git diff die Änderung nicht an.
Super. Danke für den Patch.
Ich kann gerade nicht testen, da mal wieder eine Aufnahme läuft... Aber das sieht doch gut aus
Zitat: Was du vorhin geschrieben hast (0-127) ist im Repo von saman schon behoben.
Was meinstn?
Schau dir mal den Link an.
https://github.com/Saman-VDR/v…96eb0b1e16570d11f7250b068
I see.... bau ich mal dazu...
Ich frag mich noch, ob man da Versions Schalter einbauen muss, weil es evtl. mal eine API Änderung bei epgsearch gab.
Weiss da einer was?
Im initial commit von epgsearch am 11.11.2007 ist in der manpage die range von -127 bis 6 schon angegeben.
http://projects.vdr-developer.…e73eb4c376bdbf78ddb65da83
Ist schon eine ganze weile her. Wer so einen alten VDR hat, der benutzt bestimmt auch nicht das restfulapi-plugin.
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!