Skip to main content

Keep track of your episode viewing and schedule.

Project description

epm

Commandline-based episode calendar/manager/scheduler/tracker (EPisode Manager)

Inspired by Episode Calendar.

Concepts

Series that have been added to epm can have one of these user states:

  • planned Just added, nothing seen.
  • started Some episodes seen, but not all.
  • completed All episodes seen but not archived (or explicitly restored).
  • archived All episodes seen and series is "ended" or "cancelled".
  • abandoned Archived but only partially seen.

Most of these states are implicit and automatic. However, the archive state can be manually controlled by the archive and restore commands.

How a series moves between the states is hopefully quite obvious when using the tool.

However, a few "trickier" ones exist:

  • Command mark: If in planned moves to started. If it was the last episode (and the series is ended/cancelled), moves to archived.
  • Command unmark: If in archived moves to started. If no episode marked afterwards, moves to planned.

Dependencies

Requires Python 3.9, because type hints are used (the lower-case variants).

TMDb

File locations

The configuration, series "database" and their states is stored in:

~/.config/epm/

Mainly the file series but also numbered backups of it. If this is important to you, it's recommended to backup this directory.

Run-time configuration is stored in the file config.

TMDb API key

Key is read from the environment:

TMDB_API_KEY

Or set it in the configuration:

epm config --api-key <your key>

Examples

Note, the exact appearance of these output examples might change. They're continuously being tweaked and improved.

Add a series you'd like to monitor:

⯈epm add twin peaks 
Found 10 series:
   #1 Twin Peaks                             1990-1991
   #2 Twin Peaks                             2017-    
   #3 Twin                                   2019-    
   #4 Georgia Coffee: Twin Peaks             1993-    
   #5 Twin Turbos                            2018-2020
   #6 Twin Hawks                             1984-1985
   #7 Twin of Brothers                       2004-    
   #8 Lexi & Lottie: Trusty Twin Detectives  2016-2017
   #9 Twin Hearts                            2003-2004
  #10 Twin My Heart                          2019-    
Select series (1 - 10) to add --> 1    [user input]
Series added:  (series renumbered)
   #1 Twin Peaks  1990-1991  tt0098936

Now the series is added.

All added series can be listed by using the list / ls command:

⯈epm ls
   #1 Twin Peaks              1990-1991  tt0098936
       Total: Unseen: 30  1d 53min
       Next: s1e01 Pilot  

Mark episodes that has been watched:

⯈epm mark 1 s1
Marked 8 episodes as seen:  7h
   <list of episodes cut out>

⯈epm mark 1 s2e1-20
Marked 20 episodes as seen:  16h 17min
   <list of episodes cut out>

Then, show current status, using no arguments (or the unseen command):

⯈epm
   #1 Twin Peaks                                                                      1990-1991   1 unseen
       Next:   s2e22 Episode #2.22                                                        46min 1991-06-10

For a bit more "fancy" display of future episodes, use the calendar command:

⯈epm cal 2
┏━━━━━━━━━━━━┥ August 2022  week 31
┃  1st Monday
┃  2nd Tuesday
┃  3rd Wednesday
┃  4th Thursday
┃      • The Orville  s3e10 Future Unknown                                                          
┃      • For All Mankind  s3e09 Coming Home                                                    46min
┃  5th Friday
┃  6th Saturday
┃  7th Sunday
┃      • Westworld  s4e07 Metanoia                                                             52min
┠──────── week 32
┃  8th Monday
┃  9th Tuesday
┃ 10th Wednesday
┃ 11st Thursday
┃      • For All Mankind  s3e10 Han                                                                 
┃ 12nd Friday
┃ 13rd Saturday
┃ 14th Sunday
┃      • Westworld  s4e08 Que Será, Será                                                       59min

Sadly, these examples doesn't show that all output from epm is colorized for clarity and emphasis.

But here's a screenshot of the menu shown by the search command (similar to add):

search

Basically the difference when using the add command is that the bottom text ... to exit then says [RET] to add [ESC] to exit.

Usage

epm / Episode Manager / (c)2022 André Jonsson
Version 0.9 (2022-08-01)
Usage: epm [<command>] [<args ...>]

Where <command> is:  (one-letter alias highlighted)
search      Search for a series.
add         Search for a series and (optionally) add it.
delete      Completely remove a series - permanently!
show        Show/list series
calendar    Show episode releases by date
unseen      Show unseen episodes of series
mark        Mark a series, season or specific episode as seen.
unMark      Unmark a series/season/episode - reverse of mark command.
Archive     Archving series - hides from normal list command.
Restore     Restore series - reverse of archive command.
refresh     Refresh episode data of all non-archived series.
config      Configure.
help        Shows this help page.
(none)  ▶  unseen

See: epm <command> --help for command-specific help.

Remarks:
# = Series listing number, e.g. as listed by the list command.
If an argument does not match a command, it will be used as argument to the default command.
Shortest unique prefix of a command is enough, e.g. "ar"  for "archive".
Install 'orjson' for faster load/save
Using zstd to compress database backups.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

episode-manager-0.14.post1.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

episode_manager-0.14.post1-py3-none-any.whl (43.8 kB view details)

Uploaded Python 3

File details

Details for the file episode-manager-0.14.post1.tar.gz.

File metadata

  • Download URL: episode-manager-0.14.post1.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.4 Linux/5.15.0-43-generic

File hashes

Hashes for episode-manager-0.14.post1.tar.gz
Algorithm Hash digest
SHA256 f52d609643b155393a5fa3aac77cb607feb58d9b69fcb0d71bdd1ebf52c5deaa
MD5 c6cbc95f680a5a8e4e833c1e917d6ca7
BLAKE2b-256 4bda41eb3a35f29995b35d8964da89054ff45e09bafced34cf525ff1a47e6e70

See more details on using hashes here.

File details

Details for the file episode_manager-0.14.post1-py3-none-any.whl.

File metadata

  • Download URL: episode_manager-0.14.post1-py3-none-any.whl
  • Upload date:
  • Size: 43.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.12 CPython/3.10.4 Linux/5.15.0-43-generic

File hashes

Hashes for episode_manager-0.14.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 17816645d734e1e088b309fd0d888f8e584c8b10eb7ffa2565425f99b9a64712
MD5 d1eb22427d5300e31c58433753427ade
BLAKE2b-256 5ae6dadc0e486c46674ae5fa5c60cde37a2816a5ce6f7c9b767859969d7615c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page