add created; use special saved handling for first backup

This commit is contained in:
Dima Gerasimov 2019-03-17 16:23:08 +00:00
parent 6e7029b74d
commit 39adb48044

View file

@ -41,10 +41,14 @@ class Save(NamedTuple):
def __hash__(self): def __hash__(self):
return hash(self.sid) return hash(self.sid)
@cproperty
def created(self) -> datetime:
return self.dt
@cproperty @cproperty
def save_dt(self) -> datetime: def save_dt(self) -> datetime:
assert self.dt <= self.backup_dt # TODO not exactly precise... but whatever I guess
return max(self.dt, self.backup_dt) return self.backup_dt
@cproperty @cproperty
def url(self) -> str: def url(self) -> str:
@ -101,6 +105,9 @@ Url = str
# TODO shit. there does seem to be a difference... # TODO shit. there does seem to be a difference...
# TODO do it in multiple threads?? # TODO do it in multiple threads??
def get_state(bfile: Path) -> Dict[Sid, Save]: def get_state(bfile: Path) -> Dict[Sid, Save]:
logger = get_logger()
logger.debug('handling %s', bfile)
RE = re.compile(r'reddit-(\d{14})') RE = re.compile(r'reddit-(\d{14})')
match = RE.search(bfile.stem) match = RE.search(bfile.stem)
assert match is not None assert match is not None
@ -159,7 +166,7 @@ def get_events(all_=True, parallel=True) -> List[Event]:
# TODO use backup date, that is more precise... # TODO use backup date, that is more precise...
# eh. I guess just take max and it will always be correct? # eh. I guess just take max and it will always be correct?
events.append(Event( events.append(Event(
dt=ps.save_dt, dt=ps.created if first else ps.save_dt,
text=f"unfavorited", text=f"unfavorited",
kind=ps, kind=ps,
eid=f'unf-{ps.sid}', eid=f'unf-{ps.sid}',
@ -169,7 +176,7 @@ def get_events(all_=True, parallel=True) -> List[Event]:
else: # in saves else: # in saves
s = saves[key] s = saves[key]
events.append(Event( events.append(Event(
dt=s.save_dt, dt=s.created if first else s.save_dt,
text=f"favorited{' [initial]' if first else ''}", text=f"favorited{' [initial]' if first else ''}",
kind=s, kind=s,
eid=f'fav-{s.sid}', eid=f'fav-{s.sid}',
@ -217,10 +224,10 @@ def test_unfav():
uf = uevents[1] uf = uevents[1]
assert uf.text == 'unfavorited' assert uf.text == 'unfavorited'
# def test_get_all_saves(): def test_get_all_saves():
# saves = get_saves(all_=True) saves = get_saves(all_=True)
# # just check that they are unique.. # just check that they are unique..
# make_dict(saves, key=lambda s: s.sid) make_dict(saves, key=lambda s: s.sid)
def main(): def main():