Skip to content

Commit e491fd4

Browse files
authored
[cookies] Fix Linux desktop environment detection (#13197)
Closes #12885 Authored by: mbway
1 parent 32ed5f1 commit e491fd4

File tree

2 files changed

+35
-28
lines changed

2 files changed

+35
-28
lines changed

test/test_cookies.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,14 @@ def test_get_desktop_environment(self):
5858
({'DESKTOP_SESSION': 'kde'}, _LinuxDesktopEnvironment.KDE3),
5959
({'DESKTOP_SESSION': 'xfce'}, _LinuxDesktopEnvironment.XFCE),
6060

61+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'gnome'}, _LinuxDesktopEnvironment.GNOME),
62+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'mate'}, _LinuxDesktopEnvironment.GNOME),
63+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'kde4'}, _LinuxDesktopEnvironment.KDE4),
64+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'kde'}, _LinuxDesktopEnvironment.KDE3),
65+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'xfce'}, _LinuxDesktopEnvironment.XFCE),
66+
67+
({'XDG_CURRENT_DESKTOP': 'my_custom_de', 'DESKTOP_SESSION': 'my_custom_de', 'GNOME_DESKTOP_SESSION_ID': 1}, _LinuxDesktopEnvironment.GNOME),
68+
6169
({'GNOME_DESKTOP_SESSION_ID': 1}, _LinuxDesktopEnvironment.GNOME),
6270
({'KDE_FULL_SESSION': 1}, _LinuxDesktopEnvironment.KDE3),
6371
({'KDE_FULL_SESSION': 1, 'DESKTOP_SESSION': 'kde4'}, _LinuxDesktopEnvironment.KDE4),

yt_dlp/cookies.py

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -764,11 +764,11 @@ def _get_linux_desktop_environment(env, logger):
764764
GetDesktopEnvironment
765765
"""
766766
xdg_current_desktop = env.get('XDG_CURRENT_DESKTOP', None)
767-
desktop_session = env.get('DESKTOP_SESSION', None)
767+
desktop_session = env.get('DESKTOP_SESSION', '')
768768
if xdg_current_desktop is not None:
769769
for part in map(str.strip, xdg_current_desktop.split(':')):
770770
if part == 'Unity':
771-
if desktop_session is not None and 'gnome-fallback' in desktop_session:
771+
if 'gnome-fallback' in desktop_session:
772772
return _LinuxDesktopEnvironment.GNOME
773773
else:
774774
return _LinuxDesktopEnvironment.UNITY
@@ -797,35 +797,34 @@ def _get_linux_desktop_environment(env, logger):
797797
return _LinuxDesktopEnvironment.UKUI
798798
elif part == 'LXQt':
799799
return _LinuxDesktopEnvironment.LXQT
800-
logger.info(f'XDG_CURRENT_DESKTOP is set to an unknown value: "{xdg_current_desktop}"')
801-
802-
elif desktop_session is not None:
803-
if desktop_session == 'deepin':
804-
return _LinuxDesktopEnvironment.DEEPIN
805-
elif desktop_session in ('mate', 'gnome'):
806-
return _LinuxDesktopEnvironment.GNOME
807-
elif desktop_session in ('kde4', 'kde-plasma'):
800+
logger.debug(f'XDG_CURRENT_DESKTOP is set to an unknown value: "{xdg_current_desktop}"')
801+
802+
if desktop_session == 'deepin':
803+
return _LinuxDesktopEnvironment.DEEPIN
804+
elif desktop_session in ('mate', 'gnome'):
805+
return _LinuxDesktopEnvironment.GNOME
806+
elif desktop_session in ('kde4', 'kde-plasma'):
807+
return _LinuxDesktopEnvironment.KDE4
808+
elif desktop_session == 'kde':
809+
if 'KDE_SESSION_VERSION' in env:
808810
return _LinuxDesktopEnvironment.KDE4
809-
elif desktop_session == 'kde':
810-
if 'KDE_SESSION_VERSION' in env:
811-
return _LinuxDesktopEnvironment.KDE4
812-
else:
813-
return _LinuxDesktopEnvironment.KDE3
814-
elif 'xfce' in desktop_session or desktop_session == 'xubuntu':
815-
return _LinuxDesktopEnvironment.XFCE
816-
elif desktop_session == 'ukui':
817-
return _LinuxDesktopEnvironment.UKUI
818811
else:
819-
logger.info(f'DESKTOP_SESSION is set to an unknown value: "{desktop_session}"')
820-
812+
return _LinuxDesktopEnvironment.KDE3
813+
elif 'xfce' in desktop_session or desktop_session == 'xubuntu':
814+
return _LinuxDesktopEnvironment.XFCE
815+
elif desktop_session == 'ukui':
816+
return _LinuxDesktopEnvironment.UKUI
821817
else:
822-
if 'GNOME_DESKTOP_SESSION_ID' in env:
823-
return _LinuxDesktopEnvironment.GNOME
824-
elif 'KDE_FULL_SESSION' in env:
825-
if 'KDE_SESSION_VERSION' in env:
826-
return _LinuxDesktopEnvironment.KDE4
827-
else:
828-
return _LinuxDesktopEnvironment.KDE3
818+
logger.debug(f'DESKTOP_SESSION is set to an unknown value: "{desktop_session}"')
819+
820+
if 'GNOME_DESKTOP_SESSION_ID' in env:
821+
return _LinuxDesktopEnvironment.GNOME
822+
elif 'KDE_FULL_SESSION' in env:
823+
if 'KDE_SESSION_VERSION' in env:
824+
return _LinuxDesktopEnvironment.KDE4
825+
else:
826+
return _LinuxDesktopEnvironment.KDE3
827+
829828
return _LinuxDesktopEnvironment.OTHER
830829

831830

0 commit comments

Comments
 (0)