Add a Google News RSS-based renderer. Minor improvements to all
[kiosk.git] / file_writer.py
1 import constants
2 import os
3
4 def remove_tricky_unicode(x):
5     try:
6         x = x.decode('utf-8')
7         x = x.replace("\u2018", "'").replace("\u2019", "'")
8         x = x.replace("\u201c", '"').replace("\u201d", '"')
9         x = x.replace("\u2e3a", "-").replace("\u2014", "-")
10     except:
11         pass
12     return x
13
14 class file_writer:
15     def __init__(self, filename):
16         self.full_filename = os.path.join(constants.pages_dir,
17                                           filename)
18         self.f = open(self.full_filename, 'wb')
19         self.xforms = [ remove_tricky_unicode ]
20
21     def add_xform(self, xform):
22         self.xforms.append(xform)
23
24     def write(self, data):
25         for xform in self.xforms:
26             data = xform(data)
27         self.f.write(data.encode('utf-8'))
28
29     def done(self):
30         self.f.close()
31
32     def close(self):
33         self.done()
34
35 # Test
36 #def toupper(x):
37 #    return x.upper()
38 #
39 #fw = file_writer("test")
40 #fw.add_xform(toupper)
41 #fw.write(u"This is a \u201ctest\u201d. \n")
42 #fw.done()