Skip to content

Commit cbb4ea1

Browse files
committed
fix: don't send messages for feeds older than seen before
1 parent 8bed5b1 commit cbb4ea1

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

gtfsrthttp2mqtt.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ def __init__(self, mqttConnect, mqttCredentials, baseMqttTopic, gtfsrtFeedURL, g
3939
self.session.mount(gtfsrtFeedURL, adapter)
4040
self.session.headers.update(json.loads(gtfsrtFeedHeaders))
4141
self.OTPData = None
42-
42+
self.lastFeedTimestamp = None
4343

4444

4545
def onMQTTConnected(self, client, userdata, flags, rc):
@@ -77,6 +77,15 @@ def doGTFSRTPolling(self):
7777
feedmsg = gtfs_realtime_pb2.FeedMessage()
7878
try:
7979
feedmsg.ParseFromString(r.content)
80+
81+
# Do not send messages for feeds older than already sent
82+
feedTimestamp = feedmsg.header.timestamp
83+
if self.lastFeedTimestamp is None or feedTimestamp >= self.lastFeedTimestamp:
84+
self.lastFeedTimestamp = feedTimestamp
85+
else:
86+
print(f"Received a feed with timestamp earlier ({feedTimestamp}) than seen before ({self.lastFeedTimestamp}), skipping this update")
87+
return
88+
8089
for entity in feedmsg.entity:
8190
if not entity.HasField('vehicle'):
8291
continue

0 commit comments

Comments
 (0)