Skip to content

Commit e3bec85

Browse files
authored
Merge pull request #28 from HSLdevcom/request-headers
Add support for providing headers with env
2 parents d778390 + 1947a02 commit e3bec85

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ You need to configure at least the following env variables that are marked as ma
1111
* (mandatory) "FEED_TYPE" which type of a GTFS RT data is provided (for example vp for vehicle position), used in MQTT topic
1212
* (mandatory) "FEED_NAME" name for the data feed, used in MQTT topic
1313
* (mandatory) "FEED_URL" URL for the HTTP(S) GTFS RT data source
14+
* (optional) "FEED_HEADERS" headers for requesting GTFS RT feed
1415
* (mandatory as of 4.3.2023 if using Digitransit API) "AUTHENTICATION_HEADER" Authentication header name
1516
* (mandatory as of 4.3.2023 if using Digitransit API) "AUTHENTICATION_TOKEN" Authentication header secret
1617
* (optional) "USERNAME" username for publishing to a MQTT broker

gtfsrthttp2mqtt.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import time
22
import os
3+
import json
34
from threading import Event, Thread
45

56
import paho.mqtt.client as mqtt
@@ -25,7 +26,7 @@ def loop():
2526

2627

2728
class GTFSRTHTTP2MQTTTransformer:
28-
def __init__(self, mqttConnect, mqttCredentials, baseMqttTopic, gtfsrtFeedURL, feedName):
29+
def __init__(self, mqttConnect, mqttCredentials, baseMqttTopic, gtfsrtFeedURL, gtfsrtFeedHeaders, feedName):
2930
self.mqttConnect = mqttConnect
3031
self.mqttCredentials = mqttCredentials
3132
self.baseMqttTopic = baseMqttTopic
@@ -36,6 +37,7 @@ def __init__(self, mqttConnect, mqttCredentials, baseMqttTopic, gtfsrtFeedURL, f
3637
retry = Retry(connect=60, backoff_factor=1.5)
3738
adapter = HTTPAdapter(max_retries=retry)
3839
self.session.mount(gtfsrtFeedURL, adapter)
40+
self.session.headers.update(json.loads(gtfsrtFeedHeaders))
3941
self.OTPData = None
4042

4143

@@ -168,6 +170,7 @@ def doOTPPolling(self):
168170
{'username': os.environ['USERNAME'], 'password': os.environ['PASSWORD']},
169171
'/gtfsrt/{0}'.format(os.environ['FEED_TYPE']),
170172
os.environ['FEED_URL'],
173+
os.environ.get('FEED_HEADERS', '{}'),
171174
os.environ['FEED_NAME']
172175
)
173176

0 commit comments

Comments
 (0)