summaryrefslogtreecommitdiff
path: root/lib/VNDB
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2011-01-25 16:45:45 +0100
committerYorhel <git@yorhel.nl>2011-01-25 17:07:06 +0100
commite46f634c49aa4e174d6cc351b25a60d33c251b25 (patch)
tree7bf39676260b9c266c083f63ad2522faf79c4b0f /lib/VNDB
parente23b49f3bd6fddca80076f1dc19e5f913400ff48 (diff)
TUWF: Initial convert from YAWF to TUWF
There may still be some bugs present and I've only converted the points where TUWF is incompatible with YAWF. The new TUWF features are not in use yet, I'll do that later on. Note that, in order to run the new code, TUWF must be installed on your system. The configuration for the TransAdmin plugin has also changed. Other than that there shouldn't be any issues.
Diffstat (limited to 'lib/VNDB')
-rw-r--r--lib/VNDB/Func.pm5
-rw-r--r--lib/VNDB/Handler/Discussions.pm36
-rw-r--r--lib/VNDB/Handler/Misc.pm34
-rw-r--r--lib/VNDB/Handler/Producers.pm53
-rw-r--r--lib/VNDB/Handler/Releases.pm94
-rw-r--r--lib/VNDB/Handler/Tags.pm90
-rw-r--r--lib/VNDB/Handler/ULists.pm84
-rw-r--r--lib/VNDB/Handler/Users.pm87
-rw-r--r--lib/VNDB/Handler/VNBrowse.pm24
-rw-r--r--lib/VNDB/Handler/VNEdit.pm59
-rw-r--r--lib/VNDB/Handler/VNPage.pm18
-rw-r--r--lib/VNDB/L10N.pm2
-rw-r--r--lib/VNDB/Plugin/TransAdmin.pm12
-rw-r--r--lib/VNDB/Util/Auth.pm2
-rw-r--r--lib/VNDB/Util/BrowseHTML.pm2
-rw-r--r--lib/VNDB/Util/CommonHTML.pm17
-rw-r--r--lib/VNDB/Util/FormHTML.pm6
-rw-r--r--lib/VNDB/Util/LayoutHTML.pm7
-rw-r--r--lib/VNDB/Util/Misc.pm2
19 files changed, 322 insertions, 312 deletions
diff --git a/lib/VNDB/Func.pm b/lib/VNDB/Func.pm
index 17d69cd5..435f0fec 100644
--- a/lib/VNDB/Func.pm
+++ b/lib/VNDB/Func.pm
@@ -3,7 +3,7 @@ package VNDB::Func;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use Exporter 'import';
use POSIX 'strftime', 'ceil', 'floor';
use VNDBUtil;
@@ -59,9 +59,8 @@ sub tagscore {
# short wrapper around maketext()
-# (not thread-safe, in the same sense as YAWF::XML. But who cares about threads, anyway?)
sub mt {
- return $YAWF::OBJ->{l10n}->maketext(@_);
+ return $TUWF::OBJ->{l10n}->maketext(@_);
}
diff --git a/lib/VNDB/Handler/Discussions.pm b/lib/VNDB/Handler/Discussions.pm
index 0b5daa6c..05053f34 100644
--- a/lib/VNDB/Handler/Discussions.pm
+++ b/lib/VNDB/Handler/Discussions.pm
@@ -3,12 +3,12 @@ package VNDB::Handler::Discussions;
use strict;
use warnings;
-use YAWF ':html', 'xml_escape';
+use TUWF ':html', 'xml_escape';
use POSIX 'ceil';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{t([1-9]\d*)(?:/([1-9]\d*))?} => \&thread,
qr{t([1-9]\d*)\.([1-9]\d*)} => \&redirect,
qr{t/(db|an|ge|[vpu])([1-9]\d*)?} => \&board,
@@ -24,10 +24,10 @@ sub thread {
$page ||= 1;
my $t = $self->dbThreadGet(id => $tid, what => 'boardtitles')->[0];
- return 404 if !$t->{id} || $t->{hidden} && !$self->authCan('boardmod');
+ return $self->resNotFound if !$t->{id} || $t->{hidden} && !$self->authCan('boardmod');
my $p = $self->dbPostGet(tid => $tid, results => 25, page => $page, what => 'user');
- return 404 if !$p->[0];
+ return $self->resNotFound if !$p->[0];
$self->htmlHeader(title => $t->{title}, noindex => 1);
div class => 'mainbox';
@@ -135,7 +135,7 @@ sub edit {
# in case we start a new thread, parse boards
my $board = '';
if($tid !~ /^\d+$/) {
- return 404 if $tid =~ /(db|an|ge)/ && $num || $tid =~ /[vpu]/ && !$num;
+ return $self->resNotFound if $tid =~ /(db|an|ge)/ && $num || $tid =~ /[vpu]/ && !$num;
$board = $tid.($num||'');
$tid = 0;
$num = 0;
@@ -143,10 +143,10 @@ sub edit {
# get thread and post, if any
my $t = $tid && $self->dbThreadGet(id => $tid, what => 'boards')->[0];
- return 404 if $tid && !$t->{id};
+ return $self->resNotFound if $tid && !$t->{id};
my $p = $num && $self->dbPostGet(tid => $tid, num => $num, what => 'user')->[0];
- return 404 if $num && !$p->{num};
+ return $self->resNotFound if $num && !$p->{num};
# are we allowed to perform this action?
return $self->htmlDenied if !$self->authCan('board')
@@ -159,16 +159,16 @@ sub edit {
return if !$self->authCheckCode;
$frm = $self->formValidate(
!$tid || $num == 1 ? (
- { name => 'title', maxlength => 50 },
- { name => 'boards', maxlength => 50 },
+ { post => 'title', maxlength => 50 },
+ { post => 'boards', maxlength => 50 },
) : (),
$self->authCan('boardmod') ? (
- { name => 'locked', required => 0 },
- { name => 'hidden', required => 0 },
- { name => 'nolastmod', required => 0 },
+ { post => 'locked', required => 0 },
+ { post => 'hidden', required => 0 },
+ { post => 'nolastmod', required => 0 },
) : (),
- { name => 'msg', maxlenght => 5000 },
- { name => 'fullreply', required => 0 },
+ { post => 'msg', maxlength => 32768 },
+ { post => 'fullreply', required => 0 },
);
$frm->{_err} = 1 if $frm->{fullreply};
@@ -270,18 +270,18 @@ sub edit {
sub board {
my($self, $type, $iid) = @_;
$iid ||= '';
- return 404 if $type =~ /(db|an|ge)/ && $iid;
+ return $self->resNotFound if $type =~ /(db|an|ge)/ && $iid;
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'p', required => 0, default => 1, template => 'int' },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
my $obj = !$iid ? undef :
$type eq 'u' ? $self->dbUserGet(uid => $iid, what => 'hide_list')->[0] :
$type eq 'p' ? $self->dbProducerGet(id => $iid)->[0] :
$self->dbVNGet(id => $iid)->[0];
- return 404 if $iid && !$obj;
+ return $self->resNotFound if $iid && !$obj;
my $ititle = $obj && ($obj->{title}||$obj->{name}||$obj->{username});
my $title = !$obj ? mt("_dboard_$type") : mt '_disboard_item_title', $ititle;
diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm
index a30f10a4..2e1e0e11 100644
--- a/lib/VNDB/Handler/Misc.pm
+++ b/lib/VNDB/Handler/Misc.pm
@@ -4,12 +4,12 @@ package VNDB::Handler::Misc;
use strict;
use warnings;
-use YAWF ':html', ':xml', 'xml_escape';
+use TUWF ':html', ':xml', 'xml_escape';
use VNDB::Func;
use POSIX 'strftime';
-YAWF::register(
+TUWF::register(
qr{}, \&homepage,
qr{(?:([upvr])([1-9]\d*)/)?hist}, \&history,
qr{d([1-9]\d*)}, \&docpage,
@@ -194,14 +194,14 @@ sub history {
$id ||= 0;
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'm', required => 0, default => !$type, enum => [ 0, 1 ] },
- { name => 'h', required => 0, default => 0, enum => [ -1..1 ] },
- { name => 't', required => 0, default => '', enum => [ 'v', 'r', 'p' ] },
- { name => 'e', required => 0, default => 0, enum => [ -1..1 ] },
- { name => 'r', required => 0, default => 0, enum => [ 0, 1 ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'm', required => 0, default => !$type, enum => [ 0, 1 ] },
+ { get => 'h', required => 0, default => 0, enum => [ -1..1 ] },
+ { get => 't', required => 0, default => '', enum => [ 'v', 'r', 'p' ] },
+ { get => 'e', required => 0, default => 0, enum => [ -1..1 ] },
+ { get => 'r', required => 0, default => 0, enum => [ 0, 1 ] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
# get item object and title
my $obj = $type eq 'u' ? $self->dbUserGet(uid => $id, what => 'hide_list')->[0] :
@@ -209,7 +209,7 @@ sub history {
$type eq 'r' ? $self->dbReleaseGet(id => $id)->[0] :
$type eq 'v' ? $self->dbVNGet(id => $id)->[0] : undef;
my $title = mt $type ? ('_hist_title_item', $obj->{title} || $obj->{name} || $obj->{username}) : '_hist_title';
- return 404 if $type && !$obj->{id};
+ return $self->resNotFound if $type && !$obj->{id};
# get the edit history
my($list, $np) = $self->dbRevisionGet(
@@ -287,7 +287,7 @@ sub docpage {
my $l = '.'.$self->{l10n}->language_tag();
my $f = sprintf('%s/data/docs/%d', $VNDB::ROOT, $did);
my $F;
- open($F, '<:utf8', $f.$l) or open($F, '<:utf8', $f) or return 404;
+ open($F, '<:utf8', $f.$l) or open($F, '<:utf8', $f) or return $self->resNotFound;
my @c = <$F>;
close $F;
@@ -343,8 +343,8 @@ sub docpage {
sub setlang {
my $self = shift;
- my $lang = $self->formValidate({name => 'lang', required => 1, enum => [ VNDB::L10N::languages ]});
- return 404 if $lang->{_err};
+ my $lang = $self->formValidate({get => 'lang', required => 1, enum => [ VNDB::L10N::languages ]});
+ return $self->resNotFound if $lang->{_err};
$lang = $lang->{lang};
my $browser = VNDB::L10N->get_handle()->language_tag();
@@ -422,12 +422,12 @@ sub iemessage {
sub prefs {
my $self = shift;
return if !$self->authCheckCode;
- return 404 if !$self->authInfo->{id};
+ return $self->resNotFound if !$self->authInfo->{id};
my $f = $self->formValidate(
- { name => 'key', enum => [qw|filter_vn filter_release|] },
- { name => 'value', required => 0, maxlength => 2000 },
+ { get => 'key', enum => [qw|filter_vn filter_release|] },
+ { get => 'value', required => 0, maxlength => 2000 },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->authPref($f->{key}, $f->{value});
# doesn't really matter what we return, as long as it's XML
diff --git a/lib/VNDB/Handler/Producers.pm b/lib/VNDB/Handler/Producers.pm
index f7a46c2d..ad947830 100644
--- a/lib/VNDB/Handler/Producers.pm
+++ b/lib/VNDB/Handler/Producers.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::Producers;
use strict;
use warnings;
-use YAWF ':html', ':xml', 'xml_escape';
+use TUWF ':html', ':xml', 'xml_escape', 'html_escape';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{p([1-9]\d*)/rg} => \&rg,
qr{p([1-9]\d*)(?:\.([1-9]\d*))?} => \&page,
qr{p(?:([1-9]\d*)(?:\.([1-9]\d*))?/edit|/new)}
@@ -21,7 +21,7 @@ sub rg {
my($self, $pid) = @_;
my $p = $self->dbProducerGet(id => $pid, what => 'relgraph')->[0];
- return 404 if !$p->{id} || !$p->{rgraph};
+ return $self->resNotFound if !$p->{id} || !$p->{rgraph};
my $title = mt '_prodrg_title', $p->{name};
return if $self->htmlRGHeader($title, 'p', $p);
@@ -40,6 +40,7 @@ sub rg {
$self->htmlFooter;
}
+
sub page {
my($self, $pid, $rev) = @_;
@@ -48,7 +49,7 @@ sub page {
what => 'extended relations'.($rev ? ' changes' : ''),
$rev ? ( rev => $rev ) : ()
)->[0];
- return 404 if !$p->{id};
+ return $self->resNotFound if !$p->{id};
$self->htmlHeader(title => $p->{name}, noindex => $rev);
$self->htmlMainTabs(p => $p);
@@ -82,13 +83,13 @@ sub page {
h2 class => 'alttitle', $p->{original} if $p->{original};
p class => 'center';
txt mt '_prodpage_langtype', mt("_lang_$p->{lang}"), mt "_ptype_$p->{type}";
- txt "\n".mt '_prodpage_aliases', $p->{alias} if $p->{alias};
+ lit '<br />'.html_escape mt '_prodpage_aliases', $p->{alias} if $p->{alias};
my @links = (
$p->{website} ? [ 'homepage', $p->{website} ] : (),
$p->{l_wp} ? [ 'wikipedia', "http://en.wikipedia.org/wiki/$p->{l_wp}" ] : (),
);
- txt "\n" if @links;
+ br if @links;
for(@links) {
a href => $_->[1], mt "_prodpage_$_->[0]";
txt ' - ' if $_ ne $links[$#links];
@@ -100,14 +101,14 @@ sub page {
push @{$rel{$_->{relation}}}, $_
for (sort { $a->{name} cmp $b->{name} } @{$p->{relations}});
p class => 'center';
- txt "\n";
+ br;
for my $r (sort { $self->{prod_relations}{$a}[0] <=> $self->{prod_relations}{$b}[0] } keys %rel) {
txt mt("_prodrel_$r").': ';
for (@{$rel{$r}}) {
a href => "/p$_->{id}", title => $_->{original}||$_->{name}, shorten $_->{name}, 40;
txt ', ' if $_ ne $rel{$r}[$#{$rel{$r}}];
}
- txt "\n";
+ br;
}
end;
}
@@ -200,7 +201,7 @@ sub edit {
my($self, $pid, $rev) = @_;
my $p = $pid && $self->dbProducerGet(id => $pid, what => 'changes extended relations', $rev ? (rev => $rev) : ())->[0];
- return 404 if $pid && !$p->{id};
+ return $self->resNotFound if $pid && !$p->{id};
$rev = undef if !$p || $p->{cid} == $p->{latest};
return $self->htmlDenied if !$self->authCan('edit')
@@ -216,18 +217,18 @@ sub edit {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'type', enum => $self->{producer_types} },
- { name => 'name', maxlength => 200 },
- { name => 'original', required => 0, maxlength => 200, default => '' },
- { name => 'alias', required => 0, maxlength => 500, default => '' },
- { name => 'lang', enum => $self->{languages} },
- { name => 'website', required => 0, maxlength => 250, default => '', template => 'url' },
- { name => 'l_wp', required => 0, maxlength => 150, default => '' },
- { name => 'desc', required => 0, maxlength => 5000, default => '' },
- { name => 'prodrelations', required => 0, maxlength => 5000, default => '' },
- { name => 'editsum', required => 0, maxlength => 5000 },
- { name => 'ihid', required => 0 },
- { name => 'ilock', required => 0 },
+ { post => 'type', enum => $self->{producer_types} },
+ { post => 'name', maxlength => 200 },
+ { post => 'original', required => 0, maxlength => 200, default => '' },
+ { post => 'alias', required => 0, maxlength => 500, default => '' },
+ { post => 'lang', enum => $self->{languages} },
+ { post => 'website', required => 0, maxlength => 250, default => '', template => 'url' },
+ { post => 'l_wp', required => 0, maxlength => 150, default => '' },
+ { post => 'desc', required => 0, maxlength => 5000, default => '' },
+ { post => 'prodrelations', required => 0, maxlength => 5000, default => '' },
+ { post => 'editsum', required => 0, maxlength => 5000 },
+ { post => 'ihid', required => 0 },
+ { post => 'ilock', required => 0 },
);
push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc});
if(!$frm->{_err}) {
@@ -344,10 +345,10 @@ sub list {
my($self, $char) = @_;
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'q', required => 0, default => '' },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'q', required => 0, default => '' },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
my($list, $np) = $self->dbProducerGet(
$char ne 'all' ? ( char => $char ) : (),
@@ -401,8 +402,8 @@ sub list {
sub pxml {
my $self = shift;
- my $q = $self->formValidate({ name => 'q', maxlength => 500 });
- return 404 if $q->{_err};
+ my $q = $self->formValidate({ get => 'q', maxlength => 500 });
+ return $self->resNotFound if $q->{_err};
$q = $q->{q};
my($list, $np) = $self->dbProducerGet(
diff --git a/lib/VNDB/Handler/Releases.pm b/lib/VNDB/Handler/Releases.pm
index 06dcfd0a..32608d30 100644
--- a/lib/VNDB/Handler/Releases.pm
+++ b/lib/VNDB/Handler/Releases.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::Releases;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{r([1-9]\d*)(?:\.([1-9]\d*))?} => \&page,
qr{(v)([1-9]\d*)/add} => \&edit,
qr{r} => \&browse,
@@ -24,7 +24,7 @@ sub page {
what => 'vn extended producers platforms media'.($rev ? ' changes' : ''),
$rev ? (rev => $rev) : (),
)->[0];
- return 404 if !$r->{id};
+ return $self->resNotFound if !$r->{id};
$self->htmlHeader(title => $r->{title}, noindex => $rev);
$self->htmlMainTabs('r', $r);
@@ -272,11 +272,11 @@ sub edit {
}
my $r = $rid && $self->dbReleaseGet(id => $rid, what => 'vn extended producers platforms media changes', $rev ? (rev => $rev) : ())->[0];
- return 404 if $rid && !$r->{id};
+ return $self->resNotFound if $rid && !$r->{id};
$rev = undef if !$r || $r->{cid} == $r->{latest};
my $v = $vid && $self->dbVNGet(id => $vid)->[0];
- return 404 if $vid && !$v->{id};
+ return $self->resNotFound if $vid && !$v->{id};
return $self->htmlDenied if !$self->authCan('edit')
|| $rid && ($r->{locked} && !$self->authCan('lock') || $r->{hidden} && !$self->authCan('del'));
@@ -298,31 +298,31 @@ sub edit {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'type', enum => $self->{release_types} },
- { name => 'patch', required => 0, default => 0 },
- { name => 'freeware', required => 0, default => 0 },
- { name => 'doujin', required => 0, default => 0 },
- { name => 'title', maxlength => 250 },
- { name => 'original', required => 0, default => '', maxlength => 250 },
- { name => 'gtin', required => 0, default => '0',
+ { post => 'type', enum => $self->{release_types} },
+ { post => 'patch', required => 0, default => 0 },
+ { post => 'freeware', required => 0, default => 0 },
+ { post => 'doujin', required => 0, default => 0 },
+ { post => 'title', maxlength => 250 },
+ { post => 'original', required => 0, default => '', maxlength => 250 },
+ { post => 'gtin', required => 0, default => '0',
func => [ \&gtintype, 'Not a valid JAN/UPC/EAN code' ] },
- { name => 'catalog', required => 0, default => '', maxlength => 50 },
- { name => 'languages', multi => 1, enum => $self->{languages} },
- { name => 'website', required => 0, default => '', maxlength => 250, template => 'url' },
- { name => 'released', required => 0, default => 0, template => 'int' },
- { name => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} },
- { name => 'notes', required => 0, default => '', maxlength => 10240 },
- { name => 'platforms', required => 0, default => '', multi => 1, enum => $self->{platforms} },
- { name => 'media', required => 0, default => '' },
- { name => 'resolution',required => 0, default => 0, enum => [ 0..$#{$self->{resolutions}} ] },
- { name => 'voiced', required => 0, default => 0, enum => $self->{voiced} },
- { name => 'ani_story', required => 0, default => 0, enum => $self->{animated} },
- { name => 'ani_ero', required => 0, default => 0, enum => $self->{animated} },
- { name => 'producers', required => 0, default => '' },
- { name => 'vn', maxlength => 5000 },
- { name => 'editsum', required => 0, maxlength => 5000 },
- { name => 'ihid', required => 0 },
- { name => 'ilock', required => 0 },
+ { post => 'catalog', required => 0, default => '', maxlength => 50 },
+ { post => 'languages', multi => 1, enum => $self->{languages} },
+ { post => 'website', required => 0, default => '', maxlength => 250, template => 'url' },
+ { post => 'released', required => 0, default => 0, template => 'int' },
+ { post => 'minage' , required => 0, default => -1, enum => $self->{age_ratings} },
+ { post => 'notes', required => 0, default => '', maxlength => 10240 },
+ { post => 'platforms', required => 0, default => '', multi => 1, enum => $self->{platforms} },
+ { post => 'media', required => 0, default => '' },
+ { post => 'resolution',required => 0, default => 0, enum => [ 0..$#{$self->{resolutions}} ] },
+ { post => 'voiced', required => 0, default => 0, enum => $self->{voiced} },
+ { post => 'ani_story', required => 0, default => 0, enum => $self->{animated} },
+ { post => 'ani_ero', required => 0, default => 0, enum => $self->{animated} },
+ { post => 'producers', required => 0, default => '' },
+ { post => 'vn', maxlength => 5000 },
+ { post => 'editsum', required => 0, maxlength => 5000 },
+ { post => 'ihid', required => 0 },
+ { post => 'ilock', required => 0 },
);
push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{notes});
@@ -480,13 +480,13 @@ sub browse {
my $self = shift;
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'o', required => 0, default => 'a', enum => ['a', 'd'] },
- { name => 'q', required => 0, default => '', maxlength => 500 },
- { name => 's', required => 0, default => 'title', enum => [qw|released minage title|] },
- { name => 'fil',required => 0, default => '' },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'o', required => 0, default => 'a', enum => ['a', 'd'] },
+ { get => 'q', required => 0, default => '', maxlength => 500 },
+ { get => 's', required => 0, default => 'title', enum => [qw|released minage title|] },
+ { get => 'fil',required => 0, default => '' },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$f->{fil} = $self->authPref('filter_release') if !grep $_ eq 'fil', $self->reqParam();
my %compat = _fil_compat($self);
@@ -561,18 +561,18 @@ sub _fil_compat {
my $self = shift;
my %c;
my $f = $self->formValidate(
- { name => 'ln', required => 0, multi => 1, default => '', enum => $self->{languages} },
- { name => 'pl', required => 0, multi => 1, default => '', enum => $self->{platforms} },
- { name => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] },
- { name => 'tp', required => 0, default => '', enum => [ '', @{$self->{release_types}} ] },
- { name => 'pa', required => 0, default => 0, enum => [ 0..2 ] },
- { name => 'fw', required => 0, default => 0, enum => [ 0..2 ] },
- { name => 'do', required => 0, default => 0, enum => [ 0..2 ] },
- { name => 'ma_m', required => 0, default => 0, enum => [ 0, 1 ] },
- { name => 'ma_a', required => 0, default => 0, enum => $self->{age_ratings} },
- { name => 'mi', required => 0, default => 0, template => 'int' },
- { name => 'ma', required => 0, default => 99999999, template => 'int' },
- { name => 're', required => 0, multi => 1, default => 0, enum => [ 1..$#{$self->{resolutions}} ] },
+ { get => 'ln', required => 0, multi => 1, default => '', enum => $self->{languages} },
+ { get => 'pl', required => 0, multi => 1, default => '', enum => $self->{platforms} },
+ { get => 'me', required => 0, multi => 1, default => '', enum => [ keys %{$self->{media}} ] },
+ { get => 'tp', required => 0, default => '', enum => [ '', @{$self->{release_types}} ] },
+ { get => 'pa', required => 0, default => 0, enum => [ 0..2 ] },
+ { get => 'fw', required => 0, default => 0, enum => [ 0..2 ] },
+ { get => 'do', required => 0, default => 0, enum => [ 0..2 ] },
+ { get => 'ma_m', required => 0, default => 0, enum => [ 0, 1 ] },
+ { get => 'ma_a', required => 0, default => 0, enum => $self->{age_ratings} },
+ { get => 'mi', required => 0, default => 0, template => 'int' },
+ { get => 'ma', required => 0, default => 99999999, template => 'int' },
+ { get => 're', required => 0, multi => 1, default => 0, enum => [ 1..$#{$self->{resolutions}} ] },
);
return () if $f->{_err};
$c{minage} = [ grep $_ >= 0 && ($f->{ma_m} ? $f->{ma_a} >= $_ : $f->{ma_a} <= $_), @{$self->{age_ratings}} ] if $f->{ma_a} || $f->{ma_m};
diff --git a/lib/VNDB/Handler/Tags.pm b/lib/VNDB/Handler/Tags.pm
index 7fff2a97..65f6a957 100644
--- a/lib/VNDB/Handler/Tags.pm
+++ b/lib/VNDB/Handler/Tags.pm
@@ -4,11 +4,11 @@ package VNDB::Handler::Tags;
use strict;
use warnings;
-use YAWF ':html', ':xml';
+use TUWF ':html', ':xml', 'xml_escape';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{g([1-9]\d*)}, \&tagpage,
qr{g([1-9]\d*)/(edit)}, \&tagedit,
qr{g([1-9]\d*)/(add)}, \&tagedit,
@@ -27,15 +27,15 @@ sub tagpage {
my($self, $tag) = @_;
my $t = $self->dbTagGet(id => $tag, what => 'parents(0) childs(2) aliases')->[0];
- return 404 if !$t;
+ return $self->resNotFound if !$t;
my $f = $self->formValidate(
- { name => 's', required => 0, default => 'tagscore', enum => [ qw|title rel pop tagscore rating| ] },
- { name => 'o', required => 0, default => 'd', enum => [ 'a','d' ] },
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'm', required => 0, default => -1, enum => [qw|0 1 2|] },
+ { get => 's', required => 0, default => 'tagscore', enum => [ qw|title rel pop tagscore rating| ] },
+ { get => 'o', required => 0, default => 'd', enum => [ 'a','d' ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'm', required => 0, default => -1, enum => [qw|0 1 2|] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
my $tagspoil = $self->reqCookie($self->{cookie_prefix}.'tagspoil');
$f->{m} = $tagspoil =~ /^[0-2]$/ ? $tagspoil : 0 if $f->{m} == -1;
@@ -84,7 +84,8 @@ sub tagpage {
txt ' > ';
a href => "/g$_->{id}", $_->{name};
}
- txt " > $t->{name}\n";
+ txt " > $t->{name}";
+ br;
}
end;
@@ -95,8 +96,9 @@ sub tagpage {
}
if(@{$t->{aliases}}) {
p class => 'center';
- b mt('_tagp_aliases')."\n";
- txt "$_\n" for (@{$t->{aliases}});
+ b mt('_tagp_aliases');
+ br;
+ lit xml_escape($_).'<br />' for (@{$t->{aliases}});
end;
}
end;
@@ -112,8 +114,10 @@ sub tagpage {
a href => "/g$t->{id}?m=1", $f->{m} == 1 ? (class => 'optselected') : (), onclick => "setCookie('tagspoil', 1);return true;", mt '_tagp_spoil1';
a href => "/g$t->{id}?m=2", $f->{m} == 2 ? (class => 'optselected') : (), onclick => "setCookie('tagspoil', 2);return true;", mt '_tagp_spoil2';
end;
- p "\n\n".mt '_tagp_novn' if !@$list;
- p "\n".mt '_tagp_cached';
+ if(!@$list) {
+ p; br; br; txt mt '_tagp_novn'; end;
+ }
+ p; br; txt mt '_tagp_cached'; end;
end;
$self->htmlBrowseVN($list, $f, $np, "/g$t->{id}?m=$f->{m}", 1) if @$list;
}
@@ -179,7 +183,7 @@ sub tagedit {
my($frm, $par);
if($act && $act eq 'add') {
$par = $self->dbTagGet(id => $tag)->[0];
- return 404 if !$par;
+ return $self->resNotFound if !$par;
$frm->{parents} = $par->{name};
$tag = undef;
}
@@ -187,18 +191,18 @@ sub tagedit {
return $self->htmlDenied if !$self->authCan('tag') || $tag && !$self->authCan('tagmod');
my $t = $tag && $self->dbTagGet(id => $tag, what => 'parents(1) aliases addedby')->[0];
- return 404 if $tag && !$t;
+ return $self->resNotFound if $tag && !$t;
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'name', required => 1, maxlength => 250, regex => [ qr/^[^,]+$/, 'A comma is not allowed in tag names' ] },
- { name => 'state', required => 0, default => 0, enum => [ 0..2 ] },
- { name => 'meta', required => 0, default => 0 },
- { name => 'alias', required => 0, maxlength => 1024, default => '', regex => [ qr/^[^,]+$/s, 'No comma allowed in aliases' ] },
- { name => 'description', required => 0, maxlength => 10240, default => '' },
- { name => 'parents', required => !$self->authCan('tagmod'), default => '' },
- { name => 'merge', required => 0, default => '' },
+ { post => 'name', required => 1, maxlength => 250, regex => [ qr/^[^,]+$/, 'A comma is not allowed in tag names' ] },
+ { post => 'state', required => 0, default => 0, enum => [ 0..2 ] },
+ { post => 'meta', required => 0, default => 0 },
+ { post => 'alias', required => 0, maxlength => 1024, default => '', regex => [ qr/^[^,]+$/s, 'No comma allowed in aliases' ] },
+ { post => 'description', required => 0, maxlength => 10240, default => '' },
+ { post => 'parents', required => !$self->authCan('tagmod'), default => '' },
+ { post => 'merge', required => 0, default => '' },
);
my @aliases = split /[\t\s]*\n[\t\s]*/, $frm->{alias};
my @parents = split /[\t\s]*,[\t\s]*/, $frm->{parents};
@@ -289,13 +293,13 @@ sub taglist {
my $self = shift;
my $f = $self->formValidate(
- { name => 's', required => 0, default => 'name', enum => ['added', 'name'] },
- { name => 'o', required => 0, default => 'a', enum => ['a', 'd'] },
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 't', required => 0, default => -1, enum => [ -1..2 ] },
- { name => 'q', required => 0, default => '' },
+ { get => 's', required => 0, default => 'name', enum => ['added', 'name'] },
+ { get => 'o', required => 0, default => 'a', enum => ['a', 'd'] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 't', required => 0, default => -1, enum => [ -1..2 ] },
+ { get => 'q', required => 0, default => '' },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
my($t, $np) = $self->dbTagGet(
sort => $f->{s}, reverse => $f->{o} eq 'd',
@@ -357,14 +361,14 @@ sub taglinks {
my $self = shift;
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'o', required => 0, default => 'd', enum => ['a', 'd'] },
- { name => 's', required => 0, default => 'date', enum => [qw|date tag|] },
- { name => 'v', required => 0, default => 0, template => 'int' },
- { name => 'u', required => 0, default => 0, template => 'int' },
- { name => 't', required => 0, default => 0, template => 'int' },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'o', required => 0, default => 'd', enum => ['a', 'd'] },
+ { get => 's', required => 0, default => 'date', enum => [qw|date tag|] },
+ { get => 'v', required => 0, default => 0, template => 'int' },
+ { get => 'u', required => 0, default => 0, template => 'int' },
+ { get => 't', required => 0, default => 0, template => 'int' },
);
- return 404 if $f->{_err} || $f->{p} > 100;
+ return $self->resNotFound if $f->{_err} || $f->{p} > 100;
my($list, $np) = $self->dbTagLinks(
what => 'details',
@@ -473,7 +477,7 @@ sub vntagmod {
my($self, $vid) = @_;
my $v = $self->dbVNGet(id => $vid)->[0];
- return 404 if !$v || $v->{hidden};
+ return $self->resNotFound if !$v || $v->{hidden};
return $self->htmlDenied if !$self->authCan('tag');
@@ -483,10 +487,10 @@ sub vntagmod {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'taglinks', required => 0, default => '', maxlength => 10240, regex => [ qr/^[1-9][0-9]*,-?[1-3],-?[0-2]( [1-9][0-9]*,-?[1-3],-?[0-2])*$/, 'meh' ] },
- { name => 'overrule', required => 0, multi => 1, template => 'int' },
+ { post => 'taglinks', required => 0, default => '', maxlength => 10240, regex => [ qr/^[1-9][0-9]*,-?[1-3],-?[0-2]( [1-9][0-9]*,-?[1-3],-?[0-2])*$/, 'meh' ] },
+ { post => 'overrule', required => 0, multi => 1, template => 'int' },
);
- return 404 if $frm->{_err};
+ return $self->resNotFound if $frm->{_err};
# convert some data in a more convenient structure for faster lookup
my %tags = map +($_->{id} => $_), @$tags;
@@ -670,7 +674,7 @@ sub tagindex {
end;
}
li;
- txt "\n";
+ br;
a href => '/g/list?t=0;o=d;s=added', mt '_tagidx_queue_link';
txt ' - ';
a href => '/g/list?t=1;o=d;s=added', mt '_tagidx_denied';
@@ -718,10 +722,10 @@ sub tagxml {
my $self = shift;
my $f = $self->formValidate(
- { name => 'q', required => 0, maxlength => 500 },
- { name => 'id', required => 0, multi => 1, template => 'int' },
+ { get => 'q', required => 0, maxlength => 500 },
+ { get => 'id', required => 0, multi => 1, template => 'int' },
);
- return 404 if $f->{_err} || (!$f->{q} && !$f->{id} && !$f->{id}[0]);
+ return $self->resNotFound if $f->{_err} || (!$f->{q} && !$f->{id} && !$f->{id}[0]);
my($list, $np) = $self->dbTagGet(
!$f->{q} ? () : $f->{q} =~ /^g([1-9]\d*)/ ? (id => $1) : $f->{q} =~ /^name:(.+)$/ ? (name => $1) : (search => $f->{q}),
diff --git a/lib/VNDB/Handler/ULists.pm b/lib/VNDB/Handler/ULists.pm
index 764d515b..2657481e 100644
--- a/lib/VNDB/Handler/ULists.pm
+++ b/lib/VNDB/Handler/ULists.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::ULists;
use strict;
use warnings;
-use YAWF ':html', ':xml';
+use TUWF ':html', ':xml';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{v([1-9]\d*)/vote}, \&vnvote,
qr{v([1-9]\d*)/wish}, \&vnwish,
qr{v([1-9]\d*)/list}, \&vnlist_e,
@@ -27,9 +27,9 @@ sub vnvote {
return if !$self->authCheckCode;
my $f = $self->formValidate(
- { name => 'v', enum => [ -1, 1..10 ] }
+ { get => 'v', enum => [ -1, 1..10 ] }
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->dbVoteDel($uid, $id) if $f->{v} == -1;
$self->dbVoteAdd($id, $uid, $f->{v}) if $f->{v} > 0;
@@ -46,9 +46,9 @@ sub vnwish {
return if !$self->authCheckCode;
my $f = $self->formValidate(
- { name => 's', enum => [ -1, @{$self->{wishlist_status}} ] }
+ { get => 's', enum => [ -1, @{$self->{wishlist_status}} ] }
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->dbWishListDel($uid, $id) if $f->{s} == -1;
$self->dbWishListAdd($id, $uid, $f->{s}) if $f->{s} != -1;
@@ -65,9 +65,9 @@ sub vnlist_e {
return if !$self->authCheckCode;
my $f = $self->formValidate(
- { name => 'e', enum => [ -1, @{$self->{vnlist_status}} ] }
+ { get => 'e', enum => [ -1, @{$self->{vnlist_status}} ] }
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->dbVNListDel($uid, $id) if $f->{e} == -1;
$self->dbVNListAdd($uid, $id, $f->{e}) if $f->{e} != -1;
@@ -82,9 +82,9 @@ sub rlist_e {
my $rid = $id;
if(!$rid) {
my $f = $self->formValidate(
- { name => 'id', required => 1, template => 'int' }
+ { get => 'id', required => 1, template => 'int' }
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$rid = $f->{id};
}
@@ -93,9 +93,9 @@ sub rlist_e {
return if !$self->authCheckCode;
my $f = $self->formValidate(
- { name => 'e', required => 1, enum => [ -1, @{$self->{rlist_status}} ] }
+ { get => 'e', required => 1, enum => [ -1, @{$self->{rlist_status}} ] }
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->dbRListDel($uid, $rid) if $f->{e} == -1;
$self->dbRListAdd($uid, $rid, $f->{e}) if $f->{e} >= 0;
@@ -116,24 +116,24 @@ sub votelist {
my($self, $type, $id) = @_;
my $obj = $type eq 'v' ? $self->dbVNGet(id => $id)->[0] : $self->dbUserGet(uid => $id, what => 'hide_list')->[0];
- return 404 if !$obj->{id};
+ return $self->resNotFound if !$obj->{id};
my $own = $type eq 'u' && $self->authInfo->{id} && $self->authInfo->{id} == $id;
- return 404 if $type eq 'u' && !$own && !(!$obj->{hide_list} || $self->authCan('usermod'));
+ return $self->resNotFound if $type eq 'u' && !$own && !(!$obj->{hide_list} || $self->authCan('usermod'));
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'o', required => 0, default => 'd', enum => ['a', 'd'] },
- { name => 's', required => 0, default => 'date', enum => [qw|date title vote|] },
- { name => 'c', required => 0, default => 'all', enum => [ 'all', 'a'..'z', 0 ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'o', required => 0, default => 'd', enum => ['a', 'd'] },
+ { get => 's', required => 0, default => 'date', enum => [qw|date title vote|] },
+ { get => 'c', required => 0, default => 'all', enum => [ 'all', 'a'..'z', 0 ] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
if($own && $self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'vid', required => 1, multi => 1, template => 'int' },
- { name => 'batchedit', required => 1, enum => [ -2, -1, 1..10 ] },
+ { post => 'vid', required => 1, multi => 1, template => 'int' },
+ { post => 'batchedit', required => 1, enum => [ -2, -1, 1..10 ] },
);
my @vid = grep $_ && $_ > 0, @{$frm->{vid}};
if(!$frm->{_err} && @vid && $frm->{batchedit} > -2) {
@@ -223,21 +223,21 @@ sub wishlist {
my $own = $self->authInfo->{id} && $self->authInfo->{id} == $uid;
my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0];
- return 404 if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod'));
+ return $self->resNotFound if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod'));
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'o', required => 0, default => 'd', enum => [ 'a', 'd' ] },
- { name => 's', required => 0, default => 'wstat', enum => [qw|title added wstat|] },
- { name => 'f', required => 0, default => -1, enum => [ -1, @{$self->{wishlist_status}} ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'o', required => 0, default => 'd', enum => [ 'a', 'd' ] },
+ { get => 's', required => 0, default => 'wstat', enum => [qw|title added wstat|] },
+ { get => 'f', required => 0, default => -1, enum => [ -1, @{$self->{wishlist_status}} ] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
if($own && $self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'sel', required => 0, default => 0, multi => 1, template => 'int' },
- { name => 'batchedit', required => 1, enum => [ -1, @{$self->{wishlist_status}} ] },
+ { post => 'sel', required => 0, default => 0, multi => 1, template => 'int' },
+ { post => 'batchedit', required => 1, enum => [ -1, @{$self->{wishlist_status}} ] },
);
if(!$frm->{_err} && @{$frm->{sel}} && $frm->{sel}[0]) {
$self->dbWishListDel($uid, $frm->{sel}) if $frm->{batchedit} == -1;
@@ -325,26 +325,26 @@ sub vnlist {
my $own = $self->authInfo->{id} && $self->authInfo->{id} == $uid;
my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0];
- return 404 if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod'));
+ return $self->resNotFound if !$u || !$own && !(!$u->{hide_list} || $self->authCan('usermod'));
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'o', required => 0, default => 'a', enum => [ 'a', 'd' ] },
- { name => 's', required => 0, default => 'title', enum => [ 'title', 'vote' ] },
- { name => 'c', required => 0, default => 'all', enum => [ 'all', 'a'..'z', 0 ] },
- { name => 'v', required => 0, default => 0, enum => [ -1..1 ] },
- { name => 't', required => 0, default => -1, enum => [ -1, @{$self->{vnlist_status}} ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'o', required => 0, default => 'a', enum => [ 'a', 'd' ] },
+ { get => 's', required => 0, default => 'title', enum => [ 'title', 'vote' ] },
+ { get => 'c', required => 0, default => 'all', enum => [ 'all', 'a'..'z', 0 ] },
+ { get => 'v', required => 0, default => 0, enum => [ -1..1 ] },
+ { get => 't', required => 0, default => -1, enum => [ -1, @{$self->{vnlist_status}} ] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
if($own && $self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'vid', required => 0, default => 0, multi => 1, template => 'int' },
- { name => 'rid', required => 0, default => 0, multi => 1, template => 'int' },
- { name => 'not', required => 0, default => '', maxlength => 2000 },
- { name => 'vns', required => 1, enum => [ -2, -1, @{$self->{vnlist_status}}, 999 ] },
- { name => 'rel', required => 1, enum => [ -2, -1, @{$self->{rlist_status}} ] },
+ { post => 'vid', required => 0, default => 0, multi => 1, template => 'int' },
+ { post => 'rid', required => 0, default => 0, multi => 1, template => 'int' },
+ { post => 'not', required => 0, default => '', maxlength => 2000 },
+ { post => 'vns', required => 1, enum => [ -2, -1, @{$self->{vnlist_status}}, 999 ] },
+ { post => 'rel', required => 1, enum => [ -2, -1, @{$self->{rlist_status}} ] },
);
my @vid = grep $_ > 0, @{$frm->{vid}};
my @rid = grep $_ > 0, @{$frm->{rid}};
diff --git a/lib/VNDB/Handler/Users.pm b/lib/VNDB/Handler/Users.pm
index 044c72b2..fcef3d44 100644
--- a/lib/VNDB/Handler/Users.pm
+++ b/lib/VNDB/Handler/Users.pm
@@ -3,12 +3,12 @@ package VNDB::Handler::Users;
use strict;
use warnings;
-use YAWF ':html', 'xml_escape';
+use TUWF ':html', 'xml_escape';
use VNDB::Func;
use POSIX 'floor';
-YAWF::register(
+TUWF::register(
qr{u([1-9]\d*)} => \&userpage,
qr{u/login} => \&login,
qr{u([1-9]\d*)/logout} => \&logout,
@@ -28,7 +28,7 @@ sub userpage {
my($self, $uid) = @_;
my $u = $self->dbUserGet(uid => $uid, what => 'stats hide_list')->[0];
- return 404 if !$u->{id};
+ return $self->resNotFound if !$u->{id};
my $votes = $u->{c_votes} && $self->dbVoteStats(uid => $uid);
@@ -142,8 +142,8 @@ sub login {
my $frm;
if($self->reqMethod eq 'POST') {
$frm = $self->formValidate(
- { name => 'usrname', required => 1, minlength => 2, maxlength => 15 },
- { name => 'usrpass', required => 1, minlength => 4, maxlength => 64, template => 'asciiprint' },
+ { post => 'usrname', required => 1, minlength => 2, maxlength => 15 },
+ { post => 'usrpass', required => 1, minlength => 4, maxlength => 64, template => 'asciiprint' },
);
(my $ref = $self->reqHeader('Referer')||'/') =~ s/^\Q$self->{url}//;
@@ -166,7 +166,7 @@ sub login {
sub logout {
my $self = shift;
my $uid = shift;
- return 404 if !$self->authInfo->{id} || $self->authInfo->{id} != $uid;
+ return $self->resNotFound if !$self->authInfo->{id} || $self->authInfo->{id} != $uid;
$self->authLogout;
}
@@ -180,7 +180,7 @@ sub newpass {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'mail', required => 1, template => 'mail' },
+ { post => 'mail', required => 1, template => 'mail' },
);
if(!$frm->{_err}) {
$u = $self->dbUserGet(mail => $frm->{mail})->[0];
@@ -238,12 +238,12 @@ sub register {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 },
- { name => 'mail', template => 'mail' },
- { name => 'usrpass', minlength => 4, maxlength => 64, template => 'asciiprint' },
- { name => 'usrpass2', minlength => 4, maxlength => 64, template => 'asciiprint' },
- { name => 'type', regex => [ qr/^[1-3]$/ ] },
- { name => 'answer', template => 'int' },
+ { post => 'usrname', template => 'pname', minlength => 2, maxlength => 15 },
+ { post => 'mail', template => 'mail' },
+ { post => 'usrpass', minlength => 4, maxlength => 64, template => 'asciiprint' },
+ { post => 'usrpass2', minlength => 4, maxlength => 64, template => 'asciiprint' },
+ { post => 'type', regex => [ qr/^[1-3]$/ ] },
+ { post => 'answer', template => 'int' },
);
my $num = $self->{stats}{[qw|vn releases producers|]->[ $frm->{type} - 1 ]};
push @{$frm->{_err}}, 'notanswer' if !$frm->{_err} && ($frm->{answer} > $num || $frm->{answer} < $num*0.995);
@@ -292,7 +292,7 @@ sub edit {
# fetch user info (cached if uid == loggedin uid)
my $u = $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'extended prefs')->[0];
- return 404 if !$u->{id};
+ return $self->resNotFound if !$u->{id};
# check POST data
my $frm;
@@ -300,17 +300,17 @@ sub edit {
return if !$self->authCheckCode;
$frm = $self->formValidate(
$self->authCan('usermod') ? (
- { name => 'usrname', template => 'pname', minlength => 2, maxlength => 15 },
- { name => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] },
- { name => 'ign_votes', required => 0, default => 0 },
+ { post => 'usrname', template => 'pname', minlength => 2, maxlength => 15 },
+ { post => 'rank', enum => [ 1..$#{$self->{user_ranks}} ] },
+ { post => 'ign_votes', required => 0, default => 0 },
) : (),
- { name => 'mail', template => 'mail' },
- { name => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
- { name => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
- { name => 'hide_list', required => 0, default => 0, enum => [0,1] },
- { name => 'show_nsfw', required => 0, default => 0, enum => [0,1] },
- { name => 'skin', required => 0, default => '', enum => [ '', keys %{$self->{skins}} ] },
- { name => 'customcss', required => 0, maxlength => 2000, default => '' },
+ { post => 'mail', template => 'mail' },
+ { post => 'usrpass', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
+ { post => 'usrpass2', required => 0, minlength => 4, maxlength => 64, template => 'asciiprint' },
+ { post => 'hide_list', required => 0, default => 0, enum => [0,1] },
+ { post => 'show_nsfw', required => 0, default => 0, enum => [0,1] },
+ { post => 'skin', required => 0, default => '', enum => [ '', keys %{$self->{skins}} ] },
+ { post => 'customcss', required => 0, maxlength => 2000, default => '' },
);
push @{$frm->{_err}}, 'passmatch'
if ($frm->{usrpass} || $frm->{usrpass2}) && (!$frm->{usrpass} || !$frm->{usrpass2} || $frm->{usrpass} ne $frm->{usrpass2});
@@ -379,10 +379,10 @@ sub posts {
# fetch user info (cached if uid == loggedin uid)
my $u = $self->authInfo->{id} && $self->authInfo->{id} == $uid ? $self->authInfo : $self->dbUserGet(uid => $uid, what => 'hide_list')->[0];
- return 404 if !$u->{id};
+ return $self->resNotFound if !$u->{id};
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' }
+ { get => 'p', required => 0, default => 1, template => 'int' }
);
my($posts, $np) = $self->dbPostGet(uid => $uid, hide => 1, what => 'thread', page => $f->{p}, sort => 'date', reverse => 1);
@@ -436,7 +436,7 @@ sub delete {
if(!$act) {
my $code = $self->authGetCode("/u$uid/del/o");
my $u = $self->dbUserGet(uid => $uid, what => 'hide_list')->[0];
- return 404 if !$u->{id};
+ return $self->resNotFound if !$u->{id};
$self->htmlHeader(title => 'Delete user', noindex => 1);
$self->htmlMainTabs('u', $u, 'del');
div class => 'mainbox';
@@ -473,12 +473,12 @@ sub list {
my($self, $char) = @_;
my $f = $self->formValidate(
- { name => 's', required => 0, default => 'username', enum => [ qw|username registered votes changes tags| ] },
- { name => 'o', required => 0, default => 'a', enum => [ 'a','d' ] },
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'q', required => 0, default => '', maxlength => 50 },
+ { get => 's', required => 0, default => 'username', enum => [ qw|username registered votes changes tags| ] },
+ { get => 'o', required => 0, default => 'a', enum => [ 'a','d' ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'q', required => 0, default => '', maxlength => 50 },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$self->htmlHeader(noindex => 1, title => mt '_ulist_title');
@@ -548,21 +548,20 @@ sub notifies {
return $self->htmlDenied if !$u->{id} || $uid != $u->{id};
my $f = $self->formValidate(
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'r', required => 0, default => 0, enum => [0,1] },
-
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'r', required => 0, default => 0, enum => [0,1] },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
# changing the notification settings
my $saved;
if($self->reqMethod() eq 'POST' && $self->reqParam('set')) {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'notify_nodbedit', required => 0, default => 1, enum => [0,1] },
- { name => 'notify_announce', required => 0, default => 0, enum => [0,1] }
+ { post => 'notify_nodbedit', required => 0, default => 1, enum => [0,1] },
+ { post => 'notify_announce', required => 0, default => 0, enum => [0,1] }
);
- return 404 if $frm->{_err};
+ return $self->resNotFound if $frm->{_err};
$self->authPref($_, $frm->{$_}) for ('notify_nodbedit', 'notify_announce');
$saved = 1;
@@ -570,11 +569,11 @@ sub notifies {
} elsif($self->reqMethod() eq 'POST') {
return if !$self->authCheckCode;
my $frm = $self->formValidate(
- { name => 'notifysel', multi => 1, required => 0, template => 'int' },
- { name => 'markread', required => 0 },
- { name => 'remove', required => 0 }
+ { post => 'notifysel', multi => 1, required => 0, template => 'int' },
+ { post => 'markread', required => 0 },
+ { post => 'remove', required => 0 }
);
- return 404 if $frm->{_err};
+ return $self->resNotFound if $frm->{_err};
my @ids = grep $_, @{$frm->{notifysel}};
$self->dbNotifyMarkRead(@ids) if @ids && $frm->{markread};
$self->dbNotifyRemove(@ids) if @ids && $frm->{remove};
@@ -673,7 +672,7 @@ sub readnotify {
my($self, $uid, $nid) = @_;
return $self->htmlDenied if !$self->authInfo->{id} || $uid != $self->authInfo->{id};
my $n = $self->dbNotifyGet(uid => $uid, id => $nid)->[0];
- return 404 if !$n->{iid};
+ return $self->resNotFound if !$n->{iid};
$self->dbNotifyMarkRead($n->{id}) if !$n->{read};
# NOTE: for t+.+ IDs, this will create a double redirect, which is rather awkward...
$self->resRedirect("/$n->{ltype}$n->{iid}".($n->{subid}?".$n->{subid}":''), 'perm');
diff --git a/lib/VNDB/Handler/VNBrowse.pm b/lib/VNDB/Handler/VNBrowse.pm
index 8a63b79b..16a7edfb 100644
--- a/lib/VNDB/Handler/VNBrowse.pm
+++ b/lib/VNDB/Handler/VNBrowse.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::VNBrowse;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{v/([a-z0]|all)} => \&list,
);
@@ -16,14 +16,14 @@ sub list {
my($self, $char) = @_;
my $f = $self->formValidate(
- { name => 's', required => 0, default => 'tagscore', enum => [ qw|title rel pop tagscore rating| ] },
- { name => 'o', required => 0, enum => [ 'a','d' ] },
- { name => 'p', required => 0, default => 1, template => 'int' },
- { name => 'q', required => 0, default => '' },
- { name => 'sq', required => 0, default => '' },
- { name => 'fil',required => 0, default => '' },
+ { get => 's', required => 0, default => 'tagscore', enum => [ qw|title rel pop tagscore rating| ] },
+ { get => 'o', required => 0, enum => [ 'a','d' ] },
+ { get => 'p', required => 0, default => 1, template => 'int' },
+ { get => 'q', required => 0, default => '' },
+ { get => 'sq', required => 0, default => '' },
+ { get => 'fil',required => 0, default => '' },
);
- return 404 if $f->{_err};
+ return $self->resNotFound if $f->{_err};
$f->{q} ||= $f->{sq};
$f->{fil} = $self->authPref('filter_vn') if !grep $_ eq 'fil', $self->reqParam();
my %compat = _fil_compat($self);
@@ -75,9 +75,9 @@ sub _fil_compat {
my $self = shift;
my %c;
my $f = $self->formValidate(
- { name => 'ln', required => 0, multi => 1, enum => $self->{languages}, default => '' },
- { name => 'pl', required => 0, multi => 1, enum => $self->{platforms}, default => '' },
- { name => 'sp', required => 0, default => $self->reqCookie($self->{cookie_prefix}.'tagspoil') =~ /^([0-2])$/ ? $1 : 0, enum => [0..2] },
+ { get => 'ln', required => 0, multi => 1, enum => $self->{languages}, default => '' },
+ { get => 'pl', required => 0, multi => 1, enum => $self->{platforms}, default => '' },
+ { get => 'sp', required => 0, default => $self->reqCookie($self->{cookie_prefix}.'tagspoil') =~ /^([0-2])$/ ? $1 : 0, enum => [0..2] },
);
return () if $f->{_err};
$c{lang} //= $f->{ln} if $f->{ln}[0];
diff --git a/lib/VNDB/Handler/VNEdit.pm b/lib/VNDB/Handler/VNEdit.pm
index b93c544d..8265aa35 100644
--- a/lib/VNDB/Handler/VNEdit.pm
+++ b/lib/VNDB/Handler/VNEdit.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::VNEdit;
use strict;
use warnings;
-use YAWF ':html', ':xml';
+use TUWF ':html', ':xml';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{v(?:([1-9]\d*)(?:\.([1-9]\d*))?/edit|/new)}
=> \&edit,
qr{xml/vn\.xml} => \&vnxml,
@@ -19,7 +19,7 @@ sub edit {
my($self, $vid, $rev) = @_;
my $v = $vid && $self->dbVNGet(id => $vid, what => 'extended screenshots relations anime changes', $rev ? (rev => $rev) : ())->[0];
- return 404 if $vid && !$v->{id};
+ return $self->resNotFound if $vid && !$v->{id};
$rev = undef if !$vid || $v->{cid} == $v->{latest};
return $self->htmlDenied if !$self->authCan('edit')
@@ -38,23 +38,23 @@ sub edit {
if($self->reqMethod eq 'POST') {
return if !$self->authCheckCode;
$frm = $self->formValidate(
- { name => 'title', maxlength => 250 },
- { name => 'original', required => 0, maxlength => 250, default => '' },
- { name => 'alias', required => 0, maxlength => 500, default => '' },
- { name => 'desc', required => 0, default => '', maxlength => 10240 },
- { name => 'length', required => 0, default => 0, enum => $self->{vn_lengths} },
- { name => 'l_wp', required => 0, default => '', maxlength => 150 },
- { name => 'l_encubed', required => 0, default => '', maxlength => 100 },
- { name => 'l_renai', required => 0, default => '', maxlength => 100 },
- { name => 'l_vnn', required => 0, default => $b4{l_vnn}||0, template => 'int' },
- { name => 'anime', required => 0, default => '' },
- { name => 'previmage', required => 0, default => 0, template => 'int' },
- { name => 'img_nsfw', required => 0, default => 0 },
- { name => 'vnrelations', required => 0, default => '', maxlength => 5000 },
- { name => 'screenshots', required => 0, default => '', maxlength => 1000 },
- { name => 'editsum', required => 0, maxlength => 5000 },
- { name => 'ihid', required => 0 },
- { name => 'ilock', required => 0 },
+ { post => 'title', maxlength => 250 },
+ { post => 'original', required => 0, maxlength => 250, default => '' },
+ { post => 'alias', required => 0, maxlength => 500, default => '' },
+ { post => 'desc', required => 0, default => '', maxlength => 10240 },
+ { post => 'length', required => 0, default => 0, enum => $self->{vn_lengths} },
+ { post => 'l_wp', required => 0, default => '', maxlength => 150 },
+ { post => 'l_encubed', required => 0, default => '', maxlength => 100 },
+ { post => 'l_renai', required => 0, default => '', maxlength => 100 },
+ { post => 'l_vnn', required => 0, default => $b4{l_vnn}||0, template => 'int' },
+ { post => 'anime', required => 0, default => '' },
+ { post => 'previmage', required => 0, default => 0, template => 'int' },
+ { post => 'img_nsfw', required => 0, default => 0 },
+ { post => 'vnrelations', required => 0, default => '', maxlength => 5000 },
+ { post => 'screenshots', required => 0, default => '', maxlength => 1000 },
+ { post => 'editsum', required => 0, maxlength => 5000 },
+ { post => 'ihid', required => 0 },
+ { post => 'ilock', required => 0 },
);
push @{$frm->{_err}}, 'badeditsum' if !$frm->{editsum} || lc($frm->{editsum}) eq lc($frm->{desc});
@@ -86,7 +86,7 @@ sub edit {
# nothing changed? just redirect
return $self->resRedirect("/v$vid", 'post')
- if $vid && !$self->reqUploadFileName('img') && $image == $v->{image}
+ if $vid && !$self->reqParam('img') && $image == $v->{image}
&& !grep $frm->{$_} ne $b4{$_}, keys %b4;
# perform the edit/add
@@ -123,7 +123,7 @@ sub edit {
sub _uploadimage {
my($self, $v, $frm) = @_;
- return $v ? $frm->{previmage} : 0 if $frm->{_err} || !$self->reqUploadFileName('img');
+ return $v ? $frm->{previmage} : 0 if $frm->{_err} || !$self->reqParam('img');
# save to temporary location
my $tmp = sprintf '%s/static/cv/00/tmp.%d.jpg', $VNDB::ROOT, $$*int(rand(1000)+1);
@@ -187,7 +187,8 @@ sub _form {
h2 mt '_vnedit_image_upload';
input type => 'file', class => 'text', name => 'img', id => 'img';
- p mt('_vnedit_image_upload_msg')."\n\n\n";
+ p mt('_vnedit_image_upload_msg');
+ br; br; br;
h2 mt '_vnedit_image_nsfw';
input type => 'checkbox', class => 'checkbox', id => 'img_nsfw', name => 'img_nsfw',
@@ -292,8 +293,8 @@ sub _updreverse {
sub vnxml {
my $self = shift;
- my $q = $self->formValidate({ name => 'q', maxlength => 500 });
- return 404 if $q->{_err};
+ my $q = $self->formValidate({ get => 'q', maxlength => 500 });
+ return $self->resNotFound if $q->{_err};
$q = $q->{q};
my($list, $np) = $self->dbVNGet(
@@ -321,9 +322,9 @@ sub scrxml {
# fetch information about screenshots
if($self->reqMethod ne 'POST') {
my $ids = $self->formValidate(
- { name => 'id', required => 1, template => 'int', multi => 1 }
+ { get => 'id', required => 1, template => 'int', multi => 1 }
);
- return 404 if $ids->{_err};
+ return $self->resNotFound if $ids->{_err};
my $r = $self->dbScreenshotGet($ids->{id});
xml;
@@ -334,8 +335,8 @@ sub scrxml {
}
# upload new screenshot
- my $num = $self->formValidate({name => 'upload', template => 'int'});
- return 404 if $num->{_err};
+ my $num = $self->formValidate({get => 'upload', template => 'int'});
+ return $self->resNotFound if $num->{_err};
my $tmp = sprintf '%s/static/sf/00/tmp.%d.jpg', $VNDB::ROOT, $$*int(rand(1000)+1);
$self->reqSaveUpload("scr_upl_file_$num->{upload}", $tmp);
diff --git a/lib/VNDB/Handler/VNPage.pm b/lib/VNDB/Handler/VNPage.pm
index 5e024424..e0c597d9 100644
--- a/lib/VNDB/Handler/VNPage.pm
+++ b/lib/VNDB/Handler/VNPage.pm
@@ -3,11 +3,11 @@ package VNDB::Handler::VNPage;
use strict;
use warnings;
-use YAWF ':html', 'xml_escape';
+use TUWF ':html', 'xml_escape';
use VNDB::Func;
-YAWF::register(
+TUWF::register(
qr{v/rand} => \&rand,
qr{v([1-9]\d*)/rg} => \&rg,
qr{v([1-9]\d*)(?:\.([1-9]\d*))?} => \&page,
@@ -24,7 +24,7 @@ sub rg {
my($self, $vid) = @_;
my $v = $self->dbVNGet(id => $vid, what => 'relgraph')->[0];
- return 404 if !$v->{id} || !$v->{rgraph};
+ return $self->resNotFound if !$v->{id} || !$v->{rgraph};
my $title = mt '_vnrg_title', $v->{title};
return if $self->htmlRGHeader($title, 'v', $v);
@@ -50,7 +50,7 @@ sub page {
what => 'extended anime relations screenshots rating ranking'.($rev ? ' changes' : ''),
$rev ? (rev => $rev) : (),
)->[0];
- return 404 if !$v->{id};
+ return $self->resNotFound if !$v->{id};
my $r = $self->dbReleaseGet(vid => $vid, what => 'producers platforms');
@@ -80,9 +80,11 @@ sub page {
end;
if($v->{img_nsfw}) {
p id => 'nsfw_show', $self->authPref('show_nsfw') ? (style => 'display: none') : ();
- txt mt('_vnpage_imgnsfw_msg')."\n\n";
+ txt mt('_vnpage_imgnsfw_msg');
+ br; br;
a href => '#', mt '_vnpage_imgnsfw_show';
- txt "\n\n".mt '_vnpage_imgnsfw_note';
+ br; br;
+ txt mt '_vnpage_imgnsfw_note';
end;
}
}
@@ -268,7 +270,7 @@ sub _producers {
a href => "/p$_->{id}", title => $_->{original}||$_->{name}, shorten $_->{name}, 30;
txt ' & ' if $_ != $p[$#p];
}
- txt "\n";
+ br;
}
end;
end;
@@ -331,7 +333,7 @@ sub _anime {
end;
acronym title => $_->{title_kanji}||$_->{title_romaji}, shorten $_->{title_romaji}, 50;
b ' ('.(defined $_->{type} ? mt("_animetype_$_->{type}").', ' : '').$_->{year}.')';
- txt "\n";
+ br;
}
}
end;
diff --git a/lib/VNDB/L10N.pm b/lib/VNDB/L10N.pm
index b857852d..ee9db838 100644
--- a/lib/VNDB/L10N.pm
+++ b/lib/VNDB/L10N.pm
@@ -49,7 +49,7 @@ use warnings;
package VNDB::L10N::en;
use base 'VNDB::L10N';
use POSIX 'strftime';
- use YAWF 'xml_escape';
+ use TUWF::XML 'xml_escape';
our %Lexicon;
sub quant {
diff --git a/lib/VNDB/Plugin/TransAdmin.pm b/lib/VNDB/Plugin/TransAdmin.pm
index fa8e98ef..35dd10ce 100644
--- a/lib/VNDB/Plugin/TransAdmin.pm
+++ b/lib/VNDB/Plugin/TransAdmin.pm
@@ -1,9 +1,9 @@
# This plugin provides a quick and dirty user interface to editing lang.txt,
# to use it, add the following to your data/config.pl:
#
-# if($INC{"YAWF.pm"}) {
-# require VNDB::Plugin::TransAdmin;
-# $VNDB::S{transadmin} = {
+# if($TUWF::OBJ) {
+# TUWF::load('VNDB::Plugin::TransAdmin');
+# $TUWF::OBJ->{transadmin} = {
# <userid> => 'all' || <language> || <arrayref with languages>
# };
# }
@@ -16,7 +16,7 @@ package VNDB::Plugin::TransAdmin;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use LangFile;
use VNDB::Func;
@@ -24,7 +24,7 @@ use VNDB::Func;
my $langfile = "$VNDB::ROOT/data/lang.txt";
-YAWF::register(
+TUWF::register(
qr{tladmin(?:/([a-z]+))?} => \&tladmin
);
@@ -41,7 +41,7 @@ sub tladmin {
$lang ||= '';
my $intro = $lang =~ s/intro//;
- return 404 if $lang && ($lang eq 'en' || !grep $_ eq $lang, $self->{l10n}->languages);
+ return $self->resNotFound if $lang && ($lang eq 'en' || !grep $_ eq $lang, $self->{l10n}->languages);
my $sect = $self->reqParam('sect')||'';
my $doc = $self->reqParam('doc')||'';
diff --git a/lib/VNDB/Util/Auth.pm b/lib/VNDB/Util/Auth.pm
index 9ad76894..864d1c54 100644
--- a/lib/VNDB/Util/Auth.pm
+++ b/lib/VNDB/Util/Auth.pm
@@ -10,7 +10,7 @@ use Digest::SHA qw|sha1_hex sha256_hex|;
use Time::HiRes;
use Encode 'encode_utf8';
use POSIX 'strftime';
-use YAWF ':html';
+use TUWF ':html';
use VNDB::Func;
diff --git a/lib/VNDB/Util/BrowseHTML.pm b/lib/VNDB/Util/BrowseHTML.pm
index 62e01fd1..4cce692c 100644
--- a/lib/VNDB/Util/BrowseHTML.pm
+++ b/lib/VNDB/Util/BrowseHTML.pm
@@ -3,7 +3,7 @@ package VNDB::Util::BrowseHTML;
use strict;
use warnings;
-use YAWF ':html', 'xml_escape';
+use TUWF ':html', 'xml_escape';
use Exporter 'import';
use VNDB::Func;
use POSIX 'ceil';
diff --git a/lib/VNDB/Util/CommonHTML.pm b/lib/VNDB/Util/CommonHTML.pm
index a412949a..97dc6ca1 100644
--- a/lib/VNDB/Util/CommonHTML.pm
+++ b/lib/VNDB/Util/CommonHTML.pm
@@ -3,7 +3,7 @@ package VNDB::Util::CommonHTML;
use strict;
use warnings;
-use YAWF ':html', 'xml_escape';
+use TUWF ':html', 'xml_escape', 'html_escape';
use Exporter 'import';
use Algorithm::Diff::Fast 'compact_diff';
use VNDB::Func;
@@ -233,8 +233,8 @@ sub revdiff {
if($o{diff} && $ser1 && $ser2) {
my $sep = ref $o{diff} ? qr/($o{diff})/ : qr//;
- my @ser1 = $o{split} ? $o{split}->($ser1) : map xml_escape($_), split $sep, $ser1;
- my @ser2 = $o{split} ? $o{split}->($ser2) : map xml_escape($_), split $sep, $ser2;
+ my @ser1 = $o{split} ? $o{split}->($ser1) : map html_escape($_), split $sep, $ser1;
+ my @ser2 = $o{split} ? $o{split}->($ser2) : map html_escape($_), split $sep, $ser2;
return if $o{split} && $#ser1 == $#ser2 && !grep $ser1[$_] ne $ser2[$_], 0..$#ser1;
$ser1 = $ser2 = '';
@@ -247,8 +247,8 @@ sub revdiff {
$ser2 .= ($ser2?$o{join}:'').($i % 2 ? qq|<b class="diff_add">$b</b>| : $b) if $b ne '';
}
} elsif(!$o{htmlize}) {
- $ser1 = xml_escape $ser1;
- $ser2 = xml_escape $ser2;
+ $ser1 = html_escape $ser1;
+ $ser2 = html_escape $ser2;
}
$ser1 = mt '_revision_empty' if !$ser1 && $ser1 ne '0';
@@ -432,9 +432,10 @@ sub htmlRGHeader {
$self->resHeader('Content-Type' => 'application/xhtml+xml; charset=UTF-8');
# This is a REALLY ugly hack, need find a proper solution in YAWF
+ # TODO: TUWF has a proper solution for this, convert this to use it
no warnings 'redefine';
- my $sub = \&YAWF::XML::html;
- *YAWF::XML::html = sub () {
+ my $sub = \&TUWF::XML::html;
+ *VNDB::Util::LayoutHTML::html = sub {
lit q|<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN"
"http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">|;
@@ -444,7 +445,7 @@ sub htmlRGHeader {
'xmlns:xlink' => 'http://www.w3.org/1999/xlink';
};
$self->htmlHeader(title => $title);
- *YAWF::XML::html = $sub;
+ *VNDB::Util::LayoutHTML::html = $sub;
$self->htmlMainTabs($type, $obj, 'rg');
return 0;
}
diff --git a/lib/VNDB/Util/FormHTML.pm b/lib/VNDB/Util/FormHTML.pm
index 41ee0ccc..57ec5b58 100644
--- a/lib/VNDB/Util/FormHTML.pm
+++ b/lib/VNDB/Util/FormHTML.pm
@@ -3,7 +3,7 @@ package VNDB::Util::FormHTML;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use Exporter 'import';
use POSIX 'strftime';
use VNDB::Func;
@@ -227,7 +227,9 @@ sub htmlForm {
input type => 'checkbox', name => 'ilock', id => 'ilock', value => 1, $options->{frm}{ilock} ? (checked => 'checked') : ();
label for => 'ilock', mt '_form_ilock';
}
- txt "\n".mt('_form_hidlock_note')."\n" if $self->authCan('lock') || $self->authCan('del');
+ if($self->authCan('lock') || $self->authCan('del')) {
+ br; txt mt('_form_hidlock_note'); br;
+ }
# edit summary
(my $txt = $options->{frm}{editsum}||'') =~ s/&/&amp;/;
diff --git a/lib/VNDB/Util/LayoutHTML.pm b/lib/VNDB/Util/LayoutHTML.pm
index cc34b874..fe5f0679 100644
--- a/lib/VNDB/Util/LayoutHTML.pm
+++ b/lib/VNDB/Util/LayoutHTML.pm
@@ -3,7 +3,7 @@ package VNDB::Util::LayoutHTML;
use strict;
use warnings;
-use YAWF ':html';
+use TUWF ':html';
use Exporter 'import';
use VNDB::Func;
@@ -143,7 +143,8 @@ sub htmlFooter { # %options => { prefs => [pref1,..] }
if($q && $q->{vid}) {
lit '"';
a href => "/v$q->{vid}", style => 'text-decoration: none', $q->{quote};
- txt qq|"\n|;
+ txt '"';
+ br;
}
txt "vndb $self->{version} | ";
@@ -174,7 +175,7 @@ sub htmlFooter { # %options => { prefs => [pref1,..] }
# write the SQL queries as a HTML comment when debugging is enabled
if($self->debug) {
lit "\n<!--\n SQL Queries:\n";
- for (@{$self->{_YAWF}{DB}{queries}}) {
+ for (@{$self->{_TUWF}{DB}{queries}}) {
my $q = !ref $_->[0] ? $_->[0] :
$_->[0][0].(exists $_->[0][1] ? ' | "'.join('", "', map defined()?$_:'NULL', @{$_->[0]}[1..$#{$_->[0]}]).'"' : '');
$q =~ s/^\s//g;
diff --git a/lib/VNDB/Util/Misc.pm b/lib/VNDB/Util/Misc.pm
index c64ffe6f..f4f02b57 100644
--- a/lib/VNDB/Util/Misc.pm
+++ b/lib/VNDB/Util/Misc.pm
@@ -57,7 +57,7 @@ sub filFetchDB {
# throwing 500's even for non-browse pages. We have to do some low-level
# PostgreSQL stuff with savepoints to ensure that an error won't affect our
# existing transaction.
- my $dbh = $self->{_YAWF}{DB}{sql};
+ my $dbh = $self->dbh;
$dbh->pg_savepoint('filter');
my($r, $np);
my $OK = eval {