12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- # -*- coding: utf-8 -*-
- # NEEDS WORK
- """
- Copyright (c) Marco Milanesi <kpanic@gnufunk.org>
- Github Activity
- ---------------
- A plugin to list your Github Activity
- """
- from __future__ import unicode_literals, print_function
- import logging
- logger = logging.getLogger(__name__)
- from pelican import signals
- class GitHubActivity():
- """
- A class created to fetch github activity with feedparser
- """
- def __init__(self, generator):
- import feedparser
- self.activities = feedparser.parse(
- generator.settings['GITHUB_ACTIVITY_FEED'])
- self.max_entries = generator.settings['GITHUB_ACTIVITY_MAX_ENTRIES']
- def fetch(self):
- """
- returns a list of html snippets fetched from github actitivy feed
- """
- entries = []
- for activity in self.activities['entries']:
- entries.append(
- [element for element in [activity['title'],
- activity['content'][0]['value']]])
- return entries[0:self.max_entries]
- def fetch_github_activity(gen, metadata):
- """
- registered handler for the github activity plugin
- it puts in generator.context the html needed to be displayed on a
- template
- """
- if 'GITHUB_ACTIVITY_FEED' in gen.settings.keys():
- gen.context['github_activity'] = gen.plugin_instance.fetch()
- def feed_parser_initialization(generator):
- """
- Initialization of feed parser
- """
- generator.plugin_instance = GitHubActivity(generator)
- def register():
- """
- Plugin registration
- """
- try:
- signals.article_generator_init.connect(feed_parser_initialization)
- signals.article_generator_context.connect(fetch_github_activity)
- except ImportError:
- logger.warning('`github_activity` failed to load dependency `feedparser`.'
- '`github_activity` plugin not loaded.')
|