From 8371ccb42fdae9e902926243a0aa4c9cde0ca7d9 Mon Sep 17 00:00:00 2001 From: Dima Gerasimov Date: Tue, 13 Aug 2019 21:39:28 +0100 Subject: [PATCH] imdb provider --- media/__init__.py | 0 media/imdb.py | 51 +++++++++++++++++++++++++++++++++++++++++++++++ media/movies.py | 1 + 3 files changed, 52 insertions(+) create mode 100644 media/__init__.py create mode 100644 media/imdb.py create mode 100644 media/movies.py diff --git a/media/__init__.py b/media/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/media/imdb.py b/media/imdb.py new file mode 100644 index 0000000..00802a3 --- /dev/null +++ b/media/imdb.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +import csv +import json +from typing import Iterator, List, NamedTuple + +from ..paths import BACKUPS + + +BDIR = BACKUPS / 'imdb' + + +def get_last(): + # TODO wonder where did json come from.. + return max(BDIR.glob('*.csv')) + + +class Movie(NamedTuple): + created: str + title: str + rating: int + + +def iter_movies() -> Iterator[Movie]: + last = get_last() + + with last.open() as fo: + reader = csv.DictReader(fo) + for i, line in enumerate(reader): + # print(line) + # id_ = "n" + str(i) + title = line['Title'] + rating = line['You rated'] + created = line['created'] + # TODO const?? + yield Movie(created=created, title=title, rating=rating) + + +def get_movies() -> List[Movie]: + return list(sorted(iter_movies(), key=lambda m: m.created)) + + +def test(): + assert len(get_movies()) > 10 + + +def main(): + for movie in get_movies(): + print(movie) + +if __name__ == '__main__': + main() diff --git a/media/movies.py b/media/movies.py new file mode 100644 index 0000000..ef06b92 --- /dev/null +++ b/media/movies.py @@ -0,0 +1 @@ +from .imdb import get_movies