annotate bitsyapps/on.py @ 0:159d911ad01c default tip

initial stub for bitsyapps
author Jeff Hammel <jhammel@mozilla.com>
date Tue, 02 Nov 2010 08:05:36 -0700
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
1 import os
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
2
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
3 class BitsyDoc(object):
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
4
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
5 # TODO: make this work with tagging
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
6
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
7 on = 'on '
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
8 separator = '\n--\n\n'
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
9
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
10 def __init__(self, bitsyblog, directory):
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
11 self.bitsyblog = bitsyblog
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
12 self.directory = directory
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
13 assert os.path.exists(directory)
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
14
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
15 def __call__(self, blog_entry, url):
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
16 title = blog_entry.title()
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
17 if ':' in title and title.startswith(self.on):
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
18 subject, title = title.split(':', 1)
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
19 subject = subject[len(self.on):].lower()
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
20 full_subject = self.on + subject + ':'
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
21
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
22 # XXX single-word subjects, for now
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
23
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
24 filename = subject + '.txt'
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
25 filename = os.path.join(self.directory, filename)
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
26
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
27 exists = os.path.exists(filename)
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
28
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
29 f = file(filename, 'a')
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
30 if exists:
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
31 print >> f, self.separator
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
32
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
33 body = blog_entry.body.split(full_subject, 1)[-1].strip()
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
34
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
35 print >> f, body
159d911ad01c initial stub for bitsyapps
Jeff Hammel <jhammel@mozilla.com>
parents:
diff changeset
36 f.close()