projects
/
gc-dialer
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
d2e857e
)
Escaping messages so as to not be mistaken for HTML
author
Ed Page
<eopage@byu.net>
Sat, 19 Feb 2011 00:47:36 +0000
(18:47 -0600)
committer
Ed Page
<eopage@byu.net>
Sat, 19 Feb 2011 00:47:36 +0000
(18:47 -0600)
src/backends/gv_backend.py
patch
|
blob
|
history
src/util/io.py
patch
|
blob
|
history
diff --git
a/src/backends/gv_backend.py
b/src/backends/gv_backend.py
index
e820ffb
..
cf7fd6a
100644
(file)
--- a/
src/backends/gv_backend.py
+++ b/
src/backends/gv_backend.py
@@
-32,6
+32,8
@@
import logging
from gvoice import gvoice
from gvoice import gvoice
+from util import io as io_utils
+
_moduleLogger = logging.getLogger(__name__)
_moduleLogger = logging.getLogger(__name__)
@@
-213,7
+215,7
@@
class GVDialer(object):
"high": "<b>%s</b>",
}
return " ".join(
"high": "<b>%s</b>",
}
return " ".join(
- messagePartFormat[text.accuracy] % text.text
+ messagePartFormat[text.accuracy] % io_utils.escape(text.text)
for text in message.body
)
for text in message.body
)
diff --git
a/src/util/io.py
b/src/util/io.py
index
aac896d
..
397d144
100644
(file)
--- a/
src/util/io.py
+++ b/
src/util/io.py
@@
-8,6
+8,7
@@
import pickle
import contextlib
import itertools
import codecs
import contextlib
import itertools
import codecs
+from xml.sax import saxutils
import csv
try:
import cStringIO as StringIO
import csv
try:
import cStringIO as StringIO
@@
-207,3
+208,23
@@
def unicode_csv_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
def utf_8_encoder(unicode_csv_data):
for line in unicode_csv_data:
yield line.encode('utf-8')
def utf_8_encoder(unicode_csv_data):
for line in unicode_csv_data:
yield line.encode('utf-8')
+
+
+_UNESCAPE_ENTITIES = {
+ """: '"',
+ " ": " ",
+ "'": "'",
+}
+
+
+_ESCAPE_ENTITIES = dict((v, k) for (v, k) in zip(_UNESCAPE_ENTITIES.itervalues(), _UNESCAPE_ENTITIES.iterkeys()))
+
+
+def unescape(text):
+ plain = saxutils.unescape(text, _UNESCAPE_ENTITIES)
+ return plain
+
+
+def escape(text):
+ fancy = saxutils.escape(text, _ESCAPE_ENTITIES)
+ return fancy