HPI/my/instagram/all.py

37 lines
1 KiB
Python

from typing import Iterator
from my.core import Res, stat, Stats
from my.core.source import import_source
from .common import Message, _merge_messages
src_gdpr = import_source(module_name='my.instagram.gdpr')
@src_gdpr
def _messages_gdpr() -> Iterator[Res[Message]]:
from . import gdpr
yield from gdpr.messages()
src_android = import_source(module_name='my.instagram.android')
@src_android
def _messages_android() -> Iterator[Res[Message]]:
from . import android
yield from android.messages()
def messages() -> Iterator[Res[Message]]:
# TODO in general best to prefer android, it has more data
# - message ids
# - usernames are correct for Android data
# - thread ids more meaninful?
# but for now prefer gdpr prefix since it makes a bit things a bit more consistent?
# e.g. a new batch of android exports can throw off ids if we rely on it for mapping
yield from _merge_messages(
_messages_gdpr(),
_messages_android(),
)
def stats() -> Stats:
return stat(messages)