Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
#!/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]))
Ejemplo n.º 9
0
#!/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
Ejemplo n.º 10
0
#!/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
Ejemplo n.º 11
0
#!/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]))
Ejemplo n.º 12
0
#!/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)
Ejemplo n.º 13
0
#!/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]))