Ticket #12277: mythtv-12277-Metadata_collection_for_Manual_Record.patch

File mythtv-12277-Metadata_collection_for_Manual_Record.patch, 6.2 KB (added by simon.sinister@…, 4 years ago)

Updated solution to work in release 29

  • mythtv/libs/libmythmetadata/metadatacommon.h

    diff --git a/mythtv/libs/libmythmetadata/metadatacommon.h b/mythtv/libs/libmythmetadata/metadatacommon.h
    index a205744..16e7179 100644
    a b class META_PUBLIC MetadataLookup : public QObject, public ReferenceCounter 
    249249    void SetDownloads(ArtworkMap map) { m_downloads = map; };
    250250
    251251    // General Sets
    252     void SetTitle(const QString &title) { m_title = title; };
     252    void SetTitle(const QString &title)
     253    {
     254        m_title = title;
     255        QString manRecSuffix = QString(" (%1)").arg(QObject::tr("Manual Record"));
     256        m_base_title = title;  // m_title with " (Manual Record)" stripped.
     257        m_base_title.replace(manRecSuffix,"");
     258    };
    253259    void SetFilename(const QString &filename) { m_filename = filename; };
    254260
    255261    // General Sets - Video
    class META_PUBLIC MetadataLookup : public QObject, public ReferenceCounter 
    287293    // General
    288294    QString GetFilename() const { return m_filename; };
    289295    QString GetTitle() const { return m_title; };
     296    QString GetBaseTitle() const { return m_base_title; };
    290297    QStringList GetCategories() const { return m_categories; };
    291298    float GetUserRating() const { return m_userrating; };
    292299    uint GetRatingCount() const { return m_ratingcount; };
    class META_PUBLIC MetadataLookup : public QObject, public ReferenceCounter 
    375382
    376383    QString m_filename;
    377384    QString m_title;
     385    QString m_base_title;  // m_title with " (Manual Record)" stripped.
    378386    QString m_network;
    379387    QString m_status;
    380388    const QStringList m_categories;
  • mythtv/libs/libmythmetadata/metadatadownload.cpp

    diff --git a/mythtv/libs/libmythmetadata/metadatadownload.cpp b/mythtv/libs/libmythmetadata/metadatadownload.cpp
    index c886654..20c029d 100644
    a b void MetadataDownload::run() 
    148148            if (list[0]->GetAutomatic() && list.count() > 1
    149149                && list[0]->GetStep() == kLookupSearch)
    150150            {
    151                 MetadataLookup *bestLookup = findBestMatch(list, lookup->GetTitle());
     151                MetadataLookup *bestLookup = findBestMatch(list, lookup->GetBaseTitle());
    152152                if (bestLookup)
    153153                {
    154154                    MetadataLookup *newlookup = bestLookup;
    void MetadataDownload::run() 
    172172
    173173            LOG(VB_GENERAL, LOG_INFO,
    174174                QString("Returning Metadata Results: %1 %2 %3")
    175                     .arg(lookup->GetTitle()).arg(lookup->GetSeason())
     175                    .arg(lookup->GetBaseTitle()).arg(lookup->GetSeason())
    176176                    .arg(lookup->GetEpisode()));
    177177            QCoreApplication::postEvent(m_parent,
    178178                new MetadataLookupEvent(list));
    void MetadataDownload::run() 
    183183            {
    184184                LOG(VB_GENERAL, LOG_INFO,
    185185                    QString("Metadata Lookup Failed: No Results %1 %2 %3")
    186                         .arg(lookup->GetTitle()).arg(lookup->GetSeason())
     186                        .arg(lookup->GetBaseTitle()).arg(lookup->GetSeason())
    187187                        .arg(lookup->GetEpisode()));
    188188            }
    189189            if (m_parent)
    MetadataLookup* MetadataDownload::findBestMatch(MetadataLookupList list, 
    210210    for (MetadataLookupList::const_iterator i = list.begin();
    211211            i != list.end(); ++i)
    212212    {
    213         QString title = (*i)->GetTitle();
     213        QString title = (*i)->GetBaseTitle();
    214214        if (title == originaltitle)
    215215        {
    216216            ret = (*i);
    MetadataLookup* MetadataDownload::findBestMatch(MetadataLookupList list, 
    260260    MetadataLookupList::const_iterator i = list.begin();
    261261    for (; i != list.end(); ++i)
    262262    {
    263         if ((*i)->GetTitle() == bestTitle)
     263        if ((*i)->GetBaseTitle() == bestTitle)
    264264        {
    265265            ret = (*i);
    266266            break;
    MetadataLookupList MetadataDownload::handleMovie(MetadataLookup *lookup) 
    526526    }
    527527    else if (lookup->GetStep() == kLookupSearch)
    528528    {
    529         if (lookup->GetTitle().isEmpty())
     529        if (lookup->GetBaseTitle().isEmpty())
    530530        {
    531531            // no point searching on nothing...
    532532            return list;
    533533        }
    534         list = grabber.Search(lookup->GetTitle(), lookup);
     534        list = grabber.Search(lookup->GetBaseTitle(), lookup);
    535535    }
    536536
    537537    return list;
    MetadataLookupList MetadataDownload::handleTelevision(MetadataLookup *lookup) 
    582582        if (!lookup->GetSubtitle().isEmpty())
    583583        {
    584584            list = grabber.SearchSubtitle(lookup->GetInetref(),
    585                                           lookup->GetTitle() /* unused */,
     585                                          lookup->GetBaseTitle() /* unused */,
    586586                                          lookup->GetSubtitle(), lookup, false);
    587587        }
    588588
    MetadataLookupList MetadataDownload::handleTelevision(MetadataLookup *lookup) 
    608608    }
    609609    else if (lookup->GetStep() == kLookupSearch)
    610610    {
    611         if (lookup->GetTitle().isEmpty())
     611        if (lookup->GetBaseTitle().isEmpty())
    612612        {
    613613            // no point searching on nothing...
    614614            return list;
    615615        }
    616616        if (!lookup->GetSubtitle().isEmpty())
    617617        {
    618             list = grabber.SearchSubtitle(lookup->GetTitle(),
     618            list = grabber.SearchSubtitle(lookup->GetBaseTitle(),
    619619                                          lookup->GetSubtitle(), lookup, false);
    620620        }
    621621        if (list.isEmpty())
    622622        {
    623             list = grabber.Search(lookup->GetTitle(), lookup);
     623            list = grabber.Search(lookup->GetBaseTitle(), lookup);
    624624        }
    625625    }
    626626    else if (lookup->GetStep() == kLookupCollection)
    MetadataLookupList MetadataDownload::handleRecordingGeneric(MetadataLookup *look 
    685685
    686686    MetadataLookupList list;
    687687
    688     if (lookup->GetTitle().isEmpty())
     688    if (lookup->GetBaseTitle().isEmpty())
    689689    {
    690690        // no point searching on nothing...
    691691        return list;
    MetadataLookupList MetadataDownload::handleRecordingGeneric(MetadataLookup *look 
    705705        lookup->SetEpisode(1);
    706706    }
    707707
    708     list = grabber.Search(lookup->GetTitle(), lookup);
     708    list = grabber.Search(lookup->GetBaseTitle(), lookup);
    709709
    710710    if (list.count() == 1)
    711711    {