package Bookmarks::C::Main;
use strict;
use base 'Catalyst::Base';
sub tags : Global {
my ( $self, $c ) = @_;
$c->stash->{template}='tags';
$c->stash->{tags}=[Bookmarks::M::DB::Tags->get_all_tags_by_popularity()];
}
sub tag : Regex('^tag/(.*)$') {
my ( $self, $c ) = @_;
my @tagnames=split /\+/,$c->req->snippets->[0];
my ($tagset)=Bookmarks::M::TagSet->retrieve({tags=>[@tagnames]});
if (!defined $tagset) {
$c->stash->{tagnames}=[@tagnames];
$c->stash->{template}='notag';
}
else {
my @links=$tagset->ordered_links();
my @related_tags=$tagset->related_tags();
$c->stash->{tagset}=$tagset;
$c->stash->{links}=[@links];
$c->stash->{related}=[@related_tags];
$c->stash->{template}='links';
}
}
sub icon : Global {
my ( $self, $c ) = @_;
my $link=Bookmarks::M::DB::Links->retrieve($c->req->param('link'));
if ($link->get_icon()) {
$c->res->content_type('image/x-icon');
$c->res->body($link->get_icon());
}
else {
$c->res->status(404);
$c->res->body('nonce');
}
}
sub jump : Global {
my ( $self, $c ) = @_;
my $link=Bookmarks::M::DB::Links->retrieve($c->req->param('link'));
$link->access_count($link->access_count()+1);
$link->update();
$c->res->status(302);
$c->res->location($link->url());
}
1;