Age | Commit message (Collapse) | Author | Files | Lines |
|
This touches a bunch of things:
- Adds a new first-class database entry type
- Removes the d+.+.+ BBCode link syntax, adds a new d+#+ and d+#+.+
link syntax (references have been updated where possible)
- Adds a new dependency on Text::MultiMarkdown
|
|
With some related edits in other parts of the code, mostly due to
interface changes to htmlRevision() and htmlFormError().
Trivial replacements were automated by a super awesome script.
|
|
|
|
While helpful, it's also rather dominant. We're not that desperate for
new contributes anymore.
|
|
I'd have preferred to stick with XHTML 1.0, but unfortunately browsers
won't allow you to use modern Javascript APIs with an older doctype.
Note that most pages don't actually validate correctly as HTML5, I'm
relying on browsers to be lenient.
In either case, I'd like VNDB to stay valid XML (XHTML5, then), and
luckily that shouldn't be a problem.
|
|
This basically makes VNDB browsable again, but editing entries is still
broken.
I split off the get-old-revision functionality from the db*Get() methods
into db*GetRev(). This split makes sense even with the old SQL schema:
db*Get() had to special-case some joins/filters when fetching an older
revision, and none of the other filters would work in that case. This
split does cause some code duplication in that all db*GetRev() methods
look very much alike, and that the columns they fetch is almost
identical to the db*Get() methods. Not sure yet how to avoid the
duplication elegantly.
I didn't do a whole lot of query optimization yet (most issues require
extra indices, I'll investigate later which indices will make a big
difference), but I did fix some low hanging fruit whenever I encountered
something.
I don't think I've worsened anything, performance-wise.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Using CSS3 selectors. This is a more elegant approach, and since browser
support for CSS3 selectors isn't as crap as it used to be I can finally
make use of them.
|
|
The interface to set a non-integer vote isn't very nice, but at least it
works. Or so I hope.
|
|
|
|
|
|
Algorithm::Diff::Fast suddenly disappeared for some reason...
|
|
- Removed 'hist' and 'mod', weren't used at all
- Merged 'del' and 'lock' into a single 'dbmod'
|
|
|
|
|
|
|
|
|
|
The Perl code and SQL-revisioning code only handles the name, original,
alias and desc fields at the moment. There is a basic /i+ and /i+.+ page
for testing, which should have all the functionality required for the
revisioning framework.
|
|
|
|
|
|
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
|
|
|
|
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.
|
|
In the users_prefs table, the default value should evaluate to 'false'
in Perl, so show_list had to be inverted to hide_list.
|
|
|
|
The new tag link browser has replaced the crappy old user-tags-browser.
|
|
|
|
Primary reason for this change is because Algorithm::Diff::Fast isn't
all that fast for character-level diffs. :-/
|
|
Algorithm::Diff::Fast can handle perl encoded UTF-8 perfectly fine, so
the encode and decode functions aren't necessary anymore.
|
|
This module is cleaner, faster and has less dependencies.
(didn't exist yet at the time I first implemented the revision diffs)
|
|
|
|
This is implemented by adding ihid (item hidden) and ilock (item
locked) columns to the changes table,
The (vn|release|producer).(hidden|locked) columns now work as a
cache, refering to the changes.(ihid|ilock) columns with
changes.id = (vn|release|producer).latest.
The cached columns are updated automatically each time a new revision is
inserted.
This is a pretty large change, bugs are quite likely.
|
|
|
|
|
|
The ORDER BY was previously specified using an 'order' argument, which
would then be directly inserted into the query. The new method is the
same as what I used for the public API: two 'sort' and 'reverse'
arguments. This should be less error-prone and more readable.
This changes quite a lot of code, so I hope I haven't forgotten to
update something along the way.
|
|
CommonHTML.pm was starting to get a bit large.
Also renamed htmlHistory to htmlBrowseHist while I was at it, to keep
consistency with the htmlBrowse functions.
|
|
|
|
With this method I managed to reuse the VN list table code for the lists
on both the VN browser and the tag pages. And optimized away the
dbTagVNs() function while I was at it (dbVNGet() is powerful enough)
|
|
I didn't expect c_popularity to be NULL when c_votecount > 0, but forgot that
this is indeed possible when the votes don't count in the popularity ranking
(because it's the only or lowest vote of the user).
|
|
Sorting from least to most popular VN make sense now, you won't have to
wade through those entries without any vote at all.
|
|
Was a good idea after all...
|
|
This adds about 100ms (sometimes more) to the page generation time of VN
pages... maybe I should cache the ratings after all.
|
|
TODO:
- document the relations
- emit a relgraph notify when needed
|
|
<@EchoMateria> for example I searched for 'Maika' in Visual Novels
<@EchoMateria> then remembered that it was a producer not a game and
clicked Producers instead
<@EchoMateria> can you set it so that entry in the search field would
stay and it would search for it in the producers instead?
|
|
This is a very important column in a very important table, I hope I
didn't forget to update a piece of code somewhere...
|