# GNU MediaGoblin -- federated, autonomous media hosting # Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import logging import os from pkg_resources import resource_filename from mediagoblin.tools.pluginapi import (register_template_path, register_routes, register_template_hooks) from mediagoblin.plugins.archivalook.views import (get_root_view, add_featured_media_to_media_home) from mediagoblin.tools.staticdirect import PluginStatic _log = logging.getLogger(__name__) _setup_plugin_called = 0 def setup_plugin(): global _setup_plugin_called my_plugin_dir = os.path.dirname(__file__) template_dir = os.path.join(my_plugin_dir, 'templates') register_template_path(template_dir) register_routes([ ('manage-featured-media', '/mod/feature-media/', 'mediagoblin.plugins.archivalook.views:featured_media_panel'), ('gallery-recent-media', '/recent/', 'mediagoblin.plugins.archivalook.views:recent_media_gallery_view'), ('mediagoblin.user_pages.media_feature', '/u//m//feature/', 'mediagoblin.plugins.archivalook.views:feature_media'), ('mediagoblin.user_pages.media_unfeature', '/u//m//unfeature/', 'mediagoblin.plugins.archivalook.views:unfeature_media'), ('mediagoblin.user_pages.feature_promote', '/u//m//promote_feature/', 'mediagoblin.plugins.archivalook.views:promote_featured_media'), ('mediagoblin.user_pages.feature_demote', '/u//m//demote_feature/', 'mediagoblin.plugins.archivalook.views:demote_featured_media')]) register_template_hooks({ 'media_sideinfo':'archivalook/feature_media_sidebar.html'}) register_template_hooks({ 'moderation_powers':'archivalook/bits/feature_dropdown.html'}) # Add template head hooks, if certain media types are enabled from mediagoblin import mg_globals plugin_section = mg_globals.global_config.get("plugins", {}) if "mediagoblin.media_types.video" in plugin_section: register_template_hooks({ "archivalook_feature_head": ( "/archivalook/feature_displays/video_head.html")}) if "mediagoblin.media_types.audio" in plugin_section: register_template_hooks({ "archivalook_feature_head": ( "/archivalook/feature_displays/audio_head.html")}) IMAGE_PRIMARY_TEMPLATE = "/archivalook/feature_displays/image_primary.html" IMAGE_SECONDARY_TEMPLATE = "/archivalook/feature_displays/image_secondary.html" IMAGE_TERTIARY_TEMPLATE = "/archivalook/feature_displays/image_tertiary.html" AUDIO_PRIMARY_TEMPLATE = "/archivalook/feature_displays/audio_primary.html" AUDIO_SECONDARY_TEMPLATE = "/archivalook/feature_displays/audio_secondary.html" AUDIO_TERTIARY_TEMPLATE = "/archivalook/feature_displays/audio_tertiary.html" VIDEO_PRIMARY_TEMPLATE = "/archivalook/feature_displays/video_primary.html" VIDEO_SECONDARY_TEMPLATE = "/archivalook/feature_displays/video_secondary.html" VIDEO_TERTIARY_TEMPLATE = "/archivalook/feature_displays/video_tertiary.html" hooks = { 'setup': setup_plugin, 'static_setup': lambda: PluginStatic( 'archivalook', resource_filename('mediagoblin.plugins.archivalook', 'static') ), 'frontpage_view': get_root_view, 'media_home_context': add_featured_media_to_media_home, # # Primary and secondary templates ("feature_primary_template", "mediagoblin.media_types.image"): lambda: IMAGE_PRIMARY_TEMPLATE, ("feature_secondary_template", "mediagoblin.media_types.image"): lambda: IMAGE_SECONDARY_TEMPLATE, ("feature_primary_template", "mediagoblin.media_types.audio"): lambda: AUDIO_PRIMARY_TEMPLATE, ("feature_secondary_template", "mediagoblin.media_types.audio"): lambda: AUDIO_SECONDARY_TEMPLATE, ("feature_primary_template", "mediagoblin.media_types.video"): lambda: VIDEO_PRIMARY_TEMPLATE, ("feature_secondary_template", "mediagoblin.media_types.video"): lambda: VIDEO_SECONDARY_TEMPLATE, }