14.3.2017, 2:30
(08.3.2017, 16:25)vlk Napsal(a): Ahojte, pridal som si do knižnice filmy zo sosáča, mám ich tam viac ako 10 000 a zbytočne to spomaluje chod celého kodi ked hladám nejaký film. Väčšinou si zapínam filter a vyberám filmy s hodnotením nad 70% podla CSFD. Dala by sa celá knižnica premazať nejak tak že zostanú len filmy s hodnotením 70%+ ?
Jen na doplnění...
Pokud jde o úplné odstranění filmů z databáze s hodnocením nižším než xx %, tak tady žádné filtry nepomůžou. V principu ale stačí odstranit adresáře s filmy a pak nechat kodi vyčistit knihovnu - sám je z databáze odstraní. Teď ale, jak pohodlně vybrat filmy/složky, kterých se to týká... Způsobů je dost.
Jednou z možností (nepohodlnou, ale rychlou) je využít vzdálené ovládání kodi a např. přes prohlížeč volat dotaz na spuštěné kodi pomocí JSON-RPC (value "4.0" vybere všechny filmy s hodnocením, nižším než 40 %) a z toho pak "vydlabat" adresáře:
Kód:
http://192.168.1.50:8080/jsonrpc?request={"jsonrpc": "2.0", "method": "VideoLibrary.GetMovies", "params": { "filter": {"field": "rating", "operator": "lessthan", "value": "4.0"}, "limits": { "start" : 0, "end": 75 }, "properties" : [ "rating", "file"]}, "id": "libMovies"}
Další a efektivnější možností je poslat SQL dotaz do databáze, který zobrazí sloupec s cestou ke složce filmu. K tomu, co má nízké hodnocení.
Pro Sqlite (čtyřicítka na konci znamená hodnocení menší než 40 %):
Kód:
SELECT movie.C00 AS movie_name, movie.C22 AS movie_path, rating.rating, CAST(rating.rating * 10 AS INT) AS rating_as_int
FROM ((files INNER JOIN movie ON files.idFile = movie.idFile) INNER JOIN path ON files.idPath = path.idPath) LEFT JOIN rating on ((movie.c05 = rating.rating_id ))
WHERE CAST(rating.rating * 10 AS INT) < 40;
Pro MySQL/MariaDB:
Kód:
SET @MIN_RATING := 40; # hodnocení méně jak 40 %
SELECT movie.C00 AS movie_name, movie.C22 AS movie_path, rating.rating, CAST(rating.rating * 10 AS INT) AS rating_as_int
FROM ((files INNER JOIN movie ON files.idFile = movie.idFile) INNER JOIN path ON files.idPath = path.idPath) LEFT JOIN rating ON (movie.c05 = rating.rating_id)
HAVING rating_as_int < @MIN_RATING;
A teď už stačí všechny zobrazené složky odstranit a v kodi zvolit "vyčistit knihovnu" nebo čištění knihovny spustit vzdáleně opět pomocí JSON-RPC:
Kód:
http://192.168.1.50:8080/jsonrpc?request={"jsonrpc": "2.0", "id": 1, "method": "VideoLibrary.Clean"}