Warning, file /utilities/telly-skout/src/xmltvfetcher.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 // SPDX-FileCopyrightText: 2022 Plata Hill <plata.hill@kdemail.net> 0002 // SPDX-License-Identifier: LGPL-2.1-or-later 0003 0004 #pragma once 0005 0006 #include "fetcherimpl.h" 0007 0008 #include "localdataprovider.h" 0009 0010 #include <QDomDocument> 0011 #include <QMap> 0012 0013 class XmltvFetcher : public FetcherImpl 0014 { 0015 Q_OBJECT 0016 public: 0017 XmltvFetcher(); 0018 virtual ~XmltvFetcher() = default; 0019 0020 void fetchGroups(std::function<void(const QVector<GroupData> &)> callback = nullptr, std::function<void(const Error &)> errorCallback = nullptr) override; 0021 void fetchGroup(const QString &url, 0022 const GroupId &groupId, 0023 std::function<void(const QList<ChannelData> &)> callback = nullptr, 0024 std::function<void(const Error &)> errorCallback = nullptr) override; 0025 void fetchProgram(const ChannelId &channelId, 0026 std::function<void(const QVector<ProgramData> &)> callback = nullptr, 0027 std::function<void(const Error &)> errorCallback = nullptr) override; 0028 void fetchProgramDescription(const ChannelId &channelId, 0029 const ProgramId &programId, 0030 const QString &url, 0031 std::function<void(const QString &)> callback = nullptr, 0032 std::function<void(const Error &)> errorCallback = nullptr) override; 0033 QString image(const QString &url, std::function<void()> callback = nullptr, std::function<void(const Error &)> errorCallback = nullptr) override; 0034 QString imagePath(const QString &url) override; 0035 0036 private: 0037 void open(QByteArray data); 0038 void fetchChannel(const ChannelId &channelId, const QString &name, const QString &icon, QMap<ChannelId, ChannelData> &channels); 0039 ProgramData processProgram(const QDomNode &program); 0040 0041 QDomDocument m_doc; 0042 const LocalDataProvider m_provider; 0043 };