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



DLE rss импорт

#1 m0tti
m0tti
  • Неактивные
  • 343 сообщений
  • Репутация: 0
0

Обновлено 18 мая 2010 - 21:01  Отправлено 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";
   $[email protected]($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

#11 m0tti
m0tti
    Topic Starter
  • Неактивные
  • 343 сообщений
  • Репутация: 0

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

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


Спасибо за помощь, но оказываеться надо было в мускуле таблицу создать с синонимами, и все заработало.
Оказалось не так страшно создавать таблицу и добавить значения.
  • 0

#12 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 09 августа 2009 - 00:44

m0tti, добавлять... удалять... кроить... резать. это всё не страшно. Главное понимать и осознавать то что ты делаешь и к каким последствиям это может привести.
  • 0

#13 Samura
Samura
  • Неактивные
  • 12 сообщений
  • Репутация: 0

Отправлено 03 сентября 2009 - 08:15

Подскажите где взять бесплатный граббер и в какую директорию его устанавливать?
  • 0

#14 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 03 сентября 2009 - 10:41

Samura,

- Поддержка авторизации
- Грабит с 99% сайтов на основе CMS DLE
- Инсталляция граббера на сайт в один клик
- Молниеносная скорость получения новостей
- Простая настройка: вам нужно только залить через ftp на хостинг и всё!
- Функция изменения автора новости на любого другого!

скачать можно из аттача

Прикрепленные файлы


  • 0

#15 KJGoodWork
KJGoodWork
  • Неактивные
  • 11 сообщений
  • Репутация: 0

Отправлено 04 октября 2009 - 09:28

rss не вариант, лучше поточные грабберы использовать !
  • 0

#16 paska
paska
  • Неактивные
  • 6 сообщений
  • Репутация: 0

Отправлено 19 октября 2009 - 11:26

ZiTosS, Спасибо. нигде не мог найти


  • 0

#17 elllene
elllene
  • Неактивные
  • 10 сообщений
  • Репутация: 0

Отправлено 18 мая 2010 - 11:31

А почему я не могу скачать, тоже интересует
  • 0

#18 ZiTosS
ZiTosS
  • Неактивные
  • 5 148 сообщений
  • Репутация: 8

Отправлено 18 мая 2010 - 21:01

elllene, значит ваш браузер не понимает, что вы собираетесь сохранить архив. Жмите по ссылке правой кнопке и сохраняйте объект на компьютер. Ничего сложного здесь нет.
  • 0

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


Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
DeHuC_64 DeHuC_64 1-й за Июнь
Очков активности: 33 0 тем, 22 сообщения, 1 балл репутации
Сайт: russiangreat.ru
ТОП самых активных за этот месяц
  • Фотография BuxarNET
    #1

    BuxarNET
    Очков активности: 10.5 1 тема, 4 сообщения, 1 балл репутации

  • Фотография DeHuC_64
    #2

    DeHuC_64 (russiangreat.ru)
    Очков активности: 10.5 Вне конкурса за определение пользователя месяца

  • Фотография HITMAN84
    #3

    HITMAN84
    Очков активности: 9 1 тема, 3 сообщения, 1 балл репутации

  • Фотография Teves
    #4

    Teves
    Очков активности: 7.5 0 тем, 5 сообщений, 1 балл репутации

  • Фотография Silver
    #5

    Silver
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография vetalbon
    #7

    vetalbon
    Очков активности: 6 0 тем, 4 сообщения, 1 балл репутации

  • Фотография TimurR
    #8

    TimurR
    Очков активности: 4.5 1 тема, 0 сообщений, 1 балл репутации

  • Фотография imvaisov
    #9

    imvaisov
    Очков активности: 4.5 1 тема, 0 сообщений, 1 балл репутации

  • Фотография miketomlin
    #10

    miketomlin
    Очков активности: 3 0 тем, 2 сообщения, 1 балл репутации

  • Показать весь ТОП 10

Поддержите форум! =)
Топ 5 участников по репутации

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