Open aartoni opened 2 weeks ago
It's an interesting idea to make it modular.
sync
do exactly? One of mtracker
's key aspects is that it stores minimal data. Would it just pull some additional meta-data on demand? Does it store them in another local database?suggest
sounds very useful, but would probably rely on some external backend, no? sync
, too, obviously.So the user needs to register on TMDB first to get an API key. This is why I haven't built any of those things into mtracker
. To me it sounds like very few people would go through all that trouble, unless the tool is very powerful and can do amazing things. Maybe we can get there.
sync
shouldn't store any additional metadata, instead it should just make sure that the website watchlist/seenlist is kept up to date with the mtracker
database (in a "push" fashion, even though a "pull" version is possible);suggest
will have to use an external recommendation system, who decides to implement this will choose which one to start with.For every subcommand, the idea is having them living in their own git repository and have their own config and data dirs. This way we can rest assured that we don't have to provide support to whoever tampers with mtracker
's own directories.
mtracker-sync
program, then I install it and try to run it with mtracker sync arg1 arg2
(without the dash);mtracker
sees that it is called with a subcommand it doesn't recognizes so it simply calls mtracker-subcommand ...args
(in this case mtracker-sync arg1 arg2
);mtracker-sync
gets called so it goes and reads its available API keys from .config/mtracker-sync
(not .config/mtracker
) and some data;.local/share/mtracker-sync
(not .local/share/mtracker
)So you could say that this is simply a way to omit the dash in the program name, in reality extensions get installed in a specific location. Let's look at pass
for instance, it has an extensions directory at usr/lib/password-store/extensions
, if you were to install pass-otp
or pass-tomb
you would find them there (so not in your $PATH
).
I'm interested in building some external programs that take advantage of
mtracker
, namely:mtracker-sync
: providing synchronization with websites such as IMDb or TMDB (or Goodreads sincemtracker
can be used for books).mtracker-suggest
: providing suggestions based on one's collections.My idea is this should not be part of the
mtracker
project itself because I like the fact that it is this minimal. However, I also think that it would be cool if we could run something likemtracker suggest movies
and get movie recommendation based onmtracker
movies.I know that there's a way to do this because programs (e.g.,
cargo
) allow for external subcommands but I don't know what the requirements would be on themtracker
to have this feature.