diff --git a/address-kit/README.md b/address-kit/README.md index 980d95d..faa85c0 100644 --- a/address-kit/README.md +++ b/address-kit/README.md @@ -46,3 +46,41 @@ ] }] ``` + + +### V1/affiliationcountry/detect_country + +Ce service permet à partir d'une adresse de déteminer le pays même s'il n'est pas dans l'adresse + +Prend en entrée du JSON avec deux champs: `id` et `value`, et renvoie un JSON +avec le nom du pays et le code pays dans le champ `value`. + +#### Exemple + +```bash +cat <0: + a=a.replace(a1[0],'') + if len(a11)>0: + a=a.replace(a11[0],'') + if "university" in a.lower().split()[:-1]: + + a=a.replace(' hospital ',' ') + + a2=re.findall("university [a-zA-Z&]+",unidecode.unidecode(a), flags=re.IGNORECASE) + if len(a2)>1: + + a3=a2[0].replace("university of ","university ") + if len(a2)<1: + a2=unidecode.unidecode(a).lower().replace('university','$ university').split('$ ') + a2.insert(0,a3) + try: + a2.remove('university of science') + except ValueError: + uos=0 + elif ("university" ==a.split()[-1].lower()) or ("university," in a.lower()): + a2=re.findall("[ a-zA-Z]+ university",unidecode.unidecode(a), flags=re.IGNORECASE) + a2.insert(0,'') + + elif "universite " in unidecode.unidecode(a).lower(): + + a2=re.findall("universite (?:[A-Za-z]+\s){1}[A-Za-z]+",unidecode.unidecode(a), flags=re.IGNORECASE) + a3=re.findall("(?:[A-Za-z]+\s){1}[A-Za-z]+ universite",unidecode.unidecode(a), flags=re.IGNORECASE) + if len(a3)==0: + a3=[' '] + a2.insert(0,a3[0]) + if len(a2)<2: + a2=unidecode.unidecode(a).lower().replace('universite','$ universite').split('$ ') + + elif "universidad " in unidecode.unidecode(a).lower(): + a2=re.findall("universidad [ a-zA-Z]+",unidecode.unidecode(a), flags=re.IGNORECASE) + a2.insert(0,'') + if len(a2)<2: + a2=unidecode.unidecode(a).lower().replace('universidad','$ universidad').split('$ ') + + elif "universitat " in unidecode.unidecode(a).lower(): + a2=re.findall("universitat [ a-zA-Z]+",unidecode.unidecode(a), flags=re.IGNORECASE) + a2.insert(0,'') + if len(a2)<2: + a2=unidecode.unidecode(a).lower().replace('universitat','$ universitat').split('$ ') + + elif "hopital " in unidecode.unidecode(a).lower(): + a2=re.findall("hopital [a-zA-Z']+",unidecode.unidecode(a), flags=re.IGNORECASE) + a2.insert(0,'') + + elif ("chu" and "chru") in unidecode.unidecode(a).lower(): + if ("chu de " and "chru de ") in unidecode.unidecode(a).lower(): + a2=re.findall("ch[r]?u de [a-zA-Z']+",unidecode.unidecode(a), flags=re.IGNORECASE) + a2.insert(0,'') + else: + + a2=re.findall("ch[r]?u [a-zA-Z']+",unidecode.unidecode(a), flags=re.IGNORECASE) + a3=a2[0].replace("chru","chu") + a2.insert(0,a3) + + elif ',' in a: + a2=a.split(',') + + elif ':' in a: + a2=a.split(':') + + elif " et " in a.split()[:-2]: + + a2=a.split(' et ') + + elif (' — ' and ' - ') in a: + + if ' — ' in a: + a2=a.split(' — ') + else: + a2=a.split(' - ') + elif ' an der ' in a: + + a2=a.split(' an der ') + elif '-' in a: + + a2=re.findall(r'\w+(?:-\w+)+',a) + a2.insert(0,'') + + if len(a2)>1: + lon=1 + for aa in reversed(a2): + aa=aa.strip() + #time.sleep(1) + try: + + country=placeaddress(aa)[0] + lat=placeaddress(aa)[1] + lng=placeaddress(aa)[2] + + break + except TypeError: + to=1 + + if lon==len(a2): + country="unknown" + + lon+=1 +# +# elif re.match(r'u[amsrp]+ ?[0-9]+',a): +# country='France' + else: + country="Unknown" + try: + data["value"]=[country, countries.get(country).alpha3] + except KeyError: + data["value"]=[country, 'N/A'] + sys.stdout.write(json.dumps(data)) + sys.stdout.write('\n') + + + + + +