From 5ae1acbc2e31ebae37fc2b154145dc7fcd565170 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Fri, 7 Jan 2011 20:59:45 +0100 Subject: DB::Releases: Inverted 'unreleased' option to dbReleaseGet() Makes more sense this way. --- lib/VNDB/Handler/Misc.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index 5df5ab10..fb566f19 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -146,7 +146,7 @@ sub homepage { h1; a href => strftime('/r?fil=date_after-%Y%m%d;o=a;s=released', gmtime), mt '_home_upcoming'; end; - my $upcoming = $self->filFetchDB(release => undef, undef, {results => 10, unreleased => 1, what => 'platforms'}); + my $upcoming = $self->filFetchDB(release => undef, undef, {results => 10, released => 0, what => 'platforms'}); ul; for (@$upcoming) { li; @@ -166,7 +166,7 @@ sub homepage { h1; a href => strftime('/r?fil=date_before-%Y%m%d;o=d;s=released', gmtime), mt '_home_justreleased'; end; - my $justrel = $self->filFetchDB(release => undef, undef, {results => 10, sort => 'released', reverse => 1, unreleased => 0, what => 'platforms'}); + my $justrel = $self->filFetchDB(release => undef, undef, {results => 10, sort => 'released', reverse => 1, released => 1, what => 'platforms'}); ul; for (@$justrel) { li; -- cgit v1.2.3 From 6634703985f6f3a690955200e45fb7f42a5ac5a9 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Fri, 7 Jan 2011 21:05:19 +0100 Subject: Added 'released' release filter Just an alias for the correct date_before or date_after filter. Allows bookmarking 'just released' or 'to be released' listings since the URL doesn't change now. Same for saved filters - it's now possible to permanently exclude future releases without having to change the filter each day. --- lib/VNDB/Handler/Misc.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index fb566f19..a30f10a4 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -144,7 +144,7 @@ sub homepage { # Upcoming releases td; h1; - a href => strftime('/r?fil=date_after-%Y%m%d;o=a;s=released', gmtime), mt '_home_upcoming'; + a href => '/r?fil=released-0;o=a;s=released', mt '_home_upcoming'; end; my $upcoming = $self->filFetchDB(release => undef, undef, {results => 10, released => 0, what => 'platforms'}); ul; @@ -164,7 +164,7 @@ sub homepage { # Just released td; h1; - a href => strftime('/r?fil=date_before-%Y%m%d;o=d;s=released', gmtime), mt '_home_justreleased'; + a href => '/r?fil=released-1;o=d;s=released', mt '_home_justreleased'; end; my $justrel = $self->filFetchDB(release => undef, undef, {results => 10, sort => 'released', reverse => 1, released => 1, what => 'platforms'}); ul; -- cgit v1.2.3 From e46f634c49aa4e174d6cc351b25a60d33c251b25 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Tue, 25 Jan 2011 16:45:45 +0100 Subject: 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. --- lib/VNDB/Handler/Misc.pm | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') 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 -- cgit v1.2.3 From 08d3dffe2dc6b955f2e10629079d5ae5c32f7183 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 10:11:52 +0100 Subject: TUWF: Replaced resHeader('Set-Cookie', ..) with resCookie() Way more convenient. This also fixes several bugs with the previous commit, since the cookie_prefix wasn't used for *all* cookies. Since it is now, the 'l10n' cookie now also respects the configured prefix, which means some people will have to set their default language again. Configuration changes: 'cookie_domain' option has been removed, the 'cookie_defaults' option of TUWF should now be used. --- lib/VNDB/Handler/Misc.pm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index 2e1e0e11..426de785 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -354,9 +354,7 @@ sub setlang { if($lang ne $self->{l10n}->language_tag()) { $self->authInfo->{id} ? $self->authPref(l10n => $lang eq $browser ? undef : $lang) - : $self->resHeader('Set-Cookie', sprintf 'l10n=%s; expires=%s; path=/; domain=%s', - $lang, $lang eq $browser ? 'Sat, 01-Jan-2000 00:00:00 GMT' : 'Sat, 01-Jan-2030 00:00:00 GMT', - $self->{cookie_domain}); + : $self->resCookie(l10n => $lang eq $browser ? undef : $lang, expires => time()+31536000); } } @@ -384,7 +382,7 @@ sub iemessage { (my $ref = $self->reqHeader('Referer') || '/') =~ s/^\Q$self->{url}//; $ref = '/' if $ref eq '/we-dont-like-ie'; $self->resRedirect($ref, 'temp'); - $self->resHeader('Set-Cookie', "ie-sucks=1; path=/; domain=$self->{cookie_domain}"); + $self->resCookie('ie_sucks' => 1); return; } -- cgit v1.2.3 From 78f364130abe51a4baeeef1e20a7292c3a1a28dd Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 10:43:19 +0100 Subject: TUWF: Use the uri_escape() provided by TUWF --- lib/VNDB/Handler/Misc.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index 426de785..d3791c81 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -4,7 +4,7 @@ package VNDB::Handler::Misc; use strict; use warnings; -use TUWF ':html', ':xml', 'xml_escape'; +use TUWF ':html', ':xml', 'xml_escape', 'uri_escape'; use VNDB::Func; use POSIX 'strftime'; -- cgit v1.2.3 From 2b1d425af0d2b27e383a0a4a18ec5d7c9b9b25ba Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 11:15:09 +0100 Subject: TUWF: Cleanup IE check code using pre_request_handler return value No more ugly hacks in my code thanks to TUWF! (a browser check in itself is already ugly enough for my tastes...) --- lib/VNDB/Handler/Misc.pm | 43 ------------------------------------------- 1 file changed, 43 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index d3791c81..b0911f6b 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -15,7 +15,6 @@ TUWF::register( qr{d([1-9]\d*)}, \&docpage, qr{setlang}, \&setlang, qr{nospam}, \&nospam, - qr{we-dont-like-ie}, \&iemessage, qr{xml/prefs\.xml}, \&prefs, qr{opensearch\.xml}, \&opensearch, @@ -375,48 +374,6 @@ sub nospam { } -sub iemessage { - my $self = shift; - - if($self->reqParam('i-still-want-access')) { - (my $ref = $self->reqHeader('Referer') || '/') =~ s/^\Q$self->{url}//; - $ref = '/' if $ref eq '/we-dont-like-ie'; - $self->resRedirect($ref, 'temp'); - $self->resCookie('ie_sucks' => 1); - return; - } - - html; - head; - title 'Your browser sucks'; - style type => 'text/css', - q|body { background: black }| - .q|div { position: absolute; left: 50%; top: 50%; width: 500px; margin-left: -250px; height: 180px; margin-top: -90px; background-color: #012; border: 1px solid #258; text-align: center; }| - .q|p { color: #ddd; margin: 10px; font: 9pt "Tahoma"; }| - .q|h1 { color: #258; font-size: 14pt; font-family: "Futura", "Century New Gothic", "Arial", Serif; font-weight: normal; margin: 10px 0 0 0; } | - .q|a { color: #fff }|; - end; - body; - div; - h1 'Oops, we were too lazy to support your browser!'; - p; - lit qq|We decided to stop supporting Internet Explorer 6 and 7, as it's a royal pain in | - .qq|the ass to make our site look good in a browser that doesn't want to cooperate with us.
| - .qq|You can try one of the following free alternatives: | - .qq|Firefox, | - .qq|Opera, | - .qq|Safari, or | - .qq|Chrome.

| - .qq|If you're really stubborn about using Internet Explorer, upgrading to version 8 will also work.

| - .qq|...and if you're mad, you can also choose to ignore this warning and | - .qq|open the site anyway.|; - end; - end; - end; - end; -} - - sub prefs { my $self = shift; return if !$self->authCheckCode; -- cgit v1.2.3 From 2e12ebc8ca793160cb0cd54c1fd0bfd42676c1ae Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 27 Jan 2011 12:32:37 +0100 Subject: TUWF: Added tag name to several end() calls Haven't found any bugs this way, yet. I doubt there'll be any problems, but it's a nice new feature that could help quite a bit. :-D --- lib/VNDB/Handler/Misc.pm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index b0911f6b..e7797259 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -60,7 +60,7 @@ sub homepage { end; } end; - end; + end 'div'; table class => 'mainbox threelayout'; Tr; @@ -82,7 +82,7 @@ sub homepage { end; } end; - end; + end 'td'; # Announcements td; @@ -100,7 +100,7 @@ sub homepage { lit bb2html $post->{msg}, 150; end; } - end; + end 'td'; # Recent posts td; @@ -120,9 +120,9 @@ sub homepage { end; } end; - end; + end 'td'; - end; + end 'tr'; Tr; # Random visual novels @@ -138,7 +138,7 @@ sub homepage { end; } end; - end; + end 'td'; # Upcoming releases td; @@ -158,7 +158,7 @@ sub homepage { end; } end; - end; + end 'td'; # Just released td; @@ -178,10 +178,10 @@ sub homepage { end; } end; - end; + end 'td'; - end; # /tr - end; # /table + end 'tr'; + end 'table'; $self->htmlFooter; } @@ -273,7 +273,7 @@ sub history { a $f->{r} ? (class => 'optselected') : (), href => $u->(r => 1), mt '_hist_filter_increl'; end; } - end; + end 'div'; $self->htmlBrowseHist($list, $f, $np, $u->()); $self->htmlFooter; @@ -407,7 +407,7 @@ sub opensearch { tag 'Url', type => 'application/opensearchdescription+xml', rel => 'self', template => $self->{url}.'/opensearch.xml', undef; tag 'Query', role => 'example', searchTerms => 'Tsukihime', undef; tag 'moz:SearchForm', $self->{url}.'/v/all'; - end; + end 'OpenSearchDescription'; } -- cgit v1.2.3 From a836bb89bf119ea739d60f99a8afd0b0a8a7500d Mon Sep 17 00:00:00 2001 From: Yorhel Date: Wed, 2 Feb 2011 17:03:26 +0100 Subject: Added /t/all - a listing of all recently replied to threads --- lib/VNDB/Handler/Misc.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index e7797259..df5621d8 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -105,7 +105,7 @@ sub homepage { # Recent posts td; h1; - a href => '/t', mt '_home_recentposts'; txt ' '; + a href => '/t/all', mt '_home_recentposts'; txt ' '; a href => '/feeds/posts.atom'; cssicon 'feed', mt '_atom_feed'; end; end; my $posts = $self->dbThreadGet(what => 'lastpost boardtitles', results => 10, sort => 'lastpost', reverse => 1, notusers => 1); -- cgit v1.2.3 From 09025338975b6bf63411e848419eee802da0c128 Mon Sep 17 00:00:00 2001 From: Yorhel Date: Thu, 3 Feb 2011 17:22:18 +0100 Subject: TUWF: Replaced reqParam() with reqGet() or reqPost() where applicable Cleaner this way. Also found two occurences of manually HTML-escaping text for textareas, which isn't necessary anymore. --- lib/VNDB/Handler/Misc.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/VNDB/Handler/Misc.pm') diff --git a/lib/VNDB/Handler/Misc.pm b/lib/VNDB/Handler/Misc.pm index df5621d8..062e3ae4 100644 --- a/lib/VNDB/Handler/Misc.pm +++ b/lib/VNDB/Handler/Misc.pm @@ -22,7 +22,7 @@ TUWF::register( qr{u([1-9]\d*)/tags}, sub { $_[0]->resRedirect("/g/links?u=$_[1]", 'perm') }, qr{(.*[^/]+)/+}, sub { $_[0]->resRedirect("/$_[1]", 'perm') }, qr{([pv])}, sub { $_[0]->resRedirect("/$_[1]/all", 'perm') }, - qr{v/search}, sub { $_[0]->resRedirect("/v/all?q=".uri_escape($_[0]->reqParam('q')||''), 'perm') }, + qr{v/search}, sub { $_[0]->resRedirect("/v/all?q=".uri_escape($_[0]->reqGet('q')||''), 'perm') }, qr{notes}, sub { $_[0]->resRedirect('/d8', 'perm') }, qr{faq}, sub { $_[0]->resRedirect('/d6', 'perm') }, qr{v([1-9]\d*)/(?:stats|scr)}, -- cgit v1.2.3