E-Paper-Calendar/Calendar/RssPostListDesign.py

37 lines
1.2 KiB
Python
Raw Normal View History

2019-03-04 20:09:23 +01:00
from DesignEntity import DesignEntity
from TableDesign import TableDesign
2019-03-24 21:27:32 +01:00
from Assets import defaultfontsize
2019-03-04 20:09:23 +01:00
2019-07-13 08:05:35 +02:00
2019-03-04 20:09:23 +01:00
class RssPostListDesign (DesignEntity):
"""Creates a TableDesign filled with rss post
2019-03-04 20:09:23 +01:00
date and title"""
2019-07-13 08:05:35 +02:00
def __init__(self, size, rssfeed, text_size=defaultfontsize):
2019-03-04 20:09:23 +01:00
super(RssPostListDesign, self).__init__(size)
self.rssfeed = rssfeed
self.__post_matrix__ = []
self.text_size = text_size
2019-07-13 08:05:35 +02:00
def __finish_image__(self):
2019-03-04 20:09:23 +01:00
self.__fill_post_matrix__()
2019-07-13 08:05:35 +02:00
table_design = TableDesign(self.size, line_spacing=2, col_spacing=3, matrix=self.__post_matrix__,
fontsize=self.text_size, mask=False, wrap=True, truncate_rows=True)
2019-03-04 20:09:23 +01:00
self.draw_design(table_design)
2019-07-13 08:05:35 +02:00
def __get_formatted_post__(self, post):
2019-03-04 20:09:23 +01:00
date = post.datetime.strftime('%d %b')
date = self.__remove_leading_zero__(date)
2019-07-13 08:05:35 +02:00
return ['', '', post.title]
2019-03-04 20:09:23 +01:00
def __remove_leading_zero__(self, text):
while text[0] is '0':
text = text[1:]
return text
2019-07-13 08:05:35 +02:00
def __fill_post_matrix__(self):
2019-03-04 20:09:23 +01:00
for post in self.rssfeed.get_latest_posts():
row = self.__get_formatted_post__(post)
2019-07-13 08:05:35 +02:00
self.__post_matrix__.append(row)