vk: move favorites module to a subpackage, add stat

This commit is contained in:
Dima Gerasimov 2020-07-30 21:37:55 +01:00 committed by karlicoss
parent 4ee89b85ee
commit 10a8ebaae4

View file

@ -1,6 +1,10 @@
'''
todo: uses my private export script?
'''
from datetime import datetime from datetime import datetime
import json import json
from typing import NamedTuple, Iterator, Dict, Union, Sequence, Optional from typing import NamedTuple, Iterable, Sequence, Optional
from my.config import vk as config from my.config import vk as config
@ -12,8 +16,8 @@ class Favorite(NamedTuple):
text: str text: str
Res = Union[Favorite, Exception] from ..core import Json
from ..core.error import Res
skip = ( skip = (
@ -30,7 +34,7 @@ skip = (
'page', 'page',
) )
def parse_fav(j: Dict) -> Favorite: def parse_fav(j: Json) -> Favorite:
# TODO copy_history?? # TODO copy_history??
url = None url = None
title = '' # TODO ??? title = '' # TODO ???
@ -52,7 +56,7 @@ def parse_fav(j: Dict) -> Favorite:
) )
def _iter_favs() -> Iterator[Res]: def _iter_favs() -> Iterable[Res]:
jj = json.loads(config.favs_file.read_text()) jj = json.loads(config.favs_file.read_text())
for j in jj: for j in jj:
try: try:
@ -78,3 +82,8 @@ def favorites() -> Sequence[Res]:
sorted_items = [p[1] for p in sorted(zip(keys, favs))] sorted_items = [p[1] for p in sorted(zip(keys, favs))]
# #
return sorted_items return sorted_items
def stats():
from ..core import stat
return stat(favorites)