From fc41c78d2072ebe1fbbe6397a87dbfedf9828940 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Tue, 2 Oct 2018 20:25:23 +0100 Subject: [PATCH] Handle twidump config properly, nicer wrapping --- tweets/__init__.py | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/tweets/__init__.py b/tweets/__init__.py index 5fc693f..a44028b 100644 --- a/tweets/__init__.py +++ b/tweets/__init__.py @@ -3,19 +3,6 @@ from typing import Union, List KARLICOSS_ID = '119756204' -# TODO how to discover configs? ... I guess symlinking... -def tweets_all(): - import sys - sys.path.append("/L/coding/twidump") - import twidump - # add current package to path to discover config?... nah, twidump should be capable of that. - from twidump.data_manipulation.timelines import TimelineLoader - from twidump.component import get_app_injector - tl_loader = get_app_injector().get(TimelineLoader) # type: TimelineLoader - tl = tl_loader.load_timeline(KARLICOSS_ID) - return tl - - class Tweet: def __init__(self, tw): self.tw = tw @@ -33,20 +20,34 @@ class Tweet: return self.tw.created_at @property - def datetime(self) -> datetime: + def dt(self) -> datetime: return self.tw.get_utc_datetime() + @property + def text(self) -> str: + return self.tw.text + def __str__(self) -> str: return str(self.tw) def __repr__(self) -> str: return repr(self.tw) +def tweets_all(): + import twidump + # add current package to path to discover config?... nah, twidump should be capable of that. + from twidump.data_manipulation.timelines import TimelineLoader + from twidump.component import get_app_injector + tl_loader = get_app_injector().get(TimelineLoader) # type: TimelineLoader + tl = tl_loader.load_timeline(KARLICOSS_ID) + return [Tweet(x) for x in tl] + + def predicate(p) -> List[Tweet]: - return [Tweet(t) for t in tweets_all() if p(t)] + return [t for t in tweets_all() if p(t)] def predicate_date(p) -> List[Tweet]: - return predicate(lambda t: p(t.get_utc_datetime().date())) + return predicate(lambda t: p(t.dt.date())) Datish = Union[date, str] def tweets_on(*dts: Datish) -> List[Tweet]: