Age | Commit message (Collapse) | Author | Files | Lines |
|
-- Updated SQL files to reflect column type change.
-- Subroutine dbSessionAdd rewritten to accept an expiration
timestap as an optional third argument.
|
|
-- Deleting a user now deletes all sessions too.
-- Changing a user password now deletes all stored
sessions for that user.
|
|
|
|
Everything now uses Async SQL access, and doesn't rely on
POE::Component::Cron anymore.
I removed a few maintenance functions that weren't needed. Warning for
unkanime is already done by Multi::Anime, and integrity checking should
really be done in PgSQL.
The tag<->vn cache is now also regenerated daily rather than hourly.
|
|
|
|
-- Changed the way cookie data is handled and removed the need for Crypt::Lite
-- Removed "cookie_key" configuration setting for Crypt::Lite
|
|
This commit is tested to work.
|
|
new auth system.
-- Modified all database insertion and edit subroutines to be able to work with the new 'salt' column.
-- Modified all subroutines dealing with password manipulation to use authPreparePass
to encrypt passwords and generate salts.
|
|
-- Removed _authGenerateSalt in favor of a one-liner in authPreparePassword.
-- Fixed a self-inflicted "WTF" mistake in authInit caused by a stray paste.
|
|
-- Changed the way cookies are handled to a database-backed system
-- Changed the password hashing algorithm used
-- Introduced a dual-salt method for increasing password encryption strength
|
|
-- Removed "ON UPDATE" from sessions.uid column FK
-- Fixed dbSessionCheck to work as described
-- Merged DB/Sessions.pm into DB/Users.pm
|
|
Added a new DB library for handling sessions.
New update SQL file for database changes.
Added a line to the global config file to set a global salt. It is separate
from the cookie_key because it is much more important that it not be changed.
|
|
This is more of a test of the new git environment than anything else.
|
|
This isn't really necessary when shutting down the entire process, but it
is for the individual session to shut down. This will make it possible to
load/unload/reload Multi modules on demand without restarting the process.
|
|
This finishes the new relation graph generator, as it'll now regenerate
graphs as soon as is needed.
This obsletes the VNDB::Util::Misc::vnCacheUpdate() function, this
functionality is provided by triggers within PostgreSQL.
The update_vncache(0) procedure is now significantly slower due to the
trigger on the vn table. It'd be a good idea to rewrite this procedure
by using triggers and conditional updates, to drastically lower the number
of rows that need to be updated.
|
|
Not that the output makes much sense now, but at least it's (mostly)
correct.
|
|
It should be a bit more efficient and non-blocking. Also a lot less
verbose with logging.
|
|
Before this edit, the options part of the DSN was incorrect, resulting
in DBD::Pg ignoring the pg_enable_utf8 flag.
|
|
Only allowing the deferred state on a select few foreign keys would
detect problems in an earlier stage (rather than waiting for a commit to
happen), and guarantees that some things are inserted before others,
which in turn eases the writing of trigger functions.
|
|
|
|
This finished the rewrite of Multi::Image and everything surrounding it.
|
|
There were only two states, processed and unprocessed, so simply
using a boolean column with correct naming is more clarifying.
|
|
Yay! Another weird shared-memory-command optimized away. And the image
resizer reacts a lot faster now. Noticably, even.
|
|
Decided to remove the Image::MetaData::JPEG dependency as well, as the
Image::Magick::Thumbnail function removes a lot of unecessary
information, profiles and other data as well.
|
|
The notify is called from a trigger function, which is called on any
UPDATE or INSERT INTO query of which the lastfetch column is NULL.
This guarantees that anime info in the DB will always be updated, no
matter how its inserted.
|
|
No shared memory! Asynchronous SQL! yay!
|
|
This is a lot less error-prone than doing it from Perl.
<3 PostgreSQL
|
|
Removed most NOT NULL constraints, and converted lastfetch to a
timestamp data type.
The site has been updated to handle this, but Multi::Anime won't work.
|
|
This should've taken me less than an hour, but unfortunately it took a
bit longer because I found a rather hard-to-fix bug in PoCo::Pg.
Be sure to update to the latest POE::Component::Pg.
Also, this change removes the DateTime dependency. Its functionality
could be replaced with the strftime() found in POSIX (which every Perl
has)
|
|
These events will be signalled to Multi's modules as a 'shutdown'
signal.
|
|
Started on multi.pl and Multi::Core, the main differences:
- Uses POE::Component::Pg now (get it from http://g.blicky.net/poco-pg.git/)
- Doesn't use shared memory anymore
- No 'commands' anymore, every session has to handle its own events
(communication goes either through POE itself, or the PostgreSQL DB)
- No weird Cron stuff anymore
All other Multi modules will have to be updated/rewritten to reflect
these changes. None of them will work at the moment.
|
|
|
|
Related #vndb discussion:
<ImmLff> Yorhel: some minor interface suggestions - in release entry
swap the order of "copy" and "edit" buttons, so edit would be near
"rxxx" button as it was earlier; move "posts" tab near the
"discussions" tab(probably between discussions and history), so
discussion related tabs would be near each other
<ImmLff> at least it looks logical to me and definitely won't harm
<Yorhel> oh, I haven't really put any thought into the order of the tabs
<Yorhel> so your suggestions sounds good :)
<Yorhel> although, I'll place the posts tab after wishlist, to be
consistent with the other DB entries
|
|
|
|
|
|
|
|
The new output compression and SQL quoting functions haven't been
thouroughly tested yet, so I guess VNDB would make a nice testing
ground.
|
|
|
|
|
|
This adds a small performance penalty, but should make it a lot easier
for people to notice that someone is asking for his/her attention.
Ideally, this count would be the number of *unread* *posts*, rather than
*total* number of *threads*, but we don't store read the state (yet).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TODO:
- spoiler settings?
- auto-complete tag names
- exclude filter
- Improved UI? current location isn't very intuitive
- Improve previous tag browser to make use of the VN search?
|
|
Because many people still link to things like /v/all?q=English. Platform
searches are less common, so I doubt many people care about URL
compatibility for that,
|
|
That URL is so extremely old that I doubt anyone still links to it.
|
|
That hack has been obsoleted now they aren't used in the VN search box
anymore.
|