sourceforge.net: API ähnlich aktuelle Datei-Download-URLs ermitteln

An dieser Stelle nur ein kleines Beispiel, wie man mit PHP von sourceforge.net API ähnlich die Download URL zu einer Datei-Version eines Spiegel-Servers ermittelt mit Hilfe meiner sourceforge.net SF.net Klasse, die die Snoopy-Klasse erweitert, welche einen Web-Browser simuliert.

Hier die Klasse:

span style="color: #808080; font-style: italic;">/**
 * @see http://snoopy.sourceforge.net/
 */'Snoopy.class.php');
/**
 * small and easy API like sourceforge.net file access class
 *
 * @author Holger Schadeck <[email protected]>
 * @access public
 */'http://sourceforge.net/projects/''http://sourceforge.net/project/''http://downloads.sourceforge.net/''sourceforge.net''Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4'/**
	 * gets links and data
	 * 
	 * @access private
	 * @param string $sUrl URL
	 * @return mixed array of links data or boolean false
	 */'/<a .*?href=[\'\"]''/') . '[\'\"].*?>(.*?)< \/a>/i''text''url_download' => $sRemote, 'data''args''data']['query''args'/**
	 * Gets and caches the file links data of all packages for a project
	 * 
	 * @access public
	 * @param string $sProject name of a project (exmaple: http://sourceforge.net/projects/snoopy/ => snoopy)
	 * @return array with project file links data arrays, each with the keys: "text", "url_download", "data" and "args"
	 */'/''/^''showfiles.php', '/') . '.*group_id=([0-9]+?).*?#downloads$/''/^''/') . '/''text'/**
	 * gets the url for a project file
	 * 
	 * @access public
	 * @uses SFnet::getFilesOfProject to get cached or load not cached project files data
	 * @param string $sProject name of the project
	 * @param string $sFile name of the release file 
	 * @return mixed string URL of project file download or false;
	 */'url_download'/**
	 * gets the modification timestamp for a project file
	 * 
	 * @access public
	 * @uses SFnet::getFilesOfProject to get cached or load not cached project files data
	 * @param string $sProject name of the project
	 * @param string $sFile name of the release file 
	 * @return string timestamp of project file;
	 */'modtime''args''args']['modtime'


Hier das Beispiel:
span style="color: #808080; font-style: italic;">/**
 * Just an example of sourceforge.net.php
 * 
 * @access public
 * @author Holger Schadeck
 */
/**
 * including the SFnet class
 */'lib/sourceforge.net.php'/**
 * declare the target project
 */
$sProject = 'mingw';
/**
 * loop over project file
 *//**
	 * show each file with download URL and modification timestamp
	 * the use of SFnet::getDownloadUrlForProjectFile and SFnet::getTimeForProjectFile methods normally make no sense,
	 * if its project name is the same as the project name of the project files loop,
	 * because you can get the data from the file data array, here $aFileData['download_url'] and $aFileData['args'['modtime']];
	 * 
	 * @see SFnet::getFilesOfProject
	 */' => '' (Modifiziert: '')<hr />'


Wie man vielleich sieht, kann man sogar den Timestamp des Änderungsdatums ermitteln.
Und hier das ganze zum Downloaden:

One Reply to “sourceforge.net: API ähnlich aktuelle Datei-Download-URLs ermitteln”

  1. Funzt nicht bei mir 🙁

    Warning: array_combine() expects parameter 1 to be array, null given in ..SFnet/lib/sourceforge.net.php on line 31

    Warning: Invalid argument supplied for foreach() in …SFnet/lib/sourceforge.net.php on line 33

    Schade sowas such ich nämlich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*