PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (Suche) - Coder für xREL NFO API Abgreifen



nohope
29.07.2017, 21:29
Grüße Community,

erneut versuch ich es mit einem Thread in dem ich einen Coder suche für folgende Funktion :

Ich würde gerne die NFO von xREL via API (oAuth2) abgreifen, hier liefert die API das Bild als png zurück.
Desweiteren bräuchte ich die Alternative Funktion des Text, diese wird aber nicht durch die API unterstützt und müsste anderweitig abgegriffen werden.

Das bedeutet wenn ich nach einem Release suche via Ihrem Script, so bekomm ich das Bild bzw die Adresse angezeigt und gleichzeitig den Text.

Der Text (So kommt er eig. immer via NFO) sollte ohne den ganzen ASCII/NFO kram sein.

Die oAuth2 Schnittstelle hab ich bereits gefunden aber nicht ans laufen bekommen, perfekt wäre also ein fertig funktionierendes Script womit ich weiter Arbeiten kann.

Bei weiteren Fragen steh ich via PN zur verfügung !

Kontaktmöglichkeiten via PN (ICQ UIN kann weitergegeben werden !)
Preis Vorstellung : ~ 20-40€
Zahlungsart : PayPal/BTC

Edit://

Scriptsprache PHP

Mit freundlichen Grüßen
nohope

pythonfreak
30.07.2017, 02:26
Muss das ganze über die xREL via API (oAuth2) gemacht werden? Wenn es auch ohne geht, hier ein kleines python script


# -*- coding: utf-8 -*-

import urllib2
import sys
import re
from bs4 import BeautifulSoup

"""
xrel oeffnen, nach Release suchen und nfo laden als Bild (Url) und als Text
Syntax: xrel.py "Releasename"
Getestet unter: Python 2.7.13 (Windows)
"""

xrel_url = "https://www.xrel.to/search.html?mode=full&xrel_search_query=" + sys.argv[1]
req = urllib2.Request(xrel_url)
req.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')
req.add_header('Referer', 'https://www.xrel.to/releases.html')
req.add_header('Cookie', 'notice_understood=1')
resp = urllib2.urlopen(req)
content = resp.read()
soup = BeautifulSoup(content, "html.parser")
nfo_bild_url = soup.find('img', src=re.compile('nfo-render.html'))
nfo_bild_url = "https://www.xrel.to" + nfo_bild_url['src']
print nfo_bild_url #nfo als Bild (Url)
print "\n"
nfo_text = soup.find("div", {"id": "nfo_text"}).text
print nfo_text #nfo als Text

1stAid
30.07.2017, 09:23
https://www.szenebox.org/images/_imported/2017/07/60.jpg
Mein Posti Tool kann das in der neuesten Version ....
Bei Filmen xrel und bei Games Steam.
Bei xREL wird untem im Textfeld die Nfo ausgegeben ebenso der Link zum Pic...

nohope
30.07.2017, 09:35
Morgen :-)

nein es musst nich unbedingt über oAuth2 passieren, hier wäre natürlich nur der Vorteil das man nicht irgendwas aus dem HTML Code Grabbt sondern direkt die API nutzt. Was den Text teil angeht wird man wohl so oder so Grabben müssen.
Da python nicht so meins ist sollte es schon in PHP erfolgen, das hatte ich wohl vergessen zu schreiben !

grüße

1stAid
30.07.2017, 11:05
Du bekommst die Nfo als Text nicht über die Api...
https://www.xrel.to/wiki/1681/API.html

nohope
30.07.2017, 11:07
Du bekommst die Nfo als Text nicht über die Api...
https://www.xrel.to/wiki/1681/API.html

Korrekt aber das Bild, und die Text Version soll so gegrabbt werden :)

1stAid
30.07.2017, 11:40
Die oAuth2 ist erstmal nur für die Sicherheit der api.
Die Api benötigt die ID des Release. Ohne diese ID geht es nicht. Diese ID bekommst du aber nur wenn du sie aus dem Html oder der Url filterst/grabbst.
statt diese ID kann man aber auch gleich die Pic URL filtern....

Das suchen passiert ja einfach.....(einfach mal in den Browser kopieren.)

https://www.xrel.to/search.html?xrel_search_query=Bloody.Bloody.Bible. Camp.German.2012.AC3.BDRip.x264-SPiCY
Warum soll ich mir nun die Id parsen wenn ich doch nun schon die Bildurl gleich filtern kann?!?

Nimbus
30.07.2017, 11:46
Wenn man die HTML-Seite abgreift, dann ist das zwar prinzipiell etwas unelegant, aber hat den Vorteil, dass man mit einer Anfrage beide Dinge erhält. Da sich das abrufen der HTML-Seite ohnehin nicht vermeiden lässt wäre das in diesem Fall wohl nicht unvernünftig beides daraus zu beziehen. Das spart Anfragen und funktioniert schon relativ lange (lange Zeit konnte man keines von beiden per API abgreifen).
Für diesen Ansatz gäbe es hier auch bereits PHP-Code, wenn ich mich nicht täusche.

FLX
30.07.2017, 13:54
Japp gibt es

https://www.szenebox.org/29-entwicklung-programmierung/2944-xrel-crawler-omdapi/index2.html#post34843

nohope
30.07.2017, 13:59
Wenn man die HTML-Seite abgreift, dann ist das zwar prinzipiell etwas unelegant, aber hat den Vorteil, dass man mit einer Anfrage beide Dinge erhält. Da sich das abrufen der HTML-Seite ohnehin nicht vermeiden lässt wäre das in diesem Fall wohl nicht unvernünftig beides daraus zu beziehen. Das spart Anfragen und funktioniert schon relativ lange (lange Zeit konnte man keines von beiden per API abgreifen).
Für diesen Ansatz gäbe es hier auch bereits PHP-Code, wenn ich mich nicht täusche.

Okey, das nehm ich dann/kauf ich gern ab ! Als kompletten Code :-)

blamuh
01.08.2017, 19:16
Bittesehr:


<?php

function fix_nfo($text) {
$text = preg_replace('/<.?pre>/', '', $text);
$text = preg_replace('/&gt;/', '>', $text);
$text = preg_replace('/<a.*title="(.*)".*a>/', '$1', $text);
return $text;
}

function fix_url($url) {
return preg_replace('/&amp;/', '&', $url);
}

function get_info($release) {
$url = "https://www.xrel.to/search.html?mode=full&xrel_search_query=" . $release;

$headers = array();
$headers[] = "Host: www.xrel.to";
$headers[] = "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0";
$headers[] = "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$headers[] = "Accept-Language: en-US,en;q=0.5";
$headers[] = "Referer: " . $url;
$headers[] = "Cookie: ANON_LOCALE=de_DE; nfo_font=2; notice_understood=1";
$headers[] = "Dnt: 1";

$header = join ("\r\n", $headers);

$opts = array('http' =>
array(
'method' => 'GET',
'header' => $header,
)
);

$context = stream_context_create($opts);

$res = array();
$result = file_get_contents($url, false, $context);

preg_match('/<img src="(\/nfo-render.html.*)" alt=".*?NFO" usemap="#linkMap" \/>/ms', $result, $matches);
$res["img"] = fix_url('https://www.xrel.to/' . preg_replace('/.*(nfo-render.html[^"]*?)".*/', '$1', $matches[0]));

preg_match("/<pre>(.*?)<\/pre>/ms", $result, $matches);
$res["nfo"] = fix_nfo($matches[0]);

return $res;
}

$release = "Baby.Driver.2017.TS.XviD-TiTAN";

$release_info = get_info($release);

// img in $release_info["img"]
// nfo text in $release_info["nfo"]
echo var_dump($release_info);

?>

nohope
05.08.2017, 19:15
Vielen dank dafür !