浏览代码

Normalisierung der Telefonnummern für Teams-Anrufe

robert 2 年之前
父节点
当前提交
24a1af15aa
共有 2 个文件被更改,包括 37 次插入2 次删除
  1. 30 2
      contacts/o365_copy.py
  2. 7 0
      o365_token.txt

+ 30 - 2
contacts/o365_copy.py

@@ -81,9 +81,37 @@ def delete_contacts(delete_candidates):
             personal_contacts[c].delete()
 
 
+def normalize_phone_number(phone_number: str):
+    if phone_number is None:
+        return None
+    if phone_number.startswith('0'):
+        phone_number = '+49 ' + phone_number[1:]
+    for c in '()/?':
+        phone_number = phone_number.replace(c, '')
+    return phone_number.replace(' -', '-').replace('- ', '-').replace('  ', ' ')
+
+
+def cleanup_contacts():
+    account.authenticate()
+    shared = account.address_book(resource='adressbuch@global-cube.net', address_book='personal')
+
+    for p in shared.get_contacts(limit=None):
+        business = [normalize_phone_number(no) for no in p.business_phones]
+        if p.business_phones != business:
+            p.business_phones = business
+        home = [normalize_phone_number(no) for no in p.home_phones]
+        if p.home_phones != home:
+            p.home_phones = home
+        mobile = normalize_phone_number(p.mobile_phone)
+        if p.mobile_phone != mobile:
+            p.mobile_phone = mobile
+        p.save()
+
+
 if __name__ == '__main__':
-    # sync_contacts()
-    delete_contacts(['Kia Kia Hotline', 'Marcel J.G. Kamps', 'Kevin Baumann (next motion)', 'Marius kling', 'Herr Haase', 'Birgit Dingfeldt'])
+    sync_contacts()
+    # delete_contacts({'Peugeot Peugeot / Citroen - Hotline'})
+    # cleanup_contacts()
     # gal = account.directory()
     # mails = [p.mail for p in gal.get_users()]
     # print(mails)

+ 7 - 0
o365_token.txt

@@ -0,0 +1,7 @@
+{
+ "token_type": "Bearer",
+ "expires_in": 3599,
+ "ext_expires_in": 3599,
+ "access_token": "eyJ0eXAiOiJKV1QiLCJub25jZSI6ImhGd21jV280Q3k2X0JjU3hGb1Q5N3pUYmwxbjA4R05QaWQydmtLQ3JPSTAiLCJhbGciOiJSUzI1NiIsIng1dCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSIsImtpZCI6IjJaUXBKM1VwYmpBWVhZR2FYRUpsOGxWMFRPSSJ9.eyJhdWQiOiJodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20iLCJpc3MiOiJodHRwczovL3N0cy53aW5kb3dzLm5ldC8yYWQwZGZmNS0wN2NlLTRjYzItYTg1Mi05OWNlOGI5MWMyMTgvIiwiaWF0IjoxNjY2MzY2NDM3LCJuYmYiOjE2NjYzNjY0MzcsImV4cCI6MTY2NjM3MDMzNywiYWlvIjoiRTJaZ1lPaitjeWV5dmU2THJlaTB2cVFsK3lZa0FBQT0iLCJhcHBfZGlzcGxheW5hbWUiOiJnY19leGNoYW5nZSIsImFwcGlkIjoiOTI1Zjc0ZGMtZjk2YS00NzE4LTljYTctZDZjYzNmYTQzZTFlIiwiYXBwaWRhY3IiOiIxIiwiaWRwIjoiaHR0cHM6Ly9zdHMud2luZG93cy5uZXQvMmFkMGRmZjUtMDdjZS00Y2MyLWE4NTItOTljZThiOTFjMjE4LyIsImlkdHlwIjoiYXBwIiwib2lkIjoiNWFlYTIxNmYtMGRiOS00NzkzLWFkMDUtNTcyOWMxODJhYWU4IiwicmgiOiIwLkFUa0E5ZF9RS3M0SHdreW9VcG5PaTVIQ0dBTUFBQUFBQUFBQXdBQUFBQUFBQUFBNUFBQS4iLCJyb2xlcyI6WyJVc2VyLlJlYWRXcml0ZS5BbGwiLCJEaXJlY3RvcnkuUmVhZFdyaXRlLkFsbCIsIkNvbnRhY3RzLlJlYWRXcml0ZSIsIkRpcmVjdG9yeS5SZWFkLkFsbCIsIlVzZXIuUmVhZC5BbGwiLCJDb250YWN0cy5SZWFkIl0sInN1YiI6IjVhZWEyMTZmLTBkYjktNDc5My1hZDA1LTU3MjljMTgyYWFlOCIsInRlbmFudF9yZWdpb25fc2NvcGUiOiJFVSIsInRpZCI6IjJhZDBkZmY1LTA3Y2UtNGNjMi1hODUyLTk5Y2U4YjkxYzIxOCIsInV0aSI6IjAzZzJSbF9XQUVtOWE1V3N2Y0FQQUEiLCJ2ZXIiOiIxLjAiLCJ3aWRzIjpbIjA5OTdhMWQwLTBkMWQtNGFjYi1iNDA4LWQ1Y2E3MzEyMWU5MCJdLCJ4bXNfdGNkdCI6MTU0OTYxNDI1MywieG1zX3RkYnIiOiJFVSJ9.lW5WJ1Q31PZoswFbgQV6i7uEVJVoSxWYc-_OjvBGGXw1GM-vVWhh-D0j5ptPvUVWNmT9NqPer8VQkI_eSGregJo7tq_VCdelGwPApet14MZWtakmRxtfSuVmIkbTno5aroB0uYzX5epiX3Tj80_m3Ycrogb7R6eSvu6YaywEc-r_YLMWew4X5-xiRttUTSK8Ga6nG9esRNvJ0-rm-KdqMcWifvHGzt0QhsyhwK6BP2_Nr1jBV30DtxucRo9uqtWlu0iwAZrsDxV534APL7aBcHzmX195x4B99ECLJE9b89MOjqSLKDdcQyfg3KZgTQZwZ7aAVZ0wCcz7vQkWwSTfTw",
+ "expires_at": 1666370336.965342
+}