Changeset View
Changeset View
Standalone View
Standalone View
src/job/gravatarresolvurljob.cpp
Show All 36 Lines | 36 | GravatarResolvUrlJobPrivate() | |||
---|---|---|---|---|---|
37 | : mNetworkAccessManager(nullptr) | 37 | : mNetworkAccessManager(nullptr) | ||
38 | , mSize(80) | 38 | , mSize(80) | ||
39 | , mHasGravatar(false) | 39 | , mHasGravatar(false) | ||
40 | , mUseDefaultPixmap(false) | 40 | , mUseDefaultPixmap(false) | ||
41 | , mUseCache(false) | 41 | , mUseCache(false) | ||
42 | , mUseLibravatar(false) | 42 | , mUseLibravatar(false) | ||
43 | , mFallbackGravatar(true) | 43 | , mFallbackGravatar(true) | ||
44 | , mFallbackDone(false) | 44 | , mFallbackDone(false) | ||
45 | , mUseHttps(false) | | |||
46 | { | 45 | { | ||
47 | } | 46 | } | ||
48 | 47 | | |||
49 | QPixmap mPixmap; | 48 | QPixmap mPixmap; | ||
50 | QString mEmail; | 49 | QString mEmail; | ||
51 | QString mCalculatedHash; | 50 | QString mCalculatedHash; | ||
52 | QNetworkAccessManager *mNetworkAccessManager; | 51 | QNetworkAccessManager *mNetworkAccessManager; | ||
53 | int mSize; | 52 | int mSize; | ||
54 | bool mHasGravatar; | 53 | bool mHasGravatar; | ||
55 | bool mUseDefaultPixmap; | 54 | bool mUseDefaultPixmap; | ||
56 | bool mUseCache; | 55 | bool mUseCache; | ||
57 | bool mUseLibravatar; | 56 | bool mUseLibravatar; | ||
58 | bool mFallbackGravatar; | 57 | bool mFallbackGravatar; | ||
59 | bool mFallbackDone; | 58 | bool mFallbackDone; | ||
60 | bool mUseHttps; | | |||
61 | }; | 59 | }; | ||
62 | 60 | | |||
63 | GravatarResolvUrlJob::GravatarResolvUrlJob(QObject *parent) | 61 | GravatarResolvUrlJob::GravatarResolvUrlJob(QObject *parent) | ||
64 | : QObject(parent) | 62 | : QObject(parent) | ||
65 | , d(new Gravatar::GravatarResolvUrlJobPrivate) | 63 | , d(new Gravatar::GravatarResolvUrlJobPrivate) | ||
66 | { | 64 | { | ||
67 | } | 65 | } | ||
68 | 66 | | |||
▲ Show 20 Lines • Show All 95 Lines • ▼ Show 20 Line(s) | |||||
164 | 162 | | |||
165 | QString GravatarResolvUrlJob::calculateHash(bool useLibravator) | 163 | QString GravatarResolvUrlJob::calculateHash(bool useLibravator) | ||
166 | { | 164 | { | ||
167 | QCryptographicHash hash(useLibravator ? QCryptographicHash::Sha256 : QCryptographicHash::Md5); | 165 | QCryptographicHash hash(useLibravator ? QCryptographicHash::Sha256 : QCryptographicHash::Md5); | ||
168 | hash.addData(d->mEmail.toLower().toUtf8()); | 166 | hash.addData(d->mEmail.toLower().toUtf8()); | ||
169 | return QString::fromUtf8(hash.result().toHex()); | 167 | return QString::fromUtf8(hash.result().toHex()); | ||
170 | } | 168 | } | ||
171 | 169 | | |||
172 | bool GravatarResolvUrlJob::useHttps() const | | |||
173 | { | | |||
174 | return d->mUseHttps; | | |||
175 | } | | |||
176 | | ||||
177 | void GravatarResolvUrlJob::setUseHttps(bool useHttps) | | |||
178 | { | | |||
179 | d->mUseHttps = useHttps; | | |||
180 | } | | |||
181 | | ||||
182 | bool GravatarResolvUrlJob::fallbackGravatar() const | 170 | bool GravatarResolvUrlJob::fallbackGravatar() const | ||
183 | { | 171 | { | ||
184 | return d->mFallbackGravatar; | 172 | return d->mFallbackGravatar; | ||
185 | } | 173 | } | ||
186 | 174 | | |||
187 | void GravatarResolvUrlJob::setFallbackGravatar(bool fallbackGravatar) | 175 | void GravatarResolvUrlJob::setFallbackGravatar(bool fallbackGravatar) | ||
188 | { | 176 | { | ||
189 | d->mFallbackGravatar = fallbackGravatar; | 177 | d->mFallbackGravatar = fallbackGravatar; | ||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | 236 | { | |||
254 | QUrlQuery query; | 242 | QUrlQuery query; | ||
255 | if (!d->mUseDefaultPixmap) { | 243 | if (!d->mUseDefaultPixmap) { | ||
256 | //Add ?d=404 | 244 | //Add ?d=404 | ||
257 | query.addQueryItem(QStringLiteral("d"), QStringLiteral("404")); | 245 | query.addQueryItem(QStringLiteral("d"), QStringLiteral("404")); | ||
258 | } | 246 | } | ||
259 | if (d->mSize != 80) { | 247 | if (d->mSize != 80) { | ||
260 | query.addQueryItem(QStringLiteral("s"), QString::number(d->mSize)); | 248 | query.addQueryItem(QStringLiteral("s"), QString::number(d->mSize)); | ||
261 | } | 249 | } | ||
262 | url.setScheme(d->mUseHttps ? QStringLiteral("https") : QStringLiteral("http")); | 250 | url.setScheme(QStringLiteral("https")); | ||
263 | if (useLibravatar) { | 251 | if (useLibravatar) { | ||
264 | url.setHost(d->mUseHttps ? QStringLiteral("seccdn.libravatar.org") : QStringLiteral("cdn.libravatar.org")); | 252 | url.setHost(QStringLiteral("seccdn.libravatar.org")); | ||
265 | } else { | 253 | } else { | ||
266 | url.setHost(d->mUseHttps ? QStringLiteral("secure.gravatar.com") : QStringLiteral("www.gravatar.com")); | 254 | url.setHost(QStringLiteral("secure.gravatar.com")); | ||
267 | } | 255 | } | ||
268 | url.setPort(d->mUseHttps ? 443 : 80); | 256 | url.setPort(443); | ||
269 | d->mCalculatedHash = calculateHash(useLibravatar); | 257 | d->mCalculatedHash = calculateHash(useLibravatar); | ||
270 | url.setPath(QLatin1String("/avatar/") + d->mCalculatedHash); | 258 | url.setPath(QLatin1String("/avatar/") + d->mCalculatedHash); | ||
271 | url.setQuery(query); | 259 | url.setQuery(query); | ||
272 | return url; | 260 | return url; | ||
273 | } | 261 | } | ||
274 | 262 | | |||
275 | bool GravatarResolvUrlJob::cacheLookup(const QString &hash) | 263 | bool GravatarResolvUrlJob::cacheLookup(const QString &hash) | ||
276 | { | 264 | { | ||
Show All 11 Lines |