Of course, you are right, duplicate the db and delete what is filtered, obvious, silly me, I should have thought of that myself

!
Now, unfortunately, I have two issues with
remover.py: it doesn't delete the posters and, more seriously, in some cases, it deletes the tags instead of the films.
Let's start with this second problem. I duplicated my
griffith.db twice, the idea being to get one db with the films I possess and the other one with the films I seek. Those two db are complementary to each other, using only the tag "Get it" (with or require) and its negation (without).
First, the films I seek. Since for this I need to eliminate the films I already have, I go in the Advanced Filter window and I check the radio button "Without" next to the tag "Get it". I get the list allright and I press the button "Remove all". It works, except for the posters not being deleted as well (more on that later).
Second, the films I have. Since for this I need to eliminate the films I seek, I go in the Advanced Filter window and I check the radio button "With" or "Require" next to the tag "Get it". I get the list allright and I press the button "Remove all". This time, it doesn't work properly. I still have all my films in the db, but the films matching the filter have all their tags gone! Not only the "Get it" tag, all of them.
This is true with any tag I used, when the filter is built with "without" then "Remove all" works, but when the filter is built with "with/require", "Remove all" doesn't work. I didn't try the various combinations of several tags…
Now, the posters.
I don't know if this is of any use to you, but I noticed that in
sqliteman I had to use a little trick in order to be able to remove the unused posters.
This obvious command doesn't work:
DELETE FROM posters
WHERE md5sum NOT IN (SELECT poster_md5 FROM movies)
Although the fields are of the same type, the match is not done. It doesn't produce any error, it returns 0.
But this little tricky solution works:
DELETE FROM posters
WHERE md5sum NOT IN (SELECT md5sum
FROM posters
WHERE md5sum IN (SELECT poster_md5 FROM movies)) ;
Hopefully, the match between
md5sum and
poster_md5 is done in the
SELECT, and then the match between
md5sum and
md5sum is possible for the
DELETE. It's ugly, but it works.
Maybe this is a problem within
sqlite3 itself and the same limitation is encountered too within
SQLAlchemy?