Archiv verlassen und diese Seite im Standarddesign anzeigen : (Suche) - Coder für xREL NFO API Abgreifen
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
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...
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
Du bekommst die Nfo als Text nicht über die Api...
https://www.xrel.to/wiki/1681/API.html
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 :)
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?!?
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.
Japp gibt es
https://www.szenebox.org/29-entwicklung-programmierung/2944-xrel-crawler-omdapi/index2.html#post34843
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 :-)
Bittesehr:
<?php
function fix_nfo($text) {
$text = preg_replace('/<.?pre>/', '', $text);
$text = preg_replace('/>/', '>', $text);
$text = preg_replace('/<a.*title="(.*)".*a>/', '$1', $text);
return $text;
}
function fix_url($url) {
return preg_replace('/&/', '&', $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);
?>
Powered by vBulletin® Version 4.2.2 Copyright ©2026 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.