summaryrefslogtreecommitdiff
path: root/bucky2/cgi-bin/api
diff options
context:
space:
mode:
Diffstat (limited to 'bucky2/cgi-bin/api')
l---------bucky2/cgi-bin/api/auto.db1
-rwxr-xr-xbucky2/cgi-bin/api/autocomplete44
l---------bucky2/cgi-bin/api/gross.db1
-rwxr-xr-xbucky2/cgi-bin/api/index40
-rwxr-xr-xbucky2/cgi-bin/api/search40
-rwxr-xr-xbucky2/cgi-bin/api/thread61
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;