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

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


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

собственно все спонтанно и безграмотно, захотелось что бы бот ходил на сайт, брал ленту 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

 

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

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

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

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

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

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

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

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

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