I've made some progress and I'd like to share them. But first, many of my problems were WPMU related, before podpress. I've patched blogs.php with
http://trac.mu.wordpress.org/browser/trunk/wp-content/blogs.php?rev=1128
changeset, and the upload/file dealing part is now working as expected. So, let's focus on podpress.
The first thing I worried to fix is autodetecting duration and filesize, that are required by a standard-compliant podcast. I've discovered that podpress_backend.php is a really simple file to hack and plug different functions, so I have replaced podPress_getDuration() and podPress_getFileSize() with my own drafts, and now it's working.
I have not cleaned up the code, so it will need some tweaks, but I hope this will help someone. Please change YOUR-BLOGS.DIR-PATH with your physical path to blogs.dir (like /home/whatever/www/wp-content/blogs.dir for example)
=== my filesize function ===
function pixline_filesize($urlreq){
$bloglist = get_blog_list(0,1000);
$blogs = array();
foreach($bloglist as $singleblog){
$blogs[$singleblog['domain']] = $singleblog['blog_id'];
}
$pezzi = parse_url($urlreq);
$senzafiles = str_replace('/files','',$path['path']);
$nuovopath = "/YOUR-BLOGS.DIR-PATH/".$blogs[$pezzi['host']]."".$pezzi['path'];
$filesize = filesize($nuovopath);
echo $filesize;
}
=== my duration function ===
function pixline_duration($urlreq){
require_once('getid3/getid3.php');
$bloglist = get_blog_list(0,1000);
$blogs = array();
foreach($bloglist as $singleblog){
$blogs[$singleblog['domain']] = $singleblog['blog_id'];
}
$pezzi = parse_url($urlreq);
$senzafiles = str_replace('/files','',$path['path']);
$nuovopath = "/YOUR-BLOG.DIR-PATH/".$blogs[$pezzi['host']]."".$pezzi['path'];
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($nuovopath);
echo @$ThisFileInfo['playtime_string'];
}