Persist station CRUD across restarts via JSON config
Station CRUD via the API previously mutated the scraper's in-memory station_mapping only, so changes were lost on restart (and the systemd service auto-restarts). - Extract the 130-line hardcoded station_mapping into bundled defaults at src/data/stations.json; the scraper loads from a runtime-writable config file (STATION_CONFIG_PATH, default stations.json) and falls back to the bundled defaults to seed it. - Add scraper.save_stations() with an atomic temp-file + os.replace write. - create/update/delete station endpoints now persist and roll back the in-memory change if the write fails; re-raise HTTPException so persistence errors surface as real 500s instead of being swallowed. - Backend-agnostic (works for the VictoriaMetrics deployment, which has no relational stations table). Runtime stations.json is gitignored. Also clears pre-existing flake8 debt in water_scraper_v3.py (unused imports, long lines, duplicate logging import) and dedupes the User-Agent to Config.USER_AGENT.
This commit is contained in:
@@ -0,0 +1,130 @@
|
||||
{
|
||||
"1": {
|
||||
"code": "P.20",
|
||||
"thai_name": "บ้านเชียงดาว",
|
||||
"english_name": "Ban Chiang Dao",
|
||||
"latitude": 19.36731448032191,
|
||||
"longitude": 98.9688487015384,
|
||||
"geohash": null
|
||||
},
|
||||
"2": {
|
||||
"code": "P.75",
|
||||
"thai_name": "บ้านช่อแล",
|
||||
"english_name": "Ban Chai Lat",
|
||||
"latitude": 19.145972935976225,
|
||||
"longitude": 99.00735727149247,
|
||||
"geohash": null
|
||||
},
|
||||
"3": {
|
||||
"code": "P.92",
|
||||
"thai_name": "บ้านเมืองกึ๊ด",
|
||||
"english_name": "Ban Muang Aut",
|
||||
"latitude": 19.220518985435646,
|
||||
"longitude": 98.84733127007874,
|
||||
"geohash": null
|
||||
},
|
||||
"4": {
|
||||
"code": "P.4A",
|
||||
"thai_name": "บ้านแม่แตง",
|
||||
"english_name": "Ban Mae Taeng",
|
||||
"latitude": 19.1222679952378,
|
||||
"longitude": 98.94437462084075,
|
||||
"geohash": null
|
||||
},
|
||||
"5": {
|
||||
"code": "P.67",
|
||||
"thai_name": "บ้านแม่แต",
|
||||
"english_name": "Ban Tae",
|
||||
"latitude": 19.009762080002453,
|
||||
"longitude": 98.95978297135508,
|
||||
"geohash": null
|
||||
},
|
||||
"6": {
|
||||
"code": "P.21",
|
||||
"thai_name": "บ้านริมใต้",
|
||||
"english_name": "Ban Rim Tai",
|
||||
"latitude": 18.917459157963293,
|
||||
"longitude": 98.97018092996231,
|
||||
"geohash": null
|
||||
},
|
||||
"7": {
|
||||
"code": "P.103",
|
||||
"thai_name": "สะพานวงแหวนรอบ 3",
|
||||
"english_name": "Ring Bridge 3",
|
||||
"latitude": 18.86664807441675,
|
||||
"longitude": 98.9781107622432,
|
||||
"geohash": null
|
||||
},
|
||||
"8": {
|
||||
"code": "P.1",
|
||||
"thai_name": "สะพานนวรัฐ",
|
||||
"english_name": "Nawarat Bridge",
|
||||
"latitude": 18.7875,
|
||||
"longitude": 99.0045,
|
||||
"geohash": "w5q6uuhvfcfp25"
|
||||
},
|
||||
"9": {
|
||||
"code": "P.82",
|
||||
"thai_name": "บ้านสบวิน",
|
||||
"english_name": "Ban Sob win",
|
||||
"latitude": 18.6519444,
|
||||
"longitude": 98.69,
|
||||
"geohash": null
|
||||
},
|
||||
"10": {
|
||||
"code": "P.84",
|
||||
"thai_name": "บ้านพันตน",
|
||||
"english_name": "Ban Panton",
|
||||
"latitude": 18.591315274591334,
|
||||
"longitude": 98.79657058508496,
|
||||
"geohash": null
|
||||
},
|
||||
"11": {
|
||||
"code": "P.81",
|
||||
"thai_name": "บ้านโป่ง",
|
||||
"english_name": "Ban Pong",
|
||||
"latitude": 13.805661820610888,
|
||||
"longitude": 99.87174946122846,
|
||||
"geohash": null
|
||||
},
|
||||
"12": {
|
||||
"code": "P.5",
|
||||
"thai_name": "สะพานท่านาง",
|
||||
"english_name": "Tha Nang Bridge",
|
||||
"latitude": 18.580269437546555,
|
||||
"longitude": 99.01021397084362,
|
||||
"geohash": null
|
||||
},
|
||||
"13": {
|
||||
"code": "P.77",
|
||||
"thai_name": "บ้านสบแม่สะป๊วด",
|
||||
"english_name": "Baan Sop Mae Sapuord",
|
||||
"latitude": 18.433347475179602,
|
||||
"longitude": 99.08510036666527,
|
||||
"geohash": null
|
||||
},
|
||||
"14": {
|
||||
"code": "P.87",
|
||||
"thai_name": "บ้านป่าซาง",
|
||||
"english_name": "Ban Pa Sang",
|
||||
"latitude": 18.519121825282486,
|
||||
"longitude": 98.94224374138238,
|
||||
"geohash": null
|
||||
},
|
||||
"15": {
|
||||
"code": "P.76",
|
||||
"thai_name": "บ้านแม่อีไฮ",
|
||||
"english_name": "Banb Mae I Hai",
|
||||
"latitude": 18.141465831254404,
|
||||
"longitude": 98.89642508267181,
|
||||
"geohash": null
|
||||
},
|
||||
"16": {
|
||||
"code": "P.85",
|
||||
"thai_name": "บ้านหล่ายแก้ว",
|
||||
"english_name": "Baan Lai Kaew",
|
||||
"latitude": 18.17856361002219,
|
||||
"longitude": 98.63023114782287,
|
||||
"geohash": null
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user