|
|
|
|
@ -79,14 +79,14 @@ class LeftPane(urwid.ListBox):
|
|
|
|
|
itemId = attrMap[0]
|
|
|
|
|
name = attrMap[1]
|
|
|
|
|
tui.articles = tui.cache.getArticlesFromCategory(itemId, tui.show_read)
|
|
|
|
|
tui.articleView.fill(tui.articles)
|
|
|
|
|
tui.articleView.fill(tui.articles, True)
|
|
|
|
|
self.setArticlesPaneTitle(name)
|
|
|
|
|
|
|
|
|
|
def setFeedArticles(self, attrMap):
|
|
|
|
|
itemId = attrMap[0]
|
|
|
|
|
tui.articles = tui.cache.getArticlesFromFeed(itemId, tui.show_read)
|
|
|
|
|
if tui.articles is not None:
|
|
|
|
|
tui.articleView.fill(tui.articles)
|
|
|
|
|
tui.articleView.fill(tui.articles, False)
|
|
|
|
|
self.setArticlesPaneTitle(attrMap[1])
|
|
|
|
|
|
|
|
|
|
def keypress(self, size, key): # noqa
|
|
|
|
|
@ -122,6 +122,27 @@ class LeftPane(urwid.ListBox):
|
|
|
|
|
pass
|
|
|
|
|
return
|
|
|
|
|
elif key in ("l", "right"):
|
|
|
|
|
self.stepInto()
|
|
|
|
|
return
|
|
|
|
|
elif key in ("h", "left"):
|
|
|
|
|
self.stepOut()
|
|
|
|
|
return
|
|
|
|
|
elif key in ("r"):
|
|
|
|
|
self.markAsRead()
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
return super().keypress(size, key)
|
|
|
|
|
|
|
|
|
|
def stepOut(self):
|
|
|
|
|
if not self.isCategoryView:
|
|
|
|
|
self.isCategoryView = True
|
|
|
|
|
self.fill(tui.categories, True)
|
|
|
|
|
tui.leftBox.set_title("Categories")
|
|
|
|
|
self.set_focus(self.categoryPosition)
|
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
|
|
|
|
|
|
def stepInto(self):
|
|
|
|
|
try:
|
|
|
|
|
if self.isCategoryView and self.currentCategory != "Favorites":
|
|
|
|
|
self.isCategoryView = False
|
|
|
|
|
@ -136,17 +157,8 @@ class LeftPane(urwid.ListBox):
|
|
|
|
|
tui.leftBox.set_title(categoryName)
|
|
|
|
|
except BaseException:
|
|
|
|
|
pass
|
|
|
|
|
return
|
|
|
|
|
elif key in ("h", "left"):
|
|
|
|
|
if not self.isCategoryView:
|
|
|
|
|
self.isCategoryView = True
|
|
|
|
|
self.fill(tui.categories, True)
|
|
|
|
|
tui.leftBox.set_title("Categories")
|
|
|
|
|
self.set_focus(self.categoryPosition)
|
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
|
return
|
|
|
|
|
elif key in ("r"):
|
|
|
|
|
|
|
|
|
|
def markAsRead(self):
|
|
|
|
|
try:
|
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
del self.body[idx]
|
|
|
|
|
@ -156,17 +168,16 @@ class LeftPane(urwid.ListBox):
|
|
|
|
|
tui.cache.markStreamAsRead(self.processAttrMap(focus_widget.attr_map)[0])
|
|
|
|
|
tui.categories = tui.cache.getCategories(tui.show_read)
|
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
if focus_widget is None and not self.isCategoryView:
|
|
|
|
|
self.stepOut()
|
|
|
|
|
return
|
|
|
|
|
if self.isCategoryView:
|
|
|
|
|
self.currentCategory = self.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
|
else:
|
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
|
except BaseException as e:
|
|
|
|
|
Utils.writeLog(e)
|
|
|
|
|
except BaseException:
|
|
|
|
|
pass
|
|
|
|
|
return
|
|
|
|
|
|
|
|
|
|
return super().keypress(size, key)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class RightPane(urwid.ListBox):
|
|
|
|
|
@ -179,16 +190,25 @@ class RightPane(urwid.ListBox):
|
|
|
|
|
self.article = None
|
|
|
|
|
self.chunkNumber = 0
|
|
|
|
|
|
|
|
|
|
def fill(self, articles):
|
|
|
|
|
def fill(self, articles, isCategoryView):
|
|
|
|
|
status = ""
|
|
|
|
|
|
|
|
|
|
def makeColumns(article):
|
|
|
|
|
title = article[1]
|
|
|
|
|
if isCategoryView:
|
|
|
|
|
title += " (" + article[-1] + ")"
|
|
|
|
|
cols = [
|
|
|
|
|
(2, urwid.Text(status)),
|
|
|
|
|
(16, urwid.Text(article[3])),
|
|
|
|
|
urwid.Text(title),
|
|
|
|
|
]
|
|
|
|
|
return cols
|
|
|
|
|
|
|
|
|
|
if tui.show_read:
|
|
|
|
|
status = "R"
|
|
|
|
|
items = [
|
|
|
|
|
urwid.AttrMap(
|
|
|
|
|
urwid.Columns(
|
|
|
|
|
[(2, urwid.Text(status)),
|
|
|
|
|
(16, urwid.Text(article[3])),
|
|
|
|
|
urwid.Text(article[1])]),
|
|
|
|
|
urwid.Columns(makeColumns(article)),
|
|
|
|
|
article[0],
|
|
|
|
|
"reveal focus") for article in articles]
|
|
|
|
|
walker = urwid.SimpleListWalker(items)
|
|
|
|
|
@ -231,7 +251,6 @@ class RightPane(urwid.ListBox):
|
|
|
|
|
pass
|
|
|
|
|
return
|
|
|
|
|
elif key in ("f"):
|
|
|
|
|
Utils.writeLog(tui.feedView.currentCategory)
|
|
|
|
|
if self.isList is True:
|
|
|
|
|
article_widget, article_idx = self.get_focus()
|
|
|
|
|
articleId = article_widget.attr_map[None]
|
|
|
|
|
@ -240,7 +259,6 @@ class RightPane(urwid.ListBox):
|
|
|
|
|
item_widget, item_idx = tui.feedView.get_focus()
|
|
|
|
|
if tui.feedView.isCategoryView:
|
|
|
|
|
tui.feedView.fill(tui.categories, tui.feedView.isCategoryView)
|
|
|
|
|
Utils.writeLog(tui.feedView.currentCategory)
|
|
|
|
|
tui.feedView.set_focus(item_idx)
|
|
|
|
|
if item_idx == 0:
|
|
|
|
|
tui.feedView.setCategoryArticles(('Favorites', 'Favorites'))
|
|
|
|
|
@ -307,7 +325,7 @@ class RightPane(urwid.ListBox):
|
|
|
|
|
try:
|
|
|
|
|
if self.isList is False:
|
|
|
|
|
self.isList = True
|
|
|
|
|
self.fill(tui.articles)
|
|
|
|
|
self.fill(tui.articles, tui.feedView.isCategoryView)
|
|
|
|
|
focusFeed, idx = tui.feedView.get_focus()
|
|
|
|
|
tui.rightBox.set_title(tui.feedView.processAttrMap(focusFeed.attr_map)[1])
|
|
|
|
|
self.set_focus(self.articlePosition)
|
|
|
|
|
@ -429,7 +447,7 @@ class TUI(urwid.Frame):
|
|
|
|
|
item = self.feedView.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
|
name = self.feedView.processAttrMap(focus_widget.attr_map)[1]
|
|
|
|
|
self.articles = self.cache.getArticlesFromCategory(item, self.show_read)
|
|
|
|
|
self.articleView.fill(self.articles)
|
|
|
|
|
self.articleView.fill(self.articles, True)
|
|
|
|
|
self.feedView.setArticlesPaneTitle(name)
|
|
|
|
|
except BaseException:
|
|
|
|
|
pass
|
|
|
|
|
|