forked from oyd/mediagoblin-oyd
commit
724f8731f7
@ -0,0 +1,2 @@ |
||||
*.pyc |
||||
/mediagoblin_libreplanet.egg-info/ |
@ -0,0 +1,69 @@ |
||||
========= |
||||
COPYING |
||||
========= |
||||
|
||||
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, in the file ``licenses/AGPLv3.txt``. |
||||
If not, see <http://www.gnu.org/licenses/>. |
||||
|
||||
|
||||
Translation files located under ``mediagoblin/i18n/`` directory tree |
||||
are 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. |
||||
|
||||
You should have received a copy of the GNU Affero General Public |
||||
License along with this program, in the file ``licenses/AGPLv3.txt``. |
||||
If not, see <http://www.gnu.org/licenses/>. |
||||
|
||||
|
||||
JavaScript files located in the ``mediagoblin/`` directory tree |
||||
are free software: you can redistribute and/or modify them 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. |
||||
|
||||
You should have received a copy of the GNU Lesser General Public |
||||
License along with this program, in the file ``licenses/LGPLv3.txt``. |
||||
If not, see <http://www.gnu.org/licenses/>. |
||||
|
||||
|
||||
Documentation files located in the ``docs/`` directory tree and all |
||||
original documentation theme CSS and assets (including image files) |
||||
are released under a CC0 license. To the extent possible under law, |
||||
the author(s) have dedicated all copyright and related and neighboring |
||||
rights to these files to the public domain worldwide. These files are |
||||
distributed without any warranty. |
||||
|
||||
You should have received a copy of the CC0 license in the file |
||||
``licenses/CC0_1.0.txt``. If not, see |
||||
<http://creativecommons.org/publicdomain/zero/1.0/>. |
||||
|
||||
|
||||
CSS, images and video located in the ``mediagoblin/`` directory tree are |
||||
released under a CC0 license. To the extent possible under law, the author(s) |
||||
have dedicated all copyright and related and neighboring rights to these |
||||
files to the public domain worldwide. These files are distributed without |
||||
any warranty. |
||||
|
||||
You should have received a copy of the CC0 license in the file |
||||
``licenses/CC0_1.0.txt``. If not, see |
||||
<http://creativecommons.org/publicdomain/zero/1.0/>. |
||||
|
||||
|
||||
Additional library software has been made available in the ``extlib/`` |
||||
directory. All of it is Free Software and can be distributed under |
||||
liberal terms, but those terms may differ in detail from the AGPL's |
||||
particulars. See each package's license file in the extlib directory |
||||
for additional terms. |
@ -0,0 +1,4 @@ |
||||
MediaGoblin for LibrePlanet |
||||
=========================== |
||||
|
||||
A simple plugin for https://media.libreplanet.org |
@ -0,0 +1,73 @@ |
||||
# MediaGoblin for LibrePlanet |
||||
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
|
||||
import logging |
||||
import os |
||||
|
||||
from mediagoblin import mg_globals |
||||
from mediagoblin.tools.pluginapi import get_config, register_template_path, register_routes |
||||
from mediagoblin.db.models import MediaEntry |
||||
from mediagoblin.db.util import media_entries_for_tag_slug |
||||
from mediagoblin.tools.pagination import Pagination |
||||
from mediagoblin.tools.response import render_to_response |
||||
from mediagoblin.decorators import uses_pagination, user_not_banned |
||||
|
||||
PLUGIN_DIR = os.path.dirname(__file__) |
||||
MAX_HOME_ITEMS = 20 |
||||
LP_TAG = 'libreplanet2014' |
||||
|
||||
_log = logging.getLogger(__name__) |
||||
|
||||
# This is the function that gets called when the setup |
||||
# hook fires. |
||||
def setup_plugin(): |
||||
_log.info("Setting up Libreplanet...") |
||||
|
||||
# Register the template path. |
||||
register_template_path(os.path.join(PLUGIN_DIR, 'templates')) |
||||
|
||||
def lp_media_for_type(db, type): |
||||
return media_entries_for_tag_slug(db, 'libreplanet2015').\ |
||||
filter(MediaEntry.media_type == type).\ |
||||
order_by(MediaEntry.created.desc()).\ |
||||
limit(MAX_HOME_ITEMS) |
||||
|
||||
@user_not_banned |
||||
def frontpage_view(request): |
||||
images = lp_media_for_type(request.db, u'mediagoblin.media_types.image') |
||||
videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video') |
||||
|
||||
return render_to_response( |
||||
request, 'libreplanet/root.html', |
||||
{'images': images, |
||||
'videos': videos, |
||||
'allow_registration': mg_globals.app_config["allow_registration"]}) |
||||
|
||||
def frontpage_view_hook(): |
||||
return frontpage_view |
||||
|
||||
register_routes([('all-videos', '/videos', |
||||
'mediagoblin_libreplanet.views:video_listing'), |
||||
('all-photos', '/photos', |
||||
'mediagoblin_libreplanet.views:image_listing') |
||||
]) |
||||
|
||||
# This is a dict that specifies which hooks this plugin uses. |
||||
# This one only uses one hook: setup. |
||||
hooks = { |
||||
'setup': setup_plugin, |
||||
'frontpage_view': frontpage_view_hook |
||||
} |
@ -0,0 +1,32 @@ |
||||
{# |
||||
# MediaGoblin for LibrePlanet |
||||
# Copyright (C) 2011, 2012 MediaGoblin contributors |
||||
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
#} |
||||
{% extends "mediagoblin/base.html" %} |
||||
|
||||
{% from "mediagoblin/utils/object_gallery.html" import object_gallery %} |
||||
|
||||
{% block title %} |
||||
{{ title }} — {{ super() }} |
||||
{% endblock %} |
||||
|
||||
{% block mediagoblin_content -%} |
||||
<h1>{{ title }}</h1> |
||||
|
||||
{{ object_gallery(request, media_entries, pagination) }} |
||||
|
||||
{% endblock %} |
@ -0,0 +1,60 @@ |
||||
{# |
||||
# MediaGoblin for LibrePlanet |
||||
# Copyright (C) 2011, 2012 MediaGoblin contributors |
||||
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
#} |
||||
{% extends "mediagoblin/base.html" %} |
||||
|
||||
{% from "mediagoblin/utils/object_gallery.html" import media_grid %} |
||||
|
||||
{% set feed_url = request.urlgen('mediagoblin.listings.atom_feed') %} |
||||
|
||||
{% block mediagoblin_head -%} |
||||
{% set feed_url = request.urlgen('mediagoblin.listings.atom_feed') -%} |
||||
<link rel="alternate" type="application/atom+xml" href="{{ feed_url }}"> |
||||
{%- endblock mediagoblin_head %} |
||||
|
||||
{% block mediagoblin_content %} |
||||
<h1>{% trans %}LibrePlanet{% endtrans %}</h1> |
||||
<img class="right_align" src="//static.fsf.org/nosvn/libreplanet/2015/graphical_assets/lp-logo-for-gmg.svg" /> |
||||
<p> |
||||
{% trans %}The videos on this site were recorded during |
||||
<a href="http://libreplanet.org">LibrePlanet</a>, an annual |
||||
conference for free software enthusiasts held by the Free |
||||
Software Foundation in Cambridge, MA. This site is running |
||||
<a href="http://mediagoblin.org">MediaGoblin</a>, a great piece |
||||
of free media hosting software.{% endtrans %} |
||||
</p> |
||||
<div class="clear"></div> |
||||
|
||||
<h2>{% trans %}Videos{% endtrans %}</h2> |
||||
{{ media_grid(request, videos) }} |
||||
<div class="clear"></div> |
||||
<p> |
||||
<a href="/videos">View all LibrePlanet videos</a> |
||||
</p> |
||||
|
||||
<h2>{% trans %}Photos{% endtrans %}</h2> |
||||
{{ media_grid(request, images) }} |
||||
<div class="clear"></div> |
||||
<p> |
||||
<a href="/photos">View all LibrePlanet photos</a> |
||||
</p> |
||||
|
||||
{#- Need to set feed_url within this block so template can use it. -#} |
||||
{%- set feed_url = feed_url -%} |
||||
{%- include "mediagoblin/utils/feed_link.html" -%} |
||||
{% endblock %} |
@ -0,0 +1,46 @@ |
||||
# MediaGoblin for LibrePlanet |
||||
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
|
||||
from mediagoblin import mg_globals |
||||
from mediagoblin.db.models import MediaEntry |
||||
from mediagoblin.db.util import media_entries_for_tag_slug |
||||
from mediagoblin.tools.pagination import Pagination |
||||
from mediagoblin.tools.response import render_to_response |
||||
from mediagoblin.decorators import uses_pagination |
||||
|
||||
def type_listing(type, title, request, page): |
||||
cursor = MediaEntry.query.\ |
||||
filter(MediaEntry.media_type == type).\ |
||||
order_by(MediaEntry.created.desc()) |
||||
|
||||
pagination = Pagination(page, cursor) |
||||
media_entries = pagination() |
||||
|
||||
return render_to_response( |
||||
request, |
||||
'libreplanet/listing.html', |
||||
{'title': title, |
||||
'media_entries': media_entries, |
||||
'pagination': pagination}) |
||||
|
||||
|
||||
@uses_pagination |
||||
def image_listing(request, page): |
||||
return type_listing(u'mediagoblin.media_types.image', 'Photos', request, page) |
||||
|
||||
@uses_pagination |
||||
def video_listing(request, page): |
||||
return type_listing(u'mediagoblin.media_types.video', 'Videos', request, page) |
@ -0,0 +1,26 @@ |
||||
# MediaGoblin for LibrePlanet |
||||
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||
# |
||||
# 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 <http://www.gnu.org/licenses/>. |
||||
|
||||
from setuptools import setup, find_packages |
||||
|
||||
setup( |
||||
name='mediagoblin_libreplanet', |
||||
version='0.1', |
||||
packages=find_packages(), |
||||
include_package_data=True, |
||||
install_requires=[], |
||||
license='AGPLv3', |
||||
) |
Loading…
Reference in new issue