@@ -54,12 +54,12 @@ def parse(aprs_message, reference_timestamp=None, calculate_relations=False, use
5454 reference_timestamp = datetime .now (timezone .utc )
5555
5656 if use_rust_parser :
57- rust_zeug = rust_parse (aprs_message )
57+ rust_response = rust_parse (aprs_message )[ 0 ]
5858 message = {'raw_message' : aprs_message , 'reference_timestamp' : reference_timestamp }
59- if parser_error := rust_zeug .get ('parsererror ' ):
59+ if parser_error := rust_response .get ('parser_error ' ):
6060 message ['aprs_type' ] = 'comment'
6161 message ['comment' ] = str (parser_error )
62- elif aprs_packet := rust_zeug .get ('aprspacket ' ):
62+ elif aprs_packet := rust_response .get ('aprs_packet ' ):
6363 message .update ({
6464 'aprs_type' : 'position' ,
6565 'beacon_type' : mapping .get (aprs_packet ['to' ], 'unknown' ),
@@ -143,7 +143,18 @@ def parse(aprs_message, reference_timestamp=None, calculate_relations=False, use
143143 if 'unparsed' in status : message ["user_comment" ] = status ['unparsed' ]
144144 else :
145145 raise ValueError ("WTF" )
146-
146+ elif server_comment := rust_response .get ('servercomment' ):
147+ message .update ({
148+ 'version' : server_comment ['version' ],
149+ 'timestamp' : datetime .strptime (server_comment ['timestamp' ], "%d %b %Y %H:%M:%S %Z" ),
150+ 'server' : server_comment ['server' ],
151+ 'ip_address' : server_comment ['ip_address' ],
152+ 'port' : server_comment ['port' ],
153+ 'aprs_type' : 'server' })
154+ elif comment := rust_response .get ('comment' ):
155+ message .update ({
156+ 'comment' : comment ['comment' ],
157+ 'aprs_type' : 'comment' })
147158 else :
148159 raise ValueError ("WTF" )
149160
0 commit comments