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"