Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle FUÄU #34

Open
Mortal opened this issue Sep 27, 2021 · 7 comments
Open

Handle FUÄU #34

Mortal opened this issue Sep 27, 2021 · 7 comments

Comments

@Mortal
Copy link
Contributor

Mortal commented Sep 27, 2021

  • tk.email(("FUÄU", 2021), 2021) should be "FUAEU21", not "FUÄU21". We should add a test for this in TestEmail.
  • tk.parse("FUAEU", 2021) will return ("FUÆU", 2021). I suggest we handle this in the mail server by adding a special case in parse_alias_title:
diff --git a/tkmail/address.py b/tkmail/address.py
index f68d5e2..006efb2 100644
--- a/tkmail/address.py
+++ b/tkmail/address.py
@@ -181,5 +181,8 @@ def parse_alias_title(alias, db, current_period):
     elif base in BEST or re.match(r'^E?FU\w+$', base):
         def f():
-            return db.get_user_by_title(base, period)
+            res = db.get_user_by_title(base, period)
+            if not res and "Æ" in base:
+                res = db.get_user_by_title(base.replace("Æ", "Ä"), period)
+            return res
     else:
         return None, None
@Mortal
Copy link
Contributor Author

Mortal commented Sep 27, 2021

Det kunne være rart hvis vi bare kunne ignorere det og bruge UTF-8 i mailadressen. Desværre afviser AUs Exchange-mailserver emailadresser med UTF-8, hvilket man kan afprøve ved at sende en mail til FUBÄ@TAAGEKAMMERET.dk - det giver en mail retur med følgende fejl:

<FUBÄ@TAAGEKAMMERET.dk>: host taagekammeret-dk.mail.protection.outlook.com[104.47.1.36] said: 501 5.1.8 UTF-8 addresses not supported VE1EUR01FT010.eop-EUR01.prod.protection.outlook.com] (in reply to RCPT TO command)

@Mortal
Copy link
Contributor Author

Mortal commented Sep 27, 2021

Det er ikke så pænt at tilføje speciel håndtering i mailserveren. Det kunne være rart hvis det hele logikken er i tktitler.

Et forslag kunne være at tilføje en ny mere generel funktion:

>>> import tktitler as tk
>>> tk.parse_multi("FUAEU", 2021)
[('FUÆU', 2021), ('FUÄU', 2021)]

...men beholde logikken om at f.eks. "FUAAE" (=FUÅE / FUAÆ) er forbudt. Hvad tænker I @kandevander @neic ?

@kandevander
Copy link
Member

Det er ikke så pænt at tilføje speciel håndtering i mailserveren. Det kunne være rart hvis det hele logikken er i tktitler.

Et forslag kunne være at tilføje en ny mere generel funktion:

>>> import tktitler as tk
>>> tk.parse_multi("FUAEU", 2021)
[('FUÆU', 2021), ('FUÄU', 2021)]

...men beholde logikken om at f.eks. "FUAAE" (=FUÅE / FUAÆ) er forbudt. Hvad tænker I @kandevander @neic ?

Jeg tænker at det er en bedre løsning.

@neic
Copy link
Member

neic commented Sep 27, 2021

tk.parse_multi flytter bare problemet til brugeren af dette bibliotek. Siden vi er tvunget til at have denne logik et sted i TK-IT tech stakken, syntes jeg at vi gøre det udelukkende i tktitler. Også selv om "det ikke er pænt". Ideen med tktitler er jo netop at alt denne mærkelige logik kan samles et sted og alle andre stykker software kan bruge den.

Det er anden gang på 6-5 år vi må tilføje sådan logik.

Jeg foreslår at vi tilføjer {"Ä": "AE"} til DIGRAPHS og laver et special case for netop tk.parse("FUAEU", 2021):

>>> import tktitler as tk
>>> tk.parse("FUAEU", 2020)
('FUÆU', 2020)
>>> tk.parse("FUAEU", 2021)
('FUÄU', 2021)
>>> tk.parse("FUAEU", 2022)
('FUÆU', 2022)
>>> tk.email(("FUÄU", 2021), 2021)
'FUAEU21'
>>> tk.email(("FUÆU", 2021), 2021)
'FUAEU21' # Måske ValueError

@Mortal
Copy link
Contributor Author

Mortal commented Sep 29, 2021

Fin pointe - jeg kan godt se idéen i at have en liste af special cases i tktitler.

Hvad med f.eks. tk.email(("FUÄE", 2015))? Hvis vi blindt tilføjer til DIGRAPHS, så vil denne vel blive "FUAEE", men det kan ikke mappes pænt tilbage med tk.parse(). Jeg overvejede om vi skulle lade være med at tilføje til DIGRAPHS, og i stedet have ("FUÄU", 2021, "FUAEU") som specialtilfældet i både tk.email() og tk.parse().

@kandevander
Copy link
Member

Så hvad, blev vi enige om noget eller? Jeg synes Rav idé virker god.

@Mortal Mortal mentioned this issue Oct 27, 2021
@Mortal
Copy link
Contributor Author

Mortal commented Oct 27, 2021

Jeg har implementeret et forslag i #35. Har I tid og lyst til at give et code review?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants