mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-11 06:12:14 +02:00
Compare commits
37 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
82fd53226c | ||
![]() |
77fd3e206b | ||
![]() |
3989f35827 | ||
![]() |
82376a508a | ||
![]() |
4f9ce14e2f | ||
![]() |
60a2ffbe41 | ||
![]() |
15598e3d66 | ||
![]() |
357be7dda9 | ||
![]() |
a0aa77519b | ||
![]() |
f3ef590d3f | ||
![]() |
d347ea71b8 | ||
![]() |
62f0bdc19c | ||
![]() |
e92b925eab | ||
![]() |
e8239f4899 | ||
![]() |
5c855d3b50 | ||
![]() |
6dfaff6aad | ||
![]() |
849b9e9765 | ||
![]() |
eacfd53466 | ||
![]() |
4459697fe5 | ||
![]() |
94872affa9 | ||
![]() |
a29064e7fb | ||
![]() |
679cba4297 | ||
![]() |
f155a21ee8 | ||
![]() |
0913ee4934 | ||
![]() |
1fa0384eb8 | ||
![]() |
59727fe8fc | ||
![]() |
28707fa146 | ||
![]() |
f408abe7a4 | ||
![]() |
42434c35a1 | ||
![]() |
df941c54ce | ||
![]() |
f2eb4dacd0 | ||
![]() |
9795587e4d | ||
![]() |
15064810f8 | ||
![]() |
fbfee66c7b | ||
![]() |
53e2d9e9cd | ||
![]() |
49fd078a4c | ||
![]() |
3dfba7c204 |
11
README.md
11
README.md
@@ -34,10 +34,12 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* BTN
|
||||
* CinemaZ
|
||||
* DanishBits
|
||||
* DataScene
|
||||
* Demonoid
|
||||
* DigitalHive
|
||||
* EoT-Forum
|
||||
* Ethor.net (Thor's Land)
|
||||
* FANO.IN
|
||||
* FileList
|
||||
* Freaks Tracking System
|
||||
* Freshon
|
||||
@@ -48,10 +50,12 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* HD4Free
|
||||
* HD-Space
|
||||
* HD-Torrents
|
||||
* HDClub
|
||||
* Hebits
|
||||
* New Real World
|
||||
* Hounddawgs
|
||||
* House-of-Torrents
|
||||
* ICE Torrent
|
||||
* ILoveTorrents
|
||||
* Immortalseed
|
||||
* IPTorrents
|
||||
@@ -63,12 +67,15 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* NetHD
|
||||
* NextGen
|
||||
* Norbits
|
||||
* nostream
|
||||
* notwhat.cd
|
||||
* PassTheHeadphones
|
||||
* PassThePopcorn
|
||||
* PirateTheNet
|
||||
* Pretome
|
||||
* PrivateHD
|
||||
* QcTorrent
|
||||
* RapideTracker
|
||||
* RevolutionTT
|
||||
* SceneAccess
|
||||
* SceneFZ
|
||||
@@ -90,19 +97,23 @@ Developer note: The software implements the [Torznab](https://github.com/Sonarr/
|
||||
* TorrentDay
|
||||
* TorrentHeaven
|
||||
* TorrentLeech
|
||||
* Torrents.Md
|
||||
* TorrentShack
|
||||
* Torrent-Syndikat
|
||||
* ToTheGlory
|
||||
* TranceTraffic
|
||||
* TransmitheNet
|
||||
* Tspate
|
||||
* TV Chaos UK
|
||||
* TV-Vault
|
||||
* u-Torrent
|
||||
* UHDBits
|
||||
* World-In-HD
|
||||
* WorldOfP2P
|
||||
* x264
|
||||
* XSpeeds
|
||||
* Xthor
|
||||
* Xtreme Zone
|
||||
|
||||
#### Installation on Windows
|
||||
|
||||
|
@@ -227,8 +227,20 @@ pre {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.table td.fit{
|
||||
table td.fit{
|
||||
white-space: nowrap;
|
||||
width: 1%;
|
||||
}
|
||||
|
||||
.label-imdb {
|
||||
background-color: #d0ab44;
|
||||
}
|
||||
|
||||
.tooltip-inner {
|
||||
max-width: 500px !important;
|
||||
}
|
||||
|
||||
.tooltip-inner img {
|
||||
max-width: 250px;
|
||||
height: auto;
|
||||
}
|
@@ -492,11 +492,33 @@ function clearNotifications() {
|
||||
function updateReleasesRow(row)
|
||||
{
|
||||
var labels = $(row).find("span.release-labels");
|
||||
var TitleLink = $(row).find("td.Title > a");
|
||||
var IMDBId = $(row).data("imdb");
|
||||
var Banner = $(row).data("banner");
|
||||
var Description = $(row).data("description");
|
||||
var DownloadVolumeFactor = parseFloat($(row).find("td.DownloadVolumeFactor").html());
|
||||
var UploadVolumeFactor = parseFloat($(row).find("td.UploadVolumeFactor").html());
|
||||
|
||||
var TitleTooltip = "";
|
||||
if (Banner)
|
||||
TitleTooltip += "<img src='" + Banner + "' /><br />";
|
||||
if (Description)
|
||||
TitleTooltip += Description;
|
||||
|
||||
if (TitleTooltip) {
|
||||
TitleLink.data("toggle", "tooltip");
|
||||
TitleLink.tooltip({
|
||||
title: TitleTooltip,
|
||||
html: true
|
||||
});
|
||||
}
|
||||
|
||||
labels.empty();
|
||||
|
||||
if (IMDBId) {
|
||||
labels.append('\n<a href="http://www.imdb.com/title/tt' + IMDBId + '/" class="label label-imdb" alt="IMDB" title="IMDB">IMDB</a>');
|
||||
}
|
||||
|
||||
if (!isNaN(DownloadVolumeFactor)) {
|
||||
if (DownloadVolumeFactor == 0) {
|
||||
labels.append('\n<span class="label label-success">FREELEECH</span>');
|
||||
|
@@ -287,15 +287,15 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each releases}}
|
||||
<tr class="jackett-releases-row">
|
||||
<tr class="jackett-releases-row" data-imdb="{{Imdb}}" data-banner="{{BannerUrl}}" data-description="{{Description}}">
|
||||
<td>{{PublishDate}}</td>
|
||||
<td>{{FirstSeen}}</td>
|
||||
<td>{{jacketTimespan PublishDate}}</td>
|
||||
<td>{{jacketTimespan FirstSeen}}</td>
|
||||
<td>{{Tracker}}</td>
|
||||
<td><a href="{{Comments}}">{{Title}}</a> <span class="release-labels"></span></td>
|
||||
<td class="Title"><a href="{{Comments}}">{{Title}}</a> <span class="release-labels"></span></td>
|
||||
<td>{{Size}}</td>
|
||||
<td>{{jacketSize Size}}</td>
|
||||
<td class="fit">{{jacketSize Size}}</td>
|
||||
<td>{{Files}}</td>
|
||||
<td>{{CategoryDesc}}</td>
|
||||
<td>{{Grabs}}</td>
|
||||
@@ -400,13 +400,13 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each Results}}
|
||||
<tr class="jackett-search-results-row">
|
||||
<tr class="jackett-search-results-row" data-imdb="{{Imdb}}" data-banner="{{BannerUrl}}" data-description="{{Description}}">
|
||||
<td>{{PublishDate}}</td>
|
||||
<td>{{jacketTimespan PublishDate}}</td>
|
||||
<td>{{Tracker}}</td>
|
||||
<td><a href="{{Comments}}">{{Title}}</a> <span class="release-labels"></span></td>
|
||||
<td class="Title"><a href="{{Comments}}">{{Title}}</a> <span class="release-labels"></span></td>
|
||||
<td>{{Size}}</td>
|
||||
<td>{{jacketSize Size}}</td>
|
||||
<td class="fit">{{jacketSize Size}}</td>
|
||||
<td>{{Files}}</td>
|
||||
<td>{{CategoryDesc}}</td>
|
||||
<td>{{Grabs}}</td>
|
||||
|
118
src/Jackett/Definitions/datascene.yml
Normal file
118
src/Jackett/Definitions/datascene.yml
Normal file
@@ -0,0 +1,118 @@
|
||||
---
|
||||
site: datascene
|
||||
name: DataScene
|
||||
language: ro-ro
|
||||
encoding: windows-1252
|
||||
links:
|
||||
- http://datascene.net/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
3: TV/Anime # Anime | Cartoon
|
||||
15: PC/0day # Appz | Win
|
||||
4: PC/0day # Appz | Linux
|
||||
6: Books # E-Book
|
||||
10: PC/Games # Games | PC Iso
|
||||
9: PC/Games # Games | PC Rips
|
||||
11: Console # Games | Pack
|
||||
43: Console # Games | Console
|
||||
29: Other # Images
|
||||
2: Other # MiSC
|
||||
5: PC/Phone-Other # Mobile
|
||||
27: Movies # Movies | Pack
|
||||
46: Movies/3D # Movies | 3D
|
||||
26: Movies/SD # Movies | Cam
|
||||
25: Movies # Movies | Documentary
|
||||
24: Movies/DVD # Movies | DVD-R
|
||||
32: Movies/DVD # Movies | DVD-RO
|
||||
23: Movies/HD # Movies | HD
|
||||
31: Movies/HD # Movies | HD-Ro
|
||||
34: Movies/Foreign # Movies | Hindi
|
||||
30: Movies/SD # Movies | Xvid
|
||||
36: Movies/SD # Movies | Xvid-Ro
|
||||
21: Audio/Video # Music | Video
|
||||
19: Audio # Music | Mp3/Flac
|
||||
18: Other # Other
|
||||
42: Other # Premiera | DsT
|
||||
14: TV/Sport # Sport
|
||||
47: TV/SD # Tv | Episodes
|
||||
28: TV/HD # Tv-HD | Episodes
|
||||
13: Other # Tutoriale
|
||||
12: XXX # XxX
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
|
||||
ratio:
|
||||
path: /browse.php
|
||||
selector: font:contains("Ratio:") > span
|
||||
|
||||
search:
|
||||
path: /browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: tr:has(a.tname)
|
||||
fields:
|
||||
title:
|
||||
selector: a.tname
|
||||
attribute: title
|
||||
details:
|
||||
selector: a.tname
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="/download.php/"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(2) > right > div:has(font:contains("Uploaded"))
|
||||
remove: div > font
|
||||
filters:
|
||||
- name: trim
|
||||
args: ":"
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
banner:
|
||||
selector: a.tname
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[src=\"pic/free.gif\"]": "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2) > right
|
||||
remove: div
|
127
src/Jackett/Definitions/fanoin.yml
Normal file
127
src/Jackett/Definitions/fanoin.yml
Normal file
@@ -0,0 +1,127 @@
|
||||
---
|
||||
site: fanoin
|
||||
name: FANO.IN
|
||||
language: lv-lv
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.fano.in
|
||||
|
||||
caps:
|
||||
categories:
|
||||
20: Movies/SD # Movies/SD
|
||||
6: TV/SD # TV/SD
|
||||
7: PC/Games # Games/PC ISO
|
||||
5: Audio # Music
|
||||
47: Movies # Packs/Movies
|
||||
44: Audio/Audiobook # A-Books
|
||||
27: TV/Anime # Anime
|
||||
17: Movies/Foreign # Movies/Rus
|
||||
33: TV/Foreign # TV/Rus
|
||||
12: PC/Games # Games/PC Rips
|
||||
31: Audio/Lossless # Music/HQ
|
||||
49: TV # Packs/TV
|
||||
41: Books # E-Books
|
||||
29: Books # Cartoons
|
||||
24: Movies/Foreign # Movies/Lat
|
||||
25: TV/Foreign # TV/Lat
|
||||
34: Console/Xbox # Games/Xbox
|
||||
19: Audio/Video # Music Videos
|
||||
46: Console # Packs/Games
|
||||
42: Other # Study
|
||||
52: Movies/3D # 3D
|
||||
37: Movies/HD # Movies/HD
|
||||
35: TV/HD # TV/HD
|
||||
43: Console/PS4 # Games/PS
|
||||
38: PC/Phone-Other # Mobile
|
||||
48: Audio # Packs/Music
|
||||
36: Other # X-mas
|
||||
53: Movies/SD # Movies/CAM
|
||||
4: Movies/DVD # Movies/DVD-R
|
||||
32: TV # TV/Facts
|
||||
40: Console/Wii # Games/Wii
|
||||
22: PC/0day # Appz/misc
|
||||
50: XXX/Packs # Packs/XXX
|
||||
9: XXX # XXX
|
||||
45: XXX # XXX/HD
|
||||
54: Movies # Movies/Retro
|
||||
23: TV/Sport # TV/Sport
|
||||
51: Console # Games/Misc
|
||||
1: PC/0day # Appz/PC ISO
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: browse_old.php
|
||||
|
||||
ratio:
|
||||
path: browse_old.php
|
||||
selector: img[title="Reitings:"]+font
|
||||
|
||||
search:
|
||||
path: browse_old.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: tr.browse_actions
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse_old.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php", "download.php"]
|
||||
imdb:
|
||||
selector: a[href^="http://www.imdb.com/title/"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
date:
|
||||
selector: td:nth-child(2) > small:nth-last-child(2)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Šodien", "Today"]
|
||||
- name: replace
|
||||
args: ["Vakar", "Yesterday"]
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt="Free"]: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[alt="x2"]: "2"
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2) > small:nth-last-child(1)
|
||||
remove: a[href^="details.php?id="]
|
97
src/Jackett/Definitions/hdclub.yml
Normal file
97
src/Jackett/Definitions/hdclub.yml
Normal file
@@ -0,0 +1,97 @@
|
||||
---
|
||||
site: hdclub
|
||||
name: HDClub
|
||||
language: ru-ru
|
||||
encoding: windows-1251
|
||||
links:
|
||||
- http://hdclub.org
|
||||
|
||||
caps:
|
||||
categories:
|
||||
70: Movies # Animation
|
||||
71: Movies # Movie
|
||||
81: Audio # HD Audio
|
||||
78: TV/Documentary # Documentary
|
||||
68: Audio/Video # Music Video
|
||||
64: TV # TV Show
|
||||
62: TV/Sport # Sport
|
||||
82: Other # Demo
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
image: img#captcha
|
||||
input: imagestring
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded > div.error
|
||||
test:
|
||||
path: browse.php
|
||||
selector: td.main_bottom
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
dsearch: ""
|
||||
stype: "or"
|
||||
incldead: "1"
|
||||
webdl: "0"
|
||||
3d: "0"
|
||||
rows:
|
||||
selector: tbody#highlighted > tr
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php", "download.php"]
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
date:
|
||||
selector: div#frame > div#cleft > font
|
||||
filters:
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(5)
|
||||
leechers:
|
||||
selector: td:nth-child(6)
|
||||
grabs:
|
||||
selector: td:nth-child(7) b
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d,]+)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
remove: a, br, b
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedownload.gif"]: "0"
|
||||
img[src="pic/silver.gif"]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
129
src/Jackett/Definitions/icetorrent.yml
Normal file
129
src/Jackett/Definitions/icetorrent.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
site: icetorrent
|
||||
name: ICE Torrent
|
||||
language: ro-ro
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.icetorrent.org
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: PC/0day # Appz
|
||||
85: Audio/Audiobook # AudioBooks
|
||||
68: Books # Carti/Reviste
|
||||
23: Books # Cartoons
|
||||
73: Audio/Video # Concert/Videoclip
|
||||
75: Other # Diverse
|
||||
69: Books # Documentare
|
||||
51: TV/Documentary # Documentaries
|
||||
43: Books # eBooks
|
||||
63: Movies/DVD # Filme DVD
|
||||
65: Movies/HD # Filme HD
|
||||
64: Movies/SD # Filme Xvid
|
||||
40: Console # Games/Console
|
||||
26: PC/Games # Games/PC
|
||||
38: PC/Phone-Other # Mobile
|
||||
59: Movies/3D # Movies/3D
|
||||
92: Movies/HD # Movies/4K-UHD
|
||||
32: Movies/BluRay # Movies/Blu-Ray
|
||||
28: Movies/DVD # Movies/DVD
|
||||
42: Movies/HD # Movies/HD-x264
|
||||
91: Movies/HD # Movies/HEVC-x265
|
||||
79: Movies/HD # Movies/microHD
|
||||
29: Movies/SD # Movies/SD
|
||||
72: Audio/Lossless # Music/FLAC
|
||||
6: Audio/MP3 # Music/MP3
|
||||
37: Audio/Video # Music/Video
|
||||
70: Audio/Lossless # Muzica FLAC
|
||||
71: Audio/MP3 # Muzica MP3
|
||||
74: Other # Other
|
||||
41: Other # Pictures
|
||||
67: TV # Seriale TV
|
||||
48: TV/Sport # Sports
|
||||
87: Other # TUTS
|
||||
33: TV/SD # TV Episodes
|
||||
34: TV/HD # TVHD Episodes
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: font:contains("failed") + table
|
||||
test:
|
||||
path: /browse.php
|
||||
|
||||
ratio:
|
||||
text: -1
|
||||
|
||||
search:
|
||||
path: /browse.php
|
||||
inputs:
|
||||
cat: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
search_by: "name"
|
||||
rows:
|
||||
selector: td.torrenttable > table > tbody > tr:has(a[title][href^="details.php?id="])
|
||||
fields:
|
||||
title:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
imdb:
|
||||
selector: a[title="IMDB"]
|
||||
attribute: href
|
||||
banner:
|
||||
attribute: rel
|
||||
download:
|
||||
selector: a[href^="download.php"]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(5) > a
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
remove: a
|
||||
date:
|
||||
selector: td:nth-child(2) > div
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Added on: ", ""]
|
||||
- name: trim
|
||||
args: "\xA0"
|
||||
- name: append
|
||||
args: " +03:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
grabs:
|
||||
selector: td:nth-child(6)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"*": "0"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a[title][href^="details.php?id="], div
|
||||
seeders:
|
||||
text: "9999"
|
||||
leechers:
|
||||
text: "9999"
|
167
src/Jackett/Definitions/rapidetracker.yml
Normal file
167
src/Jackett/Definitions/rapidetracker.yml
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
site: rapidetracker
|
||||
name: RapideTracker
|
||||
language: fr-fr
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://rapidetracker.net
|
||||
|
||||
caps:
|
||||
categories:
|
||||
218: PC/0day # APPLICATION
|
||||
219: PC/Phone-Android # ANDROID
|
||||
221: PC/Phone-IOS # APPLE
|
||||
220: PC/0day # WINDOWS
|
||||
|
||||
233: Movies/SD # CAM/SCREENER
|
||||
234: Movies/SD # CAM-TS
|
||||
235: Movies/SD # DVD-SCREENER
|
||||
|
||||
222: TV/Anime # DESSINS ANIMES
|
||||
260: TV/Anime # ANIMATION
|
||||
225: TV/Anime # JAP-ANIM
|
||||
226: TV/Anime # SERIE-ANIME
|
||||
|
||||
206: Books # E-BOOK
|
||||
240: Books # AUDIO
|
||||
239: Books # BD
|
||||
241: Books # LIVRE
|
||||
208: Books # MANGA
|
||||
209: Books # PRESSE
|
||||
207: XXX # XXX
|
||||
|
||||
213: TV # EMISSIONS TV
|
||||
215: TV/Documentary # DOC
|
||||
214: TV # EMISSIONS
|
||||
216: TV # SPECTACLE
|
||||
217: TV/Sport # SPORT
|
||||
|
||||
176: Movies/SD # FILMS
|
||||
178: Movies/SD # BDRIP
|
||||
179: Movies/SD # BRRIP
|
||||
245: Movies/SD # COFFRET FILMS
|
||||
183: Movies/DVD # DVD-R
|
||||
182: Movies/DVD # DVDRIP
|
||||
252: Movies/SD # FILMS-VO
|
||||
246: Movies/SD # FILMS-X265
|
||||
184: Movies/SD # HORREUR
|
||||
199: Movies/SD # RETRO
|
||||
186: Movies/SD # VOSTFR
|
||||
198: Movies/SD # WEB-RiP
|
||||
|
||||
210: XXX # FILMS ADULTE
|
||||
212: XXX # HENTAI
|
||||
211: XXX # FILMS XXX
|
||||
|
||||
200: Movies/HD # FILMS HD
|
||||
201: Movies/HD # 1080p
|
||||
202: Movies/3D # 3D
|
||||
203: Movies/HD # 720p
|
||||
242: Movies/BluRay # BLURAY
|
||||
204: Movies/HD # HD-RIP
|
||||
238: Movies/HD # M-HD 1080P
|
||||
237: Movies/HD # M-HD 720P
|
||||
255: Movies/HD # REMUX
|
||||
|
||||
191: Console # JEUX
|
||||
192: Console/NDS # DS-3DS
|
||||
193: PC/Games # PC
|
||||
194: Console/PS3 # PS3
|
||||
195: Console/Wii # WII
|
||||
196: Console/Wii # WIIU
|
||||
197: Console/XBox360 # XBox360
|
||||
|
||||
187: Audio # MUSIQUE
|
||||
189: Audio # CONCERT
|
||||
190: Audio/Lossless # FLAC
|
||||
188: Audio/MP3 # MP3
|
||||
|
||||
227: TV # SERIE
|
||||
254: TV # SERIE-VO
|
||||
229: TV/HD # TV HD FR
|
||||
230: TV/HD # TV HD VOSTFR
|
||||
249: TV/HD # TV HD VOSTFR X265
|
||||
243: TV # TV PACK FR
|
||||
244: TV # TV PACK VOSTFR
|
||||
231: TV/SD # TV VF
|
||||
232: TV/SD # TV VOSTFR
|
||||
|
||||
236: Other # SOURD & MALENTENDANT
|
||||
|
||||
253: Other # TEAM-RDT
|
||||
258: TV/Documentary # DOC RDT
|
||||
257: Movies # FILMS RDT
|
||||
256: TV # SERIE RDT
|
||||
259: XXX # XXX RDT
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: table:has(td:contains("Une erreur est survenue"))
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
do: "chercher"
|
||||
keywords: "{{ .Query.Keywords }}"
|
||||
search_type: "t_name"
|
||||
category: "0" # multi cat search not supported
|
||||
include_dead_torrents: "yes"
|
||||
rows:
|
||||
selector: table#sortabletable > tbody > tr:has(a[href^="https://rapidetracker.net/torrent-details-"])
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="https://rapidetracker.net/download-torrent-"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="https://rapidetracker.net/torrent-details-"]
|
||||
details:
|
||||
selector: a[href^="https://rapidetracker.net/torrent-details-"]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="https://rapidetracker.net/torrent-category-"]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: torrent-category-(\d+)
|
||||
size:
|
||||
selector: td:nth-child(4)
|
||||
date:
|
||||
selector: td:nth-child(2) > div > font[color="white"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["le ", ""]
|
||||
- name: replace
|
||||
args: [" à ", " "]
|
||||
- name: trim
|
||||
args: "\t"
|
||||
- name: trim
|
||||
args: "\n"
|
||||
- name: append
|
||||
args: " +01:00"
|
||||
- name: dateparse
|
||||
args: "02-01-2006 15:04 -07:00"
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[alt^="Free Torrent "]: "0"
|
||||
img[alt^="Silver Torrent "]: "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
@@ -75,7 +75,7 @@
|
||||
p: "torrents"
|
||||
pid: "32"
|
||||
$raw: "{{range .Categories}}cid[]:{{.}}&{{end}}"
|
||||
keywords: "{{ .Query.Keywords }}"
|
||||
keywords: "{{ re_replace .Query.Keywords \"[^a-zA-Z0-9]+\" \"%\" }}"
|
||||
search_type: "name"
|
||||
searchin: "title"
|
||||
|
||||
|
93
src/Jackett/Definitions/torrentsmd.yml
Normal file
93
src/Jackett/Definitions/torrentsmd.yml
Normal file
@@ -0,0 +1,93 @@
|
||||
---
|
||||
site: torrentsmd
|
||||
name: Torrents.Md
|
||||
language: ru-mo
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://torrentsmd.com/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: Movies # Filme
|
||||
2: Audio # Muzică
|
||||
3: PC # Software
|
||||
4: Console # Jocuri
|
||||
5: TV # Tv
|
||||
7: Other # Alte
|
||||
8: Books # Cărţi
|
||||
9: Audio/Video # Muzică video
|
||||
10: TV/Anime # Anime
|
||||
11: Movies # Filme animate
|
||||
12: Movies/DVD # DVD
|
||||
13: Movies # Filme documentare
|
||||
14: Audio/Audiobook # Cărţi audio
|
||||
15: Other # Lecţii video
|
||||
16: Other # Fotografii
|
||||
17: TV/Sport # Sport
|
||||
18: TV/HD # HDTV
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("eşuată"))
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: "{{if .Query.Keywords}}search.php{{else}}browse.php{{end}}"
|
||||
inputs:
|
||||
search_str: "{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: table.tableTorrents > tbody > tr:has(a[href^="/details.php?id="])
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="/details.php?id="]
|
||||
details:
|
||||
selector: a[href^="/details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="/details.php?id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/details.php", "/download.php"]
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["ore", "hours ago"]
|
||||
- name: replace
|
||||
args: ["minute", "minutes ago"]
|
||||
- name: dateparse
|
||||
args: "01-02 2006"
|
||||
- name: dateparse
|
||||
args: "01-02"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
129
src/Jackett/Definitions/torviet.yml
Normal file
129
src/Jackett/Definitions/torviet.yml
Normal file
@@ -0,0 +1,129 @@
|
||||
---
|
||||
site: torviet
|
||||
name: TorViet
|
||||
language: vi-vn
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://torviet.com
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: Console # Game
|
||||
7: PC/Games # PC
|
||||
133: PC/Phone-Other # Handheld
|
||||
132: Console # Console
|
||||
|
||||
2: Movies # Movie
|
||||
23: Movies/HD # mHD
|
||||
24: Movies/SD # SD
|
||||
124: Movies/HD # 720p
|
||||
125: Movies/HD # 1080p
|
||||
127: Movies/BluRay # Blu-ray
|
||||
|
||||
3: TV # TV
|
||||
128: TV/HD # HD
|
||||
129: TV/SD # SD
|
||||
|
||||
4: PC # Software
|
||||
76: PC/0day # Windows
|
||||
77: PC/Mac # MAC
|
||||
78: PC # Linux
|
||||
79: PC/Phone-Other # Handheld
|
||||
|
||||
5: Audio # Music
|
||||
92: Audio/Video # Music Video
|
||||
126: Audio/Lossless # Lossless
|
||||
130: Audio/MP3 # Lossy
|
||||
131: Audio # Surround
|
||||
|
||||
6: Other # Misc
|
||||
112: Books # Ebook
|
||||
113: Other # Training Video
|
||||
117: Audio/Audiobook # Audio book
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /torrents.php
|
||||
|
||||
ratio:
|
||||
path: /torrents.php
|
||||
selector: table#info_block
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Ratio:\\s(.*?)\\s\\s"
|
||||
|
||||
search:
|
||||
path: /torrents.php
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
sltCategory: 0
|
||||
sltSubCategory: 0 # can't sepcify multiple categorys so we're useing all always
|
||||
sltGenre: 0
|
||||
incldead: 1
|
||||
spstate: 0
|
||||
inclbookmarked: 0
|
||||
search_area: 0
|
||||
search_mode: 0
|
||||
|
||||
rows:
|
||||
selector: div#idtorrent > table.torrents > tbody > tr:has(table.torrentname)
|
||||
fields:
|
||||
title:
|
||||
selector: a[class][title]
|
||||
attribute: title
|
||||
details:
|
||||
selector: a[class][title]
|
||||
attribute: href
|
||||
description:
|
||||
selector: td.embedded:has(a[title])
|
||||
remove: a[title]
|
||||
category:
|
||||
selector: a[href^="/torrents.php?sltSubCategory="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: sltSubCategory
|
||||
comments:
|
||||
selector: td:nth-child(3) a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/download.php?"]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
date:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: append
|
||||
args: " ago"
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img.pro_free: "0"
|
||||
img.pro_free2up: "0"
|
||||
img.pro_50pctdown: "0.5"
|
||||
img.pro_50pctdown2up: "0.5"
|
||||
img.pro_30pctdown: "0.3"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img.pro_50pctdown2up: "2"
|
||||
img.pro_free2up: "2"
|
||||
img.pro_2up: "2"
|
||||
"*": "1"
|
70
src/Jackett/Definitions/trancetraffic.yml
Normal file
70
src/Jackett/Definitions/trancetraffic.yml
Normal file
@@ -0,0 +1,70 @@
|
||||
---
|
||||
site: trancetraffic
|
||||
name: TranceTraffic
|
||||
language: en-us
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.trancetraffic.com
|
||||
|
||||
caps:
|
||||
categories:
|
||||
1: Audio
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: browse.php
|
||||
|
||||
search:
|
||||
path: browse.php
|
||||
inputs:
|
||||
search: "{{ .Query.Keywords }}"
|
||||
rows:
|
||||
selector: table.main + table > tbody > tr:has(a[href^="details.php?id="])
|
||||
fields:
|
||||
download:
|
||||
selector: a[href^="download.php/"]
|
||||
attribute: href
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
text: 1
|
||||
date:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(9)
|
||||
leechers:
|
||||
selector: td:nth-child(10)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([\d,]+)
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
size:
|
||||
selector: td:nth-child(7)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": "1"
|
127
src/Jackett/Definitions/utorrents.yml
Normal file
127
src/Jackett/Definitions/utorrents.yml
Normal file
@@ -0,0 +1,127 @@
|
||||
---
|
||||
site: utorrents
|
||||
name: u-Torrent
|
||||
language: ro-ro
|
||||
encoding: windows-1252
|
||||
links:
|
||||
- http://www.u-torrents.ro/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
48: Movies/3D # 3D
|
||||
1: PC/0day # Appz
|
||||
3: Other # Cartoons
|
||||
42: TV/Documentary # Documentaries
|
||||
6: Books # eBooks
|
||||
11: PC/Games # Games | PC
|
||||
12: Console/PS3 # Games | PS2
|
||||
36: Console/PS3 # Games | PS3
|
||||
40: Console/PSP # Games | PSP
|
||||
25: Console/Wii # Games | Wii
|
||||
16: Console/Xbox # Games | XBOX
|
||||
19: PC/Phone-Other # Mobile
|
||||
43: Movies/BluRay # Movies | Blu-Ray
|
||||
49: Movies/BluRay # Movies | Blu-Ray-RO
|
||||
7: Movies/DVD # Movies | DVD-R
|
||||
2: Movies/DVD # Movies | DVD-RO
|
||||
17: Movies/HD # Movies | HD
|
||||
45: Movies/HD # Movies | HD-RO
|
||||
21: Movies # Movies | Oldies
|
||||
38: Movies # Movies | Packs
|
||||
8: Movies/SD # Movies | x264
|
||||
4: Movies/SD # Movies | x264-RO
|
||||
10: Movies/SD # Movies | XviD
|
||||
44: Movies/SD # Movies | XviD-RO
|
||||
5: Audio/MP3 # Music | Mp3
|
||||
39: Audio # Music | Packs
|
||||
23: Audio/Video # Music | Videos
|
||||
18: Other # Pictures
|
||||
46: XXX/Imageset # Pictures | xxx
|
||||
22: TV/Sport # Sport
|
||||
50: TV # STAR
|
||||
20: TV/SD # TV | Episodes
|
||||
47: TV/HD # TV | Episodes HD
|
||||
41: TV # TV | Packs
|
||||
15: XXX # xXx
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /takelogin.php
|
||||
method: post
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("failed"))
|
||||
test:
|
||||
path: /browse.php
|
||||
|
||||
ratio:
|
||||
path: /browse.php
|
||||
selector: font:contains("Ratio:") > span
|
||||
|
||||
search:
|
||||
path: /browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: td.outer > table > tbody > tr:has(a[href^="details.php?id="])
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="download2.php"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
files:
|
||||
selector: td:nth-child(3)
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: trim
|
||||
args: "\xF0"
|
||||
- name: append
|
||||
args: " +02:00"
|
||||
- name: dateparse
|
||||
args: "02-01-200615:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
banner:
|
||||
selector: a[onmouseover][href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
button.btnfree: "0"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
button.btn2xup: "2"
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a[href^="details.php?id="]
|
122
src/Jackett/Definitions/xtremezone.yml
Normal file
122
src/Jackett/Definitions/xtremezone.yml
Normal file
@@ -0,0 +1,122 @@
|
||||
---
|
||||
site: xtremezone
|
||||
name: Xtreme Zone
|
||||
language: ro-ro
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://myxz.org/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
3: TV/Anime # Anime/Hentai
|
||||
1: PC/0day # Appz
|
||||
9: TV/Documentary # Documentary
|
||||
6: Books # eBooks
|
||||
52: Console # Games-Console
|
||||
11: PC/Games # Games-PC
|
||||
18: Other # Images
|
||||
14: PC # Linux
|
||||
37: PC/Mac # Mac
|
||||
19: PC/Phone-Other # Mobile
|
||||
17: Movies/BluRay # Movies-BluRay
|
||||
24: Movies/BluRay # Movies-BluRayRO
|
||||
7: Movies/DVD # Movies-DVD
|
||||
2: Movies/DVD # Movies-DVD-RO
|
||||
8: Movies/HD # Movies-HD
|
||||
29: Movies/HD # Movies-HD-RO
|
||||
38: Movies # Movies-Packs
|
||||
10: Movies/SD # Movies-SD
|
||||
35: Movies/SD # Movies-SD-RO
|
||||
5: Audio # Music
|
||||
22: TV/Sport # Sport
|
||||
43: TV/HD # TV-HD
|
||||
44: TV/HD # TV-HD-RO
|
||||
41: TV # TV-Packs
|
||||
45: TV/SD # TV-SD
|
||||
46: TV/SD # TV-SD-RO
|
||||
15: XXX # XXX
|
||||
47: XXX # XXX-DVD
|
||||
48: XXX # XXX-HD
|
||||
49: XXX/Imageset # XXX-IMGSet
|
||||
50: XXX # XXX-Packs
|
||||
51: XXX # XXX-SD
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
||||
login:
|
||||
path: /login.php
|
||||
method: form
|
||||
form: form
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(center > h2:contains(failed))
|
||||
test:
|
||||
path: /browse.php
|
||||
|
||||
ratio:
|
||||
path: /browse.php
|
||||
selector: font:contains("Ratio:")+font
|
||||
|
||||
search:
|
||||
path: /browse.php
|
||||
inputs:
|
||||
$raw: "{{range .Categories}}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Query.Keywords }}"
|
||||
incldead: 1
|
||||
rows:
|
||||
selector: table.browser > tbody > tr.browse[style]
|
||||
fields:
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
download:
|
||||
selector: a[href^="dwn.php"]
|
||||
attribute: href
|
||||
grabs:
|
||||
selector: td:nth-child(7)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
date:
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00"
|
||||
- name: dateparse
|
||||
args: "02-01-200615:04:05 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(8)
|
||||
leechers:
|
||||
selector: td:nth-child(9)
|
||||
banner:
|
||||
selector: a[onmouseover][href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=([^\s]+)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"img[title^=\"FreeLech: \"]": "0"
|
||||
"img[title^=\"HALF: \"]": "0.5"
|
||||
"*": "1"
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"img[title^=\"2xUP: \"]": "2"
|
||||
"*": "1"
|
||||
description:
|
||||
selector: td:nth-child(2)
|
||||
remove: a, img
|
@@ -311,11 +311,11 @@ namespace Jackett.Indexers
|
||||
output("Category: " + MapTrackerCatToNewznab(categoryID) + " (" + categoryID + ")");
|
||||
|
||||
// Seeders
|
||||
int seeders = ParseUtil.CoerceInt(Regex.Match(tRow.Find("td:eq(6)").Text(), @"\d+").Value);
|
||||
int seeders = ParseUtil.CoerceInt(Regex.Match(tRow.Find("td:eq(5)").Text(), @"\d+").Value);
|
||||
output("Seeders: " + seeders);
|
||||
|
||||
// Leechers
|
||||
int leechers = ParseUtil.CoerceInt(Regex.Match(tRow.Find("td:eq(7)").Text(), @"\d+").Value);
|
||||
int leechers = ParseUtil.CoerceInt(Regex.Match(tRow.Find("td:eq(6)").Text(), @"\d+").Value);
|
||||
output("Leechers: " + leechers);
|
||||
|
||||
// Completed
|
||||
|
@@ -129,6 +129,7 @@ namespace Jackett.Indexers
|
||||
try
|
||||
{
|
||||
CQ dom = results;
|
||||
var globalFreeleech = dom.Find("div > img[alt=\"Only Upload\"][title^=\"ONLY UPLOAD \"]").Any();
|
||||
var rows = dom["table.tableinborder > tbody > tr:has(td.tableb)"];
|
||||
|
||||
foreach (var row in rows)
|
||||
@@ -186,7 +187,9 @@ namespace Jackett.Indexers
|
||||
var grabs = qRow.Find("a[href*=\"&tosnatchers=1\"] ~ font ~ b").Text();
|
||||
release.Grabs = ParseUtil.CoerceInt(grabs);
|
||||
|
||||
if (qRow.Find("img[alt=\"OU\"]").Length >= 1)
|
||||
if (globalFreeleech)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
else if (qRow.Find("img[alt=\"OU\"]").Length >= 1)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
else
|
||||
release.DownloadVolumeFactor = 1;
|
||||
|
@@ -66,6 +66,13 @@ namespace Jackett.Indexers
|
||||
public Dictionary<string, List<string>> Modes { get; set; }
|
||||
}
|
||||
|
||||
public class captchaBlock
|
||||
{
|
||||
public string Type { get; set; }
|
||||
public string Image { get; set; }
|
||||
public string Input { get; set; }
|
||||
}
|
||||
|
||||
public class loginBlock
|
||||
{
|
||||
public string Path { get; set; }
|
||||
@@ -74,6 +81,7 @@ namespace Jackett.Indexers
|
||||
public Dictionary<string, string> Inputs { get; set; }
|
||||
public List<errorBlock> Error { get; set; }
|
||||
public pageTestBlock Test { get; set; }
|
||||
public captchaBlock Captcha { get; set; }
|
||||
}
|
||||
|
||||
public class errorBlock
|
||||
@@ -130,7 +138,7 @@ namespace Jackett.Indexers
|
||||
public string Selector { get; set; }
|
||||
}
|
||||
|
||||
protected readonly string[] OptionalFileds = new string[] { "imdb" };
|
||||
protected readonly string[] OptionalFileds = new string[] { "imdb", "rageid", "tvdbid", "banner" };
|
||||
|
||||
public CardigannIndexer(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps)
|
||||
: base(manager: i,
|
||||
@@ -182,7 +190,7 @@ namespace Jackett.Indexers
|
||||
if (!SiteLink.EndsWith("/"))
|
||||
SiteLink += "/";
|
||||
Language = Definition.Language;
|
||||
TorznabCaps = TorznabUtil.CreateDefaultTorznabTVCaps(); // TODO implement caps
|
||||
TorznabCaps = new TorznabCapabilities();
|
||||
|
||||
// init config Data
|
||||
configData = new ConfigurationData();
|
||||
@@ -224,6 +232,26 @@ namespace Jackett.Indexers
|
||||
variables = getTemplateVariablesFromConfigData();
|
||||
}
|
||||
|
||||
// handle re_replace expression
|
||||
// Example: {{ re_replace .Query.Keywords "[^a-zA-Z0-9]+" "%" }}
|
||||
Regex ReReplaceRegex = new Regex(@"{{\s*re_replace\s+(\..+?)\s+""(.+)""\s+""(.+?)""\s*}}");
|
||||
var ReReplaceRegexMatches = ReReplaceRegex.Match(template);
|
||||
|
||||
while (ReReplaceRegexMatches.Success)
|
||||
{
|
||||
string all = ReReplaceRegexMatches.Groups[0].Value;
|
||||
string variable = ReReplaceRegexMatches.Groups[1].Value;
|
||||
string regexp = ReReplaceRegexMatches.Groups[2].Value;
|
||||
string newvalue = ReReplaceRegexMatches.Groups[3].Value;
|
||||
|
||||
Regex ReplaceRegex = new Regex(regexp);
|
||||
var input = (string)variables[variable];
|
||||
var expanded = ReplaceRegex.Replace(input, newvalue);
|
||||
|
||||
template = template.Replace(all, expanded);
|
||||
ReReplaceRegexMatches = ReReplaceRegexMatches.NextMatch();
|
||||
}
|
||||
|
||||
// handle if ... else ... expression
|
||||
Regex IfElseRegex = new Regex(@"{{if\s*(.+?)\s*}}(.*?){{\s*else\s*}}(.*?){{\s*end\s*}}");
|
||||
var IfElseRegexMatches = IfElseRegex.Match(template);
|
||||
@@ -447,6 +475,17 @@ namespace Jackett.Indexers
|
||||
pairs["submitme"] = "X";
|
||||
}
|
||||
|
||||
if (Login.Captcha != null)
|
||||
{
|
||||
var Captcha = Login.Captcha;
|
||||
if (Captcha.Type == "image")
|
||||
{
|
||||
var CaptchaText = (StringItem)configData.GetDynamic("CaptchaText");
|
||||
if (CaptchaText != null)
|
||||
pairs[Captcha.Input] = CaptchaText.Value;
|
||||
}
|
||||
}
|
||||
|
||||
// clear landingResults/Document, otherwise we might use an old version for a new relogin (if GetConfigurationForSetup() wasn't called before)
|
||||
landingResult = null;
|
||||
landingResultDocument = null;
|
||||
@@ -570,6 +609,34 @@ namespace Jackett.Indexers
|
||||
configData.AddDynamic("Captcha", CaptchaItem);
|
||||
}
|
||||
|
||||
if (Login.Captcha != null)
|
||||
{
|
||||
var Captcha = Login.Captcha;
|
||||
if (Captcha.Type == "image")
|
||||
{
|
||||
var captchaElement = landingResultDocument.QuerySelector(Captcha.Image);
|
||||
if (captchaElement != null) {
|
||||
var CaptchaUrl = resolvePath(captchaElement.GetAttribute("src"));
|
||||
var captchaImageData = await RequestBytesWithCookies(CaptchaUrl.ToString(), landingResult.Cookies);
|
||||
var CaptchaImage = new ImageItem { Name = "Captcha Image" };
|
||||
var CaptchaText = new StringItem { Name = "Captcha Text" };
|
||||
logger.Error("captchaImageData Cookies: " + captchaImageData.Cookies);
|
||||
CaptchaImage.Value = captchaImageData.Content;
|
||||
|
||||
configData.AddDynamic("CaptchaImage", CaptchaImage);
|
||||
configData.AddDynamic("CaptchaText", CaptchaText);
|
||||
}
|
||||
else
|
||||
{
|
||||
logger.Debug(string.Format("CardigannIndexer ({0}): No captcha image found", ID));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new NotImplementedException(string.Format("Captcha type \"{0}\" is not implemented", Captcha.Type));
|
||||
}
|
||||
}
|
||||
|
||||
return configData;
|
||||
}
|
||||
|
||||
@@ -933,12 +1000,36 @@ namespace Jackett.Indexers
|
||||
case "uploadvolumefactor":
|
||||
release.UploadVolumeFactor = ParseUtil.CoerceDouble(value);
|
||||
break;
|
||||
case "minimumratio":
|
||||
release.MinimumRatio = ParseUtil.CoerceDouble(value);
|
||||
break;
|
||||
case "minimumseedtime":
|
||||
release.MinimumSeedTime = ParseUtil.CoerceLong(value);
|
||||
break;
|
||||
case "imdb":
|
||||
Regex IMDBRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
|
||||
var IMDBMatch = IMDBRegEx.Match(value);
|
||||
var IMDBId = IMDBMatch.Groups[1].Value;
|
||||
release.Imdb = ParseUtil.CoerceLong(IMDBId);
|
||||
break;
|
||||
case "rageid":
|
||||
Regex RageIDRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
|
||||
var RageIDMatch = RageIDRegEx.Match(value);
|
||||
var RageID = RageIDMatch.Groups[1].Value;
|
||||
release.RageID = ParseUtil.CoerceLong(RageID);
|
||||
break;
|
||||
case "tvdbid":
|
||||
Regex TVDBIdRegEx = new Regex(@"(\d+)", RegexOptions.Compiled);
|
||||
var TVDBIdMatch = TVDBIdRegEx.Match(value);
|
||||
var TVDBId = TVDBIdMatch.Groups[1].Value;
|
||||
release.TVDBId = ParseUtil.CoerceLong(TVDBId);
|
||||
break;
|
||||
case "banner":
|
||||
if(!string.IsNullOrWhiteSpace(value)) {
|
||||
var bannerurl = resolvePath(value);
|
||||
release.BannerUrl = bannerurl;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -981,7 +1072,7 @@ namespace Jackett.Indexers
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
logger.Error(string.Format("CardigannIndexer ({0}): Error while parsing row '{1}': {2}", ID, Row.OuterHtml, ex));
|
||||
logger.Error(string.Format("CardigannIndexer ({0}): Error while parsing row '{1}':\n\n{2}", ID, Row.OuterHtml, ex));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -21,29 +21,35 @@ namespace Jackett.Indexers
|
||||
{
|
||||
public class HDTorrents : BaseIndexer, IIndexer
|
||||
{
|
||||
private string SearchUrl { get { return SiteLink + "torrents.php?"; } }
|
||||
private string LoginUrl { get { return SiteLink + "login.php"; } }
|
||||
private string UseLink { get { return (!String.IsNullOrEmpty(this.configData.AlternateLink.Value) ? this.configData.AlternateLink.Value : SiteLink); } }
|
||||
private string SearchUrl { get { return UseLink + "torrents.php?"; } }
|
||||
private string LoginUrl { get { return UseLink + "login.php"; } }
|
||||
private const int MAXPAGES = 3;
|
||||
private List<String> KnownURLs = new List<String> { "https://hdts.ru/", "https://hd-torrents.org/", "https://hd-torrents.net/", "https://hd-torrents.me/" };
|
||||
|
||||
new ConfigurationDataBasicLogin configData
|
||||
new ConfigurationDataBasicLoginWithAlternateLink configData
|
||||
{
|
||||
get { return (ConfigurationDataBasicLogin)base.configData; }
|
||||
get { return (ConfigurationDataBasicLoginWithAlternateLink)base.configData; }
|
||||
set { base.configData = value; }
|
||||
}
|
||||
|
||||
public HDTorrents(IIndexerManagerService i, Logger l, IWebClient w, IProtectionService ps)
|
||||
: base(name: "HD-Torrents",
|
||||
description: "HD-Torrents is a private torrent website with HD torrents and strict rules on their content.",
|
||||
link: "http://hdts.ru/",// Of the accessible domains the .ru seems the most reliable. https://hdts.ru | https://hd-torrents.org | https://hd-torrents.net | https://hd-torrents.me
|
||||
link: "https://hdts.ru/",// Of the accessible domains the .ru seems the most reliable. https://hdts.ru | https://hd-torrents.org | https://hd-torrents.net | https://hd-torrents.me
|
||||
manager: i,
|
||||
client: w,
|
||||
logger: l,
|
||||
p: ps,
|
||||
configData: new ConfigurationDataBasicLogin())
|
||||
configData: new ConfigurationDataBasicLoginWithAlternateLink())
|
||||
{
|
||||
Encoding = Encoding.GetEncoding("UTF-8");
|
||||
Language = "en-us";
|
||||
|
||||
this.configData.Instructions.Value = this.DisplayName + " has multiple URLs. The default (" + this.SiteLink + ") can be changed by entering a new value in the box below.";
|
||||
this.configData.Instructions.Value += "The following are some known URLs for " + this.DisplayName;
|
||||
this.configData.Instructions.Value += "<ul><li>" + String.Join("</li><li>", this.KnownURLs.ToArray()) + "</li></ul>";
|
||||
|
||||
TorznabCaps.Categories.Clear();
|
||||
|
||||
AddCategoryMapping("1", TorznabCatType.MoviesHD);// Movie/Blu-Ray
|
||||
@@ -71,6 +77,9 @@ namespace Jackett.Indexers
|
||||
public async Task<IndexerConfigurationStatus> ApplyConfiguration(JToken configJson)
|
||||
{
|
||||
configData.LoadValuesFromJson(configJson);
|
||||
if (!string.IsNullOrWhiteSpace(configData.AlternateLink.Value) && !configData.AlternateLink.Value.EndsWith("/"))
|
||||
configData.AlternateLink.Value += "/";
|
||||
|
||||
var loginPage = await RequestStringWithCookies(LoginUrl, string.Empty);
|
||||
|
||||
var pairs = new Dictionary<string, string> {
|
||||
|
@@ -36,7 +36,7 @@ namespace Jackett.Indexers
|
||||
public IPTorrents(IIndexerManagerService i, IWebClient wc, Logger l, IProtectionService ps)
|
||||
: base(name: "IPTorrents",
|
||||
description: "Always a step ahead.",
|
||||
link: "https://ipt-update.com/",
|
||||
link: "https://iptorrents.com/",
|
||||
caps: new TorznabCapabilities(),
|
||||
manager: i,
|
||||
client: wc,
|
||||
@@ -156,6 +156,7 @@ namespace Jackett.Indexers
|
||||
Url = TakeLoginUrl,
|
||||
Type = RequestType.POST,
|
||||
Referer = UseLink,
|
||||
Encoding = Encoding,
|
||||
PostData = pairs
|
||||
};
|
||||
var response = await webclient.GetString(request);
|
||||
|
@@ -149,6 +149,7 @@ namespace Jackett.Indexers
|
||||
{
|
||||
CQ dom = results.Content;
|
||||
var rows = dom["table.torrent_table > tbody > tr"];
|
||||
var globalFreeleech = dom.Find("legend:contains(\"Freeleech\")+ul > li > b:contains(\"Freeleech\")").Any();
|
||||
foreach (var row in rows.Skip(1))
|
||||
{
|
||||
var release = new ReleaseInfo();
|
||||
@@ -168,7 +169,7 @@ namespace Jackett.Indexers
|
||||
var qCommentLink = descCol.FirstElementChild.Cq();
|
||||
var torrentTag = descCol.Cq().Find("span.torrent-tag");
|
||||
var torrentTags = torrentTag.Elements.Select(x => x.InnerHTML).ToList();
|
||||
release.Title = qCommentLink.Text();
|
||||
release.Title = qCommentLink.Attr("title");
|
||||
release.Description = String.Join(", ", torrentTags);
|
||||
release.Comments = new Uri(SiteLink + "/" + qCommentLink.Attr("href").Replace("&hit=1", ""));
|
||||
release.Guid = release.Comments;
|
||||
@@ -195,7 +196,9 @@ namespace Jackett.Indexers
|
||||
var grabs = qRow.Find("td:nth-child(7)").Text();
|
||||
release.Grabs = ParseUtil.CoerceInt(grabs);
|
||||
|
||||
if (qRow.Find("span.torrent-tag-free").Length >= 1)
|
||||
if (globalFreeleech)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
else if (qRow.Find("span.torrent-tag-free").Length >= 1)
|
||||
release.DownloadVolumeFactor = 0;
|
||||
else
|
||||
release.DownloadVolumeFactor = 1;
|
||||
|
32
src/Jackett/Indexers/nostream.cs
Normal file
32
src/Jackett/Indexers/nostream.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using Jackett.Models;
|
||||
using NLog;
|
||||
using Jackett.Services;
|
||||
using Jackett.Utils.Clients;
|
||||
using Jackett.Indexers.Abstract;
|
||||
|
||||
namespace Jackett.Indexers
|
||||
{
|
||||
public class nostream : GazelleTracker, IIndexer
|
||||
{
|
||||
public nostream(IIndexerManagerService indexerManager, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "nostream",
|
||||
desc: "A music tracker",
|
||||
link: "https://nostre.am/",
|
||||
indexerManager: indexerManager,
|
||||
logger: logger,
|
||||
protectionService: protectionService,
|
||||
webClient: webClient
|
||||
)
|
||||
{
|
||||
Language = "en-us";
|
||||
|
||||
AddCategoryMapping(1, TorznabCatType.Audio, "Music");
|
||||
AddCategoryMapping(2, TorznabCatType.PC, "Applications");
|
||||
AddCategoryMapping(3, TorznabCatType.Books, "E-Books");
|
||||
AddCategoryMapping(4, TorznabCatType.AudioAudiobook, "Audiobooks");
|
||||
AddCategoryMapping(5, TorznabCatType.Movies, "E-Learning Videos");
|
||||
AddCategoryMapping(6, TorznabCatType.TV, "Comedy");
|
||||
AddCategoryMapping(7, TorznabCatType.Books, "Comics");
|
||||
}
|
||||
}
|
||||
}
|
32
src/Jackett/Indexers/notwhatcd.cs
Normal file
32
src/Jackett/Indexers/notwhatcd.cs
Normal file
@@ -0,0 +1,32 @@
|
||||
using Jackett.Models;
|
||||
using NLog;
|
||||
using Jackett.Services;
|
||||
using Jackett.Utils.Clients;
|
||||
using Jackett.Indexers.Abstract;
|
||||
|
||||
namespace Jackett.Indexers
|
||||
{
|
||||
public class notwhatcd : GazelleTracker, IIndexer
|
||||
{
|
||||
public notwhatcd(IIndexerManagerService indexerManager, IWebClient webClient, Logger logger, IProtectionService protectionService)
|
||||
: base(name: "notwhat.cd",
|
||||
desc: "A music tracker",
|
||||
link: "https://notwhat.cd/",
|
||||
indexerManager: indexerManager,
|
||||
logger: logger,
|
||||
protectionService: protectionService,
|
||||
webClient: webClient
|
||||
)
|
||||
{
|
||||
Language = "en-us";
|
||||
|
||||
AddCategoryMapping(1, TorznabCatType.Audio, "Music");
|
||||
AddCategoryMapping(2, TorznabCatType.PC, "Applications");
|
||||
AddCategoryMapping(3, TorznabCatType.Books, "E-Books");
|
||||
AddCategoryMapping(4, TorznabCatType.AudioAudiobook, "Audiobooks");
|
||||
AddCategoryMapping(5, TorznabCatType.Movies, "E-Learning Videos");
|
||||
AddCategoryMapping(6, TorznabCatType.TV, "Comedy");
|
||||
AddCategoryMapping(7, TorznabCatType.Books, "Comics");
|
||||
}
|
||||
}
|
||||
}
|
@@ -167,6 +167,8 @@
|
||||
<Compile Include="Engine.cs" />
|
||||
<Compile Include="Indexers\Abstract\GazelleTracker.cs" />
|
||||
<Compile Include="Indexers\AnimeTorrents.cs" />
|
||||
<Compile Include="Indexers\nostream.cs" />
|
||||
<Compile Include="Indexers\notwhatcd.cs" />
|
||||
<Compile Include="Indexers\PassTheHeadphones.cs" />
|
||||
<Compile Include="Indexers\Norbits.cs" />
|
||||
<Compile Include="Indexers\TVVault.cs" />
|
||||
@@ -451,6 +453,36 @@
|
||||
<Content Include="Definitions\qctorrent.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\torviet.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\icetorrent.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\xtremezone.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\datascene.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\utorrents.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\torrentsmd.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\fanoin.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\rapidetracker.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\hdclub.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Definitions\trancetraffic.yml">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<None Include="packages.config">
|
||||
<SubType>Designer</SubType>
|
||||
</None>
|
||||
|
Reference in New Issue
Block a user