186 lines
4.7 KiB
YAML
186 lines
4.7 KiB
YAML
---
|
|
id: solidtorrents
|
|
name: Solid Torrents
|
|
description: "Solid Torrents is a Public torrent meta-search engine"
|
|
language: en-US
|
|
type: public
|
|
encoding: UTF-8
|
|
requestDelay: 2
|
|
links:
|
|
- https://solidtorrents.to/
|
|
legacylinks:
|
|
- https://solidtorrents.net/
|
|
- https://solidtorrents.nocensor.click/
|
|
- https://solidtorrents.eu/
|
|
- https://solidtorrents.nocensor.cloud/
|
|
|
|
caps:
|
|
categories:
|
|
AudioBook: Audio/Audiobook
|
|
eBook: Books/EBook
|
|
"Ebook/Course": Books/EBook
|
|
Games: PC/Games
|
|
"Games/PC": PC/Games
|
|
Movies: Movies
|
|
Music: Audio
|
|
"Music/Album": Audio
|
|
"Music/mp3": Audio/MP3
|
|
"Music/Lossless": Audio/Lossless
|
|
"Music/Video": Audio/Video
|
|
Other: Other
|
|
"Other/Android": PC/Mobile-Android
|
|
"Other/Archive": Other
|
|
"Other/Audio": Audio
|
|
"Other/Database": PC
|
|
"Other/DiskImage": PC/ISO
|
|
"Other/Document": Books/Comics
|
|
"Other/Image": Other/Misc
|
|
"Other/Program": PC/0day
|
|
"Other/Sourcecode": PC
|
|
"Other/Source Code": PC
|
|
"Other/Video": TV
|
|
Softwares: PC/0day
|
|
"Softwares/Windows": PC/0day
|
|
TV: TV
|
|
Unknown: Other
|
|
XXX: XXX
|
|
|
|
modes:
|
|
search: [q]
|
|
tv-search: [q, season, ep]
|
|
movie-search: [q]
|
|
music-search: [q]
|
|
book-search: [q]
|
|
|
|
settings:
|
|
- name: prefer_magnet_links
|
|
type: checkbox
|
|
label: Prefer Magnet Links
|
|
default: false
|
|
- name: sort
|
|
type: select
|
|
label: Sort requested from site
|
|
default: date
|
|
options:
|
|
date: created
|
|
seeders: seeders
|
|
size: size
|
|
- name: type
|
|
type: select
|
|
label: Order requested from site
|
|
default: desc
|
|
options:
|
|
desc: desc
|
|
asc: asc
|
|
|
|
search:
|
|
paths:
|
|
# https://solidtorrents.net/search?q=&sort=date&order=desc
|
|
- path: search
|
|
inputs:
|
|
q: "{{ .Keywords }}"
|
|
sort: "{{ .Config.sort }}"
|
|
order: "{{ .Config.type }}"
|
|
limit: 100
|
|
page: 1
|
|
|
|
rows:
|
|
selector: li.search-result:has(a[class="dl-torrent"])
|
|
|
|
fields:
|
|
category:
|
|
selector: a.category
|
|
title:
|
|
selector: h5
|
|
details:
|
|
selector: h5 a
|
|
attribute: href
|
|
download_optional:
|
|
selector: a[class="dl-torrent"]
|
|
attribute: href
|
|
optional: true
|
|
download:
|
|
text: "{{ if .Config.prefer_magnet_links }}{{ else }}{{ .Result.download_optional }}{{ end }}"
|
|
optional: true
|
|
magnet:
|
|
selector: a[href^="magnet:?xt"]
|
|
attribute: href
|
|
infohash:
|
|
selector: a[href^="magnet:?xt"]
|
|
attribute: href
|
|
filters:
|
|
- name: regexp
|
|
args: ([A-F|a-f|0-9]{40})
|
|
grabs_dot:
|
|
selector: div.stats div:has(img[alt="Download"]):contains(".")
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: [".", ""]
|
|
- name: replace
|
|
args: ["K", "00"]
|
|
- name: replace
|
|
args: ["M", "00000"]
|
|
grabs_nodot:
|
|
selector: div.stats div:has(img[alt="Download"]):not(:contains("."))
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: ["K", "000"]
|
|
- name: replace
|
|
args: ["M", "000000"]
|
|
grabs:
|
|
text: "{{ if or .Result.grabs_dot .Result.grabs_nodot }}{{ or .Result.grabs_dot .Result.grabs_nodot }}{{ else }}0{{ end }}"
|
|
size:
|
|
selector: div.stats div:has(img[alt="Size"])
|
|
seeders_dot:
|
|
selector: div.stats div:has(img[alt="Seeder"]):contains(".")
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: [".", ""]
|
|
- name: replace
|
|
args: ["K", "00"]
|
|
- name: replace
|
|
args: ["M", "00000"]
|
|
seeders_nodot:
|
|
selector: div.stats div:has(img[alt="Seeder"]):not(:contains("."))
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: ["K", "000"]
|
|
- name: replace
|
|
args: ["M", "000000"]
|
|
seeders:
|
|
text: "{{ if or .Result.seeders_dot .Result.seeders_nodot }}{{ or .Result.seeders_dot .Result.seeders_nodot }}{{ else }}0{{ end }}"
|
|
leechers_dot:
|
|
selector: div.stats div:has(img[alt="Leecher"]):contains(".")
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: [".", ""]
|
|
- name: replace
|
|
args: ["K", "00"]
|
|
- name: replace
|
|
args: ["M", "00000"]
|
|
leechers_nodot:
|
|
selector: div.stats div:has(img[alt="Leecher"]):not(:contains("."))
|
|
optional: true
|
|
filters:
|
|
- name: replace
|
|
args: ["K", "000"]
|
|
- name: replace
|
|
args: ["M", "000000"]
|
|
leechers:
|
|
text: "{{ if or .Result.leechers_dot .Result.leechers_nodot }}{{ or .Result.leechers_dot .Result.leechers_nodot }}{{ else }}0{{ end }}"
|
|
date:
|
|
selector: div.stats div:has(img[alt="Date"])
|
|
filters:
|
|
- name: dateparse
|
|
args: "MMM d, yyyy"
|
|
downloadvolumefactor:
|
|
text: 0
|
|
uploadvolumefactor:
|
|
text: 1
|
|
# engine n/a
|