Перейти к контенту

Бот постит новости на форум


Рекомендуемые сообщения

собственно все спонтанно и безграмотно, захотелось что бы бот ходил на сайт, брал ленту RSS, и постил на форум в заданую тему. получилось некое чудовисько интегратор rss2html и бота для создания тем на форуме.

 

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

 

кратко :

$XMLfilename = "http://www.nr2.ru/crimea/rss/";

указываем урл ленты RSS

$FeedMaxItems = 10;

максимальное кол-во забираемых новостей (нафиг нада если будет логическое условие КАК именно забирать новости, т.е. публиковать только новые)

var $forum_id = 17;

ID форума где находиться тема (криво, знаю)

var $topic_id = 1597;

ID темы куда постить (тогда нахрена ID форума ...)

ниже этих строк идут коментарии, так что заполнить не проблема

 

вот ... аплоадим файл bot.php и sample-template.html куда нибудь в одну директорию, (sample-template.html понятно, шаблон вывода новости). запускаем скрипта, почти радуемся, потому что при последующем запуске бот просто продублирует новости добавив новые.

 

магистры, не дайте засохнуть :D

www.zip

Ссылка на комментарий
Поделиться на других сайтах

новую тему уж пожно не полениться у ручками создать

для создания тем есть

Бот для создания тем на форуме

 

там бери код и извращайся сколько вместиться.

Ссылка на комментарий
Поделиться на других сайтах

новую тему уж пожно не полениться у ручками создать

для создания тем есть

Бот для создания тем на форуме

 

там бери код и извращайся сколько вместиться.

Хах блин этого бота надо каждый раз переливать затем запускать, а вот скрипт по словам автора для автоматической работы бота и автоматического тырения новостей придеться заказывать за вмз.

Ссылка на комментарий
Поделиться на других сайтах

> как вести сравнение

привожу идею на примере http://www.nr2.ru/crimea/rss/

используемого тобой

запустили скрипт - отпостили все новости , так. Последнюю запощенную (первый линк новости в rss поидее) новость сохраняем в кой то файл - точнее сохраняем ее ID (пример http://www.nr2.ru/crimea/20795.html , ID = 20795 ) .

При следующем запуске постим только те новости ID которых > чем ID последней запощенной новости. Чем это не алгоритм ? :D

Ссылка на комментарий
Поделиться на других сайтах

тем что это привязка к новостной ленте http://www.nr2.ru/crimea/rss/

 

ссылки могут быть другими.

 

Посмотрел XML парсер RSS плохо стало... Он конечно может и универсален, но что то в нем не то.

Ссылка на комментарий
Поделиться на других сайтах

kastrator

 

>>Хах блин этого бота надо каждый раз переливать затем запускать

 

уважаемый, есть такая штука crontab называеться, или cron. извиняюсь, я думал что ясно будет что скрипт будет исполняться по крону.

 

а зачем заливать каждый раз по новой ?

 

но я смотрю ВМЗЕЙ много поэтому думать не хочеться ?

 

Mitos

ага ... потихоньку доходит ...

 

GiV

нет, я пробовали и на других лентах, где то баг есть ... несомненно, поскольку не с каждой ленты идет постинг. в одном случае постинг пошел только когда максимум новостей ограничил пятью ... видимо код по размеру не влазит по установкам секурити форума, или поля post.

 

т.е. сам парсер отрабатываеться, а постинг пустой.

 

[1111846067:1111846147]rss2html брал отседа http://www.rss2html.com/[1111846067:1111846364]>>а вот скрипт по словам автора для автоматической работы бота и автоматического тырения новостей придеться заказывать за вмз.

 

за тыренье новостей можно и по шапке получить, речь идет (в моем случае) о сотрудничестве с агенством новостей ... ну народ, лишь бы стырить.

 

PS этот скрипт кстати и занимаеться тем что тырит с указанной ленты новостей. скриптов может быть несколько, каждый отвечает за свой сайт откуда он "тырит". назови bot1 bot2 ... bot_N и запускай каждого по cron. все, жди в гости владельца новостевого сайта на разбор полетов.[1111846067:1111847508]за WMZ и дурак напишет, ты попробуй бесплатно ...

 

кодировку в шаблоне нужно прописать.

Ссылка на комментарий
Поделиться на других сайтах

Ну дак если делаете для RSS то и для Html тоже думаю можно?

крон я знаю что автоматом будет постить, но скриптик для сдирания вот что нужно))

Ссылка на комментарий
Поделиться на других сайтах

из переписки

 

А там, в файле, есть вполе <item> поле <guid> - гарантировано уникальный id статьи (сейчас стоит базовый оригинальный url - так рекомендуют в стандарте). Из него можно вычленить уникальный номер. Народ иногда тексты подправляет (ошибки, там и пр.), так что этот guid годится, он никогда не меняется

 

так что наверное по ID новости ?

Ссылка на комментарий
Поделиться на других сайтах

писать в guid'е урл - это верх расточительности. Просто написать pid поста. Этого достаточно.
Ссылка на комментарий
Поделиться на других сайтах

если скрипта запускать раз в сутки ... тогда если date публикуемой новости > date - 24 часа, тогда публикуем, иначе нах ...
Ссылка на комментарий
Поделиться на других сайтах

Что то читая эту тему, я не очень врубился в происходящее, но мне этот мод тоже очень нужен, я был бы признателен, если бы кто нибудь из вас смог бы его скинуть мне на mr_CTPELOK@bk.ru
Ссылка на комментарий
Поделиться на других сайтах

советую не врубаться и не использовать если нет хотя бы знаний по начальной установке мода, а также по тому что такое cron и с чем иго идять.[1112974434:1112974473]а текущая наработка приатачена к первому посту, зрячий да увидит.
Ссылка на комментарий
Поделиться на других сайтах

