FlylinkDC++

ru

Инструменты пользователя

Инструменты сайта


Боковая панель

Меню

  • Расширения протокола NMDC от команды Flylinkdc++

* История изменений
* Работа с дампами
* Разработчикам
* Форум разработчиков и пользователей FlylinkDC++
* Добавить свой хаб в настройки программы
* Принять участие в локализации на другие языки
* Оффициальная группа ВКонтакте

ru:brandnew.php

Скрипт brandnew обходит RSS-новости блога разработчиков для поиска ссылок на последние сборки FlylinkDC++.

brandnew.php
<?
/*
 * Скрипт отображения версии, платформы и ссылки последней сборки FlylinkDC++
 * По заказу:	Fd <fd@freefd.info> (NetByNet)
 * Автор: SkazochNik
 * Формат ответа: version|platform|link
 * Данные используются на хабе PtokaX
 * Скрипт на lua проверяет тег юзера на версию, потом парсит ответ скрипта и даёт юзеру ссылку на последнюю версию
 */
include_once('customloc/simple_html_dom.php');
 
$dom = new domDocument;
 
$String = file_get_contents ("http://www.flylinkdc.ru/feeds/posts/default?alt=rss");
 
$Parser = xml_parser_create ();
xml_parser_set_option ($Parser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option ($Parser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct ($Parser, $String, $Xml_Values);
xml_parser_free ($Parser);
 
for ($i = 0; $i < sizeof($Xml_Values) - 1; $i++) {
	if ($Xml_Values[$i]["tag"] == "title") {
		if (preg_match("(FlylinkDC\+\+ r)", $Xml_Values[$i]["value"])) { //
			$inputdata = $Xml_Values[$i+1]["value"];
			break;
	    }
	}
}
if(isset($inputdata)){
	$html = str_get_html($inputdata);
	$temp_output = "";
	// version|platform|link
	foreach($html->find('a') as $element) {
		if (preg_match("(SetupFlylinkDC)", $element->innertext)) {
			$current_name = explode("-", $element->innertext);
			if (!preg_match("(x)", $current_name[2])) {
				$temp_output .= $current_name[2] . " " . $current_name[3] . "|";
				$temp_output .= $current_name[1] . "|";
				$temp_output .= $element->href . "\n";
			} else {
				$temp_output .= $current_name[3] . " " . $current_name[4] . "|";
				$temp_output .= $current_name[1] . "-" . $current_name[2] . "|";
				$temp_output .= $element->href . "\n";
			}
		}
	}
	echo $temp_output;
}

Класс для работы с DOM-деревом можно взять здесь.

На выходе получим следующий ответ в формате версия|платформа|ссылка:

r501 rc7|x64|http://narod.ru/disk/40382584001/SetupFlylinkDC-x64-r501-rc7-build-9249.exe.html
r501 rc7|x86|http://narod.ru/disk/40382644001/SetupFlylinkDC-x86-r501-rc7-build-9249.exe.html
r501 rc7|x86-x64|http://narod.ru/disk/40382739001/SetupFlylinkDC-x86-x64-r501-rc7-build-9249.exe.html

В данный момент скрипт используется по такому адресу: http://flylinkdc.com/brandnew.php

ru/brandnew.php.txt · Последние изменения: 2012/11/08 22:14 (внешнее изменение)