2022-09-26 12:04:37 +03:00
|
|
|
import genericProxyHandler from "utils/proxy/handlers/generic";
|
|
|
|
import { jsonArrayFilter } from "utils/proxy/api-helpers";
|
2022-09-25 19:43:47 +03:00
|
|
|
|
2022-10-20 11:43:24 -07:00
|
|
|
function isAvailable(item) {
|
|
|
|
// isAvailable means that a digital image exists
|
|
|
|
// E.g. it's available to stream or on DVD, etc
|
|
|
|
if (item.isAvailable === false) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
// sizeOnDisk is how much of that digital image you currently have
|
|
|
|
// movieFile.size is how large the requested digital image is
|
|
|
|
return item.sizeOnDisk === item.movieFile?.size;
|
|
|
|
}
|
|
|
|
|
2022-09-25 19:43:47 +03:00
|
|
|
const widget = {
|
|
|
|
api: "{url}/api/v3/{endpoint}?apikey={key}",
|
|
|
|
proxyHandler: genericProxyHandler,
|
|
|
|
|
|
|
|
mappings: {
|
|
|
|
movie: {
|
|
|
|
endpoint: "movie",
|
|
|
|
map: (data) => ({
|
2022-10-20 11:43:24 -07:00
|
|
|
wanted: jsonArrayFilter(data, (item) => !isAvailable(item)).length,
|
|
|
|
have: jsonArrayFilter(data, (item) => isAvailable(item)).length,
|
2022-09-25 19:43:47 +03:00
|
|
|
}),
|
|
|
|
},
|
|
|
|
"queue/status": {
|
|
|
|
endpoint: "queue/status",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
export default widget;
|