Add PIS Parsing code
This commit is contained in:
parent
1a00a995d3
commit
0bc82d03f9
@ -2,6 +2,8 @@ certifi==2022.12.7
|
|||||||
charset-normalizer==3.0.1
|
charset-normalizer==3.0.1
|
||||||
dnspython==2.3.0
|
dnspython==2.3.0
|
||||||
idna==3.4
|
idna==3.4
|
||||||
|
pyaml==21.10.1
|
||||||
pymongo==4.3.3
|
pymongo==4.3.3
|
||||||
|
PyYAML==6.0
|
||||||
requests==2.28.2
|
requests==2.28.2
|
||||||
urllib3==1.26.14
|
urllib3==1.26.14
|
||||||
|
19
src/main.py
19
src/main.py
@ -14,7 +14,7 @@
|
|||||||
# program. If not, see
|
# program. If not, see
|
||||||
# https://git.fjla.uk/OwlBoard/db-manager/src/branch/main/LICENSE
|
# https://git.fjla.uk/OwlBoard/db-manager/src/branch/main/LICENSE
|
||||||
|
|
||||||
version = "2.0.0-dev"
|
version = "2.1.0-dev"
|
||||||
print(f"main.py: Initialising db-manager v{version}")
|
print(f"main.py: Initialising db-manager v{version}")
|
||||||
|
|
||||||
#Third Party Imports
|
#Third Party Imports
|
||||||
@ -22,7 +22,7 @@ import os
|
|||||||
import time
|
import time
|
||||||
|
|
||||||
#Local Imports
|
#Local Imports
|
||||||
import corpus, mongo
|
import corpus, mongo, pis
|
||||||
import logger as log
|
import logger as log
|
||||||
|
|
||||||
log.out("main.py: db-manager Initialised", "INFO")
|
log.out("main.py: db-manager Initialised", "INFO")
|
||||||
@ -47,11 +47,22 @@ log.out(f'main.py: Stations is {stationsAge}s old', "INFO")
|
|||||||
# While the source of stations data is CORPUS, this statement is based on corpusAge, when/if changing the source, it should be changed to use stationsAge
|
# While the source of stations data is CORPUS, this statement is based on corpusAge, when/if changing the source, it should be changed to use stationsAge
|
||||||
# if stationsAge is used now, there could be a situation where stationsAge tries to update but fails as corpusData doesn't exist.
|
# if stationsAge is used now, there could be a situation where stationsAge tries to update but fails as corpusData doesn't exist.
|
||||||
if corpusAge > 1036800:
|
if corpusAge > 1036800:
|
||||||
log.out('main.py: Updating stations data until it is 1036800s old.', "INFO")
|
log.out('main.py: Updating stations data', "INFO")
|
||||||
stationData = corpus.onlyStations(corpusData)
|
stationData = corpus.onlyStations(corpusData)
|
||||||
mongo.putBulkStations(stationData)
|
mongo.putBulkStations(stationData)
|
||||||
else:
|
else:
|
||||||
log.out('main.py: Not updating stations data', "INFO")
|
log.out('main.py: Not updating stations data until it is 1036800s old.', "INFO")
|
||||||
|
|
||||||
|
#Check & Update pis data:
|
||||||
|
# If older than 12 days then update
|
||||||
|
pisAge = int(time.time()) - mongo.metaCheckTime("pis")
|
||||||
|
log.out(f'main.py: PIS Data is {pisAge}s old', "INFO")
|
||||||
|
if pisAge > 1036800:
|
||||||
|
log.out('main.py: Updating PIS data', "INFO")
|
||||||
|
pisData = pis.load()
|
||||||
|
mongo.putBulkPis(pisData)
|
||||||
|
else:
|
||||||
|
log.out('main.py: Not updating PIS data until is it 1036800a old', "INFO")
|
||||||
|
|
||||||
log.out('main.py: Requesting TTL Index Creation', "INFO")
|
log.out('main.py: Requesting TTL Index Creation', "INFO")
|
||||||
mongo.createTtlIndex("users", "atime", 2629800)
|
mongo.createTtlIndex("users", "atime", 2629800)
|
||||||
|
17
src/mongo.py
17
src/mongo.py
@ -88,6 +88,23 @@ def putBulkStations(data):
|
|||||||
metaUpdateTime(collection)
|
metaUpdateTime(collection)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def putBulkPis(data):
|
||||||
|
collection = "pis"
|
||||||
|
startCount = getLength(collection)
|
||||||
|
col = db[collection]
|
||||||
|
incrementCounter(collection)
|
||||||
|
if startCount > 0:
|
||||||
|
log.out(f'mongo.putBulkPid: Dropping {startCount} pis documents', "INFO")
|
||||||
|
col.drop()
|
||||||
|
col.insert_many(data)
|
||||||
|
endCount = getLength(collection)
|
||||||
|
log.out(f'mongo.putBulkPis: {endCount} documents inserted', "INFO")
|
||||||
|
log.out(f'mongo.putBulkPis: {endCount-startCount} new documents', "INFO")
|
||||||
|
log.out('mongo.putBulkPis: Updating meta time', "INFO")
|
||||||
|
metaUpdateTime(collection)
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
def incrementCounter(target):
|
def incrementCounter(target):
|
||||||
collection = "meta"
|
collection = "meta"
|
||||||
col = db[collection]
|
col = db[collection]
|
||||||
|
11
src/pis.py
Normal file
11
src/pis.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import yaml
|
||||||
|
|
||||||
|
def load():
|
||||||
|
with open("../data/pis/gwr-west.yaml", "r") as data:
|
||||||
|
try:
|
||||||
|
pis = yaml.safe_load(data)
|
||||||
|
print(pis)
|
||||||
|
return pis["pis"]
|
||||||
|
except yaml.YAMLError as exc:
|
||||||
|
print(exc)
|
||||||
|
return exc
|
Reference in New Issue
Block a user