mirror of https://gitlab.com/m3f_usm/proto
guarda los trayectos en redis
parent
ad5548a38b
commit
98dee26134
113
main.py
113
main.py
|
@ -13,18 +13,19 @@ r = redis.Redis(host=db_host, port=db_port, decode_responses=True)
|
|||
|
||||
def main():
|
||||
print(datetime.now(tz))
|
||||
print("hola")
|
||||
# print("hola")
|
||||
|
||||
content = download_file_proto()
|
||||
if content == None:
|
||||
return False
|
||||
|
||||
data = read_file_proto(content)
|
||||
data = read_file_proto_x_stop(content)
|
||||
|
||||
# save data to redis db
|
||||
for row in data:
|
||||
key = f'stop_id:{row["stop_id"]}'
|
||||
r.set(key, json.dumps(row))
|
||||
for key in data:
|
||||
r.set(key, json.dumps(data[key]))
|
||||
|
||||
# print(json.dumps(data['route:549-1'], indent=4))
|
||||
|
||||
|
||||
def download_file_proto():
|
||||
|
@ -33,10 +34,14 @@ def download_file_proto():
|
|||
return response.content
|
||||
return None
|
||||
|
||||
def read_file_proto(content):
|
||||
|
||||
"""
|
||||
agrupa los trayectos a llegar al paradero
|
||||
"""
|
||||
def read_file_proto_x_stop(content):
|
||||
feed = gtfs.FeedMessage()
|
||||
feed.ParseFromString(content)
|
||||
data_list = []
|
||||
data_stop = {}
|
||||
|
||||
for entity in feed.entity:
|
||||
if entity.HasField('trip_update'):
|
||||
|
@ -57,38 +62,78 @@ def read_file_proto(content):
|
|||
}
|
||||
|
||||
for update in entity.trip_update.stop_time_update:
|
||||
data_dict = trip_data.copy()
|
||||
data_dict["stop_sequence"] = update.stop_sequence
|
||||
data_dict["stop_id"] = update.stop_id
|
||||
data_dict["arrival_time"] = update.arrival.time
|
||||
data_dict["hora_llegada"] = datetime.fromtimestamp(update.arrival.time).strftime('%Y-%m-%d %H:%M:%S')
|
||||
data_list.append(data_dict)
|
||||
key = f'stop_id:{update.stop_id}'
|
||||
if update.stop_id in data_stop:
|
||||
data_stop[key].append(trip_data)
|
||||
else:
|
||||
data_stop[key] = [ trip_data ]
|
||||
# data_dict = trip_data.copy()
|
||||
# data_dict["stop_sequence"] = update.stop_sequence
|
||||
# data_dict["stop_id"] = update.stop_id
|
||||
# data_dict["arrival_time"] = update.arrival.time
|
||||
# data_dict["hora_llegada"] = datetime.fromtimestamp(update.arrival.time).strftime('%Y-%m-%d %H:%M:%S')
|
||||
# data_list.append(data_dict)
|
||||
|
||||
else:
|
||||
# else:
|
||||
# trip_data = {
|
||||
# "id": str(entity.id),
|
||||
# "trip_id": entity.vehicle.trip.trip_id,
|
||||
# "route_id":entity.vehicle.trip.route_id,
|
||||
# "direction_id": entity.vehicle.trip.direction_id,
|
||||
# "start_time": entity.vehicle.trip.start_time,
|
||||
# "start_date": entity.vehicle.trip.start_date,
|
||||
# "schedule_relationship": entity.vehicle.trip.schedule_relationship,
|
||||
# "vehicle_license_plate": entity.vehicle.vehicle.license_plate,
|
||||
# "latitude": entity.vehicle.position.latitude,
|
||||
# "longitude": entity.vehicle.position.longitude,
|
||||
# "bearing": entity.vehicle.position.bearing,
|
||||
# "odometer": entity.vehicle.position.odometer,
|
||||
# "speed": entity.vehicle.position.speed
|
||||
# }
|
||||
# data_dict = trip_data.copy()
|
||||
# data_dict["stop_sequence"] = ""
|
||||
# data_dict["stop_id"] = ""
|
||||
# data_dict["arrival_time"] = ""
|
||||
# data_dict["hora_llegada"] = ""
|
||||
# data_list.append(data_dict)
|
||||
|
||||
return data_stop;
|
||||
|
||||
|
||||
"""
|
||||
agrupa los trayectos hechos por linea
|
||||
"""
|
||||
def read_file_proto_x_route(content):
|
||||
feed = gtfs.FeedMessage()
|
||||
feed.ParseFromString(content)
|
||||
data_route = {}
|
||||
|
||||
for entity in feed.entity:
|
||||
if entity.HasField('trip_update'):
|
||||
trip_data = {
|
||||
"id": str(entity.id),
|
||||
"trip_id": entity.vehicle.trip.trip_id,
|
||||
"route_id":entity.vehicle.trip.route_id,
|
||||
"direction_id": entity.vehicle.trip.direction_id,
|
||||
"start_time": entity.vehicle.trip.start_time,
|
||||
"start_date": entity.vehicle.trip.start_date,
|
||||
"schedule_relationship": entity.vehicle.trip.schedule_relationship,
|
||||
"vehicle_license_plate": entity.vehicle.vehicle.license_plate,
|
||||
"latitude": entity.vehicle.position.latitude,
|
||||
"longitude": entity.vehicle.position.longitude,
|
||||
"bearing": entity.vehicle.position.bearing,
|
||||
"odometer": entity.vehicle.position.odometer,
|
||||
"speed": entity.vehicle.position.speed
|
||||
"trip_id": entity.trip_update.trip.trip_id,
|
||||
"route_id": entity.trip_update.trip.route_id,
|
||||
"direction_id": entity.trip_update.trip.direction_id,
|
||||
"start_time": entity.trip_update.trip.start_time,
|
||||
"start_date": entity.trip_update.trip.start_date,
|
||||
"schedule_relationship": entity.trip_update.trip.schedule_relationship,
|
||||
"vehicle_license_plate": entity.trip_update.vehicle.license_plate,
|
||||
"latitude": entity.vehicle.position.latitude,
|
||||
"longitude": entity.vehicle.position.longitude,
|
||||
"bearing": entity.vehicle.position.bearing,
|
||||
"odometer": entity.vehicle.position.odometer,
|
||||
"speed": entity.vehicle.position.speed
|
||||
}
|
||||
data_dict = trip_data.copy()
|
||||
data_dict["stop_sequence"] = ""
|
||||
data_dict["stop_id"] = ""
|
||||
data_dict["arrival_time"] = ""
|
||||
data_dict["hora_llegada"] = ""
|
||||
data_list.append(data_dict)
|
||||
|
||||
for update in entity.trip_update.stop_time_update:
|
||||
key = f'route:{trip_data["route_id"]}-{trip_data["direction_id"]}'
|
||||
if key in data_route:
|
||||
data_route[key].append(trip_data)
|
||||
else:
|
||||
data_route[key] = [ trip_data ]
|
||||
|
||||
filtered_list = [item for item in data_list if item["stop_id"] > " "]
|
||||
return filtered_list;
|
||||
return data_route;
|
||||
|
||||
|
||||
main()
|
Loading…
Reference in New Issue