def harvest(filespec): ''' Get content and metadata from HTML files. Return a single metadata dictionary if a single path is given as input, or a dictionary mapping filenames to metadata dictionaries if multiple paths are given. ''' if isinstance(filespec, basestring): return harvest_metadata(filespec) elif isinstance(filespec, list): return dict([(f, harvest_metadata(f)) for f in filespec]) else: assert False, 'Unknown filespec "{0}"'.format(filespec)
def harvest(filespec): ''' Get content and metadata from HTML files. Return a single metadata dictionary if a single path is given as input, or a dictionary mapping filenames to metadata dictionaries if multiple paths are given. ''' if isinstance(filespec, basestring): return harvest_metadata(filespec) elif isinstance(filespec, list): return dict([(f, harvest_metadata(f)) for f in filespec]) else: assert False, 'Unknown filespec "{0}"'.format(filespec)
def harvest_blog(config): '''Harvest metadata for all blog entries.''' all_meta = [] for folder in glob.glob('blog/????/??'): for post in glob.glob('{0}/*.html'.format(folder)): m = harvest_metadata(post) m['folder'] = folder all_meta.append(m) all_meta.sort(lambda x, y: cmp(x['date'], y['date']) or cmp(x['time'], y['time'])) return all_meta
def harvest_blog(config): '''Harvest metadata for all blog entries.''' all_meta = [] for folder in glob.glob('blog/????/??'): for post in glob.glob('{0}/*.html'.format(folder)): m = harvest_metadata(post) m['folder'] = folder fill_optional_metadata(m, 'favorite') all_meta.append(m) all_meta.sort(lambda x, y: cmp(x['date'], y['date']) or cmp(x['time'], y['time'])) return all_meta
def harvest_blog(config): '''Harvest metadata for all blog entries. Note that the YAML parser reads times with a leading 0 like '09:00:00' as strings, not as times, so we have to convert manually. ''' all_meta = [] for folder in glob.glob('blog/????/??'): for post in glob.glob('{0}/*.html'.format(folder)): m = harvest_metadata(post) m['folder'] = folder fill_optional_metadata(m, 'favorite') all_meta.append(m) decorated = [(x['date'], x['time'], x) for x in all_meta] decorated.sort() all_meta = [x[2] for x in decorated] return all_meta
def harvest_blog(config): '''Harvest metadata for all blog entries. Note that the YAML parser reads times with a leading 0 like '09:00:00' as strings, not as times, so we have to convert manually. ''' all_meta = [] for folder in glob.glob('blog/????/??'): for post in glob.glob('{0}/*.html'.format(folder)): m = harvest_metadata(post) m['folder'] = folder fill_optional_metadata(m, 'favorite') all_meta.append(m) decorated = [(x['date'], x['time'], x) for x in all_meta] decorated.sort() all_meta = [x[2] for x in decorated] return all_meta
#!/usr/bin/env python """ Display all the categories used in blog posts. Usage: categories.py $(ls blog/????/??/*.html) """ import sys from collections import defaultdict from util import harvest_metadata show_count, filenames = False, sys.argv[1:] if filenames[0] == '-n': show_count, filenames = True, filenames[1:] categories = defaultdict(set) for f in filenames: these = harvest_metadata(f)['category'] for t in these: categories[t].add(f) for k in sorted(categories.keys()): if show_count: print '{0}: {1}'.format(len(categories[k]), k) else: print '{0}: {1}'.format(k, len(categories[k]))
""" Display all the categories used in blog posts. Usage: categories.py $(ls blog/????/??/*.html) """ import sys import traceback from collections import defaultdict from util import harvest_metadata show_count, filenames = False, sys.argv[1:] if filenames[0] == '-n': show_count, filenames = True, filenames[1:] categories = defaultdict(set) for f in filenames: try: these = harvest_metadata(f)['category'] for t in these: categories[t].add(f) except Exception as e: print >> sys.stderr, 'Failed in {0}'.format(f) traceback.print_exc(None, sys.stderr) sys.exit(1) for k in sorted(categories.keys()): if show_count: print '{0}: {1}'.format(len(categories[k]), k) else: print '{0}: {1}'.format(k, len(categories[k]))
#!/usr/bin/env python """ Display all the author names used in blog posts. Usage: authors.py $(ls blog/????/??/*.html) """ import sys from util import harvest_metadata names = set() for filename in sys.argv[1:]: names.add(harvest_metadata(filename)['author']) for n in sorted(names): print n
#!/usr/bin/env python """ Display all the author names used in blog posts. Usage: authors.py $(ls blog/????/??/*.html) """ import sys from util import harvest_metadata names = set() for filename in sys.argv[1:]: names.add(harvest_metadata(filename)['author']) for n in sorted(names): print n
#!/usr/bin/env python """ Display all the categories used in blog posts. Usage: categories.py $(ls blog/????/??/*.html) """ import sys from collections import defaultdict from util import harvest_metadata categories = defaultdict(set) for filename in sys.argv[1:]: these = harvest_metadata(filename)['category'] for t in these: categories[t].add(filename) for k in sorted(categories.keys()): print '{0}: {1}'.format(k, ', '.join(categories[k]))
#!/usr/bin/env python3 """ Display all the author names used in blog posts. Usage: authors.py $(ls blog/????/??/*.html) """ import sys from util import harvest_metadata names = set() for filename in sys.argv[1:]: names.add(harvest_metadata(filename)["author"]) for n in sorted(names): print(n)
#!/usr/bin/env python """ Display all the categories used in blog posts. Usage: categories.py $(ls blog/????/??/*.html) """ import sys from collections import defaultdict from util import harvest_metadata categories = defaultdict(set) for filename in sys.argv[1:]: these = harvest_metadata(filename)['category'] for t in these: categories[t].add(filename) for k in sorted(categories.keys()): print '{0}: {1}'.format(k, ', '.join(categories[k]))