Servarr Auto Search (Sonarr, Radarr, Lidarr and Readarr)
Overview
This is an extension for Chromium browsers and Firefox that:
-
Populates the search field on a servarr instance with any text added to the end of the search URL and then triggers the input event on the search field to fire off a search request. For instance, the standard search page url for Sonarr would be http://my.sonarr.domain:7357/add/new. This extension takes a URL like http://my.sonarr.domain:7357/add/new/fringe and automatically triggers the page to show results for fringe.
-
When right-clicking selected text on any page this extension exposes a context menu with entries for Sonarr, Radarr, Lidarr and Readarr that allow a direct search for the selected text in a new tab.
-
Adds Servarr icons as direct search links on IMDb, TVDb, TMDb, Trakt, TVmaze, MusicBrainz, Letterboxd, TV Calendar, Rotten Tomatoes, metacritic, simkl, IPTorrents, last.fm, Allociné, SensCritique, Betaseries, Prime Video and MyAnimeList websites.
The extension can be disabled from the extension’s popup and each context menu item can be disabled from the settings page.
Support
Help everyone by adding new features or fixing a bug. See Contributing below.
:star: :star: Give the repo a star :star: :star:
Leave a review:
All support is very gratefully received, thank you :raised_hands: :sunglasses: :+1:
Getting started
Extension on the Chrome web store
Extension on the Microsoft Edge add-ons store
Add-on on the Firefox add-ons store
Once installed in your browser go to the options page and configure the extension.
Note: this extension defaults to settings applicable to the latest versions of Sonarr and Radarr. If you’re using v2.0 then go to the advanced settings tab on the options page for guidance.
Settings
Fill out the URL fields for each of your Servarr instances in the format http://my.servarr.domain:7357. If you also fill in the API keys for each instance, the advanced settings will be automatically populated based on your instance version.
Advanced settings
Search path - this needs to match the URL path that is the search page. This would only ever need to be changed if the URLs are changed by the Servarr developers.
Search input selector - This text is used as a jQuery selector when the extension is trying to find the input search element. Again, this should only require changing to react to changes made by the Sonarr/Radarr/Lidarr developers.
Integrations
If any of the sites on this tab are set as enabled then this extension will attempt to ascertain whether it should include a direct link to search within a Servarr instance, for example:
Create package
Uses grunt as a task runner, run the following from the root directory to build:
npm i
grunt release
The grunt release config executes a Powershell script to run web-ext, this can be changed to a bash file if preferred (see comments in the Gruntfile.js).
Tests
Playwright
Site integration tests can be found in the tests/playwright directory. The tests expect the dist directory to be populated with the latest build. The tests can be run using the following from the root directory:
npm i
# npm i grunt -g # if grunt isn't already installed uncomment
grunt playwright
cd tests/playwright
npm i
npx playwright install --with-deps chromium
npx playwright test
Unit tests
Next to no unit test coverage at the moment and is currently just a development tool to assert code changes, but uses Jest for any available:
npm i
npm run test
Contribute
If you can make this extension better I’m happy for the help! Please create a pull request and get in touch. Alternatively feel free to raise an issue if you’ve found a bug or want to suggest a new feature.
[!NOTE] To contribute, please create your PR to merge into the staging branch.
Further changes will likely need to be made to update version in the manifest, README, CHANGELOG, etc so this enables me to merge your PR and make associated changes before merging to master.
Thanks
Thanks to the following for helping with this project:
banterboy
aommm
Flo
almottier
dannyvink
Pompiedom
carsso
3vanlock
cyberden
MozPri
dynamiccookies
Thanks to JetBrains for providing an open source license for their products to support this project.