Exile
Администратор
Тему прочитать.парсит ненужные теги типа [/br], [font=блаблабла]. как их можно убрать?
Тему прочитать.парсит ненужные теги типа [/br], [font=блаблабла]. как их можно убрать?
function parse_release($url,$p_source, $gettorrent)
{
switch ($p_source){
case "free-rutor": $p_release = parse_freerutor($url, $gettorrent);break;
}
return $p_release;
}
function parse_freerutor($url, $gettorrent)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'IE20');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
$copy_page = curl_exec($ch);
curl_close($ch);
preg_match("#\<table id=\"details\"\>.*?<br />(.*?)\<tr\>\<td class=\"header\"\>#si", $copy_page, $copy_post);
preg_match ("#<title>free-rutor.org :: (.*?)</title>#si", $copy_page, $r_title);
$copy_release = @$copy_post[1];
$text = preg_replace("#<a href=\"(.*?)\".*?>(.*?)</a>#si", "[url=\\1]\\2[/url]", $copy_release);
$text = preg_replace("#<img src=\"(\S*?)\" style=\"float:(.*?);\" />#si", "[img=\\2]\\1[/img]", $text);
$text = preg_replace("#<img src=\"(\S*?)\" />#si", "[img]\\1[/img]", $text);
$text = preg_replace("#<hr />#si", "[hr]", $text);
//hide
while (preg_match("#<div class=\"hidewrap\">.*?this\)\)\">(.*?)</div>.*?<textarea class=\"hidearea\">(.*?)</textarea></div>#sie", $text, $match))
{
$replace = "[spoiler=\"".strip_tags($match[1])."\"]".$match[2]."[/spoiler]";
$search = "|".preg_quote($match[0])."|si";
$text = preg_replace($search, $replace, $text);
}
//u i b center
while (preg_match("#<(.*?)>(.*?)<\/\\1>#sie", $text, $match))
{
switch ($match[1])
{
case "center": $replace = "[align=".$match[1]."]".$match[2]."[/align]"; break;
default: $replace = "[".$match[1]."]".$match[2]."[/".$match[1]."]";break;
}
$search = "|".preg_quote($match[0])."|si";
$text = preg_replace($search, $replace, $text);
}
//size
while (preg_match("#<font size=\"(\d+)\">(.*?)<\/font>#sie", $text, $match))
{
$replace = "[size=".(intval($match[1])+10)."]".$match[2]."[/size]";
$search = "|".preg_quote($match[0])."|si";
$text = preg_replace($search, $replace, $text);
}
//color font
while (preg_match("#<(?:span) (?:(?:style=\"((?:[^>]*?)):((?:[^>]*?));\">))((?:(?!<(?:span) ).)*?)</(?:span)>#sie", $text, $match))
{
switch ($match[1]){
case "font-family": $replace = "[font=\"".$match[2]."\"]".$match[3]."[/font]";break;
case "color": $replace = "[".$match[1]."=".$match[2]."]".$match[3]."[/".$match[1]."]";break;
}
$search = "|".preg_quote($match[0])."|si";
$text = preg_replace($search, $replace, $text);
}
if ($gettorrent === 1) {
preg_match ("#<a href=\"(http:\/\/d\.free-rutor\.org\/download\/\d+)\"#si", $copy_page, $r_torrent);
$torrent_url = @$r_torrent[1];
$options_torrent = array(CURLOPT_URL => $torrent_url);
$torrent_hidden = get_torrent($options_torrent);
}else {
$torrent_hidden = '';
}
$pars_data = array("title" => @$r_title[1], "bbcode" => strip_tags($text), "hidden" => $torrent_hidden);
return $pars_data;
}
<?php
if (!defined('IN_AJAX')) die(basename(__FILE__));
global $bb_cfg, $userdata, $lang, $bnc_error;
if ($bb_cfg['parsmod_disable']) $this->ajax_die($lang['PARS_NO_WORK']);
if (empty($this->request['pars_url'])) $this->ajax_die($lang['PARS_NO_URL']);
$gettorrent = isset($this->request['gettorrent'])? intval($this->request['gettorrent']):0;
$tor_id = isset($this->request['tor_id'])? intval($this->request['tor_id']):'';
$pars_url = $this->request['pars_url'];
$allowed_sources = array("free-rutor");
preg_match("#.*(?:\.|\/)(.*?)\.\w+\/#si", $pars_url, $s_domain);
if (!in_array($s_domain[1], $allowed_sources)) $this->ajax_die($lang['PARS_NOT_ALLOWED_SOURCES']);
if ($tor_id) delete_old_torrent($tor_id);
$p_data = parse_release($pars_url, $s_domain[1], $gettorrent);
$this->response['title'] = $p_data['title'];
$this->response['bbcode'] = $p_data['bbcode'];
$this->response['hid'] = $p_data['hidden'];
if ($gettorrent === 1) {
preg_match ("#<a href=\"(http:\/\/film-tor\.org\/download\/\d+)\"#si", $copy_page, $r_torrent);
$torrent_url = @$r_torrent[1];
$options_torrent = array(CURLOPT_URL => $torrent_url);
$torrent_hidden = get_torrent($options_torrent);
}else {
$torrent_hidden = '';
}
$pars_data = array("title" => @$r_title[1], "bbcode" => strip_tags($text), "hidden" => $torrent_hidden);
return $pars_data;
@Kirkus
парсер не заточен под домен film-tor[.]org
preg_match ("#<a href=\"(http:\/\/film-tor\.org\/download\/\d+)\"#si", $copy_page, $r_torrent);
Оригинальное решение проблемы сделать откат, а то что на трекерах с которых парсят не сидят на жопе ровно и код меняют ни о чем не говорит? По шрифту то тебе в posting_editor.tplОткатился на V 2.1.5
Поставил парсер 0.7.2
Перелопатил всю тему что бы не сыпать кучей вопросов.
Собрал все правки и фиксы по файлам. Сам парсер работает
но всё равно не скачивает файл торента, он нулевой.
И при парсе текста с топика всё равно по всей теме кидает этот bb-код [font-serif1]
Вот скрин файла и сам файл прикрепляю.
Кто поможет ребят. ? Если кто из Киева с меня пивас в благодарочку)))
Посмотреть вложение 5155Посмотреть вложение 5156