Skip to content

Instantly share code, notes, and snippets.

@LauJensen
Forked from mgruberman/Crapulous reddit clone
Created February 9, 2010 19:41
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LauJensen/299580 to your computer and use it in GitHub Desktop.
Save LauJensen/299580 to your computer and use it in GitHub Desktop.
#!/usr/bin/perl4
# Horrible, horrible, horrible edit of someone's
# even more horrible "reddit clone in 4 lines of perl".
use CGI ':standard';
$dir = File::Basename::dirname( $0 );
chdir $dir;
CGI::import_names("x");
if ( $x::t ) {
open $f, '>', "$x::t.r";
print { $f }
"$x::l$/$x::v$/"
. ( $x::i
? $x::i
: localtime );
close $f;
CGI::delete(qw( t l v i ));
$x::t = 0
}
my @all_posts = glob(
$x::s
? "*$x::s*.r"
: "*.r"
);
print
header(),
start_html();
print
start_form(),
textfield( -name => 's', -value => 'search' ),
submit(),
end_form();
print
start_form(),
textfield( -name => 't', -value => 'title'),
textfield( -name => 'l', -value => 'link'),
hidden( -name => 'v', -value => 0 ),
submit(),
end_form();
print
ul(
li( [ sort {
$s = sub{
$_ = $_[0];
s~<.*?>~~g;
$_
};
$s->($b) cmp $s->($a)
}
map {
open $f, '<', $_;
my @a = <$f>;
chomp @a;
m/(.*)\.r/;
( a { -href => "?t=$1&l=$a[0]&i=$a[2]&v="
. ( $a[1] + 1 ) },
"^" )
. $a[1]
. ( a { -href => "?t=$1&l=$a[0]&i=$a[2]&v="
. ( $a[1] - 1 ) },
"v" )
. " "
. ( a { -href => $a[0] },
$1 )
. br()
. small "added: $a[2]"
}
@all_posts ] ),
end_html();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment