WWW::phpBB::Poster - phpBB forum poster
use WWW::phpBB::Poster; # scrape as guest my $phpbb = WWW::phpBB::Poster->new({ db_host => 'localhost', db_user => 'root', db_password => 'somepass', db_database => 'forum', db_prefix => 'phpbb_', db_type => 'mysql', db_charset => 'utf8' }); if(!$phpbb){ die(qq[Cannot establish connection!\n]); } my $forums_list = $phpbb->getForums();
I wrote this module for own purposes - exactly for generating SEO-ready forums, already filled in with some parsed data. Hope, it shall be useful for you :)
P.S. It handles only MySQL or SQLite phpBB installation.
P.P.S. It is NOT suggested for fork using - if so - you may got strange results with posts and topics. If you want to use this module with forks - please, fix it manually for InnoDB using - commiting, etc.
DBI
Digest::MD5
None.
Creates a new WWW::phpBB::Poster object.
Required parameters: HASH REF
db_user => $mysql_user
db_database => $mysql_db
Database with an already installed phpBB forum.
Optional parameters: HASH REF
db_host => $sql_host
By default, sets to localhost
db_password => $sql_password
By default, sets to empty
db_prefix => $phpbb_prefix
By default, sets to phpbb_
db_port => $sql_port
By default, sets to 3306
db_charset => q[CP1251]
By default, sets to UTF8
db_type => q[SQLite]
By default, sets to MySQL
Tries to select user from DB, if none - tries to insert user into DB. Returns ID of user.
login => q[Vasya]
password => $phpbb_hash_password
By default, sets with 'qwerty312', hashed with phpBB
email => $user_email
By default, sets to first 10 symbols of md5(rand(100))@first 10 symbols of md5(rand(100)).ru
created => time
By default, sets to current time
user_type => 0
By default, sets to 0 (USER_NORMAL)
group_id => 2
By default, sets to 2 (REGISTERED)
user_from => 'Moscow'
By default, sets to empty value
user_regdate => time
Gets user data by ID. Returns a hash of values
userID
user_type
user_regdate
login
password
email
user_from
group_id
Selects all forums, having parent id (exactly forums, not categories) from DB. Returns a ref to an array, where first key is forum ID, and second - forum name.
Tries to select topic by title and forum id from DB, if none - tries to insert topic into DB and then makes necessary updates with other tables and increases the user post count.
Returns ID of topic.
title => q[My first topic]
text => q[Content of topic]
forumID => 2
userID => 2
ID 1 - Anonymous ID 2 - admin
created => time()
By default, sets with current time
sync_forums => 0/1
By default - 1 - syncing forum stats after topic adding;
Gets topic data by ID. Returns a hash of values
topic_title
forum_id
topic_poster
topic_first_poster_name
topic_last_poster_id
topic_last_poster_name
topic_last_post_subject
topic_last_post_time
topic_time
topic_first_post_id
topic_last_post_id
Adds post content to topic.
Returns ID of post or undef if no such topic or user.
By default - 1 - syncing forum stats after post adding;
first_post => 0/1
By default - 0 - adds 'Re: ' to the post title;
Gets topics list. If limit is undefined, method will return you the whole list of topics. Return format: array of arrays - first key is topic ID, second - topic name.
Syncs forum's count of posts, topics, post_id, poster_id.
Andrew Jumash, <skazo4nik@gmail.com>
Copyright (C) 2010 by Andrew Jumash, http://www.skazkin.ru
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.
To install WWW::phpBB::Poster, copy and paste the appropriate command in to your terminal.
cpanm
cpanm WWW::phpBB::Poster
CPAN shell
perl -MCPAN -e shell install WWW::phpBB::Poster
For more information on module installation, please visit the detailed CPAN module installation guide.