File indexing completed on 2025-02-02 05:02:43
0001 #!/usr/bin/env python3 0002 # SPDX-FileCopyrightText: 2024 Volker Krause <vkrause@kde.org> 0003 # SPDX-License-Identifier: LGPL-2.0-or-later 0004 0005 import argparse 0006 import re 0007 import requests 0008 0009 parser = argparse.ArgumentParser(description='DB online ticket API response output') 0010 parser.add_argument('--name', type=str, required=True, help='Case-sensitive last name, as on the ticket') 0011 parser.add_argument('--ref', type=str, required=True, help='12 digit Auftragsnummer') 0012 arguments = parser.parse_args() 0013 0014 postData = f'<rqfindorder version="1.0"><rqheader v="23080000" os="KCI" app="NAVIGATOR"/><rqorder on="{arguments.ref}"/><authname tln="{arguments.name}"/></rqfindorder>' 0015 print(f"Request 1:\n{postData}\n") 0016 req = requests.post('https://fahrkarten.bahn.de/mobile/dbc/xs.go?', data=postData.encode()) 0017 print(f"Reply 1:\n{req.text}\n") 0018 0019 kwid = re.search(r'kwid="([^"]*)"', req.text).group(1) 0020 postData = f'<rqorderdetails version="1.0"><rqheader v="23040000" os="KCI" app="KCI-Webservice"/><rqorder on="{arguments.ref}" kwid="{kwid}"/><authname tln="{arguments.name}"/></rqorderdetails>' 0021 print(f"Request 2:\n{postData}\n") 0022 req = requests.post('https://fahrkarten.bahn.de/mobile/dbc/xs.go?', data=postData.encode()) 0023 print(f"Reply 2:\n{req.text}")