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 102 Lines • ▼ Show 20 Line(s) | |||||
171 | 169 | | |||
172 | QString GravatarResolvUrlJob::calculateHash(bool useLibravator) | 170 | QString GravatarResolvUrlJob::calculateHash(bool useLibravator) | ||
173 | { | 171 | { | ||
174 | QCryptographicHash hash(useLibravator ? QCryptographicHash::Sha256 : QCryptographicHash::Md5); | 172 | QCryptographicHash hash(useLibravator ? QCryptographicHash::Sha256 : QCryptographicHash::Md5); | ||
175 | hash.addData(d->mEmail.toLower().toUtf8()); | 173 | hash.addData(d->mEmail.toLower().toUtf8()); | ||
176 | return QString::fromUtf8(hash.result().toHex()); | 174 | return QString::fromUtf8(hash.result().toHex()); | ||
177 | } | 175 | } | ||
178 | 176 | | |||
179 | bool GravatarResolvUrlJob::useHttps() const | | |||
180 | { | | |||
181 | return d->mUseHttps; | | |||
182 | } | | |||
183 | | ||||
184 | void GravatarResolvUrlJob::setUseHttps(bool useHttps) | | |||
185 | { | | |||
186 | d->mUseHttps = useHttps; | | |||
187 | } | | |||
188 | | ||||
189 | bool GravatarResolvUrlJob::fallbackGravatar() const | 177 | bool GravatarResolvUrlJob::fallbackGravatar() const | ||
190 | { | 178 | { | ||
191 | return d->mFallbackGravatar; | 179 | return d->mFallbackGravatar; | ||
192 | } | 180 | } | ||
193 | 181 | | |||
194 | void GravatarResolvUrlJob::setFallbackGravatar(bool fallbackGravatar) | 182 | void GravatarResolvUrlJob::setFallbackGravatar(bool fallbackGravatar) | ||
195 | { | 183 | { | ||
196 | d->mFallbackGravatar = fallbackGravatar; | 184 | d->mFallbackGravatar = fallbackGravatar; | ||
▲ Show 20 Lines • Show All 64 Lines • ▼ Show 20 Line(s) | 243 | { | |||
261 | QUrlQuery query; | 249 | QUrlQuery query; | ||
262 | if (!d->mUseDefaultPixmap) { | 250 | if (!d->mUseDefaultPixmap) { | ||
263 | //Add ?d=404 | 251 | //Add ?d=404 | ||
264 | query.addQueryItem(QStringLiteral("d"), QStringLiteral("404")); | 252 | query.addQueryItem(QStringLiteral("d"), QStringLiteral("404")); | ||
265 | } | 253 | } | ||
266 | if (d->mSize != 80) { | 254 | if (d->mSize != 80) { | ||
267 | query.addQueryItem(QStringLiteral("s"), QString::number(d->mSize)); | 255 | query.addQueryItem(QStringLiteral("s"), QString::number(d->mSize)); | ||
268 | } | 256 | } | ||
269 | url.setScheme(d->mUseHttps ? QStringLiteral("https") : QStringLiteral("http")); | 257 | url.setScheme(QStringLiteral("https")); | ||
270 | if (useLibravatar) { | 258 | if (useLibravatar) { | ||
271 | url.setHost(d->mUseHttps ? QStringLiteral("seccdn.libravatar.org") : QStringLiteral("cdn.libravatar.org")); | 259 | url.setHost(QStringLiteral("seccdn.libravatar.org")); | ||
272 | } else { | 260 | } else { | ||
273 | url.setHost(d->mUseHttps ? QStringLiteral("secure.gravatar.com") : QStringLiteral("www.gravatar.com")); | 261 | url.setHost(QStringLiteral("secure.gravatar.com")); | ||
274 | } | 262 | } | ||
275 | url.setPort(d->mUseHttps ? 443 : 80); | 263 | url.setPort(443); | ||
276 | d->mCalculatedHash = calculateHash(useLibravatar); | 264 | d->mCalculatedHash = calculateHash(useLibravatar); | ||
277 | url.setPath(QLatin1String("/avatar/") + d->mCalculatedHash); | 265 | url.setPath(QLatin1String("/avatar/") + d->mCalculatedHash); | ||
278 | url.setQuery(query); | 266 | url.setQuery(query); | ||
279 | return url; | 267 | return url; | ||
280 | } | 268 | } |