diff options
| author | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:23:25 -0500 |
|---|---|---|
| committer | Jules Laplace <carbon@melanarchy.org> | 2013-08-02 17:23:25 -0500 |
| commit | e76b691e78e273226cba9284cb8cd22a423319ed (patch) | |
| tree | a58d22f69869fe2bf3885f81bdda4952f87ff6d7 /bucky2/cgi-bin/api | |
| parent | 753f60c7d4769fa72d3b910e491f37db6f130898 (diff) | |
bucky2
Diffstat (limited to 'bucky2/cgi-bin/api')
| l--------- | bucky2/cgi-bin/api/auto.db | 1 | ||||
| -rwxr-xr-x | bucky2/cgi-bin/api/autocomplete | 44 | ||||
| l--------- | bucky2/cgi-bin/api/gross.db | 1 | ||||
| -rwxr-xr-x | bucky2/cgi-bin/api/index | 40 | ||||
| -rwxr-xr-x | bucky2/cgi-bin/api/search | 40 | ||||
| -rwxr-xr-x | bucky2/cgi-bin/api/thread | 61 |
6 files changed, 187 insertions, 0 deletions
diff --git a/bucky2/cgi-bin/api/auto.db b/bucky2/cgi-bin/api/auto.db new file mode 120000 index 0000000..7a5d5c2 --- /dev/null +++ b/bucky2/cgi-bin/api/auto.db @@ -0,0 +1 @@ +../auto.db
\ No newline at end of file diff --git a/bucky2/cgi-bin/api/autocomplete b/bucky2/cgi-bin/api/autocomplete new file mode 100755 index 0000000..ac42f06 --- /dev/null +++ b/bucky2/cgi-bin/api/autocomplete @@ -0,0 +1,44 @@ +#!/usr/bin/perl + +use lib "../../lib"; +use Bucky; +use Bucky::Session; +use Bucky::Search; +my $bucky = new Bucky; +my $session = new Bucky::Session; +my $q = $session->param('q'); + +print "Content-type: text/plain\n\n"; + +if (length $q) + { + my $search = new Bucky::Search; + my $guess = $search->autocomplete($q); + my $results = $search->search_light($guess->{'full'}, 0, 40); + # my $terms = $results->{terms}; + + print $guess->{'tail'} || "_"; + print "\n"; + foreach my $result (@{$results->{'results'}}) + { + my $thread = $results->{'threads'}->{ $result->{'thread'} }; + my $comment = $results->{'comments'}->{ $result->{'comment'} }; + my $file = $results->{'files'}->{ $result->{'file'} }; + my $z_thread = $thread->{'id'}; + my $z_title = $thread->{'title'}; + my $z_file = $file->{'id'}; + my $z_subtitle = $file->{'filename'}; + $z_subtitle =~ s/[^a-zA-Z0-9 ()\.]/ /g; + $z_subtitle =~ s/_/ /g; + $z_subtitle =~ s/\s+/ /g; + $z_subtitle =~ s/^\s//; + $z_subtitle =~ s/\s$//; + print join "\t", $z_thread, $z_title, $z_subtitle, $z_file; + print "\n"; + } + } +else + { + print "\n"; + } +1; diff --git a/bucky2/cgi-bin/api/gross.db b/bucky2/cgi-bin/api/gross.db new file mode 120000 index 0000000..00a14d0 --- /dev/null +++ b/bucky2/cgi-bin/api/gross.db @@ -0,0 +1 @@ +../gross.db
\ No newline at end of file diff --git a/bucky2/cgi-bin/api/index b/bucky2/cgi-bin/api/index new file mode 100755 index 0000000..306e01e --- /dev/null +++ b/bucky2/cgi-bin/api/index @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +use lib "../../lib"; +use Bucky; +use Bucky::Session; +my $bucky = new Bucky; +# my $session = new Bucky::Session; + +print "Content-type: text/plain\n\n"; + +# get most recent 80 threads +# for each thread, get most recent mp3 +# if no mp3, skip the thread + +my $threads = $bucky->db->select("thread", "order by lastmodified desc limit 80"); + +foreach my $t (@$threads) + { + my $z_thread = $t->{id}; + my $files = $bucky->db->select("file", "thread='$z_thread' and filename like '%mp3' order by date limit 1"); + my $file = {id=>undef,filename=>undef}; + if ($files) + { + $file = $files->[0]; + } + + my $z_title = $bucky->trim( $t->{title} ); + my $z_file = $file->{'id'}; + my $z_subtitle = $file->{'filename'}; + $z_subtitle =~ s/[^a-zA-Z0-9 ()\.]/ /g; + $z_subtitle =~ s/_/ /g; + $z_subtitle =~ s/\s+/ /g; + $z_subtitle =~ s/^\s//; + $z_subtitle =~ s/\s$//; + print join "\t", $z_thread, $z_title, $z_subtitle, $z_file; + print "\n"; + } + +1; + diff --git a/bucky2/cgi-bin/api/search b/bucky2/cgi-bin/api/search new file mode 100755 index 0000000..2bebda8 --- /dev/null +++ b/bucky2/cgi-bin/api/search @@ -0,0 +1,40 @@ +#!/usr/bin/perl + +use lib "../../lib"; +use Bucky; +use Bucky::Session; +use Bucky::Search; +my $bucky = new Bucky; +my $session = new Bucky::Session; +my $q = $session->param('q'); + +print "Content-type: text/plain\n\n"; + +if (length $q) + { + my $search = new Bucky::Search; + my $results = $search->search_light($q, 0, 40); + foreach my $result (@{$results->{'results'}}) + { + my $thread = $results->{'threads'}->{ $result->{'thread'} }; + my $comment = $results->{'comments'}->{ $result->{'comment'} }; + my $file = $results->{'files'}->{ $result->{'file'} }; + my $z_thread = $thread->{'id'}; + my $z_title = $search->bold_terms( $thread->{'title'}, $terms); + my $z_file = $file->{'id'}; + my $z_subtitle = $file->{'filename'}; + $z_subtitle =~ s/[^a-zA-Z0-9 ()\.]/ /g; + $z_subtitle =~ s/_/ /g; + $z_subtitle =~ s/\s+/ /g; + $z_subtitle =~ s/^\s//; + $z_subtitle =~ s/\s$//; + print join "\t", $z_thread, $z_title, $z_subtitle, $z_file; + print "\n"; + } + $search->log_query($query, $total); + } +else + { + print "\n"; + } +1; diff --git a/bucky2/cgi-bin/api/thread b/bucky2/cgi-bin/api/thread new file mode 100755 index 0000000..3c7def9 --- /dev/null +++ b/bucky2/cgi-bin/api/thread @@ -0,0 +1,61 @@ +#!/usr/bin/perl + +use lib "../../lib"; +use Bucky; +use Bucky::Session; +my $bucky = new Bucky; +my $session = new Bucky::Session; +my $id = $session->param('id'); + +print "Content-type: text/plain\n\n"; +if (length $id && $id !~ /\D/) + { + my $thread = $bucky->db->select("thread", "id='$id'"); + my $files = $bucky->db->select("file", "thread='$id' order by filename asc"); + my $comment = $bucky->db->select("comment", "thread='$id' order by id asc"); + exit unless ref($thread) == "ARRAY"; + my $t = shift @$thread; + + my $flagged = $t->{'flagged'}; + + my @result = (); + + my $i = 0; + my $count = 0; + foreach my $file (@$files) + { + if (! $flagged && $file->{'filename'} =~ /(jpg|jpeg|gif|png)/i) + { + $flagged = $file->{'id'}; + } + $file->{'filename'} =~ /\.(...)$/i; + $file->{'type'} = lc $1 || next; + $file->{'title'} = $file->{'filename'}; + $file->{'title'} =~ s/\.(...)$//; + $file->{'title'} =~ s/_/ /g; + $file->{'title'} =~ s/-/ /g; + $file->{'title'} =~ s/\s+/ /g; + $file->{'title'} =~ s/^\s//; + $file->{'title'} =~ s/\s$//; + push @result, join("\t", @$file{qw[id type filename title date size]}); + } + if (ref($comment) == "ARRAY" && scalar(@$comment)) + { + my $c = shift @$comment; + my $words = $c->{'comment'}; + $words =~ s/\n/<br\/>/g; + $words =~ s/\r//g; + push @result, $c->{id}."\tcomment\t".$c->{username}."\t".$c->{date}."\t".$words; + } + $t->{'flagged'} ||= $flagged; + + print join "\t", @$t{qw[id title flagged createdate username keyword]}; + print "\n"; + print join "\n", @result; + print "\n"; + } +else + { + print "\n"; + } +1; |
