Перейти к содержимому

Реферальная программа Мегаплана


DLE rss импорт

#1 m0tti

m0tti
  • Пользователь
  • 343 сообщений
  • Репутация: 0
0

Отправлено 07 Август 2009 - 02:14

Настраиваю лент грабит, а вот при получении полной новости , ее длинна почему то обрезаеться до 480 символов. может кто сталкивался.

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Август 2009 - 10:57

m0tti, Не обычная лента? Если через rss канал, то там всегда не полные новости даются. А если граббером, то там и под себя настроить можно.
  • 0

#3 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 07 Август 2009 - 12:31

Именно граббером, но что то в связках {get} {skip}, не очень то все работает


  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Август 2009 - 13:24

А вы уверены, что ваш граббер читает полные новости, а не считывает их с общей страницы, где выводятся неполные? Можно код граббера кинуть? Хоть в личку хоть как, поможем.
  • 0

#5 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 07 Август 2009 - 13:43

вот вроде это

<?php
/*

-----------------------------------------------------
 Назначение: Импорт новостей
=====================================================
*/
@session_start();
@error_reporting(7);
@ini_set('display_errors', true);
@ini_set('html_errors', false);

define('DATALIFEENGINE', true);
define('ROOT_DIR', '../..');
define('ENGINE_DIR', '..');

include ENGINE_DIR.'/data/config.php';

if ($config['http_home_url'] == "") {

	$config['http_home_url'] = explode("engine/ajax/rss.php", $_SERVER['PHP_SELF']);
	$config['http_home_url'] = reset($config['http_home_url']);
	$config['http_home_url'] = "http://".$_SERVER['HTTP_HOST'].$config['http_home_url'];

}

require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';

require_once ROOT_DIR.'/language/'.$config['langs'].'/adminpanel.lng';

$config['charset'] = ($lang['charset'] != '') ? $lang['charset'] : $config['charset'];

require_once ENGINE_DIR.'/inc/include/functions.inc.php';

$user_group = get_vars ( "usergroup" );

if (! $user_group) {
	$user_group = array ();
	
	$db->query ( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
	
	while ( $row = $db->get_row () ) {
		
		$user_group[$row['id']] = array ();
		
		foreach ( $row as $key => $value ) {
			$user_group[$row['id']][$key] = $value;
		}
	
	}
	set_vars ( "usergroup", $user_group );
	$db->free ();
}

require_once ENGINE_DIR.'/modules/sitelogin.php';
require_once (ENGINE_DIR.'/classes/parse.class.php');

if(!$user_group[$member_id['user_group']]['admin_rss']) {die ("error");}


function get_content ($scheme, $host, $path, $query, $others=''){

 if (function_exists('curl_init')) {

		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $scheme."://".$host.$path."?".$query);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
		curl_setopt($ch, CURLOPT_REFERER, $scheme."://".$host.$path.$query);
		if ($others != '') curl_setopt($ch, CURLOPT_COOKIE, $others);
		@curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		$data = curl_exec($ch);
		curl_close($ch);
		if ($data) return $data; else return false;
 } 
 else
 {
   if (!empty($others)) $others = "Cookie: ".$others."\r\n";
   else $others = "";

   $post="GET $path HTTP/1.1\r\nHost: $host\r\nContent-type: application/x-www-form-urlencoded\r\n{$others}User-Agent: ".$_SERVER['HTTP_USER_AGENT']."\r\nContent-length: ".strlen($query)."\r\nConnection: close\r\n\r\n$query";

   $h=@fsockopen($host,80, $errno, $errstr, 30);

	if (!$h) {
	   return false;
	} 
	else 
	{
		 fwrite($h,$post);
	
		 for($a=0,$r='';!$a;){
			$b=fread($h,8192);
			$r.=$b;
			$a=(($b=='')?1:0);
		 }

		 fclose($h);
	}

  return $r;
 }

}

function convert ( $from, $to, $string ) {

	 if (function_exists('iconv')) {

		return @iconv($from, $to, $string);

	 } else {
  
	  return $string;

	 }
}

	$news_id = intval($_REQUEST['news_id']);
	$rss_id = intval($_REQUEST['rss_id']);
	$link = parse_url(urldecode($_REQUEST['link']));
	$parse = new ParseFilter(Array(), Array(), 1, 1);
	$parse->leech_mode = true;

	$rss = $db->super_query("SELECT * FROM " . PREFIX . "_rss WHERE id='$rss_id'");

	$rss['cookie'] = str_replace("\n", "; ", str_replace("\r", "", stripslashes(rtrim($rss['cookie']))));

	$content = get_content ($link[scheme], $link['host'], $link['path'], $link['query'], $rss['cookie']);

	$rss['search'] = addcslashes(stripslashes($rss['search']), "[]!-.?*\\()|");
	$rss['search'] = str_replace("{get}", "(.*)", $rss['search']);
	$rss['search'] = str_replace("{skip}", ".*", $rss['search']);
	$rss['search'] = preg_replace("![\n\r\t]!s", "", $rss['search']);
	$rss['search'] = preg_replace("!>[ ]{1,}<!s", "><", $rss['search']);

	if ($rss['search'] != "" && preg_match("!".$rss['search']."!Us", $content, $found)) {

	   $temp = array();
	   for($i=1; $i < sizeof($found); $i++) {
			$temp[] = $found[$i];
	   }

	   $content = implode("", $temp);

		if ($_POST['rss_charset'] != strtolower($config['charset']) AND $content != "") $content = convert($_POST['rss_charset'], strtolower($config['charset']), $content);

		if ($content != "") {

			$content .= "<br /><br /><i>".$lang['rss_info']." ".$link['host']."</i>";

		}

		if ($rss['text_type'])
		{
			$content = $parse->decodeBBCodes($content, false);

		}
		else
		{
			$content = $parse->decodeBBCodes($content, true, "yes");
		}

		if ($content != "") {

			$buffer = <<<HTML
<textarea rows="15" style="width:600px;" id="full_{$news_id}" name="content[{$news_id}][full]">{$content}</textarea>
HTML;
		} else $buffer = "<font color='red'>".$lang['rss_error']."</font>";
	} else $buffer = "<font color='red'>".$lang['rss_error']."</font>";


@header("Content-type: text/css; charset=".$config['charset']);
echo $buffer;
?>

  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Август 2009 - 15:21

Вообще тут ограничений нету. Надо копать в другом месте, где не знаю.
  • 0

#7 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 07 Август 2009 - 15:26

а при составлении шаблона граба {get} и {skip} можно несколько раз употреблять
  • 0

#8 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 07 Август 2009 - 16:40

m0tti, скорее всего можно, вот только что это тебе даст...
  • 0

#9 m0tti

m0tti
    Topic Starter
  • Пользователь
  • 343 сообщений
  • Репутация: 0

Отправлено 08 Август 2009 - 21:51

делать выборку контента, граблю просто каталог.

Нашел граббер с базой синонимов и синонимайзер, правда ни как разобраться немогу. Могу поделиться, может вместе найдем решение


  • 0

#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 08 Август 2009 - 23:24

m0tti, я с DLE не часто работаю. Поэтому если и смогу помочь, то не быстро, так как щас много работы, да и двиг нужно устанавливать.
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru