__init__.py 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # -*- coding: utf-8 -*-
  2. import email
  3. import traceback
  4. import amazon
  5. import banggood
  6. import hm
  7. import ikea
  8. import ingdiba
  9. import lieferservice
  10. import mytaxi
  11. import oebb
  12. import uber
  13. import yipbee
  14. order_confirmation_parsers = [
  15. amazon.parse_order_confirmation_mail,
  16. banggood.parse_order_confirmation_mail,
  17. hm.parse_order_confirmation_mail,
  18. ikea.parse_order_confirmation_mail,
  19. lieferservice.parse_order_confirmation_mail,
  20. mytaxi.parse_order_confirmation_mail,
  21. oebb.parse_order_confirmation_mail,
  22. uber.parse_order_confirmation_mail,
  23. yipbee.parse_order_confirmation_mail,
  24. ]
  25. def parse_order_confirmation_mail(mail):
  26. assert isinstance(mail, email.message.Message)
  27. tracebacks = {}
  28. for parser in order_confirmation_parsers:
  29. try:
  30. return parser(mail = mail)
  31. except:
  32. tracebacks['%s.%s' % (parser.__module__, parser.__name__)] = traceback.format_exc()
  33. raise Exception('\n'.join(['%s:\n%s' % (f, t) for (f, t) in tracebacks.items()]))