diff --git a/definitions/v10/rudub.yml b/definitions/v10/rudub.yml
index 2601e7f2a..220e3347d 100644
--- a/definitions/v10/rudub.yml
+++ b/definitions/v10/rudub.yml
@@ -9,10 +9,9 @@ type: semi-private
encoding: windows-1251
followredirect: true
links:
- - https://07october.rudub.online/
+ - https://08october.rudub.online/
legacylinks:
- https://rudub.online/
- - https://08september.rudub.online/
- https://09september.rudub.online/
- https://10september.rudub.online/
- https://11september.rudub.online/
@@ -41,6 +40,7 @@ legacylinks:
- https://04october.rudub.online/
- https://05october.rudub.online/
- https://06october.rudub.online/
+ - https://07october.rudub.online/
caps:
categorymappings:
diff --git a/definitions/v10/sharewood-api.yml b/definitions/v10/sharewood-api.yml
new file mode 100644
index 000000000..ff6a499e3
--- /dev/null
+++ b/definitions/v10/sharewood-api.yml
@@ -0,0 +1,203 @@
+---
+id: sharewood-api
+replaces:
+ - sharewoodapi
+name: Sharewood (API)
+description: "sharewood is a Semi-Private FRENCH Torrent Tracker for GENERAL"
+language: fr-FR
+type: semi-private
+encoding: UTF-8
+requestDelay: 2.1
+certificates:
+ - 023A091295E81813D040DFA0FA842DF9892BF0F5 # expired 10-March-2024 note: despite a new CA issued this one still pops up occasionally
+links:
+ - https://www.sharewood.tv/
+
+caps:
+ categorymappings:
+ # categories
+# - {id: 1, cat: Movies, desc: "Vidéo"}
+# - {id: 1, cat: TV, desc: "Vidéo"}
+# - {id: 2, cat: Audio, desc: "Audio"}
+# - {id: 3, cat: PC, desc: "Application"}
+# - {id: 4, cat: Books/EBook, desc: "Ebooks"}
+# - {id: 5, cat: PC/Games, desc: "Jeu-Vidéo"}
+# - {id: 6, cat: Other, desc: "Formation"}
+# - {id: 7, cat: XXX, desc: "XXX"}
+
+ # subcategories
+ - {id: 9, cat: Movies, desc: "Films"}
+ - {id: 10, cat: TV, desc: "Séries"}
+ - {id: 11, cat: Movies/Other, desc: "Films Animations"}
+ - {id: 12, cat: TV/Anime, desc: "Séries Animations"}
+ - {id: 13, cat: TV/Documentary, desc: "Documentaires"}
+ - {id: 14, cat: TV/Other, desc: "Emissions TV"}
+ - {id: 15, cat: TV/Other, desc: "Spectacles/Concerts"}
+ - {id: 16, cat: TV/Sport, desc: "Sports"}
+ - {id: 17, cat: Audio/Video, desc: "Karaoké Vidéo"}
+ - {id: 18, cat: Audio/Other, desc: "Karaoké"}
+ - {id: 20, cat: Audio, desc: "Musiques"}
+ - {id: 21, cat: Audio/Other, desc: "Podcasts"}
+ - {id: 22, cat: Audio/Other, desc: "Samples"}
+ - {id: 23, cat: Audio/Audiobook, desc: "Ebooks Audio"}
+ - {id: 24, cat: Books/EBook, desc: "BDs"}
+ - {id: 25, cat: Books/Comics, desc: "Comics"}
+ - {id: 26, cat: Books/Other, desc: "Mangas"}
+ - {id: 27, cat: Books, desc: "Livres"}
+ - {id: 28, cat: Books/Mags, desc: "Presse"}
+ - {id: 29, cat: PC, desc: "Applications Linux"}
+ - {id: 30, cat: PC/0day, desc: "Applications Windows"}
+ - {id: 31, cat: PC/Mac, desc: "Applications Mac"}
+ - {id: 34, cat: PC/Mobile-iOS, desc: "Applications Smartphone/Tablette"}
+ - {id: 34, cat: PC/Mobile-Android, desc: "Applications Smartphone/Tablette"}
+ - {id: 35, cat: PC/Mobile-Other, desc: "GPS"}
+ - {id: 36, cat: PC/Games, desc: "Jeux Linux"}
+ - {id: 37, cat: PC/Games, desc: "Jeux Windows"}
+ - {id: 38, cat: PC/Mac, desc: "Jeux Mac"}
+ - {id: 39, cat: Console/NDS, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/Wii, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/Wiiware, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/3DS, desc: "Jeux Nintendo"}
+ - {id: 39, cat: Console/WiiU, desc: "Jeux Nintendo"}
+ - {id: 40, cat: Console/PS4, desc: "Jeux Sony"}
+ - {id: 41, cat: PC/Mobile-Android, desc: "Jeux Smartphone/Tablette"}
+ - {id: 42, cat: PC/Games, desc: "Jeux Microsoft"}
+ - {id: 43, cat: Other, desc: "Rétrogaming & Emulation"}
+ - {id: 44, cat: XXX, desc: "Films XXX"}
+ - {id: 45, cat: XXX/Other, desc: "XXX Hentai"}
+ - {id: 47, cat: XXX/ImageSet, desc: "XXX Images"}
+ - {id: 48, cat: XXX/Other, desc: "XXX Jeux-Vidéo"}
+ - {id: 49, cat: Other/Misc, desc: "Formations Vidéos"}
+ - {id: 50, cat: Other/Misc, desc: "Formations Logiciels"}
+ - {id: 51, cat: XXX/Other, desc: "XXX Ebooks"}
+ - {id: 52, cat: Audio/Video, desc: "Vidéos-Clips"}
+
+ modes:
+ search: [q]
+ tv-search: [q, season, ep]
+ movie-search: [q]
+ music-search: [q]
+ book-search: [q]
+ allowrawsearch: true
+
+settings:
+ - name: passkey
+ type: text
+ label: Passkey
+ - name: info_passkey
+ type: info
+ label: About your Passkey
+ default: "Find your Passkey by accessing your Sharewood profile on the My Profile page and scrolling down to the Passkey field."
+ - name: freeleech
+ type: checkbox
+ label: Search freeleech only
+ default: false
+ - name: multilang
+ type: checkbox
+ label: Replace MULTi by another language in release name
+ default: false
+ - name: multilanguage
+ type: select
+ label: Replace MULTi by this language
+ default: FRENCH
+ options:
+ FRENCH: FRENCH
+ MULTi FRENCH: MULTi FRENCH
+ ENGLISH: ENGLISH
+ MULTi ENGLISH: MULTi ENGLISH
+ VOSTFR: VOSTFR
+ MULTi VOSTFR: MULTi VOSTFR
+ - name: vostfr
+ type: checkbox
+ label: Replace VOSTFR and SUBFRENCH with ENGLISH
+ default: false
+
+login:
+ path: "api/{{ .Config.passkey }}/last-torrents"
+ method: get
+ error:
+ - selector: ":root:contains(\"Passkey invalide\")"
+ - selector: ":root:contains(\"503 Service Temporarily Unavailable\")"
+
+search:
+ paths:
+ - path: "api/{{ .Config.passkey }}/{{ if .Keywords }}search{{ else }}last-torrents{{ end }}"
+ response:
+ type: json
+
+ inputs:
+ subcategory: "{{ join .Categories \",\" }}"
+ name: "{{ .Keywords }}"
+ limit: 50
+ free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
+
+ keywordsfilters:
+ - name: re_replace
+ args: ["[\\:\\-\\/\\|\\(\\)]+", " "]
+
+ rows:
+ selector: $
+
+ fields:
+ _id:
+ selector: id
+ category:
+ selector: subcategory_id
+ title_phase1:
+ selector: name
+ title_vostfr:
+ text: "{{ .Result.title_phase1 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(vostfr|subfrench)\\b", "ENGLISH"]
+ title_phase2:
+ text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
+ title_multilang:
+ text: "{{ .Result.title_phase2 }}"
+ filters:
+ - name: re_replace
+ args: ["(?i)\\b(MULTI(?!.*(?:FRENCH|ENGLISH|VOSTFR)))\\b", "{{ .Config.multilanguage }}"]
+ title:
+ text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
+ details:
+ selector: slug
+ filters:
+ - name: prepend
+ args: "/torrents/"
+ - name: append
+ args: ".{{ .Result._id }}"
+ download:
+ selector: download_url
+ size:
+ selector: size
+ seeders:
+ selector: seeders
+ leechers:
+ selector: leechers
+ grabs:
+ selector: times_completed
+ date:
+ selector: created_at
+ filters:
+ - name: append
+ args: " +00:00" # GMT
+ - name: dateparse
+ args: "yyyy-MM-dd HH:mm:ss zzz"
+ downloadvolumefactor:
+ # api returns 0=false, 1=true
+ selector: free
+ case:
+ 0: 1 # not free
+ 1: 0 # freeleech
+ uploadvolumefactor:
+ # api returns 0=false, 1=true
+ selector: doubleup
+ case:
+ 0: 1 # normal
+ 1: 2 # double
+ minimumratio:
+ text: 0.75
+ minimumseedtime:
+ # 3 days (as seconds = 3 x 24 x 60 x 60)
+ text: 259200
+# UNIT3D
diff --git a/definitions/v9/rudub.yml b/definitions/v9/rudub.yml
index ff1a35740..d3644d067 100644
--- a/definitions/v9/rudub.yml
+++ b/definitions/v9/rudub.yml
@@ -7,10 +7,9 @@ type: semi-private
encoding: windows-1251
followredirect: true
links:
- - https://07october.rudub.online/
+ - https://08october.rudub.online/
legacylinks:
- https://rudub.online/
- - https://08september.rudub.online/
- https://09september.rudub.online/
- https://10september.rudub.online/
- https://11september.rudub.online/
@@ -39,6 +38,7 @@ legacylinks:
- https://04october.rudub.online/
- https://05october.rudub.online/
- https://06october.rudub.online/
+ - https://07october.rudub.online/
caps:
categorymappings: