File indexing completed on 2024-05-05 04:57:29

0001 /*
0002     This file is part of Choqok, the KDE micro-blogging client
0003 
0004     SPDX-FileCopyrightText: 2008-2012 Mehrdad Momeny <mehrdad.momeny@gmail.com>
0005 
0006     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0007 */
0008 
0009 #ifndef TWITTERSEARCH_H
0010 #define TWITTERSEARCH_H
0011 
0012 #include "twitterapisearch.h"
0013 
0014 class KJob;
0015 
0016 /**
0017 Twitter.com search API implementation.
0018 
0019     @author Stephen Henderson \<hendersonsk@gmail.com\>
0020     @author Mehrdad Momeny \<mehrdad.momeny@gmail.com\>
0021 */
0022 
0023 class TwitterSearch : public TwitterApiSearch
0024 {
0025     Q_OBJECT
0026 public:
0027     enum SearchType { CustomSearch = 0, ReferenceHashtag, FromUser, ToUser, ReferenceUser };
0028 
0029     TwitterSearch(QObject *parent = nullptr);
0030     ~TwitterSearch();
0031 
0032     virtual void requestSearchResults(const SearchInfo &searchInfo,
0033                                       const QString &sinceStatusId = QString(),
0034                                       uint count = 0, uint page = 1) override;
0035     virtual QString optionCode(int option) override;
0036 
0037 protected Q_SLOTS:
0038     void searchResultsReturned(KJob *job);
0039 
0040 protected:
0041     Choqok::Post *readStatusesFromJsonMap(const QVariantMap &var);
0042 
0043     QMap<int, QString> mSearchCode;
0044     QMap<int, QString> mI18nSearchCode;
0045     QMap<KJob *, SearchInfo> mSearchJobs;
0046     static const QRegExp m_rId;
0047 };
0048 
0049 #endif // TWITTERSEARCH_H