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.