summaryrefslogtreecommitdiff
path: root/lib/Multi/API.pm
diff options
context:
space:
mode:
authorYorhel <git@yorhel.nl>2019-09-12 17:07:46 +0200
committerYorhel <git@yorhel.nl>2019-09-12 17:54:50 +0200
commitadc906096f4644788b970e5ed936ca3e70bde2e8 (patch)
tree8d2aacf12b008820a5a331e648f915a67987cdfb /lib/Multi/API.pm
parent752bc1724968a1f15b17ba9e607f2163997b4efa (diff)
Add VNDB::Config module and unified conf.pl config file
This gets rid of global.pl, config.pl and config3.pl and uses the cleaner config3.pl format for the config file. The config is easily accessible from anywhere by importing the new VNDB::Config module; The global $VNDB::S,O,M,ROOT variables have been removed. Sorry for all the churn...
Diffstat (limited to 'lib/Multi/API.pm')
-rw-r--r--lib/Multi/API.pm17
1 files changed, 9 insertions, 8 deletions
diff --git a/lib/Multi/API.pm b/lib/Multi/API.pm
index a93cd3ff..3f05b6c8 100644
--- a/lib/Multi/API.pm
+++ b/lib/Multi/API.pm
@@ -17,6 +17,7 @@ use Crypt::URandom 'urandom';
use Crypt::ScryptKDF 'scrypt_raw';;
use VNDBUtil 'normalize_query', 'norm_ip';
use VNDB::Types;
+use VNDB::Config;
use JSON::XS;
use PWLookup;
@@ -32,7 +33,7 @@ sub FALSE () { JSON::XS::false }
my %O = (
port => 19534,
tls_port => 19535, # Only used when tls_options is set
- logfile => "$VNDB::M{log_dir}/api.log",
+ logfile => config->{Multi}{Core}{log_dir}.'/api.log',
conn_per_ip => 10,
max_results => 25, # For get vn/release/producer/character
max_results_lists => 100, # For get votelist/vnlist/wishlist
@@ -277,7 +278,7 @@ sub login {
} else {
$arg->{username} = lc $arg->{username};
return cerr $c, auth => "Password too weak, please log in on the site and change your password"
- if $VNDB::S{password_db} && PWLookup::lookup($VNDB::S{password_db}, $arg->{password});
+ if config->{password_db} && PWLookup::lookup(config->{password_db}, $arg->{password});
}
login_auth($c, $arg);
@@ -291,7 +292,7 @@ sub login_auth {
cpg $c, 'SELECT extract(\'epoch\' from timeout) FROM login_throttle WHERE ip = $1', [ norm_ip($c->{ip}) ], sub {
my $tm = $_[0]->nRows ? $_[0]->value(0,0) : AE::time;
return cerr $c, auth => "Too many failed login attempts"
- if $tm-AE::time() > $VNDB::S{login_throttle}[1];
+ if $tm-AE::time() > config->{login_throttle}[1];
# Fetch user info
cpg $c, 'SELECT id, encode(user_getscryptargs(id), \'hex\') FROM users WHERE username = $1', [ $arg->{username} ], sub {
@@ -311,7 +312,7 @@ sub login_verify {
my $token = urandom(20);
my($N, $r, $p, $salt) = unpack 'NCCa8', pack 'H*', $sargs;
- my $passwd = pack 'NCCa8a*', $N, $r, $p, $salt, scrypt_raw(encode_utf8($arg->{password}), $VNDB::S{scrypt_salt} . $salt, $N, $r, $p, 32);
+ my $passwd = pack 'NCCa8a*', $N, $r, $p, $salt, scrypt_raw(encode_utf8($arg->{password}), config->{scrypt_salt} . $salt, $N, $r, $p, 32);
cpg $c, 'SELECT user_login($1, decode($2, \'hex\'), decode($3, \'hex\'))', [ $uid, unpack('H*', $passwd), unpack('H*', $token) ], sub {
if($_[0]->nRows == 1 && ($_[0]->value(0,0)||'') =~ /t/) {
@@ -322,7 +323,7 @@ sub login_verify {
pg_cmd 'SELECT user_logout($1, decode($2, \'hex\'))', [ $uid, unpack('H*', $token) ];
cres $c, ['ok'], 'Successful login by %s (%s) using client "%s" ver. %s', $arg->{username}, $c->{uid}, $c->{client}, $c->{clientver};
} else {
- my @a = ( $tm + $VNDB::S{login_throttle}[0], norm_ip($c->{ip}) );
+ my @a = ( $tm + config->{login_throttle}[0], norm_ip($c->{ip}) );
pg_cmd 'UPDATE login_throttle SET timeout = to_timestamp($1) WHERE ip = $2', \@a;
pg_cmd 'INSERT INTO login_throttle (ip, timeout) SELECT $2, to_timestamp($1) WHERE NOT EXISTS(SELECT 1 FROM login_throttle WHERE ip = $2)', \@a;
cerr $c, auth => "Wrong password for user '$arg->{username}'";
@@ -425,7 +426,7 @@ my %GET_VN = (
encubed => delete($_[0]{l_encubed})||undef,
renai => delete($_[0]{l_renai}) ||undef
};
- $_[0]{image} = $_[0]{image} ? sprintf '%s/cv/%02d/%d.jpg', $VNDB::S{url_static}, $_[0]{image}%100, $_[0]{image} : undef;
+ $_[0]{image} = $_[0]{image} ? sprintf '%s/cv/%02d/%d.jpg', config->{url_static}, $_[0]{image}%100, $_[0]{image} : undef;
},
},
stats => {
@@ -492,7 +493,7 @@ my %GET_VN = (
$i->{screens} = [ grep $i->{id} == $_->{vid}, @$n ];
}
for (@$n) {
- $_->{image} = sprintf '%s/sf/%02d/%d.jpg', $VNDB::S{url_static}, $_->{image}%100, $_->{image};
+ $_->{image} = sprintf '%s/sf/%02d/%d.jpg', config->{url_static}, $_->{image}%100, $_->{image};
$_->{rid} *= 1;
$_->{nsfw} = $_->{nsfw} =~ /t/ ? TRUE : FALSE;
$_->{width} *= 1;
@@ -814,7 +815,7 @@ my %GET_CHARACTER = (
select => 'c.alias AS aliases, c.image, c."desc" AS description',
proc => sub {
$_[0]{aliases} ||= undef;
- $_[0]{image} = $_[0]{image} ? sprintf '%s/ch/%02d/%d.jpg', $VNDB::S{url_static}, $_[0]{image}%100, $_[0]{image} : undef;
+ $_[0]{image} = $_[0]{image} ? sprintf '%s/ch/%02d/%d.jpg', config->{url_static}, $_[0]{image}%100, $_[0]{image} : undef;
$_[0]{description} ||= undef;
},
},