1
0

__init__.py 924 B

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