[Anleitung] Weitere Torrentsuchmaschinen per *.dlm einbinden / Eigene *.dlm erstellen

Status
Für weitere Antworten geschlossen.

amarthius

Super-Moderator
Teammitglied
Mitglied seit
03. Jun 2009
Beiträge
6.813
Punkte für Reaktionen
33
Punkte
174
Mit der Firmware 3.1 ist es möglich weitere Suchmaschinen durch *.dlm-Dateien der DownloadStation hinzuzufügen.
In dieser Anleitung soll gezeigt werden was sich hinter diesen Dateien verbirgt und wie man selbst Suchmaschinen integrieren kann.

Bitte zuerst komplett durchlesen! Ohne PHP-Kenntnisse kommt man nicht weit!

1. Auf die DS mittels SSH/Telnet und dem User "root" einloggen.
2. In den Ordner /usr/syno/synoman/webman/modules/DownloadStation/dlm/btsearch/plugins wechseln.
cd/usr/syno/synoman/webman/modules/DownloadStation/dlm/btsearch/plugins
3. Dort legt ihr einen Ordner an
4. Wechselt in diesen Ordner
5. Legt dort eine Datei namens INFO an.
6. Mit vi oder einem anderen Editor die Datei öffnen.
Der Inhalt dieser Datei muss folgendermaßen aussehen:
Rich (BBCode):
{
"name": "torrentsuche",
"displayname": "torrentsuche",
"description": "Dies ist eine Beispielsuche",
"version": "1.0",
"site": "http://www.beispielsuchewebseite.de",
"module": "search.php",
"type": "search",
"class": "SynoDLMSearchTORRENTSUCHE"
}
Zwecks Übersichtlichkeit und Sorgfältigkeit sollten alle Daten entsprechend abgeändert werden. Wichtig ist, dass der Name einmalig ist!
7. Der Inhalt der search.php betrifft die eigentliche Suchfunktion bzw. deren Verweis und das parsen der Suchergebnisse für die DownloadStation. Hierfür sind Kenntnisse in PHP erforderlich. Der angehängte Codeteil dient als Beispiel und ist NICHT für jede Suchmaschine gleichermaßen anwendbar.
Rich (BBCode):
<?php

class SynoDLMSearchTORRENTSUCHE {
   private $qurl = 'http://www.torrentsuschebeispielwebseite.de/search/index.php?mode=rss&show_name=';
   public function __construct() {
   }
   public function prepare($curl, $query) {
      $url = $this->qurl . urlencode($query);
      curl_setopt($curl, CURLOPT_URL, $url);
   }
   
   public function parse($plugin, $response) {
      return $plugin->addRSSResults($response);
      
   }
}
Hinweise:
Als weitere Beispiele können die unter /usr/syno/synoman/webman/modules/DownloadStation/dlm/btsearch/plugins liegenden Dateien dienen. Einfach mittels cd in die verschiedenen Unterordner wechseln und sich den Inhalt der search.php anzeigen lassen.

Die class in der search.php MUSS den gleichen Namen tragen wie in der INFO!

8. Abschließend werden die zwei Dateien noch in eine *.dlm-Datei verpackt. Dabei handelt es sich um ein simples Unix tgz oder tar.gz Archiv. Entsprechend lautet der Linuxcommand:
tar zcf torrentsuche.dlm INFO search.php
Ebenso kann man auch vorhandene *.dlm-Dateien entpacken:
tar zxf torrensuche.dlm
9. Die DownloadStation aufrufen und über das Optionsmenü überprüfen, ob die erstellte *.dlm-Datei auch geladen und aktiviert wurde. Es empfiehlt sich alle weiteren Suchmaschinen zu deaktivieren und um die korrekte Funktion der neu hinzugefügten Suche zu prüfen.

Natürlich können die INFO und search.php Dateien auch am PC selbst erstellt werden. Sie müssen nur als *.dlm gepackt werden. Danach können sie über bequem über den DSM hochgeladen werden.

--------------------------------------------------------------

Ausführliche Erläuterung / weitere Hinweise aus dem Synology Download Station Search Module Development Guide

