Manual:Wikibot/UploadBot
From Linux Web Expert
This code will upload all the files in a directory. It will ignore subdirectories. You will need to have wikibot.classes.php (see Manual:Wikibot) in the same directory as this file, UploadBot.php, in order for it to work.
Usage
After configuring the code, go to a command prompt and type:
php UploadBot.php
Make sure that the appropriate page, e.g. User:MyBot/Run, exists.
Configuration
Modify these lines in the source code:
$bot='YourBot';
$wiki='YourWiki';
$path = '../yourDirectory/';
Make sure you set up your bot and wiki in the wikibot.config.php file; see Manual:Wikibot.
Code
UploadBot.php
<?php
error_reporting(E_ALL | E_STRICT);
include 'wikibot.classes.php'; /* The wikipedia classes. */
# Configure these settings as you see fit.
$bot='YourBot';
$wiki='YourWiki';
$path = '../yourDirectory/';
$wpapi = new wikipediaapi ('','','',$bot,$wiki,true);
$wpq = new wikipediaquery ('','','',$bot,$wiki,true);
$wpi = new wikipediaindex ('','','',$bot,$wiki,true);
$user=getWikibotSetting('user',$bot,$wiki);
$pass=getWikibotSetting('pass',$bot,$wiki);
if ($wpapi->login($user,$pass)!='true'){
echo "Login failure";
die();
}
sleep(1);
if ($handle = opendir( $path ) ) {
echo "Directory handle: $handle\n";
echo "Files:\n";
/* This is the correct way to loop over the directory. */
while (false !== ($file = readdir($handle))) {
$pathAndFile = $path.'/'.$file;
if ( !is_dir ( $pathAndFile ) ) {
echo "$file\n";
var_dump ( $wpi->upload ( $file, $pathAndFile,'[[Category:Files from Libertarian Wiki]]' ) );
}
}
closedir($handle);
}