Coder Social home page Coder Social logo

thcolin / sensorr Goto Github PK

View Code? Open in Web Editor NEW
99.0 7.0 7.0 51.11 MB

🍿📼 Sensorr - Your Friendly Digital Video Recorder

License: GNU Lesser General Public License v3.0

JavaScript 99.09% CSS 0.59% HTML 0.06% Dockerfile 0.13% Shell 0.13%
react couchpotato radarr watcher3 torznab newznab release warez torrent newsgroup

sensorr's Introduction

✨ 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

sensorr's People

Contributors

dependabot-preview[bot] avatar seestray avatar thcolin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

sensorr's Issues

Error message ENOTFOUND

When using Jackett to search for movies I can get results and add a title to be downloaded. Whenever I click on "Grab a manual ticket" or force a "record" action this always shows up in the log file as error.

From my understanding when it "records" it should send the magnet link to the blackhole directory. Is this not the case? What action sends a link to the locally configured directory?

"err": {
"message": "request to http://magnet/?xt=urn:btih:659eae1f5dd3def74e571a44665fa22972aa706e&dn=Vanilla+Sky+%25282001%2529+720p+x264+-+750MB+-+YIFY&tr=udp%253A%252F%252Ftracker.leechers-paradise.org%253A6969&tr=udp%253A%252F%252Ftracker.openbittorrent.com%253A80&tr=udp%253A%252F%252Fopen.demonii.com%253A1337&tr=udp%253A%252F%252Ftracker.coppersurfer.tk%253A6969&tr=udp%253A%252F%252Fexodus.desync.com%253A6969 failed, reason: getaddrinfo ENOTFOUND magnet",
"type": "system",
"errno": "ENOTFOUND",
"code": "ENOTFOUND"
},
"code": "ENOTFOUND"

Support for Raspberry Pi

When I try to install or run the program (by Docker) on Raspberry Pi the message appears:

standard_init_linux.go:190: exec user process caused "exec format error"

I use DietPi (an extremely light Debian)

TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["WWW-Authenticate"]

Hello there :)
Thank you first for this amazing tool and the amont of work.
I've an issue with the latest version with this environment :

  • synology
  • docker

run command :
docker run -p 5070:5070 -e TZ=Europe/Paris -v [config folder]:/app/sensorr/config -v [blackhole folder]:/app/sensorr/blackhole --name="sensorr" thcolin/sensorr:latest

config :
défaut config.json and custom (v0.9) config.json with same results

2020-05-13T00:18:50: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (28) | stderr -- | --
--> not blocking error

TypeError [ERR_INVALID_CHAR]: Invalid character in header content ["WWW-Authenticate"] | stderr -- | --
--> Internal Server Error

I can give more details about it if needed and I'll be glad to help
julien

Unable to download torrent file (reverse proxy)

Hi,

When I click on the button grab it I get the following message

Something went wrong during movie.2019.TRUEFRENCH.720p.BluRay grabing : FetchError: request to https://jackett:9117/dl/tracker/?jackett_apikey=xxxxxxxxxxxxxxxxxxxxxxxx&path=Q2ZESjhBVnRuQjBuUnlwT3NLbVJrbkx1bDlzd1kzWTFnbmdTbXFXcDZDaEViV0JvSjlqaUxzc3lQMHZCNUN3djVtdTl2V21MX1V4dnUxdVEtY3dlRVBjM1EzNDA2NUNYUVhfYUxKanJfN1V2VTYwOGNoZ2xndlMtcWNpR3o2Y1NVaWRRdjdZQmxQZS02WVNrTHlHbjVCTFdJeGs0TTlsZ3REWDQxQ0lWbEZMYlNaVVhZT1ltX3RES2hsTWdKdTFQYWlKWHo1Q0NWSFRFSTY3UzJ2WTg5c2RRT2UtWDA2SFR6SGtaRXFsa3p3NlRRcVpV&file=movie.2019.TRUEFRENCH.720p.BluRay failed, reason: write EPROTO 140089308867464:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:../deps/openssl/openssl/ssl/record/ssl3_record.c:332:

