~comcloudway/melon

4900d9459ea60b38125b0cdca0a6b68252786f1c — Jakob Meier 6 months ago cec6e85
 decode unicode when rendering the playlist picker, local playlists and
 on the video player screen
3 files changed, 11 insertions(+), 8 deletions(-)

M melon/player/__init__.py
M melon/playlist/__init__.py
M melon/playlist/pick.py
M melon/player/__init__.py => melon/player/__init__.py +5 -4
@@ 10,6 10,7 @@ from melon.widgets.feeditem import AdaptiveFeedItem
from melon.widgets.preferencerow import PreferenceRow, PreferenceType, Preference
from melon.widgets.iconbutton import IconButton
from melon.models import get_app_settings, notify, add_to_history
from unidecode import unidecode

class PlayerScreen(Adw.NavigationPage):
    def on_open_in_browser(self, arg):


@@ 46,7 47,7 @@ class PlayerScreen(Adw.NavigationPage):

        # video details
        self.about = Adw.PreferencesGroup()
        self.about.set_title(self.video.title.replace("&","&"))
        self.about.set_title(unidecode(self.video.title).replace("&","&"))

        # Load the media element in a webview
        self.streams = self.instance.get_video_streams(self.video_id)


@@ 62,7 63,7 @@ class PlayerScreen(Adw.NavigationPage):
                "quality",
                "Quality", "Video quality",
                PreferenceType.DROPDOWN,
                [ stream.quality for stream in self.streams ],
                [ unidecode(stream.quality) for stream in self.streams ],
                default_stream)
            row = PreferenceRow(pref)
            row.set_callback(self.select_stream)


@@ 71,9 72,9 @@ class PlayerScreen(Adw.NavigationPage):
        # expandable description field
        desc_field = Adw.ExpanderRow()
        desc_field.set_title("Description")
        desc_field.set_subtitle(self.video.description[:40].replace("&","&")+"...")
        desc_field.set_subtitle(unidecode(self.video.description[:40]).replace("&","&")+"...")
        desc = Adw.ActionRow()
        desc.set_subtitle(self.video.description.replace("&","&"))
        desc.set_subtitle(unidecode(self.video.description).replace("&","&"))
        desc_field.add_row(desc)
        self.about.add(desc_field)
        self.box.append(self.about)

M melon/playlist/__init__.py => melon/playlist/__init__.py +3 -2
@@ 9,6 9,7 @@ from melon.widgets.iconbutton import IconButton
from melon.widgets.feeditem import AdaptiveFeedItem
from melon.models import get_app_settings, get_local_playlist
from melon.models import is_server_enabled, ensure_server_disabled, ensure_server_enabled
from unidecode import unidecode

class LocalPlaylistScreen(Adw.NavigationPage):
    def __init__(self, playlist_id, *args, **kwargs):


@@ 42,8 43,8 @@ class LocalPlaylistScreen(Adw.NavigationPage):
            self.box = Adw.PreferencesPage()
            # create data group
            group = Adw.PreferencesGroup()
            group.set_title(playlist.title)
            group.set_description(playlist.description)
            group.set_title(unidecode(playlist.title))
            group.set_description(unidecode(playlist.description))
            app_conf = get_app_settings()
            self.box.add(group)
            # add playlist content to group as well

M melon/playlist/pick.py => melon/playlist/pick.py +3 -2
@@ 3,6 3,7 @@ import gi
gi.require_version('Gtk', '4.0')
gi.require_version('Adw', '1')
from gi.repository import Gtk, Adw, Gio, GLib, Gdk
from unidecode import unidecode

from melon.widgets.feeditem import AdaptiveFeedItem
from melon.widgets.iconbutton import IconButton


@@ 57,8 58,8 @@ class PlaylistPickerDialog(SimpleDialog):
            if playlist.type == PlaylistWrapperType.EXTERNAL:
                continue
            row = Adw.ActionRow()
            row.set_title(playlist.inner.title.replace("&","&"))
            row.set_subtitle(playlist.inner.description.replace("&","&"))
            row.set_title(unidecode(playlist.inner.title).replace("&","&"))
            row.set_subtitle(unidecode(playlist.inner.description).replace("&","&"))
            pixbuf = None
            if app_conf["show_images_in_feed"]:
                pixbuf = pixbuf_from_url(playlist.inner.thumbnail)