= Usecases =
- Get a list of highest rated films (top n)
- Get unrated films not seen for a long time
- Get highest rated films not seen for a long time
- Update that a film was seen
- Add/Change score of a film
= Requirements =
- SEEN file shall be next to movies
- SEEN file shall be line based
- SEEN file shall have a white space separated keyword in every line
- Allows you to store score (+ notes)
- Allows you to store video and audio quality (+ notes)
= Decisions =
== File Format ==
Decision:
Use a human read and writeable file next to the film
Positions:
- Use smplayers file_config database (not much activity there, unclear if patch is taken: see irc.log)
- Use sql database (heavy dependency, not editable directly in movie folder)
- Use SEEN text file
Assumption:
- Films are all placed in folders each
- Rating is mainly for films also available, garbage films are handled differently (just in an unrated list)
Rationale:
- Very handy
- Implementation done already
- Can be directly edited if needed
Implications:
- Filesystem iterator needed for "database" access
- will not scale to millions of films
== IMDB Access ==
Decision:
Do not reimplement or use imdb for scoring, but just as supplement for
movie information.
Positions:
- Directly use IMDB for scoring
- imdb-tools (shell scripts based on curl)
- Implement something python with python-imdbpy http://www.webupd8.org/2012/03/lm-lists-imdb-information-for-your.html
Assumption:
- I do not want to share a full list of all movies I have seen or like
- I want to jump to any platform if desired
= Architecture =
seen will be implemented as library and (multiple) console tools.
It can be supplemented with shell scripts which additionally download
covers, imdb information and similar.
== Technologies ==
Will use boost internally for:
- Commandline arguments
- Iterating Filesystem
- Other important stuff not in C++11
Shell scripts for initializing new films, e.g. download cover
subdownloader, dlsub, or smplayer build-in functionality to download subtitles
imdb-tools for downloading imdb information
== Library ==
The library can be used to be embedded into movie players which will be
able to read and write the seen file then.
== Artifacts ==
libseen: implements all the functionality
seen-generate: ask interactively for some information to be added to the file
seen-top-movies: generate csv file which contains the top movies
seen-tips: generate a list of not seen or long not seen films which are
           good rated or unrated
= Planning =
- seen-generate
 - basic functionality 0,5h
 - add current films recently seen 0,5h
 - improvements of missing functionality, add requirements 1h
- seen-top-movies
 - Elektra integration 0,5h
 - Use configuration for how top movies, which columns (see code Elektra's generator) xh
 - iterate over all SEEN+buildup global database 2h
 - sorting scores + writeout csv 1h
 - implementing substitute to current odt 1h
- seen-tips
 - add SEEN to older films to have some test data 1h
 - implement commandline arguments (with elektra's fallback?) 1h
 - implement algorithm 1h