This url is not correct : https://jackett:9117/dl/tracker/?jackett_apikey=xxxxxxxxxxxxxxxxxxxxxxxx
The correct url is http://jackett:9117/dl/tracker/?jackett_apikey=xxxxxxxxxxxxxxxxxxxxxxxx

Masquer le contenu du champ password

Le champ password dans les settings de sensorr est en clair pour l'authentification.

Il serait mieux de le masquer pour éviter que tout le monde puisse voir le mot de passe en jetant un oeil sur l'écran lors de la configuration

execute log error after deployed to heroku

`

2020-01-02T09:35:05.512748+00:00 app[web.1]: 2020-01-02T09:35:05: PM2 log: [PM2][WORKER] Registering a cron job on: 4

2020-01-02T09:35:05.514383+00:00 app[web.1]: 2020-01-02T09:35:05: PM2 log: [PM2][WORKER] Registering a cron job on: 5

2020-01-02T09:35:19.315118+00:00 heroku[router]: at=error code=H20 desc="App boot timeout" method=GET path="/" host=sensorr.herokuapp.com request_id=2ac156ea-10c7-427d-8de0-203e27c80684 fwd="45.56.174.200" dyno= connect= service= status=503 bytes= protocol=https

2020-01-02T09:35:32.109793+00:00 heroku[web.1]: State changed from starting to crashed

2020-01-02T09:35:32.022434+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch

2020-01-02T09:35:32.022505+00:00 heroku[web.1]: Stopping process with SIGKILL

2020-01-02T09:35:32.091240+00:00 heroku[web.1]: Process exited with status 137

2020-01-02T09:35:32.630562+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=sensorr.herokuapp.com request_id=d04d26bd-41f5-4299-954e-8af777462c80 fwd="45.56.174.200" dyno= connect= service= status=503 bytes= protocol=https

2020-01-02T09:35:33.503055+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=sensorr.herokuapp.com request_id=212d2212-93ad-491c-8bc2-87e047e82cf4 fwd="45.56.174.200" dyno= connect= service= status=503 bytes= protocol=https

2020-01-02T09:35:34.033433+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=sensorr.herokuapp.com request_id=12209747-b87f-456d-a379-4f5a997c484f fwd="45.56.174.200" dyno= connect= service= status=503 bytes= protocol=https`
please help me to solve it

Apple API HTTPS forcé ?

Salut, j'ai installé un Jackett qui n'a pas de domaine lié et est en http://ip:port. Je remarque que Sensorr appelle quand même l'API en HTTPS. Est-il possible de ne pas forcer le SSL ?

[Docker] - Fresh install errors and Plex integration doing nothing

Hello,

I wasn't sure whether I should create two separate issues but given it's a fresh install I thought they might be linked.

Install details:

  • Debian 10
  • Docker version: 5:19.03.133-0debian-buster (installed using the official Docker guide, not from Debian repos)
  • container created with:
    docker run -p 5070:5070 -v /home/<myactualusername>/.sensorr:/app/sensorr/config -v /home/<myactualusername>/downloads:/app/sensorr/blackhole --name="sensorr" thcolin/sensorr
  • container created with my user (not root)

