Show the account feed after it loads
Refresh fetched the account feed correctly -- the status line said "60 videos in feed" -- and the page stayed empty with "No subscriptions yet" on it. The empty-state hint added in 5.5.0 hides the grid so it can sit centred rather than pinned under a large blank area. Every path that changes the grid re-runs that check afterwards and shows it again; the account path was the one that did not, so the grid stayed hidden from startup no matter what was loaded into it. The local feed re-runs it and was unaffected, which is why this only showed up for someone signed in. Two related things while here. The empty-state message was written for local subscriptions and is wrong advice in account mode, which does not use them -- it now says to press Refresh rather than to go and subscribe to something. And the Subscriptions panel, which lists local subscriptions, is hidden in account mode instead of sitting empty beside a full feed and implying something failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -10,5 +10,5 @@ match `version` in pyproject.toml and the repository's latest signed tag --
|
||||
this package's tag line continues YTSage's, which is why it starts at 5.x.
|
||||
"""
|
||||
|
||||
__version__ = "5.5.1"
|
||||
__version__ = "5.5.2"
|
||||
__author__ = "Houmeres"
|
||||
|
||||
@@ -148,7 +148,10 @@ class FeedPage(QWidget):
|
||||
splitter = QSplitter(Qt.Orientation.Horizontal, self)
|
||||
layout.addWidget(splitter, stretch=1)
|
||||
|
||||
side = QWidget()
|
||||
# Kept as an attribute: account mode does not use local subscriptions,
|
||||
# so the panel is hidden there rather than sitting empty beside a full
|
||||
# feed and implying something is missing.
|
||||
self.subs_panel = side = QWidget()
|
||||
side_layout = QVBoxLayout(side)
|
||||
side_layout.setContentsMargins(0, 0, 4, 0)
|
||||
subs_label = QLabel(_("feed.subscriptions"))
|
||||
@@ -352,16 +355,26 @@ class FeedPage(QWidget):
|
||||
Feed is the first tab now, so an empty one is the first thing a new
|
||||
user sees. Say what to do about it rather than showing a blank grid.
|
||||
"""
|
||||
account_mode = (self.mode_combo.currentData() or "local") == "account"
|
||||
self.subs_panel.setVisible(not account_mode)
|
||||
|
||||
self.grid.empty_label.hide()
|
||||
if self.grid.card_count() > 0:
|
||||
self.empty_hint.hide()
|
||||
self.grid.show()
|
||||
return
|
||||
self.empty_hint.setText(
|
||||
_("feed.empty_no_subscriptions")
|
||||
if not LibraryManager.subscriptions()
|
||||
else _("feed.empty_not_refreshed")
|
||||
)
|
||||
|
||||
# The message depends on the mode: account mode does not use local
|
||||
# subscriptions at all, so telling someone to go and subscribe to
|
||||
# something would be wrong advice.
|
||||
if account_mode:
|
||||
message = _("feed.empty_account")
|
||||
elif not LibraryManager.subscriptions():
|
||||
message = _("feed.empty_no_subscriptions")
|
||||
else:
|
||||
message = _("feed.empty_not_refreshed")
|
||||
self.empty_hint.setText(message)
|
||||
|
||||
# Hide the empty grid so the hint sits in the middle of the page
|
||||
# rather than pinned under a large blank area.
|
||||
self.grid.hide()
|
||||
@@ -383,10 +396,15 @@ class FeedPage(QWidget):
|
||||
def _on_account_feed(self, entries: List[Dict[str, Any]]) -> None:
|
||||
self.grid.set_entries(entries)
|
||||
self.status_label.setText(_("feed.refreshed", count=len(entries)))
|
||||
# Without this the grid stays hidden behind the empty-state hint that
|
||||
# was shown at startup, so a successful refresh reported "60 videos in
|
||||
# feed" above a "No subscriptions yet" message and no videos.
|
||||
self._update_empty_state()
|
||||
|
||||
def _on_account_error(self, message: str) -> None:
|
||||
logger.error(f"Account feed failed: {message}")
|
||||
self.status_label.setText(_("feed.account_failed", error=message[:200]))
|
||||
self._update_empty_state()
|
||||
|
||||
def _on_account_finished(self) -> None:
|
||||
self.refresh_btn.setEnabled(True)
|
||||
|
||||
@@ -760,7 +760,8 @@
|
||||
"empty_not_refreshed": "Nothing here yet.\n\nPress Refresh to fetch the latest uploads from your subscriptions.",
|
||||
"sign_in": "Sign in with cookies…",
|
||||
"sign_in_tooltip": "Use your YouTube account via browser cookies, which enables the account feed",
|
||||
"account_requires_cookies": "Requires signing in with cookies"
|
||||
"account_requires_cookies": "Requires signing in with cookies",
|
||||
"empty_account": "Nothing loaded yet.\n\nPress Refresh to fetch your YouTube subscription feed."
|
||||
},
|
||||
"account": {
|
||||
"signed_out": "Not signed in",
|
||||
|
||||
@@ -143,7 +143,8 @@ class LocalizationManager:
|
||||
"empty_not_refreshed": "Nothing here yet.\n\nPress Refresh to fetch the latest uploads from your subscriptions.",
|
||||
"sign_in": "Sign in with cookies…",
|
||||
"sign_in_tooltip": "Use your YouTube account via browser cookies, which enables the account feed",
|
||||
"account_requires_cookies": "Requires signing in with cookies"
|
||||
"account_requires_cookies": "Requires signing in with cookies",
|
||||
"empty_account": "Nothing loaded yet.\n\nPress Refresh to fetch your YouTube subscription feed."
|
||||
},
|
||||
"cards": {
|
||||
"play": "▶ Play",
|
||||
|
||||
Reference in New Issue
Block a user