Radreise-Wiki:Ini.pl: Unterschied zwischen den Versionen

Aus Radreise-Wiki
Zeile 1: Zeile 1:
'''ini.pl''' enthält die Pfade des Hauptverzeichnisses '''''Wiki-Content''''' (''$baseDir'') und des Output-Verzeichnisses (''$outDir''). In letzterem landen alle generierten Dateien (kmz-Files, Imagemaps und Kilometrierungen). Ebenso müssen ''$username'' und ''$password'' an die lokalen Gegebenheiten angepasst werden. Das Output-Verzeichnis wird nicht automatisch angelegt.
'''ini.pl''' enthält die Pfade des Hauptverzeichnisses '''''Wiki-Content''''' (''$baseDir'') und des Output-Verzeichnisses (''$outDir''). In letzterem landen alle generierten Dateien (kmz-Files, Imagemaps und Kilometrierungen). Ebenso müssen ''$username'' und ''$password'' an die lokalen Gegebenheiten angepasst werden. Das Output-Verzeichnis wird nicht automatisch angelegt. Des weiteren sind ein paar globale Encoding-Routinen und ein Filewriter im Skript enthalten.
 
'''Quellcode des Skripts:'''


  <nowiki>
  <nowiki>
  use strict;
  use strict;
   
   
  sub getIni () {
my $baseDir  = "D:/a/data/Radfernwege-Wiki/Wiki-Content";
my $outDir    = "D:/Eigene Dateien";
my $encoding = 'utf-8';  # Unicode
my $encAnsi  = 'cp1252'; # Windows Ansi
my $encOut  = 'cp850' ; # DOS Shell
#======================================================
  sub getIni {
   
   
my $baseDir  = "D:/a/data/Radfernwege-Wiki/Wiki-Content";
my $outDir    = "D:/Eigene Dateien";
  my $username  = "username";
  my $username  = "username";
  my $password  = "password";
  my $password  = "password";
   
   
  return ($baseDir, $outDir, $username, $password);  
  return ($baseDir, $outDir, $username, $password, $encoding, $encAnsi, $encOut);
}
#======================================================
use Digest::MD5 qw(md5_hex);
use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
sub saveFileIfChangedOrNew {
my ($path, $fileName, $file, $kmz) = @_;
my $exitCode = 0;
if (open(FILE, "< $path$fileName")) {
my $md5 = Digest::MD5->new;
while (<FILE>) {
$md5->add($_);
}
close(FILE);
my $md5_old = $md5->hexdigest;
$md5 = Digest::MD5->new;
$md5->add($file);
my $md5_new = $md5->hexdigest;
unless ($md5_old eq $md5_new) {
print encode $encOut, "  *** Overwriting file $fileName ***\n";
open  FT,"> $path$fileName";
print FT $file;
close FT;
$exitCode = 1;
if ($kmz) {
my $zip = Archive::Zip->new();
$zip->addFile("$path$fileName","doc.kml");
$fileName =~ s/\.kml/\.kmz/;
unless ( $zip->writeToFileNamed("$outDir/$fileName") == AZ_OK ) {
  die 'write error';
}
}
}
} else {
print encode $encOut, "  *** Creating new file $fileName ***\n";
open  FT,"> $path$fileName";
print FT $file;
close FT;
$exitCode = 1;
if ($kmz) {
my $zip = Archive::Zip->new();
$zip->addFile("$path$fileName","doc.kml");
$fileName =~ s/\.kml/\.kmz/;
unless ( $zip->writeToFileNamed("$outDir/$fileName") == AZ_OK ) {
  die 'write error';
}
}
}
return $exitCode;
}
#======================================================
use URI::Escape qw( uri_escape_utf8 );
use CGI; my $cgi = new CGI;
sub encodePlaceNameURL {
my $placeNameURL = $cgi->escape($_[0]);
$placeNameURL    =~ s/\%20/\_/g;
$placeNameURL    =~ s/\%/\./g;
return $placeNameURL;
}
sub encodeRouteNameURL {
my $urlstring  = uri_escape_utf8($_[0]);
$urlstring =~ s/%20/\_/g;
$urlstring =~ s/\(/%28/g;
$urlstring =~ s/\)/%29/g;
$urlstring =~ s/\'/%27/g;
return $urlstring;
  }
  }
   
   
  return 1;
  return 1;
  </nowiki>
  </nowiki>

