Closed keystorm closed 6 years ago
I could cross check the definition for you against the html, if you provide a full enhanced log file. You will find the instructions for enabling enhanced logging and the locations of the log file at https://github.com/Jackett/Jackett#troubleshooting. Then repeat your test/search and then edit the log to redact any personal details, such as usernames, passwords, passkeys, hashes etc. and drag/drop the scrubbed log.txt file here.
Hi! I just tried the new release (v0.8.602), with the inicluded definition, both test and manual search and both work correctly...
Any log file to see what´s happening??
Here's the redacted HTML as reported in the logs. This is immediately under the log entries in the screenshot above. Sorry for the hassle, I can't grab the logfile right now, but I don't want to keep you waiting.
Hope this helps.
looks like @keystorm is being presented with a different html page than the one that @Albvadi has coded the indexer to handle. Might have something to do with different account settings, or perhaps its a mobile versus desktop presentation....
I don’t remember having changed any setting. But I will look into it, and report back anything I might find.
I've been watching your HTML and as @garfield69 says, it's different from mine. In fact, I can not replicate the page. Attached captures:
So, I don´t know how can I enter to a page with the same html as yours...
If you do a manual search from Jackett, what is the url you obtain from the log??
My example:
Woah. It has never looked like that in the >5 years i’ve been a member. It looks like it’s some sort of classic view.
Search and torrents do look exactly the same when on a browser for me. Traditional tables are nowhere to be seen.
Edit: Yup. There it is.
They default to modern view, I'm afraid. I have a new-is account and I don't remember having to switchthat setting for the site to look like it usually does.
:scream: :scream: :scream: :scream: :scream: :scream: :scream:
I do not know how long it has been since I was a member, but I had never seen that there was another layout for the list of torrents. I just found it in my profile!!
I will code the definition again with the modern view... :)
I will code the definition again with the modern view... :)
That would be awesome. Thanks a lot! =)
Check it!
---
site: hachede
name: HacheDe
description: "HacheDe is a SPANISH site for HD content"
language: es-es
type: private
encoding: UTF-8
links:
- https://hachede.me/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 32, cat: Movies/3D, desc: "Películas 3D"}
- {id: 52, cat: Movies/BluRay, desc: "Películas Full Bluray"}
- {id: 33, cat: Movies/BluRay, desc: "Películas BDRemux"}
- {id: 120, cat: Movies/BluRay, desc: "Películas JMBD"}
- {id: 34, cat: Movies/HD, desc: "Películas BDrip 1080p"}
- {id: 99, cat: Movies/HD, desc: "Películas BDrip 720p"}
- {id: 37, cat: Movies/HD, desc: "Películas HDTVrip"}
- {id: 119, cat: Movies/HD, desc: "Películas HDiTunes"}
- {id: 84, cat: Movies/HD, desc: "Películas MicroHD 1080p"}
- {id: 100, cat: Movies/HD, desc: "Películas MicroHD 720p"}
- {id: 32, cat: Other/Misc, desc: "Documentales"}
- {id: 51, cat: Audio/Video, desc: "Conciertos/Videos Musicales"}
- {id: 131, cat: Movies/HD, desc: "Películas UHD"}
- {id: 16, cat: TV/HD, desc: "Series"}
- {id: 44, cat: TV/HD, desc: "Series HDTVrip"}
- {id: 89, cat: TV/HD, desc: "Series HDiTunes"}
- {id: 58, cat: TV/HD, desc: "Series 3D"}
- {id: 57, cat: TV/HD, desc: "Series Full Bluray"}
- {id: 40, cat: TV/HD, desc: "Series BDRemux"}
- {id: 121, cat: TV/HD, desc: "Series JMBD"}
- {id: 41, cat: TV/HD, desc: "Series BDrip 1080p"}
- {id: 101, cat: TV/HD, desc: "Series BDrip 720p"}
- {id: 45, cat: TV/HD, desc: "Series MicroHD 1080p"}
- {id: 102, cat: TV/HD, desc: "Series MicroHD 720p"}
- {id: 114, cat: TV/HD, desc: "TV"}
- {id: 115, cat: TV/HD, desc: "TV 1080p"}
- {id: 116, cat: TV/HD, desc: "TV 720p"}
- {id: 90, cat: Movies, desc: "Animación"}
- {id: 91, cat: Movies/3D, desc: "Animación 3D"}
- {id: 92, cat: Movies/BluRay, desc: "Animación Full Bluray"}
- {id: 93, cat: Movies/HD, desc: "Animación BDrip 1080p"}
- {id: 104, cat: Movies/HD, desc: "Animación BDrip 720p"}
- {id: 94, cat: Movies/BluRay, desc: "Animación BDRemux"}
- {id: 123, cat: Movies/BluRay, desc: "Animación JMBD"}
- {id: 96, cat: Movies/HD, desc: "Animación HDTVrip"}
- {id: 98, cat: Movies/HD, desc: "Animación MicroHD 1080p"}
- {id: 105, cat: Movies/HD, desc: "Animación MicroHD 720p"}
- {id: 126, cat: Movies/HD, desc: "Peliculas H265"}
- {id: 127, cat: TV/HD, desc: "Series H265"}
- {id: 130, cat: Movies/3D, desc: "3D H265"}
- {id: 128, cat: Movies/HD, desc: "Animación H265"}
- {id: 129, cat: Other/Misc, desc: "Documentales H265"}
modes:
search: [q]
login:
path: /ajax/login.php
method: post
headers:
user-agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36"
form: form
inputs:
loginbox_membername: "{{ .Config.username }}"
loginbox_password: "{{ .Config.password }}"
action: "login"
loginbox_remember: "true"
error:
- selector: div.error
test:
path: /?p=home&pid=1
selector: div#member_info_bar
search:
path: /
inputs:
p: "torrents"
page: "1"
pid: "10"
$raw: "{{range .Categories}}&cid[]={{.}}{{end}}"
keywords: "{{ .Query.Keywords }}"
search_type: "name"
searchin: "title"
rows:
selector: .torrent-box:not(#search_torrent)
after: 1
fields:
title:
selector: .newIndicator > a
details:
selector: .newIndicator > a
attribute: href
category:
optional: true
selector: .categoryImage a
attribute: href
filters:
- name: querystring
args: cid
download:
optional: true
selector: .torrentImages > span:first-child a
attribute: href
banner:
optional: true
selector: .previewImage a
attribute: href
size:
selector: .torrentInfo a[rel="torrent_size"]
grabs:
selector: .torrentInfo a[rel="times_completed"]
seeders:
selector: .torrentInfo a[rel="torrent_seeders"]
leechers:
selector: .torrentInfo a[rel="torrent_leechers"]
imdb:
optional: true
selector: .torrentFlags a[href^="http://www.imdb.com/title/"]
attribute: href
date:
optional: true
selector: .torrentOwner
filters:
- name: regexp
args: "(?<=Subido )(.*)(?= por)"
- name: dateparse
args: "02-01-2006 15:04"
downloadvolumefactor:
text: "1"
downloadvolumefactor:
optional: true
selector: img[src$="torrent_free.png"]
attribute: title
filters:
- name: replace
args: ["FREE LEECH!", "0"]
downloadvolumefactor:
optional: true
selector: img[src$="torrent_multiple_download.png"]
attribute: title
filters:
- name: split
args: [":", 1]
- name: trim
uploadvolumefactor:
text: "1"
uploadvolumefactor:
optional: true
selector: img[src$="torrent_multiple_upload.png"]
attribute: title
filters:
- name: split
args: [":", 1]
- name: trim
minimumratio:
text: "1.0"
minimumseedtime:
text: "259200" # 3 day (72h)
@Albvadi, you rock!! 🤘
Search is also looking good!
Does it still work on the classic view?
Unfortunately no. The html for each row it´s different for both styles.. classic use a table with tr and modern use a div with a specific class.
I don´t know if it´s possible specifiy multiple selectors... maybe @garfield69 or @kaso17 can asnwer...
yes, you can specify multiple selectors by using the comma delimiter.
eg. selector: .newIndicator > a, td.torrent_name > a
The fly in the soup for this site is the Row block, where I don't believe Jackett cardigann can handle an optional after: 1
. @kaso17 can correct me if I'm wrong.
So what I've done is make the default hachede indexer use the modern view, and provided the classic view as hachede-c.
Yes, @garfield69 is correct about the after limitation.
But looking at the HTML code the after: 1
is not needed/wrong.
To me it looks like with the current modern definition every other torrent result is dropped due to the after: 1
I think @kaso17 it´s correct. I don´t know why I writed after: 1
for the rows block. I think it´s an error and drop results in the search.
So, maybe, we can make only one definition to handle both views. I´ll check as soon as possible.
I had put together the definition for both views using the selectors with a separated comma, and almost work. But, for modern view, it´s a must the after: 1
An example image:
The selector I used for modern view is .torrent-box:not(#search_torrent)
,so, I need to skip the .torrent-box
inside the hidden div .torrentDescription
.
Things that come to mind:
.torrent-box
who has a id
attribute. (I don´t know how).torrent-box
that are inside of a div parent .torrentDescription
. (I don´t know how)optional: true
for the fields fails when the row it´s row description... (a bit ugly)Any ideas?
Okay, I think I have it using the first option. This is the definition for both views:
hachede.yml
---
site: hachede
name: HacheDe
description: "HacheDe is a SPANISH site for HD content"
language: es-es
type: private
encoding: UTF-8
links:
- https://hachede.me/
caps:
categorymappings:
- {id: 1, cat: Movies, desc: "Películas"}
- {id: 32, cat: Movies/3D, desc: "Películas 3D"}
- {id: 52, cat: Movies/BluRay, desc: "Películas Full Bluray"}
- {id: 33, cat: Movies/BluRay, desc: "Películas BDRemux"}
- {id: 120, cat: Movies/BluRay, desc: "Películas JMBD"}
- {id: 34, cat: Movies/HD, desc: "Películas BDrip 1080p"}
- {id: 99, cat: Movies/HD, desc: "Películas BDrip 720p"}
- {id: 37, cat: Movies/HD, desc: "Películas HDTVrip"}
- {id: 119, cat: Movies/HD, desc: "Películas HDiTunes"}
- {id: 84, cat: Movies/HD, desc: "Películas MicroHD 1080p"}
- {id: 100, cat: Movies/HD, desc: "Películas MicroHD 720p"}
- {id: 32, cat: Other/Misc, desc: "Documentales"}
- {id: 51, cat: Audio/Video, desc: "Conciertos/Videos Musicales"}
- {id: 131, cat: Movies/HD, desc: "Películas UHD"}
- {id: 16, cat: TV/HD, desc: "Series"}
- {id: 44, cat: TV/HD, desc: "Series HDTVrip"}
- {id: 89, cat: TV/HD, desc: "Series HDiTunes"}
- {id: 58, cat: TV/HD, desc: "Series 3D"}
- {id: 57, cat: TV/HD, desc: "Series Full Bluray"}
- {id: 40, cat: TV/HD, desc: "Series BDRemux"}
- {id: 121, cat: TV/HD, desc: "Series JMBD"}
- {id: 41, cat: TV/HD, desc: "Series BDrip 1080p"}
- {id: 101, cat: TV/HD, desc: "Series BDrip 720p"}
- {id: 45, cat: TV/HD, desc: "Series MicroHD 1080p"}
- {id: 102, cat: TV/HD, desc: "Series MicroHD 720p"}
- {id: 114, cat: TV/HD, desc: "TV"}
- {id: 115, cat: TV/HD, desc: "TV 1080p"}
- {id: 116, cat: TV/HD, desc: "TV 720p"}
- {id: 90, cat: Movies, desc: "Animación"}
- {id: 91, cat: Movies/3D, desc: "Animación 3D"}
- {id: 92, cat: Movies/BluRay, desc: "Animación Full Bluray"}
- {id: 93, cat: Movies/HD, desc: "Animación BDrip 1080p"}
- {id: 104, cat: Movies/HD, desc: "Animación BDrip 720p"}
- {id: 94, cat: Movies/BluRay, desc: "Animación BDRemux"}
- {id: 123, cat: Movies/BluRay, desc: "Animación JMBD"}
- {id: 96, cat: Movies/HD, desc: "Animación HDTVrip"}
- {id: 98, cat: Movies/HD, desc: "Animación MicroHD 1080p"}
- {id: 105, cat: Movies/HD, desc: "Animación MicroHD 720p"}
- {id: 126, cat: Movies/HD, desc: "Peliculas H265"}
- {id: 127, cat: TV/HD, desc: "Series H265"}
- {id: 130, cat: Movies/3D, desc: "3D H265"}
- {id: 128, cat: Movies/HD, desc: "Animación H265"}
- {id: 129, cat: Other/Misc, desc: "Documentales H265"}
modes:
search: [q]
login:
path: /ajax/login.php
method: post
headers:
user-agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36"
form: form
inputs:
loginbox_membername: "{{ .Config.username }}"
loginbox_password: "{{ .Config.password }}"
action: "login"
loginbox_remember: "true"
error:
- selector: div.error
test:
path: /?p=home&pid=1
selector: div#member_info_bar
search:
path: /
inputs:
p: "torrents"
page: "1"
pid: "10"
$raw: "{{range .Categories}}&cid[]={{.}}{{end}}"
keywords: "{{ .Query.Keywords }}"
search_type: "name"
searchin: "title"
rows:
selector: table#torrents_table_classic > tbody > tr:not(:first-child), .torrent-box[id^="torrent_"]
fields:
title:
selector: td.torrent_name > a, .newIndicator > a
details:
selector: td.torrent_name > a, .newIndicator > a
attribute: href
category:
selector: td.torrent_image div.category_image a, .categoryImage a
attribute: href
filters:
- name: querystring
args: cid
download:
selector: .torrentImages > span:first-child a
attribute: href
banner:
optional: true
selector: td.torrent_image div.relativeDiv div:not(.category_image) a, .previewImage a
attribute: href
size:
selector: td.size a, .torrentInfo a[rel="torrent_size"]
grabs:
selector: td.completed a, .torrentInfo a[rel="times_completed"]
seeders:
selector: td.seeders a, .torrentInfo a[rel="torrent_seeders"]
leechers:
selector: td.leechers a, .torrentInfo a[rel="torrent_leechers"]
imdb:
optional: true
selector: .torrentFlags a[href^="http://www.imdb.com/title/"]
attribute: href
date:
selector: td.torrent_name, .torrentOwner
filters:
- name: regexp
args: "(?<=Subido )(.*)(?= por)"
- name: dateparse
args: "02-01-2006 15:04"
downloadvolumefactor:
text: "1"
downloadvolumefactor:
optional: true
selector: img[src$="torrent_free.png"]
attribute: title
filters:
- name: replace
args: ["FREE LEECH!", "0"]
downloadvolumefactor:
optional: true
selector: img[src$="torrent_multiple_download.png"]
attribute: title
filters:
- name: split
args: [":", 1]
- name: trim
uploadvolumefactor:
text: "1"
uploadvolumefactor:
optional: true
selector: img[src$="torrent_multiple_upload.png"]
attribute: title
filters:
- name: split
args: [":", 1]
- name: trim
minimumratio:
text: "1.0"
minimumseedtime:
text: "259200" # 3 day (72h)
@keystorm, can you test it before submit the PR?
Make a search, enter in HacheDe, change the view in Mi Perfil -> Preferencias
and do the same search to compare the results...
You can distinguish the results because with the modern view appears a link to IMDB..
try this row selector:
div.torrent-box[id^="torrent_"]
and please check your optionals again, especially download and details shouldn't be optional
You are correct... It´s more specified and have less options for errors... And corrected the optionals... Sorry.
Waiting the test of @keystorm
Sorry, didn't catch the mention.
Working fine on both modes on my side. Ready for PR imo.
v0.8.596.0
The new HacheDe definition (thanks @Albvadi!) sadly yields 0 results, after both Test and manual search. Logs show proper HTML being fetched but no error shown.
Can anyone replicate this issue?
Log screenshot: