From f27ab9a8a014bf0e6dc425bb366a5bf4464965f2 Mon Sep 17 00:00:00 2001 From: Alex Schroeder Date: Sun, 7 Oct 2018 15:39:51 +0200 Subject: [PATCH] gopher-server: support gopher tags See gopher://circumlunar.space:70/0/~solderpunk/phlog/tagged-gophers.txt --- stuff/gopher-server.pl | 3 ++- t/gopher-server.t | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/stuff/gopher-server.pl b/stuff/gopher-server.pl index 8adaf4ce..b1e4ad25 100755 --- a/stuff/gopher-server.pl +++ b/stuff/gopher-server.pl @@ -572,9 +572,10 @@ sub serve_text_page { my $id = shift; my $page = shift; my $text = $page->{text}; + $text =~ s/^\./../mg; + $text =~ s/\[\[tag:([^]]+)\]\]/'#' . join('_', split(' ', $1))/mge; $self->log(3, "Serving " . UrlEncode($id) . " as " . length($text) . " bytes of text"); - $text =~ s/^\./../mg; $self->print_text($text); } diff --git a/t/gopher-server.t b/t/gopher-server.t index e12b6c30..bd29d877 100644 --- a/t/gopher-server.t +++ b/t/gopher-server.t @@ -35,7 +35,7 @@ END { # kill server if ($pid) { kill 'KILL', $pid or warn "Could not kill server $pid"; - } + } } our ($DataDir); @@ -85,7 +85,7 @@ sub query_gopher { $socket->print("$query\r\n"); $socket->print($text); - + undef $/; # slurp return <$socket>; } @@ -306,4 +306,10 @@ $page = query_gopher("Gopher/menu"); like($page, qr/^1Phlogs\t\/phlogs\/\tsdf\.org\t70/m, "Direct Gopher link"); like($page, qr/^0VF-1\t\/users\/solderpunk\/phlog\/introducing-vf1.txt\tsdf\.org\t70/m, "Floodgap proxy link"); +# gopher tags +update_page('Gopher', 'Tags: [[tag:Gopher]] [[tag:Perl 6]]'); +$page = query_gopher("Gopher"); +like($page, qr/#Gopher/m, "Gopher tag"); +like($page, qr/#Perl_6/m, "Gopher multi-word tag"); + done_testing();