class Status:
def __init__(self, data):
+ rb = data.get('reblog')
+ if rb is not None:
+ self.booster = data['account']
+ data = rb
+ else:
+ self.booster = None
+
self.post_id = data['id']
date, suffix = data['created_at'].split(".", 1)
yield text.SeparatorLine(self.datestamp)
yield text.FromLine('@' + self.account['acct'],
self.account['display_name'])
+ if self.booster is not None:
+ yield text.BoosterLine('@' + self.booster['acct'],
+ self.booster['display_name'])
yield text.BlankLine()
yield from self.content
yield text.BlankLine()
'S': [0, 1, 7, 44, 37],
'D': [0, 7, 44, 37],
'F': [0, 1, 32],
+ 'f': [0, 32],
'c': [0, 33],
'#': [0, 36],
'@': [0, 32],
ColouredString("]--", 'S'))
yield ColouredString("-", 'S') * (width - 1 - suffix.width) + suffix
-class FromLine:
+class UsernameHeader:
def __init__(self, account, nameline):
self.account = account
self.nameline = nameline
def render(self, width):
# FIXME: truncate
- yield (ColouredString("From: ") +
- ColouredString(f"{self.nameline} ({self.account})", 'F'))
+ yield (ColouredString(self.header + ": ") +
+ ColouredString(f"{self.nameline} ({self.account})",
+ self.colour))
+
+class FromLine(UsernameHeader):
+ header = "From"
+ colour = "F"
+class BoosterLine(UsernameHeader):
+ header = "Via"
+ colour = "f"
class Paragraph:
def __init__(self):