Не знаю может это и оффтопик, вот rss бот создающий сам темы в заданной ветке новостей, правда вот где я его взял в упор не помню :D

 

http://www.sayanogorsk.info/files/rss.zip

 

Может новые идеи какие из него извлекёте...

Ссылка на комментарий
Поделиться на других сайтах

  • 2 недели спустя...

Походу врубился :D

Рееебя!

Чем закончилось то?

 

В файле у mr.Sana на фоточке New Task.png все расписанно замечательно, только я не нашел этого в v1.3 Final ...

Блиин. в 2.0 тоже не вжу...

Хотя, этот путь с фотки есть.... forum

sources/tasks

 

НУ КТО ТАК СТРОИТ? © НЕ Я

ВСЁ...

сделал ;)

 

Взяли его с

http://invisionize.com/

 

и оно для 2.0!!!

 

Переводить не бу...

 

1) do sources/admin/ad_forums.php edit as per install.txt

2) go to Forum Control > New Forum then follow New Forum.png setting then click "create this forum" (make sure you follow the permission setting shown.)

3) go to Task Manager > Task Manager > Add a new task > follow New Task.png setting then click "add this task"

4) put rss.php into sources/tasks/

5) enable task and logging

after all this is done.. it is good idea to run skin tool: rebuild cache

for first time , run task manually to pull news if the news is posted today! not 5 days ago, it may not pick up.. then visit your board to view your work!

this is basic step.. as default.

 

взято отсюда...

http://forums.invisionize.com/index.php?sh...dpost&p=1347671

ссылка на описане поддержки (18 стр.)

 

лишь замечу, что это крутая и удобная штучка - с минимальными настройками. долго не врубался в разницу с руссифицированной версии, оказывается на фотке указано

Управление задачами > Управление задачами > Добавить новую,

но при этом у меня отсутствовал кусок, который указан на фторой фотке и добавляет окошко для <xml> его подобрал куда вставить и вставил, а не заменил из TXT...

 

Рекомендую для применения в сети проектов и обмену инфой.

Жжаль не хватает ботов для дубляжа на Портал... например MKPortal.

 

Да и вообще... просидел несколько часов, так и не сделал необходимый официальный вид Поста... давайте объеденим усилия. шлите ПМ.

может кстати место для этого описания в форе с подобающей версией[1114375083:1114463567]сутки похерил...

Ссылка на комментарий
Поделиться на других сайтах

  • 7 месяцев спустя...

Поставил мод. Работает замечательно, только одна проблема - непонятно как из RSS в utf-8 (Unicode) делать посты в cp1251...

 

Есть идеи?

Ссылка на комментарий
Поделиться на других сайтах

Сам спросил - сам отвечу.

 

В rss.php найти:

 

//**************************************************************
// RSS to Topic Praser
//**************************************************************	
function prase() {

 

в которой после

 

		$topic = array(
						  'title'			=> $this->item['title'],
						  'description'	  => '',
						  'state'			=> 'open',//$state
						  'posts'			=> 0,
						  'starter_id'	   => $post['author_id'],
						  'starter_name'	 => $post['author_name'],
						  'start_date'	   => time(),
						  'last_poster_id'   => $post['author_id'],
						  'last_poster_name' => $post['author_name'],
						  'last_post'		=> time(),
						  'icon_id'		  => 0,//$ibforums->input['iconid'],
						  'author_mode'	  => 0,//$ibforums->member['id'] ? 1 : 0,
						  'poll_state'	   => 0,
						  'last_vote'		=> 0,
						  'views'			=> 0,
						  'forum_id'		 => $this->fid,
						  'approved'		 => 1,
						  'pinned'		   => 0,
						 );

 

вставить вот это:

/* UTF to Win-1251 */
	static $table = array("\xD0\x81" => "\xA8", // Ё
					"\xD1\x91" => "\xB8", // ё
				   );
$post['post'] = preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se',
				  'isset($table["$0"]) ? $table["$0"] :
				   chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))',
				  $post['post']
				 );

$topic['title'] = preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se',
				  'isset($table["$0"]) ? $table["$0"] :
				   chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))',
				  $topic['title']
				 );

 

Все :D

Ссылка на комментарий
Поделиться на других сайтах

и все таки, как запихать новости в одну ветку, а не каждую новость отдельной темой ... причем все это на версии 1,2
Ссылка на комментарий
Поделиться на других сайтах

В след своим исправлениям - нужно поменять еще одно место, иначе бот будет дублировать посты (бо дурной и не видит разницы между utf и 1251).

 

Найти:

if(!in_array($this->item['title'],$this->arss))

 

Заменить на

			$itm = $this->item['title'];
		$itm = preg_replace('#([\xD0-\xD1])([\x80-\xBF])#se',
				  'isset($table["$0"]) ? $table["$0"] :
				   chr(ord("$2")+("$1" == "\xD0" ? 0x30 : 0x70))',
				  $itm
				 );
		if(!in_array($itm,$this->arss))

 

Все, теперь вроде работает как надо :D

Изменено пользователем catbegemot.net
Ссылка на комментарий
Поделиться на других сайтах

  • 4 недели спустя...

вообщем домучал я это несчатье, которое в первом посте, если магистры причешут код, то выложу, иначе стыдно :D

 

все таки считаю целесообразным постить боту в одной теме, прикольно, завел несоклько ботов для разных форумов, и забыл про форум на дооолгие лета ...

Ссылка на комментарий
Поделиться на других сайтах

Song просто постит ленту, например в Андеграунде, в одну тему например "Новости", заряжаешь RSS от секуритилаб и по крону скрипта, все, есть постоянно пополняемая тема новостей :D

 

все равно криво работает ...

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

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

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.