From 375296024d4ab88e2fa7b668328561d63a8f2e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Fr=C3=B6hlinghaus?= Date: Wed, 25 Jun 2025 09:30:27 +0200 Subject: [PATCH 1/3] remove bolt bicylcle enties --- app/converters/gbfs_bolt_remove_bicycle.py | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 app/converters/gbfs_bolt_remove_bicycle.py diff --git a/app/converters/gbfs_bolt_remove_bicycle.py b/app/converters/gbfs_bolt_remove_bicycle.py new file mode 100644 index 0000000..18d84d3 --- /dev/null +++ b/app/converters/gbfs_bolt_remove_bicycle.py @@ -0,0 +1,33 @@ +from typing import Union + +from app.base_converter import BaseConverter + + +class GbfsBoltRemoveBicycleConverter(BaseConverter): + """ + bolt contains no bicycles, so we can remove all bicycle entries. + """ + + hostnames = ['mds.bolt.eu', 'gbfs.prod.sharedmobility.ch'] + + def convert(self, data: Union[dict, list], path: str) -> Union[dict, list]: + if not isinstance(data, dict): + return data + if not path.startswith(('/gbfs/2/', '/v2/gbfs/bolt_')): + return data + + if path.endswith('/vehicle_types'): + fields = data.get('data') + if not isinstance(fields, dict): + return data + vehicle_types = fields.get('vehicle_types') + if not isinstance(vehicle_types, list): + return data + newlist = [] + for vehicle_type in vehicle_types: + if vehicle_type.get('form_factor') != 'bicycle': + newlist.append(vehicle_type) + fields['vehicle_types'] = newlist + return data + + return data From 771707def9645ffa351a1db62c34d904a0908cc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Fr=C3=B6hlinghaus?= Date: Wed, 25 Jun 2025 09:30:47 +0200 Subject: [PATCH 2/3] remove bolt bicylcle enties --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 12cf8b4..2d5bd2d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ The changelog lists relevant feature changes between each release. Search GitHub issues and pull requests for smaller issues. +## 2025-06-25: +- add converter for bolt feeds: remove all bicycle entries + ## 2025-05-16: - add converter for protected lime feed: remove `markets` feed and set `rentals_apps` From 421c4cd547ef33ad0a8981e8cfdeb026098faa32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorsten=20Fr=C3=B6hlinghaus?= Date: Mon, 30 Jun 2025 10:26:21 +0200 Subject: [PATCH 3/3] bolt bicycle entries --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d5bd2d..9cec140 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ The changelog lists relevant feature changes between each release. Search GitHub ## 2025-06-25: - add converter for bolt feeds: remove all bicycle entries + - note: if future bolt feeds contain bicycles, the bicycle entries must be added again ## 2025-05-16: - add converter for protected lime feed: remove `markets` feed and set `rentals_apps`