Ticket #13655: 0001-utilize-schedulesdirect-additional-metadata-if-avail.patch

File 0001-utilize-schedulesdirect-additional-metadata-if-avail.patch, 3.0 KB (added by Gary Buhrmaster, 4 years ago)

utilize schedulesdirect additional metadata if available

  • mythtv/programs/mythfilldatabase/xmltvparser.cpp

    From 614a06886e4eb26711e552d101bec7f00436f3dc Mon Sep 17 00:00:00 2001
    From: Gary Buhrmaster <gary.buhrmaster@gmail.com>
    Date: Sun, 26 Jul 2020 00:24:53 +0000
    Subject: [PATCH] utilize schedulesdirect additional metadata if available
    
    With the (real soon now) next release of XMLTV (or the
    current master), one of the grabbers for Schedules Direct
    data can provide some useful additional metadata such as
    originalAirDate.  Use that metadata if it is provided by
    the grabber (typically per its configuration).
    ---
     .../programs/mythfilldatabase/xmltvparser.cpp | 25 ++++++++++++++++++-
     1 file changed, 24 insertions(+), 1 deletion(-)
    
    diff --git a/mythtv/programs/mythfilldatabase/xmltvparser.cpp b/mythtv/programs/mythfilldatabase/xmltvparser.cpp
    index 476facfd78..a4fc8782b5 100644
    a b bool XMLTVParser::parseFile( 
    467467                    {
    468468                        pginfo->m_previouslyshown = true;
    469469                        QString prevdate = xml.attributes().value( "start").toString();
    470                         if (!prevdate.isEmpty())
     470                        if ((!prevdate.isEmpty()) && (pginfo->m_originalairdate.isNull()))
    471471                        {
    472472                            QDateTime date;
    473473                            fromXMLTVDate(prevdate, date);
    bool XMLTVParser::parseFile( 
    636636                                // ProgInfo does not have a collectionref, so we don't set any
    637637                            }
    638638                        }
     639                        else if (system == "schedulesdirect.org")
     640                        {
     641                            QString details(xml.readElementText(QXmlStreamReader::SkipChildElements));
     642                            if (details.startsWith(QString("originalAirDate/")))
     643                            {
     644                                QString value(details.section('/', 1, 1).trimmed());
     645                                QDateTime datetime;
     646                                fromXMLTVDate(value, datetime);
     647                                pginfo->m_originalairdate = datetime.date();
     648                            }
     649                            else if (details.startsWith(QString("newEpisode/")))
     650                            {
     651                                QString value(details.section('/', 1, 1).trimmed());
     652                                if (value == QString("true"))
     653                                {
     654                                    pginfo->m_previouslyshown = false;
     655                                }
     656                                else if (value == QString("false"))
     657                                {
     658                                    pginfo->m_previouslyshown = true;
     659                                }
     660                            }
     661                        }
    639662                    }//episode-num
    640663                }
    641664                while (! (xml.isEndElement() && xml.name() == "programme"));