File indexing completed on 2024-04-28 04:55:36

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 TWITTERAPIACCOUNT_H
0010 #define TWITTERAPIACCOUNT_H
0011 
0012 #include <QUrl>
0013 
0014 #include "account.h"
0015 #include "twitterapihelper_export.h"
0016 
0017 #include "twitterapimicroblog.h"
0018 #include "twitterapioauth.h"
0019 
0020 /**
0021 @author Mehrdad Momeny \<mehrdad.momeny@gmail.com\>
0022 */
0023 class TWITTERAPIHELPER_EXPORT TwitterApiAccount : public Choqok::Account
0024 {
0025     Q_OBJECT
0026 public:
0027     TwitterApiAccount(TwitterApiMicroBlog *parent, const QString &alias);
0028     ~TwitterApiAccount();
0029     virtual void writeConfig() override;
0030 
0031     QString userId() const;
0032     void setUserId(const QString &id);
0033 
0034     int countOfPosts() const;
0035     void setCountOfPosts(int count);
0036 
0037     QString host() const;
0038     void setHost(const QString &host);
0039 
0040     /**
0041     @return api path
0042     It's defer from apiUrl.
0043     For example: in http://identi.ca/api/
0044     identi.ca is @ref host()
0045     api is @ref api()
0046     http://identi.ca/api/ is @ref apiUrl()
0047     */
0048     QString api() const;
0049     virtual void setApi(const QString &api);
0050 
0051     /**
0052     Combined from @ref host and @ref api to use for connections and queries
0053     */
0054     QUrl apiUrl() const;
0055     virtual QUrl homepageUrl() const;
0056 
0057     QStringList friendsList() const;
0058 
0059     void setFriendsList(const QStringList &list);
0060 
0061     QStringList followersList() const;
0062 
0063     void setFollowersList(const QStringList &list);
0064 
0065     virtual QStringList timelineNames() const override;
0066 
0067     virtual void setTimelineNames(const QStringList &list);
0068 
0069     QByteArray oauthToken() const;
0070     void setOauthToken(const QByteArray &token);
0071 
0072     QByteArray oauthTokenSecret() const;
0073     void setOauthTokenSecret(const QByteArray &tokenSecret);
0074 
0075     QByteArray oauthConsumerKey() const;
0076     void setOauthConsumerKey(const QByteArray &consumerKey);
0077 
0078     QByteArray oauthConsumerSecret() const;
0079     void setOauthConsumerSecret(const QByteArray &consumerSecret);
0080 
0081     bool usingOAuth() const;
0082     void setUsingOAuth(bool use = true);
0083 
0084     TwitterApiOAuth *oauthInterface();
0085 protected:
0086     void setApiUrl(const QUrl &apiUrl);
0087     void setHomepageUrl(const QUrl &homepageUrl);
0088     void generateApiUrl();
0089     void initQOAuthInterface();
0090 
0091 private:
0092     class Private;
0093     Private *const d;
0094 };
0095 
0096 #endif // TWITTERACCOUNT_H