Version vom 9. September 2011, 18:15 Uhr

ini.pl enthält die Pfade des Hauptverzeichnisses Wiki-Content ($baseDir) und des Output-Verzeichnisses ($outDir). In letzterem landen alle generierten Dateien (kmz-Files, Imagemaps und Kilometrierungen). Ebenso müssen $username und $password an die lokalen Gegebenheiten angepasst werden. Das Output-Verzeichnis wird nicht automatisch angelegt. Des weiteren sind ein paar globale Encoding-Routinen und ein Filewriter im Skript enthalten.

Quellcode des Skripts:

 use strict;
 
 my $baseDir   = "D:/a/data/Radfernwege-Wiki/Wiki-Content";
 my $outDir    = "D:/Eigene Dateien";
 
 my $encoding = 'utf-8';  # Unicode
 my $encAnsi  = 'cp1252'; # Windows Ansi
 my $encOut   = 'cp850' ; # DOS Shell
 
 #======================================================
 
 sub getIni {
 
 	my $username  = "username";
 	my $password  = "password";
 
 	return ($baseDir, $outDir, $username, $password, $encoding, $encAnsi, $encOut); 
 }
 
 #======================================================
 
 use Digest::MD5 qw(md5_hex);
 use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
 
 sub saveFileIfChangedOrNew {
 
 	my ($path, $fileName, $file, $kmz) = @_;
 
 	my $exitCode = 0;
 
 	if (open(FILE, "< $path$fileName")) {
 
 		my $md5 = Digest::MD5->new;
 		
 		while (<FILE>) {
 			$md5->add($_);
 		}
 		
 		close(FILE);
 
 		my $md5_old = $md5->hexdigest;
 
 		$md5 = Digest::MD5->new;
 		$md5->add($file);
 		my $md5_new = $md5->hexdigest;
 
 		unless ($md5_old eq $md5_new) {
 		
 			print encode $encOut, "   *** Overwriting file $fileName ***\n";
 		
 			open  FT,"> $path$fileName";
 			print FT $file;
 			close FT;
 			
 			$exitCode = 1;
 
 			if ($kmz) {
 
 				my $zip = Archive::Zip->new();
 				$zip->addFile("$path$fileName","doc.kml");
 				$fileName =~ s/\.kml/\.kmz/;
 				unless ( $zip->writeToFileNamed("$outDir/$fileName") == AZ_OK ) {
 				   die 'write error';
 				}
 			}
 		}
 	} else {
 		print encode $encOut, "   *** Creating new file $fileName ***\n";
 		open  FT,"> $path$fileName";
 		print FT $file;
 		close FT;
 
 		$exitCode = 1;
 
 		if ($kmz) {
 
 			my $zip = Archive::Zip->new();
 			$zip->addFile("$path$fileName","doc.kml");
 			$fileName =~ s/\.kml/\.kmz/;
 			unless ( $zip->writeToFileNamed("$outDir/$fileName") == AZ_OK ) {
 			   die 'write error';
 			}
 		}
 	}
 
 	return $exitCode;
 }
 
 #======================================================
 
 use URI::Escape qw( uri_escape_utf8 );
 use CGI; my $cgi = new CGI;
 
 sub encodePlaceNameURL {
 
 	my $placeNameURL = $cgi->escape($_[0]);
 	$placeNameURL    =~ s/\%20/\_/g;
 	$placeNameURL    =~ s/\%/\./g;
 
 	return $placeNameURL;
 }
 
 sub encodeRouteNameURL {
 
 	my $urlstring  = uri_escape_utf8($_[0]);
 	$urlstring =~ s/%20/\_/g;
 	$urlstring =~ s/\(/%28/g;
 	$urlstring =~ s/\)/%29/g;
 	$urlstring =~ s/\'/%27/g;
 
 	return $urlstring;
 }
 
 return 1;