Compare commits

..

4 commits

Author SHA1 Message Date
iProdigy 617d47b7e7
Merge a9b446ffc7 into 867e3f3ab0 2024-10-21 05:11:21 +00:00
iProdigy a9b446ffc7 Merge branch 'main' into feature/shared-chat-badge 2024-10-20 22:10:42 -07:00
iProdigy 021f1a0bfc fix: skip UserInfo link if name is empty 2024-10-20 21:48:05 -07:00
iProdigy e87302ca2d docs: explain getOrPopulateChannelCache 2024-10-20 21:40:32 -07:00
2 changed files with 14 additions and 4 deletions

View file

@ -2759,7 +2759,7 @@ void MessageBuilder::appendTwitchBadges(const QVariantMap &tags,
if (this->message().flags.has(MessageFlag::SharedMessage)) if (this->message().flags.has(MessageFlag::SharedMessage))
{ {
QString sourceId = tags["source-room-id"].toString(); const QString sourceId = tags["source-room-id"].toString();
std::optional<QString> sourceName; std::optional<QString> sourceName;
if (twitchChannel->roomId() == sourceId) if (twitchChannel->roomId() == sourceId)
{ {
@ -2773,9 +2773,14 @@ void MessageBuilder::appendTwitchBadges(const QVariantMap &tags,
if (sourceName.has_value()) if (sourceName.has_value())
{ {
this->emplace<BadgeElement>(makeSharedChatBadge(sourceName.value()), const auto &name = sourceName.value();
MessageElementFlag::BadgeSharedChannel) auto *badge = this->emplace<BadgeElement>(
->setLink({Link::UserInfo, sourceName.value()}); makeSharedChatBadge(name),
MessageElementFlag::BadgeSharedChannel);
if (!name.isEmpty())
{
badge->setLink({Link::UserInfo, name});
}
} }
} }

View file

@ -100,6 +100,11 @@ public:
std::shared_ptr<Channel> getChannelOrEmptyByID( std::shared_ptr<Channel> getChannelOrEmptyByID(
const QString &channelID) override; const QString &channelID) override;
/**
* Obtains the channel login name associated with the passed ID,
* so that Shared Chat messages can provide source channel context.
* Can yield an empty string if a helix request is already in-flight.
*/
std::optional<QString> getOrPopulateChannelCache( std::optional<QString> getOrPopulateChannelCache(
const QString &channelId) override; const QString &channelId) override;