#!/perl/bin/perl -w use strict; use SOAP::Lite; use LWP::Simple; use lib 'C:/Program Files/Groove Networks/Groove Web Services GDK/Lib/Perl'; use commonLib; use soapCallLib; use grooveWSLib; BEGIN { package SOAP::Serializer::Literal; @SOAP::Serializer::Literal::ISA = 'SOAP::Serializer'; sub envelope { my $self = shift; shift; shift; # let it always be 'freeform' $self->SUPER::envelope(freeform => @_); } } my $serverURL = "http://localhost:9080"; my $accessNonce = ReadGrooveNonce(); setTargetName('localhost'); GWSSetGrooveNonce($accessNonce); GWSSetServerURL($serverURL); my $dep = "http://localhost:9080/GWS/Groove/1.0/Discussion/grooveTelespace/ grooveIdentity_58_47_474szupdwwmv3iji774kt5r97mq4nxehpt_64\ @6ndv47pf6n88ajmg4mviut2cwr4v242jc854xk2/ToolContainer/ p2zmqfjyecx9dtpd6vsq9w67wdbqf6rq2wyapps.Discussion.Tool/ DiscussionDataModelDelegate"; my $fep = "http://localhost:9080/GWS/Groove/1.0/Files/grooveTelespace/ grooveIdentity_58_47_474szupdwwmv3iji774kt5r97mq4nxehpt_64\ @6ndv47pf6n88ajmg4mviut2cwr4v242jc854xk2/ToolContainer/ e5xnz3xt83rdpgucb8utuuebgx6mkzncgfaiehi.Files.Tool/ DocumentShareEngine"; my $WSDLPath = 'C:/Program Files/Groove Networks/Groove Web Services GDK/wsdl/'; setWSDLSearchPath($WSDLPath); my $wsdlFile = undef; my $status = undef; my $MessageIDUsed = undef; my @Recs = (); my @Files = (); foreach my $rec (@Recs) { my $id = $rec->{ID}; my $uri = $rec->{URI}; my $subj = $rec->{Subject}; my $body = $rec->{Body}; while ( $body =~ m#[^_](http://[^\s]+)# ) { my $url = $1; my $page = get ($url); $page =~ m#<title>[\s\n]*([^<]+)[\s\n]*#i; my $title = $1; $body =~ s/$url/_$url ($title)_/; my (%NewRec); $NewRec{'Subject'} = $subj; $NewRec{'Body'} = $body; $NewRec{'ParentID'} = ''; # has to be present setSOAPWSDLArg('GrooveDiscussion.wsdl', 'Discussion'); my $iep = $serverURL . $rec->{URI} . "\n"; print DiscussionEntryUpdate($iep, \%NewRec, \$MessageIDUsed); setSOAPWSDLArg('GrooveFilesBase64.wsdl', 'FilesBase64'); my %NewF; $NewF{'FolderID'} = ''; $NewF{'Type'} = 'File'; $NewF{'Name'} = $title . ".html"; $NewF{'DisplayName'} = $title; my $fname = ''; my $FileURI = ''; FilesCreate($fep, \%NewF, $page, \$FileURI, \$MessageIDUsed); print "created: $FileURI\n"; } } sub ReadGrooveNonce { my ($key, $type, $data); use Win32API::Registry 0.21 qw( :ALL ); RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\Groove Networks, Inc.\\Groove\\WebServices", 0, KEY_READ, $key) or die "can't open regkey", regLastError(), "\n"; RegQueryValueEx($key, "WebServicesNonce", [], $type, $data, []) or die "can't read reg value", regLastError(), "\n"; RegCloseKey($key) or die "can't close regkey", regLastError(), "\n"; return $data; }