Files
wmantly b166403309 Remember unavailable movies and auto-grab them later (wishlist)
When Smart Search finds no good copy of a movie (unreleased / only CAMs), we
now record it instead of dropping it:
- New Wanted model + migration (dedup by tmdbId, status wanted|fulfilled).
- POST /__api/search/releases remembers a movie when it returns no options,
  and the UI confirms it was added to the wishlist.
- controller/wantedWatcher re-runs Smart Search for wishlisted items every 6h
  (and on boot); when a good copy appears it queues the recommended release,
  which then flows through the normal download + organize pipeline, and marks
  the item fulfilled.
- GET/DELETE /__api/search/wanted to view/remove the wishlist.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-07 00:51:48 -04:00

66 lines
1.6 KiB
JavaScript

'use strict';
module.exports = {
privateDownloadLocation: '/media/torrents-zfs',
ldap: {
url: 'ldap://10.1.0.55:389',
bindDN: 'cn=ldapclient service,ou=people,dc=theta42,dc=com',
bindPassword: '__IN SRECREST FILE__',
userBase: 'ou=people,dc=theta42,dc=com',
groupBase: 'ou=groups,dc=theta42,dc=com',
userFilter: '(objectClass=posixAccount)',
userNameAttribute: 'uid'
},
sql: {
"storage": "database_test.sqlite",
"dialect": "sqlite",
logging: false,
},
transmission: {
host:'10.2.254.40',
ssl: false,
port: 9091,
username: 'william',
password: '__IN SRECREST FILE__',
statusUpdateInterval: 500,
},
tmdb: {
apiKey: '__IN SRECREST FILE__',
},
ollama: {
url: 'https://ollama.com',
apiKey: '__IN SRECREST FILE__',
model: 'gemma4:31b-cloud',
},
search: {
// TPB HTML mirror we scrape search results from( same host the proxy targets).
// apibay's JSON q.php is Cloudflare-gated, so we parse the HTML listing instead.
tpbBase: 'https://piratebay.party',
trackers: [
'udp://tracker.opentrackr.org:1337/announce',
'udp://open.stealth.si:80/announce',
'udp://tracker.torrent.eu.org:451/announce',
'udp://tracker.openbittorrent.com:6969/announce',
'udp://tracker.coppersurfer.tk:6969/announce',
'udp://open.demonii.com:1337/announce',
'udp://exodus.desync.com:6969/announce',
],
},
emby: {
url: 'https://emby.718it.biz',
apiKey: '__IN SRECREST FILE__',
},
library: {
root: '/media/stuff',
movie: 'movies',
tv: 'tv',
},
organize: {
includePrivate: false,
interval: 10000,
},
wanted: {
interval: 21600000, // re-check the wishlist every 6h
}
};