Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-02-2006, 01:28 PM
liquidrage liquidrage is offline
 
Join Date: Aug 2006
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default How do I put RSS results into one post not seperate thread?

This is for the built in RSS manager in 3.6

What I would like to do is on a scheduled basis run an RSS feed and put all the results from the RSS feed into one post in one thread, have it be stickied, and then unsticky the previous thread.

Now, basically, I figure I can do this in mySQL by putting the RSS feed results into a hidden forum where it puts each result into it's own thread, running a scheduled sql job that selects the text from the posts in the forum, formats into one post, creates a post in the real forum, stickies the post, unstickies the previous one, and then deletes all the threads in the hidden forum.

But since this seems like something others would have liked done I'm hoping there's already something out there for this.
Plus, it seems like the plan I have using sql is going to have issues with fetching old posts, so I would need some tweaking to the plan.

Any advice on accomplishing this would be appreciated.

Thanks....

//Update since no one seems to have a pre-existing solution..............................
Basically, what I've come up with is to have the posts from the 3.6 RSS manager be defaulted as sticky threads in the hidden forum. Once a day, in the morning the schuleded task runs, grabbing the text from all sticky threads and combining the texts from all sticky threads in the hidden forum into one post, one thread, in the desired forum.
Then, lastly, my script updates the hidden forum making all posts non-sticky.
This gets around the problem the RSS manager has in keeping track.

It's certainly not elegant (shoot I've only been playing around with vB for about 2 weeks, and I'm not normally using PHP at work), but it works.

I can post a script to run if anyone's interested.
Reply With Quote
  #2  
Old 09-08-2006, 07:35 PM
Rik Brown's Avatar
Rik Brown Rik Brown is offline
 
Join Date: Nov 2005
Location: St. Louis, Missouri, USA
Posts: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by liquidrage
I can post a script to run if anyone's interested.
Yes, I would be interested. I've got a similar project in mind and that certainly would speed the work up.

Thanks in advance. -- Rik
Reply With Quote
  #3  
Old 09-09-2006, 02:38 PM
liquidrage liquidrage is offline
 
Join Date: Aug 2006
Posts: 14
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Save this code as a php file and put it your forums directory. Then just create a schedule task in the admin control panel that runs this php script.

All the values you need to change are uptop in the declarations section.

Code:
<?php

//*******************************************************
//DECLARATIONS
//*******************************************************
$sourceForumid = '37';
$insertForumid = '4';
$postShortTitle = "What you want the thread to be called";
$postTitle = postShortTitle . date("Y/m/d");
$postUID = '1';
$postUName = 'AccountName';
$dbname = "yourDataBasesName.";


//*******************************************************
//GATHER VALUES FOR NEW THREAD
//*******************************************************
$posts = $vbulletin->db->query_read("SELECT t.threadid, t.forumid, p.title, p.pagetext
FROM " . $dbname . "thread t
INNER JOIN " . $dbname . "post p ON p.threadid = t.threadid
WHERE t.forumid = " . $sourceForumid . " AND sticky = 1;");

$newpost = "";

while ($thispost = $vbulletin->db->fetch_array($posts))
{
$newpost = $newpost . "" . $thispost['title'] . " \n" . $thispost['pagetext'] . "\n" . "\n" . "\n" . "\n";
}

//CHECK TO SEE IF WE HAVE POSTS TO MAKE NEW THREAD WITH
if ($newpost != "")
{

//UNSTICKY PREVIOUS NEWS THREAD
$threadid = $vbulletin->db->query_read("
		UPDATE " . $dbname . "thread
		SET sticky = '0' WHERE
		forumid = '" . $insertForumid . "' AND title LIKE '" . $postShortTitle . "%'
		");

//CREATE NEW THREAD
$threadid = $vbulletin->db->query_read("
		INSERT INTO " . $dbname . "thread
		(title,forumid,dateline,open,lastpost,postuserid,visible,postusername,lastposter,sticky)
		VALUES
		('" . $postTitle . "','" . $insertForumid . "','" . TIMENOW . "','1'
		,'" . TIMENOW . "','" . $postUID . "','1','" . $postUName . "','" . $postUName . "','1')
	");


$insertid = mysql_insert_id();

//CREATE POST FOR THAT THREAD
$newpost =  str_replace("'","''",$newpost);

$threadid = $vbulletin->db->query_read("
		INSERT INTO " . $dbname . "post
		(threadid,username,userid,visible,pagetext,dateline)
		VALUES
		('" . $insertid . "','" . $postUName . "','" . $postUID . "','1','" . $newpost . "'," . TIMENOW . " )
	");
	
	$postid = mysql_insert_id();

//UPDATE THREAD INFO
$threadid = $vbulletin->db->query_read("
		UPDATE " . $dbname . "thread
		SET firstpostid = '" . $postid . "', lastpostid = '" . $postid . "' WHERE
		threadid = '" . $insertid . "'
		");


//UNSTICKY OLD THREADS
$threadid = $vbulletin->db->query_read("
		UPDATE " . $dbname . "thread
		SET sticky = '0' WHERE
		forumid = '" . $sourceForumid . "'
		");

$threadinfo = fetch_threadinfo($insertid); 

require_once(DIR . '/includes/functions_databuild.php'); 
build_forum_counters($threadinfo['forumid']); 

}





?>
Again, I don't claim this is the most elegant way to do it. But it's been running on my site with no problems for several days now. It uses a hidden forum that the RSS feeds into where it makes them sticky, takes all the stickies and moves them into one thread in the target forum, then unstickies the old posts.
Reply With Quote
  #4  
Old 09-11-2006, 10:17 PM
Rik Brown's Avatar
Rik Brown Rik Brown is offline
 
Join Date: Nov 2005
Location: St. Louis, Missouri, USA
Posts: 132
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Liquidrage:

I'll give a try. Thanks a lot. -- Rik
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:19 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03798 seconds
  • Memory Usage 2,197KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete