__init__.py 972 B

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