epgd / epg2vdr / scraper2vdr

  • Hallo zusammen,


    der hier epgd Release angekündigte Release ist jetzt, auch wenn sicher noch nicht alles 100% rund ist, als erste finale Version mit Web Frontend fertig.


    Wir haben ihn von http Zweig des git nach 'master' umgezogen - davon sind alle drei Komponenten (epgd / epg2vdr / scraper2vdr) betroffen. Hinweise zur Installation findet ihr im oben verlinkten Post.


    Viele Grüße
    Jörg

  • hallo,


    neuerdings bekomme ich folgendes Problem

    Code
    1. Jul 4 21:40:21 datenserver epghttpd: Calling mysql_init(12525)
    2. Jul 4 21:40:21 datenserver epghttpd: Error: Start of http server failed 'Address already in use'
    3. Jul 4 21:40:21 datenserver epghttpd: Closing mysql connection and calling mysql_thread_end(12525)
    4. Jul 4 21:40:21 datenserver epghttpd: Closing mysql connection and calling mysql_thread_end(12525)
    5. Jul 4 21:40:21 datenserver epghttpd: Info: Released the last usage of mysql_lib, calling mysql_library_end() now
    6. Jul 4 21:40:21 datenserver kernel: [10586.841857] init: httpd main process (12525) terminated with status 1

    VDR 3: ASUS AT3IONT-I Deluxe , Cine S2, Atric , Harmony 515 (schon wieder im Umbau)
    VDR 4: AMD Kabini 5310, Asrock AM1H-ITX, Gen2Vdr V6, Cine S2, Atric , Harmony 515 , Streacom ST-F7CB EVO

  • welchen port hast du konfiguriert, oder verwendest du den default?
    entweder lauscht schon ein anderer Dienst auf diesem Port oder es läuft noch eine Instanz des epghttpd


    Soe siehst du wer auf dem Port lauscht:

    Code
    1. netstat -nap | grep 9999


    9999 ist der default port, ggf anpassen


    Jörg

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von horchi ()

  • Bei mir geht ein Compile schief:


    (cd lib && make lib)
    make[1]: Entering directory '/backup/privat/tv/dvb/tools/vdr-epg-daemon/lib'
    make[1]: Nothing to be done for 'lib'.
    make[1]: Leaving directory '/backup/privat/tv/dvb/tools/vdr-epg-daemon/lib'
    for i in `ls ./PLUGINS | grep -v '[^a-z0-9]'`; do\
    if grep -q "PLUGIN.*=" "./PLUGINS/$i/Makefile"; then\
    make --no-print-directory -C "./PLUGINS/$i";\
    fi;\
    done;
    make[1]: Nothing to be done for 'all'.
    g++ -c -ggdb -fno-stack-protector -O0 -fPIC -Wextra -Wno-unused-parameter -Wreturn-type -Wall -Wno-parentheses -Wformat -pedantic -Wunused-variable -Wunused-label -Werror=format-security -Wparentheses -Wunused-value -Wunused-function -Wno-long-long -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -I../.. -Wno-long-long -D_GNU_SOURCE -DBINDEST='"/usr/local/bin"' -DTARGET='""' -DLOG_PREFIX='""' -DPLGDIR='"/usr/local/lib/epgd/plugins"' -DUSEUUID -DUSEMD5 -DUSELIBXML -DUSELIBARCHIVE -DUSEJSON -DUSEGUNZIP -I/usr/include/libxml2 -I/usr/include/libxml2 -I/usr/include/python2.7 -I/usr/include/python2.7 -o tvm.o tvm.c
    In file included from tvm.c:11:0:
    tvm.h: In member function ‘std::string Field::getXmlString()’:
    tvm.h:94:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
    for (int i = 0; i < stringContent.size(); i++)
    ^
    tvm.c: In member function ‘virtual int Tvm2::initDb()’:
    tvm.c:60:56: error: ‘cTableEvents’ has not been declared
    valueFileRef = new cDbValue(obj->eventsDb->getField(cTableEvents::fiFileRef));
    ^
    tvm.c:64:30: error: ‘cTableEvents’ has not been declared
    stmtSetDelByFileref->bind(cTableEvents::fiDelFlg, cDbService::bndIn |cDbService:: bndSet);
    ^
    tvm.c:65:30: error: ‘cTableEvents’ has not been declared
    stmtSetDelByFileref->bind(cTableEvents::fiUpdFlg, cDbService::bndIn |cDbService:: bndSet, ", ");
    ^
    tvm.c:66:30: error: ‘cTableEvents’ has not been declared
    stmtSetDelByFileref->bind(cTableEvents::fiFileRef, cDbService::bndIn | cDbService::bndSet, ", ");
    ^
    tvm.c:67:30: error: ‘cTableEvents’ has not been declared
    stmtSetDelByFileref->bind(cTableEvents::fiUpdSp, cDbService::bndIn | cDbService::bndSet, ", ");
    ^
    tvm.c:70:30: error: ‘cTableEvents’ has not been declared
    stmtSetDelByFileref->bind(cTableEvents::fiSource, cDbService::bndIn | cDbService::bndSet, " and ");
    ^
    tvm.c:82:19: error: ‘cTableChannelMap’ has not been declared
    selectId->bind(cTableChannelMap::fiChannelId, cDBS::bndOut);
    ^
    tvm.c:83:19: error: ‘cTableChannelMap’ has not been declared
    selectId->bind(cTableChannelMap::fiMergeSp, cDBS::bndOut, ", ");
    ^
    tvm.c:84:19: error: ‘cTableChannelMap’ has not been declared
    selectId->bind(cTableChannelMap::fiMerge, cDBS::bndOut, ", ");
    ^
    tvm.c:86:19: error: ‘cTableChannelMap’ has not been declared
    selectId->bind(cTableChannelMap::fiSource, cDBS::bndIn | cDBS::bndSet);
    ^
    tvm.c:87:19: error: ‘cTableChannelMap’ has not been declared
    selectId->bind(cTableChannelMap::fiExternalId, cDBS::bndIn | cDBS::bndSet, " and ");
    ^
    tvm.c:97:29: error: ‘cTableChannelMap’ has not been declared
    selectDistBySource->bind(cTableChannelMap::fiExternalId, cDBS::bndOut, "distinct ");
    ^
    tvm.c:99:29: error: ‘cTableChannelMap’ has not been declared
    selectDistBySource->bind(cTableChannelMap::fiSource, cDBS::bndIn | cDBS::bndSet);
    ^
    tvm.c: In member function ‘virtual int Tvm2::processDay(int, int, Statistic*)’:
    tvm.c:180:25: error: ‘cTableChannelMap’ has not been declared
    obj->mapDb->setValue(cTableChannelMap::fiSource, getSource());
    ^
    tvm.c:185:52: error: ‘cTableChannelMap’ has not been declared
    char* extid = strdup(obj->mapDb->getStrValue(cTableChannelMap::fiExternalId));
    ^
    tvm.c:201:29: error: ‘cTableFileRefs’ has not been declared
    obj->fileDb->setValue(cTableFileRefs::fiName, filename);
    ^
    tvm.c:202:29: error: ‘cTableFileRefs’ has not been declared
    obj->fileDb->setValue(cTableFileRefs::fiSource, getSource());
    ^
    tvm.c:229:42: error: ‘cTableFileRefs’ has not been declared
    if (found && obj->fileDb->hasValue(cTableFileRefs::fiFileRef, fileRef))
    ^
    tvm.c:276:63: error: ‘cTableFileRefs’ has not been declared
    asprintf(&fileRef, "%s-%s", obj->fileDb->getStrValue(cTableFileRefs::fiName), data.tag);
    ^
    tvm.c:295:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiDelFlg, "Y");
    ^
    tvm.c:296:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiUpdFlg, "D");
    ^
    tvm.c:297:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiFileRef, fileRef); // new fileref
    ^
    tvm.c:298:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiUpdSp, time(0));
    ^
    tvm.c:299:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiSource, getSource());
    ^
    tvm.c:300:64: error: ‘cTableFileRefs’ has not been declared
    valueFileRef->setValue(obj->fileDb->getStrValue(cTableFileRefs::fiFileRef)); // old fileref
    ^
    tvm.c:306:35: error: ‘cTableFileRefs’ has not been declared
    obj->fileDb->setValue(cTableFileRefs::fiExternalId, extid);
    ^
    tvm.c:307:35: error: ‘cTableFileRefs’ has not been declared
    obj->fileDb->setValue(cTableFileRefs::fiTag, data.tag);
    ^
    tvm.c:308:35: error: ‘cTableFileRefs’ has not been declared
    obj->fileDb->setValue(cTableFileRefs::fiFileRef, fileRef);
    ^
    tvm.c: In member function ‘int Tvm2::processFile(const char*, MemoryStruct*, const char*)’:
    tvm.c:355:23: error: ‘EPG2VDRConfig’ was not declared in this scope
    password, EPG2VDRConfig.cachePath, getSource(),
    ^
    tvm.c:392:25: error: ‘cTableChannelMap’ has not been declared
    obj->mapDb->setValue(cTableChannelMap::fiExternalId, extid);
    ^
    tvm.c:393:25: error: ‘cTableChannelMap’ has not been declared
    obj->mapDb->setValue(cTableChannelMap::fiSource, getSource());
    ^
    tvm.c:397:55: error: ‘cTableChannelMap’ has not been declared
    const char* channelId = obj->mapDb->getStrValue(cTableChannelMap::fiChannelId);
    ^
    tvm.c:425:34: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiEventId, id);
    ^
    tvm.c:426:34: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiChannelId, channelId);
    ^
    tvm.c:430:34: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiSource, getSource());
    ^
    tvm.c:431:34: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiFileRef, fileRef);
    ^
    tvm.c:439:37: error: ‘cTableEvents’ has not been declared
    if (!obj->eventsDb->isNull(cTableEvents::fiTitle))
    ^
    tvm.c:441:47: error: ‘cTableEvents’ has not been declared
    comp = obj->eventsDb->getStrValue(cTableEvents::fiTitle);
    ^
    tvm.c:443:37: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiCompTitle, comp.c_str());
    ^
    tvm.c:446:37: error: ‘cTableEvents’ has not been declared
    if (!obj->eventsDb->isNull(cTableEvents::fiShortText))
    ^
    tvm.c:448:47: error: ‘cTableEvents’ has not been declared
    comp = obj->eventsDb->getStrValue(cTableEvents::fiShortText);
    ^
    tvm.c:450:37: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiCompShortText, comp.c_str());
    ^
    tvm.c:459:54: error: ‘cTableChannelMap’ has not been declared
    time_t mergesp = obj->mapDb->getIntValue(cTableChannelMap::fiMergeSp);
    ^
    tvm.c:460:57: error: ‘cTableEvents’ has not been declared
    long starttime = obj->eventsDb->getIntValue(cTableEvents::fiStartTime);
    ^
    tvm.c:461:49: error: ‘cTableChannelMap’ has not been declared
    int merge = obj->mapDb->getIntValue(cTableChannelMap::fiMerge);
    ^
    tvm.c:463:37: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiVersion, 0xFF);
    ^
    tvm.c:464:37: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiTableId, 0L);
    ^
    tvm.c:465:37: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiUseId, 0L);
    ^
    tvm.c:468:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiUpdFlg, "I");
    ^
    tvm.c:470:40: error: ‘cTableEvents’ has not been declared
    obj->eventsDb->setValue(cTableEvents::fiUpdFlg, merge > 1 ? "S" : "A");
    ^
    tvm.c: In member function ‘int Tvm2::downloadImageFile(const char*)’:
    tvm.c:525:23: error: ‘EPG2VDRConfig’ was not declared in this scope
    password, EPG2VDRConfig.cachePath, getSource(),
    ^
    tvm.c: In member function ‘virtual int Tvm2::getPicture(const char*, const char*, MemoryStruct*)’:
    tvm.c:556:31: error: ‘EPG2VDRConfig’ was not declared in this scope
    asprintf(&tmp, "%s/%s/%s", EPG2VDRConfig.cachePath, getSource(), imagename);
    ^
    tvm.c: In member function ‘int Tvm2::createXml(const char*, MemoryStruct*)’:
    tvm.c:584:45: error: ‘EPG2VDRConfig’ was not declared in this scope
    asprintf(&filename, "/%s/%s/%s.tv%d", EPG2VDRConfig.cachePath, getSource(), extid, num+1);
    ^
    tvm.c:588:73: warning: ISO C++98 does not support the ‘%m’ gnu_printf format [-Wformat=]
    tell(0, "Error: Opening '%s' failed, status was '%m'", filename);
    ^
    tvm.c:655:8: error: ‘EPG2VDRConfig’ was not declared in this scope
    if (EPG2VDRConfig.storeXmlToFs)
    ^
    ../../Make.config:87: recipe for target 'tvm.o' failed
    make[1]: *** [tvm.o] Error 1
    Makefile:161: recipe for target 'plugins' failed
    make: *** [plugins] Error 2


    Grüße,


    Dirk

  • da scheint etwas nicht aktuell zu sein, du hast auf Master gewechelt und danach aktualisiert und compiliert?


    Code
    1. git checkout master
    2. git pull
    3. make clean
    4. make all
  • Ok, sieht deutlich besser aus.


    Man lernt nie aus.


    Gibt es auch eine neue Version des tvm-Plugins ?


    Der Compile der alten Version klappt nicht !


    Grüße,


    Dirk


    tvm.c: In member function ‘int Tvm2::downloadImageFile(const char*)’:
    tvm.c:525:23: error: ‘EPG2VDRConfig’ was not declared in this scope
    password, EPG2VDRConfig.cachePath, getSource(),
    ^
    tvm.c: In member function ‘virtual int Tvm2::getPicture(const char*, const char*, MemoryStruct*)’:
    tvm.c:556:31: error: ‘EPG2VDRConfig’ was not declared in this scope
    asprintf(&tmp, "%s/%s/%s", EPG2VDRConfig.cachePath, getSource(), imagename);
    ^
    tvm.c: In member function ‘int Tvm2::createXml(const char*, MemoryStruct*)’:
    tvm.c:584:45: error: ‘EPG2VDRConfig’ was not declared in this scope
    asprintf(&filename, "/%s/%s/%s.tv%d", EPG2VDRConfig.cachePath, getSource(), extid, num+1);
    ^
    tvm.c:588:73: warning: ISO C++98 does not support the ‘%m’ gnu_printf format [-Wformat=]
    tell(0, "Error: Opening '%s' failed, status was '%m'", filename);
    ^
    tvm.c:655:8: error: ‘EPG2VDRConfig’ was not declared in this scope
    if (EPG2VDRConfig.storeXmlToFs)
    ^
    ../../Make.config:87: recipe for target 'tvm.o' failed
    make: *** [tvm.o] Error 1
    pcneu:/privat/tv/dvb/tools/vdr-epg-daemon/PLUGINS/tvm # cd ..

  • Warum wird eigentlich beim Löschen eines Suchtimer nicht die mit erstellten Timer alle automatisch bzw mit Nachfrage mit gelöscht? Wenn man nämlich aus versehen ohne Kanal eine Suche abgespeichert hat, ist das Bereinigen dessen eine Qual.


    Außerdem habe ich eine Merkwürdigkeit beim Suchtimer My Little Pony. Ich kann machen was ich will, aber auf DisneyChannel
    Wird kein Treffer erzeugt, obwohl Samstag und Sonntag im Epg die Sendungen sind.
    Lege ich den Suchtimer ohne Kanaleingrenzung an, werden aber die Timer erzeugt, wohl leider auch auf allen unnützen Kanälen.

    Proxmox VE, Tyan Xeon Server, OMV, MLD-Server 5.1
    MLD 5.1 64bit: Asus AT5iont-t, ION2, 4GB Ram, SSHD 2,5" 1Tb, HEX TFX 300W 82+, Cine S2 V6.2 , 38W max.
    Yavdr 0.5:
    Zotac D2550ITXS-A-E mit GT610 OB, TT S2-4100 PCI-e ,Joujye NU-0568I-B
    Yavdr 0.5:
     Sandy Bridge G840, Tests und Energieverbrauch , CoHaus CIR, Cine S2 V6.2
    MLD 5.1 Beebox N3150
    , DVBSky S960 und 1Tb WD Blue

  • [...] Außerdem habe ich eine Merkwürdigkeit beim Suchtimer My Little Pony. Ich kann machen was ich will, aber auf DisneyChannel
    Wird kein Treffer erzeugt, obwohl Samstag und Sonntag im Epg die Sendungen sind.
    Lege ich den Suchtimer ohne Kanaleingrenzung an, werden aber die Timer erzeugt, wohl leider auch auf allen unnützen Kanälen.



    Ich kann das Problem nicht nachvollziehen, bei mir wird das korrekt angezeigt:


  • Das verrückte ist, auf dem Kanal wird nichts gefunden, egal welche Sendung ich davon eingeben. Wenn ich z.B. eine Sendung nehme, die nur da läuft, und keinen Sender vorgebe wird auch nichts gefunden, speichere ich den ab, werden die aber sehr wohl gefunden, und dann leider auch auf diversen verschlüsselten Sendern. Beim Test erscheinen die aber nicht!
    Die gesetzten zusätzlichen Optionen haben da keinen Einfluß drauf, bzw ändern nichts am Ergebnis.


    Vielleicht kommt das Problem daher, dass ich noch von vor der Umstellung auf epgdata die dvb Daten in der Datenbank habe und die nicht wegbekomme (bzw nicht weiß wie)?

  • mit dem DVB epg und epgdata Mischmasch, habe ich auch noch ein weiteres Problem, z.B. Rote Rosen erzeugt dadurch doppelte Serientimer