|
|
|
@ -22,12 +22,13 @@ class LeftPane(urwid.ListBox):
|
|
|
|
self.categoryPosition = 0
|
|
|
|
self.categoryPosition = 0
|
|
|
|
self.isCategoryView = True
|
|
|
|
self.isCategoryView = True
|
|
|
|
self.currentCategory = ""
|
|
|
|
self.currentCategory = ""
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
|
|
|
if self.isCategoryView:
|
|
|
|
def processAttrMap(self, attrMap):
|
|
|
|
try:
|
|
|
|
res = attrMap[None]
|
|
|
|
self.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
if res == "favorite":
|
|
|
|
except BaseException:
|
|
|
|
return attrMap["attrs"]
|
|
|
|
self.currentCategory = None
|
|
|
|
else:
|
|
|
|
|
|
|
|
return res
|
|
|
|
|
|
|
|
|
|
|
|
def fill(self, items, is_category_view):
|
|
|
|
def fill(self, items, is_category_view):
|
|
|
|
def getAttrs(item):
|
|
|
|
def getAttrs(item):
|
|
|
|
@ -35,11 +36,34 @@ class LeftPane(urwid.ListBox):
|
|
|
|
return (item[0], item[1], item[2])
|
|
|
|
return (item[0], item[1], item[2])
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
return (item[0], item[1])
|
|
|
|
return (item[0], item[1])
|
|
|
|
items = [urwid.AttrMap(urwid.Columns([
|
|
|
|
if is_category_view is True:
|
|
|
|
(16, urwid.Text(item[4])), urwid.Text(item[1]), (5, urwid.Text(str(item[2])))]),
|
|
|
|
items = [
|
|
|
|
getAttrs(item), "reveal focus") for item in items]
|
|
|
|
urwid.AttrMap(
|
|
|
|
|
|
|
|
urwid.Columns(
|
|
|
|
|
|
|
|
[(16, urwid.Text(items[0][4])),
|
|
|
|
|
|
|
|
urwid.Text(items[0][1]),
|
|
|
|
|
|
|
|
(5, urwid.Text(str(items[0][2])))]),
|
|
|
|
|
|
|
|
{None: "favorite", "attrs": getAttrs(items[0])},
|
|
|
|
|
|
|
|
"reveal focus"),
|
|
|
|
|
|
|
|
*
|
|
|
|
|
|
|
|
[urwid.AttrMap(
|
|
|
|
|
|
|
|
urwid.Columns([(16, urwid.Text(item[4])),
|
|
|
|
|
|
|
|
urwid.Text(item[1]),
|
|
|
|
|
|
|
|
(5, urwid.Text(str(item[2])))]),
|
|
|
|
|
|
|
|
getAttrs(item),
|
|
|
|
|
|
|
|
"reveal focus") for item in items[1:]]]
|
|
|
|
|
|
|
|
else:
|
|
|
|
|
|
|
|
items = [urwid.AttrMap(urwid.Columns([
|
|
|
|
|
|
|
|
(16, urwid.Text(item[4])), urwid.Text(item[1]), (5, urwid.Text(str(item[2])))]),
|
|
|
|
|
|
|
|
getAttrs(item), "reveal focus") for item in items]
|
|
|
|
walker = urwid.SimpleListWalker(items)
|
|
|
|
walker = urwid.SimpleListWalker(items)
|
|
|
|
self.body = walker
|
|
|
|
self.body = walker
|
|
|
|
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
|
|
|
|
if self.isCategoryView:
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
self.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
|
|
|
|
except BaseException:
|
|
|
|
|
|
|
|
self.currentCategory = None
|
|
|
|
|
|
|
|
|
|
|
|
def findById(self, id):
|
|
|
|
def findById(self, id):
|
|
|
|
idx = 0
|
|
|
|
idx = 0
|
|
|
|
@ -75,8 +99,8 @@ class LeftPane(urwid.ListBox):
|
|
|
|
self.set_focus(idx)
|
|
|
|
self.set_focus(idx)
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
if self.isCategoryView:
|
|
|
|
if self.isCategoryView:
|
|
|
|
self.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
self.currentCategory = self.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
self.setCategoryArticles(focus_widget.attr_map[None])
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
except BaseException:
|
|
|
|
except BaseException:
|
|
|
|
@ -90,8 +114,8 @@ class LeftPane(urwid.ListBox):
|
|
|
|
self.set_focus(idx)
|
|
|
|
self.set_focus(idx)
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
if self.isCategoryView:
|
|
|
|
if self.isCategoryView:
|
|
|
|
self.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
self.currentCategory = self.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
self.setCategoryArticles(focus_widget.attr_map[None])
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
except BaseException:
|
|
|
|
except BaseException:
|
|
|
|
@ -103,8 +127,8 @@ class LeftPane(urwid.ListBox):
|
|
|
|
self.isCategoryView = False
|
|
|
|
self.isCategoryView = False
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
self.categoryPosition = idx
|
|
|
|
self.categoryPosition = idx
|
|
|
|
categoryId = focus_widget.attr_map[None][0]
|
|
|
|
categoryId = self.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
categoryName = focus_widget.attr_map[None][1]
|
|
|
|
categoryName = self.processAttrMap(focus_widget.attr_map)[1]
|
|
|
|
feeds = tui.cache.getFeeds(categoryId, tui.show_read)
|
|
|
|
feeds = tui.cache.getFeeds(categoryId, tui.show_read)
|
|
|
|
self.fill(feeds, False)
|
|
|
|
self.fill(feeds, False)
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
@ -120,7 +144,7 @@ class LeftPane(urwid.ListBox):
|
|
|
|
tui.leftBox.set_title("Categories")
|
|
|
|
tui.leftBox.set_title("Categories")
|
|
|
|
self.set_focus(self.categoryPosition)
|
|
|
|
self.set_focus(self.categoryPosition)
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
self.setCategoryArticles(focus_widget.attr_map[None])
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
return
|
|
|
|
return
|
|
|
|
elif key in ("r"):
|
|
|
|
elif key in ("r"):
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -129,12 +153,12 @@ class LeftPane(urwid.ListBox):
|
|
|
|
if idx > 0:
|
|
|
|
if idx > 0:
|
|
|
|
idx -= 1
|
|
|
|
idx -= 1
|
|
|
|
self.set_focus(idx)
|
|
|
|
self.set_focus(idx)
|
|
|
|
tui.cache.markStreamAsRead(focus_widget.attr_map[None][0])
|
|
|
|
tui.cache.markStreamAsRead(self.processAttrMap(focus_widget.attr_map)[0])
|
|
|
|
tui.categories = tui.cache.getCategories(tui.show_read)
|
|
|
|
tui.categories = tui.cache.getCategories(tui.show_read)
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
if self.isCategoryView:
|
|
|
|
if self.isCategoryView:
|
|
|
|
self.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
self.currentCategory = self.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
self.setCategoryArticles(focus_widget.attr_map[None])
|
|
|
|
self.setCategoryArticles(self.processAttrMap(focus_widget.attr_map))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
self.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
except BaseException as e:
|
|
|
|
except BaseException as e:
|
|
|
|
@ -231,8 +255,8 @@ class RightPane(urwid.ListBox):
|
|
|
|
tui.feedView.set_focus(new_idx)
|
|
|
|
tui.feedView.set_focus(new_idx)
|
|
|
|
focus_widget, idx = tui.feedView.get_focus()
|
|
|
|
focus_widget, idx = tui.feedView.get_focus()
|
|
|
|
if tui.feedView.isCategoryView:
|
|
|
|
if tui.feedView.isCategoryView:
|
|
|
|
tui.feedView.currentCategory = focus_widget.attr_map[None][0]
|
|
|
|
tui.feedView.currentCategory = tui.feedView.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
tui.feedView.setCategoryArticles(focus_widget.attr_map[None])
|
|
|
|
tui.feedView.setCategoryArticles(tui.feedView.processAttrMap(focus_widget.attr_map))
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
tui.feedView.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
tui.feedView.setFeedArticles(focus_widget.attr_map[None])
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
@ -250,7 +274,9 @@ class RightPane(urwid.ListBox):
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
focus_widget, idx = self.get_focus()
|
|
|
|
self.articlePosition = idx
|
|
|
|
self.articlePosition = idx
|
|
|
|
articleId = focus_widget.attr_map[None]
|
|
|
|
articleId = focus_widget.attr_map[None]
|
|
|
|
self.article = Render(*tui.cache.getArticle(articleId), tui.cache.getArticleLinks(articleId))
|
|
|
|
Utils.writeLog(tui.feedView.currentCategory)
|
|
|
|
|
|
|
|
self.article = Render(*tui.cache.getArticle(articleId, tui.feedView.currentCategory == "Favorites"),
|
|
|
|
|
|
|
|
tui.cache.getArticleLinks(articleId))
|
|
|
|
walker = urwid.SimpleListWalker([urwid.Text(self.article.firstPage)])
|
|
|
|
walker = urwid.SimpleListWalker([urwid.Text(self.article.firstPage)])
|
|
|
|
self.body = walker
|
|
|
|
self.body = walker
|
|
|
|
self.setArticleTitle()
|
|
|
|
self.setArticleTitle()
|
|
|
|
@ -269,7 +295,7 @@ class RightPane(urwid.ListBox):
|
|
|
|
self.isList = True
|
|
|
|
self.isList = True
|
|
|
|
self.fill(tui.articles)
|
|
|
|
self.fill(tui.articles)
|
|
|
|
focusFeed, idx = tui.feedView.get_focus()
|
|
|
|
focusFeed, idx = tui.feedView.get_focus()
|
|
|
|
tui.rightBox.set_title(focusFeed.attr_map[None][1])
|
|
|
|
tui.rightBox.set_title(tui.feedView.processAttrMap(focusFeed.attr_map)[1])
|
|
|
|
self.set_focus(self.articlePosition)
|
|
|
|
self.set_focus(self.articlePosition)
|
|
|
|
except BaseException:
|
|
|
|
except BaseException:
|
|
|
|
pass
|
|
|
|
pass
|
|
|
|
@ -336,7 +362,8 @@ class TUI(urwid.Frame):
|
|
|
|
def create(cls):
|
|
|
|
def create(cls):
|
|
|
|
|
|
|
|
|
|
|
|
tui = cls()
|
|
|
|
tui = cls()
|
|
|
|
palette = [("linebox", "dark blue", "black"), ("text", "dark cyan", "dark cyan"),
|
|
|
|
palette = [("linebox", "bold", "dark cyan", "standout"), ("text", "dark cyan", "dark cyan"),
|
|
|
|
|
|
|
|
("favorite", "dark green", "black"),
|
|
|
|
('header', 'white', 'black'), ('reveal focus', 'black', 'dark cyan', 'standout')]
|
|
|
|
('header', 'white', 'black'), ('reveal focus', 'black', 'dark cyan', 'standout')]
|
|
|
|
loop = urwid.MainLoop(
|
|
|
|
loop = urwid.MainLoop(
|
|
|
|
tui,
|
|
|
|
tui,
|
|
|
|
@ -380,9 +407,13 @@ class TUI(urwid.Frame):
|
|
|
|
def initialize_panes(self):
|
|
|
|
def initialize_panes(self):
|
|
|
|
try:
|
|
|
|
try:
|
|
|
|
self.feedView.fill(self.cache.getCategories(self.show_read), True)
|
|
|
|
self.feedView.fill(self.cache.getCategories(self.show_read), True)
|
|
|
|
|
|
|
|
try:
|
|
|
|
|
|
|
|
self.feedView.set_focus(1)
|
|
|
|
|
|
|
|
except BaseException:
|
|
|
|
|
|
|
|
pass
|
|
|
|
focus_widget, idx = self.feedView.get_focus()
|
|
|
|
focus_widget, idx = self.feedView.get_focus()
|
|
|
|
item = focus_widget.attr_map[None][0]
|
|
|
|
item = self.feedView.processAttrMap(focus_widget.attr_map)[0]
|
|
|
|
name = focus_widget.attr_map[None][1]
|
|
|
|
name = self.feedView.processAttrMap(focus_widget.attr_map)[1]
|
|
|
|
self.articles = self.cache.getArticlesFromCategory(item, self.show_read)
|
|
|
|
self.articles = self.cache.getArticlesFromCategory(item, self.show_read)
|
|
|
|
self.articleView.fill(self.articles)
|
|
|
|
self.articleView.fill(self.articles)
|
|
|
|
self.feedView.setArticlesPaneTitle(name)
|
|
|
|
self.feedView.setArticlesPaneTitle(name)
|
|
|
|
@ -412,7 +443,7 @@ class TUI(urwid.Frame):
|
|
|
|
tui.articleView.isList = True
|
|
|
|
tui.articleView.isList = True
|
|
|
|
elif key == "q":
|
|
|
|
elif key == "q":
|
|
|
|
raise urwid.ExitMainLoop()
|
|
|
|
raise urwid.ExitMainLoop()
|
|
|
|
elif key == "f":
|
|
|
|
elif key == "S":
|
|
|
|
olb = urwid.ListBox(urwid.SimpleListWalker([urwid.Text("")]))
|
|
|
|
olb = urwid.ListBox(urwid.SimpleListWalker([urwid.Text("")]))
|
|
|
|
overlay = urwid.Overlay(
|
|
|
|
overlay = urwid.Overlay(
|
|
|
|
urwid.LineBox(olb),
|
|
|
|
urwid.LineBox(olb),
|
|
|
|
|