From e0fddd872642fe57a7e19a09e756951bcbae474b Mon Sep 17 00:00:00 2001 From: RblSb Date: Mon, 29 Jul 2024 21:56:57 +0300 Subject: [PATCH] Fix relative emote urls --- lib/main.dart | 4 +++- lib/models/app.dart | 2 +- lib/models/chat.dart | 7 ++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 423f237..c8db0c6 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -192,7 +192,9 @@ class _ServerListPageState extends State { if (!link.contains('://')) link = 'http://$link'; final uri = Uri.parse(link); final protocol = uri.scheme == 'https' ? 'wss' : 'ws'; - final port = uri.port == 80 ? '' : ':${uri.port}'; + var port = uri.port == 0 ? '' : ':${uri.port}'; + if (uri.scheme == 'http' && uri.port == 80) port = ''; + if (uri.scheme == 'https' && uri.port == 443) port = ''; final url = '$protocol://${uri.host}$port${uri.path}'; Navigator.of(context).popUntil((route) => route.isFirst); Navigator.push( diff --git a/lib/models/app.dart b/lib/models/app.dart index 4d92ddd..f5748ca 100644 --- a/lib/models/app.dart +++ b/lib/models/app.dart @@ -155,7 +155,7 @@ class AppModel extends ChangeNotifier { ); playlist.setPlaylistLock(type.isPlaylistOpen); player.loadVideo(playlist.pos); - chat.setEmotes(type.config.emotes); + chat.setEmotes(type.config.emotes, getChannelLink()); chatPanel.notifyListeners(); if (chat.isUnknownClient) tryAutologin(); break; diff --git a/lib/models/chat.dart b/lib/models/chat.dart index 0ecfba7..4bcd9f7 100644 --- a/lib/models/chat.dart +++ b/lib/models/chat.dart @@ -53,7 +53,12 @@ class ChatModel extends ChangeNotifier { notifyListeners(); } - void setEmotes(List emotes) { + void setEmotes(List emotes, String relativeHost) { + for (final emote in emotes) { + if (emote.image.startsWith('/')) { + emote.image = '$relativeHost${emote.image}'; + } + } _emotes = emotes; emotesPattern = RegExp('(' + escapeRegExp(