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)