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

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 #include "twitteraccount.h"
0010 #include "twitterdebug.h"
0011 #include "twittermicroblog.h"
0012 
0013 class TwitterAccount::Private
0014 {
0015 public:
0016     QString uploadHost;
0017     QUrl uploadUrl;
0018 //     QStringList lists;
0019 };
0020 
0021 static const char *twitterConsumerKey = "VyXMf0O7CvciiUQjliYtYg";
0022 static const char *twitterConsumerSecret = "uD2HvsOBjzt1Vs6SnouFtuxDeHmvOOVwmn3fBVyCw0";
0023 
0024 TwitterAccount::TwitterAccount(TwitterMicroBlog *parent, const QString &alias)
0025     : TwitterApiAccount(parent, alias), d(new Private)
0026 {
0027     setHost(QLatin1String("https://api.twitter.com"));
0028     setUploadHost(QLatin1String("https://api.twitter.com"));
0029     setApi(QLatin1String("1.1"));
0030     qCDebug(CHOQOK) << "Set API version to 1.1";
0031     setOauthConsumerKey(twitterConsumerKey);
0032     setOauthConsumerSecret(twitterConsumerSecret);
0033     setUsingOAuth(true);
0034 
0035     setPostCharLimit(280);    //TODO: See if we can ask twitter for the char limit and make it dynamic
0036 
0037     if (!oauthToken().isEmpty() && !oauthTokenSecret().isEmpty()) {
0038         // We trigger this to update the username
0039         parent->verifyCredentials(this);
0040     }
0041 
0042 //     d->lists = configGroup()->readEntry("lists", QStringList());
0043     QStringList lists;
0044     for (const QString &tm: timelineNames()) {
0045         if (tm.startsWith(QLatin1Char('@'))) {
0046             lists.append(tm);
0047         }
0048     }
0049     if (!lists.isEmpty()) {
0050         parent->setListTimelines(this, lists);
0051     }
0052 }
0053 
0054 TwitterAccount::~TwitterAccount()
0055 {
0056     delete d;
0057 }
0058 
0059 void TwitterAccount::setApi(const QString &api)
0060 {
0061     TwitterApiAccount::setApi(api);
0062     generateUploadUrl();
0063 }
0064 
0065 QUrl TwitterAccount::uploadUrl() const
0066 {
0067     return d->uploadUrl;
0068 }
0069 
0070 void TwitterAccount::setUploadUrl(const QUrl &url)
0071 {
0072     d->uploadUrl = url;
0073 }
0074 
0075 QString TwitterAccount::uploadHost() const
0076 {
0077     return d->uploadHost;
0078 }
0079 
0080 void TwitterAccount::setUploadHost(const QString &uploadHost)
0081 {
0082     d->uploadHost = uploadHost;
0083 }
0084 
0085 void TwitterAccount::generateUploadUrl()
0086 {
0087     if (!uploadHost().startsWith(QLatin1String("http"))) { //NOTE: This is for compatibility by prev versions. remove it after 1.0 release
0088         setUploadHost(uploadHost().prepend(QLatin1String("http://")));
0089     }
0090     QUrl url(uploadHost());
0091 
0092     url = url.adjusted(QUrl::StripTrailingSlash);
0093     url.setPath(url.path() + QLatin1Char('/') + (api()));
0094     setUploadUrl(url);
0095 }
0096 
0097 /*
0098 void TwitterAccount::writeConfig()
0099 {
0100     qCDebug(CHOQOK)<<d->lists;
0101     configGroup()->writeEntry("lists", d->lists);
0102     TwitterApiAccount::writeConfig();
0103 }
0104 
0105 void TwitterAccount::addList(const QString& name)
0106 {
0107     d->lists << name;
0108 }
0109 
0110 void TwitterAccount::removeList(const QString& name)
0111 {
0112     d->lists.removeOne(name);
0113 }*/
0114 
0115 #include "moc_twitteraccount.cpp"