--- deliantra/gde/GCE/Util.pm 2006/08/14 18:52:48 1.20 +++ deliantra/gde/GCE/Util.pm 2006/10/14 15:18:46 1.21 @@ -18,6 +18,9 @@ use Crossfire; use Crossfire::MapWidget; use File::Spec::Functions; +use File::Basename; +use File::Path; +use HTTP::Request::Common; use Cwd 'abs_path'; our @EXPORT = qw(insert_arch_stack_layer replace_arch_stack_layer new_arch_pb @@ -73,7 +76,7 @@ $mappath = abs_path $mappath; my $dir; if (File::Spec->file_name_is_absolute($dest)) { - $dir = catdir ($::CFG->{MAPDIR}, $dest); + $dir = catdir ($::MAPDIR, $dest); } else { my ($v, $p, $f) = File::Spec->splitpath ($mape->{path}); $dir = File::Spec->rel2abs ($dest, File::Spec->catpath ($v, $p)); @@ -353,6 +356,34 @@ return \@outstack; } +sub upload { + my ($login, $password, $path, $rev, $mapdata) = @_; + require HTTP::Request::Common; + + my $res = $ua->post ( + $ENV{CFPLUS_UPLOAD}, + Content_Type => 'multipart/form-data', + Content => [ + path => $path, + mapdir => $::MAPDIR, + map => $mapdata, + revision => $rev, + cf_login => $login, #ENV{CFPLUS_LOGIN}, + cf_password => $password, #ENV{CFPLUS_PASSWORD}, + comment => "", + ] + ); + + if ($res->is_error) { + # fatal condition + warn $res->status_line; + } else { + # script replies are marked as {{..}} + my @msgs = $res->decoded_content =~ m/\{\{(.*?)\}\}/g; + warn map "$_\n", @msgs; + } +} + =head1 AUTHOR Marc Lehmann