Created
June 29, 2017 05:47
-
-
Save ojame/93560d99149124ea2f89b9d78cbcadd1 to your computer and use it in GitHub Desktop.
Delete all movies that haven't been 'downloaded' in Radarr. Mass/bulk deleting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Go to Radarr and click 'settings' => 'general'. | |
// Open the JavaScript Console in Google Chrome (View => Developer => Javascript Console) | |
// Past the following in. Hit enter and away you go. | |
const key = document.getElementsByClassName('x-api-key')[0].value; | |
if (!key) { | |
alert('Navigate to /settings/general and run again'); | |
} | |
let ids = []; | |
let _movies = []; | |
let index = 0; | |
const percent = () => { | |
return `[${(((index + 1) / _movies.length) * 100).toFixed(2)}%]` | |
} | |
const deleteMovie = (id) => | |
fetch(`/api/movie/${id}`, { | |
method: 'DELETE', | |
headers: { | |
'X-Api-Key': key, | |
}, | |
}).then(() => { | |
index++; | |
if (ids[index]) { | |
console.log(`${percent()} Deleting ${_movies.find(m => m.id === ids[index]).title}`); | |
deleteMovie(ids[index]); | |
} else { | |
console.log('Finished deleting movies') | |
alert('It looks like all movies were deleted'); | |
} | |
}) | |
console.log('Fetching list of your movies, this could take a while...'); | |
console.log('Please don\'t refresh this page until finished'); | |
fetch('/api/movie', { | |
headers: { | |
'X-Api-Key': key, | |
} | |
}).then(res => res.json()).then(movies => { | |
console.log('Movie list fetched'); | |
_movies = movies; | |
const downloaded = movies.filter(movie => !movie.downloaded); | |
ids = downloaded.map(movie => movie.id); | |
if (ids.length) { | |
console.log(`${percent()} Deleting ${movies.find(m => m.id === ids[index]).title}`); | |
deleteMovie(ids[index]); | |
} else { | |
alert('There doesn`t seem to be any movies to delete'); | |
} | |
}); |
SO MUCH TIME SAVED! LOVE THIS!
For anyone avoiding Chrome, this also works in the Web Console of Firefox...
I tried running the delete.js code in the javascript console, but I am getting a "Uncaught TypeError: Cannot read property 'value' of undefined
at :1:60". Any thoughts on what I might be doing wrong?
I tried running the delete.js code in the javascript console, but I am getting a "Uncaught TypeError: Cannot read property 'value' of undefined at :1:60". Any thoughts on what I might be doing wrong?
Change this line
const key = document.getElementsByClassName('x-api-key')[0].value;
to this
const key = document.getElementsByName('apiKey')[0].value;
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Nice stuff!
I needed some extra functions like deleting never downloaded movies and never watched movies. So I expanded upon your script a little. Added some extra stuff, deleting X months old movies, blacklisting id's that you don't want to delete but get included anyway etc.
Link to gist: https://gist.github.com/Fronix/92dd3319845e61c7af063db5f6e8961b
code removed, please use the gist