• Stars
    star
    98
  • Rank 345,882 (Top 7 %)
  • Language
    JavaScript
  • License
    GNU Lesser Genera...
  • Created about 6 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

✨ 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 installed !

🐳 Docker

Checkout Sensorr Docker image at 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
    • oleoo
      • Refactor algorithm, split title and metadata with year|language|resolution|source ([0]/[1])
    • Server
      • Look at WatermelonDB
        • Or only use remote PouchDB server with rxdb
      • Fix RAM usage with sessions in io
    • CLI
      • Use 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
  • 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)
        • 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

πŸ‘‹ Alternatives

More Repositories

1

oleoo

πŸŽŸπŸ’Έβ˜ οΈ Parse scene / p2p release name, return object with title, tags and flags
JavaScript
54
star
2

scene-release-parser-php

PHP library which parse the scene release name to get their tags and title
PHP
25
star
3

nipper

🌢 πŸ’½ Nipper - Youtube playlist (& video) ripper
JavaScript
24
star
4

react-responsive-virtual-grid

πŸ’€πŸšŸ Dead-simple react responsive virtual grid library
JavaScript
12
star
5

boaty

πŸŒŠβ›΄οΈ A p2p cli boat - or client, will work with webtorrent and dat
JavaScript
11
star
6

senscritique-api

PHP SensCritique API parser
PHP
11
star
7

silex-simpleuser-jwt

An implementation of jasongrimes/silex-simpleuser with JSON Web Token (JWT)
PHP
5
star
8

torrent-djinn

PHP console application to search & download torrents from trackers
PHP
5
star
9

customize-bootstrap-bower-install

How to customize bootstrap when you install it with bower ?
CSS
3
star
10

multilayer-perceptron

IA Γ©voluant et apprenant dans un labyrinthe
PHP
3
star
11

chuck-norrit

πŸ‹ πŸ₯Š Lightweight choo web-app to retrieve Chuck Norris facts
JavaScript
2
star
12

nipper-native

πŸ’πŸŽ™οΈπŸΆοΈ Nipper native πŸ“±πŸ–₯ (iOS, Android, macOS) - Youtube music player
HTML
2
star
13

dotfiles

πŸ”© Personnal dotfiles
Ruby
2
star
14

react-virtualist

πŸ’€πŸšŸ Dead-simple react virtual list or scroll library
JavaScript
2
star
15

twedis

Clone of Twitter with PHP & Redis
PHP
2
star
16

hyperlist-react

⚠️ Deprecated ! Simple React wrapper component for HyperList
JavaScript
1
star
17

galerie-gaia

🎨 Galerie Gaïa website
JavaScript
1
star
18

epyd

Epyd (Easy Playlist Youtube Downloadr)
PHP
1
star
19

chrome-download-quicklook-extension

πŸ’ΎπŸ”­ A beautiful Chrome extension to have a quicklook on your downloads !
JavaScript
1
star
20

react-sandbox

JavaScript
1
star