Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thcolin/sensorr

πŸΏπŸ“Ό Sensorr - Your Friendly Digital Video Recorder
https://github.com/thcolin/sensorr

couchpotato dvr movie-release-radar newsgroup newznab pvr radarr react release scene torrent torznab warez watcher3

Last synced: 7 days ago
JSON representation

πŸΏπŸ“Ό Sensorr - Your Friendly Digital Video Recorder

Awesome Lists containing this project

README

        

# ✨ Features



Screenshot
Description






Home


  • Trending

  • Discover (Popular)

  • Discover (By year)

  • Discover (By genre)

  • Discover (By studio)

  • Trending (stars)









Library

  • Manage your movies library (wished, pinned and archived)









Discover


  • Discover movies with many options









Movie

  • Display movie details

  • Consider movie as, πŸ”• ignored, 🍿 wished, πŸ“ pinned or πŸ“Ό archived

  • Find releases on sources (torznab / newznab) - requested with title (localized) and original_title

  • Grab a release (manual or auto)









Collection

  • Display collection details









Calendar

  • Track upcoming movies from followed stars !









Following

  • Manage stars you're following









Star

  • Display star details

  • Follow star πŸ”• ignored, πŸ”” followed










Logs

  • See logs details

  • Every wished movie processed




# 🏎️ Quick Start
Best way to get a **Sensorr** fresh install is with the Docker image, you just need a terminal with [`docker`](https://www.docker.com/get-starteds) installed !

## 🐳 Docker
Checkout Sensorr Docker image at [thcolin/sensorr/](https://hub.docker.com/r/thcolin/sensorr/)

```
# `/home/user/.sensorr` will be your config path
# `/home/user/downloads` will be your blackhole path
docker run -p 5070:5070 -v /home/user/.sensorr:/app/sensorr/config -v /home/user/downloads:/app/sensorr/blackhole --name="sensorr" thcolin/sensorr
```

_Tips_: Docker image is based on `alpine`, so you can add `TZ` env variable with `-e TZ=Europe/Paris`

## 🎚 Configure
* Edit default configuration at `http://localhost:5070/settings` (or `config/config.json`)

## ⏰ Jobs
Some necessary cron jobs will be launched in background every day:
* _16:03_ `sensorr:purge`: Clean oldest log sessions (if directory space exceeds configured value)
* _17:00_ `sensorr:record`: Record wished movies from collection with best release
* _01:03_ `sensorr:schedule`: Schedule calendar with recents movies from stalked stars (+/- 2 years from today)
* _03:03_ `sensorr:pairwise`: Pairwise Plex instance with Sensorr instance (if configured)
* _05:03_ `sensorr:hydrate`: Hydrate -or refresh- collected movies and stalked stars data

# πŸ—ΊοΈ Roadmap
* Fix `Home` rows issues
* `Upcoming` / `Records` empty
* Display other `Person` behind each `Movie` on `Details` page (`:hover` only)
* Load every followed stars from database on component mount
* Feature `Policies`
* Add "groups" `Policy` with "default" === current (groups like `default` or `blockbuster` for example)
* Add configurable `avoid` terms on `Movie` (like `/movie/515195` which got a `0.73` similarity score with `/movie/582607`)
* Add configurable `prefer` terms on `Movie` (like `/movie/447404` I want in `FRENCH` and not `VOSTFR`)
* Add `size` property on `Settings/blocks/Policy` (how to handle it ? `min/max` ?)
* Improve `Documents.*.Filters`
* `policies` - `multiple`
* `Movie`
* Add `policies`
* `Checkbox` displayed as grid or column
* After `Row` ? - Bad UX, far away from `state`
* Create `policy` option (will copy/paste `default`)
* Edit `policy` link
* Add `List` page
* Grouped movies by "policy"
* Same layout as `Home` page
* Feature `Review` (fix manual)
* Summary command result
* `record`:
```
From ${wished} wished 🍿 movies, ${found} where recorded πŸ“Ό to ${sensorr.config.blackhole} !
* ${movie.title} (${movie.year}) with release ${release.generated}
${filtered} were filtered 🚫 according to your policies
* ${movie.title} (${movie.year})
* ${release} (${reason})
But ${missing} still missing πŸ“­ (with no releases found)
* ${movie.title} (${movie.year})
You should look at these ${error} errors 🚨
* ${movie.title} (${movie.year}) : ${err}
```
* Refactor `Logs`
* Left panel with `session` list with summary
* `Records`
* Summary
* 🍿 Wished
* πŸ“Ό Recorded
* 🚫 Filtered (reviewable)
* πŸ“­ Missing (reviewable)
* 🚨 Error (reviewable)
* Review
* Review each `record`, one by one, autoscroll on validation
* Record
* Allow to post an `issue` on `thcolin/oleoo`
* With data : { movie, records: records.map(record => record.meta ) }
* Allow to search for `releases` manualy
* Allow to search custom titles - like `The.92nd.Annual.Academy.Awards.2020.FRENCH.1080p.HDTV.H264-SH0W` - out of `releases` scope
* Allow to **ban** `releases` (like a `release` with hardcoded `subtitles` downloaded that i don't want)
* `Purge`
* `Pairwise`
* `Hydrate`
* Feature `performance`
* Rename `XZNAB` to `XYZNAB`
* On `Person.State` `unfollow`, delete `calendar` entities with only `this` as followed credits
* Look at [`shipjs`](https://github.com/algolia/shipjs)
* `oleoo`
* Refactor algorithm, split `title` and `metadata` with `year|language|resolution|source` (`[0]`/`[1]`)
* `Server`
* Look at [`WatermelonDB`](https://github.com/Nozbe/WatermelonDB)
* Or only use **remote** `PouchDB` server with `rxdb`
* Fix RAM usage with `sessions` in `io`
* `CLI`
* Use [`cli-step`](https://github.com/poppinss/cli-step)
* When `stalk` star, `atomicUpsert` it
* Fix `record` command, filter movies with release date < +3 months (useless to search for movies still in production - make configurable)
* Compile binary (reduce Docker image size by removing useless dependecies)
* Responsive design / mobile UI-UX
* Take `screenshots` in `small`, `medium` and `large` breakpoints
* Feature `Config`
* Refactor `config` to `settings` using [mozilla/node-convict](https://github.com/mozilla/node-convict)
* Refactor with [nrwl/nx](https://github.com/nrwl/nx)
* Look at `Prisma` for database
* Feature `1.0.0`
* πŸŽ‰
* Fix `docz`
* Improve `README`
* Feature `Notifications`
* Notify `records` summary (email, sms, etc...)
* Feature `UI/UX sugar`
* Translate (`fr`, `en`)
* `Discover`
* Add `status` in `controls` - how ?
* Add `Random` button
* `Home`
* Add `Head` `Movie` ? (see [inspiration](https://dribbble.com/shots/2813716-BookMyShow-Movies-Concept))
* Add "pre-configured" `List` like `Oscars` ?
* Weekly movies selection (?)
* Allow user to send PR with own movies selection
* Make sensorr a social network (?)
* Look at `Mastodon` example and `ActivityPub` spec
* Make it private by default, if public will only show non-user related informations (home, discover, calendar (?), following (?))
* Multi user (?)
* `Settings`
* `Database`
* Allow to `clean` browser `sensorr-*` databases (`doctor`)
* `Grid`
* Select/Deselect all
* Actions on selection
* `Loading` page waiting sync of `db` with progress ?
* Allow to `clean` database if waiting too much
* Dark mode (`theme-ui`)
* Feature `Custom Home`
* `Home`
* Customize
* Pinned sortable `Trending|Discover` `Rows`
* `type=[Popular|Top|Calendar|Trending|Discover]`
* `uri={...}`
* `params={...}`
* Save from `Discover` "current" params
* Feature `Doctor`
* Replace `Plex` releases by better if available, like `CouchPotato`
* `Plex` manage all `medias`, so we can get `release` (`source`, `language`, `resolution`, ...) and compute score
* Feature `Onboarding`
* Add `Onboarding` page
* Add demo on a server
* Feature `Browser Plugin`
* `IMDB`, `TMDB`, `SensCritique` or `AlloCinΓ©` browser plugin "bookmark" (update state of current movie website tab on `Sensorr` instance)
* Feature `import/export`
* Synchronize with `trakt.tv`
* Feature `Mobile` app
* Connect to server with QR code
* Streaming from `Releases` (how to know which file read ? - ask user)

# 🎨 Inspiration
* CLI
* [minimist](https://github.com/substack/minimist)
* [Inquirer.js](https://github.com/SBoudrias/Inquirer.js)
* [commander.js](https://github.com/tj/commander.js)
* [oclif](https://github.com/oclif/oclif)
* [ink](https://github.com/vadimdemedes/ink)

# πŸ‘‹ Alternatives
* [CouchPotato](https://github.com/CouchPotato/CouchPotatoServer)
* [Radarr](https://github.com/Radarr/Radarr)
* [Watcher3](https://github.com/nosmokingbandit/Watcher3)