Created dedicated radarr and prowlarr demo images and pushed them up to DockerHub, and updated the script to be a true one liner
This commit is contained in:
@@ -15,19 +15,31 @@ To run this demo, simply run the [demo script](./managarr-demo.sh):
|
|||||||
./managarr-demo.sh
|
./managarr-demo.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
## Cleanup
|
|
||||||
This demo will download a handful of docker images. To clean up after this demo, run the following command:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
docker image rm lscr.io/linuxserver/radarr &&\
|
|
||||||
docker image rm lscr.io/linuxserver/prowlarr &&\
|
|
||||||
rm -rf /tmp/managarr*
|
|
||||||
```
|
|
||||||
|
|
||||||
## Limitations
|
## Limitations
|
||||||
This demo has no download functionality. It is an eventual goal to have a mock API for one of the BitTorrent clients like Transmission
|
This demo has no download functionality. It is an eventual goal to have a mock API for one of the BitTorrent clients like Transmission
|
||||||
to emulate this functionality for a full demo experience.
|
to emulate this functionality for a full demo experience.
|
||||||
|
|
||||||
|
## Building
|
||||||
|
To build and push both the [prowlarr](./prowlarr.Dockerfile) and [radarr](./radarr.Dockerfile) images, it is easiest to just use the [build script](./build.sh):
|
||||||
|
|
||||||
|
```shell
|
||||||
|
./build.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running directly with docker compose
|
||||||
|
If you wish to run the demo directly from the [docker-compose.yml](./docker-compose.yml),
|
||||||
|
you can either run it simply with
|
||||||
|
|
||||||
|
```shell
|
||||||
|
docker compose run --rm managarr
|
||||||
|
```
|
||||||
|
|
||||||
|
which will use the [default managarr configuration file](./mock-htpc/managarr/config.yml), or you can specify it manually with the `MANAGARR_CONFIG` environment variable:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
MANAGARR_CONFIG=/tmp/managarr.yml docker compose run --rm managarr
|
||||||
|
```
|
||||||
|
|
||||||
## Creator
|
## Creator
|
||||||
* [Alex Clarke](https://github.com/Dark-Alex-17)
|
* [Alex Clarke](https://github.com/Dark-Alex-17)
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
docker build -f radarr.Dockerfile -t darkalex17/radarr-mock:latest .
|
||||||
|
docker push darkalex17/radarr-mock:latest
|
||||||
|
|
||||||
|
docker build -f prowlarr.Dockerfile -t darkalex17/prowlarr-mock:latest .
|
||||||
|
docker push darkalex17/prowlarr-mock:latest
|
||||||
+3
-22
@@ -1,32 +1,13 @@
|
|||||||
---
|
---
|
||||||
services:
|
services:
|
||||||
radarr:
|
radarr:
|
||||||
image: lscr.io/linuxserver/radarr:latest
|
image: darkalex17/radarr-mock:latest
|
||||||
container_name: radarr
|
container_name: radarr
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Etc/UTC
|
|
||||||
volumes:
|
|
||||||
- ./mock-htpc/movies:/movies
|
|
||||||
- ./mock-htpc/films:/films
|
|
||||||
- ./mock-htpc/downloads:/downloads
|
|
||||||
- ./mock-htpc/radarr:/config
|
|
||||||
ports:
|
|
||||||
- 7878:7878
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
prowlarr:
|
prowlarr:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: darkalex17/prowlarr-mock:latest
|
||||||
container_name: prowlarr
|
container_name: prowlarr
|
||||||
environment:
|
|
||||||
- PUID=1000
|
|
||||||
- PGID=1000
|
|
||||||
- TZ=Etc/UTC
|
|
||||||
volumes:
|
|
||||||
- ./mock-htpc/prowlarr:/config
|
|
||||||
ports:
|
|
||||||
- 9696:9696
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
managarr:
|
managarr:
|
||||||
@@ -34,7 +15,7 @@ services:
|
|||||||
stdin_open: true
|
stdin_open: true
|
||||||
tty: true
|
tty: true
|
||||||
volumes:
|
volumes:
|
||||||
- ./mock-htpc/managarr:/root/.config/managarr/
|
- "${MANAGARR_CONFIG:-./mock-htpc/managarr/config.yml}:/root/.config/managarr/config.yml:ro"
|
||||||
depends_on:
|
depends_on:
|
||||||
radarr:
|
radarr:
|
||||||
condition: service_started
|
condition: service_started
|
||||||
|
|||||||
+24
-8
@@ -1,21 +1,37 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
DEMO_TEMP_DIR=/tmp/managarr-demo
|
DEMO_TEMP_COMPOSE_FILE=/tmp/docker-compose.yml
|
||||||
|
DEMO_TEMP_CONFIG_FILE=/tmp/config.yml
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
docker compose -f "$DEMO_TEMP_COMPOSE_FILE" down
|
||||||
|
|
||||||
|
docker rmi -f $(docker images | grep "darkalex17" | awk '{print $3}')
|
||||||
|
|
||||||
|
rm -f "$DEMO_TEMP_COMPOSE_FILE"
|
||||||
|
rm -f "$DEMO_TEMP_CONFIG_FILE"
|
||||||
|
rm -f /tmp/managarr-demo.sh
|
||||||
|
}
|
||||||
|
|
||||||
fail() {
|
fail() {
|
||||||
result=$?
|
result=$?
|
||||||
|
cleanup
|
||||||
if [ "$result" != "0" ]; then
|
if [ "$result" != "0" ]; then
|
||||||
echo "Fail to run the Managarr demo"
|
echo "Failed to run the Managarr demo"
|
||||||
fi
|
fi
|
||||||
exit $result
|
exit $result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
[ -f "$DEMO_TEMP_COMPOSE_FILE" ] || curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/docker-compose.yml > "$DEMO_TEMP_COMPOSE_FILE"
|
||||||
|
[ -f "$DEMO_TEMP_CONFIG_FILE" ] || curl https://raw.githubusercontent.com/Dark-Alex-17/managarr-demo/main/mock-htpc/managarr/config.yml > "$DEMO_TEMP_CONFIG_FILE"
|
||||||
|
|
||||||
|
MANAGARR_CONFIG="$DEMO_TEMP_CONFIG_FILE" docker compose -f "$DEMO_TEMP_COMPOSE_FILE" run --rm managarr
|
||||||
|
|
||||||
|
cleanup
|
||||||
|
}
|
||||||
|
|
||||||
trap "fail" EXIT
|
trap "fail" EXIT
|
||||||
set -e
|
set -e
|
||||||
|
main
|
||||||
|
|
||||||
[ -d "$DEMO_TEMP_DIR" ] || git clone git@github.com:Dark-Alex-17/managarr-demo.git "$DEMO_TEMP_DIR"
|
|
||||||
|
|
||||||
docker compose -f "$DEMO_TEMP_DIR/docker-compose.yml" run --rm managarr &&\
|
|
||||||
docker compose -f "$DEMO_TEMP_DIR/docker-compose.yml" down &&\
|
|
||||||
docker image rm darkalex17/managarr &&\
|
|
||||||
rm -rf /tmp/managarr-demo.sh
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ type: private
|
|||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
requestDelay: 2
|
requestDelay: 2
|
||||||
links:
|
links:
|
||||||
|
- https://www.agsvpt.com/
|
||||||
- https://abroad.agsvpt.com/
|
- https://abroad.agsvpt.com/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
@@ -80,9 +81,8 @@ settings:
|
|||||||
default: "Account retention rules:<ol><li>Elite User and above will not have their account deleted after parking (in the Control Panel)</li><li>Users who do not log in for 400 consecutive days will be disabled.</li><li>Users with a parked account will be disabled if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e., uploading/downloading data is 0) within 7 days of new registration will be disabled</li><li>Users with no traffic (i.e. both upload/download data is 0) who do not log in for 30 consecutive days will be disabled.</li></ol>"
|
default: "Account retention rules:<ol><li>Elite User and above will not have their account deleted after parking (in the Control Panel)</li><li>Users who do not log in for 400 consecutive days will be disabled.</li><li>Users with a parked account will be disabled if they do not log in for 150 consecutive days</li><li>Users who have no traffic (i.e., uploading/downloading data is 0) within 7 days of new registration will be disabled</li><li>Users with no traffic (i.e. both upload/download data is 0) who do not log in for 30 consecutive days will be disabled.</li></ol>"
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: agsvpt
|
path: takelogin.php
|
||||||
method: form
|
method: post
|
||||||
form: form[action="takelogin.php"]
|
|
||||||
inputs:
|
inputs:
|
||||||
secret: ""
|
secret: ""
|
||||||
username: "{{ .Config.username }}"
|
username: "{{ .Config.username }}"
|
||||||
|
|||||||
@@ -157,5 +157,5 @@ search:
|
|||||||
False: 1 # normal
|
False: 1 # normal
|
||||||
True: 2 # double
|
True: 2 # double
|
||||||
minimumratio:
|
minimumratio:
|
||||||
text: 0.4
|
text: 1.0
|
||||||
# json UNIT3D 7.0.3
|
# json UNIT3D 7.0.3
|
||||||
|
|||||||
@@ -102,6 +102,10 @@ settings:
|
|||||||
type: info
|
type: info
|
||||||
label: Results Per Page
|
label: Results Per Page
|
||||||
default: For best results, change the <b>Anzahl der Torrents beim Durchsuchen:</b> setting to <b>60</b> on your Control Panel. The default is <i>15</i>.
|
default: For best results, change the <b>Anzahl der Torrents beim Durchsuchen:</b> setting to <b>60</b> on your Control Panel. The default is <i>15</i>.
|
||||||
|
- name: info_activity
|
||||||
|
type: info
|
||||||
|
label: Account Inactivity
|
||||||
|
default: "Inactive accounts will be deactivated after 7 weeks and deleted after another 3 weeks."
|
||||||
|
|
||||||
login:
|
login:
|
||||||
path: login.php
|
path: login.php
|
||||||
|
|||||||
@@ -0,0 +1,142 @@
|
|||||||
|
---
|
||||||
|
id: h-p2p
|
||||||
|
name: H-P2P
|
||||||
|
description: "H-P2P is a Private Torrent Tracker for OnlyFans XXX"
|
||||||
|
language: en-US
|
||||||
|
type: private
|
||||||
|
encoding: UTF-8
|
||||||
|
links:
|
||||||
|
- https://h-p2p.cam/
|
||||||
|
|
||||||
|
caps:
|
||||||
|
categorymappings:
|
||||||
|
- {id: 6, cat: XXX/WEB-DL, desc: "OnlyFans"}
|
||||||
|
|
||||||
|
modes:
|
||||||
|
search: [q]
|
||||||
|
tv-search: [q]
|
||||||
|
movie-search: [q]
|
||||||
|
|
||||||
|
settings:
|
||||||
|
- name: apikey
|
||||||
|
type: text
|
||||||
|
label: APIKey
|
||||||
|
- name: info_key
|
||||||
|
type: info
|
||||||
|
label: About your API key
|
||||||
|
default: "Find or Generate a new API Token by accessing your <a href=\"https://h-p2p.cam/\" target=\"_blank\">H-P2P</a> account <i>My Security</i> page and clicking on the <b>API Token</b> tab."
|
||||||
|
- name: freeleech
|
||||||
|
type: checkbox
|
||||||
|
label: Search freeleech only
|
||||||
|
default: false
|
||||||
|
- name: sort
|
||||||
|
type: select
|
||||||
|
label: Sort requested from site
|
||||||
|
default: created_at
|
||||||
|
options:
|
||||||
|
created_at: created
|
||||||
|
seeders: seeders
|
||||||
|
size: size
|
||||||
|
name: title
|
||||||
|
- name: type
|
||||||
|
type: select
|
||||||
|
label: Order requested from site
|
||||||
|
default: desc
|
||||||
|
options:
|
||||||
|
desc: desc
|
||||||
|
asc: asc
|
||||||
|
|
||||||
|
login:
|
||||||
|
path: /api/torrents
|
||||||
|
method: get
|
||||||
|
error:
|
||||||
|
- selector: a[href*="/login"]
|
||||||
|
message:
|
||||||
|
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||||
|
|
||||||
|
search:
|
||||||
|
paths:
|
||||||
|
# https://github.com/HDInnovations/UNIT3D-Community-Edition/wiki/Torrent-API-(UNIT3D-v7.0.0)
|
||||||
|
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php#L349
|
||||||
|
- path: "/api/torrents/filter"
|
||||||
|
response:
|
||||||
|
type: json
|
||||||
|
|
||||||
|
headers:
|
||||||
|
Authorization: ["Bearer {{ .Config.apikey }}"]
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
$raw: "{{ range .Categories }}&categories[]={{.}}{{end}}"
|
||||||
|
name: "{{ .Keywords }}"
|
||||||
|
free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||||
|
sortField: "{{ .Config.sort }}"
|
||||||
|
sortDirection: "{{ .Config.type }}"
|
||||||
|
perPage: 100
|
||||||
|
|
||||||
|
keywordsfilters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\.", " "]
|
||||||
|
|
||||||
|
rows:
|
||||||
|
selector: data
|
||||||
|
attribute: attributes
|
||||||
|
|
||||||
|
fields:
|
||||||
|
category:
|
||||||
|
selector: category_id
|
||||||
|
title:
|
||||||
|
selector: name
|
||||||
|
filters:
|
||||||
|
- name: re_replace
|
||||||
|
args: ["\\.", " "]
|
||||||
|
details:
|
||||||
|
selector: details_link
|
||||||
|
download:
|
||||||
|
selector: download_link
|
||||||
|
infohash:
|
||||||
|
selector: info_hash
|
||||||
|
poster:
|
||||||
|
selector: poster
|
||||||
|
filters:
|
||||||
|
- name: replace
|
||||||
|
args: ["https://via.placeholder.com/90x135", ""]
|
||||||
|
files:
|
||||||
|
selector: num_file
|
||||||
|
seeders:
|
||||||
|
selector: seeders
|
||||||
|
leechers:
|
||||||
|
selector: leechers
|
||||||
|
grabs:
|
||||||
|
selector: times_completed
|
||||||
|
date:
|
||||||
|
# "created_at": "2021-10-18T00:34:50.000000Z" is returned by Newtonsoft.Json.Linq as 18/10/2021 00:34:50
|
||||||
|
selector: created_at
|
||||||
|
filters:
|
||||||
|
- name: append
|
||||||
|
args: " +00:00" # GMT
|
||||||
|
- name: dateparse
|
||||||
|
args: "MM/dd/yyyy HH:mm:ss zzz"
|
||||||
|
size:
|
||||||
|
selector: size
|
||||||
|
downloadvolumefactor:
|
||||||
|
# api returns 0%, 25%, 50%, 75%, 100%
|
||||||
|
selector: freeleech
|
||||||
|
case:
|
||||||
|
0%: 1 # not free
|
||||||
|
25%: 0.75
|
||||||
|
50%: 0.5
|
||||||
|
75%: 0.25
|
||||||
|
100%: 0 # freeleech
|
||||||
|
"*": 0 # catch errors
|
||||||
|
uploadvolumefactor:
|
||||||
|
# api returns 0=false, 1=true
|
||||||
|
selector: double_upload
|
||||||
|
case:
|
||||||
|
0: 1 # normal
|
||||||
|
1: 2 # double
|
||||||
|
minimumratio:
|
||||||
|
text: 1.0
|
||||||
|
minimumseedtime:
|
||||||
|
# 7 days (as seconds = 7 x 24 x 60 x 60)
|
||||||
|
text: 604800
|
||||||
|
# json UNIT3D 6.3.0
|
||||||
@@ -10,13 +10,14 @@ links:
|
|||||||
|
|
||||||
caps:
|
caps:
|
||||||
categorymappings:
|
categorymappings:
|
||||||
- {id: 10, cat: Movies, desc: "MOVIES"}
|
- {id: 1, cat: Movies, desc: "MOVIES"}
|
||||||
- {id: 2, cat: TV, desc: "TV"}
|
- {id: 2, cat: TV, desc: "TV"}
|
||||||
- {id: 3, cat: PC, desc: "APPZ"}
|
- {id: 3, cat: TV/Foreign, desc: "TV-FOREIGN"}
|
||||||
|
- {id: 4, cat: PC, desc: "APPS"}
|
||||||
- {id: 5, cat: Audio, desc: "MUSIC"}
|
- {id: 5, cat: Audio, desc: "MUSIC"}
|
||||||
- {id: 8, cat: XXX, desc: "XXX"}
|
- {id: 6, cat: XXX, desc: "XXX"}
|
||||||
- {id: 12, cat: Books, desc: "EBOOKS"}
|
- {id: 7, cat: Console, desc: "GAMES"}
|
||||||
- {id: 9, cat: Console, desc: "GAMES"}
|
- {id: 8, cat: Books, desc: "EBOOKS"}
|
||||||
|
|
||||||
modes:
|
modes:
|
||||||
search: [q]
|
search: [q]
|
||||||
|
|||||||
@@ -144,6 +144,7 @@ caps:
|
|||||||
- {id: 252, cat: Books, desc: "Yachting, sailing, boating-Projects, design, construction"}
|
- {id: 252, cat: Books, desc: "Yachting, sailing, boating-Projects, design, construction"}
|
||||||
- {id: 251, cat: Books, desc: "Diving"}
|
- {id: 251, cat: Books, desc: "Diving"}
|
||||||
- {id: 177, cat: Books, desc: "Shipmodeling"}
|
- {id: 177, cat: Books, desc: "Shipmodeling"}
|
||||||
|
- {id: 352, cat: Books, desc: "Shipmodeling-Paper models"}
|
||||||
- {id: 293, cat: Books, desc: "Shipmodeling-Radio controlled models"}
|
- {id: 293, cat: Books, desc: "Shipmodeling-Radio controlled models"}
|
||||||
- {id: 292, cat: Books, desc: "Shipmodeling-Marine Modelling Magazines"}
|
- {id: 292, cat: Books, desc: "Shipmodeling-Marine Modelling Magazines"}
|
||||||
- {id: 291, cat: Books, desc: "Shipmodeling-Drawings and models of ships (CAD, 3D)"}
|
- {id: 291, cat: Books, desc: "Shipmodeling-Drawings and models of ships (CAD, 3D)"}
|
||||||
@@ -159,6 +160,7 @@ caps:
|
|||||||
- {id: 280, cat: Books, desc: "Marine History-Historic ships"}
|
- {id: 280, cat: Books, desc: "Marine History-Historic ships"}
|
||||||
- {id: 279, cat: Books, desc: "Marine History-Marine vessels"}
|
- {id: 279, cat: Books, desc: "Marine History-Marine vessels"}
|
||||||
- {id: 278, cat: Books, desc: "Marine History-Warships"}
|
- {id: 278, cat: Books, desc: "Marine History-Warships"}
|
||||||
|
- {id: 351, cat: Books, desc: "Marine History-Battleships"}
|
||||||
- {id: 259, cat: Books, desc: "Marine History-Shipbuilding history"}
|
- {id: 259, cat: Books, desc: "Marine History-Shipbuilding history"}
|
||||||
- {id: 277, cat: Books, desc: "Marine History-Wars at Sea"}
|
- {id: 277, cat: Books, desc: "Marine History-Wars at Sea"}
|
||||||
- {id: 276, cat: Books, desc: "Marine History-War at sea (World War I)"}
|
- {id: 276, cat: Books, desc: "Marine History-War at sea (World War I)"}
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ language: el-GR
|
|||||||
type: private
|
type: private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
links:
|
links:
|
||||||
|
- https://oldgreektracker.xyz/
|
||||||
|
legacylinks:
|
||||||
- http://oldgreektracker.xyz/
|
- http://oldgreektracker.xyz/
|
||||||
|
|
||||||
caps:
|
caps:
|
||||||
@@ -134,6 +136,16 @@ login:
|
|||||||
path: index.php
|
path: index.php
|
||||||
selector: a[href*="/logout.php?logouthash="]
|
selector: a[href*="/logout.php?logouthash="]
|
||||||
|
|
||||||
|
download:
|
||||||
|
before:
|
||||||
|
path: takethanks.php
|
||||||
|
method: post
|
||||||
|
inputs:
|
||||||
|
torrentid: "{{ .DownloadUri.Query.id }}"
|
||||||
|
selectors:
|
||||||
|
- selector: a[href*="download.php?id="]
|
||||||
|
attribute: href
|
||||||
|
|
||||||
search:
|
search:
|
||||||
paths:
|
paths:
|
||||||
- path: browse.php
|
- path: browse.php
|
||||||
@@ -154,28 +166,28 @@ search:
|
|||||||
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
|
order: "{{ if .Config.freeleech }}asc{{ else }}{{ .Config.type }}{{ end }}"
|
||||||
|
|
||||||
rows:
|
rows:
|
||||||
selector: "table.sortable tr:has(a[href*=\"/download-torrent-\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
selector: "table.sortable tr:has(a[href*=\"/download.php?id=\"]){{ if .Config.freeleech }}:has(img[src$=\"/freedownload.gif\"]){{ else }}{{ end }}"
|
||||||
|
|
||||||
fields:
|
fields:
|
||||||
category:
|
category:
|
||||||
selector: a[href*="/torrent-category-"]
|
selector: a[href*="/browse.php?category="]
|
||||||
attribute: href
|
attribute: href
|
||||||
filters:
|
filters:
|
||||||
- name: regexp
|
- name: querystring
|
||||||
args: /torrent-category-(.+?)/
|
args: category
|
||||||
title_default:
|
title_default:
|
||||||
# is usually abbreaviated
|
# is usually abbreaviated
|
||||||
selector: a[href*="/torrent-details-"]
|
selector: a[href*="/details.php?id="]
|
||||||
title:
|
title:
|
||||||
# while still abbreviated, is usually longer than the default
|
# while still abbreviated, is usually longer than the default
|
||||||
selector: div.tooltip-content div
|
selector: div.tooltip-content div
|
||||||
optional: true
|
optional: true
|
||||||
default: "{{ .Result.title_default }}"
|
default: "{{ .Result.title_default }}"
|
||||||
details:
|
details:
|
||||||
selector: a[href*="/torrent-details-"]
|
selector: a[href*="/details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
download:
|
download:
|
||||||
selector: a[href*="/download-torrent-"]
|
selector: a[href*="/details.php?id="]
|
||||||
attribute: href
|
attribute: href
|
||||||
magnet:
|
magnet:
|
||||||
selector: a[href^="magnet:?xt="]
|
selector: a[href^="magnet:?xt="]
|
||||||
@@ -184,11 +196,15 @@ search:
|
|||||||
selector: img[src*="/torrents/images/"]
|
selector: img[src*="/torrents/images/"]
|
||||||
attribute: src
|
attribute: src
|
||||||
date:
|
date:
|
||||||
selector: td:nth-child(2) > div:last-child
|
selector: td:nth-child(2)
|
||||||
# auto adjusted by site account profile
|
# auto adjusted by site account profile
|
||||||
filters:
|
filters:
|
||||||
|
- name: regexp
|
||||||
|
args: "(\\d{1,2}(?:st|nd|rd|th):\\w{3,9}:\\d{4} \\d{2}:\\d{2})"
|
||||||
|
- name: re_replace
|
||||||
|
args: ["^(\\d{1,2})(?:st|nd|rd|th):", "$1:"]
|
||||||
- name: dateparse
|
- name: dateparse
|
||||||
args: "dd-MM-yyyy HH:mm"
|
args: "d:MMMM:yyyy HH:mm"
|
||||||
size:
|
size:
|
||||||
selector: td:nth-last-child(5)
|
selector: td:nth-last-child(5)
|
||||||
grabs:
|
grabs:
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ description: "sharewood is a Semi-Private FRENCH Torrent Tracker for GENERAL"
|
|||||||
language: fr-FR
|
language: fr-FR
|
||||||
type: semi-private
|
type: semi-private
|
||||||
encoding: UTF-8
|
encoding: UTF-8
|
||||||
|
certificates:
|
||||||
|
- 023A091295E81813D040DFA0FA842DF9892BF0F5 # expired 10-March-2024 note: despite a new CA issued this one still pops up occasionally
|
||||||
links:
|
links:
|
||||||
- https://www.sharewood.tv/
|
- https://www.sharewood.tv/
|
||||||
|
|
||||||
|
|||||||
@@ -200,6 +200,8 @@ search:
|
|||||||
":contains(\"Divers\"):contains(\"1080p\")": "5GB"
|
":contains(\"Divers\"):contains(\"1080p\")": "5GB"
|
||||||
":contains(\"Divers\"):contains(\"720p\")": "4GB"
|
":contains(\"Divers\"):contains(\"720p\")": "4GB"
|
||||||
"*": ""
|
"*": ""
|
||||||
|
date:
|
||||||
|
text: now
|
||||||
download:
|
download:
|
||||||
selector: div.download-item > a
|
selector: div.download-item > a
|
||||||
attribute: href
|
attribute: href
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,8 @@
|
|||||||
|
FROM lscr.io/linuxserver/prowlarr:latest
|
||||||
|
|
||||||
|
ENV PUID=1000
|
||||||
|
ENV PGID=1000
|
||||||
|
ENV TZ=Etc/UTC
|
||||||
|
|
||||||
|
COPY ./mock-htpc/prowlarr/ /config
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
FROM lscr.io/linuxserver/radarr:latest
|
||||||
|
|
||||||
|
ENV PUID=1000
|
||||||
|
ENV PGID=1000
|
||||||
|
ENV TZ=Etc/UTC
|
||||||
|
|
||||||
|
COPY ./mock-htpc/radarr/ /config
|
||||||
|
COPY ./mock-htpc/movies /movies
|
||||||
|
COPY ./mock-htpc/films /films
|
||||||
|
|
||||||
Reference in New Issue
Block a user