summaryrefslogtreecommitdiff
path: root/sandbox/mly/restblog/date_index.py
blob: f430fb08fb1ddabc23cf40c952f45433c6e96229 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/python -tt

# date_index.py
#
# Create chronological index for reStructuredBlog
#
# (C) Magnus Lyckå, Thinkware AB, 2003

import glob, restblog
import cPickle as pickle

IX_FILE_NAME = 'date_index.dat'

try:
    db = pickle.load(file(IX_FILE_NAME))
except:
    db = {'filenames':[], 'index':[]}

for fn in glob.glob(restblog.source_pattern):
    if not fn in db['filenames']:
        db['filenames'].append(fn)
        meta = restblog.Metadata(fn)
        db['index'].append((meta.timestamp(),
                            meta.targetname(),
                            meta.subject()))
db['index'].sort()
db['index'].reverse()
pickle.dump(db, file(IX_FILE_NAME, 'w'))

body = ['Index By Date\n--------------------\n\n']
oldMonthYear = ''
for ts, fn, subj in db['index']:
    monthYear = ts.strftime('%B %Y')
    if monthYear != oldMonthYear:
        body.append("\n\n%s\n.............................\n\n" % monthYear)
        oldMonthYear = monthYear
    body.append("* `%s %s`__\n\n__ %s\n" % (
        ts.strftime('%Y-%m-%d %H:%M'), subj, fn))
restblog.makepage('date_index', "\n".join(body))