Nieuwsbot
Forumregels
LEES: Algemene Voorwaarden. Denk eventueel aan tags (DEV, BETA, RC)!
LEES: Algemene Voorwaarden. Denk eventueel aan tags (DEV, BETA, RC)!
Nieuwsbot
Besten,
Voor Webmasterplein.net heb ik toen de eerste phpbb3 bèta uit kwam een nieuwe versie van de nieuwsbot gemaakt die ook beschikbaar was in phpbb2. Deze heb ik verder nooit weggegeven, maar dat moest ik nu maar eens openbaar maken.
Volgens mij is het concept bij degenen die het zoeken wel bekend: Hij haalt de items uit een rss feed en maakt voor ieder item een nieuw topic aan.
In tegenstelling tot normale mods hoeven er geen files van phpbb veranderd te worden, er dient alleen een .php bestandje geupload te worden naar de root van het forum om het te laten werken. Aangeraden is om het script aan te roepen met een cronjob of iets dergelijks.
De mod is hier te krijgen:
http://phpbb.vedelaar.nl/ (versie 1.5)
Installatie:
Download het zip bestandje en pak de file uit. Open de file met kladblok en bewerk de variabelen aan de bovenkant. Het meeste staat standaard goed. Pas wel even de feed url, het forum id en de user id aan. De rest van de instellingen kan je even doornemen, maar zijn vooral belangrijk als het niet naar wens werkt.
Upload de bot naar de root van je phpbb forum en draai het bestand met een cronjob. Mocht je niet willen dat anderen het script zomaar draaien kan je de naam van het bestand aanpassen.
Verder gebruik:
Heeft de bot een berichtje geplaatst die je wil verwijderen? Verwijder hem dan niet, de bot zal hem opnieuw posten. Verplaats hem naar een ontzichtbaar forum, en verwijder het bericht pas als hij niet meer in de feed staat (of laat hem staan ). Dit geld ook voor het bewerken van de titel van een bericht van de bot. Pas je de titel aan van een topic, dan zal de bot een nieuw topic aanmaken met de oude naam.
Doe mij een plezier en stuur me een pb'tje (of een post in dit topic) met de url van je forum als je hem gebruikt
Derk
Voor Webmasterplein.net heb ik toen de eerste phpbb3 bèta uit kwam een nieuwe versie van de nieuwsbot gemaakt die ook beschikbaar was in phpbb2. Deze heb ik verder nooit weggegeven, maar dat moest ik nu maar eens openbaar maken.
Volgens mij is het concept bij degenen die het zoeken wel bekend: Hij haalt de items uit een rss feed en maakt voor ieder item een nieuw topic aan.
In tegenstelling tot normale mods hoeven er geen files van phpbb veranderd te worden, er dient alleen een .php bestandje geupload te worden naar de root van het forum om het te laten werken. Aangeraden is om het script aan te roepen met een cronjob of iets dergelijks.
De mod is hier te krijgen:
http://phpbb.vedelaar.nl/ (versie 1.5)
Installatie:
Download het zip bestandje en pak de file uit. Open de file met kladblok en bewerk de variabelen aan de bovenkant. Het meeste staat standaard goed. Pas wel even de feed url, het forum id en de user id aan. De rest van de instellingen kan je even doornemen, maar zijn vooral belangrijk als het niet naar wens werkt.
Upload de bot naar de root van je phpbb forum en draai het bestand met een cronjob. Mocht je niet willen dat anderen het script zomaar draaien kan je de naam van het bestand aanpassen.
Verder gebruik:
Heeft de bot een berichtje geplaatst die je wil verwijderen? Verwijder hem dan niet, de bot zal hem opnieuw posten. Verplaats hem naar een ontzichtbaar forum, en verwijder het bericht pas als hij niet meer in de feed staat (of laat hem staan ). Dit geld ook voor het bewerken van de titel van een bericht van de bot. Pas je de titel aan van een topic, dan zal de bot een nieuw topic aanmaken met de oude naam.
Doe mij een plezier en stuur me een pb'tje (of een post in dit topic) met de url van je forum als je hem gebruikt
Derk
Re: Nieuwsbot
Heb je een voorbeeldje? Ik zal hem binnenkort wel even op een testforumpje installeren
Voormalig Support Teamlid
Re: Nieuwsbot
Ik hád een voorbeeld tot er meer dan 10.000 topics waren over porno...
Zal een nieuw voorbeeldje uploaden
Edit:
http://postbot.vedelaar.nl/
Zal een nieuw voorbeeldje uploaden
Edit:
http://postbot.vedelaar.nl/
Re: Nieuwsbot
Hou er wel rekening mee wanneer je deze MOD gebruikt je grote kans op problemen krijgt mocht je later berichten willen verwijderen of aanpassen. Doordat de MOD geen gebruikt van de phpBB API is de database corrupt.
Re: Nieuwsbot
Och, het verwijderen en bewerken binnen de database werkt anders perfect. Het forum waarop deze bot een jaartje heeft gedraaid werkt nog altijd goed.
Het maakt niet uit of de api iets in de database schrijft of iets anders, zoalang de data in de database maar correct is. In dit geval is dat het.
Je hebt inderdaad gelijk dat als er (grote) aanpassingen op de database komen het script de database mogelijk om zeep zou kunnen helpen. Echter zijn aanpassingen binnen 1 versie altijd minimaal en zal het geen problemen moeten veroorzaken. Daarbij werkt de bot niet meer correct als er iets in de databse veranderd en daar kom je snel genoeg achter.
Met andere woorden, in theorie heb je gelijk, in de praktijk zou je er wijnig van moeten merken. Ik zou me er geen zorgen om maken. Wel is het altijd verstandig backups te maken. Maar dat heeft niks met de bot te maken.
Het maakt niet uit of de api iets in de database schrijft of iets anders, zoalang de data in de database maar correct is. In dit geval is dat het.
Je hebt inderdaad gelijk dat als er (grote) aanpassingen op de database komen het script de database mogelijk om zeep zou kunnen helpen. Echter zijn aanpassingen binnen 1 versie altijd minimaal en zal het geen problemen moeten veroorzaken. Daarbij werkt de bot niet meer correct als er iets in de databse veranderd en daar kom je snel genoeg achter.
Met andere woorden, in theorie heb je gelijk, in de praktijk zou je er wijnig van moeten merken. Ik zou me er geen zorgen om maken. Wel is het altijd verstandig backups te maken. Maar dat heeft niks met de bot te maken.
Re: Nieuwsbot
In de praktijk heeft het ook wel degelijk problemen, doordat je niet alle data update die submit_post update. Hierdoor krijg je bij het submitten van een post een corrupte DB en dus indirect een probleem wanneer je uit het forum posts gaat verwijderen. Dit kan sql fouten veroorzaken welke weer zijn te achterhalen op corrupte counters.
In jouw geval is de data zeker niet gelijk als de data die verzonden wordt door submit_post, en klopt dus uiteindelijk je gegevens set niet meer.
De kans dat het in de praktijk gebeurt is veel hoger als enkel bij een update.
Trouwens, diverse phpBB.com leden (Waaronder developers) bevestigen wat ik zei hierboven
In jouw geval is de data zeker niet gelijk als de data die verzonden wordt door submit_post, en klopt dus uiteindelijk je gegevens set niet meer.
De kans dat het in de praktijk gebeurt is veel hoger als enkel bij een update.
Trouwens, diverse phpBB.com leden (Waaronder developers) bevestigen wat ik zei hierboven
Re: Nieuwsbot
Nouja, oke, gebruik op eigen risico dus. Echter wil ik er graag bij melden dat hij bij mij altijd probleemloos heeft gewerkt
Re: Nieuwsbot
Ziet er (functie, niet scripting) goed uit Scripting weet ik niet
Voormalig Support Teamlid
Re: Nieuwsbot
Ik gebruik hem , maar html doet het niet.
Kenwood is erin geslaagd om witte-oled-lampen te ontwikkelen die behalve licht ook geluid kunnen produceren. Van het stereo-speakerssysteem is momenteel alleen nog een prototype ontwikkeld. Ook andere toepassingen zijn denkbaar.img src="http://feeds2.feedburner.com/~r/tweaker ... zMpZHY9B9w" height="1" width="1"/
Kenwood is erin geslaagd om witte-oled-lampen te ontwikkelen die behalve licht ook geluid kunnen produceren. Van het stereo-speakerssysteem is momenteel alleen nog een prototype ontwikkeld. Ook andere toepassingen zijn denkbaar.img src="http://feeds2.feedburner.com/~r/tweaker ... zMpZHY9B9w" height="1" width="1"/
Re: Nieuwsbot
Het lijkt er op dat je rss feed HTML bevat. Uit mijn hoofd gezegd zit er geen filter tegen html in. M.a.w. de bot werkt niet met je rss feed.
- Masterbas
- Berichten: 246
- Lid geworden op: 26 apr 2008, 22:51
- Locatie: Den Dungen, bij 's-Hertogenbosch
- Contacteer:
Re: Nieuwsbot
Toch staat er in de config iets van allow_HTML... waarom zit deze functie er dan in? Nog in ontwikkeling of...?
Groeten,
Masterbas
Masterbas
Re: Nieuwsbot
Hij zou inderdaad alle html er uit moeten filteren die niet in deze array (of string) staan. Hier heb ik gewoon gebruik gemaakt van de strip_tags die binnen php beschikbaar is. Voor mij heeft dit altijd gewerkt. Hier blijkbaar niet.
Kan je de URL van je feed eens posten?
Kan je de URL van je feed eens posten?
Re: Nieuwsbot
Code: Selecteer alles
<?php
//Made by Derk Vedelaar
//Version 1.5
$config['GebruikersID']='2'; //The user id of the user which will post the news.
$config['IP_adres']='127.0.0.1'; //the ip address of the user whick will post the news (choose anything you like)
$config['ForumID']='15'; //the id of the forum the news will be posted in
$config['IcoonID']='0'; //The id of the icon in front of the topics of the news
$config['Enable_BB']='1'; //check the checkbox 'ebable bb code' in every post? (if you change this the bot won't work correct anymore)
$config['Enable_smileys']='1'; //check the checkbox "enable smileys" in ervery post?
$config['Enable_magicurl']='1'; //Same as above but for magic url
$config['Enable_onderschrift']='1'; //same as above but for signature
$config['RSS_feed']='http://feeds.feedburner.com/tweakers/mixed'; //url to the rss feed of your choice
$config['Start_bericht']='0'; //Where does the bot need to start posting? (0 is standard, choose 1 or 2 if the feed has spam on top of it)
$config['Eind bericht']='39'; //where does the bot need to stop posting from the feed? (9 is standard, choose a lower one if here aren't 10 news items in the feed)
$config['Titel_begin']='0'; //Choose the character where the topic title needs to begin with (0 is standard, choose a higher one if there is spam at the beginning of a topic title)
$config['Onderwerp_grootte']='100'; //Don't change, if you change, the bot won't work correctly anymore (this is the size of the subject field in the database)
$config['HTML_toestaan']='1'; //The html codes which are accepted in the forum and which you accept in the news items
$config['maak_utf8']=0; //make it 1 if you have problems with óöòê or some of this characters. Don't make it 1 if you don't need to.
$config['maak_ISO-8859-1']=1; //make it 1 if you have problems with óöòê or some of this characters. Don't make it 1 if you don't need to.
$config['Charset']='ISO-8859-1'; //The character set of the feed. ISO-8859-1 is standard.
$config['Title_nopost']=array('ADV'); //An array with topic titles (or first characters only) which won't be posted (in case the feed has spam on random locations)
$config['Charset_fix']=0; //Fixes some problems with '". Don't make it 1 if you don't need to.
$config['Beschrijving']='description'; //How is the description field called in the feed?
$config['Titel']='title'; //How is the title field called in the feed?
$config['Link']='link'; //how is the link field called in the feed?
error_reporting(0);
if(!require_once('config.php'))
{
exit('Kon config bestand niet laden.');
}
if(!mysql_connect($dbhost,$dbuser,$dbpasswd))
{
exit('Kon geen connectie maken met de database server.');
}
if(!mysql_select_db($dbname ))
{
exit('Kon de database niet vinden.');
}
$gebruikersqry = mysql_query('SELECT user_colour, username FROM '.$table_prefix.'users WHERE user_id=\''.$config['GebruikersID'].'\'') or die(mysql_error());
list($Gebruikerskleur,$Gebruikersnaam) = mysql_fetch_row($gebruikersqry);
$tijd=time();
$bbcodeuid='Derk'.rand(0,9);
$posts=0;
$xml_feed = file_get_contents($config['RSS_feed']);
if ($config['maak_ISO-8859-1'])
{
$xml_feed=utf8_decode($xml_feed);
}
if ($config['maak_utf8'])
{
$xml_feed=utf8_encode($xml_feed);
}
$xml_praser = xml_parser_create($config['Charset']);
xml_parser_set_option($xml_praser, XML_OPTION_CASE_FOLDING, 0);
xml_parser_set_option($xml_praser, XML_OPTION_SKIP_WHITE, 1);
xml_parse_into_struct($xml_praser,$xml_feed,$xml_inh,$xml_tags);
xml_parser_free($xml_praser);
for ($i=0; $i < count($xml_tags['item']); $i+=2)
{
$eerste = $xml_tags['item'][$i] + 1;
$tweede = $xml_tags['item'][$i + 1] - $eerste;
$item=array_slice($xml_inh,$eerste,$tweede);
for ($j=0; $j < count($item); $j++)
{
if (!isset($arr[$i/2][$item[$j]['tag']]))
{
$teller[$item[$j]['tag']]=1;
if ($config['Charset_fix']==1)
{
$item[$j]['value']=html_entity_decode($item[$j]['value'],ENT_NOQUOTES);
}
$arr[$i/2][$item[$j]['tag']]=$item[$j]['value'];
}
else
{
$teller[$item[$j]['tag']]++;
if ($config['Charset_fix']==1)
{
$item[$j]['value']=html_entity_decode($item[$j]['value'],ENT_NOQUOTES);
}
$arr[$i/2][$item[$j]['tag'].$teller[$item[$j]['tag']]]=$item[$j]['value'];
}
}
}
for ($i = $config['Start_bericht']; $i <= $config['Eind bericht']; $i++)
{
foreach($config['Title_nopost'] as $val)
{
if ($val==substr($arr[$i][$config['Titel']],0,strlen($val)))
{
unset($arr[$i]);
break;
}
}
}
for ($i = $config['Start_bericht']; $i <= $config['Eind bericht']; $i++)
{
$titel = substr($arr[$i][$config['Titel']], $config['Titel_begin'], $config['Onderwerp_grootte']);
if ($titel!='')
{
$titel=mysql_real_escape_string(strip_tags($titel,$config['HTML_toestaan']));
$postsqry = mysql_query('SELECT topic_title FROM '.$table_prefix.'topics WHERE topic_title=\''.$titel.'\' AND forum_id=\''.$config['ForumID'].'\'') or die(mysql_error());
if (mysql_num_rows($postsqry) == 0)
{
$bericht=mysql_real_escape_string(strip_tags($arr[$i][$config['Beschrijving']],$config['HTML_toestaan']));
$link=mysql_real_escape_string(strip_tags($arr[$i][$config['Link']],$config['HTML_toestaan']));
$bericht=$bericht.'<br /><br />[url='.$link.':'.$bbcodeuid.']Lees meer[/url:'.$bbcodeuid.']';
mysql_query('INSERT INTO '.$table_prefix.'topics (forum_id, icon_id, topic_title, topic_poster, topic_time, topic_first_post_id, topic_first_poster_name, topic_first_poster_colour, topic_last_poster_id, topic_last_poster_name, topic_last_poster_colour, topic_last_post_subject, topic_last_post_time, topic_last_view_time,topic_replies,topic_replies_real)VALUES("'.$config['ForumID'].'", "'.$config['IcoonID'].'", "'.$titel.'", "'.$config['GebruikersID'].'", "'.$tijd.'", "'.$config['GebruikersID'].'", "'.$Gebruikersnaam.'", "'.$Gebruikerskleur.'", "'.$config['GebruikersID'].'", "'.$Gebruikersnaam.'", "'.$Gebruikerskleur.'", "'.$titel.'", "'.$tijd.'", "'.$tijd.'", "0", "0")') or die(mysql_error());
$topic_id=mysql_insert_id();
mysql_query('INSERT INTO '.$table_prefix.'posts (topic_id, forum_id, poster_id, icon_id, poster_ip, post_time, enable_bbcode, enable_smilies, enable_magic_url, enable_sig, post_username, post_subject, post_text, post_checksum, bbcode_uid, bbcode_bitfield)VALUES("'.$topic_id.'", "'.$config['ForumID'].'", "'.$config['GebruikersID'].'", "'.$config['IcoonID'].'", "'.$config['IP_adres'].'", "'.$tijd.'", "'.$config['Enable_BB'].'", "'.$config['Enable_smileys'].'", "'.$config['Enable_magicurl'].'", "'.$config['Enable_onderschrift'].'", "'.$Gebruikersnaam.'", "'.$titel.'", "'.$bericht.'", "'.md5($bericht).'", "'.$bbcodeuid.'", "EA==")') or die(mysql_error());
$post_id=mysql_insert_id();
mysql_query('UPDATE '.$table_prefix.'topics SET topic_first_post_id="'.$post_id.'", topic_last_post_id="'.$post_id.'" WHERE topic_id="'.$post_id.'"') or die(mysql_error());
mysql_query('INSERT INTO '.$table_prefix.'topics_posted (user_id, topic_id, topic_posted)VALUES(\''.$config['GebruikersID'].'\', \''.$topic_id.'\', \'1\')') or die(mysql_error());
$posts=$posts+1;
}
}
}
if ($posts!=0)
{
mysql_query('UPDATE '.$table_prefix.'users SET user_posts=user_posts+'.$posts.', user_lastpost_time="'.$tijd.'", user_lastvisit="'.$tijd.'" WHERE user_id="'.$config['GebruikersID'].'"') or die(mysql_error());
mysql_query('UPDATE '.$table_prefix.'forums SET forum_posts=forum_posts+'.$posts.', forum_topics_real=forum_topics_real+'.$posts.', forum_topics=forum_topics+'.$posts.', forum_last_post_id="'.$post_id.'", forum_last_poster_id="'.$config['GebruikersID'].'", forum_last_post_subject="'.$titel.'", forum_last_post_time="'.$tijd.'", forum_last_poster_name="'.$Gebruikersnaam.'", forum_last_poster_colour="'.$Gebruikerskleur.'" WHERE forum_id="'.$config['ForumID'].'"') or die(mysql_error());
mysql_query('UPDATE '.$table_prefix.'config SET config_value=config_value+'.$posts.' WHERE config_name="num_posts"') or die(mysql_error());
mysql_query('UPDATE '.$table_prefix.'config SET config_value=config_value+'.$posts.' WHERE config_name="num_topics"') or die(mysql_error());
}
?>
Re: Nieuwsbot
Hoe moet ik dit installeren?
het liefst stapje voor stapje
het liefst stapje voor stapje
Re: Nieuwsbot
Hoever ben je al? Wat lukt er niet?Installatie:
Download het zip bestandje en pak de file uit. Open de file met kladblok en bewerk de variabelen aan de bovenkant. Het meeste staat standaard goed. Pas wel even de feed url, het forum id en de user id aan. De rest van de instellingen kan je even doornemen, maar zijn vooral belangrijk als het niet naar wens werkt.
Upload de bot naar de root van je phpbb forum en draai het bestand met een cronjob. Mocht je niet willen dat anderen het script zomaar draaien kan je de naam van het bestand aanpassen.
Keep bleeding, keep, keep bleeding love
I keep bleeding, I keep, keep bleeding love
Keep bleeding, keep, keep bleeding love
You cut me open
I keep bleeding, I keep, keep bleeding love
Keep bleeding, keep, keep bleeding love
You cut me open
Re: Nieuwsbot
Cronjob? wat is dat als ik vragen mag
Re: Nieuwsbot
Ik ben ook wel benieuwd hoe dat zit met die cronjob.
Hij werkt niet voordat je dat niet gedaan hebt of wel?
Hij werkt niet voordat je dat niet gedaan hebt of wel?
Jeroen
Re: Nieuwsbot
Een cronjob is gewoon een scriptje dat op een bepaalde tijd een actie uitvoert. Dus bijvoorbeeld de URL aanroepen van dit script.
Re: Nieuwsbot
Heb je wel de mogelijkheid om cronjobs te gebruiken van je webhost?