summaryrefslogtreecommitdiff
path: root/lib/Multi
AgeCommit message (Collapse)AuthorFilesLines
2018-11-02Change Multi to use separate setting for db_login and to use UNIX socket for ↵alto1-4/+1
Postgres Update README with basic information on Multi (cherry picked from commit 01188a82ab736a8975c73ac5ec12621426bf6bf2)
2018-10-02DB: Convert resolution into an enumYorhel1-1/+1
Been wanting to do this for a long time - using an integer index into an array that changes once in a while is way too fragile. Doubly so when said indices are also used in filters and URLs that can't be updated every time a new resolution is added.
2018-06-13Multi::API: Add "get characters instances"Yorhel1-1/+17
2018-05-24Multi::APIDump: Fix boolifycation of "meta" in tags & traits dumpsYorhel1-2/+2
https://vndb.org/t2520.259
2018-05-12API: Make username in login command case-insensitiveYorhel1-0/+2
https://vndb.org/t3599.201
2018-02-08Store d+ pages in the DB as versioned entries + use markdownYorhel2-25/+11
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
2018-01-06Rewrite bb2html() to be more flexibleYorhel1-1/+1
This is based on the API that I described in https://vndb.org/t5564.12 It's mostly bug-compatible with the old bb2html(), main differences: - <br /> -> <br> for no reason - Doesn't sporadically add a wrong </div> - $rmwhitespace now also after [/code] Most of the test cases were contributed by flan <flan@flande.re>
2017-12-31Multi::Maintenance: Update cron timingsYorhel1-4/+4
The database has grown and we're on SSDs now, so it's good to revisit these timings and see what needs optimizing, if anything.
2017-08-14API: Some additions to the "get *list" commandsYorhel1-6/+16
2017-06-21API: Various additionsYorhel1-2/+18
2017-05-25API: Add some hidden checks to staff stuffYorhel1-4/+11
2017-05-22API: Add some flags to query staff/seiyuu dataYorhel1-0/+47
2017-04-28API: Made a start on "get staff" supportYorhel1-0/+75
2017-03-26Multi::RG: Fix inverse check for non-official relationsYorhel1-1/+1
2017-03-26Multi::RG: Remove unofficial relations from graph if #vns > 30Yorhel1-9/+27
This makes the relation graphs useful again for several large (mostly) independent graphs that are sometimes linked together by unofficial relations. e.g. https://vndb.org/t8985
2017-03-03API: Add traits filter to get characterYorhel1-0/+4
2017-02-20APIDump: Add votes2.gz with dates, update sizes in d14Yorhel1-1/+9
2017-02-20Multi::IRC: Whitelist c64 in id detectionYorhel1-1/+1
2017-01-29IRC: Remove eval commandYorhel1-9/+0
I never use it. And it's scary.
2017-01-25API: Fix Unicode password login + some messagesYorhel1-3/+3
2016-12-04API: Add username filter to "get user" + d11 updatesYorhel1-0/+5
2016-11-27SQL: Use separate role for Multi2.26Yorhel1-25/+24
2016-10-16Doc update + IRC bot language fixYorhel1-1/+1
2016-09-18Suppress silly Perl 5.22 warnings about extra sprintf argsYorhel1-0/+1
2016-09-11API: Add VN relations "official" fieldYorhel1-5/+2
2016-09-11Fix http->https in d14 + increase IRC quote spam intervalYorhel1-1/+1
2016-08-31API: Add simple "get user" commandYorhel1-4/+24
2016-07-31API: Support array mathing in "get character" vn filterYorhel1-0/+1
2016-06-19API: Add "tags" filter to "get vn" + increase throttle throttleYorhel1-4/+8
2016-06-12API: Increase some limits + set custom TCP keepalive valuesYorhel1-3/+15
2016-05-15API: Allow sorting 'get vn' on stats fieldsYorhel1-1/+4
2016-04-11API: Added "vns" flag and member to "get character"Yorhel1-0/+9
2016-01-29Multi::API: added 'screens' flag to 'get vn'Yorhel1-0/+18
2016-01-17Use Tie::IxHash for some global.pl listsYorhel1-6/+6
This removes the reliance on sort() to provide meaningful ordering (the keys aren't always good for ordering) and removes the 'order' hack used for (vn|prod)_relations.
2016-01-17L10N: Intern VN/producer relations + update relation graphsYorhel1-10/+13
Now that graphviz knows the actual strings, it has a better opportunity to create better graphs. (Most of them still look messy tho)
2016-01-16L10N: Intern languages/platforms/resolutions/media/ptype/rtype/vnlengthYorhel1-4/+4
2016-01-10Multi::IRC: Make sure we keep our nickYorhel1-0/+18
2016-01-10Multi::Anime: Regularly resolve the AniDB API DNSYorhel1-15/+26
The API IP address doesn't change often, but we don't want months of downtime when it does.
2015-12-29Multi::API: Add support for TLSYorhel1-8/+23
2015-11-26Multi::IRC: Fix auth bypass bug + make !quote admin-onlyYorhel1-2/+2
2015-11-01Switch to HTML5 doctype + s/acronym/abbr/ + s/&nbsp;/&#xa0;/eYorhel1-5/+3
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.
2015-11-01Removed support for sha256-hashed passwordsYorhel1-5/+1
They had to be deleted from the database at some point, otherwise we still have thousands of easily-cracked password hashes in the database. Note that I could have opted to use scrypt on top of the sha256 hashes so the passwords would remain secure without needing to reset everything, but doing that after one year of switching to scrypt is likely not worth it. Everyone who still actively uses his account has already been converted to scrypt, everyone else should just reset their password whevener they decide to come back.
2015-10-25Multi::Anime: Avoid dead state when trying to fetch anime infoYorhel1-2/+2
Turns out the anime data hasn't been updated in a few months. Oops.
2015-10-21SQL: Fix Multi to use the new DB schemaYorhel5-163/+145
That should be the last thing to convert to the new schema.
2015-10-12Notifications: Allow max 500 notifies per user + add SQL index on uidYorhel1-0/+2
Turns out that fetching whether or not you have unread notifications (done on every pageview if you're logged in) was pretty slow. The index speeds up both that query and the "my notifications" view. The extra purge for old notifications for users with more than 500 notifications ensures that the index stays effective for the unread notifications count. Otherwise it'll have to read half of the notifications table anyway to check the 'unread' filter.
2015-09-08Multi::API: Set keepalive on sockets to detect dead TCP connectionsYorhel1-0/+1
Hopefully prevents issues like https://vndb.org/t3599.53
2015-07-21Multi::API: Support IPv6Yorhel1-1/+5
This was more trivial than I had expected. I already took ipv6 into account when rewriting the API for AnyEvent (including the use of norm_ip()), so that part was fine. The only part I had to fix was the listening socket, and I had to ensure that the $c->{ip} was correct. The first was easy, and the latter was properly handled by AnyEvent automatically. Looks like AnyEvent automatically 'unpacks' IPv4-mapped IPv6 addresses, so I didn't have to deal with that myself.
2015-07-20Multi::API: Throttle "throttled" error repliesYorhel1-3/+13
This is to save system resources when a misbehaving client keeps sending commands while it's being throttled. It also protects against trivial DoS attacks.
2015-07-18Multi::Maintenance: Fix bug in calculating timer for monthly cronYorhel1-1/+1
AE::timer accepts a time interval as argument, not a complete timestamp. So the monthly cron job hasn't run in a while...
2015-06-21Multi::IRC: Increase delay between random quotesYorhel1-1/+1