Ticket #1777: xmltv_find_grabber.2.diff

File xmltv_find_grabber.2.diff, 5.8 KB (added by stuartm, 18 years ago)

Diff updated against 0.20/SVN head

  • libs/libmythtv/videosource.cpp

     
    1818#include <qfile.h>
    1919#include <qmap.h>
    2020#include <qdir.h>
     21#include <qprocess.h>
    2122
    2223// MythTV headers
    2324#include "mythconfig.h"
     
    103104    XMLTVGrabber(const VideoSource& parent)
    104105      : VSSetting(parent, "xmltvgrabber")
    105106    {
    106         setLabel(QObject::tr("XMLTV listings grabber"));
     107        setLabel(QObject::tr("Listings grabber"));
    107108    };
    108109};
    109110
     
    295296        "instead of just 'mythfilldatabase'.\nYour grabber does not provide "
    296297        "channel numbers, so you have to set them manually.");
    297298
    298     if (grabber == "tv_grab_de_tvtoday" || grabber == "tv_grab_se_swedb" ||
    299         grabber == "tv_grab_fi" || grabber == "tv_grab_es" ||
    300         grabber == "tv_grab_es_laguiatv" ||
    301         grabber == "tv_grab_nl" || grabber == "tv_grab_jp" ||
    302         grabber == "tv_grab_no" || grabber == "tv_grab_pt" ||
    303         grabber == "tv_grab_ee" || grabber == "tv_grab_be_tvb" ||
    304         grabber == "tv_grab_be_tlm" || grabber == "tv_grab_is" ||
    305         grabber == "tv_grab_br" || grabber == "tv_grab_cz" ||
    306         grabber == "tv_grab_il" || grabber == "tv_grab_ru")
     299    if (grabber != "datadirect" && grabber != "eitonly" &&
     300        grabber != "/bin/true")
    307301    {
    308302        VERBOSE(VB_IMPORTANT, "\n" << err_msg);
    309303        MythPopupBox::showOkPopup(
     
    370364
    371365    // only save settings for the selected grabber
    372366    setSaveAll(false);
    373  
     367
    374368    addTarget("datadirect", new DataDirect_config(parent));
    375     grabber->addSelection("North America (DataDirect)", "datadirect");
    376    
     369    grabber->addSelection("North America (DataDirect) (Internal)", "datadirect");
     370
    377371    addTarget("eitonly", new EITOnly_config(parent));
    378372    grabber->addSelection("Transmitted guide only (EIT)", "eitonly");
    379373
    380     addTarget("tv_grab_de_tvtoday", new XMLTV_generic_config(parent, "tv_grab_de_tvtoday"));
    381     grabber->addSelection("Germany (tvtoday)", "tv_grab_de_tvtoday");
     374    QProcess find_grabber_proc( this );
     375    find_grabber_proc.addArgument("tv_find_grabbers");
     376    if ( !find_grabber_proc.start() ) {
     377        VERBOSE(VB_IMPORTANT, "Failed to run tv_find_grabbers");
     378    }
    382379
    383     addTarget("tv_grab_se_swedb", new XMLTV_generic_config(parent, "tv_grab_se_swedb"));
    384     grabber->addSelection("Sweden (tv.swedb.se)","tv_grab_se_swedb");
     380    while (find_grabber_proc.isRunning())
     381    {
     382        usleep(100000);
     383    }
    385384
    386     addTarget("tv_grab_no", new XMLTV_generic_config(parent, "tv_grab_no"));
    387     grabber->addSelection("Norway","tv_grab_no");
     385    if (find_grabber_proc.normalExit())
     386    {
     387        while (find_grabber_proc.canReadLineStdout())
     388        {
     389            QString grabber_list = find_grabber_proc.readLineStdout();
     390            QStringList grabber_split = QStringList::split("|", grabber_list);
     391            QString grabber_name = grabber_split[1] + " (xmltv)";
     392            QFileInfo grabber_file(grabber_split[0]);
     393            addTarget(grabber_file.fileName(), new XMLTV_generic_config(parent, grabber_file.fileName()));
     394            grabber->addSelection(grabber_name, grabber_file.fileName());
     395        }
     396    }
    388397
    389     addTarget("tv_grab_uk_rt", new XMLTV_generic_config(parent, "tv_grab_uk_rt"));
    390     grabber->addSelection("United Kingdom (alternative)","tv_grab_uk_rt");
    391 
    392     addTarget("tv_grab_au", new XMLTV_generic_config(parent, "tv_grab_au"));
    393     grabber->addSelection("Australia", "tv_grab_au");
    394 
    395     addTarget("tv_grab_fi", new XMLTV_generic_config(parent, "tv_grab_fi"));
    396     grabber->addSelection("Finland", "tv_grab_fi");
    397 
    398     addTarget("tv_grab_es", new XMLTV_generic_config(parent, "tv_grab_es"));
    399     grabber->addSelection("Spain", "tv_grab_es");
    400 
    401     addTarget("tv_grab_es_laguiatv", new XMLTV_generic_config(parent, "tv_grab_es_laguiatv"));
    402     grabber->addSelection("Spain (Alt)", "tv_grab_es_laguiatv");
    403 
    404     addTarget("tv_grab_nl", new XMLTV_generic_config(parent, "tv_grab_nl"));
    405     grabber->addSelection("Holland", "tv_grab_nl");
    406 
    407     addTarget("tv_grab_dk", new XMLTV_generic_config(parent, "tv_grab_dk"));
    408     grabber->addSelection("Denmark", "tv_grab_dk");
    409 
    410     addTarget("tv_grab_fr", new XMLTV_generic_config(parent, "tv_grab_fr"));
    411     grabber->addSelection("France", "tv_grab_fr");
    412 
    413     addTarget("tv_grab_jp", new XMLTV_generic_config(parent, "tv_grab_jp"));
    414     grabber->addSelection("Japan", "tv_grab_jp");
    415 
    416     addTarget("tv_grab_pt", new XMLTV_generic_config(parent, "tv_grab_pt"));
    417     grabber->addSelection("Portugal", "tv_grab_pt");
    418 
    419     addTarget("tv_grab_ee", new XMLTV_generic_config(parent, "tv_grab_ee"));
    420     grabber->addSelection("Estonia", "tv_grab_ee");
    421 
    422     addTarget("tv_grab_be_tvb", new XMLTV_generic_config(parent, "tv_grab_be_tvb"));
    423     grabber->addSelection("Belgium (Dutch)", "tv_grab_be_tvb");
    424 
    425     addTarget("tv_grab_be_tlm", new XMLTV_generic_config(parent, "tv_grab_be_tlm"));
    426     grabber->addSelection("Belgium (French)", "tv_grab_be_tlm");
    427 
    428     addTarget("tv_grab_is", new XMLTV_generic_config(parent, "tv_grab_is"));
    429     grabber->addSelection("Iceland", "tv_grab_is");
    430 
    431     addTarget("tv_grab_br", new XMLTV_generic_config(parent, "tv_grab_br"));
    432     grabber->addSelection("Brazil", "tv_grab_br");
    433 
    434     addTarget("tv_grab_cz", new XMLTV_generic_config(parent, "tv_grab_cz"));
    435     grabber->addSelection("Czech Republic", "tv_grab_cz");
    436 
    437     addTarget("tv_grab_il", new XMLTV_generic_config(parent, "tv_grab_il"));
    438     grabber->addSelection("Israel", "tv_grab_il");
    439 
    440     addTarget("tv_grab_ru", new XMLTV_generic_config(parent, "tv_grab_ru"));
    441     grabber->addSelection("Russia", "tv_grab_ru");
    442 
    443398    addTarget("/bin/true", new NoGrabber_config(parent));
    444399    grabber->addSelection("No grabber", "/bin/true");
    445400}