MaximeWack / seriestracker

A series tracker for emacs
GNU General Public License v3.0
20 stars 2 forks source link

Save partial watch, e.g. timestamp where you stopped #1

Closed danielfleischer closed 3 years ago

danielfleischer commented 3 years ago

It's a feature: instead of marking the entire episode as watched, mark it as partially watched by saving some sort of timestamp, e.g. 00:20:00 which means 20 minutes into the episode. Can contribute code myself.

MaximeWack commented 3 years ago

This is workable, the watched status is t or nil but could also be a duration (although as of now the truthy value of a partially watched episode would render it hidden when drawing the buffer…)

How would one input the duration? I doubt anything short of an automated way to record the timestamp when exiting a video would be really convenient.
Is this really such a frequent use case?
Those are not hard objections, but I personally can't remember not watching an episode through for any other reason than falling asleep in front of it ^^, so I'm simply curious :-)

Edgaras1 commented 3 years ago

Life happens so I dont finish watching episodes very often. I already save my timestamps by just typing them in my notes and this feature probably would make it more clean.

danielfleischer commented 3 years ago

To give context: I often watch something when I eat. However there are 1-hour episodes and I don't want to have a 1-hour lunch break. More generally, the duration I like to spend watching TV and the duration of the episodes is not equivalent. I want to choose how much I watch, regardless of episodes' length. I can also mix and match couple of shows a day if I watch 15-20 minutes each.

In terms of input, I think plain string is good enough; people can write "18" for the 18th minute or maybe "1:03" for an hour+3 minutes. I don't think it's important, people can write in any convention they like and we don't need to parse it in any way because it's just a personal note that happens to represent time.

The third issue is the biggest as everything that's not nil is true in elisp, we might replace the nil/t with symbols, e.g. 'unseen 'seen 'partial and refactor the logic a bit. A new face for partially seen is a nice bonus and it would not be hidden so we can jump back quickly.

What do you think?

danielfleischer commented 3 years ago

Here's a simpler solution: just adding a notes field. People can write "I liked it", "great episode", "4/5⭐️" or in our case "18:00". We don't mess with the t/nil logic and we extend the use case for anyone that wants to take personal notes about TV shows. The notes are shown whether the episode was watched or not, thus serving both as a documentation and as a reminder of the point you stopped watching.

MaximeWack commented 3 years ago

I like this note idea! It's versatile enough to allow different types of workflows, without interfering with the logic.

I'm thinking displaying episodes with a note in a slightly different face (maybe only add an underline or make the line bold?), and the content of the note in a tooltip/modeline when the cursor/mouse is on the episode.

MaximeWack commented 3 years ago

Development has started in the feature_notes branch.

MaximeWack commented 3 years ago

Version 1.2.0 is released on master, including the new note feature, as well as a couple bugfixes and WIP for a MELPA release!

danielfleischer commented 3 years ago

Very nice addition; notes are easy to add, read and remove.

BTW, the new white face is hard to read on a light theme, I think I'll create a PR with customizations of faces and options, to be more user-friendly.

Thanks for adding this new feature!

MaximeWack commented 3 years ago

Thanks!

I need to work on the faces anyway for the MELPA release so it's one of the next things on my plate.

edit: the develop branch now contains face definitions by inheritance and should play nicer with different themes.