Sfoglia il codice sorgente

support oebb booking confirmations in html format

Fabian Peter Hammerle 8 anni fa
parent
commit
aff8bf32b9
1 ha cambiato i file con 10 aggiunte e 5 eliminazioni
  1. 10 5
      order-confirmation-mail-parser

+ 10 - 5
order-confirmation-mail-parser

@@ -13,6 +13,7 @@ import locale
 import argparse
 import datetime
 import traceback
+import HTMLParser
 import argcomplete
 
 # strptime
@@ -62,12 +63,16 @@ def parse_amazon(msg):
 
 def parse_oebb(msg):
 
-    msg_text = msg.get_payload(decode = True).decode('utf8')
+    msg_text = re.sub(
+        r'<[^>]+>',
+        '',
+        HTMLParser.HTMLParser().unescape(msg.get_payload(decode = True).decode('utf8'))
+        )
 
     order_match = re.search(
-        ur'Booking code: (?P<order_id>[\d ]+)\s+'
-            + ur'Customer number: (?P<customer_id>PV\d+)\s+'
-            + ur'Booking date: (?P<order_date>.* \d{4})\s',
+        ur'Booking code:\s+(?P<order_id>[\d ]+)\s+'
+            + ur'Customer number:\s+(?P<customer_id>PV\d+)\s+'
+            + ur'Booking date:\s+(?P<order_date>.* \d{4})\s',
         msg_text,
         re.MULTILINE | re.UNICODE
         )
@@ -83,7 +88,7 @@ def parse_oebb(msg):
         ur'(?P<price_brutto_currency>.)(?P<price_brutto>\d+\.\d+)'
             + ur'[\W\w]+'
             + ur'Your Booking\s+'
-            + ur'(?P<departure_point>.*) > (?P<destination_point>.*)',
+            + ur'(?P<departure_point>.*)\s+>\s+(?P<destination_point>.*)',
         msg_text,
         re.MULTILINE | re.UNICODE
         )