Skip to content

Latest commit

 

History

History
129 lines (83 loc) · 14.9 KB

File metadata and controls

129 lines (83 loc) · 14.9 KB

Servarr Auto Search (Sonarr, Radarr, Lidarr and Readarr)

Chrome Web Store Chrome Web Store Chrome Web Store
Mozilla Add-on Mozilla Add-on Mozilla Add-on
Edge

Playwright tests

Overview

This is an extension for Chromium browsers and Firefox that:

  1. 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.

  2. 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.

  3. 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.

⭐ ⭐ Give the repo a star ⭐ ⭐

Leave a review:

Chrome Web Store
Mozilla Add-on

ko-fi

All support is very gratefully received, thank you 🙌 😎 👍

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:

IMDb Sonarr example

TVDb Sonarr 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

Buy Me a Coffee at ko-fi.com

Thanks to JetBrains for providing an open source license for their products to support this project.

JetBrains logo