Skip to content

Commit 8aa97ca

Browse files
committed
fix: more ai slop
1 parent 57f6845 commit 8aa97ca

File tree

8 files changed

+125
-79
lines changed

8 files changed

+125
-79
lines changed

server/src/models/Gym.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const config = require('@rm/config')
99
const { getAreaSql } = require('../utils/getAreaSql')
1010
const { state } = require('../services/state')
1111

12-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
12+
const { applyManualIdFilter } = require('../utils/manualFilter')
1313

1414
const coreFields = [
1515
'id',
@@ -136,9 +136,13 @@ class Gym extends Model {
136136
const latCol = isMad ? 'latitude' : 'lat'
137137
const lonCol = isMad ? 'longitude' : 'lon'
138138
const idCol = isMad ? 'gym.gym_id' : 'id'
139-
const manualIds = parseManualIds(onlyManualId)
139+
const manualId =
140+
typeof onlyManualId === 'string' || typeof onlyManualId === 'number'
141+
? onlyManualId
142+
: null
143+
140144
applyManualIdFilter(query, {
141-
manualIds,
145+
manualId,
142146
latColumn: latCol,
143147
lonColumn: lonCol,
144148
idColumn: idCol,

server/src/models/Nest.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ const config = require('@rm/config')
55

66
const { state } = require('../services/state')
77
const { getAreaSql } = require('../utils/getAreaSql')
8-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
8+
const { applyManualIdFilter } = require('../utils/manualFilter')
99

1010
/** @typedef {Nest & Partial<import("@rm/types").Nest>} FullNest */
1111

@@ -28,10 +28,14 @@ class Nest extends Model {
2828
static async getAll(perms, args, { polygon }) {
2929
const { areaRestrictions } = perms
3030
const { minLat, minLon, maxLat, maxLon, filters } = args
31-
const manualIds = parseManualIds(filters.onlyManualId)
31+
const manualId =
32+
typeof filters.onlyManualId === 'string' ||
33+
typeof filters.onlyManualId === 'number'
34+
? filters.onlyManualId
35+
: null
3236
const query = this.query().select(['*', 'nest_id AS id'])
3337
applyManualIdFilter(query, {
34-
manualIds,
38+
manualId,
3539
latColumn: 'lat',
3640
lonColumn: 'lon',
3741
idColumn: 'nest_id',

server/src/models/Pokemon.js

Lines changed: 59 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const config = require('@rm/config')
1414
const { getAreaSql } = require('../utils/getAreaSql')
1515
const { filterRTree } = require('../utils/filterRTree')
1616
const { fetchJson } = require('../utils/fetchJson')
17-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
17+
const { applyManualIdFilter } = require('../utils/manualFilter')
1818
const {
1919
IV_CALC,
2020
LEVEL_CALC,
@@ -131,7 +131,6 @@ class Pokemon extends Model {
131131
const { onlyIvOr, onlyHundoIv, onlyZeroIv, onlyAreas = [] } = args.filters
132132
const { hasSize, hasHeight, isMad, mem, secret, httpAuth, pvpV2 } = ctx
133133
const { filterMap, globalFilter } = this.getFilters(perms, args, ctx)
134-
const manualIds = parseManualIds(args.filters.onlyManualId)
135134

136135
let queryPvp = config
137136
.getSafe('api.pvp.leagues')
@@ -148,8 +147,16 @@ class Pokemon extends Model {
148147
if (!noPokemonSelect) return []
149148
}
150149

150+
const manualIdRaw =
151+
typeof args.filters.onlyManualId === 'string' ||
152+
typeof args.filters.onlyManualId === 'number'
153+
? args.filters.onlyManualId
154+
: null
155+
151156
const query = this.query()
152157

158+
let manualId = null
159+
153160
const pokemonIds = []
154161
const pokemonForms = []
155162
Object.values(filterMap).forEach((filter) => {
@@ -176,8 +183,8 @@ class Pokemon extends Model {
176183
'>=',
177184
isMad ? this.knex().fn.now() : ts,
178185
)
179-
applyManualIdFilter(query, {
180-
manualIds,
186+
manualId = applyManualIdFilter(query, {
187+
manualId: manualIdRaw,
181188
latColumn: isMad ? 'pokemon.latitude' : 'lat',
182189
lonColumn: isMad ? 'pokemon.longitude' : 'lon',
183190
idColumn: isMad ? 'pokemon.encounter_id' : 'id',
@@ -242,13 +249,15 @@ class Pokemon extends Model {
242249
if (onlyHundoIv && ivs) {
243250
ivOr.orWhere(isMad ? raw(IV_CALC) : 'iv', 100)
244251
}
245-
if (manualIds.length) {
246-
ivOr.orWhereIn(isMad ? 'pokemon.encounter_id' : 'id', manualIds)
252+
if (manualId !== null) {
253+
ivOr.orWhereIn(isMad ? 'pokemon.encounter_id' : 'id', [manualId])
247254
}
248255
})
249256
if (!getAreaSql(query, areaRestrictions, onlyAreas, isMad, 'pokemon')) {
250257
return []
251258
}
259+
} else {
260+
manualId = manualIdRaw
252261
}
253262

254263
const filters = mem
@@ -301,27 +310,23 @@ class Pokemon extends Model {
301310
httpAuth,
302311
)
303312

304-
if (mem && manualIds.length) {
313+
if (mem && manualId !== null) {
305314
const loadedIds = Array.isArray(results)
306315
? new Set(results.map((pkmn) => `${pkmn.id}`))
307316
: new Set()
308-
const missingManuals = manualIds.filter((id) => !loadedIds.has(`${id}`))
309-
if (missingManuals.length) {
310-
const manualResults = await Promise.all(
311-
missingManuals.map((id) =>
312-
this.evalQuery(
313-
`${mem}/api/pokemon/id/${id}`,
314-
null,
315-
'GET',
316-
secret,
317-
httpAuth,
318-
).catch(() => null),
319-
),
320-
)
321-
const validManuals = manualResults.filter(Boolean)
322-
results = Array.isArray(results)
323-
? [...results, ...validManuals]
324-
: validManuals
317+
if (!loadedIds.has(`${manualId}`)) {
318+
const manualResult = await this.evalQuery(
319+
`${mem}/api/pokemon/id/${manualId}`,
320+
null,
321+
'GET',
322+
secret,
323+
httpAuth,
324+
).catch(() => null)
325+
if (manualResult) {
326+
results = Array.isArray(results)
327+
? [...results, manualResult]
328+
: [manualResult]
329+
}
325330
}
326331
}
327332

@@ -368,7 +373,7 @@ class Pokemon extends Model {
368373
isMad ? this.knex().fn.now() : ts,
369374
)
370375
applyManualIdFilter(pvpQuery, {
371-
manualIds,
376+
manualId,
372377
latColumn: isMad ? 'pokemon.latitude' : 'lat',
373378
lonColumn: isMad ? 'pokemon.longitude' : 'lon',
374379
idColumn: isMad ? 'pokemon.encounter_id' : 'id',
@@ -682,6 +687,11 @@ class Pokemon extends Model {
682687
const { isMad, hasSize, hasHeight, mem, secret, httpAuth } = ctx
683688
const ts = Math.floor(Date.now() / 1000)
684689
const { filterMap, globalFilter } = this.getFilters(perms, args, ctx)
690+
const manualIdRaw =
691+
typeof args.filters.onlyManualId === 'string' ||
692+
typeof args.filters.onlyManualId === 'number'
693+
? args.filters.onlyManualId
694+
: null
685695
const queryLimits = config.getSafe('api.queryLimits')
686696

687697
if (!perms.iv && !perms.pvp) {
@@ -721,7 +731,18 @@ class Pokemon extends Model {
721731
) {
722732
return []
723733
}
724-
734+
const manualId = applyManualIdFilter(query, {
735+
manualId: manualIdRaw,
736+
latColumn: isMad ? 'pokemon.latitude' : 'lat',
737+
lonColumn: isMad ? 'pokemon.longitude' : 'lon',
738+
idColumn: isMad ? 'pokemon.encounter_id' : 'id',
739+
bounds: {
740+
minLat: args.minLat,
741+
maxLat: args.maxLat,
742+
minLon: args.minLon,
743+
maxLon: args.maxLon,
744+
},
745+
})
725746
const filters = mem
726747
? Object.values(filterMap).flatMap((filter) => filter.buildApiFilter())
727748
: []
@@ -749,24 +770,18 @@ class Pokemon extends Model {
749770
httpAuth,
750771
)
751772

752-
if (mem && args.filters.onlyManualId) {
753-
const manualIds = parseManualIds(args.filters.onlyManualId)
754-
if (manualIds.length) {
755-
const loaded = new Set(results.map((pkmn) => `${pkmn.id}`))
756-
const missingManuals = manualIds.filter((id) => !loaded.has(`${id}`))
757-
if (missingManuals.length) {
758-
const manualResults = await Promise.all(
759-
missingManuals.map((id) =>
760-
this.evalQuery(
761-
`${mem}/api/pokemon/id/${id}`,
762-
null,
763-
'GET',
764-
secret,
765-
httpAuth,
766-
).catch(() => null),
767-
),
768-
)
769-
results = [...results, ...manualResults.filter((pkmn) => pkmn)]
773+
if (mem && manualId !== null) {
774+
const loaded = new Set(results.map((pkmn) => `${pkmn.id}`))
775+
if (!loaded.has(`${manualId}`)) {
776+
const manualResult = await this.evalQuery(
777+
`${mem}/api/pokemon/id/${manualId}`,
778+
null,
779+
'GET',
780+
secret,
781+
httpAuth,
782+
).catch(() => null)
783+
if (manualResult) {
784+
results = [...results, manualResult]
770785
}
771786
}
772787
}

server/src/models/Pokestop.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ const i18next = require('i18next')
66
const config = require('@rm/config')
77

88
const { getAreaSql } = require('../utils/getAreaSql')
9-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
9+
const { applyManualIdFilter } = require('../utils/manualFilter')
1010
const { getUserMidnight } = require('../utils/getClientTime')
1111
const { state } = require('../services/state')
1212

@@ -139,7 +139,11 @@ class Pokestop extends Model {
139139
const ts = Math.floor(Date.now() / 1000)
140140
const { queryLimits, stopValidDataLimit, hideOldPokestops } =
141141
config.getSafe('api')
142-
const manualIds = parseManualIds(args.filters.onlyManualId)
142+
const manualId =
143+
typeof args.filters.onlyManualId === 'string' ||
144+
typeof args.filters.onlyManualId === 'number'
145+
? args.filters.onlyManualId
146+
: null
143147

144148
const {
145149
lures: lurePerms,
@@ -187,7 +191,7 @@ class Pokestop extends Model {
187191
}
188192
Pokestop.joinIncident(query, hasMultiInvasions, isMad, multiInvasionMs)
189193
applyManualIdFilter(query, {
190-
manualIds,
194+
manualId,
191195
latColumn: isMad ? 'latitude' : 'lat',
192196
lonColumn: isMad ? 'longitude' : 'lon',
193197
idColumn: isMad ? 'pokestop.pokestop_id' : 'id',

server/src/models/Portal.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ const { Model } = require('objection')
33
const config = require('@rm/config')
44

55
const { getAreaSql } = require('../utils/getAreaSql')
6-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
6+
const { applyManualIdFilter } = require('../utils/manualFilter')
77

88
class Portal extends Model {
99
static get tableName() {
@@ -29,10 +29,14 @@ class Portal extends Model {
2929
maxLat,
3030
maxLon,
3131
} = args
32-
const manualIds = parseManualIds(args.filters.onlyManualId)
32+
const manualId =
33+
typeof args.filters.onlyManualId === 'string' ||
34+
typeof args.filters.onlyManualId === 'number'
35+
? args.filters.onlyManualId
36+
: null
3337
const query = this.query()
3438
applyManualIdFilter(query, {
35-
manualIds,
39+
manualId,
3640
latColumn: 'lat',
3741
lonColumn: 'lon',
3842
idColumn: 'id',

server/src/models/Route.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const config = require('@rm/config')
44

55
const { getAreaSql } = require('../utils/getAreaSql')
66
const { getEpoch } = require('../utils/getClientTime')
7-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
7+
const { applyManualIdFilter } = require('../utils/manualFilter')
88

99
const GET_ALL_SELECT = /** @type {const} */ ([
1010
'id',
@@ -45,7 +45,11 @@ class Route extends Model {
4545
const ts =
4646
getEpoch() - config.getSafe('api.routeUpdateLimit') * 24 * 60 * 60
4747
const distanceInMeters = (onlyDistance || [0.5, 100]).map((x) => x * 1000)
48-
const manualIds = parseManualIds(args.filters.onlyManualId)
48+
const manualId =
49+
typeof args.filters.onlyManualId === 'string' ||
50+
typeof args.filters.onlyManualId === 'number'
51+
? args.filters.onlyManualId
52+
: null
4953

5054
const startLatitude = isMad ? 'start_poi_latitude' : 'start_lat'
5155
const startLongitude = isMad ? 'start_poi_longitude' : 'start_lon'
@@ -58,7 +62,7 @@ class Route extends Model {
5862
isMad ? GET_MAD_ALL_SELECT : GET_ALL_SELECT,
5963
)
6064
applyManualIdFilter(query, {
61-
manualIds,
65+
manualId,
6266
latColumn: startLatitude,
6367
lonColumn: startLongitude,
6468
idColumn,
@@ -84,7 +88,7 @@ class Route extends Model {
8488
.union((qb) => {
8589
qb.select(isMad ? GET_MAD_ALL_SELECT : GET_ALL_SELECT)
8690
applyManualIdFilter(qb, {
87-
manualIds,
91+
manualId,
8892
latColumn: endLatitude,
8993
lonColumn: endLongitude,
9094
idColumn,

server/src/models/Station.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const config = require('@rm/config')
44
const i18next = require('i18next')
55

66
const { getAreaSql } = require('../utils/getAreaSql')
7-
const { applyManualIdFilter, parseManualIds } = require('../utils/manualFilter')
7+
const { applyManualIdFilter } = require('../utils/manualFilter')
88
const { getEpoch } = require('../utils/getClientTime')
99
const { state } = require('../services/state')
1010

@@ -31,7 +31,11 @@ class Station extends Model {
3131
onlyGmaxStationed,
3232
} = args.filters
3333
const ts = getEpoch()
34-
const manualIds = parseManualIds(args.filters.onlyManualId)
34+
const manualId =
35+
typeof args.filters.onlyManualId === 'string' ||
36+
typeof args.filters.onlyManualId === 'number'
37+
? args.filters.onlyManualId
38+
: null
3539

3640
const select = [
3741
'id',
@@ -45,7 +49,7 @@ class Station extends Model {
4549

4650
const query = this.query()
4751
applyManualIdFilter(query, {
48-
manualIds,
52+
manualId,
4953
latColumn: 'lat',
5054
lonColumn: 'lon',
5155
idColumn: 'id',

0 commit comments

Comments
 (0)