1. INFO Datei
Die INFO Datei ist quasi das Konfigurationsfile. Es beschreibt den Namen des Suchmoduls, sowie der PHP-Klasse. Zusätzliche Informationen können ebenso angegeben werden. Anbei eine Auflistung der genutzten Variablen, deren Beschreibung und ob die Angabe notwendig ist.


name
Der Name des Suchmoduls muss einzigartig sein und darf nicht doppelt vorkommen.
Angabe: Zwingend Notwendig

displayname
Dieser Name wird im Optionsmenü der DownloadStation angezeigt. Wenn er nicht angegeben wird, dann wird name genutzt.
Angabe: Empfohlen

description

Die Beschreibung wird im Optionsmenü der DownloadStation angezeigt. Sie sollte aussagekräftige Infos enthalten.
Angabe: Empfohlen

version

Die Versionsnummer des Suchmoduls.
Angabe: Zwingen Notwendig

site

Die URL der orignal Torrentsuche.
Angabe: Optional

module
Dies ist der Name des PHP-Suchmoduls. Normalerweise ist dies search.php. Andere Bezeichnungen können ebenso verwendet werden. Die PHP-Datei muss dementsprechend benannt werden.
Angabe: Zwingend Notwendig

type

Der Modultyp. Aktuell werden nur Suchmodule unterstützt.
Angabe: Zwingend Notwendig

class
Der PHP-Klassenname in der search.php. Dieser Name sollte ebenso einzigartig sein.
Angabe: Zwingend Notwendig

2. search.php

In dieser Datei findet sich das eigentliche PHP-Skript, dass die Suche durchführt bzw. die Anfrage an die eigentliche Suchmaschine weiterleitet. Ebenso findet ein parsing der erhaltenen Suchergebnisse statt.
Anhängend werden die 2 genutzten Methoden beschrieben.

Methode: prepare
$curl: object
Ein Objekt für den cURL Verbindugnshandler. Die DownloadStation nutzt den PHP Befehl cURL um einen HTTP Request abzusetzen.
$query: string
Suchwort welches der User in die Suche der DownloadStation eingegeben hat.
Diese Methode prepare wird aufgerufen bevor die eigentliche Suchanfrage gestartet wird. Das Modul konstruiert aus dem vom User eingegebenen Suchbegriff und der unter $qurl angegebenen Webadresse einen HTTP Request. Mittels curl_setopt wird eine fertige URL als Suchanfrage ausgeliefert, welche an die eigentliche Suchmaschine versendet wird.
Sollte das Modul weitere HTTP Header oder POST benötigen, dann findet man dazu ausführliche Informationen im cURL-Handbuch.

Methode: parse
$plugin: object
Die Instanz der Plug-In Klasse.

$response: string
String Variable die die aktuelle Antwort des externen Suchservers, ohne HTTP-Header, enthält.

Return Value: integer

Rückgabewert der erfolgreich geparsden und hinzugefügten Suchergebnisse.
Diese Methode wird aufgerufen nachdem die DownloadStation eine erfolgreiche Antwort des externen Suchservers erhalten hat. Das Modul parsed entweder die Informationen selbst oder durch angegebene Hilfsvariablen.


Eine Erläuterung dieser Hilfsvariablen erfolgt wahrscheinlich die nächsten Tage.

Diese Anleitung entstand mit Hilfe einer Kurzanleitung im internationeln Forum. Außerdem wurde der Synology Search Module Development Guide genutzt.

Solltet ihr Fehler finden bitte mich Benachrichtigen. Kleinigkeiten werden noch verbessert und die Erläuterungen für die Hilfsvariablen/parsen folgt noch. Jetzt gibts aber erstmal Abendessen :D

Ich selbst kann kein PHP, daher bitte ich von Anfragen "Benötige *.dlm für XYZ-Suchmaschine!!drölf" abzusehen!
 

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114

DKeppi

Benutzer
Mitglied seit
01. Apr 2011
Beiträge
3.208
Punkte für Reaktionen
63
Punkte
114
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat