1
0
Fork 0
mirror of https://github.com/Chatterino/chatterino2.git synced 2024-11-21 22:24:07 +01:00

Only attempt to read thumbnails when we get a 200 response code.

We would have been able to keep doing this if the Network Request code
followed redirects - however, it doesn't, so this is the best we can do.
We also don't have header support in Network Result, so we can't
validate that the response we got is actually an image.

Fixes 
This commit is contained in:
Rasmus Karlsson 2020-09-26 09:30:50 +02:00
parent 8123a47898
commit 4f35842473

View file

@ -594,6 +594,7 @@ void SplitHeader::updateChannelText()
if (streamStatus->live)
{
this->isLive_ = true;
// XXX: This URL format can be figured out from the Helix Get Streams API which we parse in TwitchChannel::parseLiveStatus
QString url = "https://static-cdn.jtvnw.net/"
"previews-ttv/live_user_" +
channel->getName().toLower();
@ -617,9 +618,17 @@ void SplitHeader::updateChannelText()
{
NetworkRequest(url, NetworkRequestType::Get)
.onSuccess([this](auto result) -> Outcome {
this->thumbnail_ =
QString::fromLatin1(result.getData().toBase64());
updateChannelText();
// NOTE: We do not follow the redirects, so we need to make sure we only treat code 200 as a valid image
if (result.status() == 200)
{
this->thumbnail_ = QString::fromLatin1(
result.getData().toBase64());
}
else
{
this->thumbnail_.clear();
}
this->updateChannelText();
return Success;
})
.execute();