Show More
@@ -292,29 +292,8 b' def permissions(flags):' | |||
|
292 | 292 | def person(author): |
|
293 | 293 | """Any text. Returns the name before an email address, |
|
294 | 294 | interpreting it as per RFC 5322. |
|
295 | ||
|
296 | >>> person(b'foo@bar') | |
|
297 | 'foo' | |
|
298 | >>> person(b'Foo Bar <foo@bar>') | |
|
299 | 'Foo Bar' | |
|
300 | >>> person(b'"Foo Bar" <foo@bar>') | |
|
301 | 'Foo Bar' | |
|
302 | >>> person(b'"Foo \"buz\" Bar" <foo@bar>') | |
|
303 | 'Foo "buz" Bar' | |
|
304 | >>> # The following are invalid, but do exist in real-life | |
|
305 | ... | |
|
306 | >>> person(b'Foo "buz" Bar <foo@bar>') | |
|
307 | 'Foo "buz" Bar' | |
|
308 | >>> person(b'"Foo Bar <foo@bar>') | |
|
309 | 'Foo Bar' | |
|
310 | 295 | """ |
|
311 | if '@' not in author: | |
|
312 | return author | |
|
313 | f = author.find('<') | |
|
314 | if f != -1: | |
|
315 | return author[:f].strip(' "').replace('\\"', '"') | |
|
316 | f = author.find('@') | |
|
317 | return author[:f].replace('.', ' ') | |
|
296 | return stringutil.person(author) | |
|
318 | 297 | |
|
319 | 298 | @templatefilter('revescape') |
|
320 | 299 | def revescape(text): |
@@ -131,6 +131,33 b' def email(author):' | |||
|
131 | 131 | r = None |
|
132 | 132 | return author[author.find('<') + 1:r] |
|
133 | 133 | |
|
134 | def person(author): | |
|
135 | """Returns the name before an email address, | |
|
136 | interpreting it as per RFC 5322 | |
|
137 | ||
|
138 | >>> person(b'foo@bar') | |
|
139 | 'foo' | |
|
140 | >>> person(b'Foo Bar <foo@bar>') | |
|
141 | 'Foo Bar' | |
|
142 | >>> person(b'"Foo Bar" <foo@bar>') | |
|
143 | 'Foo Bar' | |
|
144 | >>> person(b'"Foo \"buz\" Bar" <foo@bar>') | |
|
145 | 'Foo "buz" Bar' | |
|
146 | >>> # The following are invalid, but do exist in real-life | |
|
147 | ... | |
|
148 | >>> person(b'Foo "buz" Bar <foo@bar>') | |
|
149 | 'Foo "buz" Bar' | |
|
150 | >>> person(b'"Foo Bar <foo@bar>') | |
|
151 | 'Foo Bar' | |
|
152 | """ | |
|
153 | if '@' not in author: | |
|
154 | return author | |
|
155 | f = author.find('<') | |
|
156 | if f != -1: | |
|
157 | return author[:f].strip(' "').replace('\\"', '"') | |
|
158 | f = author.find('@') | |
|
159 | return author[:f].replace('.', ' ') | |
|
160 | ||
|
134 | 161 | _correctauthorformat = remod.compile(br'^[^<]+\s\<[^<>]+@[^<>]+\>$') |
|
135 | 162 | |
|
136 | 163 | def isauthorwellformed(author): |
General Comments 0
You need to be logged in to leave comments.
Login now