Skip to content

Commit ae45495

Browse files
committed
Merge branch 'develop' into better-multi-domain
2 parents 1851505 + 1c21c0c commit ae45495

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+1004
-324
lines changed

CHANGELOG.md

+44
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
# [1.30.0-develop.11](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.10...v1.30.0-develop.11) (2024-02-27)
2+
3+
4+
### Bug Fixes
5+
6+
* various text fixes ([6eb9c6a](https://github.com/WatWowMap/ReactMap/commit/6eb9c6aed1d0ba557220799560ec498fc6f7e6dc)), closes [#967](https://github.com/WatWowMap/ReactMap/issues/967)
7+
8+
# [1.30.0-develop.10](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.9...v1.30.0-develop.10) (2024-02-27)
9+
10+
11+
### Bug Fixes
12+
13+
* pokemon ui inconsistency ([0cb334c](https://github.com/WatWowMap/ReactMap/commit/0cb334c44748dbbe2a591cc5b61c466b7487f3bf))
14+
15+
# [1.30.0-develop.9](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.8...v1.30.0-develop.9) (2024-02-27)
16+
17+
18+
### Bug Fixes
19+
20+
* various small things ([ada7947](https://github.com/WatWowMap/ReactMap/commit/ada7947313300864da5a524c0233bb8c31d5c1bc))
21+
22+
# [1.30.0-develop.8](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.7...v1.30.0-develop.8) (2024-02-27)
23+
24+
25+
### Bug Fixes
26+
27+
* 0s in gym popup ([2d9bdc1](https://github.com/WatWowMap/ReactMap/commit/2d9bdc1665715d7d3dfa6bd3b6f05b9471b12abe))
28+
* map dependency checks ([85c992d](https://github.com/WatWowMap/ReactMap/commit/85c992dc499f0c25dff2ba00ec75e4bb20911bab))
29+
30+
# [1.30.0-develop.7](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.6...v1.30.0-develop.7) (2024-02-27)
31+
32+
33+
### Bug Fixes
34+
35+
* importing ([89b7fce](https://github.com/WatWowMap/ReactMap/commit/89b7fcebca0a58959ecc29418db4a75390072ffd))
36+
* less strict searching for `'` ([ca08a69](https://github.com/WatWowMap/ReactMap/commit/ca08a690fca54f90132b4688b5700532958b60f5))
37+
* Merge pull request [#963](https://github.com/WatWowMap/ReactMap/issues/963) from ReuschelCGN/translation ([cbc0160](https://github.com/WatWowMap/ReactMap/commit/cbc0160f6820a68fed04c9b7b57a287cfaf66f58))
38+
* safe 0 fallback ([45795a8](https://github.com/WatWowMap/ReactMap/commit/45795a80d114f7b638ff6a7a0d0438811dd86511))
39+
40+
41+
### Features
42+
43+
* data management page ([561c031](https://github.com/WatWowMap/ReactMap/commit/561c031e0f290d7c63e17b6a645e8b145cf2e4d1))
44+
145
# [1.30.0-develop.6](https://github.com/WatWowMap/ReactMap/compare/v1.30.0-develop.5...v1.30.0-develop.6) (2024-02-23)
246

347
### Bug Fixes

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "reactmap",
3-
"version": "1.30.0-develop.6",
3+
"version": "1.30.0-develop.11",
44
"private": true,
55
"description": "React based frontend map.",
66
"license": "MIT",

packages/config/.configref

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
24083
1+
24091

packages/locales/lib/human/en.json

+28-1
Original file line numberDiff line numberDiff line change
@@ -734,5 +734,32 @@
734734
"gender_filters_all": "Gender Applies to All",
735735
"and_caption": "Linked Together",
736736
"or_caption": "Filters Independently",
737-
"filter_help": "Filter Help"
737+
"filter_help": "Filter Help",
738+
"kilometers": "Kilometers",
739+
"miles": "Miles",
740+
"distance_unit": "Distance Unit",
741+
"data_management": "Data Management",
742+
"reset_or_manage_text": "You can either hard reset your filters or you can view the data management page which will allow you to reset individual categories.",
743+
"reset_audio": "Reset Audio",
744+
"reset_all": "Reset All",
745+
"reset_icons": "Reset Icons",
746+
"reset_position": "Reset Position",
747+
"reset_ui": "Reset UI",
748+
"reset_options": "Reset Options",
749+
"reset_menus": "Reset Menus",
750+
"reset_settings": "Reset Settings",
751+
"reset_pokemon": "Reset Pokémon",
752+
"reset_pokestops": "Reset PokéStops",
753+
"reset_gyms": "Reset Gyms",
754+
"reset_nests": "Reset Nests",
755+
"reset_portals": "Reset Portals",
756+
"reset_routes": "Reset Routes",
757+
"reset_scan_areas": "Reset Scan Areas",
758+
"reset_scan_cells": "Reset Scan Cells",
759+
"reset_devices": "Reset Devices",
760+
"reset_weather": "Reset Weather",
761+
"reset_s2cells": "Reset S2 Cells",
762+
"reset_spawnpoints": "Reset Spawnpoints",
763+
"reset_submission_cells": "Reset Submission Cells",
764+
"hisuian": "Hisuian"
738765
}

packages/masterfile/lib/index.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export interface MasterfileForm {
55
rarity?: string
66
isCostume?: boolean
77
category?: AdvCategories
8+
types?: number[]
89
}
910

1011
export interface MasterfilePokemon {

packages/types/lib/server.d.ts

+14-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import Pokestop = require('server/src/models/Pokestop')
2424
import { ModelReturn, OnlyType } from './utility'
2525
import { Profile } from 'passport-discord'
2626
import { User } from './models'
27+
import { Config } from '@rm/types'
2728

2829
export interface DbContext {
2930
isMad: boolean
@@ -102,7 +103,6 @@ export interface DbCheckClass {
102103
historical: Rarity
103104
questConditions: { [key: string]: string[] }
104105
rarityPercents: RarityPercents
105-
distanceUnit: 'km' | 'mi'
106106
reactMapDb: null | number
107107
filterContext: {
108108
Route: { maxDistance: number; maxDuration: number }
@@ -254,3 +254,16 @@ export type AdvCategories = 'pokemon' | 'gyms' | 'pokestops' | 'nests'
254254
export type UIObject = ReturnType<
255255
typeof import('server/src/services/ui/primary')
256256
>
257+
258+
export interface PokemonGlow
259+
extends Partial<Omit<Config['clientSideOptions']['pokemon'], 'glow'>> {
260+
glow: boolean
261+
Hundo?: string
262+
Nundo?: string
263+
'Top PVP Rank'?: string
264+
Multiple?: string
265+
}
266+
export interface ClientOptions
267+
extends Partial<Omit<Config['clientSideOptions'], 'pokemon'>> {
268+
pokemon: PokemonGlow
269+
}

server/src/configs/default.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@
237237
"permImageDir": "images/perms",
238238
"permArrayImages": false,
239239
"clientTimeoutMinutes": 30,
240-
"distanceUnit": "km",
240+
"distanceUnit": "kilometers",
241241
"enablePokemonPopupCoordsSelector": false,
242242
"enableGymPopupCoordsSelector": false,
243243
"enablePokestopPopupCoordsSelector": false,

server/src/models/Pokemon.js

+1-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
/* eslint-disable no-unused-vars */
21
/* eslint-disable no-restricted-syntax */
32
const { Model, raw, ref } = require('objection')
43
const i18next = require('i18next')
@@ -24,7 +23,6 @@ const {
2423
} = require('../services/filters/pokemon/constants')
2524
const PkmnFilter = require('../services/filters/pokemon/Backend')
2625

27-
const distanceUnit = config.getSafe('map.misc.distanceUnit')
2826
const searchResultsLimit = config.getSafe('api.searchResultsLimit')
2927
const queryLimits = config.getSafe('api.queryLimits')
3028
const queryDebug = config.getSafe('devOptions.queryDebug')
@@ -652,11 +650,7 @@ class Pokemon extends Model {
652650
point([poke.lon, poke.lat]),
653651
point([args.lon, args.lat]),
654652
{
655-
units:
656-
distanceUnit.toLowerCase() === 'km' ||
657-
distanceUnit.toLowerCase() === 'kilometers'
658-
? 'kilometers'
659-
: 'miles',
653+
units: 'meters',
660654
},
661655
).toFixed(2),
662656
}))

server/src/services/DbCheck.js

+3-6
Original file line numberDiff line numberDiff line change
@@ -107,21 +107,18 @@ module.exports = class DbCheck {
107107
)
108108
process.exit(0)
109109
}
110-
this.distanceUnit = config.getSafe('map.misc.distanceUnit')
111110
}
112111

113112
/**
114113
* @param {{ lat: number, lon: number }} args
115114
* @param {boolean} isMad
116115
* @returns {ReturnType<typeof raw>}
117116
*/
118-
getDistance(args, isMad) {
117+
static getDistance(args, isMad) {
119118
const radLat = args.lat * (Math.PI / 180)
120119
const radLon = args.lon * (Math.PI / 180)
121120
return raw(
122-
`ROUND(( ${
123-
this.distanceUnit === 'mi' ? '3959' : '6371'
124-
} * acos( cos( ${radLat} ) * cos( radians( ${
121+
`ROUND(( 6371000 * acos( cos( ${radLat} ) * cos( radians( ${
125122
isMad ? 'latitude' : 'lat'
126123
} ) ) * cos( radians( ${
127124
isMad ? 'longitude' : 'lon'
@@ -456,7 +453,7 @@ module.exports = class DbCheck {
456453
perms,
457454
args,
458455
source,
459-
this.getDistance(args, source.isMad),
456+
DbCheck.getDistance(args, source.isMad),
460457
bbox,
461458
),
462459
),

server/src/services/config.js

+16-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,22 @@ const mergeMapConfig = (input = {}) => {
173173

174174
/** @type {import('@rm/types').Config['map']} */
175175
const merged = config.util.extendDeep({}, base, input)
176-
176+
if (
177+
merged.misc.distanceUnit !== 'kilometers' &&
178+
merged.misc.distanceUnit !== 'miles'
179+
) {
180+
log.warn(
181+
HELPERS.config,
182+
`Invalid distanceUnit: ${merged.misc.distanceUnit}, only 'kilometers' OR 'miles' are allowed.`,
183+
)
184+
if (merged.misc.distance === 'km') {
185+
merged.misc.distanceUnit = 'kilometers'
186+
} else if (merged.misc.distance === 'mi') {
187+
merged.misc.distanceUnit = 'miles'
188+
} else {
189+
merged.misc.distanceUnit = 'kilometers'
190+
}
191+
}
177192
merged.general.menuOrder = merged?.general?.menuOrder
178193
? merged.general.menuOrder.filter((x) => allowedMenuItems.includes(x))
179194
: []

server/src/services/ui/advMenus.js

+93-42
Original file line numberDiff line numberDiff line change
@@ -21,64 +21,115 @@ const CATEGORIES = /** @type {const} */ ({
2121
nests: ['pokemon'],
2222
})
2323

24-
const BASE_RARITY = /** @type {const} */ ([
25-
'common',
26-
'uncommon',
27-
'rare',
28-
'ultraRare',
29-
'regional',
30-
'ultraBeast',
31-
'legendary',
32-
'mythical',
33-
'never',
34-
])
35-
3624
function buildMenus() {
37-
const menuFilters = {}
38-
const returnedItems = {}
39-
4025
const rarityTiers = new Set(
4126
Object.values(Event.masterfile.pokemon).map((val) => val.rarity),
4227
)
4328
const historicalTiers = new Set(
4429
Object.values(Event.masterfile.pokemon).map((val) => val.historic),
4530
)
31+
const generations = [
32+
...new Set(
33+
Object.values(Event.masterfile.pokemon).map(
34+
(val) => `generation_${val.genId}`,
35+
),
36+
),
37+
].filter((val) => val !== undefined)
38+
const types = Object.keys(Event.masterfile.types)
39+
.map((key) => `poke_type_${key}`)
40+
.filter((val) => val !== 'poke_type_0')
41+
42+
const forms = Object.entries(
43+
Object.values(Event.masterfile.pokemon).reduce((acc, val) => {
44+
Object.values(val.forms || {}).forEach((form) => {
45+
if (acc[form.name]) {
46+
acc[form.name] += 1
47+
} else {
48+
acc[form.name] = 1
49+
}
50+
})
51+
return acc
52+
}, /** @type {Record<string, number>} */ ({})),
53+
).filter(([key, count]) => count > 10 && key !== 'Normal' && key !== 'Unset')
4654

4755
const pokemonFilters = {
48-
generations: [
49-
...new Set(
50-
Object.values(Event.masterfile.pokemon).map(
51-
(val) => `generation_${val.genId}`,
52-
),
53-
),
54-
].filter((val) => val !== undefined),
55-
types: Object.keys(Event.masterfile.types)
56-
.map((key) => `poke_type_${key}`)
57-
.filter((val) => val !== 'poke_type_0'),
58-
rarity: BASE_RARITY.filter((tier) => rarityTiers.has(tier)),
59-
historicRarity: BASE_RARITY.filter((tier) => historicalTiers.has(tier)),
60-
forms: ['normalForms', 'altForms', 'Alola', 'Galarian'],
61-
others: ['reverse', 'selected', 'unselected', 'onlyAvailable'],
56+
generations: Object.fromEntries(generations.map((gen) => [gen, false])),
57+
types: Object.fromEntries(types.map((type) => [type, false])),
58+
rarity: Object.fromEntries(
59+
Array.from(rarityTiers).map((tier) => [tier, false]),
60+
),
61+
historicRarity: Object.fromEntries(
62+
Array.from(historicalTiers).map((tier) => [tier, false]),
63+
),
64+
forms: {
65+
normalForms: false,
66+
altForms: false,
67+
...Object.fromEntries(forms.map((form) => [form[0], false])),
68+
},
69+
others: {
70+
reverse: false,
71+
selected: false,
72+
unselected: false,
73+
onlyAvailable: false,
74+
},
6275
}
6376

64-
Object.entries(pokemonFilters).forEach(([key, items]) => {
65-
menuFilters[key] = Object.fromEntries(items.map((item) => [item, false]))
66-
})
67-
68-
Object.entries(CATEGORIES).forEach(([key, items]) => {
69-
returnedItems[key] = {
70-
categories: items,
77+
const returnObj = {
78+
gyms: {
79+
categories: CATEGORIES.gyms,
80+
filters: {
81+
...pokemonFilters,
82+
others: {
83+
...pokemonFilters.others,
84+
onlyAvailable: true,
85+
},
86+
categories: Object.fromEntries(
87+
CATEGORIES.gyms.map((item) => [item, false]),
88+
),
89+
},
90+
},
91+
pokestops: {
92+
categories: CATEGORIES.pokestops,
93+
filters: {
94+
...pokemonFilters,
95+
others: {
96+
...pokemonFilters.others,
97+
onlyAvailable: true,
98+
},
99+
categories: Object.fromEntries(
100+
CATEGORIES.pokestops.map((item) => [item, false]),
101+
),
102+
},
103+
},
104+
pokemon: {
105+
categories: CATEGORIES.pokemon,
106+
filters: {
107+
...pokemonFilters,
108+
others: {
109+
...pokemonFilters.others,
110+
onlyAvailable: true,
111+
},
112+
categories: Object.fromEntries(
113+
CATEGORIES.pokemon.map((item) => [item, false]),
114+
),
115+
},
116+
},
117+
nests: {
118+
categories: CATEGORIES.nests,
71119
filters: {
72-
...menuFilters,
120+
...pokemonFilters,
73121
others: {
74-
...menuFilters.others,
122+
...pokemonFilters.others,
75123
onlyAvailable: true,
76124
},
77-
categories: Object.fromEntries(items.map((item) => [item, false])),
125+
categories: Object.fromEntries(
126+
CATEGORIES.nests.map((item) => [item, false]),
127+
),
78128
},
79-
}
80-
})
81-
return returnedItems
129+
},
130+
}
131+
132+
return returnObj
82133
}
83134

84135
module.exports = buildMenus

0 commit comments

Comments
 (0)