mirror of
https://github.com/Jackett/Jackett.git
synced 2025-09-10 13:48:02 +02:00
Compare commits
656 Commits
v0.20.1319
...
v0.20.2247
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d327e7ef37 | ||
![]() |
c5031d3cba | ||
![]() |
e59c149f35 | ||
![]() |
0e7dca45f7 | ||
![]() |
d9b205daa9 | ||
![]() |
7ed5db2402 | ||
![]() |
44c76cda9c | ||
![]() |
a8fed28efe | ||
![]() |
5424484f8a | ||
![]() |
ac81ee0b9c | ||
![]() |
e30f41c58f | ||
![]() |
644ca23648 | ||
![]() |
3153083075 | ||
![]() |
094f9a3ee4 | ||
![]() |
4759bea924 | ||
![]() |
6e345f38f2 | ||
![]() |
db0175b6dd | ||
![]() |
8a13121d10 | ||
![]() |
0c2c043554 | ||
![]() |
3a004dcde4 | ||
![]() |
220a73325c | ||
![]() |
5ac8abdd73 | ||
![]() |
d3e41cbffa | ||
![]() |
60106dce94 | ||
![]() |
e76a962fbc | ||
![]() |
3e636cd23d | ||
![]() |
aa69268bd4 | ||
![]() |
4d33f93e10 | ||
![]() |
24a36bc939 | ||
![]() |
a560c092b0 | ||
![]() |
6b69808183 | ||
![]() |
8542d69023 | ||
![]() |
00ddf5e288 | ||
![]() |
93e5fb8ae0 | ||
![]() |
4f82915235 | ||
![]() |
42aa9762e9 | ||
![]() |
3591bbe583 | ||
![]() |
d635a79ce7 | ||
![]() |
0929fc571a | ||
![]() |
63bac46240 | ||
![]() |
3b01258a38 | ||
![]() |
62a9d701c9 | ||
![]() |
fadc46c381 | ||
![]() |
d7b35613b1 | ||
![]() |
292986b170 | ||
![]() |
f5a39988cc | ||
![]() |
cab5c22735 | ||
![]() |
d896d80133 | ||
![]() |
a344956492 | ||
![]() |
8929747480 | ||
![]() |
03e03a1d34 | ||
![]() |
540af2eb31 | ||
![]() |
c62c1a2e57 | ||
![]() |
9d27c791d3 | ||
![]() |
ca1eb7ff7f | ||
![]() |
c5b604c709 | ||
![]() |
befa49ea80 | ||
![]() |
d056a8e054 | ||
![]() |
2a7878f487 | ||
![]() |
360e18f1d5 | ||
![]() |
42bc31c324 | ||
![]() |
d740d478da | ||
![]() |
aca9162c70 | ||
![]() |
1b0ec029c9 | ||
![]() |
8c33e64605 | ||
![]() |
54b56a4be6 | ||
![]() |
bf581f690e | ||
![]() |
0a9ef3d586 | ||
![]() |
9851993b23 | ||
![]() |
3da72a6411 | ||
![]() |
948c84cad5 | ||
![]() |
b9170c83d9 | ||
![]() |
ae46abdc67 | ||
![]() |
e2b6cea9b4 | ||
![]() |
db0f8a9a4b | ||
![]() |
00c94fd05b | ||
![]() |
64e0913e07 | ||
![]() |
9c6a73f611 | ||
![]() |
b9add2b927 | ||
![]() |
b8c39a90cc | ||
![]() |
b0ba1ea226 | ||
![]() |
55af1cf046 | ||
![]() |
4cb2642139 | ||
![]() |
cd47e95087 | ||
![]() |
788c8e53f1 | ||
![]() |
f53db2f016 | ||
![]() |
6d4958c796 | ||
![]() |
c507dc255a | ||
![]() |
e42c149979 | ||
![]() |
85585c2c02 | ||
![]() |
0f0822f52e | ||
![]() |
00dc9f5dcc | ||
![]() |
4502f5f771 | ||
![]() |
878460d509 | ||
![]() |
628fd32385 | ||
![]() |
924861c96a | ||
![]() |
933f33aa4e | ||
![]() |
ab7e42ec84 | ||
![]() |
9709db9aac | ||
![]() |
4179392d52 | ||
![]() |
6194160d17 | ||
![]() |
f347e9560c | ||
![]() |
88242ba999 | ||
![]() |
a6032c46da | ||
![]() |
10499c6919 | ||
![]() |
fd5a765d98 | ||
![]() |
3c81760067 | ||
![]() |
24b472d8e1 | ||
![]() |
6663bea1f5 | ||
![]() |
68d9a2eb3e | ||
![]() |
8c2f1398e8 | ||
![]() |
31eb00c30d | ||
![]() |
460089d09a | ||
![]() |
09184fc5bc | ||
![]() |
3bc25ea784 | ||
![]() |
9415b24d2e | ||
![]() |
8b3ca306e1 | ||
![]() |
22f19a2a5f | ||
![]() |
8029f87430 | ||
![]() |
8a1f2cdc9b | ||
![]() |
fc07995b38 | ||
![]() |
69e147929f | ||
![]() |
f8ee6a5c80 | ||
![]() |
270697b439 | ||
![]() |
d638719f3a | ||
![]() |
7eb4425efa | ||
![]() |
d6dc7ee53f | ||
![]() |
636fb2348e | ||
![]() |
be9f7ffa3e | ||
![]() |
33923913f5 | ||
![]() |
2f0ac6190f | ||
![]() |
91dd3f6a4a | ||
![]() |
10f6b5779e | ||
![]() |
26b4a27311 | ||
![]() |
d51d005476 | ||
![]() |
ed6f79661a | ||
![]() |
4f596e14b2 | ||
![]() |
6a81366206 | ||
![]() |
e71cd1105f | ||
![]() |
548b2801ee | ||
![]() |
efa1071e09 | ||
![]() |
9c526c17c0 | ||
![]() |
46517f2a06 | ||
![]() |
641a2f39da | ||
![]() |
280572b3aa | ||
![]() |
06ddc9d037 | ||
![]() |
1a3e846a0f | ||
![]() |
056727b36a | ||
![]() |
917d0c2a7e | ||
![]() |
88f5a0d8fe | ||
![]() |
86bda5f468 | ||
![]() |
c59a9ff4bb | ||
![]() |
4c81a86df6 | ||
![]() |
6c7b8b6468 | ||
![]() |
4655ece26b | ||
![]() |
9a7705b208 | ||
![]() |
fd0d86f02c | ||
![]() |
cb59eaee2b | ||
![]() |
d45f40bfab | ||
![]() |
feb47facaa | ||
![]() |
80c91222e9 | ||
![]() |
2e284892c7 | ||
![]() |
dc2943cb06 | ||
![]() |
94c90f4225 | ||
![]() |
e757d81492 | ||
![]() |
76d17aa605 | ||
![]() |
a54f574527 | ||
![]() |
8518cf3c89 | ||
![]() |
7850fd9f36 | ||
![]() |
9b107ad1f3 | ||
![]() |
1a5fff0356 | ||
![]() |
131fb1d65c | ||
![]() |
3a7a327f76 | ||
![]() |
f63941a726 | ||
![]() |
82cc6c790b | ||
![]() |
3bbc29929e | ||
![]() |
09ece29cf4 | ||
![]() |
29eba6c19d | ||
![]() |
058a111c43 | ||
![]() |
426e674e3f | ||
![]() |
035e03bf3e | ||
![]() |
304df9cf36 | ||
![]() |
a4b838ca68 | ||
![]() |
09b4752387 | ||
![]() |
6132054f35 | ||
![]() |
e891be739f | ||
![]() |
7eaef1fa69 | ||
![]() |
1177c8c245 | ||
![]() |
8d4c5b8a36 | ||
![]() |
b9713c1dcf | ||
![]() |
19b626cfc9 | ||
![]() |
8e8572522e | ||
![]() |
15fe1e1672 | ||
![]() |
5b361e1e41 | ||
![]() |
5b0b5f07cd | ||
![]() |
d7dee7c366 | ||
![]() |
09c6a7175a | ||
![]() |
ad512533d0 | ||
![]() |
657024a18a | ||
![]() |
4f031cf9aa | ||
![]() |
4b9fe8e24e | ||
![]() |
265aa012cf | ||
![]() |
25b16e7326 | ||
![]() |
0f32d258a3 | ||
![]() |
902974a0ac | ||
![]() |
9420948a9b | ||
![]() |
c5ca5fa03b | ||
![]() |
f76437a44f | ||
![]() |
68ebaccac1 | ||
![]() |
18724f0520 | ||
![]() |
88178dfeca | ||
![]() |
a828c0cfb8 | ||
![]() |
ca16dea0e7 | ||
![]() |
2cb71ad7ea | ||
![]() |
f573d71379 | ||
![]() |
53101a42f5 | ||
![]() |
b80754d665 | ||
![]() |
ac049f7c45 | ||
![]() |
a69bd75b27 | ||
![]() |
64c193aad7 | ||
![]() |
eef6d5e9aa | ||
![]() |
0fadd2b478 | ||
![]() |
ef4a8058d6 | ||
![]() |
50798a61be | ||
![]() |
7361aa7c6f | ||
![]() |
9658fa899a | ||
![]() |
bd6a0d0330 | ||
![]() |
356a5cce0a | ||
![]() |
6311e5d7c8 | ||
![]() |
1fce2f3126 | ||
![]() |
959c297664 | ||
![]() |
7d7e00cd63 | ||
![]() |
6cacc50fb0 | ||
![]() |
5fe2cb6a50 | ||
![]() |
34e8bfbd29 | ||
![]() |
d68fb0ee6e | ||
![]() |
f4d3ca2d73 | ||
![]() |
fbb50c55b7 | ||
![]() |
97d744afc7 | ||
![]() |
e520105ade | ||
![]() |
651d1cdf92 | ||
![]() |
bd2efe0d5e | ||
![]() |
e2d76d6fc7 | ||
![]() |
9af399bfa2 | ||
![]() |
f915f403b7 | ||
![]() |
6a84427f72 | ||
![]() |
2f3aedbb96 | ||
![]() |
533b07f801 | ||
![]() |
fa1465373d | ||
![]() |
7302652feb | ||
![]() |
1454f67eef | ||
![]() |
68aad0c3b8 | ||
![]() |
56aba98bc9 | ||
![]() |
df421f2bfb | ||
![]() |
af633154b9 | ||
![]() |
4d27570669 | ||
![]() |
ce6240f130 | ||
![]() |
c6813224c5 | ||
![]() |
5a0664936c | ||
![]() |
e07ceab101 | ||
![]() |
e1605572f2 | ||
![]() |
6eb122d823 | ||
![]() |
8087baaf57 | ||
![]() |
5f2be6ee2c | ||
![]() |
8a3625177e | ||
![]() |
927431fba2 | ||
![]() |
78a36a3a9a | ||
![]() |
70aa1b67d9 | ||
![]() |
fa4b3e233b | ||
![]() |
9a1aa101d7 | ||
![]() |
9fff3112b2 | ||
![]() |
8e51236a6a | ||
![]() |
293e514748 | ||
![]() |
0b80db4789 | ||
![]() |
b011fb7fb6 | ||
![]() |
3687afa4b0 | ||
![]() |
085e150162 | ||
![]() |
2d41a3aecb | ||
![]() |
c0d2c087a0 | ||
![]() |
af509ce3ee | ||
![]() |
90d74381cb | ||
![]() |
db12b4ce41 | ||
![]() |
3a743d632a | ||
![]() |
28e0050ef7 | ||
![]() |
1133432cff | ||
![]() |
7bdafb0d0e | ||
![]() |
f3d491931c | ||
![]() |
b105ff7404 | ||
![]() |
c470164f96 | ||
![]() |
c19e1df956 | ||
![]() |
1ba404df45 | ||
![]() |
4996a7fb9c | ||
![]() |
9a38b82e76 | ||
![]() |
b30b1be238 | ||
![]() |
f1b0b12425 | ||
![]() |
aa106dd85a | ||
![]() |
488c90e235 | ||
![]() |
2e3acde9f7 | ||
![]() |
65c87f3546 | ||
![]() |
bb2772cee1 | ||
![]() |
21dc01563f | ||
![]() |
340c4b0ded | ||
![]() |
284ec8b299 | ||
![]() |
b7aa0c16d7 | ||
![]() |
51dc713e3b | ||
![]() |
697b21d95f | ||
![]() |
ee387b0792 | ||
![]() |
2b1b6db36d | ||
![]() |
38cfa56dbc | ||
![]() |
bff83d68cf | ||
![]() |
52cecffc5a | ||
![]() |
2e04db7fbf | ||
![]() |
6ff90f481b | ||
![]() |
04e5b3f474 | ||
![]() |
40822ef366 | ||
![]() |
c38454134e | ||
![]() |
6eb61697cd | ||
![]() |
2fc78cd090 | ||
![]() |
fcba41f03f | ||
![]() |
57fea1af0e | ||
![]() |
b7fbd15b09 | ||
![]() |
059721919b | ||
![]() |
77c1751c10 | ||
![]() |
acb2a86f73 | ||
![]() |
f4e38a1651 | ||
![]() |
af6361db45 | ||
![]() |
442957a083 | ||
![]() |
7ebedc8ca0 | ||
![]() |
9eb97a4de7 | ||
![]() |
939f58b290 | ||
![]() |
acb70efc58 | ||
![]() |
8571526317 | ||
![]() |
869edd2b87 | ||
![]() |
cacffb383e | ||
![]() |
c63dce2f2b | ||
![]() |
d035ad03e9 | ||
![]() |
bb53da8f83 | ||
![]() |
d5ddf063ba | ||
![]() |
6df978a5cd | ||
![]() |
db1b058d88 | ||
![]() |
9192a94c91 | ||
![]() |
1c9a7a4715 | ||
![]() |
7384c0070a | ||
![]() |
b9c89c2383 | ||
![]() |
75bb10cdda | ||
![]() |
8ea1811a5f | ||
![]() |
354974a5a5 | ||
![]() |
8c4d59da4b | ||
![]() |
8f5c74c7b9 | ||
![]() |
4963268454 | ||
![]() |
6fb6383b5a | ||
![]() |
81918153a5 | ||
![]() |
f14f9ba98b | ||
![]() |
a8a8ee8f08 | ||
![]() |
43319e3a69 | ||
![]() |
74d9253493 | ||
![]() |
2257b143c2 | ||
![]() |
01c77ee1fa | ||
![]() |
dbc9dea7a3 | ||
![]() |
94800bb71f | ||
![]() |
b2e10f2375 | ||
![]() |
3143d3cfb6 | ||
![]() |
99943658e9 | ||
![]() |
4b0b6ad6c2 | ||
![]() |
3dd5a80b2a | ||
![]() |
1ee452b8bc | ||
![]() |
6752fe8f84 | ||
![]() |
06f9f0e0a6 | ||
![]() |
4c044b0b3b | ||
![]() |
f6fd6b951f | ||
![]() |
cfc7668cde | ||
![]() |
8e8defd5b6 | ||
![]() |
1dc6379467 | ||
![]() |
503f529738 | ||
![]() |
2dbd170083 | ||
![]() |
2667d90e53 | ||
![]() |
6cf179187d | ||
![]() |
467bb9f81c | ||
![]() |
c913990398 | ||
![]() |
216cb56db8 | ||
![]() |
77d7d84dbe | ||
![]() |
71f2717198 | ||
![]() |
173f6fb550 | ||
![]() |
281296851a | ||
![]() |
3afe0dc5f1 | ||
![]() |
442d7dd27c | ||
![]() |
dfff51fe54 | ||
![]() |
bbcdec0c67 | ||
![]() |
4388236bfe | ||
![]() |
88ac1139d0 | ||
![]() |
9dbc8c97cc | ||
![]() |
616a48782e | ||
![]() |
37390b8572 | ||
![]() |
3a36ef4b24 | ||
![]() |
536bae4872 | ||
![]() |
3a48573b88 | ||
![]() |
69796ae6ef | ||
![]() |
491e73b7de | ||
![]() |
9768fd288b | ||
![]() |
8a1f41d080 | ||
![]() |
7c0a5eb598 | ||
![]() |
38e3bd9d7c | ||
![]() |
a0095ca332 | ||
![]() |
0a64ad9124 | ||
![]() |
2723d0c833 | ||
![]() |
14689acb94 | ||
![]() |
5596c9cd5e | ||
![]() |
dff2bdd276 | ||
![]() |
8ed6b2d47a | ||
![]() |
8147252358 | ||
![]() |
ed95a8975f | ||
![]() |
5d826f3c30 | ||
![]() |
740dc7848c | ||
![]() |
2fa84f072c | ||
![]() |
626f5ea320 | ||
![]() |
7eaf5419c5 | ||
![]() |
f6213a1a33 | ||
![]() |
29be7025c7 | ||
![]() |
a173e15236 | ||
![]() |
381e662fa7 | ||
![]() |
2df6df5166 | ||
![]() |
41fb19c629 | ||
![]() |
2980d96913 | ||
![]() |
d9f27d95fd | ||
![]() |
1fb5983d82 | ||
![]() |
5eeacb4661 | ||
![]() |
ce0a4e2f5e | ||
![]() |
de2ddc57c3 | ||
![]() |
bc4687f94d | ||
![]() |
3feb0c517c | ||
![]() |
62f8691e54 | ||
![]() |
ba7c79d29d | ||
![]() |
3b332f8064 | ||
![]() |
a889a4b048 | ||
![]() |
da7e4bf312 | ||
![]() |
c5bc5e88cd | ||
![]() |
8c7dd3531c | ||
![]() |
d3e95801a4 | ||
![]() |
57c6323cdc | ||
![]() |
653f6b969b | ||
![]() |
18a44fa06e | ||
![]() |
0c20234b5a | ||
![]() |
8f882bd5cd | ||
![]() |
8bc78eff49 | ||
![]() |
6c0d4d10ba | ||
![]() |
0c25b80f4e | ||
![]() |
5fa40886ce | ||
![]() |
96cd2b8fc7 | ||
![]() |
b78c9d6452 | ||
![]() |
5c9092663f | ||
![]() |
fc2a217178 | ||
![]() |
998bedfa59 | ||
![]() |
a5de26a41d | ||
![]() |
3bfce09856 | ||
![]() |
8865d66f65 | ||
![]() |
844d1597d8 | ||
![]() |
402e040840 | ||
![]() |
59744e1685 | ||
![]() |
a85aa83e11 | ||
![]() |
3254756361 | ||
![]() |
ef4d3760b6 | ||
![]() |
4615f2d89b | ||
![]() |
94d839bc8c | ||
![]() |
dcc0596467 | ||
![]() |
98ae25ad41 | ||
![]() |
bcc594a149 | ||
![]() |
208f696256 | ||
![]() |
680010a5b7 | ||
![]() |
abd34c5973 | ||
![]() |
7c102a1101 | ||
![]() |
5230394ebf | ||
![]() |
665e9f8c77 | ||
![]() |
59a47824b3 | ||
![]() |
0a3ec32fdd | ||
![]() |
acc9db993a | ||
![]() |
1cdacd753c | ||
![]() |
4af94d0777 | ||
![]() |
04e6507d84 | ||
![]() |
93a7b8c581 | ||
![]() |
60ffb6796d | ||
![]() |
69929dc2f5 | ||
![]() |
990e82f0a6 | ||
![]() |
fddfd7b4f0 | ||
![]() |
8e0aeecb91 | ||
![]() |
eb6d0fb98f | ||
![]() |
3e50d345eb | ||
![]() |
27b96487ba | ||
![]() |
b025f86dd6 | ||
![]() |
e6b37d7b09 | ||
![]() |
9a4f6faed1 | ||
![]() |
fa4513749c | ||
![]() |
9d5d23abbb | ||
![]() |
e411885b0d | ||
![]() |
dfd971ad56 | ||
![]() |
2d9924f38e | ||
![]() |
fbae9db5d7 | ||
![]() |
10cb131edc | ||
![]() |
710da0ec96 | ||
![]() |
94b02f38a2 | ||
![]() |
003ab68c2b | ||
![]() |
03f511dfd1 | ||
![]() |
017ebba3bc | ||
![]() |
af5ba14999 | ||
![]() |
6b0489b64a | ||
![]() |
9497c92166 | ||
![]() |
2bc16cf6f4 | ||
![]() |
f0636d143e | ||
![]() |
b60cea1cfa | ||
![]() |
fa5a10f27c | ||
![]() |
c19b6e547e | ||
![]() |
9a384ee71d | ||
![]() |
3b0cd0d39d | ||
![]() |
49e9b5dc85 | ||
![]() |
a59112f965 | ||
![]() |
f1b7f4fc25 | ||
![]() |
600d37bf69 | ||
![]() |
0802d6d8c6 | ||
![]() |
7bbe650c2d | ||
![]() |
ba18af9f7c | ||
![]() |
784650a808 | ||
![]() |
d9416756b4 | ||
![]() |
d9a6850e1a | ||
![]() |
7fedebb9a8 | ||
![]() |
4410029afb | ||
![]() |
02c3507c3c | ||
![]() |
617413993f | ||
![]() |
a8662fc4fa | ||
![]() |
21c6fff819 | ||
![]() |
6739de88f8 | ||
![]() |
2295ae397b | ||
![]() |
75a2e25528 | ||
![]() |
fcfa1a9c89 | ||
![]() |
192594e853 | ||
![]() |
0def2f0bf3 | ||
![]() |
9c0b620721 | ||
![]() |
a955579133 | ||
![]() |
742a887e6d | ||
![]() |
48b1b3c1ce | ||
![]() |
48d853cd55 | ||
![]() |
2b61b1f067 | ||
![]() |
c96c2e605a | ||
![]() |
7dfa9ca651 | ||
![]() |
ee5e05d955 | ||
![]() |
44165e4534 | ||
![]() |
394743c4fe | ||
![]() |
8fbc5b9a08 | ||
![]() |
6e11e5a75e | ||
![]() |
a8b1001e91 | ||
![]() |
f90186a648 | ||
![]() |
3c4ae68045 | ||
![]() |
b77e20357d | ||
![]() |
0fa921886a | ||
![]() |
ab05f1b4e2 | ||
![]() |
9819f0d968 | ||
![]() |
57679b4105 | ||
![]() |
b194420f6b | ||
![]() |
77ba197774 | ||
![]() |
790bbec2e3 | ||
![]() |
c820ebca00 | ||
![]() |
77bd826795 | ||
![]() |
33093d6ccb | ||
![]() |
33beea5f62 | ||
![]() |
60066a5827 | ||
![]() |
4dfe9d91ff | ||
![]() |
3cf64cab8a | ||
![]() |
6b0bfa215c | ||
![]() |
673a572f4a | ||
![]() |
fac104bdb8 | ||
![]() |
57f03e0aa5 | ||
![]() |
7685b6d434 | ||
![]() |
a895cdea6c | ||
![]() |
55eadc8dea | ||
![]() |
f71d8be9f6 | ||
![]() |
605b2a3cd9 | ||
![]() |
ba889e81ec | ||
![]() |
ae612ccf18 | ||
![]() |
80fbd15f8f | ||
![]() |
2ba81c4b10 | ||
![]() |
e39f0c115e | ||
![]() |
a22bbaac74 | ||
![]() |
1b448875c8 | ||
![]() |
d155ee00eb | ||
![]() |
56b6ec1a16 | ||
![]() |
82369f9966 | ||
![]() |
4e937befd7 | ||
![]() |
ba17ebe2ed | ||
![]() |
b29ea1f3bc | ||
![]() |
8e7ba97834 | ||
![]() |
8ddfa4f6b3 | ||
![]() |
72e6068fe2 | ||
![]() |
20c363293b | ||
![]() |
75ae674998 | ||
![]() |
507f2f22f7 | ||
![]() |
7c8afef596 | ||
![]() |
25c745a487 | ||
![]() |
a7b991df25 | ||
![]() |
3be085cad0 | ||
![]() |
4d39d55e23 | ||
![]() |
7aa90025d3 | ||
![]() |
6d8fa58034 | ||
![]() |
a9dae9b442 | ||
![]() |
0d3ddc192f | ||
![]() |
0d0240ae1c | ||
![]() |
420f691956 | ||
![]() |
319211d29a | ||
![]() |
b1a00e01a9 | ||
![]() |
a3d0bc0e0a | ||
![]() |
5cca3cdacf | ||
![]() |
df5db21973 | ||
![]() |
658685f3ae | ||
![]() |
b936d2f9e4 | ||
![]() |
45ac71aea3 | ||
![]() |
5aba9b3614 | ||
![]() |
8bd6b9184b | ||
![]() |
b8cb92bd0a | ||
![]() |
633f69c9d3 | ||
![]() |
9586f7d7a4 | ||
![]() |
904d09c63c | ||
![]() |
69ff7ee3c3 | ||
![]() |
d77f037372 | ||
![]() |
40a534db6a | ||
![]() |
9eeed9b9c9 | ||
![]() |
223fc2550d | ||
![]() |
5b6c7bfcdb | ||
![]() |
2024a43bf5 | ||
![]() |
da46f430e8 | ||
![]() |
7d9656d69b | ||
![]() |
d12b0a413f | ||
![]() |
1f674cdf98 | ||
![]() |
5014a00094 | ||
![]() |
b05fec080f | ||
![]() |
32acc5be20 | ||
![]() |
2168244963 | ||
![]() |
c8ae183d68 | ||
![]() |
e34e70040b | ||
![]() |
9996413a58 | ||
![]() |
d399e7dac8 | ||
![]() |
f314668979 | ||
![]() |
c8c9b7e8a0 | ||
![]() |
9c29320b16 | ||
![]() |
26c9114673 | ||
![]() |
b53833da95 | ||
![]() |
bab1046894 | ||
![]() |
f6b45bdea7 | ||
![]() |
f0d0eed076 | ||
![]() |
a1d57e748b | ||
![]() |
9c6cce4a88 | ||
![]() |
42aba7044a | ||
![]() |
7868b74f35 | ||
![]() |
19bd3e15ca | ||
![]() |
82aa750dbf | ||
![]() |
54fa824928 | ||
![]() |
cb5ade2bb7 | ||
![]() |
6f73f77b09 | ||
![]() |
bb9622733b | ||
![]() |
aae44fd2d5 |
4
.github/workflows/winget.yml
vendored
4
.github/workflows/winget.yml
vendored
@@ -2,11 +2,13 @@ name: Publish to WinGet
|
||||
on:
|
||||
release:
|
||||
types: [released]
|
||||
permissions:
|
||||
contents: read
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: vedantmgoyal2009/winget-releaser@latest
|
||||
- uses: vedantmgoyal2009/winget-releaser@v1
|
||||
with:
|
||||
identifier: Jackett.Jackett
|
||||
token: ${{ secrets.WINGET }}
|
||||
|
87
README.md
87
README.md
@@ -21,7 +21,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
#### Supported Systems
|
||||
* Windows 7 SP1 or greater
|
||||
* Linux [supported operating systems here](https://github.com/dotnet/core/blob/main/release-notes/6.0/supported-os.md#linux)
|
||||
* macOS 10.13 or greater
|
||||
* macOS 10.15+ or greater
|
||||
|
||||
<details> <summary> <b> Supported Public Trackers </b> </summary>
|
||||
|
||||
@@ -46,8 +46,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BT4G
|
||||
* BTDIGG
|
||||
* BTMET
|
||||
* BTmirror
|
||||
* BTSOW
|
||||
* BullTorrent
|
||||
* Byrutor
|
||||
* CloudTorrents
|
||||
* comicat
|
||||
@@ -99,29 +99,23 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* MoviesDVDR
|
||||
* MovieTorrent
|
||||
* MyPornClub
|
||||
* NewPCT.me
|
||||
* Newstudio
|
||||
* Nipponsei
|
||||
* Nitro
|
||||
* NNTT
|
||||
* NoNaMe Club (NNM-Club)
|
||||
* Nyaa.si
|
||||
* OnceSearch
|
||||
* OneJAV
|
||||
* OpenSharing
|
||||
* ParnuXi
|
||||
* PC-torrent
|
||||
* PiratBit
|
||||
* Pornforall
|
||||
* PornLeech
|
||||
* PornoLive
|
||||
* PornosLab
|
||||
* PornoTor
|
||||
* PornoTorrent
|
||||
* Portugas
|
||||
* ProPorn
|
||||
* ProStyleX
|
||||
* PS4-Torrent
|
||||
* Rapidzona
|
||||
* RARBG
|
||||
* RinTor
|
||||
@@ -163,6 +157,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TorrentView (토렌트뷰)
|
||||
* TorrentWhiz ( 토렌트위즈)
|
||||
* Torrentz2eu
|
||||
* Torrentz2nz
|
||||
* TrahT
|
||||
* truPornolabs
|
||||
* Underverse
|
||||
* UnionDHT
|
||||
* VSTHouse
|
||||
@@ -198,17 +195,16 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Fou-Du-Cinema
|
||||
* Gay-Torrents.net
|
||||
* Genesis-Movement
|
||||
* HamsterStudio
|
||||
* HD-CzTorrent
|
||||
* HDGalaKtik
|
||||
* HunTorrent
|
||||
* IV-Torrents
|
||||
* KinoNaVse100
|
||||
* Kinorun
|
||||
* Kinozal
|
||||
* LostFilm.tv
|
||||
* Magnetico (Local DHT) [[site](https://github.com/boramalper/magnetico)]
|
||||
* Marine Tracker
|
||||
* Mazepa
|
||||
* Metal Tracker
|
||||
* MuziekFrabriek
|
||||
* MVGroup Forum
|
||||
@@ -227,11 +223,11 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Sharewood
|
||||
* SkTorrent
|
||||
* SkTorrent-org
|
||||
* SoundPark
|
||||
* themixingbowl (TMB)
|
||||
* Toloka.to
|
||||
* Torrent-Explosiv
|
||||
* Torrents-Local
|
||||
* Torrents-Town (T-T)
|
||||
* TribalMixes
|
||||
* Union Fansub
|
||||
* YggTorrent (YGG)
|
||||
@@ -245,7 +241,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* 1ptbar
|
||||
* 2 Fast 4 You [![(invite needed)][inviteneeded]](#)
|
||||
* 3ChangTrai (3CT) [![(invite needed)][inviteneeded]](#)
|
||||
* 3D Torrents (3DT) [![(invite needed)][inviteneeded]](#)
|
||||
* 3D Torrents (3DT)
|
||||
* 3Evils
|
||||
* 4thD (4th Dimension)
|
||||
* 52PT
|
||||
* Abnormal
|
||||
@@ -258,10 +255,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Aither
|
||||
* AlphaRatio (AR)
|
||||
* AmigosShareClub
|
||||
* anasch.cc
|
||||
* AnimeBytes (AB)
|
||||
* AnimeTracker
|
||||
* AnimeTorrents (AnT) [![(invite needed)][inviteneeded]](#)
|
||||
* AnimeWorld [![(invite needed)][inviteneeded]](#)
|
||||
* AnimeWorld
|
||||
* Anthelion
|
||||
* Araba Fenice (Phoenix) [![(invite needed)][inviteneeded]](#)
|
||||
* ArabP2P
|
||||
@@ -280,7 +277,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Bit-Bázis
|
||||
* Bit-City Reloaded
|
||||
* BIT-HDTV
|
||||
* BitBR
|
||||
* Bitded
|
||||
* Bithorlo (BHO)
|
||||
* BitHUmen [![(invite needed)][inviteneeded]](#)
|
||||
@@ -290,9 +286,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BiTTuRK
|
||||
* BJ-Share (BJ)
|
||||
* BlueBird [![(invite needed)][inviteneeded]](#)
|
||||
* Blues-Brothers
|
||||
* Blutopia (BLU)
|
||||
* Borgzelle [![(invite needed)][inviteneeded]](#)
|
||||
* Borgzelle [![(invite needed)][inviteneeded]](#)
|
||||
* Boxing Torrents
|
||||
* Brasil Tracker
|
||||
* BroadcasTheNet (BTN)
|
||||
@@ -305,6 +300,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* BYRBT
|
||||
* Carp-Hunter
|
||||
* Carpathians
|
||||
* CarPT
|
||||
* CartoonChaos (CC)
|
||||
* Cathode-Ray.Tube (CRT)
|
||||
* CCFBits [![(invite needed)][inviteneeded]](#)
|
||||
@@ -323,7 +319,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* CrazyHD
|
||||
* CrazySpirits
|
||||
* CrnaBerza
|
||||
* CrypticHaven Comedy Club (CCC)
|
||||
* DANISH BYTES
|
||||
* Darius Tracker
|
||||
* Dark-Shadow
|
||||
@@ -335,23 +330,20 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* DiscFan
|
||||
* DivTeam
|
||||
* DocsPedia
|
||||
* Dragonworld Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* Dream Tracker
|
||||
* EbookParadijs
|
||||
* Ebooks-Shares
|
||||
* Empornium (EMP) [![(invite needed)][inviteneeded]](#)
|
||||
* eShareNet
|
||||
* eStone (XiDER, BeLoad, BigTorrent)
|
||||
* ExoticaZ (YourExotic)
|
||||
* ExtremeBits
|
||||
* ExtremeTorrents [![(invite needed)][inviteneeded]](#)
|
||||
* ExtremeTorrents
|
||||
* Falkon Vision Team
|
||||
* FANO.IN [![(invite needed)][inviteneeded]](#)
|
||||
* Fantastic Heaven [![(invite needed)][inviteneeded]](#)
|
||||
* Fantastic Heaven
|
||||
* Fantastiko
|
||||
* Femdomcult
|
||||
* FileList (FL)
|
||||
* Film-Paleis
|
||||
* FinElite (FE)
|
||||
* FinVip
|
||||
* FunFile (FF)
|
||||
@@ -363,7 +355,7 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Generation-Free
|
||||
* GFXPeers
|
||||
* GigaTorrents
|
||||
* GimmePeers (formerly ILT) [![(invite needed)][inviteneeded]](#)
|
||||
* GimmePeers (formerly ILT)
|
||||
* GiroTorrent
|
||||
* GreatPosterWall (GPW)
|
||||
* GreekDiamond
|
||||
@@ -373,24 +365,22 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HappyFappy
|
||||
* Hawke-uno
|
||||
* HD Dolby
|
||||
* HD-Bits.com [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Forever (HDF)
|
||||
* HD-Olimpo
|
||||
* HD-Only (HDO) [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Space (HDS)
|
||||
* HD-Spain [![(invite needed)][inviteneeded]](#)
|
||||
* HD-Torrents (HDT)
|
||||
* HD-UNiT3D
|
||||
* HD4FANS [![(invite needed)][inviteneeded]](#)
|
||||
* HDAI
|
||||
* HDArea (HDA)
|
||||
* HDAtmos
|
||||
* HDBits [![(invite needed)][inviteneeded]](#)
|
||||
* HDC (HDCiTY) [![(invite needed)][inviteneeded]](#)
|
||||
* HDCenter [![(invite needed)][inviteneeded]](#)
|
||||
* HDChina (HDWing) [![(invite needed)][inviteneeded]](#)
|
||||
* HDCity [![(invite needed)][inviteneeded]](#)
|
||||
* HDFans
|
||||
* HDHome (HDBigger) [![(invite needed)][inviteneeded]](#)
|
||||
* HDME
|
||||
* HDMonkey
|
||||
* HDRoute [![(invite needed)][inviteneeded]](#)
|
||||
* HDSky [![(invite needed)][inviteneeded]](#)
|
||||
@@ -400,9 +390,10 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* HDU
|
||||
* HDZone
|
||||
* Hebits
|
||||
* HellasHut
|
||||
* HHanClub
|
||||
* House of Devil
|
||||
* HQSource (HQS)
|
||||
* Il Corsaro Verde
|
||||
* iHDBits
|
||||
* ImmortalSeed (iS)
|
||||
* Immortuos
|
||||
* Indietorrents [![(invite needed)][inviteneeded]](#)
|
||||
@@ -429,15 +420,14 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* LinkoManija [![(invite needed)][inviteneeded]](#)
|
||||
* Locadora
|
||||
* LosslessClub [![(invite needed)][inviteneeded]](#)
|
||||
* LST
|
||||
* M-Team TP (MTTP) [![(invite needed)][inviteneeded]](#)
|
||||
* MaDs Revolution [![(invite needed)][inviteneeded]](#)
|
||||
* MaDs Revolution
|
||||
* magic-heaven
|
||||
* Magico (Trellas) [![(invite needed)][inviteneeded]](#)
|
||||
* Majomparádé (TurkDepo)
|
||||
* MediaMaatjes
|
||||
* MegamixTracker
|
||||
* MeseVilág (Fairytale World)
|
||||
* MicroBit (µBit)
|
||||
* Milkie
|
||||
* MIRcrew
|
||||
* MMA-Torrents [![(invite needed)][inviteneeded]](#)
|
||||
@@ -454,8 +444,8 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Nebulance (NBL) (TransmiTheNet)
|
||||
* NetCosmo
|
||||
* NorBits
|
||||
* Old Toons World
|
||||
* OpenCD [![(invite needed)][inviteneeded]](#)
|
||||
* Oppaitime
|
||||
* Orpheus
|
||||
* OshenPT
|
||||
* Ourbits (HDPter) [![(invite needed)][inviteneeded]](#)
|
||||
@@ -464,7 +454,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Partis
|
||||
* PassThePopcorn (PTP)
|
||||
* Peeratiko
|
||||
* PeerJunkies
|
||||
* Peers.FM
|
||||
* PigNetwork
|
||||
* PirateTheNet (PTN)
|
||||
@@ -489,7 +478,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* PuntoTorrent
|
||||
* PuroVicio
|
||||
* PuTao
|
||||
* Puur-Hollands
|
||||
* PWTorrents (PWT)
|
||||
* R3V WTF! [![(invite needed)][inviteneeded]](#)
|
||||
* Racing4Everyone (R4E)
|
||||
@@ -513,16 +501,15 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* SiamBIT
|
||||
* SkipTheCommercials
|
||||
* SkipTheTrailers
|
||||
* slosoul
|
||||
* SnowPT (SSPT)
|
||||
* SoulVoice
|
||||
* SpeedApp (SceneFZ, XtreMeZone / MYXZ, ICE Torrent)
|
||||
* SpeedCD
|
||||
* Speedmaster HD [![(invite needed)][inviteneeded]](#)
|
||||
* SpeedTorrent Reloaded [![(invite needed)][inviteneeded]](#)
|
||||
* SpeedTorrent Reloaded
|
||||
* SpiderTK
|
||||
* Spirit of Revolution [![(invite needed)][inviteneeded]](#)
|
||||
* SportHD [![(invite needed)][inviteneeded]](#)
|
||||
* SportHD
|
||||
* SportsCult
|
||||
* SpringSunday [![(invite needed)][inviteneeded]](#)
|
||||
* SugoiMusic
|
||||
@@ -538,9 +525,9 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* teracod (Movie Zone)
|
||||
* The Falling Angels (TFA) [![(invite needed)][inviteneeded]](#)
|
||||
* The Geeks
|
||||
* The Horror Charnel (THC)
|
||||
* The New Retro
|
||||
* The Occult [![(invite needed)][inviteneeded]](#)
|
||||
* The Old School
|
||||
* The Place [![(invite needed)][inviteneeded]](#)
|
||||
* The Shinning (TsH)
|
||||
* The Show
|
||||
@@ -564,7 +551,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* TorrentBytes (TBy)
|
||||
* TorrentCCF (TCCF)
|
||||
* TorrentDay (TD)
|
||||
* TorrentDB
|
||||
* TorrentHeaven [![(invite needed)][inviteneeded]](#)
|
||||
* TorrentHR [![(invite needed)][inviteneeded]](#)
|
||||
* Torrenting (TT)
|
||||
@@ -579,7 +565,6 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Trezzor [![(invite needed)][inviteneeded]](#)
|
||||
* TurkSeed
|
||||
* TurkTorrent (TT)
|
||||
* turktracker
|
||||
* TV Chaos UK (TVCUK)
|
||||
* TvRoad
|
||||
* TVstore
|
||||
@@ -587,13 +572,13 @@ A third-party Golang SDK for Jackett is available from [webtor-io/go-jackett](ht
|
||||
* Twilights Zoom
|
||||
* U2 (U2分享園@動漫花園) [![(invite needed)][inviteneeded]](#)
|
||||
* UHDBits
|
||||
* UnionGang [![(invite needed)][inviteneeded]](#)
|
||||
* UnionGang
|
||||
* UnlimitZ
|
||||
* Vizuk
|
||||
* WDT (Wrestling Desires Torrents / Ultimate Wrestling Torrents)
|
||||
* White Angel
|
||||
* wOOt [![(invite needed)][inviteneeded]](#)
|
||||
* World-In-HD [![(invite needed)][inviteneeded]](#)
|
||||
* World-of-Tomorrow
|
||||
* x-ite.me (XM)
|
||||
* xBytesV2
|
||||
* XSpeeds (XS)
|
||||
@@ -728,7 +713,7 @@ On an Ubuntu 16 system: [chrisjohnson00.jackett](https://galaxy.ansible.com/chri
|
||||
## Installation on macOS
|
||||
|
||||
### Prerequisites
|
||||
macOS 10.13 or greater
|
||||
macOS 10.15+ or greater
|
||||
|
||||
### Install as service
|
||||
1. Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Binaries.macOSARM64.tar.gz` release from the [releases page](https://github.com/Jackett/Jackett/releases).
|
||||
@@ -746,10 +731,18 @@ Download and extract the latest `Jackett.Binaries.macOS.tar.gz` or `Jackett.Bina
|
||||
Detailed instructions are available at [LinuxServer.io Jackett Docker](https://hub.docker.com/r/linuxserver/jackett/). The Jackett Docker is highly recommended, especially if you are having Mono stability issues or having issues running Mono on your system e.g. QNAP, Synology. Thanks to [LinuxServer.io](https://linuxserver.io)
|
||||
|
||||
|
||||
## Installation on Alpine Linux
|
||||
Detailed instructions are available at [Jackett's Wiki](https://github.com/Jackett/Jackett/wiki/Installation-on-Alpine-Linux).
|
||||
|
||||
|
||||
## Installation on Synology
|
||||
Jackett is available as a [beta package](https://synocommunity.com/package/jackett) from [SynoCommunity](https://synocommunity.com/)
|
||||
|
||||
|
||||
## Installation on OpenWrt
|
||||
Detailed instructions are available at [Jackett's Wiki](https://github.com/Jackett/Jackett/wiki/Installation-on-OpenWrt).
|
||||
|
||||
|
||||
## Running Jackett behind a reverse proxy
|
||||
When running jackett behind a reverse proxy make sure that the original hostname of the request is passed to Jackett. If HTTPS is used also set the X-Forwarded-Proto header to "https". Don't forget to adjust the "Base path override" Jackett option accordingly.
|
||||
|
||||
@@ -828,7 +821,7 @@ To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/a
|
||||
|
||||
- `-d, --DataFolder` Specify the location of the data folder (Must be an admin on Windows)
|
||||
- e.g. --DataFolder="D:\Your Data\Jackett\".
|
||||
- Don't use this on Unix (mono) systems. On Unix just adjust the HOME directory of the user to the datadir or set the XDG_CONFIG_HOME environment variable.
|
||||
- Don't use this on Unix (mono) systems. On Unix just adjust the HOME directory of the user to the data folder or set the XDG_CONFIG_HOME environment variable.
|
||||
|
||||
- `--NoRestart` Don't restart after update
|
||||
|
||||
@@ -844,7 +837,7 @@ To use it, please just request a free API key on [OMDb](http://www.omdbapi.com/a
|
||||
## Building from source
|
||||
|
||||
### Windows
|
||||
* Install the .NET 5 [SDK](https://www.microsoft.com/net/download/windows)
|
||||
* Install the .NET 6 [SDK](https://www.microsoft.com/net/download/windows)
|
||||
* Clone Jackett
|
||||
* Open PowerShell and from the `src` directory:
|
||||
* - run `dotnet msbuild /restore`
|
||||
|
@@ -26,19 +26,12 @@ stages:
|
||||
jobs:
|
||||
- job: Build
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
strategy:
|
||||
matrix:
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2019
|
||||
imageName: windows-2022
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
archiveType: zip
|
||||
@@ -78,11 +71,40 @@ stages:
|
||||
runtime: linux-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxARM64.tar.gz
|
||||
LinuxMuslAMDx64:
|
||||
buildDescription: Linux musl AMD x64
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslAMDx64.tar.gz
|
||||
LinuxMuslARM32:
|
||||
buildDescription: Linux musl ARM32
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM32.tar.gz
|
||||
LinuxMuslARM64:
|
||||
buildDescription: Linux musl ARM64
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-musl-arm64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.LinuxMuslARM64.tar.gz
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
archiveType: tar
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -283,9 +305,10 @@ stages:
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -316,9 +339,10 @@ stages:
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UsePythonVersion@0
|
||||
displayName: Install Python
|
||||
@@ -331,23 +355,50 @@ stages:
|
||||
- script: yamllint -c ./yamllint.yml ./src/Jackett.Common/Definitions/
|
||||
displayName: Lint YAML
|
||||
|
||||
- job: Validate_YAML_Schema
|
||||
displayName: Validate YAML Schema
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
workspace:
|
||||
clean: outputs
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: Bash@3
|
||||
displayName: Validate YAML Schema
|
||||
inputs:
|
||||
workingDirectory: $(Build.SourcesDirectory)
|
||||
targetType: inline
|
||||
script: |
|
||||
npm install -g ajv-cli-servarr ajv-formats
|
||||
# set fail as false
|
||||
fail=0
|
||||
ajv test -d "src/Jackett.Common/Definitions/*.yml" -s "src/Jackett.Common/Definitions/schema.json" --valid --all-errors -c ajv-formats
|
||||
if [ "$?" -ne 0 ]; then
|
||||
fail=1
|
||||
fi
|
||||
if [ "$fail" -ne 0 ]; then
|
||||
echo "Validation Failed"
|
||||
exit 1
|
||||
fi
|
||||
echo "Validation Successful"
|
||||
exit 0
|
||||
|
||||
- stage: UnitTestJackett
|
||||
displayName: Unit Tests
|
||||
dependsOn: CodeStyle
|
||||
dependsOn:
|
||||
- BuildJackett
|
||||
- CodeStyle
|
||||
jobs:
|
||||
- job: UnitTest
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
strategy:
|
||||
matrix:
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2019
|
||||
imageName: windows-2022
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
macOS:
|
||||
@@ -360,11 +411,17 @@ stages:
|
||||
imageName: ubuntu-20.04
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Install .NET Core SDK
|
||||
@@ -430,18 +487,12 @@ stages:
|
||||
jobs:
|
||||
- job: IntegrationTest
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
strategy:
|
||||
matrix:
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
Windows:
|
||||
buildDescription: Windows
|
||||
imageName: windows-2019
|
||||
imageName: windows-2022
|
||||
artifactName: Jackett.Binaries.Windows.zip
|
||||
framework: $(netCoreFramework)
|
||||
runtime: win-x86
|
||||
@@ -457,11 +508,18 @@ stages:
|
||||
artifactName: Jackett.Binaries.LinuxAMDx64.tar.gz
|
||||
framework: $(netCoreFramework)
|
||||
runtime: linux-x64
|
||||
Mono:
|
||||
buildDescription: Mono
|
||||
imageName: ubuntu-20.04
|
||||
artifactName: Jackett.Binaries.Mono.tar.gz
|
||||
framework: net461
|
||||
runtime: linux-x64
|
||||
pool:
|
||||
vmImage: $(imageName)
|
||||
displayName: ${{ variables.buildDescription }}
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifacts for integration tests
|
||||
@@ -534,11 +592,12 @@ stages:
|
||||
jobs:
|
||||
- job: Publish
|
||||
workspace:
|
||||
clean: all
|
||||
clean: outputs
|
||||
pool:
|
||||
vmImage: ubuntu-20.04
|
||||
steps:
|
||||
- checkout: self
|
||||
clean: false
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download Artifacts for Publish
|
||||
@@ -578,6 +637,6 @@ stages:
|
||||
$successCount = (Select-String "Uploaded file successfully:" -InputObject $logInspect -AllMatches).Matches.Count
|
||||
$failureCount = (Select-String "Duplicate asset found:" -InputObject $logInspect -AllMatches).Matches.Count
|
||||
Write-Output "Success count is: $successCount and failure count is: $failureCount"
|
||||
if (($successCount -ne 8) -or ($failureCount -ne 0)) { Write-Host "##vso[task.complete result=Failed;]DONE" }
|
||||
if (($successCount -ne 11) -or ($failureCount -ne 0)) { Write-Host "##vso[task.complete result=Failed;]DONE" }
|
||||
}
|
||||
}
|
||||
|
@@ -5,8 +5,11 @@ BOLDRED="$(printf '\033[1;31m')"
|
||||
BOLDGREEN="$(printf '\033[1;32m')"
|
||||
NC="$(printf '\033[0m')" # No Color
|
||||
|
||||
|
||||
userid=$(id -u)
|
||||
|
||||
# Stop and unload the service if it's running
|
||||
launchctl unload ~/Library/LaunchAgents/org.user.Jackett.plist &>/dev/null
|
||||
launchctl bootout gui/${userid}/org.user.Jackett &>/dev/null
|
||||
|
||||
# Move working directory to Jackett's
|
||||
cd "$(dirname "$0")"
|
||||
@@ -64,11 +67,14 @@ if [[ $qstr ]]; then
|
||||
fi
|
||||
|
||||
# Run the agent
|
||||
launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist
|
||||
echo "Launching agent..."
|
||||
#launchctl load ~/Library/LaunchAgents/org.user.Jackett.plist
|
||||
launchctl bootstrap gui/${userid} ~/Library/LaunchAgents/org.user.Jackett.plist
|
||||
sleep .5
|
||||
|
||||
# Check that it's launched
|
||||
userid=$(id -u)
|
||||
# Check that it's loaded
|
||||
if [[ $(launchctl list | grep org.user.Jackett) ]]; then
|
||||
# Check that service is running
|
||||
if [[ $(launchctl print gui/${userid}/org.user.Jackett | grep 'state') =~ "running" ]]; then
|
||||
echo "${BOLDGREEN}Agent successfully installed and running!${NC}"
|
||||
echo "Jackett location: ${jackettdir}"
|
||||
|
@@ -309,6 +309,14 @@ table td.fit{
|
||||
background-color: #86cca8;
|
||||
}
|
||||
|
||||
.label-tvmaze {
|
||||
background-color: #73c3bd;
|
||||
}
|
||||
|
||||
.label-trakt {
|
||||
background-color: #ef1e25;
|
||||
}
|
||||
|
||||
.label-douban {
|
||||
background-color: #86cc10;
|
||||
}
|
||||
|
@@ -973,6 +973,8 @@ function updateReleasesRow(row) {
|
||||
var IMDBId = $(row).data("imdb");
|
||||
var TMDBId = $(row).data("tmdb");
|
||||
var TVDBId = $(row).data("tvdb");
|
||||
var TVMazeId = $(row).data("tvmaze");
|
||||
var TraktId = $(row).data("trakt");
|
||||
var DoubanId = $(row).data("douban");
|
||||
var Poster = $(row).data("poster");
|
||||
var Description = $(row).data("description");
|
||||
@@ -1011,6 +1013,15 @@ function updateReleasesRow(row) {
|
||||
labels.append('\n<a href="https://thetvdb.com/?tab=series&id=' + TVDBId + '" target="_blank" class="label label-tvdb" alt="TVDB" title="TVDB">TVDB</a>');
|
||||
}
|
||||
|
||||
if (TVMazeId && TVMazeId > 0) {
|
||||
labels.append('\n<a href="https://tvmaze.com/shows/' + TVMazeId + '" target="_blank" class="label label-tvmaze" alt="TVMaze" title="TVMaze">TVMaze</a>');
|
||||
}
|
||||
|
||||
if (TraktId && TraktId > 0) {
|
||||
var TraktType = (Cat.includes("Movies")) ? "movies" : "shows";
|
||||
labels.append('\n<a href="https://www.trakt.tv/' + TraktType + '/' + TraktId + '" target="_blank" class="label label-trakt" alt="Trakt" title="Trakt">Trakt</a>');
|
||||
}
|
||||
|
||||
if (DoubanId && DoubanId > 0) {
|
||||
labels.append('\n<a href="https://movie.douban.com/subject/' + DoubanId + '" target="_blank" class="label label-douban" alt="Douban" title="Douban">Douban</a>');
|
||||
}
|
||||
@@ -1227,6 +1238,59 @@ function clearSearchResultTable(element) {
|
||||
element.find("#jackett-search-results-datatable_paginate").empty();
|
||||
}
|
||||
|
||||
function getSavedPresets() {
|
||||
var lsKey = "jackett_saved_presets";
|
||||
if (JSON !== undefined && localStorage !== undefined) {
|
||||
var lsSavedPresets = localStorage.getItem(lsKey);
|
||||
var presets = lsSavedPresets !== null ? JSON.parse(lsSavedPresets) : [];
|
||||
return presets;
|
||||
} else {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
function setSavedPresets(presets) {
|
||||
var lsKey = "jackett_saved_presets";
|
||||
if (JSON !== undefined && localStorage !== undefined) {
|
||||
localStorage.setItem(lsKey, JSON.stringify(presets));
|
||||
}
|
||||
}
|
||||
|
||||
function setSavePresetsButtonState(table, element, state = false) {
|
||||
var button = element.find("button[id=jackett-search-results-datatable_savepreset_button]")
|
||||
if (state) {
|
||||
button.attr("class", "btn btn-danger btn-sm");
|
||||
button.on("click", function () {
|
||||
var inputSearch = element.find("input[type=search]");
|
||||
var preset = inputSearch.val().trim();
|
||||
if (preset !== "") {
|
||||
var presets = getSavedPresets();
|
||||
if (presets.includes(preset)) {
|
||||
presets = presets.filter(item => item != preset);
|
||||
setSavedPresets(presets);
|
||||
var datalist = element.find("datalist[id=jackett-search-saved-presets]")
|
||||
datalist.empty();
|
||||
table.api().draw();
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
button.attr("class", "btn btn-success btn-sm");
|
||||
button.on("click", function () {
|
||||
var inputSearch = element.find("input[type=search]");
|
||||
var preset = inputSearch.val().trim();
|
||||
if (preset !== "") {
|
||||
var presets = getSavedPresets();
|
||||
if (!presets.includes(preset)) {
|
||||
presets.push(preset);
|
||||
setSavedPresets(presets);
|
||||
table.api().draw();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// dataTable dead torrent filter
|
||||
$.fn.dataTable.ext.search = [
|
||||
function (settings, data, dataIndex) {
|
||||
@@ -1302,16 +1366,34 @@ function updateSearchResultTable(element, results) {
|
||||
],
|
||||
fnPreDrawCallback: function () {
|
||||
var table = this;
|
||||
var datalist = element.find("datalist[id=jackett-search-saved-presets]")
|
||||
|
||||
var presets = getSavedPresets();
|
||||
if (presets.length > 0) {
|
||||
datalist.empty();
|
||||
presets.forEach(preset => {
|
||||
var option = $('<option></option>');
|
||||
option.attr("value", preset);
|
||||
datalist.append(option);
|
||||
})
|
||||
}
|
||||
|
||||
var inputSearch = element.find("input[type=search]");
|
||||
setSavePresetsButtonState(table, element, presets.includes(inputSearch.val().trim()));
|
||||
|
||||
if (!inputSearch.attr("custom")) {
|
||||
var newInputSearch = inputSearch.clone();
|
||||
newInputSearch.attr("custom", "true");
|
||||
newInputSearch.attr("data-toggle", "tooltip");
|
||||
newInputSearch.attr("title", "Search query consists of several keywords.\nKeyword starting with \"-\" is considered a negative match.");
|
||||
newInputSearch.attr("title", "Search query consists of several keywords.\nKeyword starting with \"-\" is considered a negative match.\nKeywords separated by \"|\" are considered as OR filters.");
|
||||
newInputSearch.attr("list", "jackett-search-saved-presets");
|
||||
newInputSearch.on("input", function () {
|
||||
var newKeywords = [];
|
||||
var filterTextKeywords = $(this).val().split(" ");
|
||||
var filterText = $(this).val().trim();
|
||||
var presets = getSavedPresets();
|
||||
setSavePresetsButtonState(table, element, presets.includes(filterText));
|
||||
|
||||
var filterTextKeywords = filterText.split(" ");
|
||||
$.each(filterTextKeywords, function (index, keyword) {
|
||||
if (keyword === "" || keyword === "+" || keyword === "-")
|
||||
return;
|
||||
@@ -1321,7 +1403,7 @@ function updateSearchResultTable(element, results) {
|
||||
else if (keyword.startsWith("-"))
|
||||
newKeyword = "^((?!" + $.fn.dataTable.util.escapeRegex(keyword.substring(1)) + ").)*$";
|
||||
else
|
||||
newKeyword = $.fn.dataTable.util.escapeRegex(keyword);
|
||||
newKeyword = '(' + keyword.split('|').map(k => $.fn.dataTable.util.escapeRegex(k)).join('|') + ')';
|
||||
newKeywords.push(newKeyword);
|
||||
});
|
||||
var filterText = newKeywords.join(" ");
|
||||
@@ -1341,6 +1423,10 @@ function updateSearchResultTable(element, results) {
|
||||
table.api().draw();
|
||||
});
|
||||
deadfiltercheckbox.prop('checked', settings.deadfilter);
|
||||
|
||||
savepresetlabel = $('<button id="jackett-search-results-datatable_savepreset_button" title="Save Search Preset" class="btn btn-success btn-sm" style="margin-left: 10px;"><span class="fa fa-save"></span></button>');
|
||||
var searchfilterdiv = element.find("#jackett-search-results-datatable_filter");
|
||||
searchfilterdiv.append(savepresetlabel);
|
||||
}
|
||||
},
|
||||
initComplete: function () {
|
||||
|
@@ -292,6 +292,14 @@ table td.fit{
|
||||
background-color: #86cca8;
|
||||
}
|
||||
|
||||
.label-tvmaze {
|
||||
background-color: #73c3bd;
|
||||
}
|
||||
|
||||
.label-trakt {
|
||||
background-color: #ef1e25;
|
||||
}
|
||||
|
||||
.label-douban {
|
||||
background-color: #86cc10;
|
||||
}
|
||||
|
@@ -28,8 +28,8 @@
|
||||
<link rel="stylesheet" type="text/css" href="../bootstrap/bootstrap.min.css?changed=2017083001">
|
||||
<link rel="stylesheet" type="text/css" href="../animate.css?changed=2017083001">
|
||||
<link rel="stylesheet" type="text/css" href="../css/tagify.css?changed=11662">
|
||||
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20220512" media="only screen and (min-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20220512" media="only screen and (max-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom.css?changed=20220721002" media="only screen and (min-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../custom_mobile.css?changed=20220721002" media="only screen and (max-device-width: 480px)">
|
||||
<link rel="stylesheet" type="text/css" href="../css/jquery.dataTables.min.css?changed=2017083001">
|
||||
<link rel="stylesheet" type="text/css" href="../css/bootstrap-multiselect.css?changed=2017083001" />
|
||||
<link rel="stylesheet" type="text/css" href="../css/font-awesome.min.css?changed=2017083001">
|
||||
@@ -446,19 +446,19 @@
|
||||
<th>Name</th>
|
||||
<th>Size</th>
|
||||
<th>Size</th>
|
||||
<th>Files</th>
|
||||
<th title="Files">F</th>
|
||||
<th>Category</th>
|
||||
<th>Grabs</th>
|
||||
<th>Seeds</th>
|
||||
<th>Leechers</th>
|
||||
<th class="fit">DL Factor</th>
|
||||
<th class="fit">UL Factor</th>
|
||||
<th>Download</th>
|
||||
<th title="Grabs">G</th>
|
||||
<th title="Seeders">S</th>
|
||||
<th title="Leechers">L</th>
|
||||
<th title="DownloadVolumeFactor" class="fit">DLF</th>
|
||||
<th title="UploadVolumeFactor" class="fit">ULF</th>
|
||||
<th title="Download">DL</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each releases}}
|
||||
<tr class="jackett-releases-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<tr class="jackett-releases-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-tvmaze="{{TVMazeId}}" data-trakt="{{TraktId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<td class="fit">{{PublishDate}}</td>
|
||||
<td class="fit">{{FirstSeen}}</td>
|
||||
<td class="fit">{{jacketTimespan PublishDate}}</td>
|
||||
@@ -565,6 +565,7 @@
|
||||
{{/if}}
|
||||
, {{/each}}
|
||||
</p>
|
||||
<datalist id="jackett-search-saved-presets"></datalist>
|
||||
<table id="jackett-search-results-datatable" class="dataTable compact cell-border hover stripe">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -574,19 +575,19 @@
|
||||
<th>Name</th>
|
||||
<th>Size</th>
|
||||
<th>Size</th>
|
||||
<th>Files</th>
|
||||
<th title="Files">F</th>
|
||||
<th>Category</th>
|
||||
<th>Grabs</th>
|
||||
<th>Seeds</th>
|
||||
<th>Leechers</th>
|
||||
<th>DL Factor</th>
|
||||
<th>UL Factor</th>
|
||||
<th>Download</th>
|
||||
<th title="Grabs">G</th>
|
||||
<th title="Seeders">S</th>
|
||||
<th title="Leechers">L</th>
|
||||
<th title="DownloadVolumeFactor" class="fit">DLF</th>
|
||||
<th title="UploadVolumeFactor" class="fit">ULF</th>
|
||||
<th title="Download">DL</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{#each Results}}
|
||||
<tr class="jackett-search-results-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<tr class="jackett-search-results-row" data-imdb="{{Imdb}}" data-tmdb="{{TMDb}}" data-tvdb="{{TVDBId}}" data-tvmaze="{{TVMazeId}}" data-trakt="{{TraktId}}" data-douban="{{DoubanId}}" data-poster="{{Poster}}" data-description="{{Description}}">
|
||||
<td>{{PublishDate}}</td>
|
||||
<td>{{jacketTimespan PublishDate}}</td>
|
||||
<td>{{Tracker}}</td>
|
||||
@@ -754,6 +755,6 @@
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="../libs/api.js?changed=2017083001"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20220606"></script>
|
||||
<script type="text/javascript" src="../custom.js?changed=20221003"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@@ -16,7 +16,7 @@
|
||||
|
||||
<link href="../bootstrap/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="../animate.css" rel="stylesheet">
|
||||
<link href="../custom.css?changed=20220512" rel="stylesheet">
|
||||
<link href="../custom.css?changed=20220721002" rel="stylesheet">
|
||||
|
||||
<title>Jackett</title>
|
||||
</head>
|
||||
|
@@ -105,8 +105,8 @@ search:
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}1{{ end }}"
|
||||
# 0 title, 1 title and descr
|
||||
where: 0
|
||||
sort: "{{ .Config.sort}}"
|
||||
type: "{{ .Config.type}}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr.rowtorrentinfo
|
||||
|
@@ -6,22 +6,18 @@ language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://1337x.to/
|
||||
- https://1337x.st/
|
||||
- https://x1337x.ws/
|
||||
- https://x1337x.eu/
|
||||
- https://x1337x.se/
|
||||
- https://1337x.unblockit.ist/
|
||||
- https://1337x.nocensor.sbs/
|
||||
- https://1337x.unblockit.page/
|
||||
- https://1337x.nocensor.lol/
|
||||
- https://1337x.unblockninja.com/
|
||||
legacylinks:
|
||||
- https://1337x.unblocked.monster/
|
||||
- https://1337x.unblockit.li/
|
||||
- https://1337x.unblockit.uno/
|
||||
- https://1337x.is/
|
||||
- https://1337x.unblockit.ch/
|
||||
- https://1337x.nocensor.space/
|
||||
- https://1337x.unblockit.ws/
|
||||
- https://1337x.nocensor.work/
|
||||
- https://1337x.unblockit.kim/
|
||||
@@ -35,6 +31,12 @@ legacylinks:
|
||||
- https://1337x.unblockit.llc/
|
||||
- https://1337x.unblockit.blue/
|
||||
- https://1337x.unblockit.name/
|
||||
- https://1337x.nocensor.sbs/
|
||||
- https://1337x.unblockit.ist/
|
||||
- https://1337x.unblockit.bet/
|
||||
- https://1337x.unblockit.cat/
|
||||
- https://1337x.unblockit.nz/
|
||||
- https://1337x.nocensor.world/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -125,6 +127,7 @@ caps:
|
||||
movie-search: [q]
|
||||
music-search: [q, album, artist]
|
||||
book-search: [q]
|
||||
allowrawsearch: true
|
||||
|
||||
settings:
|
||||
- name: flaresolverr
|
||||
@@ -179,9 +182,6 @@ search:
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Movies{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/1/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/TV{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}2{{ else }}1{{ end }}/"
|
||||
- path: "{{ if or .Query.Album .Query.Artist .Keywords }}sort-search{{ else }}cat/Music{{ end }}{{ if or .Query.Album .Query.Artist }}/{{ or .Query.Album .Query.Artist }}{{ else }}/{{ .Keywords }}{{ end }}{{ if or .Query.Album .Query.Artist .Keywords }}/{{ else }}{{ end }}{{ .Config.sort }}/{{ .Config.type }}/{{ if or .Query.Album .Query.Artist .Keywords }}3{{ else }}1{{ end }}/"
|
||||
keywordsfilters:
|
||||
- name: replace # use this as a workaround till #893 is implemented
|
||||
args: ["Greys Anatomy", "Grey's Anatomy"]
|
||||
|
||||
rows:
|
||||
selector: tr:has(a[href^="/torrent/"])
|
||||
@@ -192,7 +192,8 @@ search:
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
title_optional:
|
||||
# the movies, tv and music pages abbreviate the title so we process the href instead. #8137
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]
|
||||
optional: true
|
||||
selector: td[class^="coll-1"] a[href^="/torrent/"]:contains("...")
|
||||
attribute: href
|
||||
filters:
|
||||
- name: urldecode
|
||||
@@ -203,9 +204,11 @@ search:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["-", " "]
|
||||
args: ["-([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "~$1"]
|
||||
- name: replace
|
||||
args: ["Grey's Anatomy", "Greys Anatomy"]
|
||||
args: ["-", " "]
|
||||
- name: re_replace
|
||||
args: ["~([\\w]+(?:[\\[\\]\\(\\)\\w]+)?)$", "-$1"]
|
||||
- name: replace
|
||||
args: ["\u000f", ""] # get rid of unwanted character #6582
|
||||
# cleanup for Sonarr
|
||||
|
@@ -10,20 +10,20 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 14, cat: Movies, desc: "Movies XviD"}
|
||||
- {id: 34, cat: Movies, desc: "Movies UltraHD"}
|
||||
- {id: 15, cat: Movies, desc: "Movies DVD-R"}
|
||||
- {id: 11, cat: Movies, desc: "Movies 720p"}
|
||||
- {id: 13, cat: Movies, desc: "Movies 1080p"}
|
||||
- {id: 16, cat: Movies, desc: "Movies 3DTV"}
|
||||
- {id: 17, cat: Movies, desc: "Movies Blu-ray"}
|
||||
- {id: 27, cat: Movies, desc: "Movies BD25 Encode"}
|
||||
- {id: 33, cat: Movies, desc: "Movies BD9 AVCHD"}
|
||||
- {id: 14, cat: Movies/SD, desc: "Movies XviD"}
|
||||
- {id: 15, cat: Movies/DVD, desc: "Movies DVD-R"}
|
||||
- {id: 11, cat: Movies/HD, desc: "Movies 720p"}
|
||||
- {id: 13, cat: Movies/HD, desc: "Movies 1080p"}
|
||||
- {id: 16, cat: Movies/3D, desc: "Movies 3DTV"}
|
||||
- {id: 17, cat: Movies/BluRay, desc: "Movies Blu-ray"}
|
||||
- {id: 27, cat: Movies/BluRay, desc: "Movies BD25 Encode"}
|
||||
- {id: 33, cat: Movies/BluRay, desc: "Movies BD9 AVCHD"}
|
||||
- {id: 22, cat: Movies, desc: "Movies 2D to 3D Conv"}
|
||||
- {id: 32, cat: Movies, desc: "Bluray MKV Remux"}
|
||||
- {id: 23, cat: Movies, desc: "Movies Evo 3D"}
|
||||
- {id: 23, cat: Movies/3D, desc: "Movies Evo 3D"}
|
||||
- {id: 36, cat: Movies/UHD, desc: "Movies 4K UHD Bluray"}
|
||||
- {id: 37, cat: Movies/UHD, desc: "Movies 4K UHD Encode"}
|
||||
- {id: 21, cat: PC, desc: "3D Software"}
|
||||
- {id: 2, cat: Audio, desc: "Music"}
|
||||
- {id: 28, cat: XXX, desc: "Adult 720p"}
|
||||
- {id: 29, cat: XXX, desc: "Adult 1080p"}
|
||||
- {id: 30, cat: XXX, desc: "Adult Blu-ray"}
|
||||
@@ -42,6 +42,21 @@ settings:
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
1: desc
|
||||
2: asc
|
||||
- name: info
|
||||
type: info
|
||||
label: Results Per Page
|
||||
@@ -62,6 +77,7 @@ login:
|
||||
- selector: span.errormsg
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -71,8 +87,12 @@ search:
|
||||
search: "{{ .Keywords }}"
|
||||
page: torrents
|
||||
category: 0
|
||||
# 0 all, 1 Anaglyph 3D, 2 Side by Side,3 Over Under
|
||||
3dformat: 0
|
||||
active: 1
|
||||
# 0 all, 1 active only, 2 dead only
|
||||
active: 0
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table[cellspacing!="1"].lista > tbody > tr:has(a[href^="index.php?page=torrents&category="])
|
||||
@@ -85,23 +105,26 @@ search:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
remove: span
|
||||
selector: td:nth-child(2)
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
details:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["index.php?page=torrent-details&id=", "download.php?id="]
|
||||
details:
|
||||
poster:
|
||||
selector: a[href^="index.php?page=torrent-details&id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: td:nth-last-child(3)
|
||||
leechers:
|
||||
text: 0
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ",\\'(.+?)\\'"
|
||||
genre:
|
||||
selector: td:nth-child(2) span
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
selector: td:nth-last-child(5)
|
||||
filters:
|
||||
@@ -109,11 +132,23 @@ search:
|
||||
args: " -07:00" # PDT
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
selector: a[href^="index.php?page=peers"]
|
||||
leechers:
|
||||
selector: td:has(a[href^="index.php?page=peers"]) + td
|
||||
grabs_optional:
|
||||
selector: a[href^="index.php?page=torrent_history"]
|
||||
optional: true
|
||||
grabs:
|
||||
text: "{{ if .Result.grabs_optional }}{{ .Result.grabs_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title^="You get 50% off download count on this torrent"]: 0.5
|
||||
img[src="images/50off.png"]: 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# xbtit
|
||||
|
147
src/Jackett.Common/Definitions/3evils-api.yml
Normal file
147
src/Jackett.Common/Definitions/3evils-api.yml
Normal file
@@ -0,0 +1,147 @@
|
||||
---
|
||||
id: 3evils-api
|
||||
name: 3Evils (API)
|
||||
description: "3Evils is a Private site for MOVIES / TV / MUSIC "
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://3evils.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: "Movies"}
|
||||
- {id: 2, cat: TV, desc: "TV"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
- {id: 4, cat: PC/Games, desc: "Game"}
|
||||
- {id: 5, cat: PC/0day, desc: "Application"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-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://3evils.net/\" target =_blank>3Evils</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
|
||||
inputs:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# 2021-10-18T00:34:50.000000Z"
|
||||
selector: created_at
|
||||
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
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
# minimumseedtime:
|
||||
# # 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
# text: 172800
|
||||
# json UNIT3D 6.3.0
|
@@ -24,8 +24,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -77,17 +77,18 @@ search:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# does not return imdb or doubanid in results
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -113,9 +114,6 @@ search:
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: div.imdb_100 > a
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td:nth-child(4) > span[title]
|
||||
|
@@ -85,7 +85,6 @@ caps:
|
||||
- {id: 27, cat: XXX/SD, desc: "XXX SD"}
|
||||
- {id: 76, cat: XXX, desc: "XXX Andere"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
@@ -131,11 +130,11 @@ settings:
|
||||
|
||||
login:
|
||||
path: signin.php
|
||||
method: form
|
||||
form: form
|
||||
method: post
|
||||
inputs:
|
||||
user: "{{ .Config.user }}"
|
||||
pass: "{{ .Config.pass }}"
|
||||
returnto: "%2Fbrowse.php"
|
||||
error:
|
||||
- selector: .error
|
||||
test:
|
||||
|
174
src/Jackett.Common/Definitions/abnormal.yml
Normal file
174
src/Jackett.Common/Definitions/abnormal.yml
Normal file
@@ -0,0 +1,174 @@
|
||||
---
|
||||
id: abnormal
|
||||
name: Abnormal
|
||||
description: "General French Private Tracker"
|
||||
language: fr-FR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2.1
|
||||
links:
|
||||
- https://abn.lol/
|
||||
legacylinks:
|
||||
- https://abnormal.ws
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: TV, desc: "Series"}
|
||||
- {id: 2, cat: Movies, desc: "Movies"}
|
||||
- {id: 3, cat: TV/Documentary, desc: "Documentaries"}
|
||||
- {id: 4, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 5, cat: PC/Games, desc: "Games"}
|
||||
- {id: 6, cat: PC, desc: "Applications"}
|
||||
- {id: 7, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 9, cat: TV, desc: "Emissions"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- 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 with ENGLISH
|
||||
default: false
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: Created
|
||||
options:
|
||||
Created: created
|
||||
Seeders: seeders
|
||||
Size: size
|
||||
ReleaseName: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
method: form
|
||||
path: Home/Login
|
||||
form: "#account"
|
||||
inputs:
|
||||
Username: "{{ .Config.username }}"
|
||||
Password: "{{ .Config.password }}"
|
||||
RememberMe: true
|
||||
selectorinputs:
|
||||
__RequestVerificationToken:
|
||||
selector: input[name="__RequestVerificationToken"]
|
||||
attribute: value
|
||||
error:
|
||||
- selector: div.validation-summary-errors[data-valmsg-summary="true"]
|
||||
message:
|
||||
text: " - Bad username/password."
|
||||
test:
|
||||
path: /
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: Torrent
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}SelectedCats={{.}}&{{end}}"
|
||||
Search: "{{ .Keywords }}"
|
||||
UserId: ""
|
||||
YearOperator: ≥
|
||||
Year: ""
|
||||
RatingOperator: ≥
|
||||
Rating: ""
|
||||
Pending: ""
|
||||
Pack: ""
|
||||
Scene: ""
|
||||
Freeleech: "{{ if .Config.freeleech }}true{{ else }}{{ end }}"
|
||||
SortOn: "{{ .Config.sort }}"
|
||||
SortOrder: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.table-rows > tbody > tr
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="/Torrent?SelectedCats="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: SelectedCats
|
||||
title_phase1:
|
||||
selector: td.grid-release-column > a
|
||||
title_multilang:
|
||||
text: "{{ .Result.title_phase1 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.multi\\.)", " {{ .Config.multilanguage }} "]
|
||||
title_phase2:
|
||||
text: "{{ if .Config.multilang }}{{ .Result.title_multilang }}{{ else }}{{ .Result.title_phase1 }}{{ end }}"
|
||||
title_vostfr:
|
||||
text: "{{ .Result.title_phase2 }}"
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.vostfr\\.)", " ENGLISH "]
|
||||
- name: re_replace
|
||||
args: ["(?i)(\\.subfrench\\.)", " ENGLISH "]
|
||||
title:
|
||||
text: "{{ if .Config.vostfr }}{{ .Result.title_vostfr }}{{ else }}{{ .Result.title_phase2 }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/Torrent/Details?ReleaseId="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/Torrent/Download?ReleaseId="]
|
||||
attribute: href
|
||||
date:
|
||||
text: now
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: [",", "."]
|
||||
- name: replace
|
||||
args: ["o", "B"]
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[title="Freeleech"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# Gazelle
|
@@ -128,18 +128,15 @@ search:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: div.torrent-name
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: img[src*="/img.php?"]
|
||||
attribute: src
|
||||
files:
|
||||
selector: td:nth-last-child(8)
|
||||
selector: td:nth-last-child(9)
|
||||
date_yday:
|
||||
# Yesterday<br/>6:00 AM
|
||||
selector: td:nth-last-child(7):contains("day")
|
||||
|
@@ -104,8 +104,18 @@ search:
|
||||
- "Portuguese (Brazil) English"
|
||||
details:
|
||||
selector: details_link
|
||||
_cat:
|
||||
selector: category
|
||||
_type:
|
||||
selector: type
|
||||
_res:
|
||||
selector: resolution
|
||||
optional: true
|
||||
_reg:
|
||||
selector: region
|
||||
optional: true
|
||||
description:
|
||||
selector: media_info
|
||||
text: "{{ .Result._cat }} {{ .Result._type }} {{ .Result._res }} {{ .Result._reg }}"
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
|
@@ -90,6 +90,7 @@ settings:
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: Main/?act=Login
|
||||
method: form
|
||||
@@ -141,6 +142,13 @@ search:
|
||||
description:
|
||||
optional: true
|
||||
selector: span.torrent_small_desc
|
||||
genre:
|
||||
selector: span.torrent_small_desc
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\[.+?\\] \\[(.+?)\\]"
|
||||
- name: replace
|
||||
args: [" ", "_"]
|
||||
files:
|
||||
selector: td.torrent_table_files
|
||||
date:
|
||||
|
@@ -24,6 +24,7 @@ settings:
|
||||
label: Password
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: date
|
||||
options:
|
||||
date: created
|
||||
@@ -32,6 +33,7 @@ settings:
|
||||
seeders: seeders
|
||||
- name: order
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
|
@@ -142,10 +142,14 @@ search:
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) width="
|
||||
args: src=([^\s]+)
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: span.box
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: td:nth-last-child(6)
|
||||
size:
|
||||
|
@@ -27,7 +27,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
|
@@ -107,7 +107,7 @@ search:
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -117,6 +117,17 @@ search:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -152,4 +163,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.2.1
|
||||
# json UNIT3D 6.4.0
|
||||
|
@@ -5,6 +5,7 @@ description: "Amigos Share Club is a Brazilian Private site for TV / MOVIES / GE
|
||||
language: pt-BR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://cliente.amigos-share.club/
|
||||
legacylinks:
|
||||
@@ -186,6 +187,10 @@ search:
|
||||
_language:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#b6249d;"]
|
||||
optional: true
|
||||
genre:
|
||||
selector: div.list-group-item-content p.m-0 span.badge-primary[style$="#1c38c2;"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
title:
|
||||
selector: a[href*="torrents-details.php?id="], a[href*="details-misc.php?id="]
|
||||
filters:
|
||||
|
@@ -1,152 +0,0 @@
|
||||
---
|
||||
id: anaschcc
|
||||
name: anasch.cc
|
||||
description: "anasch.cc is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://anasch.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: Movies}
|
||||
- {id: 2, cat: TV, desc: TV}
|
||||
- {id: 3, cat: TV, desc: Animation}
|
||||
- {id: 5, cat: Audio, desc: Music}
|
||||
- {id: 12, cat: XXX, desc: Porn}
|
||||
- {id: 29, cat: TV/Sport, desc: Sports}
|
||||
- {id: 37, cat: PC, desc: Software}
|
||||
- {id: 38, cat: Console, desc: Games}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 3
|
||||
options:
|
||||
3: created
|
||||
5: seeders
|
||||
4: size
|
||||
2: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: 2
|
||||
options:
|
||||
2: desc
|
||||
1: asc
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form[action^="index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: div[data-validate^="Valid"]
|
||||
message:
|
||||
selector: div[data-validate^="Valid"]
|
||||
attribute: data-validate
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
active: 0
|
||||
search: "{{ .Keywords }}"
|
||||
$raw: "{{ range .Categories }}category[]={{.}}&{{end}}"
|
||||
# 1 freeleech, 2 2x upload, 3 featured
|
||||
discount[]: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table.lista tbody tr:has(a[href^=\"index.php?page=torrent-details\"])"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href^="index.php?page=torrents&category[]="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category[]
|
||||
title:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: td a[href^="download.php"]
|
||||
attribute: href
|
||||
imdbid:
|
||||
selector: a[href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["javascript:ShowImage('/images/imdb/tt0000000.jpg')", ""]
|
||||
poster:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["javascript:ShowImage('", ""]
|
||||
- name: replace
|
||||
args: ["')", ""]
|
||||
- name: replace
|
||||
args: ["/images/imdb/0000000.jpg", ""]
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
date:
|
||||
# 22/01/21 01:28
|
||||
selector: td:nth-child(6)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile - doesn't adjust for DST
|
||||
- name: dateparse
|
||||
args: "02/01/06 15:04 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(7)
|
||||
leechers:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src*="freeleech.png"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
case:
|
||||
img[src*="x2u.png"]: 2
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 3.0
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# xbtit
|
@@ -47,16 +47,17 @@ search:
|
||||
optional: true
|
||||
year:
|
||||
selector: ..season.year
|
||||
quality:
|
||||
_quality:
|
||||
selector: quality.string
|
||||
series:
|
||||
_series:
|
||||
selector: series.string
|
||||
optional: true
|
||||
title:
|
||||
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} [{{ .Result.quality }}] - {{ .Result.series }}"
|
||||
code:
|
||||
text: "{{ .Result.title_ru }} / {{ .Result.title_en }}{{ if .Result.title_alternative }} / {{ .Result.title_alternative }}{{ else }}{{ end }} ({{ .Result.year }}) [{{ .Result._quality }}]{{ if .Result._series }} - {{ .Result._series }}{{ else }}{{ end }}"
|
||||
_code:
|
||||
selector: ..code
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}release/{{ .Result.code }}.html"
|
||||
text: "{{ .Config.sitelink }}release/{{ .Result._code }}.html"
|
||||
download:
|
||||
selector: url
|
||||
filters:
|
||||
|
@@ -6,8 +6,6 @@ language: ru-RU
|
||||
type: semi-private
|
||||
encoding: windows-1251
|
||||
testlinktorrent: false
|
||||
certificates:
|
||||
- 2b49b401259cb893f37de9eff343f7d356b1c2f2 # expired 8 January 2022
|
||||
links:
|
||||
- https://anime-free.biz/
|
||||
legacylinks:
|
||||
|
@@ -64,7 +64,7 @@ search:
|
||||
fields:
|
||||
category:
|
||||
selector: label.category
|
||||
resolution:
|
||||
_resolution:
|
||||
selector: div.description
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -74,7 +74,7 @@ search:
|
||||
attribute: alt
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.resolution }} [{{ .Result.resolution }}p]{{ else }}{{ end }}"
|
||||
args: "{{ if .Result._resolution }} [{{ .Result._resolution }}p]{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
@@ -184,16 +184,16 @@ search:
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 1]
|
||||
subtitles:
|
||||
_subtitles:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Субтитры:(.+?)\\n"
|
||||
language:
|
||||
_language:
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Язык:(.+?)\\n"
|
||||
description:
|
||||
text: "{{ if .Result.subtitles }}Субтитры: {{ .Result.subtitles }}{{ else }}{{ end }} - {{ if .Result.language }}Язык: {{ .Result.language }}{{ else }}{{ end }}"
|
||||
text: "{{ if .Result._subtitles }}Субтитры: {{ .Result._subtitles }}{{ else }}{{ end }} - {{ if .Result._language }}Язык: {{ .Result._language }}{{ else }}{{ end }}"
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
|
166
src/Jackett.Common/Definitions/animetracker.yml
Normal file
166
src/Jackett.Common/Definitions/animetracker.yml
Normal file
@@ -0,0 +1,166 @@
|
||||
---
|
||||
id: animetracker
|
||||
name: AnimeTracker (API)
|
||||
description: "AnimeTracker is a Private Torrent Tracker for HD ANIME / MANGA / HENTAI"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://animetracker.cc/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 7, cat: TV/Anime, desc: "Series English"}
|
||||
- {id: 16, cat: TV/Anime, desc: "ongoing"}
|
||||
- {id: 11, cat: TV/Anime, desc: "Series Non-English"}
|
||||
- {id: 1, cat: TV/Anime, desc: "Raws"}
|
||||
- {id: 2, cat: TV/Anime, desc: "OVA"}
|
||||
- {id: 4, cat: Movies, desc: "Movie"}
|
||||
- {id: 15, cat: Books/Comics, desc: "Manga"}
|
||||
- {id: 6, cat: XXX, desc: "Hentai Censored"}
|
||||
- {id: 14, cat: XXX, desc: "Hentai Uncensored"}
|
||||
- {id: 9, cat: XXX, desc: "Hentai Manga"}
|
||||
- {id: 10, cat: Movies, desc: "Live Action"}
|
||||
- {id: 3, cat: Audio, desc: "Music"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid, tvdbid, tmdbid]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
music-search: [q]
|
||||
book-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://animetracker.cc/\" target =_blank>AnimeTracker</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
|
||||
inputs:
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: a[href*="/login"]
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
count:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
selector: details_link
|
||||
download:
|
||||
selector: download_link
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
imdbid:
|
||||
selector: imdb_id
|
||||
tmdbid:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: times_completed
|
||||
date:
|
||||
# 2021-10-18T00:34:50.000000Z"
|
||||
selector: created_at
|
||||
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
|
||||
# global MR is 0.4 but torrents must be seeded for 5 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 5 day (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
# json UNIT3D 6.4.0
|
@@ -5,6 +5,9 @@ description: "AniSource is a Public site for HD Anime raws."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
certificates:
|
||||
- f400d50a4dac4dd6546c869ac75669846205a0d2 # expired 26 Aug 2022
|
||||
links:
|
||||
- https://asnet.pw/
|
||||
|
||||
|
152
src/Jackett.Common/Definitions/anthelion-api.yml
Normal file
152
src/Jackett.Common/Definitions/anthelion-api.yml
Normal file
@@ -0,0 +1,152 @@
|
||||
---
|
||||
id: anthelion-api
|
||||
name: Anthelion (API)
|
||||
description: "Anthelion is a Private MOVIES tracker"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://anthelion.me/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2000, cat: Movies}
|
||||
- {id: 2030, cat: Movies/SD}
|
||||
- {id: 2040, cat: Movies/HD}
|
||||
- {id: 2045, cat: Movies/UHD}
|
||||
- {id: 2050, cat: Movies/BluRay}
|
||||
- {id: 2080, cat: Movies/WEB-DL}
|
||||
- {id: 8000, cat: Other}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
movie-search: [q, imdbid, tmdbid]
|
||||
# note: the api any supports movie search so there is no tv season/episode support.
|
||||
# not using year search because torznab adds it to the q= which results in &q=keyword+2022&year=2022 sent to api !?!
|
||||
|
||||
settings:
|
||||
- name: apikey
|
||||
type: text
|
||||
label: APIKey
|
||||
- name: info_key
|
||||
type: info
|
||||
label: About your API key
|
||||
default: "Find or Generate a new API Key by accessing your <a href=\"https://anthelion.me/\" target =_blank>Anthelion</a> account <i>Settings</i> page and scrolling down to the <b>API Key</b> section.<br>Tick the <b>Search</b> and <b>Download</b> checkboxes and click the <b>save profile</b> button to generate the key."
|
||||
|
||||
login:
|
||||
path: api.php
|
||||
method: get
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
error:
|
||||
- selector: ":root:contains(\"Unrecognized key\")"
|
||||
message:
|
||||
text: "The API key was not accepted by {{ .Config.sitelink }}."
|
||||
- selector: ":root:contains(\"No API_KEY provided\")"
|
||||
message:
|
||||
text: "You did not enter an API key."
|
||||
|
||||
search:
|
||||
paths:
|
||||
# docs: https://anthelion.me/forums.php?action=viewthread&threadid=1026
|
||||
- path: api.php
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
api_key: "{{ .Config.apikey }}"
|
||||
o: json
|
||||
t: movie
|
||||
q: "{{ .Keywords }}"
|
||||
tmdb: "{{ .Query.TMDBID }}"
|
||||
imdb: "{{ .Query.IMDBIDShort }}"
|
||||
cat: "{{ join .Categories \",\" }}"
|
||||
limit: 100
|
||||
offset: 0
|
||||
|
||||
rows:
|
||||
selector: item
|
||||
count:
|
||||
selector: response.total
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: category
|
||||
filters:
|
||||
- name: split
|
||||
args: [",", -1]
|
||||
year:
|
||||
selector: year
|
||||
optional: true
|
||||
_codec:
|
||||
selector: codec
|
||||
_container:
|
||||
selector: container
|
||||
_media:
|
||||
selector: media
|
||||
_resolution:
|
||||
selector: resolution
|
||||
_audioFormat:
|
||||
selector: audioFormat
|
||||
_subbing:
|
||||
selector: subbing
|
||||
optional: true
|
||||
_flags:
|
||||
selector: flags
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [",", " "]
|
||||
_language:
|
||||
selector: language
|
||||
optional: true
|
||||
title:
|
||||
selector: title
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["'", "'"]
|
||||
- name: append
|
||||
args: " {{ .Result.year }} {{ .Result._codec }} {{ .Result._container }} {{ .Result._media }} {{ .Result._resolution }} {{ .Result._audioFormat }}{{ if .Result._subbing }} Subs{{ else }}{{ end }}{{ if .Result._flags }} {{ .Result._flags }}{{ else }}{{ end }}{{ if .Result._language }} {{ .Result._language }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: guid
|
||||
download:
|
||||
selector: link
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["&", "&"]
|
||||
infohash:
|
||||
selector: infohash
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
selector: tmdb
|
||||
genre:
|
||||
selector: tags
|
||||
filters:
|
||||
- name: replace
|
||||
args: [".", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: fileCount
|
||||
seeders:
|
||||
selector: seeders
|
||||
leechers:
|
||||
selector: leechers
|
||||
grabs:
|
||||
selector: grabs
|
||||
date:
|
||||
# 2022-08-07T20:56:06+0200
|
||||
selector: pubDate
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 3 day (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json api
|
@@ -6,10 +6,10 @@ language: ar-AR
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.arabp2p.com/
|
||||
- https://www.arabp2p.net/
|
||||
legacylinks:
|
||||
- http://www.arabp2p.com/
|
||||
- https://www.arabp2p.com/
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -98,7 +98,7 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action^="index.php?page=login"]
|
||||
inputs:
|
||||
|
@@ -5,12 +5,12 @@ description: "ArenaBG is a BULGARIAN Semi-Private Torrent Tracker for 0DAY / GEN
|
||||
language: bg-BG
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- d5d96eaf33f4b7470a7009f1e591a45f6af0430d # expired 15 Oct 2022
|
||||
links:
|
||||
- https://arenabg.com/
|
||||
legacylinks:
|
||||
- https://arenabg.ch/
|
||||
certificates:
|
||||
- 4605acf4b01f565f3c3f3ee1407ce22450172a9d # expired 15 Jul 2022
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -151,27 +151,27 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
english:
|
||||
_english:
|
||||
selector: span[title="English"]
|
||||
attribute: title
|
||||
optional: true
|
||||
bulgarian:
|
||||
_bulgarian:
|
||||
selector: span[title="Bulgarian"]
|
||||
attribute: title
|
||||
optional: true
|
||||
title:
|
||||
selector: td.filename a[href^="/en/torrents/"]
|
||||
selector: td.filename a.title
|
||||
filters:
|
||||
- name: append
|
||||
args: "{{ if .Result.bulgarian }} {{ .Result.bulgarian }}{{ else }}{{ end }}{{ if .Result.english }} {{ .Result.english }}{{ else }}{{ end }}"
|
||||
args: "{{ if .Result._bulgarian }} {{ .Result._bulgarian }}{{ else }}{{ end }}{{ if .Result._english }} {{ .Result._english }}{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: td.filename a[href^="/en/torrents/"]
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
download:
|
||||
selector: td.filename a[href^="/en/torrents/"]
|
||||
selector: td.filename a.title
|
||||
attribute: href
|
||||
poster:
|
||||
selector: td.filename a[href^="/en/torrents/"]
|
||||
selector: td.filename a.title
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
|
@@ -85,6 +85,8 @@ search:
|
||||
direction: "{{ .Config.type }}"
|
||||
qty: 100
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can support genre search but you need to know the id. &genre[]=10759 for Action & Adventure
|
||||
# does not have genre in results, they are on the details page.
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
|
@@ -25,8 +25,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -75,13 +75,13 @@ search:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 justdead
|
||||
incldead: 0
|
||||
# promotion: 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x 50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdb
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 2 title or imdb or douban url, 3 uploader, 4 imdb
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}2{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
|
@@ -5,15 +5,13 @@ description: "AudioBook Bay (ABB) is a public Torrent Tracker for AUDIOBOOKS"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- http://audiobookbay.fi/ # site forces http, does not support https
|
||||
- http://audiobookbay.se/
|
||||
- http://audiobookbayabb.com/
|
||||
- https://audiobookbay.unblockit.ist/
|
||||
- https://audiobookbay.fi/
|
||||
- https://audiobookbay.se/
|
||||
- https://audiobookbay.unblockit.page/
|
||||
legacylinks:
|
||||
- https://audiobookbay.la/
|
||||
- https://audiobookbay.unblockit.li/
|
||||
- https://audiobookbay.unblockit.uno/
|
||||
- https://audiobookbay.unblockit.ch/
|
||||
- https://audiobookbay.unblockit.ws/
|
||||
- http://audiobookbay.net/
|
||||
@@ -29,6 +27,13 @@ legacylinks:
|
||||
- https://audiobookbay.unblockit.llc/
|
||||
- https://audiobookbay.unblockit.blue/
|
||||
- https://audiobookbay.unblockit.name/
|
||||
- http://audiobookbay.fi/
|
||||
- http://audiobookbay.se/
|
||||
- http://audiobookbayabb.com/
|
||||
- https://audiobookbay.unblockit.ist/
|
||||
- https://audiobookbay.unblockit.bet/
|
||||
- https://audiobookbay.unblockit.cat/
|
||||
- https://audiobookbay.unblockit.nz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -81,15 +86,15 @@ caps:
|
||||
- {id: Sex, cat: Audio/Audiobook, desc: "Sex Scenes"}
|
||||
- {id: Short, cat: Audio/Audiobook, desc: "Short Story"}
|
||||
- {id: Spiritual, cat: Audio/Audiobook, desc: "Spiritual & Religious"}
|
||||
- {id: Sports, cat: Audio/Audiobook, desc: "Sports"}
|
||||
- {id: Sport, cat: Audio/Audiobook, desc: "Sport & Recreation"}
|
||||
- {id: Suspense, cat: Audio/Audiobook, desc: "Suspense"}
|
||||
- {id: Teen, cat: Audio/Audiobook, desc: "Teen & Young Adult"}
|
||||
- {id: The, cat: Audio/Audiobook, desc: "The Undead"}
|
||||
- {id: Thriller, cat: Audio/Audiobook, desc: "Thriller"}
|
||||
- {id: "True", cat: Audio/Audiobook, desc: "True Crime"}
|
||||
- {id: Tutorial, cat: Audio/Audiobook, desc: "Tutorial"}
|
||||
- {id: Violence, cat: Audio/Audiobook, desc: "Violence"}
|
||||
- {id: Westerns, cat: Audio/Audiobook, desc: "Westerns"}
|
||||
- {id: Zombies, cat: Audio/Audiobook, desc: "Zombies"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -142,6 +147,7 @@ search:
|
||||
selector: img
|
||||
attribute: src
|
||||
date_optional:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
@@ -151,6 +157,7 @@ search:
|
||||
date:
|
||||
text: "{{ if .Result.date_optional }}{{ .Result.date_optional }}{{ else }}now{{ end }}"
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: div.postContent
|
||||
filters:
|
||||
- name: regexp
|
||||
|
@@ -176,6 +176,8 @@ caps:
|
||||
- {id: 233, cat: Other, desc: "GFXNEWS GAME DEVELOPMENT"}
|
||||
- {id: 226, cat: Other, desc: "GFXNEWS MAGAZINE"}
|
||||
- {id: 234, cat: Other, desc: "GFXNEWS MATERIAL"}
|
||||
- {id: 243, cat: Other, desc: "GFXNEWS OTHER GRAPHICS"}
|
||||
- {id: 244, cat: Other, desc: "GFXNEWS OTHER GRAPHICS Zbrush, Substance tools"}
|
||||
- {id: 216, cat: Other, desc: "GFXNEWS PHOTOSTOCK"}
|
||||
- {id: 220, cat: Other, desc: "GFXNEWS PHOTOGRAPHY - ART"}
|
||||
- {id: 227, cat: Other, desc: "GFXNEWS PHOTOSHOP"}
|
||||
@@ -183,10 +185,10 @@ caps:
|
||||
- {id: 229, cat: Other, desc: "GFXNEWS PHOTOSHOP Background & PSD Source"}
|
||||
- {id: 230, cat: Other, desc: "GFXNEWS PHOTOSHOP Brushes & Gradient"}
|
||||
- {id: 231, cat: Other, desc: "GFXNEWS PHOTOSHOP Toolkits, Papers & Objects"}
|
||||
- {id: 245, cat: Other, desc: "GFXNEWS PLUGINS"}
|
||||
- {id: 225, cat: Other, desc: "GFXNEWS PLUGINS LINUX"}
|
||||
- {id: 223, cat: Other, desc: "GFXNEWS PLUGINS MAC"}
|
||||
- {id: 210, cat: Other, desc: "GFXNEWS PLUGINS WIN"}
|
||||
- {id: 236, cat: Other, desc: "GFXNEWS POSER"}
|
||||
- {id: 217, cat: Other, desc: "GFXNEWS SCRIPTS - WEB PROGRAMMING"}
|
||||
- {id: 218, cat: Other, desc: "GFXNEWS TEMPLATES"}
|
||||
- {id: 232, cat: Other, desc: "GFXNEWS TEXTURES"}
|
||||
|
@@ -5,12 +5,15 @@ description: "Badass Torrents is a Public torrent site for MOVIES / TV / GENERAL
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://badasstorrents.com/
|
||||
- https://badasstorrents.nocensor.sbs/
|
||||
- https://badasstorrents.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://badasstorrents.nocensor.work/
|
||||
- https://badasstorrents.nocensor.biz/
|
||||
- https://badasstorrents.nocensor.sbs/
|
||||
- https://badasstorrents.nocensor.world/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
@@ -21,7 +21,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
@@ -64,8 +64,11 @@ search:
|
||||
date:
|
||||
# 2021-10-19T06:10:15.772Z
|
||||
selector: publish_time
|
||||
size:
|
||||
size_optional:
|
||||
optional: true
|
||||
selector: size
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
grabs:
|
||||
selector: downloads
|
||||
seeders:
|
||||
|
@@ -22,8 +22,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -79,13 +79,13 @@ search:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (searching imdburl does not work with tt1234567, but descr is good)
|
||||
search_area: "{{ if .Query.IMDBID }}1{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl (4 does not appear to work).
|
||||
search_area: "{{ if or .Query.IMDBID .Query.DoubanID }}1{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
|
@@ -124,8 +124,11 @@ search:
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: 38
|
||||
category|noappend:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
optional: true
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
|
@@ -57,7 +57,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
@@ -12,16 +12,18 @@ caps:
|
||||
categorymappings:
|
||||
- {id: 85, cat: Movies/SD, desc: "Film/Cam/Hun"}
|
||||
- {id: 86, cat: Movies/SD, desc: "Film/Cam/Eng"}
|
||||
- {id: 15, cat: Movies/SD, desc: "Film/XviD/Hun"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Film/XviD/Eng"}
|
||||
- {id: 34, cat: Movies/HD, desc: "Film/x264/Hun"}
|
||||
- {id: 48, cat: Movies/HD, desc: "Film/x264/Eng"}
|
||||
- {id: 15, cat: Movies/SD, desc: "Film/SD/Hun"}
|
||||
- {id: 16, cat: Movies/SD, desc: "Film/SD/Eng"}
|
||||
- {id: 17, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 19, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 83, cat: Movies/HD, desc: "Film/HD/Hun"}
|
||||
- {id: 82, cat: Movies/HD, desc: "Film/HD/Eng"}
|
||||
- {id: 94, cat: Movies/HD, desc: "Film/FHD/Hun"}
|
||||
- {id: 95, cat: Movies/HD, desc: "Film/FHD/Eng"}
|
||||
- {id: 92, cat: Movies/UHD, desc: "Film/UHD/Hun"}
|
||||
- {id: 93, cat: Movies/UHD, desc: "Film/UHD/Eng"}
|
||||
- {id: 64, cat: Movies, desc: "Film/Pack"}
|
||||
- {id: 24, cat: Audio/Video, desc: "Videóklip"}
|
||||
- {id: 22, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 58, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 69, cat: TV/Anime, desc: "Mese/SD"}
|
||||
@@ -32,23 +34,19 @@ caps:
|
||||
- {id: 84, cat: Audio/Lossless, desc: "Lossless/Hun"}
|
||||
- {id: 71, cat: Audio/Lossless, desc: "Lossless/Eng"}
|
||||
- {id: 31, cat: PC/Games, desc: "Játék/PC"}
|
||||
- {id: 54, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 81, cat: PC/0day, desc: "Program/PC"}
|
||||
- {id: 49, cat: PC/0day, desc: "Program/Rip"}
|
||||
- {id: 14, cat: PC, desc: "Program/Egyéb"}
|
||||
- {id: 64, cat: Movies, desc: "Film/Pack"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
- {id: 27, cat: Books/EBook, desc: "Könyv/Hun"}
|
||||
- {id: 50, cat: Books/EBook, desc: "Könyv/Eng"}
|
||||
- {id: 14, cat: PC, desc: "Program/Egyéb"}
|
||||
- {id: 65, cat: Other, desc: "Egyéb"}
|
||||
# the following are no longer in the cat list in the search page, but are still in the profile cat list
|
||||
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Android"}
|
||||
- {id: 17, cat: Movies/DVD, desc: "Film/DVD/Hun"}
|
||||
- {id: 19, cat: Movies/DVD, desc: "Film/DVD/Eng"}
|
||||
- {id: 24, cat: Audio/Video, desc: "Videóklipp"}
|
||||
- {id: 33, cat: XXX/SD, desc: "Film/SD/XXX"}
|
||||
- {id: 89, cat: XXX/x264, desc: "Film/HD/XXX"}
|
||||
- {id: 33, cat: XXX/SD, desc: "SD/XXX"}
|
||||
- {id: 89, cat: XXX/x264, desc: "HD/XXX"}
|
||||
- {id: 66, cat: XXX/ImageSet, desc: "Képek/XXX"}
|
||||
# the following are no longer in the cat list in the search page, but are still in the profile cat list
|
||||
- {id: 54, cat: Console, desc: "Játék/Konzol"}
|
||||
- {id: 67, cat: PC/Mobile-Android, desc: "Program/Mobil"}
|
||||
- {id: 70, cat: Audio/Audiobook, desc: "Hangoskönyv"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -95,17 +93,17 @@ login:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href^="logout.php?k="]
|
||||
selector: i[onclick^="window.open('logout.php?k="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
categories: ["!", 33, 66, 99]
|
||||
categories: ["!", 33, 66, 89]
|
||||
inputs:
|
||||
# 0 all, 1 active, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 0
|
||||
- path: browse_xxx.php
|
||||
categories: [33, 66, 99]
|
||||
categories: [33, 66, 89]
|
||||
inputs:
|
||||
# 0 active, 1 all, 2 deadonly, 3 myuploads, 4 zeroseed, 6 re-seeded
|
||||
incldead: 1
|
||||
@@ -115,17 +113,19 @@ search:
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# site does not support imdbid searching
|
||||
# can support genre searching but you need to know the id, eg &genre23=1 for Comedy (id is 23)
|
||||
|
||||
rows:
|
||||
selector: "table[width=\"100%\"]:last-child tbody tr:has(div.tooltip){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
selector: "table[width=\"100%\"][align=\"center\"]:first-child tbody tr:has(div.tooltip){{ if .Config.freeleech }}:has(i:contains(\"(Free)\")){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href*=".php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
categorydesc:
|
||||
selector: img[src^="pic/kategoria/"]
|
||||
attribute: title
|
||||
genre:
|
||||
selector: span.tooltiptext
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
title:
|
||||
selector: div.tooltip
|
||||
remove: span
|
||||
@@ -135,11 +135,11 @@ search:
|
||||
poster:
|
||||
selector: a.preview
|
||||
attribute: href
|
||||
download1:
|
||||
download_1:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
optional: true
|
||||
attribute: href
|
||||
download2:
|
||||
download_2:
|
||||
selector: input[onclick*="download.php?torrent="]
|
||||
optional: true
|
||||
attribute: onclick
|
||||
@@ -149,29 +149,30 @@ search:
|
||||
- name: replace
|
||||
args: ["', '_self');", ""]
|
||||
download:
|
||||
text: "{{ if or .Result.download1 .Result.download2 }}{{ or .Result.download1 .Result.download2 }}{{ else }}{{ end }}"
|
||||
text: "{{ if or .Result.download_1 .Result.download_2 }}{{ or .Result.download_1 .Result.download_2 }}{{ else }}{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(6)
|
||||
date_browse:
|
||||
# 2022<br>03/15.
|
||||
selector: td:nth-child(7):contains("/")
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "200601/02. -07:00"
|
||||
date_browse_xxx:
|
||||
# 22.03.15
|
||||
selector: td:nth-child(7):not(:contains("/"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "06.01.02 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_browse .Result.date_browse_xxx }}{{ or .Result.date_browse .Result.date_browse_xxx }}{{ else }}now{{ end }}"
|
||||
# 36 perce
|
||||
# 13 órája és 59 perce
|
||||
# 2 napja és 10 órája
|
||||
# 1 hete és 1 napja
|
||||
# 1 éve és 30 hete
|
||||
selector: td:nth-child(7) span:last-child
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["és ", " "]
|
||||
- name: replace
|
||||
args: ["perce", "minute"]
|
||||
- name: replace
|
||||
args: ["órája", "hour"]
|
||||
- name: replace
|
||||
args: ["napja", "day"]
|
||||
- name: replace
|
||||
args: ["hete", "week"]
|
||||
- name: replace
|
||||
args: ["éve", "year"]
|
||||
- name: timeago
|
||||
grabs:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
|
@@ -45,7 +45,6 @@ caps:
|
||||
- {id: 9, cat: XXX, desc: "XXX/Film"}
|
||||
- {id: 10, cat: XXX, desc: "XXX/Kép"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
@@ -7,9 +7,11 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://bitsearch.to/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
- https://bitsearch.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://bitsearch.nocensor.biz/
|
||||
- https://bitsearch.nocensor.sbs/
|
||||
- https://bitsearch.nocensor.world/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
@@ -6,9 +6,10 @@ language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://bitturk.net/ # site does not support https ERR_CONNECTION_REFUSED
|
||||
- https://bitturk.net/
|
||||
legacylinks:
|
||||
- http://www.bitturk.net/
|
||||
- http://bitturk.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -25,6 +26,7 @@ caps:
|
||||
- {id: 79, cat: TV, desc: "BLUTV"}
|
||||
- {id: 90, cat: TV, desc: "Disney+"}
|
||||
- {id: 91, cat: TV, desc: "Prime Video"}
|
||||
- {id: 93, cat: TV, desc: "Gain"}
|
||||
- {id: 58, cat: Movies, desc: "Film"}
|
||||
- {id: 72, cat: Movies, desc: "Belgesel"}
|
||||
- {id: 60, cat: Movies/3D, desc: "3D"}
|
||||
@@ -64,6 +66,7 @@ caps:
|
||||
- {id: 88, cat: Console/Other, desc: "Oyun NEO-GEO"}
|
||||
- {id: 89, cat: Console/Wii, desc: "Oyun Nintendo Wii"}
|
||||
- {id: 6, cat: PC/0day, desc: "Program"}
|
||||
- {id: 92, cat: PC/Mobile-Android, desc: "Android"}
|
||||
- {id: 47, cat: Other, desc: "Resimler"}
|
||||
- {id: 48, cat: TV, desc: "Televizyon"}
|
||||
- {id: 49, cat: TV/HD, desc: "Tv HD"}
|
||||
|
@@ -1,187 +0,0 @@
|
||||
---
|
||||
id: bluesbrothers
|
||||
name: Blues-Brothers
|
||||
description: "Blues-Brothers is a Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://blues-brothers.biz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 9, cat: TV/Anime, desc: "Anime"}
|
||||
- {id: 1, cat: PC/0day, desc: "Apps"}
|
||||
- {id: 17, cat: Audio/Audiobook, desc: "AudioBooks"}
|
||||
- {id: 16, cat: Books/EBook, desc: "Ebooks"}
|
||||
- {id: 12, cat: PC/Games, desc: "Games PC"}
|
||||
- {id: 7, cat: Console/PS3, desc: "Games PS3"}
|
||||
- {id: 19, cat: Console/Wii, desc: "Games Wii"}
|
||||
- {id: 8, cat: Console/XBox 360, desc: "Games XBOX360"}
|
||||
- {id: 18, cat: PC/Mac, desc: "MAC"}
|
||||
- {id: 41, cat: PC/Mobile-Android, desc: "Mobile"}
|
||||
- {id: 26, cat: Movies, desc: "Movie BDRip"}
|
||||
- {id: 29, cat: Movies/HD, desc: "Movie BluRay 1080p"}
|
||||
- {id: 28, cat: Movies/HD, desc: "Movie BluRay 720p"}
|
||||
- {id: 27, cat: Movies/SD, desc: "Movie BRRip"}
|
||||
- {id: 24, cat: Movies/SD, desc: "Movie CAM/TS"}
|
||||
- {id: 23, cat: Movies/DVD, desc: "Movie DVD-R"}
|
||||
- {id: 11, cat: Movies/SD, desc: "Movie DVDRip"}
|
||||
- {id: 25, cat: Movies/SD, desc: "Movie DVDSCR/R5"}
|
||||
- {id: 30, cat: Movies, desc: "Movie Packs"}
|
||||
- {id: 10, cat: Movies/HD, desc: "Movie XviD x264"}
|
||||
- {id: 6, cat: XXX, desc: "Movie XXX"}
|
||||
- {id: 22, cat: Audio/Lossless, desc: "Music Flac"}
|
||||
- {id: 21, cat: Audio/MP3, desc: "Music MP3"}
|
||||
- {id: 14, cat: Audio, desc: "Music Packs"}
|
||||
- {id: 20, cat: Audio/Video, desc: "Music Videos"}
|
||||
- {id: 34, cat: TV, desc: "TV Packs"}
|
||||
- {id: 36, cat: TV/HD, desc: "TV X264 HD"}
|
||||
- {id: 37, cat: TV/SD, desc: "TV X264 SD"}
|
||||
- {id: 35, cat: TV/SD, desc: "TV XviD"}
|
||||
- {id: 38, cat: Other, desc: "VIP"}
|
||||
- {id: 40, cat: Other, desc: "VIP ONLY"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
use_ssl: 1
|
||||
perm_ssl: ""
|
||||
returnto: /
|
||||
error:
|
||||
- selector: table.main:contains("Login failed!")
|
||||
message:
|
||||
selector: table tr td.colhead2
|
||||
test:
|
||||
path: /
|
||||
selector: a[href*="logout.php?hash_please="]
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://blues-brothers.biz/browse.php?c27=1&c28=1&c29=1&search=&searchin=title&incldead=1&sort=4&type=desc
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# title, descr, genre, all
|
||||
searchin: title
|
||||
# 0 active, 1 incldead, 2 onlydead
|
||||
incldead: 1
|
||||
only_free: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(\\w+)", " +$1"] # prepend + to each word
|
||||
|
||||
rows:
|
||||
selector: table.table-bordered tr:has(a[href^="download.php?torrent="])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Tip\\('<b>(.+?)</b>"
|
||||
download:
|
||||
selector: a[href^="download.php?torrent="]
|
||||
attribute: href
|
||||
poster:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: src=\\'(.+?)\\'
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
files:
|
||||
selector: td:nth-child(5)
|
||||
date_day:
|
||||
selector: td:nth-child(7):contains("day")
|
||||
optional: true
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date_year:
|
||||
selector: td:nth-child(7):not(:contains("day"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile
|
||||
- name: dateparse
|
||||
args: "Jan 2 2006 03:04 PM -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(8)
|
||||
grabs:
|
||||
selector: td:nth-child(9)
|
||||
seeders:
|
||||
selector: td:nth-child(10)
|
||||
leechers:
|
||||
selector: td:nth-child(11)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"a.info:contains(\"[FREE]\")": 0
|
||||
"a.info:contains(\"[SILVER]\")": 0.5
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# U-232 V5
|
@@ -99,7 +99,7 @@ search:
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -109,6 +109,17 @@ search:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -144,4 +155,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 6.1.1 beta
|
||||
# json UNIT3D 6.4.0b
|
||||
|
@@ -113,6 +113,7 @@ search:
|
||||
text: "{{ if .Result.files_optional }}{{ .Result.files_optional }}{{ else }}1{{ end }}"
|
||||
size_optional:
|
||||
selector: td:nth-child(3)
|
||||
optional: true
|
||||
size:
|
||||
text: "{{ if .Result.size_optional }}{{ .Result.size_optional }}{{ else }}0 B{{ end }}"
|
||||
seeders_optional:
|
||||
|
@@ -5,8 +5,6 @@ description: "Boxing Torrents is a Private Torrent Tracker for BOXING"
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
certificates:
|
||||
- dda4bd19660006cba06561d2b8f61b5e64995679 # expired 9 June 2022
|
||||
links:
|
||||
- https://tc-boxing.com/
|
||||
|
||||
@@ -29,7 +27,6 @@ caps:
|
||||
- {id: 14, cat: TV/Sport, desc: "HD"}
|
||||
- {id: 7, cat: TV/Sport, desc: "Misc"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
@@ -16,10 +16,11 @@ caps:
|
||||
- {id: 3, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 4, cat: Other, desc: "Arquivos de Auxilio"}
|
||||
- {id: 6, cat: Other, desc: "Graduação"}
|
||||
- {id: 7, cat: TV/Documentary, desc: "Documentários"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
|
@@ -20,7 +20,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
@@ -1,99 +0,0 @@
|
||||
---
|
||||
id: btmirror
|
||||
name: BTmirror
|
||||
description: "BTmirror is a Public BitTorrent DHT search engine."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://btsao.com/
|
||||
- https://btmirror.unblockit.ist/
|
||||
legacylinks:
|
||||
- https://btmirror.unblockit.blue/
|
||||
- https://btmirror.unblockit.name/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
Other: Other
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: info_8000
|
||||
type: info
|
||||
label: About BTmirror Categories
|
||||
default: BTmirror does not return categories in its search results.</br>To add to your Apps' Torznab indexer, replace all categories with 8000(Other).
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: create_time
|
||||
options:
|
||||
relavance: relevance
|
||||
create_time: created
|
||||
length: size
|
||||
|
||||
download:
|
||||
infohash:
|
||||
hash:
|
||||
selector: p.magnet a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: ([A-F|a-f|0-9]{40})
|
||||
title:
|
||||
selector: p.magnet a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "&dn=(.+?)$"
|
||||
- name: validfilename
|
||||
|
||||
search:
|
||||
# https://btsao.com/en/search/2022/?c=&s=create_time
|
||||
# returns 10 results per page
|
||||
paths:
|
||||
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/"
|
||||
- path: "en/search/{{ if .Keywords }}{{ .Keywords }}{{ else }}{{ .Today.Year }}{{ end }}/2"
|
||||
inputs:
|
||||
c: ""
|
||||
s: "{{ .Config.sort }}"
|
||||
|
||||
rows:
|
||||
selector: div.ssbox
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
title:
|
||||
selector: h3
|
||||
details:
|
||||
selector: h3 a
|
||||
attribute: href
|
||||
download:
|
||||
selector: h3 a
|
||||
attribute: href
|
||||
date:
|
||||
selector: span:contains("date:") b
|
||||
filters:
|
||||
- name: dateparse
|
||||
args: "2006-01-02"
|
||||
size:
|
||||
selector: span:contains("size:") b
|
||||
files:
|
||||
selector: span:contains("files:") b
|
||||
grabs:
|
||||
selector: span:contains("人气:") b
|
||||
seeders:
|
||||
text: 1
|
||||
leechers:
|
||||
text: 1
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine: n/a
|
@@ -29,13 +29,12 @@ caps:
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
- name: username
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -50,9 +49,19 @@ settings:
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("登錄失敗"))
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
@@ -5,21 +5,10 @@ description: "BTSOW is a Public torrent indexer"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
# use https://tellme.pw/btsow to find the new domain
|
||||
links:
|
||||
- https://btsow.bar/
|
||||
- https://btsow.autos/
|
||||
legacylinks:
|
||||
- https://btos.pw/
|
||||
- https://btio.pw/
|
||||
- https://btsow.club/
|
||||
- https://bteve.com/
|
||||
- https://btsow.fun/
|
||||
- https://btsow.space/
|
||||
- https://btsow.site/
|
||||
- https://btsow.cyou/
|
||||
- https://btsow.monster/
|
||||
- https://btsow.casa/
|
||||
- https://btsow.website/
|
||||
- https://btsow.online/
|
||||
- https://btsow.work/
|
||||
- https://btsow.store/
|
||||
- https://btsow.surf/
|
||||
@@ -30,6 +19,11 @@ legacylinks:
|
||||
- https://btsow.us/
|
||||
- https://btsow.one/
|
||||
- https://btsow.rest/
|
||||
- https://btsow.bar/
|
||||
- https://btsow.click/
|
||||
- https://btsow.cfd/
|
||||
- https://btsow.sbs/
|
||||
- https://btsow.quest/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
|
120
src/Jackett.Common/Definitions/bulltorrent.yml
Normal file
120
src/Jackett.Common/Definitions/bulltorrent.yml
Normal file
@@ -0,0 +1,120 @@
|
||||
---
|
||||
id: bulltorrent
|
||||
name: BullTorrent
|
||||
description: "BullTorrent (formerly TOROS) is a Public torrent index"
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.bulltorrent.com/
|
||||
- https://toros.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://toros.nocensor.space/
|
||||
- https://toros.nocensor.work/
|
||||
- https://www.toros.co/
|
||||
- https://toros.nocensor.biz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies, desc: Movies}
|
||||
- {id: 2, cat: Audio, desc: Music}
|
||||
- {id: 3, cat: TV, desc: Television}
|
||||
- {id: 4, cat: PC/Games, desc: Games}
|
||||
- {id: 5, cat: PC, desc: Software}
|
||||
- {id: 6, cat: TV/Anime, desc: Anime}
|
||||
- {id: 7, cat: XXX, desc: Adult}
|
||||
- {id: 8, cat: Books, desc: Ebooks}
|
||||
- {id: 9, cat: TV/Anime, desc: Animation}
|
||||
- {id: 10, cat: Other, desc: Other}
|
||||
- {id: 0, cat: Other, desc: TBC}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
# https://www.bulltorrent.com/all/torrents/2022.html?v=&i=100&sort=added&o=desc
|
||||
- path: "{{ if .Keywords }}all/torrents/{{ .Keywords }}.html?v=&i=100&sort={{ .Config.sort }}&o={{ .Config.type }}{{ else }}trending.html{{ end }}"
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["[\\s]+", "-"]
|
||||
- name: tolower
|
||||
|
||||
rows:
|
||||
selector: table.table-responsive tr:has(a[href^="/torrent/"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td:nth-child(1)
|
||||
attribute: class
|
||||
filters:
|
||||
- name: regexp
|
||||
args: (\d+)
|
||||
title:
|
||||
selector: a[href^="/torrent/"]
|
||||
details:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="/torrent/"]
|
||||
attribute: href
|
||||
date_day:
|
||||
selector: td:nth-child(2):contains("day")
|
||||
optional: true
|
||||
filters:
|
||||
- name: fuzzytime
|
||||
date_ago:
|
||||
selector: td:nth-child(2):contains("ago")
|
||||
optional: true
|
||||
filters:
|
||||
- name: timeago
|
||||
date_year:
|
||||
selector: td:nth-child(2):not(:contains("ago")):not(:contains("day"))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2 Jan -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_ago .Result.date_day }}{{ or .Result.date_year .Result.date_ago .Result.date_day }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td:nth-child(3)
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
@@ -208,6 +208,17 @@ search:
|
||||
case:
|
||||
img[src="pic/double_upload.png"]: 2
|
||||
"*": 1
|
||||
genre:
|
||||
selector: td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "Genre:\\s(.+?)$"
|
||||
- name: replace
|
||||
args: [", ", ","]
|
||||
- name: replace
|
||||
args: [" ", "_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
|
@@ -23,8 +23,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
tv-search: [q, season, ep, imdbid, doubanid]
|
||||
movie-search: [q, imdbid, doubanid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
@@ -87,23 +87,21 @@ search:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ end }}{{ if .Query.DoubanID }}/{{ .Query.DoubanID }}{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}{{ end }}{{ if .Query.DoubanID }}1{{ else }}{{ end }}{{ if or .Query.IMDBID .Query.DoubanID }}{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact, 3 NOT
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
|
@@ -87,6 +87,7 @@ search:
|
||||
onlyname2: true
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# can search by genre but you need the id. &imdbcat=1 for Akció.
|
||||
|
||||
rows:
|
||||
selector: table[id!="torrent_ajanlo"] > tbody > tr[id]
|
||||
@@ -98,11 +99,6 @@ search:
|
||||
title:
|
||||
selector: a[id][href^="details.php?"]
|
||||
attribute: title
|
||||
description:
|
||||
selector: font.line
|
||||
filters:
|
||||
- name: regexp
|
||||
args: .*?\|\s*(.*)
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
@@ -118,6 +114,13 @@ search:
|
||||
poster:
|
||||
selector: a[rel^="prettyPhoto["]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: font.line
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Akció, Animáció, Beszélgetős, Családi, Dokumentum, Dráma, Életrajzi, Fantasztikus, Film-Noir, Game-Show, Háborús, Horror, Kaland, Krimi, Misztikus, Musical, News, Reality-TV, Romantikus, Rövidfilm, Sci-Fi, Sport, Thriller, Történelmi, Vígjáték, Western, Zene"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: td:nth-child(4)
|
||||
size:
|
||||
@@ -145,6 +148,8 @@ search:
|
||||
args: ["napja", "day"]
|
||||
- name: replace
|
||||
args: ["hete", "week"]
|
||||
- name: replace
|
||||
args: ["éve", "year"]
|
||||
- name: timeago
|
||||
downloadvolumefactor:
|
||||
text: 0
|
||||
|
@@ -35,12 +35,12 @@ caps:
|
||||
- {id: 31, cat: PC/0day, desc: "Programok/RIP"}
|
||||
- {id: 33, cat: TV, desc: "Sorozat/Eng"}
|
||||
- {id: 32, cat: TV, desc: "Sorozat/Hun"}
|
||||
- {id: 34, cat: XXX, desc: "XXX/Filmek"}
|
||||
- {id: 39, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
||||
- {id: 29, cat: Audio/Lossless, desc: "Zene/FLAC/Eng"}
|
||||
- {id: 28, cat: Audio/Lossless, desc: "Zene/FLAC/Hun"}
|
||||
- {id: 27, cat: Audio/MP3, desc: "Zene/MP3/Eng"}
|
||||
- {id: 26, cat: Audio/MP3, desc: "Zene/MP3/Hun"}
|
||||
- {id: 34, cat: XXX, desc: "XXX/Filmek"}
|
||||
- {id: 39, cat: XXX/ImageSet, desc: "XXX/Képek"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -87,7 +87,12 @@ login:
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: letoltes.php
|
||||
- path: browse.php
|
||||
categories: ["!", 34, 39]
|
||||
- path: browse.php
|
||||
categories: [34, 39]
|
||||
inputs:
|
||||
xxx: 1
|
||||
keywordsfilters:
|
||||
# the site uses % for wildcard
|
||||
- name: re_replace
|
||||
@@ -98,15 +103,16 @@ search:
|
||||
# 0 both, 1 onlyactive, 2 onlydead, 3 onlyfree, 4 x2 torrents, 5 mytorrents, 6 waiting for seeds
|
||||
incldead: "{{ if .Config.freeleech }}3{{ else }}0{{ end }}"
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
order: "{{ .Config.type }}"
|
||||
# does not support imdbid searches
|
||||
# can support genre searching but you need to know the id, eg &genre2=1 for Comedy (id is 2)
|
||||
|
||||
rows:
|
||||
selector: table[width="920px"] > tbody > tr:has(a[href^="letoltes.php?cat="])
|
||||
selector: "table[border=\"1\"][cellpadding=\"3\"][style=\"width: 920px;\"] > tbody > tr:has(a[href^=\"browse.php?cat=\"])"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="letoltes.php?cat="]
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
@@ -126,15 +132,19 @@ search:
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: small[title]
|
||||
attribute: title
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
poster:
|
||||
selector: a[onmouseover]
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) width"
|
||||
args: "showTorrentThumb\\('(.*?)', "
|
||||
date:
|
||||
selector: small
|
||||
remove: font
|
||||
selector: td:nth-last-child(8)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\u00a0", " "]
|
||||
|
189
src/Jackett.Common/Definitions/carpt.yml
Normal file
189
src/Jackett.Common/Definitions/carpt.yml
Normal file
@@ -0,0 +1,189 @@
|
||||
---
|
||||
id: carpt
|
||||
name: CarPT
|
||||
description: "CarPT (猪猪网) is a CHINESE Private Torrent Tracker for HD MOVIES / TV"
|
||||
language: zh-CN
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://carpt.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 401, cat: Movies, desc: "Movies/电影"}
|
||||
- {id: 402, cat: TV, desc: "TV Series/连续剧"}
|
||||
- {id: 403, cat: TV/Anime, desc: "Animations/动漫"}
|
||||
- {id: 404, cat: TV/Documentary, desc: "Documentaries/纪录片"}
|
||||
- {id: 405, cat: TV, desc: "TV Shows/综艺"}
|
||||
- {id: 406, cat: Audio, desc: "Music/音乐"}
|
||||
- {id: 407, cat: Other, desc: "Misc/其他"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep, imdbid]
|
||||
movie-search: [q, imdbid]
|
||||
music-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: 2facode
|
||||
type: text
|
||||
label: 2FA code
|
||||
- name: info_2fa
|
||||
type: info
|
||||
label: "About 2FA code"
|
||||
default: "Only fill in the <b>2FA code</b> box if you have enabled <b>2FA</b> on the CarPT Web Site. Otherwise just leave it empty."
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: 4
|
||||
options:
|
||||
4: created
|
||||
7: seeders
|
||||
5: size
|
||||
1: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[alt="CAPTCHA"]
|
||||
input: imagestring
|
||||
inputs:
|
||||
secret: ""
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
two_step_code: "{{ .Config.2facode }}"
|
||||
logout: ""
|
||||
securelogin: ""
|
||||
ssl: yes
|
||||
trackerssl: yes
|
||||
error:
|
||||
- selector: td.embedded:has(h2:contains("失败"))
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: torrents.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}cat{{.}}=1&{{end}}"
|
||||
search: "{{ if .Query.IMDBID }}{{ .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}"
|
||||
# 0 incldead, 1 active, 2 dead
|
||||
incldead: 0
|
||||
# 0 all, 1 normal, 2 free, 3 2x, 4 2xfree, 5 50%, 6 2x50%, 7 30%
|
||||
spstate: "{{ if .Config.freeleech }}2{{ else }}0{{ end }}"
|
||||
# 0 title, 1 descr, 3 uploader, 4 imdburl
|
||||
search_area: "{{ if .Query.IMDBID }}4{{ else }}0{{ end }}"
|
||||
# 0 AND, 1 OR, 2 exact
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(a[href^="details.php?id="])
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
title_default:
|
||||
selector: a[href^="details.php?id="]
|
||||
title_optional:
|
||||
optional: true
|
||||
selector: a[title][href^="details.php?id="]
|
||||
attribute: title
|
||||
title:
|
||||
text: "{{ if .Result.title_optional }}{{ .Result.title_optional }}{{ else }}{{ .Result.title_default }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
imdbid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
doubanid:
|
||||
# site currently only has a badge and rating, the id is not present. just in case a future update.
|
||||
selector: a[href*="movie.douban.com/subject/"]
|
||||
attribute: href
|
||||
date_elapsed:
|
||||
# time type: time elapsed (default)
|
||||
selector: td.rowfollow:nth-child(4) > span[title]
|
||||
attribute: title
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-02 15:04:05 -07:00"
|
||||
date_added:
|
||||
# time added
|
||||
selector: td.rowfollow:nth-child(4):not(:has(span))
|
||||
optional: true
|
||||
filters:
|
||||
- name: append
|
||||
args: " +08:00" # CST
|
||||
- name: dateparse
|
||||
args: "2006-01-0215:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_elapsed .Result.date_added }}{{ or .Result.date_elapsed .Result.date_added }}{{ else }}now{{ end }}"
|
||||
size:
|
||||
selector: td.rowfollow:nth-child(5)
|
||||
seeders:
|
||||
selector: td.rowfollow:nth-child(6)
|
||||
leechers:
|
||||
selector: td.rowfollow:nth-child(7)
|
||||
grabs:
|
||||
selector: td.rowfollow: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
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 1 day (as seconds = 24 x 60 x 60)
|
||||
text: 86400
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, img
|
||||
# NexusPHP v1.7.16
|
@@ -129,13 +129,11 @@ search:
|
||||
- name: regexp
|
||||
args: tt(\d+)
|
||||
poster:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
selector: td a[href^="index.php?page=torrent-details"]:not(a[onmouseover*="torrentimg/nocover.jpg"])
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.+?) width"
|
||||
- name: replace
|
||||
args: ["torrentimg/nocover.jpg", ""]
|
||||
args: src=([^\s]+)
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
# two flavours of dates
|
||||
|
@@ -18,8 +18,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, genre]
|
||||
movie-search: [q, genre]
|
||||
|
||||
settings:
|
||||
- name: info_2fa
|
||||
@@ -81,10 +81,18 @@ search:
|
||||
order_way: "{{ .Config.type }}"
|
||||
action: advanced
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
taglist: ""
|
||||
taglist: "{{ .Query.Genre }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -95,15 +103,26 @@ search:
|
||||
args: \[(\d+)\]
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
filters:
|
||||
- name: re_replace # Seasons X-Y --> SX-SY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)", "S$1-S$2"]
|
||||
- name: re_replace # Season X --> S0X
|
||||
args: ["(?i)season\\s*(\\d+)", "S$"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Complete\\s+Series", ""]
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
optional: true
|
||||
genre:
|
||||
selector: div.tags
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Comedy, Crime, Documentary, Drama, Family, Fantasy, History, Horror, Kids, Music, Mystery, News, Reality, Romance, SciFi, Soap, Talk, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
poster:
|
||||
selector: td:nth-child(2) > script
|
||||
filters:
|
||||
|
@@ -88,8 +88,10 @@ search:
|
||||
poster:
|
||||
selector: img
|
||||
attribute: src
|
||||
description:
|
||||
genre:
|
||||
selector: div.short_game_genre
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
date:
|
||||
text: now
|
||||
seeders:
|
||||
|
@@ -96,6 +96,7 @@ search:
|
||||
search_mode: 0
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# can support genre searching but you need to know the id, eg &team10=1 for Drama (id is 10)
|
||||
|
||||
rows:
|
||||
selector: table.torrents > tbody > tr:has(table.torrentname)
|
||||
@@ -170,4 +171,10 @@ search:
|
||||
description:
|
||||
selector: td.rowfollow:nth-child(2)
|
||||
remove: a, img
|
||||
genre:
|
||||
selector: table.torrentname > tbody > tr > td:first-child
|
||||
remove: a
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Akční, Animovaný, Dobrodružný, Dokumentární, Drama, Fantasy, Horor, Komedie, Krimi, Pohádka, Rodinný, Romantický, Sci-Fi, Thriller, Válečný, Western"
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
|
@@ -95,6 +95,7 @@ search:
|
||||
page: 0
|
||||
view: list
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
@@ -124,6 +125,17 @@ search:
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
genre:
|
||||
selector: td:nth-last-child(6)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Game-Show, History, Horror, Music, Musical, Mystery, News, Reality-TV, Romance, Science_Fiction, Sitcom, Sport, Talk-Show, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
|
@@ -104,6 +104,7 @@ search:
|
||||
quality: none
|
||||
sort: "{{ .Config.sort }}"
|
||||
type: "{{ .Config.type }}"
|
||||
# can search by a genre, (gatunek), but you need to know the id: &gatunek=64 to search Sci-Fi
|
||||
|
||||
rows:
|
||||
selector: table[width="100%"] > tbody > tr:has(a[href^="browse.php?cat="])
|
||||
@@ -148,10 +149,19 @@ search:
|
||||
imdbid:
|
||||
selector: a[href*="imdb.com/title/tt"]
|
||||
attribute: href
|
||||
genre:
|
||||
selector: td[align="right"][width="66%"][valign="bottom"]
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\xA0", " "]
|
||||
- name: validate
|
||||
args: "Akcja, Animacja, Anime, Basn, Biblijny, Biograficzny, Czarna komedia, Dla dzieci, Dla mlodziezy, Dokumentalizowany, Dokumentalny, Dramat, Dramat historyczny, Dramat obyczajowy, Dramat sadowy, Dramat spoleczny, Dreszczowiec, Edukacyjny, Erotyczny, Etiuda, Fabularyzowany dok., Familijny, Fantasy, Film-Noir, Gangsterski, Groteska filmowa, Historyczny, Horror, Karate, Katastroficzny, Komedia, Komedia dokumentalna, Komedia kryminalna, Komedia obycz., Komedia rom., Kostiumowy, Krótkometrażowy, Kryminał, Melodramat, Motoryzacyjny, Musical, Muzyczny, Kulinarny, Nowele filmowe, Obyczajowy, Poetycki, Polityczny, Prawniczy, Przygodowy, Przyrodniczy, Psychologiczny, Plaszcza i szpady, Religijny, Romans, Rozrywka, Satyra, Sci-Fi, Sensacyjny, Sportowy, Surreallistyczny, Szpiegowski, Sztuki walki, Świąteczne, Thriller, Western, Wojenny, Kabaret, Action, Adventure, Arcade, Fps, Fighting, MMO, Puzzle, Racing, Rpg, RTS, Shooter, Simulation, Stealth, Strategy, Sport , Tps, Early Access, DOX, PC, X360, PlayStation, PSP, Alternative, Ambient, Classical, Dubstep, Drum and bass, Dance, Disco polo, Disco, Dla dzieci, Electronic, Folc, Hardstyle, Hardcore, Hip-hop, House, Jazz, Kompilacje muzyczne, Metal, Progressive house, Pop, Punk, Rap, Reggae, Rnb, Rock, Soul, Techno, Trance, Breaks, Chill out, Club, Deep house, Electro house, Tech house, GOA/PSY, Instrumental, Minimal, Soundtrack, Sety, Prasa, Czasopisma, Książka, Audiobook, Polskie, Klasyka, Poezja, Literatura piękna, Literatura faktu, Autobiografia, Pamiętnik"
|
||||
description:
|
||||
selector: img[src="pic/Poland.png"]
|
||||
attribute: src
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "{{ if .Result.genre }}{{ .Result.genre }} - {{ else }}{{ end }}"
|
||||
- name: replace
|
||||
args: ["pic/Poland.png", "Polish"]
|
||||
date:
|
||||
|
@@ -39,7 +39,7 @@ search:
|
||||
- path: "{{ if .Keywords }}search?query={{ .Keywords }}{{ else }}latest{{ end }}"
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
selector: table > tbody > tr:has(a)
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -71,7 +71,7 @@ search:
|
||||
size:
|
||||
selector: td[data-title="Size"]
|
||||
downloadvolumefactor:
|
||||
text: 1
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# engine n/a
|
||||
|
@@ -160,10 +160,12 @@ search:
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/oupic.gif"]: 0
|
||||
img[src="pic/oupic.gif"]: 0 # only upload is counted
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
case:
|
||||
img[src="pic/freeleech.gif"]: 0 # nothing is counted
|
||||
"*": 1
|
||||
minimumratio:
|
||||
text: 0.7
|
||||
# engine n/a
|
||||
|
@@ -5,6 +5,7 @@ description: "comicat is a CHINESE Public tracker for Anime / Hentai / Manga"
|
||||
language: zh-CN
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.comicat.org/
|
||||
|
||||
@@ -21,7 +22,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
@@ -3,11 +3,11 @@ id: cpasbien
|
||||
name: cpasbien
|
||||
description: "cpasbien is a FRENCH Public site for TV / MOVIES / GENERAL"
|
||||
language: fr-FR
|
||||
type: semi-private
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://vwwvwvwvvw.cpasbien-fr.nz/
|
||||
- https://cpasbiens3.fr/
|
||||
legacylinks:
|
||||
- http://www.cpasbiens.cc/
|
||||
- http://www.cpabien.cm/
|
||||
@@ -43,6 +43,7 @@ legacylinks:
|
||||
- https://wwwv.cpasbien-fr.fr/
|
||||
- https://www2.cpasbien-fr.fr/
|
||||
- https://www.cpasbien-fr.nz/
|
||||
- https://vwwvwvwvvw.cpasbien-fr.nz/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -54,13 +55,6 @@ caps:
|
||||
movie-search: [q]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Cookie
|
||||
- name: info_cookie
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Solve the challenge<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button<li>Refresh the page by pressing <b>F5</b><li>Select the <b>Headers</b> tab<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
@@ -89,11 +83,6 @@ settings:
|
||||
label: Replace VOSTFR with ENGLISH
|
||||
default: false
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="magnet:?xt="]
|
||||
@@ -114,31 +103,31 @@ search:
|
||||
args: ["(?i)(S)(\\d{1,3})$", "saison $2"]
|
||||
|
||||
rows:
|
||||
selector: div#gauche > table > tbody > tr:has(a)
|
||||
selector: div#gauche > table > tbody > tr:has(a), div#dle-content > table > tbody > tr:has(a)
|
||||
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
site_date:
|
||||
_site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# date is at the end of the title, so we get it and name it site_date
|
||||
# date is at the end of the title, so we get it and name it _site_date
|
||||
- name: regexp
|
||||
args: "(19|20\\d{2})$"
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result.site_date
|
||||
# now we put the date at the right place according scene naming rules using .Result._site_date
|
||||
- name: re_replace
|
||||
args: ["(?i)( FRENCH)", " {{ .Result.site_date }} FRENCH"]
|
||||
args: ["(?i)( FRENCH)", " {{ .Result._site_date }} FRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( MULTI)", " {{ .Result.site_date }} MULTI"]
|
||||
args: ["(?i)( MULTI)", " {{ .Result._site_date }} MULTI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result.site_date }} TRUEFRENCH"]
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result._site_date }} TRUEFRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result.site_date }} VOSTFR"]
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result._site_date }} VOSTFR"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result.site_date }} SUBFRENCH"]
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result._site_date }} SUBFRENCH"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(19|20\\d{2})$", ""]
|
||||
|
@@ -7,7 +7,7 @@ type: public
|
||||
encoding: UTF-8
|
||||
followredirect: true
|
||||
links:
|
||||
- https://cpasbien.to/
|
||||
- https://www.cpasbien.tw/
|
||||
legacylinks:
|
||||
- https://www1.cpasbiens.ws/
|
||||
- https://www2.cpasbiens.ws/
|
||||
@@ -21,6 +21,7 @@ legacylinks:
|
||||
- https://cpasbiens.ind-unblock.xyz/
|
||||
- https://www.cpasbien.gg/
|
||||
- https://www.cpasbien.vip/
|
||||
- https://cpasbien.to/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -70,9 +71,12 @@ settings:
|
||||
trie-nom-a: title asc
|
||||
|
||||
download:
|
||||
before:
|
||||
# request target
|
||||
path: "download_magnet?id={{ re_replace .DownloadUri.AbsoluteUri \"^.*-(\\d+)\\.html\" \"$1\" }}"
|
||||
selectors:
|
||||
- selector: a[href^="magnet:"]
|
||||
attribute: href
|
||||
- selector: body
|
||||
usebeforeresponse: true
|
||||
|
||||
search:
|
||||
paths:
|
||||
@@ -84,26 +88,26 @@ search:
|
||||
fields:
|
||||
category:
|
||||
text: Other
|
||||
site_date:
|
||||
_site_date:
|
||||
selector: a
|
||||
filters:
|
||||
# year can be at the end of the title, so we get it and name it site_date
|
||||
# year can be at the end of the title, so we get it and name it _site_date
|
||||
- name: regexp
|
||||
args: "(19|20\\d{2})$"
|
||||
title_phase1:
|
||||
selector: a
|
||||
filters:
|
||||
# now we put the date at the right place according scene naming rules using .Result.site_date
|
||||
# now we put the date at the right place according scene naming rules using .Result._site_date
|
||||
- name: re_replace
|
||||
args: ["(?i)( FRENCH)", " {{ .Result.site_date }} FRENCH"]
|
||||
args: ["(?i)( FRENCH)", " {{ .Result._site_date }} FRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( MULTI)", " {{ .Result.site_date }} MULTI"]
|
||||
args: ["(?i)( MULTI)", " {{ .Result._site_date }} MULTI"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result.site_date }} TRUEFRENCH"]
|
||||
args: ["(?i)( TRUEFRENCH)", " {{ .Result._site_date }} TRUEFRENCH"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result.site_date }} VOSTFR"]
|
||||
args: ["(?i)( VOSTFR)", " {{ .Result._site_date }} VOSTFR"]
|
||||
- name: re_replace
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result.site_date }} SUBFRENCH"]
|
||||
args: ["(?i)( SUBFRENCH)", " {{ .Result._site_date }} SUBFRENCH"]
|
||||
# and we delete it at the end
|
||||
- name: re_replace
|
||||
args: ["(19|20\\d{2})$", ""]
|
||||
|
@@ -90,12 +90,20 @@ caps:
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
- name: cookie
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
label: Cookie
|
||||
- name: info
|
||||
type: info
|
||||
label: How to get the Cookie
|
||||
default: "<ol><li>Login to this tracker with your browser<li>Open the <b>DevTools</b> panel by pressing <b>F12</b><li>Select the <b>Network</b> tab<li>Click on the <b>Doc</b> button (Chrome Browser) or <b>HTML</b> button (FireFox)<li>Refresh the page by pressing <b>F5</b><li>Click on the first row entry<li>Select the <b>Headers</b> tab on the Right panel<li>Find <b>'cookie:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole cookie string <i>(everything after 'cookie: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: useragent
|
||||
type: text
|
||||
label: User-Agent
|
||||
- name: info_useragent
|
||||
type: info
|
||||
label: How to get the User-Agent
|
||||
default: "<ol><li>From the same place you fetched the cookie,<li>Find <b>'user-agent:'</b> in the <b>Request Headers</b> section<li><b>Select</b> and <b>Copy</b> the whole user-agent string <i>(everything after 'user-agent: ')</i> and <b>Paste</b> here.</ol>"
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
@@ -118,19 +126,16 @@ settings:
|
||||
1: asc
|
||||
|
||||
login:
|
||||
path: index.php
|
||||
method: form
|
||||
form: form[action="index.php?page=login"]
|
||||
method: cookie
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: td.lista span[style="color:#FF0000;"]
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: index.php
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
search:
|
||||
headers:
|
||||
User-Agent: ["{{ .Config.useragent }}"]
|
||||
paths:
|
||||
- path: index.php?page=searchlist
|
||||
method: post
|
||||
@@ -184,6 +189,13 @@ search:
|
||||
args: "download.php?id="
|
||||
- name: append
|
||||
args: "&f={{ .Result.title }}.torrent"
|
||||
genre:
|
||||
selector: div.col-md-12
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Game-Show, History, Horror, Kids, Music, Musical, Mystery, News, Reality-TV, Romance, Sci-Fi, Sport, Soap, Talk-Show, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: div.torrent-size
|
||||
date:
|
||||
|
@@ -7,8 +7,6 @@ type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.crazyspirits.com/
|
||||
certificates:
|
||||
- cb68471b631304b3b4cec6315cfbad5a6780eb84 # self-signed 13 Mar 2022
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
|
@@ -26,6 +26,7 @@ caps:
|
||||
- {id: 61, cat: Movies/HD, desc: "HD Mesano"}
|
||||
- {id: 50, cat: PC/Games, desc: "Igre"}
|
||||
- {id: 44, cat: Books, desc: "Knjige"}
|
||||
- {id: 80, cat: TV, desc: "Paketi"}
|
||||
- {id: 46, cat: Audio, desc: "Koncerti"}
|
||||
- {id: 58, cat: Audio/Lossless, desc: "Lossless/Domaće"}
|
||||
- {id: 59, cat: Audio/Lossless, desc: "Lossless/Strano"}
|
||||
|
@@ -18,8 +18,8 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
tv-search: [q, season, ep, genre]
|
||||
movie-search: [q, genre]
|
||||
|
||||
settings:
|
||||
- name: cookie
|
||||
@@ -71,10 +71,18 @@ search:
|
||||
order_way: "{{ .Config.type }}"
|
||||
action: advanced
|
||||
filter_freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
taglist: ""
|
||||
taglist: "{{ .Query.Genre }}"
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)\\b", "$1"]
|
||||
- name: re_replace
|
||||
args: ["(?i)\\bS0*(\\d+)E0*(\\d+)\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: table#torrent_table > tbody > tr[class^="torrent row"]:has(a[href*="action=download"])
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
@@ -85,14 +93,26 @@ search:
|
||||
args: \[(\d+)\]
|
||||
title:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
filters:
|
||||
- name: re_replace # Seasons X-Y --> SX-SY
|
||||
args: ["(?i)seasons?\\s*(\\d+)\\s*-\\s*(\\d+)", "S$1-S$2"]
|
||||
- name: re_replace # Season X --> S0X
|
||||
args: ["(?i)season\\s*(\\d+)", "S$"]
|
||||
- name: re_replace
|
||||
args: ["(?i)Complete\\s+Series", ""]
|
||||
details:
|
||||
selector: a[href^="/torrents.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="torrents.php?action=download&id="]
|
||||
attribute: href
|
||||
description:
|
||||
genre:
|
||||
selector: div.tags
|
||||
filters:
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Comedy, Crime, Documentary, Drama, Family, Fantasy, History, Horror, Kids, Music, Mystery, News, Reality, Romance, SciFi, Soap, Talk, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
poster:
|
||||
selector: td:nth-child(2) > script
|
||||
filters:
|
||||
|
@@ -1,184 +0,0 @@
|
||||
---
|
||||
id: cryptichaven
|
||||
name: CrypticHaven
|
||||
description: "CrypticHaven Comedy Club (CCC) is a Private Torrent Tracker dedicated to sharing the joy of Comedy."
|
||||
language: en-US
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- http://www.cryptichaven.org/ # https not supported ERR_CONNECTION_REFUSED
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Stand-up
|
||||
- {id: 23, cat: TV, desc: "Stand-up DVD5/9"}
|
||||
- {id: 24, cat: TV, desc: "Stand-up AVI"}
|
||||
- {id: 25, cat: TV, desc: "Stand-up MKV"}
|
||||
- {id: 63, cat: TV, desc: "Stand-up MP4"}
|
||||
- {id: 72, cat: TV, desc: "Stand-up WMV"}
|
||||
- {id: 73, cat: TV, desc: "Stand-up MPG"}
|
||||
# TV Shows Seasons
|
||||
- {id: 27, cat: TV, desc: "USA/Canadian DVD5/9"}
|
||||
- {id: 28, cat: TV, desc: "USA/Canadian AVI"}
|
||||
- {id: 29, cat: TV, desc: "USA/Canadian MKV"}
|
||||
- {id: 66, cat: TV, desc: "USA/Canadian MP4"}
|
||||
- {id: 30, cat: TV, desc: "UK/Europe DVD5/9"}
|
||||
- {id: 31, cat: TV, desc: "UK/Europe AVI"}
|
||||
- {id: 32, cat: TV, desc: "UK/Europe MKV"}
|
||||
- {id: 67, cat: TV, desc: "UK/Europe MP4"}
|
||||
- {id: 33, cat: TV, desc: "NZ/Aussie DVD5/9"}
|
||||
- {id: 34, cat: TV, desc: "NZ/Aussie AVI"}
|
||||
- {id: 35, cat: TV, desc: "NZ/Aussie MKV"}
|
||||
- {id: 68, cat: TV, desc: "NZ/Aussie MP4"}
|
||||
# TV Shows Episodes
|
||||
- {id: 76, cat: TV, desc: "UK/Europe DVD"}
|
||||
- {id: 37, cat: TV, desc: "USA/Canadian eps AVI"}
|
||||
- {id: 38, cat: TV, desc: "USA/Canadian eps MKV"}
|
||||
- {id: 69, cat: TV, desc: "USA/Canadian eps MP4"}
|
||||
- {id: 39, cat: TV, desc: "UK/Europe eps AVI"}
|
||||
- {id: 40, cat: TV, desc: "UK/Europe eps MKV"}
|
||||
- {id: 70, cat: TV, desc: "UK/Europe eps MP4"}
|
||||
- {id: 41, cat: TV, desc: "NZ/Aussie eps AVI"}
|
||||
- {id: 42, cat: TV, desc: "NZ/Aussie eps MKV"}
|
||||
- {id: 71, cat: TV, desc: "NZ/Aussie eps MP4"}
|
||||
# Audio Comedy
|
||||
- {id: 54, cat: Audio, desc: "Comedy Albums"}
|
||||
- {id: 44, cat: Audio, desc: "Radio Shows"}
|
||||
- {id: 45, cat: Audio, desc: "Audio Stand-up"}
|
||||
- {id: 55, cat: Audio, desc: "Bootleg"}
|
||||
- {id: 47, cat: Audio, desc: "Musical Comedy"}
|
||||
- {id: 46, cat: Audio/Audiobook, desc: "Audiobooks"}
|
||||
- {id: 56, cat: Audio, desc: "Prank Calls"}
|
||||
- {id: 57, cat: Audio, desc: "Skit/Sketch"}
|
||||
- {id: 58, cat: Audio, desc: "Compilations"}
|
||||
- {id: 61, cat: Audio, desc: "PodCast"}
|
||||
# Comics
|
||||
- {id: 49, cat: Books/Comics, desc: "Comics"}
|
||||
# Books
|
||||
- {id: 51, cat: Books/EBook, desc: "Books"}
|
||||
# Random Oddities
|
||||
- {id: 53, cat: TV, desc: "Random Oddities"}
|
||||
- {id: 59, cat: TV, desc: "Late Night Talkshows"}
|
||||
- {id: 77, cat: TV, desc: "Non-English language"}
|
||||
# BY REQUEST ONLY
|
||||
- {id: 19, cat: Movies, desc: "Movie DVD5/9"}
|
||||
- {id: 20, cat: Movies, desc: "Movie AVI"}
|
||||
- {id: 21, cat: Movies, desc: "Movie MKV"}
|
||||
- {id: 62, cat: Movies, desc: "Movie MP4"}
|
||||
- {id: 74, cat: Movies, desc: "Movie Xvid"}
|
||||
- {id: 75, cat: Movies, desc: "Movie Other"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Search freeleech only
|
||||
default: false
|
||||
- name: info_tpp
|
||||
type: info
|
||||
label: Results Per Page
|
||||
default: For best results, change the <b>Torrents per page:</b> setting to <b>100</b> on your account profile.
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: data
|
||||
options:
|
||||
data: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
filename: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: DESC
|
||||
options:
|
||||
DESC: desc
|
||||
ASC: asc
|
||||
|
||||
login:
|
||||
path: index.php?page=login
|
||||
method: form
|
||||
form: form[action^="index.php?page=login"]
|
||||
inputs:
|
||||
uid: "{{ .Config.username }}"
|
||||
pwd: "{{ .Config.password }}"
|
||||
error:
|
||||
- selector: span[style="color:#FF0000;"]
|
||||
test:
|
||||
path: index.php
|
||||
selector: a[href="/logout.php"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: index.php
|
||||
inputs:
|
||||
page: torrents
|
||||
# 0 all, 1 activeonly, 2 deadonly
|
||||
active: 0
|
||||
search: "{{ .Keywords }}"
|
||||
category: "{{ if .Categories }}{{ range .Categories }}{{.}};{{end}}{{ else }}0{{ end }}"
|
||||
fl: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
order: "{{ .Config.sort }}"
|
||||
by: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "table.lista > tbody > tr:has(a[href^=\"index.php?page=torrent-details\"])"
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: td a[href^="index.php?page=torrents&category="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: category
|
||||
title:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
details:
|
||||
selector: td a[href^="index.php?page=torrent-details"]
|
||||
attribute: href
|
||||
description:
|
||||
selector: td a[href^="index.php?page=torrents&category="]
|
||||
attribute: title
|
||||
download:
|
||||
selector: td a[href^="/download.php"]
|
||||
attribute: href
|
||||
date:
|
||||
# 22/01/21 01:28
|
||||
selector: td:nth-child(5)
|
||||
filters:
|
||||
- name: append
|
||||
args: " +00:00" # auto adjusted by site account profile - doesn't adjust for DST
|
||||
- name: dateparse
|
||||
args: "02/01/2006 -07:00"
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
grabs:
|
||||
selector: td:nth-child(8)
|
||||
size:
|
||||
selector: td:nth-child(10)
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
"strong:contains(\"FreeLeech\")": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 14 days (as seconds = 14 x 24 x 60 x 60)
|
||||
text: 1209600
|
||||
# xbtit
|
@@ -87,20 +87,24 @@ search:
|
||||
selector: $.resultsCount
|
||||
|
||||
fields:
|
||||
id:
|
||||
_id:
|
||||
selector: .id
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}torrents/{{ .Result.id }}"
|
||||
text: "{{ .Config.sitelink }}torrents/{{ .Result._id }}"
|
||||
download:
|
||||
text: "{{ .Config.sitelink }}torrent/download/{{ .Result.id }}.{{ .Config.rsskey }}"
|
||||
text: "{{ .Config.sitelink }}torrent/download/{{ .Result._id }}.{{ .Config.rsskey }}"
|
||||
infohash:
|
||||
selector: info_hash
|
||||
poster:
|
||||
selector: poster_image
|
||||
genre:
|
||||
selector: meta_genres
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
imdbid:
|
||||
selector: imdb
|
||||
tmdbid:
|
||||
|
@@ -30,9 +30,10 @@ caps:
|
||||
- {id: 63, cat: Audio/Audiobook, desc: "Audio Hörbuch"}
|
||||
- {id: 120, cat: Audio/Video, desc: "Audio Videos"}
|
||||
# App
|
||||
- {id: 12, cat: PC/0day, desc: "App PC"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "App Mobil"}
|
||||
- {id: 125, cat: PC/Mac, desc: "App macOS"}
|
||||
- {id: 12, cat: PC/0day, desc: "Apps Windows"}
|
||||
- {id: 125, cat: PC/Mac, desc: "Apps Mac-OSX"}
|
||||
- {id: 11, cat: PC/Mobile-Other, desc: "Apps Mobil"}
|
||||
- {id: 141, cat: PC/ISO, desc: "Apps Other"}
|
||||
# Doku
|
||||
- {id: 15, cat: TV/Documentary, desc: "Doku SD"}
|
||||
- {id: 14, cat: TV/Documentary, desc: "Doku HD"}
|
||||
@@ -53,6 +54,7 @@ caps:
|
||||
- {id: 76, cat: XXX/XviD, desc: "XXX SD"}
|
||||
- {id: 73, cat: XXX/x264, desc: "XXX HD"}
|
||||
- {id: 75, cat: XXX/Pack, desc: "XXX Pack"}
|
||||
- {id: 142, cat: XXX/ImageSet, desc: "XXX Pic´s"}
|
||||
# Internal
|
||||
- {id: 129, cat: Movies/SD, desc: "Internal Film SD"}
|
||||
- {id: 128, cat: Movies/HD, desc: "Internal Film HD"}
|
||||
@@ -147,12 +149,12 @@ search:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
cat_p1:
|
||||
category_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
cat_p2:
|
||||
category_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.cat_p1 }} {{ .Result.cat_p2 }}"
|
||||
text: "{{ .Result.category_p1 }} {{ .Result.category_p2 }}"
|
||||
title:
|
||||
selector: a.selection_a
|
||||
filters:
|
||||
@@ -166,7 +168,7 @@ search:
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
args: ["details.php?id=", "download_ssl.php?torrent="]
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
|
@@ -72,10 +72,24 @@ search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
attribute: attributes
|
||||
@@ -83,8 +97,8 @@ search:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
@@ -92,7 +106,7 @@ search:
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -102,6 +116,19 @@ search:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(All Sex)", "All_Sex"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -116,20 +143,25 @@ search:
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0: 1 # not free
|
||||
1: 0 # freeleech
|
||||
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
|
||||
# global MR is 0.4 but torrents must be seeded for 7 days regardless of ratio
|
||||
# minimumratio:
|
||||
# text: 0.4
|
||||
minimumseedtime:
|
||||
# 3 days (as seconds = 3 x 24 x 60 x 60)
|
||||
text: 259200
|
||||
# json UNIT3D 5.3.0
|
||||
# 2 days (as seconds = 2 x 24 x 60 x 60)
|
||||
text: 172800
|
||||
# json UNIT3D 6.4.1
|
||||
|
@@ -155,6 +155,14 @@ search:
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
genre:
|
||||
selector: td:nth-child(2)
|
||||
remove: a
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Kieli:|Tekstit:|Array|\x0A|\x09)", ""]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.05
|
||||
# engine n/a
|
||||
|
@@ -12,14 +12,11 @@ links:
|
||||
- https://www.dnoid.pw/
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ws/
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.pet/
|
||||
- https://demonoid.unblockit.ist/
|
||||
- https://demonoid.unblockit.page/
|
||||
- https://demonoid.torrentbay.to/
|
||||
- https://demonoid.nocensor.sbs/
|
||||
- https://demonoid.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://demonoidevmsgasmojajlhikwetsr4pxzw6xkjt3dgdv6nr5yxvsamid.onion.ly/
|
||||
- https://demonoid.unblockit.li/
|
||||
- https://demonoid.unblockit.uno/
|
||||
- https://demonoid.unblockit.ch/
|
||||
- https://demonoid.nocensor.space/
|
||||
- https://demonoid.unblockit.ws/
|
||||
- https://demonoid.nocensor.work/
|
||||
@@ -33,6 +30,12 @@ legacylinks:
|
||||
- https://demonoid.unblockit.llc/
|
||||
- https://demonoid.unblockit.blue/
|
||||
- https://demonoid.unblockit.name/
|
||||
- https://demonoid.nocensor.sbs/
|
||||
- https://demonoid.unblockit.ist/
|
||||
- https://demonoid.unblockit.bet/
|
||||
- https://demonoid.unblockit.cat/
|
||||
- https://demonoid.unblockit.nz/
|
||||
- https://demonoid.nocensor.world/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -317,13 +320,20 @@ settings:
|
||||
|
||||
login:
|
||||
method: cookie
|
||||
inputs:
|
||||
cookie: "{{ .Config.cookie }}"
|
||||
test:
|
||||
path: files/
|
||||
|
||||
download:
|
||||
selectors:
|
||||
- selector: a[href^="/files/download/"]:has(i.fa-download)
|
||||
attribute: href
|
||||
infohash:
|
||||
hash:
|
||||
selector: div:contains("Torrent hash") > div.col-md-5 > div
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" ", ""]
|
||||
title:
|
||||
selector: h1[id="torrent--title"]
|
||||
|
||||
search:
|
||||
paths:
|
||||
|
@@ -8,6 +8,7 @@ encoding: UTF-8
|
||||
links:
|
||||
- https://desitorrents.tv/
|
||||
- https://desitorrents.rocks/
|
||||
- https://torrent.desi/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -64,13 +65,23 @@ search:
|
||||
paths:
|
||||
# https://hdinnovations.github.io/UNIT3D-Community-Edition-Docs/api_endpoints.html
|
||||
# https://github.com/HDInnovations/UNIT3D-Community-Edition/blob/master/app/Http/Controllers/API/TorrentController.php
|
||||
- path: "/api/torrents/filter?api_token={{ .Config.apikey }}&name={{ if .Query.IMDBID }}{{ else }}{{ .Keywords }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}&sortField={{ .Config.sort }}&sortDirection={{ .Config.type }}&perPage=100&page=1{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
- path: "/api/torrents/filter"
|
||||
response:
|
||||
type: json
|
||||
|
||||
inputs:
|
||||
# if we have an id based search, add Season and Episode as query in name for UNIT3D < v6. Else pass S/E Params for UNIT3D >= v6
|
||||
api_token: "{{ .Config.apikey }}"
|
||||
name: "{{ .Keywords }}"
|
||||
$raw: "{{ if .Query.Season }}&seasonNumber={{ .Query.Season }}{{ else }}{{ end }}{{ if .Query.Ep }}&episodeNumber={{ .Query.Ep }}{{ else }}{{ end }}{{ if .Query.TMDBID }}&tmdbId={{ .Query.TMDBID }}{{ else }}{{ end }}{{ if .Query.IMDBIDShort }}&imdbId={{ .Query.IMDBIDShort }}{{ else }}{{ end }}{{ if .Query.TVDBID }}&tvdbId={{ .Query.TVDBID }}{{ else }}{{ end }}{{ range .Categories }}&categories[]={{.}}{{end}}{{ if .Config.freeleech }}&free=1{{ else }}{{ end }}"
|
||||
sortField: "{{ .Config.sort }}"
|
||||
sortDirection: "{{ .Config.type }}"
|
||||
perPage: 100
|
||||
page: 1
|
||||
|
||||
keywordsfilters:
|
||||
- name: re_replace
|
||||
args: [^$, "%"]
|
||||
args: ["\\.", " "]
|
||||
|
||||
rows:
|
||||
selector: data
|
||||
@@ -79,8 +90,8 @@ search:
|
||||
selector: meta.total
|
||||
|
||||
fields:
|
||||
categorydesc:
|
||||
selector: category
|
||||
category:
|
||||
selector: category_id
|
||||
title:
|
||||
selector: name
|
||||
details:
|
||||
@@ -88,7 +99,7 @@ search:
|
||||
download:
|
||||
selector: download_link
|
||||
poster:
|
||||
selector: poster
|
||||
selector: meta.poster
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["https://via.placeholder.com/90x135", ""]
|
||||
@@ -98,6 +109,17 @@ search:
|
||||
selector: tmdb_id
|
||||
tvdbid:
|
||||
selector: tvdb_id
|
||||
genre:
|
||||
selector: meta.genres
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(TV Movie)", "TV_Movie"]
|
||||
- name: replace
|
||||
args: [" & ", "_&_"]
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
files:
|
||||
selector: num_file
|
||||
seeders:
|
||||
@@ -112,11 +134,15 @@ search:
|
||||
size:
|
||||
selector: size
|
||||
downloadvolumefactor:
|
||||
# api returns 0=false, 1=true
|
||||
# api returns 0%, 25%, 50%, 75%, 100%
|
||||
selector: freeleech
|
||||
case:
|
||||
0: 1 # not free
|
||||
1: 0 # freeleech
|
||||
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
|
||||
@@ -128,4 +154,4 @@ search:
|
||||
minimumseedtime:
|
||||
# 7 day (as seconds = 7 x 24 x 60 x 60)
|
||||
text: 604800
|
||||
# json UNIT3D 5.3.0 (custom)
|
||||
# json UNIT3D 6.4.1 (custom)
|
||||
|
@@ -52,7 +52,6 @@ caps:
|
||||
- {id: 20, cat: Books, desc: "E-Book / Magyar"}
|
||||
- {id: 52, cat: Books, desc: "E-Book / Egyéb"}
|
||||
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
|
@@ -10,23 +10,23 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 1, cat: Movies/DVD, desc: Movies/DVDR}
|
||||
- {id: 2, cat: Movies/SD, desc: Movies/SD}
|
||||
- {id: 3, cat: Movies/BluRay, desc: Movies/BluRay}
|
||||
- {id: 4, cat: Movies/UHD, desc: Movies/4K}
|
||||
- {id: 38, cat: Movies/UHD, desc: Movies/UHD}
|
||||
- {id: 1, cat: Movies/DVD, desc: Movies/DVDR}
|
||||
- {id: 5, cat: Movies/HD, desc: Movies/720p}
|
||||
- {id: 6, cat: Movies/HD, desc: Movies/1080p}
|
||||
- {id: 4, cat: Movies/UHD, desc: Movies/2160p}
|
||||
- {id: 3, cat: Movies/BluRay, desc: Movies/BluRay}
|
||||
- {id: 38, cat: Movies/UHD, desc: Movies/Bluray/UHD}
|
||||
- {id: 7, cat: Movies/HD, desc: Movies/PACKS}
|
||||
- {id: 8, cat: TV/HD, desc: TV/720p}
|
||||
- {id: 9, cat: TV/HD, desc: TV/1080p}
|
||||
- {id: 10, cat: TV/SD, desc: TV/SD}
|
||||
- {id: 11, cat: TV/SD, desc: TV/DVDR}
|
||||
- {id: 12, cat: TV/HD, desc: TV/PACKS}
|
||||
- {id: 13, cat: TV/UHD, desc: TV/4K}
|
||||
- {id: 14, cat: TV/HD, desc: TV/BluRay}
|
||||
- {id: 10, cat: TV/SD, desc: Tv/SD}
|
||||
- {id: 11, cat: TV/SD, desc: Tv/DVDR}
|
||||
- {id: 8, cat: TV/HD, desc: Tv/720p}
|
||||
- {id: 9, cat: TV/HD, desc: Tv/1080p}
|
||||
- {id: 13, cat: TV/UHD, desc: Tv/2160p}
|
||||
- {id: 14, cat: TV/HD, desc: Tv/BluRay}
|
||||
- {id: 12, cat: TV/HD, desc: Tv/PACKS}
|
||||
- {id: 17, cat: Other, desc: Unknown}
|
||||
- {id: 18, cat: PC/0day, desc: Apps/0day}
|
||||
- {id: 18, cat: PC/0day, desc: Apps/0DAY}
|
||||
- {id: 20, cat: PC/ISO, desc: Apps/PC}
|
||||
- {id: 21, cat: PC/Mac, desc: Apps/Mac}
|
||||
- {id: 33, cat: PC, desc: Apps/Tutorials}
|
||||
@@ -121,25 +121,25 @@ search:
|
||||
selector: category
|
||||
title:
|
||||
selector: name
|
||||
id:
|
||||
_id:
|
||||
selector: id
|
||||
details:
|
||||
text: "{{ .Config.sitelink }}torrent/{{ .Result.id }}/"
|
||||
text: "{{ .Config.sitelink }}torrent/{{ .Result._id }}/"
|
||||
download:
|
||||
text: "{{ .Config.sitelink }}api/v1/torrents/download/{{ .Result.id }}"
|
||||
text: "{{ .Config.sitelink }}api/v1/torrents/download/{{ .Result._id }}"
|
||||
imdbid:
|
||||
selector: imdbid2
|
||||
imdbidfull:
|
||||
imdbid_full:
|
||||
optional: true
|
||||
selector: imdbid2
|
||||
posternormal:
|
||||
poster_normal:
|
||||
optional: true
|
||||
selector: firstpic
|
||||
posterimdb:
|
||||
poster_imdb:
|
||||
optional: true
|
||||
text: "{{ if .Result.imdbid }}{{ .Config.sitelink }}img/imdb/{{ .Result.imdbidfull }}.jpg{{ else }}{{ end }}"
|
||||
text: "{{ if .Result.imdbid }}{{ .Config.sitelink }}img/imdb/{{ .Result.imdbid_full }}.jpg{{ else }}{{ end }}"
|
||||
poster:
|
||||
text: "{{ if .Result.posterimdb }}{{ .Result.posterimdb }}{{ else }}{{ .Result.posternormal }}{{ end }}"
|
||||
text: "{{ if .Result.poster_imdb }}{{ .Result.poster_imdb }}{{ else }}{{ .Result.poster_normal }}{{ end }}"
|
||||
date:
|
||||
# 2021-10-27 12:07:22
|
||||
selector: added
|
||||
@@ -171,56 +171,55 @@ search:
|
||||
minimumseedtime:
|
||||
# 5 days (as seconds = 5 x 24 x 60 x 60)
|
||||
text: 432000
|
||||
titledesc:
|
||||
title_desc:
|
||||
optional: true
|
||||
selector: title
|
||||
yeardesc:
|
||||
year_desc:
|
||||
optional: true
|
||||
selector: year
|
||||
genresdesc:
|
||||
optional: true
|
||||
genre:
|
||||
selector: genres
|
||||
taglinedesc:
|
||||
_tagline_desc:
|
||||
optional: true
|
||||
selector: tagline
|
||||
castdesc:
|
||||
_cast_desc:
|
||||
optional: true
|
||||
selector: cast
|
||||
ratingdesc:
|
||||
_rating_desc:
|
||||
optional: true
|
||||
selector: rating
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["0", ""]
|
||||
sectiondesc:
|
||||
_section_desc:
|
||||
optional: true
|
||||
selector: section
|
||||
predatedesc:
|
||||
_predate_desc:
|
||||
selector: preDate
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["0000-00-00 00:00:00", ""]
|
||||
p2ptag:
|
||||
_p2ptag:
|
||||
selector: p2p
|
||||
case:
|
||||
0: ""
|
||||
1: P2P
|
||||
packtag:
|
||||
_packtag:
|
||||
selector: pack
|
||||
case:
|
||||
0: ""
|
||||
1: Pack
|
||||
reqidtag:
|
||||
_reqidtag:
|
||||
selector: reqid
|
||||
case:
|
||||
0: ""
|
||||
"*": Request
|
||||
tagdesc:
|
||||
_tag_desc:
|
||||
optional: true
|
||||
text: "{{ if .Result.p2ptag }}{{ .Result.p2ptag }}, {{ else }}{{ end }}{{ if .Result.packtag }}{{ .Result.packtag }}, {{ else }}{{ end }}{{ if .Result.reqidtag }}{{ .Result.reqidtag }}{{ else }}{{ end }}"
|
||||
text: "{{ if .Result._p2ptag }}{{ .Result._p2ptag }}, {{ else }}{{ end }}{{ if .Result._packtag }}{{ .Result._packtag }}, {{ else }}{{ end }}{{ if .Result._reqidtag }}{{ .Result._reqidtag }}{{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?), $"
|
||||
description:
|
||||
text: "{{ if .Result.titledesc }}Title: {{ .Result.titledesc }}</br>{{ else }}{{ end }}{{ if .Result.yeardesc }}Year: {{ .Result.yeardesc }}</br>{{ else }}{{ end }}{{ if .Result.genresdesc }}Genres: {{ .Result.genresdesc }}</br>{{ else }}{{ end }}{{ if .Result.taglinedesc }}Tagline: {{ .Result.taglinedesc }}</br>{{ else }}{{ end }}{{ if .Result.castdesc }}Cast: {{ .Result.castdesc }}</br>{{ else }}{{ end }}{{ if .Result.ratingdesc }}Rating: {{ .Result.ratingdesc }}</br>{{ else }}{{ end }}{{ if .Result.tagdesc }}Tags: {{ .Result.tagdesc }}</br>{{ else }}{{ end }}{{ if .Result.predatedesc }}PRE: {{ .Result.predatedesc }}</br>{{ else }}{{ end }}{{ if .Result.sectiondesc }}Section: {{ .Result.sectiondesc }}{{ else }}{{ end }}"
|
||||
text: "{{ if .Result.title_desc }}Title: {{ .Result.title_desc }}</br>{{ else }}{{ end }}{{ if .Result.year_desc }}Year: {{ .Result.year_desc }}</br>{{ else }}{{ end }}{{ if .Result.genre }}Genres: {{ .Result.genre }}</br>{{ else }}{{ end }}{{ if .Result._tagline_desc }}Tagline: {{ .Result._tagline_desc }}</br>{{ else }}{{ end }}{{ if .Result._cast_desc }}Cast: {{ .Result._cast_desc }}</br>{{ else }}{{ end }}{{ if .Result._rating_desc }}Rating: {{ .Result._rating_desc }}</br>{{ else }}{{ end }}{{ if .Result._tag_desc }}Tags: {{ .Result._tag_desc }}</br>{{ else }}{{ end }}{{ if .Result._predate_desc }}PRE: {{ .Result._predate_desc }}</br>{{ else }}{{ end }}{{ if .Result._section_desc }}Section: {{ .Result._section_desc }}{{ else }}{{ end }}"
|
||||
# json rartracker api v1
|
||||
|
@@ -173,7 +173,7 @@ search:
|
||||
img.pro_free2up: 2
|
||||
img.pro_2up: 2
|
||||
"*": 1
|
||||
cat:
|
||||
_cat:
|
||||
selector: a[href^="?cat="] > img
|
||||
attribute: title
|
||||
description:
|
||||
@@ -181,7 +181,7 @@ search:
|
||||
remove: a, img
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "cat={{ .Result.cat }} - "
|
||||
args: "cat={{ .Result._cat }} - "
|
||||
minimumratio:
|
||||
text: 0.9
|
||||
# NexusPHP Standard v1.5 Beta 4
|
||||
|
@@ -36,7 +36,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
@@ -29,10 +29,11 @@ caps:
|
||||
- {id: 76, cat: Books, desc: "Self-Help"}
|
||||
- {id: 56, cat: TV/Sport, desc: "Sports"}
|
||||
- {id: 61, cat: Other, desc: "Tutorials"}
|
||||
- {id: 81, cat: Books, desc: "Wordpress"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
book-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
@@ -121,7 +122,7 @@ search:
|
||||
attribute: onmouseover
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "src=(.*?) width"
|
||||
args: src=([^\s]+)
|
||||
files:
|
||||
selector: div.torrenttable:nth-last-child(6)
|
||||
size:
|
||||
|
@@ -1,204 +0,0 @@
|
||||
---
|
||||
id: dragonworldreloaded
|
||||
name: Dragonworld Reloaded
|
||||
description: "Dragonworld Reloaded is a GERMAN Private Torrent Tracker for MOVIES / TV / GENERAL"
|
||||
language: de-DE
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://dragonworld-reloaded.net/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
# Movies
|
||||
- {id: 19, cat: Movies/HD, desc: "Movies - HD"}
|
||||
- {id: 26, cat: Movies/UHD, desc: "Movies - UHD"}
|
||||
- {id: 18, cat: Movies/SD, desc: "Movies - SD"}
|
||||
- {id: 139, cat: Movies/3D, desc: "Movies - 3D"}
|
||||
- {id: 2, cat: Movies, desc: "Movies - Pack SD/HD"}
|
||||
# Serien
|
||||
- {id: 41, cat: TV/HD, desc: "Serien - HD"}
|
||||
- {id: 143, cat: TV/UHD, desc: "Serien - UHD"}
|
||||
- {id: 40, cat: TV/SD, desc: "Serien - SD"}
|
||||
- {id: 80, cat: TV/HD, desc: "Serien - Pack HD"}
|
||||
- {id: 151, cat: TV/UHD, desc: "Serien - Pack UHD"}
|
||||
- {id: 42, cat: TV/SD, desc: "Serien - Pack SD"}
|
||||
# Musik
|
||||
- {id: 119, cat: Audio, desc: "Musik - Album"}
|
||||
- {id: 148, cat: Audio, desc: "Musik - Charts"}
|
||||
- {id: 5, cat: Audio, desc: "Musik - Sampler"}
|
||||
- {id: 92, cat: Audio, desc: "Musik - Discography"}
|
||||
- {id: 146, cat: Audio, desc: "Musik - Mixe"}
|
||||
- {id: 142, cat: Audio/Lossless, desc: "Musik - Flac"}
|
||||
- {id: 136, cat: Audio/Video, desc: "Musik - Videos"}
|
||||
# Doku
|
||||
- {id: 38, cat: TV/Documentary, desc: "Doku - HD"}
|
||||
- {id: 37, cat: TV/Documentary, desc: "Doku - SD"}
|
||||
- {id: 144, cat: TV/Documentary, desc: "Doku - Pack SD/HD"}
|
||||
# Games
|
||||
- {id: 16, cat: PC/Games, desc: "Games - PC"}
|
||||
- {id: 14, cat: Console/Other, desc: "Games - Wimmelbild"}
|
||||
- {id: 140, cat: Console, desc: "Games - Konsole"}
|
||||
- {id: 145, cat: Console/Other, desc: "Games - Sonstige"}
|
||||
# Appz
|
||||
- {id: 30, cat: PC/0day, desc: "Appz - Windows"}
|
||||
- {id: 106, cat: PC/Mobile-Android, desc: "Appz - Android"}
|
||||
- {id: 138, cat: PC/0day, desc: "Appz - Sonstige"}
|
||||
# Sport
|
||||
- {id: 50, cat: TV/Sport, desc: "Sport - HD"}
|
||||
- {id: 43, cat: TV/Sport, desc: "Sport - SD"}
|
||||
# Sonstiges
|
||||
- {id: 137, cat: Books/Comics, desc: "Sonstiges - Anime"}
|
||||
- {id: 34, cat: Books/EBook, desc: "Sonstiges - E-Books"}
|
||||
- {id: 35, cat: Audio/Audiobook, desc: "Sonstiges - Audiobook"}
|
||||
- {id: 147, cat: Other, desc: "Sonstiges - Sonstige"}
|
||||
# XXX
|
||||
- {id: 47, cat: XXX, desc: "XXX - SD/HD"}
|
||||
- {id: 49, cat: XXX/Other, desc: "XXX - Sonstiges"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: pin
|
||||
type: text
|
||||
label: Pin
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: sort
|
||||
type: select
|
||||
label: Sort requested from site
|
||||
default: added
|
||||
options:
|
||||
added: created
|
||||
seeds: seeders
|
||||
size: size
|
||||
name: title
|
||||
- name: type
|
||||
type: select
|
||||
label: Order requested from site
|
||||
default: desc
|
||||
options:
|
||||
desc: desc
|
||||
asc: asc
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="/login.php"]
|
||||
cookies: ["JAVA=OK"] # avoid jscheck redirect
|
||||
captcha:
|
||||
type: image
|
||||
selector: img[src^="cap/captcha_math.php"]
|
||||
input: stringCaptcha
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
pin: "{{ .Config.pin }}"
|
||||
loggiin: "einloggen"
|
||||
error:
|
||||
- selector: div#login_error
|
||||
test:
|
||||
path: selection.php
|
||||
|
||||
download:
|
||||
before:
|
||||
path: ajax_det_poll.php
|
||||
method: post
|
||||
inputs:
|
||||
set_thanks: thanks
|
||||
det_id: "{{ .DownloadUri.Query.torrent }}"
|
||||
ajax: yes
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: selection.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
# 0 name, 1 descr, 2 both
|
||||
blah: 0
|
||||
orderby: "{{ .Config.sort }}"
|
||||
sort: "{{ .Config.type }}"
|
||||
|
||||
rows:
|
||||
selector: "div.selection_wrap{{ if .Config.freeleech }}:root:has(div.onlyup){{ else }}{{ end }}"
|
||||
|
||||
fields:
|
||||
cat_p1:
|
||||
selector: div.kat_cat_pic_name
|
||||
cat_p2:
|
||||
selector: div.kat_cat_pic_name_b
|
||||
categorydesc:
|
||||
text: "{{ .Result.cat_p1 }} - {{ .Result.cat_p2 }}"
|
||||
title:
|
||||
selector: a.selection_a
|
||||
details:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
download:
|
||||
selector: a.selection_a
|
||||
attribute: href
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["details.php?id=", "download.php?torrent="]
|
||||
poster:
|
||||
selector: div[id^="details"] img
|
||||
attribute: src
|
||||
size:
|
||||
selector: div.selection_unter_ad
|
||||
grabs:
|
||||
selector: div.selection_unter_ae
|
||||
seeders:
|
||||
selector: div.selection_unter_aa
|
||||
leechers:
|
||||
selector: div.selection_unter_aaa
|
||||
date_day:
|
||||
# Heute 13:30:04
|
||||
# Gestern 09:10:10
|
||||
selector: div.selection_unter_ab:not(:contains("."))
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["Heute", "Today"]
|
||||
- name: replace
|
||||
args: ["Gestern", "Yesterday"]
|
||||
date_year:
|
||||
# 30.02.2018 um 23:12:50
|
||||
selector: div.selection_unter_ab:contains(".")
|
||||
optional: true
|
||||
filters:
|
||||
- name: replace
|
||||
args: [" um", ""]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "02.01.2006 15:04:05 -07:00"
|
||||
date:
|
||||
text: "{{ if or .Result.date_year .Result.date_day }}{{ or .Result.date_year .Result.date_day }}{{ else }}now{{ end }}"
|
||||
description:
|
||||
selector: selection_unter_af
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
":root:has(div.onlyup)": 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
# 12 hours (as seconds = 12 x 60 x 60)
|
||||
text: 43200
|
||||
# 3xT
|
@@ -1,190 +0,0 @@
|
||||
---
|
||||
id: ebookparadijs
|
||||
name: EbookParadijs
|
||||
description: "EbookParadijs is a DUTCH Private Tracker for EBOOKS"
|
||||
language: nl-NL
|
||||
type: private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://www.ebookparadijs.org/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 2, cat: Books/EBook, desc: "Roman"}
|
||||
- {id: 3, cat: Books/EBook, desc: "Thriller"}
|
||||
- {id: 4, cat: Books/EBook, desc: "Diverse"}
|
||||
- {id: 7, cat: Books/EBook, desc: "Jeugd"}
|
||||
- {id: 8, cat: Books/EBook, desc: "Oorlog"}
|
||||
- {id: 9, cat: Books/EBook, desc: "Luisterboeken"}
|
||||
- {id: 10, cat: Books/EBook, desc: "Stripboeken"}
|
||||
- {id: 11, cat: Books/EBook, desc: "Crime"}
|
||||
- {id: 13, cat: Books/EBook, desc: "Detective"}
|
||||
- {id: 15, cat: Books/EBook, desc: "Erothiek"}
|
||||
- {id: 16, cat: Books/EBook, desc: "Tijdschriften"}
|
||||
- {id: 17, cat: Books/EBook, desc: "Hobby"}
|
||||
- {id: 19, cat: Books/EBook, desc: "Medisch"}
|
||||
- {id: 21, cat: Books/EBook, desc: "Sport"}
|
||||
- {id: 50, cat: Books/EBook, desc: "Kookboeken"}
|
||||
- {id: 51, cat: Books/EBook, desc: "Fantasy"}
|
||||
- {id: 52, cat: Books/EBook, desc: "Kerst"}
|
||||
- {id: 53, cat: Books/EBook, desc: "Waargebeurd"}
|
||||
- {id: 56, cat: Books/EBook, desc: "Engels"}
|
||||
- {id: 57, cat: Books/EBook, desc: "Maatschappij"}
|
||||
- {id: 58, cat: Books/EBook, desc: "Biografie"}
|
||||
- {id: 61, cat: Books/EBook, desc: "Geschiedenis"}
|
||||
- {id: 60, cat: Books/EBook, desc: "Sci-Fi"}
|
||||
- {id: 64, cat: Books/EBook, desc: "Literatuur"}
|
||||
- {id: 65, cat: Books/EBook, desc: "Non-Fiction"}
|
||||
- {id: 66, cat: Books/EBook, desc: "Bladmuziek"}
|
||||
- {id: 67, cat: Books/EBook, desc: "young Adult"}
|
||||
- {id: 68, cat: Books/EBook, desc: "feelgood romans"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
book-search: [q]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
type: text
|
||||
label: Username
|
||||
- name: password
|
||||
type: password
|
||||
label: Password
|
||||
- name: flaresolverr
|
||||
type: info
|
||||
label: FlareSolverr
|
||||
default: This site may use DDoS-Guard Protection, therefore Jackett requires <a href="https://github.com/Jackett/Jackett#configuring-flaresolverr" target="_blank">FlareSolverr</a> to access it.
|
||||
- name: freeleech
|
||||
type: checkbox
|
||||
label: Filter freeleech only
|
||||
default: false
|
||||
- name: thankyou
|
||||
type: text
|
||||
label: Thank You Comment
|
||||
- name: info_comment
|
||||
type: info
|
||||
label: Thank you comment
|
||||
default: This site requires you to leave a Thank You comment before you can download. Enter your personalised comment above.
|
||||
|
||||
login:
|
||||
path: login.php
|
||||
method: form
|
||||
form: form[action="takelogin.php"]
|
||||
inputs:
|
||||
username: "{{ .Config.username }}"
|
||||
password: "{{ .Config.password }}"
|
||||
returnto: "/"
|
||||
error:
|
||||
- selector: td.embedded:contains("fout")
|
||||
test:
|
||||
path: /
|
||||
selector: a[href="logout.php"]
|
||||
|
||||
download:
|
||||
before:
|
||||
# https://www.ebookparadijs.org/comment.php?action=add&tid=23079
|
||||
path: comment.php
|
||||
method: post
|
||||
inputs:
|
||||
action: add
|
||||
tid: "{{ .DownloadUri.Query.id }}"
|
||||
text: "{{ .Config.thankyou }}"
|
||||
submit: Opslaan
|
||||
selectors:
|
||||
- selector: a[href^="download.php?id="]
|
||||
attribute: href
|
||||
|
||||
search:
|
||||
paths:
|
||||
- path: browse.php
|
||||
inputs:
|
||||
$raw: "{{ range .Categories }}c{{.}}=1&{{end}}"
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
|
||||
rows:
|
||||
selector: "table.mainouter{{ if .Config.freeleech }}:has(img[src=\"pic/freedlfsu.gif\"]){{ else }}{{ end }}"
|
||||
filters:
|
||||
- name: andmatch
|
||||
|
||||
fields:
|
||||
category:
|
||||
selector: a[href^="browse.php?cat="]
|
||||
attribute: href
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
poster:
|
||||
selector: img[src*="/covers/"]
|
||||
attribute: src
|
||||
title:
|
||||
selector: a[href^="details.php?id="]
|
||||
details:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
download:
|
||||
selector: a[href^="details.php?id="]
|
||||
attribute: href
|
||||
size:
|
||||
selector: td:nth-child(4) table tr td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "(.+?) in"
|
||||
files:
|
||||
selector: td:nth-child(4) table tr td:nth-child(2)
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "in (\\d+) bestan"
|
||||
grabs:
|
||||
selector: td:nth-child(4) table tr:nth-child(2) td:nth-child(1)
|
||||
date:
|
||||
selector: td:nth-child(4) table tr:nth-child(2) td:last-child
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["januari", "January"]
|
||||
- name: replace
|
||||
args: ["februari", "February"]
|
||||
- name: replace
|
||||
args: ["maart", "March"]
|
||||
- name: replace
|
||||
args: ["april", "April"]
|
||||
- name: replace
|
||||
args: ["mei", "May"]
|
||||
- name: replace
|
||||
args: ["juni", "June"]
|
||||
- name: replace
|
||||
args: ["juli", "July"]
|
||||
- name: replace
|
||||
args: ["augustus", "August"]
|
||||
- name: replace
|
||||
args: ["september", "September"]
|
||||
- name: replace
|
||||
args: ["oktober", "October"]
|
||||
- name: replace
|
||||
args: ["november", "November"]
|
||||
- name: replace
|
||||
args: ["december", "December"]
|
||||
- name: re_replace
|
||||
args: ["\\s*om\\s*", " "]
|
||||
- name: append
|
||||
args: " +01:00" # CET
|
||||
- name: dateparse
|
||||
args: "2 January 2006 15:04:05 -07:00"
|
||||
seeders_optional:
|
||||
optional: true
|
||||
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font b
|
||||
seeders:
|
||||
text: "{{ if .Result.seeders_optional }}{{ .Result.seeders_optional }}{{ else }}0{{ end }}"
|
||||
leechers_optional:
|
||||
optional: true
|
||||
selector: td:nth-child(4) table tr:nth-child(3) td:nth-child(5) font font b
|
||||
leechers:
|
||||
text: "{{ if .Result.leechers_optional }}{{ .Result.leechers_optional }}{{ else }}0{{ end }}"
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="pic/freedlfsu.gif"]: 0
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
# minimumratio: ratioless site, uses credit points instead.
|
||||
# engine n/a
|
@@ -349,17 +349,17 @@ search:
|
||||
download:
|
||||
selector: a[href^="torrents-details.php?id="]
|
||||
attribute: href
|
||||
seeders:
|
||||
selector: td:nth-child(4)
|
||||
leechers:
|
||||
selector: td:nth-child(5)
|
||||
size:
|
||||
selector: td:nth-child(5)
|
||||
seeders:
|
||||
selector: td:nth-child(6)
|
||||
description:
|
||||
leechers:
|
||||
selector: td:nth-child(7)
|
||||
description:
|
||||
selector: td:nth-child(4)
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "wait: "
|
||||
args: "uploader: "
|
||||
date:
|
||||
text: now
|
||||
downloadvolumefactor:
|
||||
|
@@ -5,6 +5,7 @@ description: "E-Hentai is a Public site for Hentai doujinshi, manga."
|
||||
language: en-US
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://e-hentai.org/
|
||||
|
||||
|
@@ -5,14 +5,11 @@ description: "EliteTorrent.biz is a Public torrent site for TV, movies and docum
|
||||
language: es-ES
|
||||
type: public
|
||||
encoding: UTF-8
|
||||
requestDelay: 2
|
||||
links:
|
||||
- https://www.elitetorrent.com/
|
||||
- https://elitetorrent.nocensor.sbs/
|
||||
- https://elitetorrent.nocensor.lol/
|
||||
legacylinks:
|
||||
- https://www.elitetorrent.biz/
|
||||
- https://www.elitetorrent.io/
|
||||
- https://www.elitetorrent.one/
|
||||
- https://www.elitetorrent.is/
|
||||
- https://www.elitetorrent.nu/
|
||||
- https://www.elitetorrent.tv/
|
||||
- https://www.elitetorrent.li/
|
||||
@@ -31,6 +28,8 @@ legacylinks:
|
||||
- https://elitetorrent.la/
|
||||
- https://www.elitetorrent.wtf/
|
||||
- https://www.elitetorrent.dev/
|
||||
- https://elitetorrent.nocensor.sbs/
|
||||
- https://elitetorrent.nocensor.world/
|
||||
|
||||
caps:
|
||||
categories:
|
||||
@@ -88,12 +87,12 @@ search:
|
||||
args: "^.*/(series)/.*$"
|
||||
category:
|
||||
text: "{{ if or .Result.category_movie .Result.category_tv }}{{ or .Result.category_movie .Result.category_tv }}{{ else }}other{{ end }}"
|
||||
quality:
|
||||
_quality:
|
||||
selector: span:nth-of-type(2) > i
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["---", ""]
|
||||
language:
|
||||
_language:
|
||||
selector: span#idiomacio > i > img
|
||||
attribute: title
|
||||
filters:
|
||||
@@ -125,7 +124,7 @@ search:
|
||||
- name: re_replace
|
||||
args: ["(\\d{1})×(\\d{2})", "S0$1E$2"]
|
||||
- name: append
|
||||
args: " {{ .Result.quality }} {{ .Result.language }}"
|
||||
args: " {{ .Result._quality }} {{ .Result._language }}"
|
||||
details:
|
||||
selector: .meta a
|
||||
attribute: href
|
||||
|
@@ -6,9 +6,9 @@ language: ru-RU
|
||||
type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://eniahd.com/
|
||||
legacylinks:
|
||||
- https://eniatv.com/
|
||||
legacylinks:
|
||||
- https://eniahd.com/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -94,7 +94,6 @@ login:
|
||||
inputs:
|
||||
login_username: "{{ .Config.username }}"
|
||||
login_password: "{{ .Config.password }}"
|
||||
redirect: "/index.php"
|
||||
autologin: 1
|
||||
error:
|
||||
- selector: table.error
|
||||
|
@@ -113,6 +113,7 @@ search:
|
||||
page: 0
|
||||
view: list
|
||||
freeleech: "{{ if .Config.freeleech }}1{{ else }}{{ end }}"
|
||||
# can search by genre but need range support. &genres[]=Action&genres[]=Comedy for Action and Comedy
|
||||
|
||||
rows:
|
||||
selector: table > tbody > tr
|
||||
@@ -142,6 +143,17 @@ search:
|
||||
args: "&w=180&h=270" # for display on dashboard
|
||||
- name: replace
|
||||
args: ["https://images.weserv.nl/?url=https://via.placeholder.com/600x900&w=180&h=270", ""]
|
||||
genre:
|
||||
selector: td:nth-last-child(8)
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["\n", ""]
|
||||
- name: re_replace
|
||||
args: ["(?i)(Science Fiction)", "Science_Fiction"]
|
||||
- name: validate
|
||||
args: "Action, Adventure, Animation, Biography, Comedy, Crime, Documentary, Drama, Family, Fantasy, Game-Show, History, Horror, Music, Musical, Mystery, News, Reality-TV, Romance, Science_Fiction, Sitcom, Sport, Talk-Show, Thriller, War, Western"
|
||||
description:
|
||||
text: "{{ .Result.genre }}"
|
||||
size:
|
||||
selector: td:nth-last-child(4)
|
||||
seeders:
|
||||
|
@@ -35,10 +35,10 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
book-search: [q]
|
||||
tv-search: [q, season, ep, genre]
|
||||
movie-search: [q, genre]
|
||||
music-search: [q, genre]
|
||||
book-search: [q, genre]
|
||||
|
||||
settings:
|
||||
- name: username
|
||||
@@ -95,7 +95,7 @@ search:
|
||||
# 0 name, 1 performer, 2 director
|
||||
miben: 0
|
||||
# genre
|
||||
cimke: ""
|
||||
cimke: "{{ .Query.Genre }}"
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
|
||||
rows:
|
||||
@@ -153,9 +153,13 @@ search:
|
||||
case:
|
||||
img[src="pic/dupla_up.png"]: 2
|
||||
"*": 1
|
||||
genre:
|
||||
selector: div i
|
||||
filters:
|
||||
- name: regexp
|
||||
args: "\\((.+?)\\)"
|
||||
description:
|
||||
selector: div:nth-child(2)
|
||||
remove: a
|
||||
text: "{{ .Result.genre }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
|
@@ -7,8 +7,8 @@ type: public
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://extratorrent.st/
|
||||
- https://extratorrent.unblockit.ist/
|
||||
- https://extratorrent.nocensor.sbs/
|
||||
- https://extratorrent.unblockit.page/
|
||||
- https://extratorrent.nocensor.world/
|
||||
legacylinks:
|
||||
- https://extratorrent.nocensor.work/
|
||||
- https://extratorrent.unblockit.kim/
|
||||
@@ -21,6 +21,11 @@ legacylinks:
|
||||
- https://extratorrent.unblockit.llc/
|
||||
- https://extratorrent.unblockit.blue/
|
||||
- https://extratorrent.unblockit.name/
|
||||
- https://extratorrent.nocensor.sbs/
|
||||
- https://extratorrent.unblockit.ist/
|
||||
- https://extratorrent.unblockit.bet/
|
||||
- https://extratorrent.unblockit.cat/
|
||||
- https://extratorrent.unblockit.nz/
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
@@ -67,6 +72,7 @@ caps:
|
||||
- {id: Comics, cat: Books/Comics, desc: Books Comics}
|
||||
- {id: Ebooks, cat: Books/EBook, desc: Books Ebook}
|
||||
- {id: Other, cat: Other/Misc, desc: Other}
|
||||
- {id: Other Applications, cat: PC, desc: Other Applications}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
|
@@ -41,7 +41,7 @@ caps:
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
tv-search: [q]
|
||||
tv-search: [q, season, ep]
|
||||
movie-search: [q]
|
||||
music-search: [q]
|
||||
|
||||
@@ -135,14 +135,14 @@ search:
|
||||
size:
|
||||
selector: td:nth-of-type(10)
|
||||
remove: a
|
||||
cat:
|
||||
_cat:
|
||||
selector: td:nth-of-type(1) a img
|
||||
attribute: alt
|
||||
description:
|
||||
selector: td:nth-of-type(4)
|
||||
filters:
|
||||
- name: prepend
|
||||
args: "cat={{ .Result.cat }}, wait="
|
||||
args: "cat={{ .Result._cat }}, wait="
|
||||
downloadvolumefactor:
|
||||
case:
|
||||
img[src="img/freedownload.png"]: 0
|
||||
|
@@ -10,28 +10,29 @@ links:
|
||||
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 10, cat: Movies/DVD, desc: "Film DVD rip"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "Film DVD Promo"}
|
||||
- {id: 118, cat: Movies/DVD, desc: "Film DVD Kids"}
|
||||
- {id: 113, cat: Movies, desc: "Films Independent"}
|
||||
- {id: 129, cat: Movies/HD, desc: "Films HD DVD"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "Films 4K"}
|
||||
- {id: 143, cat: Movies/HD, desc: "Films DivX 720P"}
|
||||
- {id: 114, cat: Audio/MP3, desc: "Muziek MP3"}
|
||||
- {id: 130, cat: Movies/UHD, desc: "4K Film"}
|
||||
- {id: 129, cat: Movies/HD, desc: "HD Film - HD MKV"}
|
||||
- {id: 123, cat: Movies/HD, desc: "HD Film - HEVC x265"}
|
||||
- {id: 10, cat: Movies/DVD, desc: "DVD Film - Retail DVD"}
|
||||
- {id: 111, cat: Movies/DVD, desc: "DVD Film - HD2DVD / BR2DVD"}
|
||||
- {id: 128, cat: Audio/Video, desc: "DVD Film - Muziek DVD"}
|
||||
- {id: 118, cat: Movies/Other, desc: "DVD Film - Kids DVD"}
|
||||
- {id: 125, cat: Movies/SD, desc: "DivX - Divx Rip"}
|
||||
- {id: 143, cat: Movies/HD, desc: "DivX - Divx 720P"}
|
||||
- {id: 132, cat: TV, desc: "Serie's - Complete Seizoen"}
|
||||
- {id: 139, cat: TV, desc: "Serie's - Losse Afleveringen"}
|
||||
- {id: 105, cat: TV/Documentary, desc: "Docu's"}
|
||||
- {id: 115, cat: PC/0day, desc: "Software - Windows"}
|
||||
- {id: 116, cat: PC/Mac, desc: "Software - Mac"}
|
||||
- {id: 105, cat: PC/ISO, desc: "Software - Linux"}
|
||||
- {id: 120, cat: PC/Games, desc: "Games"}
|
||||
- {id: 114, cat: Audio/MP3, desc: "Muziek - MP3"}
|
||||
- {id: 142, cat: Audio/Lossless, desc: "Muziek - Flac"}
|
||||
- {id: 131, cat: Books/Comics, desc: "Stipboeken"}
|
||||
- {id: 140, cat: Books/EBook, desc: "E-Book"}
|
||||
- {id: 105, cat: TV/Documentary, desc: "Documentaire"}
|
||||
- {id: 115, cat: PC, desc: "PC apps"}
|
||||
- {id: 120, cat: PC/Games, desc: "PC Games"}
|
||||
- {id: 106, cat: Other, desc: "Overig"}
|
||||
- {id: 131, cat: Books/Comics, desc: "Stripboeken"}
|
||||
- {id: 132, cat: TV/HD, desc: "TV HD Serie"}
|
||||
- {id: 116, cat: PC/Mac, desc: "Mac Software"}
|
||||
- {id: 125, cat: Movies/SD, desc: "Xvid Rip"}
|
||||
- {id: 123, cat: Movies/HD, desc: "MKV/X265"}
|
||||
- {id: 108, cat: XXX, desc: "18+"}
|
||||
- {id: 142, cat: XXX/x264, desc: "18+ HD"}
|
||||
- {id: 139, cat: TV, desc: "TV Series"}
|
||||
- {id: 128, cat: Audio/Video, desc: "muziek DVD"}
|
||||
- {id: 155, cat: Books/Mags, desc: "Tijdschriften"}
|
||||
- {id: 108, cat: XXX, desc: "18+ XXX"}
|
||||
- {id: 106, cat: Other, desc: "Overige"}
|
||||
|
||||
modes:
|
||||
search: [q]
|
||||
@@ -91,6 +92,11 @@ search:
|
||||
search: "{{ .Keywords }}"
|
||||
incldead: 1
|
||||
# does not support imdbid search and does not return imdb link in results
|
||||
keywordsfilters:
|
||||
- name: re_replace # S01E02 to 1 2
|
||||
args: ["(?i)\\bS0*(\\d{1,2})\\s*E0*(\\d{1,2})\\b", "$1 $2"]
|
||||
- name: re_replace # S01 to 1
|
||||
args: ["(?i)\\bS0*(\\d{1,2})\\b", "$1"]
|
||||
|
||||
rows:
|
||||
selector: table.mainouter
|
||||
@@ -108,11 +114,13 @@ search:
|
||||
selector: a[href^="details.php?id="]
|
||||
filters:
|
||||
- name: re_replace
|
||||
args: ["(?i)seizoen\\s*(\\d{1,2})\\s*(tot|t\/m)\\s*(\\d{1,2})", "S$1-$3"]
|
||||
args: ["(?i)(seizoen\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "S$2-$4"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(seizoen\\s*)(\\d{1,2})", "S$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*)(\\d{1,2})", "E$2"]
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})\\s*(tot|t\/m|&|\\+)\\s*(\\d{1,2})", "E$2-$4"]
|
||||
- name: re_replace
|
||||
args: ["(?i)(afl.\\s*|aflevering\\s*|ep.\\s*)(\\d{1,2})", "E$2"]
|
||||
- name: re_replace
|
||||
args: ["(?i)compleet", "Complete"]
|
||||
details:
|
||||
@@ -183,4 +191,6 @@ search:
|
||||
text: 0
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
# engine n/a
|
||||
|
@@ -7,8 +7,6 @@ type: semi-private
|
||||
encoding: UTF-8
|
||||
links:
|
||||
- https://extremlymtorrents.ws/
|
||||
certificates:
|
||||
- 31681d3324d3fef65b04b6ab2e634445c4ff06d4 # expired 6-nov-21
|
||||
caps:
|
||||
categorymappings:
|
||||
- {id: 15, cat: Movies/HD, desc: "1080p HD"}
|
||||
@@ -128,19 +126,17 @@ search:
|
||||
filters:
|
||||
- name: querystring
|
||||
args: cat
|
||||
language:
|
||||
_language:
|
||||
selector: td:nth-last-child(5)
|
||||
description:
|
||||
_vip:
|
||||
selector: img[src="/images/vip-icon.png"]
|
||||
attribute: src
|
||||
filters:
|
||||
- name: replace
|
||||
args: ["/images/vip-icon.png", " VIP ONLY"]
|
||||
attribute: alt
|
||||
optional: true
|
||||
title:
|
||||
selector: a[href^="file.php?id="] b
|
||||
filters:
|
||||
- name: append
|
||||
args: " {{ .Result.language }}{{ .Result.description }}"
|
||||
args: " {{ .Result._language }}{{ if .Result._vip }} VIP ONLY{{ else }}{{ end }}"
|
||||
details:
|
||||
selector: a[href^="file.php?id="]
|
||||
attribute: href
|
||||
@@ -172,6 +168,19 @@ search:
|
||||
"*": 1
|
||||
uploadvolumefactor:
|
||||
text: 1
|
||||
genre_optional:
|
||||
# Drama, Romance | N/A | 2022 | 112 min | N/A
|
||||
# Drama:Family:Romance
|
||||
selector: td:nth-child(2)
|
||||
remove: a
|
||||
filters:
|
||||
- name: split
|
||||
args: ["|", 0]
|
||||
genre:
|
||||
# if its VIP then do not keep genre
|
||||
text: "{{ if .Result._vip }}{{ else }}{{ .Result.genre_optional }}{{ end }}"
|
||||
description:
|
||||
text: "{{ if .Result._vip }}VIP ONLY{{ else }}{{ .Result.genre }}{{ end }}"
|
||||
minimumratio:
|
||||
text: 1.0
|
||||
minimumseedtime:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user