First comment:
When creating the container, the creation behaves oddly.
When I created other contaiers (Radarr, Ombi), containers were created and I returned to prompt, then I could start them.
With Sensorr, it acted as if it was actually starting the container immediately and throw up a lot of logs (the same you get with "docker logs ".

The logs show a lot of errors (see below), but Sensorr is still browsable.
After editing the config, the configuration JSON file is correctly created in the .sensorr directory in my user's home, and contains valid data.

I also manage to link Sensorr with Plex, connection seems OK from Sensorr's settings page, and Sensorr is listed in the authenticated devices in the Plex management interface.

However:

  • my Movies => Library page stays empty : shouldn't it list the movies I already have thanks to Plex integration ?
  • when looking for a movie through the regular search, Sensorr never tells the movie already exists (in Plex) ?
    Did I misunderstand how the Plex integration is supposed to work ?

Here are the logs obtained after a fresh container start:

$ FORCE_COLOR=1 pm2-runtime start ecosystem.config.js --env=production 2020-11-18T16:40:32: PM2 log: Launching in no daemon mode 2020-11-18T16:40:32: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (28) at Object.writeFileSync (fs.js:1380:5) at module.exports.Daemon.innerStart (/app/sensorr/node_modules/pm2/lib/Daemon.js:89:8) at /app/sensorr/node_modules/pm2/lib/Client.js:77:14 at /app/sensorr/node_modules/pm2/lib/Client.js:311:14 at processTicksAndRejections (internal/process/task_queues.js:79:11) 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'cat' of module exports inside circular dependency (Use node --trace-warnings ... to show where the warning was created) 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'cd' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'chmod' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'cp' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'dirs' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'pushd' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'popd' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'echo' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'tempdir' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'pwd' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'exec' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'ls' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'find' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'grep' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'head' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'ln' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'mkdir' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'rm' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'mv' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'sed' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'set' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'sort' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'tail' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'test' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'to' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'toEnd' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'touch' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'uniq' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 error: (node:28) Warning: Accessing non-existent property 'which' of module exports inside circular dependency 2020-11-18T16:40:33: PM2 log: App [sensorr:web:0] starting in -cluster mode- 2020-11-18T16:40:33: PM2 log: App [sensorr:purge:1] starting in -fork mode- 2020-11-18T16:40:33: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (46) at Object.writeFileSync (fs.js:1380:5) at /app/sensorr/node_modules/pm2/lib/God/ForkMode.js:258:12 at wrapper (/app/sensorr/node_modules/pm2/node_modules/async/internal/once.js:12:16) at next (/app/sensorr/node_modules/pm2/node_modules/async/waterfall.js:96:20) at /app/sensorr/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16 at WriteStream.<anonymous> (/app/sensorr/node_modules/pm2/lib/Utility.js:186:13) at WriteStream.emit (events.js:315:20) at WriteStream.EventEmitter.emit (domain.js:485:12) at internal/fs/streams.js:395:12 at FSReqCallback.oncomplete (fs.js:163:23) 2020-11-18T16:40:33: PM2 log: App [sensorr:purge:1] online 2020-11-18T16:40:33: PM2 log: App [sensorr:record:2] starting in -fork mode- 2020-11-18T16:40:33: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (53) at Object.writeFileSync (fs.js:1380:5) at /app/sensorr/node_modules/pm2/lib/God/ForkMode.js:258:12 at wrapper (/app/sensorr/node_modules/pm2/node_modules/async/internal/once.js:12:16) at next (/app/sensorr/node_modules/pm2/node_modules/async/waterfall.js:96:20) at /app/sensorr/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16 at WriteStream.<anonymous> (/app/sensorr/node_modules/pm2/lib/Utility.js:186:13) at WriteStream.emit (events.js:315:20) at WriteStream.EventEmitter.emit (domain.js:485:12) at internal/fs/streams.js:395:12 at FSReqCallback.oncomplete (fs.js:163:23) 2020-11-18T16:40:33: PM2 log: App [sensorr:record:2] online 2020-11-18T16:40:33: PM2 log: App [sensorr:web:0] online 2020-11-18T16:40:33: PM2 log: App [sensorr:schedule:3] starting in -fork mode- 2020-11-18T16:40:33: PM2 log: App [sensorr:pairwise:4] starting in -fork mode- 2020-11-18T16:40:33: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (60) at Object.writeFileSync (fs.js:1380:5) at /app/sensorr/node_modules/pm2/lib/God/ForkMode.js:258:12 at wrapper (/app/sensorr/node_modules/pm2/node_modules/async/internal/once.js:12:16) at next (/app/sensorr/node_modules/pm2/node_modules/async/waterfall.js:96:20) at /app/sensorr/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16 at WriteStream.<anonymous> (/app/sensorr/node_modules/pm2/lib/Utility.js:186:13) at WriteStream.emit (events.js:315:20) at WriteStream.EventEmitter.emit (domain.js:485:12) at internal/fs/streams.js:395:12 at FSReqCallback.oncomplete (fs.js:163:23) 2020-11-18T16:40:33: PM2 log: App [sensorr:schedule:3] online 2020-11-18T16:40:33: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (61) at Object.writeFileSync (fs.js:1380:5) at /app/sensorr/node_modules/pm2/lib/God/ForkMode.js:258:12 at wrapper (/app/sensorr/node_modules/pm2/node_modules/async/internal/once.js:12:16) at next (/app/sensorr/node_modules/pm2/node_modules/async/waterfall.js:96:20) at /app/sensorr/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16 at WriteStream.<anonymous> (/app/sensorr/node_modules/pm2/lib/Utility.js:186:13) at WriteStream.emit (events.js:315:20) at WriteStream.EventEmitter.emit (domain.js:485:12) at internal/fs/streams.js:395:12 at FSReqCallback.oncomplete (fs.js:163:23) 2020-11-18T16:40:33: PM2 log: App [sensorr:pairwise:4] online 2020-11-18T16:40:33: PM2 log: App [sensorr:hydrate:5] starting in -fork mode- 2020-11-18T16:40:33: PM2 error: TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (68) at Object.writeFileSync (fs.js:1380:5) at /app/sensorr/node_modules/pm2/lib/God/ForkMode.js:258:12 at wrapper (/app/sensorr/node_modules/pm2/node_modules/async/internal/once.js:12:16) at next (/app/sensorr/node_modules/pm2/node_modules/async/waterfall.js:96:20) at /app/sensorr/node_modules/pm2/node_modules/async/internal/onlyOnce.js:12:16 at WriteStream.<anonymous> (/app/sensorr/node_modules/pm2/lib/Utility.js:186:13) at WriteStream.emit (events.js:315:20) at WriteStream.EventEmitter.emit (domain.js:485:12) at internal/fs/streams.js:395:12 at FSReqCallback.oncomplete (fs.js:163:23) 2020-11-18T16:40:33: PM2 log: App [sensorr:hydrate:5] online job "./bin/sensorr purge" waiting... job "./bin/sensorr record" waiting... job "./bin/sensorr schedule" waiting... TypeError [ERR_INVALID_ARG_TYPE]: The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received type number (39) at Object.writeFileSync (fs.js:1380:5) at ProcessContainer (/app/sensorr/node_modules/pm2/lib/ProcessContainer.js:67:8) at Object.<anonymous> (/app/sensorr/node_modules/pm2/lib/ProcessContainer.js:100:3) at Module._compile (internal/modules/cjs/loader.js:1185:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1205:10) at Module.load (internal/modules/cjs/loader.js:1034:32) at Function.Module._load (internal/modules/cjs/loader.js:923:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) at internal/main/run_main_module.js:17:47 job "./bin/sensorr pairwise" waiting... job "./bin/sensorr hydrate" waiting... SOCKET {"sessions":0} PM2 {"event":"connected"} 2020-11-18T16:40:35: PM2 log: Stopping app:sensorr:hydrate id:5 2020-11-18T16:40:35: PM2 log: Stopping app:sensorr:pairwise id:4 2020-11-18T16:40:35: PM2 log: Stopping app:sensorr:schedule id:3 SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":false,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":false}} SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":false}} SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":true,"sensorr:pairwise":false,"sensorr:hydrate":false}} SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":true,"sensorr:pairwise":true,"sensorr:hydrate":false}} SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":true,"sensorr:pairwise":true,"sensorr:hydrate":true}} 2020-11-18T16:40:35: PM2 log: Stopping app:sensorr:record id:2 2020-11-18T16:40:35: PM2 log: Stopping app:sensorr:purge id:1 2020-11-18T16:40:35: PM2 log: App [sensorr:schedule:3] exited with code [0] via signal [SIGINT] 2020-11-18T16:40:35: PM2 log: App [sensorr:pairwise:4] exited with code [0] via signal [SIGINT] 2020-11-18T16:40:35: PM2 log: App [sensorr:purge:1] exited with code [0] via signal [SIGINT] 2020-11-18T16:40:35: PM2 log: App [sensorr:record:2] exited with code [0] via signal [SIGINT] 2020-11-18T16:40:35: PM2 log: App [sensorr:hydrate:5] exited with code [0] via signal [SIGINT] SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":false,"sensorr:pairwise":true,"sensorr:hydrate":true}} SOCKET {"jobs":{"sensorr:purge":true,"sensorr:record":true,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":true}} SOCKET {"jobs":{"sensorr:purge":false,"sensorr:record":true,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":true}} SOCKET {"jobs":{"sensorr:purge":false,"sensorr:record":false,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":true}} SOCKET {"jobs":{"sensorr:purge":false,"sensorr:record":false,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":false}} 2020-11-18T16:40:35: PM2 log: pid=60 msg=process killed 2020-11-18T16:40:35: PM2 log: pid=61 msg=process killed 2020-11-18T16:40:35: PM2 log: pid=68 msg=process killed 2020-11-18T16:40:35: PM2 log: pid=46 msg=process killed 2020-11-18T16:40:35: PM2 log: pid=53 msg=process killed SOCKET #wJ0Qtl8XpsloA4LFAAAA {"event":"connected"} SOCKET #wJ0Qtl8XpsloA4LFAAAA {"sessions":0} SOCKET #wJ0Qtl8XpsloA4LFAAAA {"jobs":{"sensorr:purge":false,"sensorr:record":false,"sensorr:schedule":false,"sensorr:pairwise":false,"sensorr:hydrate":false}} SOCKET #wJ0Qtl8XpsloA4LFAAAA {"plex":"unknown"} SOCKET {"plex":"authorized"}

Apres configuration de Jackett, impossible de recuperer les liens YggTorrent

J'ai bien installé et configuré Jackett sur mon serveur ;) Lorsque je lance une recherche manuelle sur Jackett, j'obtiens une liste de torrents disponible sur YggTorrent ;)

Cependant sensorr me retourne aucun résultat à chaque fois !

vendors~main.bundle.js:23 Uncaught TypeError: You provided an invalid object where a stream was expected. You can provide an Observable, Promise, Array, or Iterable. at p (vendors~main.bundle.js:23) at o (vendors~main.bundle.js:16) at t.error (vendors~main.bundle.js:16) at t._error (vendors~main.bundle.js:16) at t.error (vendors~main.bundle.js:16) at t._error (vendors~main.bundle.js:16) at t.error (vendors~main.bundle.js:16) at t._error (vendors~main.bundle.js:16) at t.error (vendors~main.bundle.js:16) at t._error (vendors~main.bundle.js:16)

GET http://163.172.11.201:5070/proxy?url=aHR0cDovLzE2My4xNzIuMTEuMjAxOjkxMTcvYXBpL3YyLjAvaW5kZXhlcnMveWdndG9ycmVudC9yZXN1bHRzL3RvcnpuYWIvP3E9bGUgYnJpbyZRdWVyeT1sZSBicmlvJnQ9c2VhcmNoJmNhdD0yMDAwLDIwMTAsMjAyMCwyMDMwLDIwNDAsMjA1MCwyMDYwJmZvcm1hdD1qc29uJmFwaWtleT04dnJubmNlYTNhNGV3YzcwOWRoYTB1bnZma2x2OGEyag== 500 (Internal Server Error)

_ {message: "ajax error 500", name: "AjaxError", xhr: XMLHttpRequest, request: {…}, status: 500, …}

Impossible de télécharger

Salut, peu importe le film que j'essaye de télécharger j'ai cette erreur, avec n'importe quelle indexers:
image
Si tu as une idées, merci d'avance

Quality profiles

Congrats on your new project. Looks promising.

Now to the point. Please don't copy the quality profiles from Radarr. They're so rigid and counter productive.

Problems:

  • Each rip type (HDTV, WEBDL, Bluray etc), is restricted to one bitrate range. But what if you want a high bitrate BDRip for your favorite movies and a low bitrate BDRip for the rest? Or what if you don't even care about the rip type and you just want high bitrate 1080p and low bitrate 1080p. AFAIK, that's not possible without setting a bitrate range for each type. But if you do that you're needlessly filtering the source of the rip, thus limiting yourself.
  • You can only have one profile per movie. Say you have a standard profile 1080p h264 for all your movies, but for your big 4k tv you'd also like a 2160p h265 copy of your favorite movies. Do you pick quantity or quality?

Instead allow for creation of custom movie profiles like the examples below:

quality_definitions //user defined but with healthy defaults

[
  {
    id: 0
    name: 'h265 high',
    codec: 'h265',
    allowed_resolutions: ['2160'],
    bitrate_min: 10,000,
    bitrate_max: 30,000
  },
  {
    id: 1,
    name: 'h265 low',
    codec: 'h265',
    allowed_resolutions: ['2160', '1080'],
    bitrate_min: 500,
    bitrate_max: 3,000
  },
  {
    id: 2,
    name: 'h264 low',
    codec: 'h264',
    allowed_resolutions: ['2160', '1080', '720'],
    bitrate_min: 1,000,
    bitrate_max: 3,000
  }
]

quality_profiles //user defined but with healthy default(s)

[
  {
    id: 0,
    name: 'Big screen movies',
    quality_profiles: [1] //h265 high
  },
  {
    id: 1,
    name: 'Default Profile',
    quality_profiles: [2, 3] //h265 low & h264 low
  },
  {
    id: 2,
    name: 'Compatibility profile',
    quality_profiles: [2] //the ipads and the kid's TV can't handle h265
  }
]

wanted_movies

[
  {
    name: 'Mad Max: Fury Road (2015)',
    imdb_id: 'tt1392190',
    wanted_qualities: [0, 1] //Big screen and default profile - we want it for the projector as well as for the bedroom TV
    ...
  },
  {
    name: 'Toy Story 4 (2019)',
    imdb_id: 'tt1979376',
    wanted_qualities: [0, 2] //Big screen and compatibility  profile - we want it for the projector as well as for the kids TV
    ...
  },
  {
    name: 'Gone Fishin (1997),
    imdb_id: 'tt0119214',
    wanted_qualities: [1] //Default profile - No need for high bitrate or compatibility for this one.
    ...
  }

Login/mdp pas pris en compte

Bonjour,
Je me suis rendu compte que meme en modifiant l'identifiant et le mot de passe cela ne fonctionner pas
J'explique .
La modification s'effectue bien dans le fichier de config , malheureusement une fois la page actualisé si je n'entre pas de mot de passe ou que je rentre n'importe quoi l'accès fonctionne quand même

Impossible de démarrer

J'ai effectué les commandes suivantes :

git clone https://github.com/thcolin/sensorr.git
cd sensorr
npm i -g pm2
npm i
npm run build
npm run prod

Et j'obtiens ce message :

2018-12-10T17:58:44: PM2 log: Launching in no daemon mode
2018-12-10T17:58:44: PM2 log: App [sensorr:web:0] starting in -fork mode-
2018-12-10T17:58:44: PM2 log: App [sensorr:record:1] starting in -fork mode-
2018-12-10T17:58:44: PM2 log: App [sensorr:web:0] online
2018-12-10T17:58:44: PM2 log: App [sensorr:record:1] online
job "./bin/sensorr record -a" working...
 PM2  Connected successfully
job "./bin/sensorr record -a" done !
2018-12-10T17:58:47: PM2 log: App [sensorr:record:1] exited with code [0] via signal [SIGINT]

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.