find.py 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import config
  2. from class_xml import XML
  3. from source import *
  4. def find_id():
  5. t = int(input('Sélectionnez la source :\n\t1 : ratp\n\t2 : transilien\n\t3 : jcdecaux_vls (vélos en libre service)\n'))
  6. if t == 1: # RATP
  7. dic = SourceProvider_ratp().dic_of_names()
  8. elif t == 2: # transilien
  9. dic = SourceProvider_transilien().dic_of_names()
  10. elif t == 3: # jcdecaux_vls
  11. print('Téléchargment de la liste des villes...')
  12. xml_contracts = XML(url='https://api.jcdecaux.com/vls/v1/contracts?apiKey=' + config.api_key['jcdecaux_vls'], lang='json')
  13. contracts = {tag.find('name').string : tag.commercial_name.string for tag in xml_contracts.data.json.children}
  14. while True:
  15. print('Choisissez une ville :')
  16. for (name, commercial_name) in contracts.items():
  17. print(name + ' (' + commercial_name + ')')
  18. print("toutes (toutes les villes)\n")
  19. contract = input()
  20. if contract == 'toutes':
  21. contract = None
  22. break;
  23. if contract in contracts:
  24. break;
  25. print("Ville inconnue !\n\n")
  26. dic = SourceProvider_jcdecaux_vls().dic_of_names(contract)
  27. else:
  28. raise ValueError('mauvaise réponse !')
  29. # find an id in dic
  30. while True:
  31. pat = input('Rechercher (ctrl+c pour quitter) : ').lower()
  32. print('Correspondances :')
  33. for key, value in dic.items():
  34. if pat in value.lower():
  35. print(key + ' :\t' + value)
  36. find_id()