final tweaks and renames for twitter likes
This commit is contained in:
parent
14a5a91685
commit
a660829ec7
1 changed files with 15 additions and 7 deletions
|
@ -81,13 +81,20 @@ class Tweet(NamedTuple):
|
||||||
class Like(NamedTuple):
|
class Like(NamedTuple):
|
||||||
raw: Json
|
raw: Json
|
||||||
|
|
||||||
|
# TODO need to make permalink/link/url consistent across my stuff..
|
||||||
|
@property
|
||||||
|
def permalink(self) -> str:
|
||||||
|
# doesn'tseem like link it export is more specific...
|
||||||
|
return f'https://twitter.com/i/web/status/{self.tid}'
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def tid(self) -> Tid:
|
def tid(self) -> Tid:
|
||||||
return self.raw['tweetId']
|
return self.raw['tweetId']
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def text(self) -> str:
|
def text(self) -> Optional[str]:
|
||||||
return self.raw['fullText']
|
# ugh. I think none means that tweet was deleted?
|
||||||
|
return self.raw.get('fullText')
|
||||||
|
|
||||||
|
|
||||||
class ZipExport:
|
class ZipExport:
|
||||||
|
@ -113,22 +120,23 @@ class ZipExport:
|
||||||
# TODO ugh. would be nice to unify Tweet/Like interface
|
# TODO ugh. would be nice to unify Tweet/Like interface
|
||||||
# however, akeout only got tweetId, full text and url
|
# however, akeout only got tweetId, full text and url
|
||||||
for r in self.raw('like.js'):
|
for r in self.raw('like.js'):
|
||||||
yield Like(r)
|
assert set(r.keys()) == {'like'}
|
||||||
|
yield Like(r['like'])
|
||||||
|
|
||||||
|
|
||||||
def tweets_all() -> List[Tweet]:
|
def tweets() -> List[Tweet]:
|
||||||
return list(sorted(ZipExport().tweets(), key=lambda t: t.dt))
|
return list(sorted(ZipExport().tweets(), key=lambda t: t.dt))
|
||||||
|
|
||||||
|
|
||||||
def likes_all() -> List[Like]:
|
def likes() -> List[Like]:
|
||||||
return list(ZipExport().likes())
|
return list(ZipExport().likes())
|
||||||
|
|
||||||
|
|
||||||
def predicate(p) -> List[Tweet]:
|
def predicate(p) -> List[Tweet]:
|
||||||
return [t for t in tweets_all() if p(t)]
|
return [t for t in tweets() if p(t)]
|
||||||
|
|
||||||
|
|
||||||
def predicate_date(p) -> List[Tweet]:
|
def predicate_date(p) -> List[Tweet]: # TODO rename to by_date?
|
||||||
return predicate(lambda t: p(t.dt.date()))
|
return predicate(lambda t: p(t.dt.date()))
|
||||||
|
|
||||||
# TODO move these to private tests?
|
# TODO move these to private tests?
|
||||||
|
|
Loading…
Add table
Reference in a new issue