databasetastic
This commit is contained in:
		
							
								
								
									
										29
									
								
								new.pl
									
									
									
									
									
								
							
							
						
						
									
										29
									
								
								new.pl
									
									
									
									
									
								
							| @@ -26,11 +26,16 @@ sub newer($$) { | |||||||
| } | } | ||||||
|  |  | ||||||
| my $setlastrecord = $db->prepare("REPLACE INTO lastrecord (id, timestamp) VALUES (?, ?)") or die $db->errstr; | my $setlastrecord = $db->prepare("REPLACE INTO lastrecord (id, timestamp) VALUES (?, ?)") or die $db->errstr; | ||||||
| sub setlastrecord($$) { | my $recordlevel   = $db->prepare("INSERT INTO levels (stationid, timestamp, level) VALUES (?,?,?)") or die $db->errstr; | ||||||
| 	my ($id, $time) = @_; | sub recordlevel($$$) { | ||||||
|  | 	my ($id, $time, $level) = @_; | ||||||
|  | 	$recordlevel->execute($id, $time, $level); | ||||||
| 	$setlastrecord->execute($id, $time); | 	$setlastrecord->execute($id, $time); | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|  | my $rememberstation = $db->prepare("INSERT INTO stations (id, name, watercourse, datum) VALUES (?,?,?,?)") or die $db->errstr; | ||||||
|  |  | ||||||
| # First thing on the line should be the current time | # First thing on the line should be the current time | ||||||
| print time, "\t" unless $ENV{R_GPLOT}; | print time, "\t" unless $ENV{R_GPLOT}; | ||||||
|  |  | ||||||
| @@ -43,7 +48,9 @@ foreach my $station (@stations) { | |||||||
| 	my $level; | 	my $level; | ||||||
| 	my $stationname; | 	my $stationname; | ||||||
| 	my $lastupdate; | 	my $lastupdate; | ||||||
| 	if ($res->is_success) { | 	my $watercourse; | ||||||
|  | 	my $datum; | ||||||
|  | 	if ($res->is_success and $res->content =~ m~Current level:~) { | ||||||
| 		$res->content =~ m~<h1>([^<]+)</h1>~; | 		$res->content =~ m~<h1>([^<]+)</h1>~; | ||||||
| 		$stationname = $1; | 		$stationname = $1; | ||||||
|  |  | ||||||
| @@ -54,12 +61,24 @@ foreach my $station (@stations) { | |||||||
| 		$lastupdate = "$4-$3-$2T$1"; | 		$lastupdate = "$4-$3-$2T$1"; | ||||||
|  |  | ||||||
| 		if($ENV{R_GPLOT}) { | 		if($ENV{R_GPLOT}) { | ||||||
|  | 			$res->content =~ m~Watercourse:( |\s)+([^<]+)~; | ||||||
|  | 			$watercourse = $2; | ||||||
|  | 			$watercourse =~ s~\s*$~~; | ||||||
|  | 			$watercourse =~ s~^\s*~~; | ||||||
|  |  | ||||||
|  | 			$res->content =~ m~Site datum:( |\s)+([^<]+) m AOD~; | ||||||
|  | 			$datum = $2; | ||||||
|  | 			$datum =~ s~\s*$~~; | ||||||
|  | 			$datum =~ s~^\s*~~; | ||||||
|  |  | ||||||
| 			print "    \"data.tsv\" using 1:$c with linespoints title \"$stationname\", \\\n"; | 			print "    \"data.tsv\" using 1:$c with linespoints title \"$stationname\", \\\n"; | ||||||
|  | 			$rememberstation->execute($station, $stationname, $watercourse, $datum); | ||||||
|  |  | ||||||
| 		} else { | 		} else { | ||||||
| 			if($level) { | 			if($level) { | ||||||
| 				if(newer($station, $lastupdate)) { | 				if(newer($station, $lastupdate)) { | ||||||
| 					print $level; | 					print $level; | ||||||
| 					setlastrecord($station, $lastupdate); | 					recordlevel($station, $lastupdate, $level); | ||||||
| 				} else {  | 				} else {  | ||||||
| 					print "-"; | 					print "-"; | ||||||
| 				} | 				} | ||||||
| @@ -68,7 +87,7 @@ foreach my $station (@stations) { | |||||||
| 			} | 			} | ||||||
| 			print "\t"; | 			print "\t"; | ||||||
| 		} | 		} | ||||||
| 	} | 	} else { print "-\t";} | ||||||
| 	$c++; | 	$c++; | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user