self.client = client
+ self.update_fave_boost(data)
+
+ def update_fave_boost(self, data):
+ self.favourited = data.get('favourited', False)
+ self.boosted = data.get('boosted', False)
+
def text(self):
- yield text.SeparatorLine(self.datestamp)
+ yield text.SeparatorLine(self.datestamp,
+ self.favourited, self.boosted)
yield text.FromLine(self.client.fq(self.account['acct']),
self.account['display_name'])
if self.booster is not None:
if self.select_type == 'send':
sl.keys.append(('SPACE', 'Reply'))
elif self.select_type == 'favourite':
- sl.keys.append(('SPACE', 'Fave'))
- sl.keys.append(('D', 'Unfave'))
+ if not self.statuses[self.select_target].favourited:
+ sl.keys.append(('SPACE', 'Fave'))
+ if self.statuses[self.select_target].favourited:
+ sl.keys.append(('D', 'Unfave'))
elif self.select_type == 'boost':
- sl.keys.append(('SPACE', 'Boost'))
- sl.keys.append(('D', 'Unboost'))
+ if not self.statuses[self.select_target].boosted:
+ sl.keys.append(('SPACE', 'Boost'))
+ if self.statuses[self.select_target].boosted:
+ sl.keys.append(('D', 'Unboost'))
sl.keys.append(('-', None))
sl.keys.append(('+', None))
sl.keys.append(('Q', 'Quit'))
def favourite_complete(self, direction):
self.mode = 'normal'
- reply_id = self.statuses[self.select_target].get_reply_id()
+ target = self.statuses[self.select_target]
+ reply_id = target.get_reply_id()
verb = "favourite" if direction > 0 else "unfavourite"
- self.cc.post(f"statuses/{reply_id}/{verb}")
+ data = self.cc.post(f"statuses/{reply_id}/{verb}")
+ target.update_fave_boost(data)
def boost_complete(self, direction):
self.mode = 'normal'
- reply_id = self.statuses[self.select_target].get_reply_id()
+ target = self.statuses[self.select_target]
+ reply_id = target.get_reply_id()
verb = "reblog" if direction > 0 else "unreblog"
- self.cc.post(f"statuses/{reply_id}/{verb}")
+ data = self.cc.post(f"statuses/{reply_id}/{verb}")
+ target.update_fave_boost(data)
def move_to(self, pos):
old_linepos = self.linepos
yield ColouredString("")
class SeparatorLine:
- def __init__(self, timestamp):
+ def __init__(self, timestamp, favourited=False, boosted=False):
self.timestamp = timestamp
+ self.favourited = favourited
+ self.boosted = boosted
def render(self, width):
date = time.strftime("%a %b %e %H:%M:%S %Y",
suffix = (ColouredString("[", 'S') +
ColouredString(date, 'D') +
ColouredString("]--", 'S'))
+ if self.boosted:
+ suffix = (ColouredString("[", 'S') +
+ ColouredString('B', 'D') +
+ ColouredString("]--", 'S')) + suffix
+ if self.favourited:
+ suffix = (ColouredString("[", 'S') +
+ ColouredString('F', 'D') +
+ ColouredString("]--", 'S')) + suffix
yield ColouredString("-", 'S') * (width - 1 - suffix.width) + suffix
class EditorHeaderSeparator: