Age | Commit message (Collapse) | Author | Files | Lines |
|
Apparently closing STDOUT/STDIN/STDERR will exit the process... so open
/dev/null instead. (As done in the perlipc manual - of course doesn't
work on windows, but nobody cares about that)
|
|
The location of the PID file isn't configurable, so this change
currently limits running only one Multi for each VNDB installation.
(Not that you'd need more...)
|
|
Introduced in 69d8738688ebb72707fe377b7ce7c717407aea96
|
|
The changes.rev column should be correct in the first place, and in the
(most likely) impossible condition that it isn't, the update_rev()
function is more likely to make things worse.
|
|
Better aligned, easier to read.
|
|
TODO:
- document the relations
- emit a relgraph notify when needed
|
|
As the same table can easily be used to store producer relation graphs
as well.
|
|
|
|
This is a very important column in a very important table, I hope I
didn't forget to update a piece of code somewhere...
|
|
Again, two separate but related things.
|
|
|
|
Interface consistency
|
|
OK, these are actually two separate things: to make the relations
translatable they didn't necessarily have to be stored as enum, and I
could've also converted them to enum but not have it translatable.
Nevertheless, it was easier to just do both at the same time.
Also note how I used the string "$____vnrel_<rel>____$" as identifier in
the relation graphs while I could have used something a lot shorter
("$<rel>$" would have been fine, for example). This is done so that
graphviz can make some space for those relations - the long identifier
gives a slightly more realistic representation of the actual length of
the relation titles.
|
|
And updated some comments while I was at it
|
|
The graphs are now stored in the DB in SVG format, the static/rg/
directory can be removed (not used anymore).
SVG data is stored using the xml data type, so now I can say for
sure you'd need at least PostgreSQL 8.3.
This feature still needs some tweaking, though. Current state isn't
perfect.
|
|
|
|
|
|
- Don't report edits made by Multi
- Fixed a synchronisation issue in the double-notify detection
- Users in the 'masters' list has access to 'OP' commands as well
(without needing +o)
- Doubled the quotes spam delay
|
|
This is how I should have done it in the first place. Don't use stupid
hacks if you know it's likely going to result in strange behaviour...
|
|
|
|
timestamptz data types have sub-second precision, but we use time() with
second precision for comparing, resulting in false positives. Using
Time::HiRes::time should give the same precision as PostgreSQL's NOW(),
so things should be working fine now.
It's still a bad idea to use Multi's time instead of a PostgreSQL value
for comparing... should really think of a clean way of fixing this.
|
|
Everyone had access to the commands with the |8 flag enabled. Oops!
|
|
Requires the new PoCo-Pg
|
|
|
|
That was the last one. I hope I haven't forgotten to update anything.
|
|
|
|
Everything still seems to be working fine so far.
|
|
|
|
|
|
|
|
'idle' is currently defined as 60+rand(300) minutes, so it'll only
occur in *very* idle channels... might be an idea to lower these numbers
later on.
|
|
|
|
|
|
Works as it did before. But maybe it's time to add a small throttle to
prevent misuse?
|
|
Tiny bug introduced in a recent commit.
|
|
And force this for some commands. Calling !die in a channel with
multiple bots isn't a good idea, after all...
|
|
|
|
Nothing beats seeing a:
<Multi> [t2.7] Reply to Alias: added Japanese title Posted in db,
u:retardsrox, u:nacchi, v:Natsu, Semi, Shoujo, v:Dal-eu Jajang-ga
By applehq @ http://beta.vndb.org/t2.7
|
|
Most of the functionality of the old IRC bot should be present again,
with notifications and the !vn command being the only exceptions. I'll
reimplement those later.
The configuration has changed a little:
- 'user' variable renamed to 'nick'
- 'channel' renamed to 'channels' (it's an arrayref, after all)
- the 'masters' variable now uses IRC masks rather than nicks
This new version also has three user levels rather than two: regular
users, OPs in the first channel, and 'masters'. This way #vndb OPs can
get control over some useful functions as well. The 'master' functions
are far too powerful and as such should only be used by the person
operating the bot.
|
|
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.
|
|
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.
|
|
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.
|
|
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!
|