WordPress::Base::Content - WordPress::Base::Content documentation


WordPress-API documentation Contained in the WordPress-API distribution.

Index


Code Index:

NAME

Top

WordPress::Base::Content

SYNOPSIS

Top

   use WordPress::Base::Content 'all';
   use WordPress::XMLRPC;

   my $wp = new WordPress::XMLRPC({ 
      proxy => 'http://mysite/xmlrpc.php', 
      username => 'leo',
      password => 'pazz',
      });

   my $struct = abs_path_to_media_object_data('/home/my/picture.jpg');

   my $result = $wp->newMediaObject($struct) or die( $wp->errstr );

   print STDERR "uploaded to ". $result->{url};

DESCRIPTION

Top

This is for dealing with files, slurping, cleaning up text, whatever. Nothing is exported by default.

SUBS

Top

abs_path_to_media_object_data()

Arg is abs path, turns into data structure expected as arg to upload with WordPress::XMLRPC methods. You would normally use a binary file for this.

get_file_name()

Argument is a path. Returns filename part.

get_file_bits()

Argument is abs path, returns file bits in MIME::Base64

get_mime_type()

Argument is abs path, returns mime type

REQUIREMENTS

Top

File::Type MIME::Base64

SEE ALSO

Top

File::Type MIME::Base64 WordPress::API WordPress::XMLRPC

AUTHOR

Top

Leo Charre leocharre at cpan dot org


WordPress-API documentation Contained in the WordPress-API distribution.

package WordPress::Base::Content;
use strict;
use Carp;
use vars qw($VERSION @ISA @EXPORT_OK %EXPORT_TAGS);
use Exporter;
@ISA = qw/Exporter/;
$VERSION = sprintf "%d.%02d", q$Revision: 1.2 $ =~ /(\d+)/g;
@EXPORT_OK = qw(get_mime_type get_file_bits get_file_name abs_path_to_media_object_data);
%EXPORT_TAGS = ( 'all' => \@EXPORT_OK );

# optionally we can request other files to get mime on
sub get_mime_type {
   my $abs = shift;
   $abs or confess('missing arg');   
   require File::Type;
   my $ft = new File::Type;
   my $type = $ft->mime_type($abs) or die('missing mime');
   return $type;
}

sub get_file_bits {
   my $abs_path = shift;
   $abs_path or die;
   # from http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm
   require MIME::Base64;

   open(FILE, $abs_path) or die($!);
   my $bits;
   my $buffer;
   while( read(FILE, $buffer, (60*57)) ) {
      $bits.= $buffer;
   }

   return $bits;
}

sub get_file_name {
   my $string = shift;
   $string or croak('missing path');
   
   $string=~s/^.+\/+|\/+$//g;
   return $string;
}


sub abs_path_to_media_object_data {
   my $abs_path = shift;
   $abs_path or croak('missing path arg');

   my $struct ={
       name => get_file_name($abs_path),
       type => get_mime_type($abs_path),
       bits => get_file_bits($abs_path),
   };

   return $struct;
}


1;

__END__