function process_torrent_data($content, $filename, $create_file = true)
{
global $tmp_add_dir;
set_error_handler('handleError');
try {
$torrent = new Torrent($content);
if ($error = $torrent->error()) {
return array('error' => 'Error parsing .torrent file: ' . $error);
}
$hash = $torrent->hash_info();
$filename = "{$tmp_add_dir}/{$filename}";
if ($create_file) {
$filename = get_filename_no_clobber($filename);
file_put_contents($filename, $content);
}
} catch (Exception $e) {
restore_error_handler();
return array('error' => $e->getMessage());
}
restore_error_handler();
return save_add_data($hash, array('name' => $torrent->name(), 'files' => $torrent->content(), 'filename' => str_replace("{$tmp_add_dir}/", '', $filename)));
}