feed: Adjust Feed._name_regexp to allow non-ASCII characters
authorW. Trevor King <wking@tremily.us>
Sun, 13 Oct 2013 22:18:06 +0000 (15:18 -0700)
committerW. Trevor King <wking@tremily.us>
Mon, 14 Oct 2013 22:25:22 +0000 (15:25 -0700)
There's no need to restrict folks to the Latin alphabet.

Signed-off-by: W. Trevor King <wking@tremily.us>
rss2email/command.py
rss2email/feed.py

index aca5de8c98ec0becddc8041da04f683424346d0b..038b83f7e5adf3af93bf0179a32d08678c04aae9 100644 (file)
@@ -132,7 +132,7 @@ def opmlimport(feeds, args):
         raise _error.OPMLReadError() from e
     if args.file:
         f.close()
-    name_slug_regexp = _re.compile('[^a-zA-Z0-9._-]+')
+    name_slug_regexp = _re.compile('[^\w\d.-]+')
     for feed in new_feeds:
         if feed.hasAttribute('xmlUrl'):
             url = _saxutils.unescape(feed.getAttribute('xmlUrl'))
index 259807c3315569a569f9bc00e34d6f866c37c10d..a11f6c7bfb2edb5042bd2eae42bf7b107546f342 100644 (file)
@@ -1,3 +1,4 @@
+# -*- coding: utf-8 -*-
 # Copyright (C) 2004-2013 Aaron Swartz
 #                         Brian Lalor
 #                         Dean Jackson
@@ -110,7 +111,7 @@ class Feed (object):
     >>> feed.url
     'http://example.com/feed.atom'
 
-    Names can only contain ASCII letters, digits, and '._-'.  Here the
+    Names can only contain letters, digits, and '._-'.  Here the
     invalid space causes an exception:
 
     >>> Feed(name='invalid name')
@@ -118,6 +119,11 @@ class Feed (object):
       ...
     rss2email.error.InvalidFeedName: invalid feed name 'invalid name'
 
+    However, you aren't restricted to ASCII letters:
+
+    >>> Feed(name='Αθήνα')
+    <Feed Αθήνα (None -> )>
+
     You must define a URL:
 
     >>> Feed(name='feed-without-a-url', to='a@b.com').run(send=False)
@@ -130,8 +136,9 @@ class Feed (object):
 
     >>> CONFIG['DEFAULT']['to'] = ''
     >>> test_section = CONFIG.pop('feed.test-feed')
+
     """
-    _name_regexp = _re.compile('^[a-zA-Z0-9._-]+$')
+    _name_regexp = _re.compile('^[\w\d.-]+$')
 
     # saved/loaded from feed.dat using __getstate__/__setstate__.
     _dynamic_attributes = [