From c54e8bb9d908edc187da1e81ab995a6c9f067fde Mon Sep 17 00:00:00 2001 From: Alexander Wirt Date: Sun, 13 May 2007 23:37:33 +0200 Subject: [PATCH] Allow submission of keywords to our database --- grml-tips | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 53 insertions(+), 3 deletions(-) diff --git a/grml-tips b/grml-tips index 49e71d2..5d02b30 100755 --- a/grml-tips +++ b/grml-tips @@ -10,6 +10,10 @@ use strict; use Pod::Usage; +use Term::ReadKey; +use Time::HiRes; +use LWP::UserAgent; + =head1 NAME B - query a signature file for a specific keyword and display results @@ -100,8 +104,54 @@ while (my $line = <$fh>) { } close($fh); -print "Sorry, could not find a tip for '$pattern'. :-(\n" - . "If you want to submit a tip please mail it to tips\@grml.org - thank " - . "you!\n\n" unless $tip_flag; +if (!$tip_flag) { + print "Sorry, could not find a tip for '$pattern'. :-(\n", + "Do you want to submit the keyword '$pattern' to grml's keyword database?\n", + "The grml team will write tips for the most requested and useful keywords.\n", + "To use this feature you'll need a working networking connection.\n", + "No personal data will be transmitted to the database.\n\n", + "Send \"$pattern\" to grml's keyword database? [y|N]"; + + ReadMode 4; # Turn off controls keys + my $x; + while (not defined ($x = ReadKey(-1))) { + Time::HiRes::sleep(0.5); + } + ReadMode 0; # Reset tty mode before exiting + print "\n\n"; + if ($x =~ /(y|j)/i) { + my $version; + if ( -f '/etc/grml_version' ) { + open (my $fh, '<', '/etc/grml_version') or die "Could not open /etc/grml_version: $!"; + $version = <$fh>; + close ($fh); + } else { + $version = 'unknown'; + } + my $ua = new LWP::UserAgent; + $ua->agent("grml-tips 0.0 "); # set the HTTP 'browser' type + my $res = + $ua->post('http://deb.grml.org/~formorer/submissions/keyword.cgi', + [ 'version' => $version, + 'keyword' => $pattern + ], + ); + if ($res->is_success) { + my $content = $res->decoded_content; + if ($content =~ /Submission received/) { + print "'$pattern' submitted\n"; + } else { + print "Your pattern could not be submitted.\n", + "Please file a bug against grml-tips at ", + "http://bts.grml.org.\n", + "Thanks!\n"; + } + } else { + print "Could not submitt '$pattern': " . $res->status_line . "\n"; + } + + + } +} ## END OF FILE ################################################################# -- 2.1.4