Einzelnen Beitrag anzeigen
Alt 06.09.2011, 13:38   #1
Stifler
König
Punkte: 39.887, Level: 100 Punkte: 39.887, Level: 100 Punkte: 39.887, Level: 100
Levelaufstieg: 0% Levelaufstieg: 0% Levelaufstieg: 0%
Aktivität: 0% Aktivität: 0% Aktivität: 0%
Letzte Erfolge
Auszeichnungen
 
Benutzerbild von Stifler
 
Registriert seit: 14.02.2011
Ort: Graz
Alter: 40
Beitr?ge: 1.495
Abgegebene Danke: 82
Erhielt 200 Danke für 37 Beiträge
Downloads: 11
Uploads: 0
Nachrichten: 6230
Renommee-Modifikator:
3169 Stifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes AnsehenStifler genießt hohes Ansehen
Standard Tracker Such API

Hi!

Ich habe mir überlegt ob es nicht toll wäre anstatt auf jedem Tracker einzeln nach etwas bestimmten zu Suchen, mit einer Suchmaschine dies Abzufragen.

Hier zu habe ich eine API gebastelt die eine XML Ausgabe erzeugt!

Beispiel mit dem Suchbegriff "cou": http://screamlabs.at/chatcommunity/i...rch&search=cou

Die Suchmaschine liest die XML aus und gibt in einer Tabelle das Ergebnis aus:
Suche: http://screamlabs.at/test/search.php
Suchergebnis mit "cou": http://screamlabs.at/test/search.php?search=cou

Wer hätte Lust diese API auf seinem Tracker zu testen?

PS: Um Mißbrauch zu verhindern kann jeder einen API Schlüssel in der API eintragen den dann nur die Suchmaschine weiß!

Quellcode:
PHP-Code:
<?

/*
##########################################
## Coded by Stifler  ##
##                2011                  ##
##########################################
*/

require_once("include/bittorrent.php");

$api_version = "1.0";
$apikey = "";
$tracker_name = "";
$tracker_url = "";
$download_url = ""; // http://www.tracker.com/download.php?id={ID} ({ID} NICHT ersetzen!)
$view_url = ""; // http://www.tracker.com/details.php?id={ID} ({ID} NICHT ersetzen!)
$min_string = 3;
$search_limit = 50;

dbconn();

function checkfilename($filename)
{
    $s = $filename;
    $s = str_replace(array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß"),
                     array("Ae", "Oe", "Ue", "ae", "oe", "ue", "ss"),
                     $s);

    return $s;
}

function xml_error($error_code, $error_string)
{
    global $api_version, $tracker_name, $tracker_url, $search;

$xml = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n".
"<infos>\n".
"<api>\n".
"<version>".$api_version."</version>\n".
"</api>\n".
"<info>\n".
"<tracker>".checkfilename($tracker_name)."</tracker>\n".
"<url>".str_replace("&", "&amp;", $tracker_url)."</url>\n".
"<search>".$search."</search>\n".
"</info>\n".
"<error>\n".
"<id>".$error_code."</id>\n".
"<message>".checkfilename($error_string)."</message>\n".
"</error>\n
</infos>\n";

header("Content-Type: text/xml; charset=utf-8");

echo $xml;

exit();

}

$key = mysql_real_escape_string(trim(rawurldecode($_REQUEST[apikey])));
$search = mysql_real_escape_string(trim(rawurldecode($_REQUEST[search])));

if($key != md5($apikey)) {

xml_error(1, "Invalid API Key (Ungültiger API-Schlüssel)");

}
elseif($search == "" || strlen($search) < $min_string) {

xml_error(2, "Invalid String Length (Ungültige String-Länge)");

}

$query = mysql_query("SELECT id, name, size, seeders, leechers, times_completed FROM torrents WHERE name LIKE '%".$search."%' AND status='1' ORDER BY 'id' DESC LIMIT $search_limit");

$xml = "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n".
"<infos>\n".
"<api>\n".
"<version>".$api_version."</version>\n".
"</api>\n".
"<info>\n".
"<tracker>".checkfilename($tracker_name)."</tracker>\n".
"<url>".str_replace("&", "&amp;", $tracker_url)."</url>\n".
"<download>".str_replace("&", "&amp;", $download_url)."</download>\n".
"<view>".str_replace("&", "&amp;", $view_url)."</view>\n".
"<search>".$search."</search>\n".
"<limit>".$search_limit."</limit>\n".
"<min>".$min_string."</min>\n".
"</info>\n";

while($result = mysql_fetch_array($query)) {

$id = intval($result["id"]);
$name = checkfilename($result["name"]);
$size = intval($result["size"]);
$seeder = intval($result["seeders"]);
$leecher = intval($result["leechers"]);
$completed = intval($result["times_completed"]);

$xml .= "<file>\n".
"<id>".$id."</id>\n".
"<name>".$name."</name>\n".
"<size>".$size."</size>\n".
"<seeder>".$seeder."</seeder>\n".
"<leecher>".$leecher."</leecher>\n".
"<completed>".$completed."</completed>\n".
"</file>\n";

}

$xml .= "</infos>";

header("Content-Type: text/xml; charset=utf-8");

echo $xml;

exit();

?>
__________________

Ge?ndert von Stifler (22.09.2014 um 17:34 Uhr)
Stifler ist offline   Mit Zitat antworten Nach oben
Folgende 5 Benutzer sagen Danke zu Stifler für den nützlichen Beitrag:
$iMpLy (07.09.2011), Bluesteel (08.09.2011), BonkeR (06.09.2011), gotthummer (08.09.2011), Thunder™ (07.09.2011)