Skip to content

Commit

Permalink
Communicate streams that went offline through /live (Chatterino#2880)
Browse files Browse the repository at this point in the history
Co-authored-by: pajlada <[email protected]>
  • Loading branch information
Mm2PL and pajlada authored Jun 19, 2021
1 parent f605221 commit 74960bf
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 0 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

- Major: Added username autocompletion popup menu when typing usernames with an @ prefix. (#1979, #2866)
- Major: Added ability to toggle visibility of Channel Tabs - This can be done by right-clicking the tab area or pressing the keyboard shortcut (default: Ctrl+U). (#2600)
- Minor: The /live split now shows channels going offline. (#2880)
- Minor: Restore automod functionality for moderators (#2817, #2887)
- Minor: Add setting for username style (#2889, #2891)
- Minor: Searching for users in the viewer list now searches anywhere in the user's name. (#2861)
Expand Down
22 changes: 22 additions & 0 deletions src/providers/twitch/TwitchChannel.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -607,10 +607,32 @@ void TwitchChannel::setLive(bool newLiveStatus)
}
else
{
// Channel offline message
MessageBuilder builder;
TwitchMessageBuilder::offlineSystemMessage(
this->getDisplayName(), &builder);
this->addMessage(builder.release());

// "delete" old 'CHANNEL is live' message
LimitedQueueSnapshot<MessagePtr> snapshot =
getApp()->twitch2->liveChannel->getMessageSnapshot();
int snapshotLength = snapshot.size();

// MSVC hates this code if the parens are not there
int end = (std::max)(0, snapshotLength - 200);
auto liveMessageSearchText =
QString("%1 is live!").arg(this->getDisplayName());

for (int i = snapshotLength - 1; i >= end; --i)
{
auto &s = snapshot[i];

if (s->messageText == liveMessageSearchText)
{
s->flags.set(MessageFlag::Disabled);
break;
}
}
}
guard->live = newLiveStatus;
}
Expand Down
3 changes: 3 additions & 0 deletions src/providers/twitch/TwitchMessageBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1309,6 +1309,9 @@ void TwitchMessageBuilder::liveMessage(const QString &channelName,
->setLink({Link::UserInfo, channelName});
builder->emplace<TextElement>("is live!", MessageElementFlag::Text,
MessageColor::Text);
auto text = channelName + " is live!";
builder->message().searchText = text;
builder->message().messageText = text;
}

void TwitchMessageBuilder::liveSystemMessage(const QString &channelName,
Expand Down

0 comments on commit 74960bf

Please sign in to comment.