1
1
import { parseDataVersion , parseAppVersion } from './versions' ;
2
2
3
+ export const DATA_VERSIONS = [
4
+ 210529 , //
5
+ 210703 ,
6
+ 210729 ,
7
+ 210825 ,
8
+ 211002 ,
9
+ 211022 ,
10
+ 211122 ,
11
+ 220103 ,
12
+ 220204 ,
13
+ 220314 ,
14
+ 220415 ,
15
+ 220515 ,
16
+ 220613 ,
17
+ 220718 ,
18
+ 220816 ,
19
+ 220912 ,
20
+ 221029 ,
21
+ 221119 ,
22
+ 221216 ,
23
+ 230121 ,
24
+ 230210 ,
25
+ 230227 ,
26
+ 230329 ,
27
+ 230503 ,
28
+ 230602 ,
29
+ 230710 ,
30
+ 230814 ,
31
+ 230920 ,
32
+ 231113 ,
33
+ 231213 ,
34
+ 240105 ,
35
+ 240202 ,
36
+ 240228 ,
37
+ 240326 ,
38
+ 240429 ,
39
+ 240528 ,
40
+ 240613 ,
41
+ 240702 ,
42
+ 240723 ,
43
+ 240810 ,
44
+ 240904 ,
45
+ ] ;
46
+
47
+ const kUnlimited = 99999 ;
48
+
3
49
// TODO: Implement automated version checks from this metaserver script.
4
50
// It should check by cron if actual files are really available on all servers.
5
51
export const SERVER = {
6
52
backblaze : {
7
53
// BackBlaze + CloudFlare (US-West) unmetered.
8
54
url : 'https://cdn-us1.organicmaps.app/' ,
9
- dataVersions : [
10
- 210529 , 210703 , 210729 , 210825 , 211002 , 211022 , 211122 , 220103 , 220204 , 220314 , 220415 , 220515 , 220613 , 220718 ,
11
- 220816 , 220912 , 221029 , 221119 , 221216 , 230121 , 230210 , 230227 , 230329 , 230503 , 230602 , 230710 , 230814 , 230920 ,
12
- 231113 , 231213 , 240105 , 240202 , 240228 , 240326 , 240429 , 240528 , 240613 , 240702 , 240723 , 240810 , 240904 ,
13
- ] ,
55
+ dataVersions : kUnlimited ,
14
56
} ,
15
57
uk1 : {
16
58
// Mythic Beasts VPS (London, UK) 200TB/mo.
17
59
url : 'https://cdn-uk1.organicmaps.app/' ,
18
- dataVersions : [ 240723 , 240810 , 240904 ] ,
60
+ dataVersions : 3 ,
19
61
} ,
20
62
nl1 : {
21
63
// // Mythic Beasts VPS (Amsterdam, NL) 200TB/mo.
22
64
url : 'https://cdn-nl1.organicmaps.app/' ,
23
- dataVersions : [ 240723 , 240810 , 240904 ] ,
65
+ dataVersions : 3 ,
24
66
} ,
25
67
planet : {
26
- // Hetzner BareMetal (Falkenstein, Germany ) unmetered
68
+ // Hetzner BareMetal (Helsinki, Finland ) unmetered
27
69
url : 'https://cdn.organicmaps.app/' ,
28
- dataVersions : [
29
- 220103 , 220204 , 220314 , 220415 , 220515 , 220613 , 220718 , 220816 , 220912 , 221029 , 221119 , 221216 , 230121 , 230210 ,
30
- 230227 , 230329 , 230503 , 230602 , 230710 , 230814 , 230920 , 231113 , 231213 , 240105 , 240202 , 240228 , 240326 , 240429 ,
31
- 240528 , 240613 , 240702 , 240723 , 240810 , 240904 ,
32
- ] ,
70
+ dataVersions : kUnlimited ,
33
71
} ,
34
72
beta : {
35
73
// Alias of the planet above that is proxied via CF and with enabled /maps/ *.mwm caching,
@@ -41,27 +79,32 @@ export const SERVER = {
41
79
fi1 : {
42
80
// Hetzner Cloud (Helsinki, Finland), 20TB/mo
43
81
url : 'https://cdn-fi1.organicmaps.app/' ,
44
- dataVersions : [ 240810 , 240904 ] ,
82
+ dataVersions : 2 ,
45
83
} ,
46
84
de1 : {
47
85
// Hetzner Cloud (Falkenstein, Germany), 20TB/mo
48
86
url : 'https://cdn-eu2.organicmaps.app/' ,
49
- dataVersions : [ 240810 , 240904 ] ,
87
+ dataVersions : 2 ,
50
88
} ,
51
89
de2 : {
52
90
// Hetzner Cloud (Falkenstein, Germany), 20TB/mo
53
91
url : 'https://cdn-de2.organicmaps.app/' ,
54
- dataVersions : [ 240723 , 240810 , 240904 ] ,
92
+ dataVersions : 3 ,
55
93
} ,
56
94
de3 : {
57
95
// Hetzner Cloud (Nuremberg, Germany), 20TB/mo
58
96
url : 'https://cdn-de3.organicmaps.app/' ,
59
- dataVersions : [ 240702 , 240723 , 240810 , 240904 ] ,
97
+ dataVersions : 4 ,
98
+ } ,
99
+ us_east1 : {
100
+ // Hetzner Cloud (Ashburn, US East), 20TB/mo
101
+ url : 'https://cdn-us-east1.organicmaps.app/' ,
102
+ dataVersions : 3 ,
60
103
} ,
61
- us3 : {
104
+ us_west1 : {
62
105
// Hetzner Cloud (Hillsdate, US West), 20TB/mo
63
- url : 'https://cdn-us3 .organicmaps.app/' ,
64
- dataVersions : [ 240810 , 240904 ] ,
106
+ url : 'https://cdn-us-west1 .organicmaps.app/' ,
107
+ dataVersions : 2 ,
65
108
} ,
66
109
} ;
67
110
@@ -86,17 +129,17 @@ export async function getServersList(request: Request) {
86
129
case 'NA' : // North America
87
130
case 'SA' : // South America
88
131
case 'OC' : // Oceania
89
- servers = [ SERVER . backblaze , SERVER . us3 , SERVER . uk1 , SERVER . nl1 , SERVER . planet ] . filter ( ( server ) =>
90
- server . dataVersions . includes ( dataVersion ) ,
132
+ servers = [ SERVER . backblaze , SERVER . us_east1 , SERVER . us_west1 , SERVER . uk1 , SERVER . nl1 , SERVER . planet ] . filter (
133
+ ( server ) => DATA_VERSIONS . slice ( - server . dataVersions ) . includes ( dataVersion ) ,
91
134
) ;
92
135
break ;
93
136
default :
94
137
// Every other continent + Tor networks.
95
138
servers = [ SERVER . planet , SERVER . uk1 , SERVER . nl1 , SERVER . fi1 , SERVER . de1 , SERVER . de2 , SERVER . de3 ] . filter (
96
- ( server ) => server . dataVersions . includes ( dataVersion ) ,
139
+ ( server ) => DATA_VERSIONS . slice ( - server . dataVersions ) . includes ( dataVersion ) ,
97
140
) ;
98
141
// Only fallback to the archive in the US if nothing was found closer.
99
- if ( servers . length == 0 && SERVER . backblaze . dataVersions . includes ( dataVersion ) ) {
142
+ if ( servers . length == 0 && DATA_VERSIONS . slice ( - SERVER . backblaze . dataVersions ) . includes ( dataVersion ) ) {
100
143
servers = [ SERVER . backblaze ] ;
101
144
}
102
145
}
0 commit comments