123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- """Libravatar plugin for Pelican"""
- import hashlib
- from pelican import signals
- def initialize (pelicanobj):
- """Initialize the Libravatar plugin"""
- pelicanobj.settings.setdefault ('LIBRAVATAR_MISSING', None)
- pelicanobj.settings.setdefault ('LIBRAVATAR_SIZE', None)
- def add_libravatar (generator, metadata):
- """Article generator connector for the Libravatar plugin"""
- missing = generator.settings.get ('LIBRAVATAR_MISSING')
- size = str (generator.settings.get ('LIBRAVATAR_SIZE'))
-
- if 'email' not in metadata.keys ():
- try:
- metadata ['email'] = generator.settings.get ('AUTHOR_EMAIL')
- except:
- pass
-
- if metadata ['email']:
-
- md5 = hashlib.md5 (metadata ['email'].lower ()).hexdigest ()
- url = 'http://cdn.libravatar.org/avatar/' + md5
-
- if missing or size:
- url = url + '?'
- if missing:
- url = url + 'd=' + missing
- if size:
- url = url + '&'
- if size:
- url = url + 's=' + size
-
- metadata ['author_libravatar'] = url
- def register ():
- """Register the Libravatar plugin with Pelican"""
- signals.initialized.connect (initialize)
- signals.article_generator_context.connect (add_libravatar)
|