Added option --format which allows to print the positive answers in
several formats: "clips" and "clips_comments" which are about to be
fed to video-composer and "subtitles" which is supposed to be a help
when manually editing the clips.
Added option --no-sort which allows to not sort the printed answers.
Default is now to sort the answers case-insensitive (was no sorting).
There are now two steps in subtitle searching:
1. Save all matches to a CSV.
2. Iterate over this CSV and manually approve or dimiss the matches.
This has the advantage that time consuming searching is done only once,
not every time you want to approve new matches.
Executables, README, and setup.py were updated to reflect this change.
Module common.py was created -- it contains code share by search_subs
and approve_matches.
Call random.shuffle() on a list created from the CSV reader iterable,
don't operate on the iterable itself -- random.shuffle() needs a list
with length.
Make find_episode_ids store the movies in CSV instead of TXT and include
also full episode title apart from IMDB ID for easier manual inspection
of the file.
Also download_subs now writes IMDB IDs and movie titles of movies whose
subtitles were not found in a CSV with movies that failed to download
and won't be attempted to download next time download_subs is run.
When running for the first time, the downloaded_episode_ids cache file
doesn't exist. Therefore a FileNotFoundError exception occurs while
caliing listio.read_map(), this is not critical, the cache file gets
created later after the subtitles were downloaded, so we just need to
pass if the exception occurs.