@@ -11,10 +11,20 @@ const MySQLConnector = require('../services/mysql.js');
1111
1212const db = new MySQLConnector ( config . db . scanner ) ;
1313const dbManual = new MySQLConnector ( config . db . manualdb ) ;
14- const dbOptions = config . db . scanner . useFor ;
1514
1615const masterfile = require ( '../../static/data/masterfile.json' ) ;
1716
17+ const dbSelection = ( category ) => {
18+ let dbSelection ;
19+ if ( config . db . scanner . useFor . length === 0 && config . db . manualdb . useFor . length === 0 ) {
20+ dbSelection = category === 'nest' || category === 'portal'
21+ ? dbManual : db ;
22+ } else {
23+ dbSelection = config . db . scanner . useFor . includes ( category )
24+ ? db : dbManual ;
25+ }
26+ return dbSelection ;
27+ } ;
1828
1929const getPokemon = async ( minLat , maxLat , minLon , maxLon , showPVP , showIV , updated , pokemonFilterExclude = null , pokemonFilterIV = null ) => {
2030 const pokemonLookup = { } ;
@@ -113,7 +123,7 @@ const getPokemon = async (minLat, maxLat, minLon, maxLon, showPVP, showIV, updat
113123 FROM pokemon
114124 WHERE expire_timestamp >= UNIX_TIMESTAMP() AND lat >= ? AND lat <= ? AND lon >= ? AND lon <= ? AND updated > ? ${ onlyVerifiedTimersSQL } ` ;
115125 const args = [ minLat , maxLat , minLon , maxLon , updated ] ;
116- const results = await ( dbOptions . includes ( 'pokemon' ) ? db : dbManual ) . query ( sql , args ) . catch ( err => {
126+ const results = await dbSelection ( 'pokemon' ) . query ( sql , args ) . catch ( err => {
117127 console . error ( 'Failed to execute query:' , sql , 'with arguments:' , args , '\r\nError:' , err ) ;
118128 } ) ;
119129 let pokemon = [ ] ;
@@ -386,7 +396,7 @@ const getGyms = async (minLat, maxLat, minLon, maxLon, updated = 0, showRaids =
386396 sql += ' AND raid_end_timestamp IS NOT NULL AND raid_end_timestamp >= UNIX_TIMESTAMP()' ;
387397 }
388398
389- const results = await ( dbOptions . includes ( 'gym' ) ? db : dbManual ) . query ( sql , args )
399+ const results = await dbSelection ( 'gym' ) . query ( sql , args )
390400 . catch ( err => {
391401 if ( err ) {
392402 console . error ( 'Failed to get gyms:' , err ) ;
@@ -661,7 +671,7 @@ const getPokestops = async (minLat, maxLat, minLon, maxLon, updated = 0, showPok
661671 WHERE lat >= ? AND lat <= ? AND lon >= ? AND lon <= ? AND updated > ? AND deleted = false AND
662672 (false ${ excludeTypeSQL } ${ excludePokemonSQL } ${ excludeEvolutionSQL } ${ excludeItemSQL } ${ excludePokestopSQL } ${ excludeInvasionSQL } )
663673 ` ;
664- const results = await ( dbOptions . includes ( 'pokestop' ) ? db : dbManual ) . query ( sql , args ) ;
674+ const results = await dbSelection ( 'pokestop' ) . query ( sql , args ) ;
665675 let pokestops = [ ] ;
666676 if ( results && results . length > 0 ) {
667677 for ( let i = 0 ; i < results . length ; i ++ ) {
@@ -774,7 +784,7 @@ const getSpawnpoints = async (minLat, maxLat, minLon, maxLon, updated, spawnpoin
774784 ` ;
775785
776786 let args = [ minLat , maxLat , minLon , maxLon , updated ] ;
777- const results = await ( dbOptions . includes ( 'spawnpoint' ) ? db : dbManual ) . query ( sql , args ) ;
787+ const results = await dbSelection ( 'spawnpoint' ) . query ( sql , args ) ;
778788 let spawnpoints = [ ] ;
779789 if ( results && results . length > 0 ) {
780790 for ( let i = 0 ; i < results . length ; i ++ ) {
@@ -824,7 +834,7 @@ const getDevices = async (deviceFilterExclude = null) => {
824834 INNER JOIN instance
825835 ON device.instance_name = instance.name ${ excludeDeviceSQL }
826836 ` ;
827- const results = await ( dbOptions . includes ( 'device' ) ? db : dbManual ) . query ( sql ) ;
837+ const results = await dbSelection ( 'device' ) . query ( sql ) ;
828838 let devices = [ ] ;
829839 if ( results && results . length > 0 ) {
830840 for ( let i = 0 ; i < results . length ; i ++ ) {
@@ -856,7 +866,7 @@ const getS2Cells = async (minLat, maxLat, minLon, maxLon, updated) => {
856866 WHERE center_lat >= ? AND center_lat <= ? AND center_lon >= ? AND center_lon <= ? AND updated > ?
857867 ` ;
858868 let args = [ minLatReal , maxLatReal , minLonReal , maxLonReal , updated ] ;
859- const results = await ( dbOptions . includes ( 's2cell' ) ? db : dbManual ) . query ( sql , args ) ;
869+ const results = await dbSelection ( 's2cell' ) . query ( sql , args ) ;
860870 let cells = [ ] ;
861871 if ( results && results . length > 0 ) {
862872 for ( let i = 0 ; i < results . length ; i ++ ) {
@@ -1024,7 +1034,7 @@ const getWeather = async (minLat, maxLat, minLon, maxLon, updated, weatherFilter
10241034 args . push ( id ) ;
10251035 }
10261036
1027- const results = await ( dbOptions . includes ( 'weather' ) ? db : dbManual ) . query ( sql , args ) ;
1037+ const results = await dbSelection ( 'weather' ) . query ( sql , args ) ;
10281038 let weather = [ ] ;
10291039 if ( results && results . length > 0 ) {
10301040 for ( let i = 0 ; i < results . length ; i ++ ) {
@@ -1106,7 +1116,7 @@ const getNests = async (minLat, maxLat, minLon, maxLon, nestFilterExclude = null
11061116 args . push ( excludedPokemon [ i ] ) ;
11071117 }
11081118
1109- const results = await ( dbOptions . includes ( 'nest' ) ? db : dbManual ) . query ( sql , args ) ;
1119+ const results = await dbSelection ( 'nest' ) . query ( sql , args ) ;
11101120 if ( results && results . length > 0 ) {
11111121 return results ;
11121122 }
@@ -1141,7 +1151,7 @@ const getPortals = async (minLat, maxLat, minLon, maxLon, portalFilterExclude =
11411151 WHERE lat >= ? AND lat <= ? AND lon >= ? AND lon <= ? ${ sqlExcludeCreate }
11421152 ` ;
11431153 const args = [ minLatReal , maxLatReal , minLonReal , maxLonReal ] ;
1144- const results = await ( dbOptions . includes ( 'portal' ) ? db : dbManual ) . query ( sql , args ) ;
1154+ const results = await dbSelection ( 'portal' ) . query ( sql , args ) ;
11451155 if ( results && results . length > 0 ) {
11461156 return results ;
11471157 }
@@ -1152,7 +1162,7 @@ const getPortals = async (minLat, maxLat, minLon, maxLon, portalFilterExclude =
11521162const getSearchData = async ( lat , lon , id , value , iconStyle ) => {
11531163 let sql = '' ;
11541164 let args = [ lat , lon , lat ] ;
1155- let useDb = true ;
1165+ let useDb ;
11561166 let conditions = [ ] ;
11571167 let sanitizedValue = sanitizer . sanitize ( value ) ;
11581168 sanitizedValue = sanitizedValue . toLowerCase ( ) ;
@@ -1226,7 +1236,7 @@ const getSearchData = async (lat, lon, id, value, iconStyle) => {
12261236 FROM pokestop
12271237 WHERE ${ conditions . join ( ' OR ' ) || 'FALSE' }
12281238 ` ;
1229- useDb = dbOptions . includes ( 'pokestop' ) ;
1239+ useDb = 'pokestop' ;
12301240 break ;
12311241 case 'search-nest' :
12321242 let ids = getPokemonIdsByName ( sanitizedValue ) ;
@@ -1249,7 +1259,7 @@ const getSearchData = async (lat, lon, id, value, iconStyle) => {
12491259 FROM nests
12501260 WHERE LOWER(name) LIKE '%${ sanitizedValue } %' ${ pokemonSQL }
12511261 ` ;
1252- useDb = dbOptions . includes ( 'nest' ) ;
1262+ useDb = 'nest' ;
12531263 break ;
12541264 case 'search-portal' :
12551265 sql = `
@@ -1258,7 +1268,7 @@ const getSearchData = async (lat, lon, id, value, iconStyle) => {
12581268 FROM ingress_portals
12591269 WHERE LOWER(name) LIKE '%${ sanitizedValue } %'
12601270 ` ;
1261- useDb = dbOptions . includes ( 'portal' ) ;
1271+ useDb = 'portal' ;
12621272 break ;
12631273 case 'search-gym' :
12641274 sql = `
@@ -1267,7 +1277,7 @@ const getSearchData = async (lat, lon, id, value, iconStyle) => {
12671277 FROM gym
12681278 WHERE LOWER(name) LIKE '%${ sanitizedValue } %'
12691279 ` ;
1270- useDb = dbOptions . includes ( 'gym' ) ;
1280+ useDb = 'gym' ;
12711281 break ;
12721282 case 'search-pokestop' :
12731283 sql = `
@@ -1276,13 +1286,11 @@ const getSearchData = async (lat, lon, id, value, iconStyle) => {
12761286 FROM pokestop
12771287 WHERE LOWER(name) LIKE '%${ sanitizedValue } %'
12781288 ` ;
1279- useDb = dbOptions . includes ( 'pokestop' ) ;
1289+ useDb = 'pokestop' ;
12801290 break ;
12811291 }
12821292 sql += ` ORDER BY distance LIMIT ${ config . searchMaxResults || 20 } ` ;
1283- let results = useDb
1284- ? await db . query ( sql , args )
1285- : await dbManual . query ( sql , args ) ;
1293+ let results = await dbSelection ( useDb ) . query ( sql , args ) ;
12861294 if ( results && results . length > 0 ) {
12871295 switch ( id ) {
12881296 case 'search-reward' :
@@ -1416,7 +1424,7 @@ const getAvailableRaidBosses = async () => {
14161424 AND raid_pokemon_id > 0
14171425 GROUP BY raid_pokemon_id, raid_pokemon_form
14181426 ` ;
1419- let result = await ( dbOptions . includes ( 'gym' ) ? db : dbManual ) . query ( sql ) ;
1427+ let result = await dbSelection ( 'gym' ) . query ( sql ) ;
14201428 if ( result ) {
14211429 return result . map ( x => {
14221430 return { id : x . raid_pokemon_id , form_id : x . raid_pokemon_form } ;
@@ -1427,19 +1435,19 @@ const getAvailableRaidBosses = async () => {
14271435
14281436const getAvailableQuests = async ( ) => {
14291437 let sql = 'SELECT quest_item_id AS id FROM pokestop WHERE quest_reward_type=2 GROUP BY quest_item_id' ;
1430- const itemResults = await ( dbOptions . includes ( 'pokestop' ) ? db : dbManual ) . query ( sql ) ;
1438+ const itemResults = await dbSelection ( 'pokestop' ) . query ( sql ) ;
14311439 sql = `SELECT DISTINCT
14321440 quest_pokemon_id AS id,
14331441 json_extract(json_extract(quest_rewards, '$[*].info.form_id'), '$[0]') AS form
14341442 FROM pokestop WHERE quest_reward_type=7` ;
1435- const pokemonResults = await ( dbOptions . includes ( 'pokestop' ) ? db : dbManual ) . query ( sql ) ;
1443+ const pokemonResults = await dbSelection ( 'pokestop' ) . query ( sql ) ;
14361444 sql = `
14371445 SELECT
14381446 DISTINCT json_extract(json_extract(quest_rewards, "$[*].info.pokemon_id"), "$[0]") AS id
14391447 FROM pokestop
14401448 WHERE quest_reward_type = 12
14411449 ` ;
1442- const evoResults = await ( dbOptions . includes ( 'pokestop' ) ? db : dbManual ) . query ( sql ) ;
1450+ const evoResults = await dbSelection ( 'pokestop' ) . query ( sql ) ;
14431451 return {
14441452 pokemon : pokemonResults ,
14451453 items : itemResults . map ( x => x . id ) ,
@@ -1453,7 +1461,7 @@ const getAvailableNestPokemon = async () => {
14531461 FROM nests
14541462 GROUP BY pokemon_id
14551463 ` ;
1456- let result = await ( dbOptions . includes ( 'nest' ) ? db : dbManual ) . query ( sql ) ;
1464+ let result = await dbSelection ( 'nest' ) . query ( sql ) ;
14571465 if ( result ) {
14581466 return result . map ( x => x . pokemon_id ) ;
14591467 }
0 commit comments