Kind of there, much tidying to do!

This commit is contained in:
Fred Boniface 2024-02-21 22:49:40 +00:00
parent 1b658209ad
commit d1728770c3
5 changed files with 64 additions and 28 deletions

View File

@ -0,0 +1 @@
,fred.boniface,bedroom.ws.fjla.net,21.02.2024 22:41,file:///home/fred.boniface/.config/libreoffice/4;

View File

@ -1,4 +1,5 @@
import owlboard_connector import owlboard_connector
import sys
def humanYaml(pis_list): def humanYaml(pis_list):
additional_pis = '' additional_pis = ''
@ -7,17 +8,25 @@ def humanYaml(pis_list):
if len(pis['services']) == 1: if len(pis['services']) == 1:
print(f"Only one valid service for {pis['pis']}") print(f"Only one valid service for {pis['pis']}")
crs = [] crs = []
for stop in pis['services'][0]['stops']: print(pis)
crs.append(owlboard_connector.convert_tiploc_to_crs(stop)) try:
additional_pis += f' - code: "{pis["pis"]}"\n' for stop in pis['services'][0]['stops']:
additional_pis += f' stops: [{",".join(crs)}]\n' crs.append(owlboard_connector.convert_tiploc_to_crs(stop))
additional_pis += f' - code: "{pis["pis"]}"\n'
additional_pis += f' stops: [{",".join(crs)}]\n'
except Exception as err:
print(err)
elif len(pis['services']) > 1: elif len(pis['services']) > 1:
print(f"More than one possible service for {pis['pis']}") print(f"More than one possible service for {pis['pis']}")
manual_review += f' - code: "{pis["pis"]}"\n' print(pis)
for service in pis["services"]: try:
crs = [] manual_review += f' - code: "{pis["pis"]}"\n'
for stop in service['stops']: for service in pis["services"]:
crs.append(owlboard_connector.convert_tiploc_to_crs(stop)) crs = []
manual_review += f'OR stops:[{",".join(crs)}]\n' for stop in service['stops']:
crs.append(owlboard_connector.convert_tiploc_to_crs(stop))
manual_review += f'OR stops:[{",".join(crs)}]\n'
except Exception as err:
print(err)
return additional_pis + manual_review return additional_pis + manual_review

View File

@ -1,2 +1,19 @@
import requests import requests, os
from datetime import datetime
BASE_URL = "https://git.fjla.uk/"
USER = 'owlbot'
TOKEN = os.environ.get('DGP_GITEA_TOK')
HEADERS = {
'Content-Type': 'application/json',
'accept': 'application/json',
}
'''
I need a way here to get the original file from the 'main' branch and
append the generated PIS codes. Then push to a new generated branch.
Then a pull request should be created but can probably be done with actions.
In reality this program should just take in DOCX files and spit out formatted
PIS data to the repo, everything else can be handled at the repo level??
'''

View File

@ -1,4 +1,4 @@
import parse_docx, pis_find, owlboard_connector, formatter import parse_docx, pis_find, owlboard_connector, formatter, gitea_connector
import os, sys import os, sys
@ -59,5 +59,7 @@ def start():
if __name__ == "__main__": if __name__ == "__main__":
start() start()

View File

@ -49,20 +49,27 @@ def get_services(headcode, date):
return results return results
def get_service_detail(trainUid, date): def get_service_detail(trainUid, date):
print("Getting GWR service details: ", trainUid, ", ", date) try:
url = OB_TRN_BASE_URL + f"{date.isoformat()}/byTrainUid/{trainUid}" print("Getting GWR service details: ", trainUid, ", ", date)
print(url) url = OB_TRN_BASE_URL + f"{date.isoformat()}/byTrainUid/{trainUid}"
res = requests.get(url, headers=HEADERS) print(url)
if res.status_code == 200: res = requests.get(url, headers=HEADERS)
json_res = res.json() if res.status_code == 200:
if json_res: json_res = res.json()
svc_detail = { if json_res:
'stops': json_res['stops'], svc_detail = {
'existing_pis': json_res.get('pis', None), 'stops': json_res['stops'],
'vstp': json_res.get('vstp', False) 'vstp': json_res.get('vstp', False)
} }
organised = organise_svc(svc_detail)
return organise_svc(svc_detail) print(organised)
return organised
else:
print("Service Not Found")
sys.exit()
except Exception as e:
print(e)
sys.exit()
def organise_svc(input): def organise_svc(input):
stop_tiplocs = [] stop_tiplocs = []
@ -76,7 +83,7 @@ def organise_svc(input):
if 'pis' in input and input['pis'].get('skipCount', 0) == 0: if 'pis' in input and input['pis'].get('skipCount', 0) == 0:
existingPis = True existingPis = True
return {'stops': stop_tiplocs, 'existingPis': existingPis, 'vstp': vstp} return {'stops': stop_tiplocs, 'vstp': vstp}
def convert_tiploc_to_crs(tiploc): def convert_tiploc_to_crs(tiploc):
res = requests.get(OB_TIP_BASE_URL + tiploc.upper(), headers=HEADERS) res = requests.get(OB_TIP_BASE_URL + tiploc.upper(), headers=HEADERS)
@ -85,4 +92,4 @@ def convert_tiploc_to_crs(tiploc):
if json_res: if json_res:
crs = json_res[0]['3ALPHA'] crs = json_res[0]['3ALPHA']
print(f"TIPLOC: {tiploc}, CRS: {crs}") print(f"TIPLOC: {tiploc}, CRS: {crs}")
return crs return crs.lower()