-
-
Save ojame/93560d99149124ea2f89b9d78cbcadd1 to your computer and use it in GitHub Desktop.
| // 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'); | |
| } | |
| }); |
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
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;
Just wanted to pop in and say thank you! this was super helpful. I moved my setup from Couch Potato and SickBread to Sonarr+Radarr