forked from oyd/mediagoblin-oyd
parent
693a7dec00
commit
a8f06855b5
@ -1 +1,7 @@ |
|||||||
|
## mediagoblin-oyd authors |
||||||
|
|
||||||
|
Özcan Oğuz <ozcan@oyd.org.tr> |
||||||
|
|
||||||
|
## Original authors |
||||||
|
|
||||||
David Thompson <davet@gnu.org> |
David Thompson <davet@gnu.org> |
||||||
|
@ -1,4 +1,4 @@ |
|||||||
MediaGoblin for LibrePlanet |
MediaGoblin for ÖYD |
||||||
=========================== |
=================== |
||||||
|
|
||||||
A simple plugin for https://media.libreplanet.org |
A simple plugin for https://medya.oyd.org.tr derived from LibrePlanet |
||||||
|
@ -0,0 +1,124 @@ |
|||||||
|
# MediaGoblin for ÖYD |
||||||
|
# Copyright (C) 2015 David Thompson <davet@gnu.org> |
||||||
|
# Copyright (C) 2020 Özcan Oğuz <ozcan@oyd.org.tr> |
||||||
|
# |
||||||
|
# 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, register_template_hooks |
||||||
|
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.tools.licenses import SORTED_LICENSES, SUPPORTED_LICENSES, License |
||||||
|
from mediagoblin.decorators import uses_pagination, user_not_banned |
||||||
|
|
||||||
|
# Add GNU FDL 1.3 |
||||||
|
|
||||||
|
gfdl_1_3 = License("GFDL 1.3", |
||||||
|
"GNU Free Documentation License 1.3", |
||||||
|
"https://www.gnu.org/licenses/fdl-1.3.en.html") |
||||||
|
|
||||||
|
SORTED_LICENSES.insert(4, gfdl_1_3) |
||||||
|
SUPPORTED_LICENSES[gfdl_1_3.uri] = gfdl_1_3 |
||||||
|
|
||||||
|
PLUGIN_DIR = os.path.dirname(__file__) |
||||||
|
|
||||||
|
MAX_HOME_ITEMS_DEFAULT = 10 |
||||||
|
|
||||||
|
MAX_HOME_ALL_VIDEO_ITEMS = 10 |
||||||
|
MAX_HOME_ALL_PHOTO_ITEMS = 20 |
||||||
|
MAX_HOME_FEATURED_ITEMS = 10 |
||||||
|
MAX_HOME_LP_ITEMS = 10 |
||||||
|
|
||||||
|
# make tags lowercase and use dashes in place of spaces. |
||||||
|
# uppercase tags will be included by the lowercase form. |
||||||
|
FEATURED_TAG = "yıldızlı" |
||||||
|
|
||||||
|
|
||||||
|
_log = logging.getLogger(__name__) |
||||||
|
|
||||||
|
# This is the function that gets called when the setup |
||||||
|
# hook fires. |
||||||
|
def setup_plugin(): |
||||||
|
_log.info("Setting up medya.oyd.org.tr...") |
||||||
|
|
||||||
|
# Register the template path. |
||||||
|
register_template_path(os.path.join(PLUGIN_DIR, 'templates')) |
||||||
|
|
||||||
|
def lp_media_for_type(db, type, tag=None, max_items=MAX_HOME_ITEMS_DEFAULT): |
||||||
|
if (tag == None): |
||||||
|
cursor = MediaEntry.query |
||||||
|
else: |
||||||
|
cursor = media_entries_for_tag_slug(db, tag) |
||||||
|
|
||||||
|
return cursor.\ |
||||||
|
filter((MediaEntry.media_type == type) |
||||||
|
& (MediaEntry.state == u'processed')).\ |
||||||
|
order_by(MediaEntry.created.desc()).\ |
||||||
|
limit(max_items) |
||||||
|
|
||||||
|
@user_not_banned |
||||||
|
def frontpage_view(request): |
||||||
|
images = lp_media_for_type(request.db, u'mediagoblin.media_types.image', None, MAX_HOME_ALL_PHOTO_ITEMS) |
||||||
|
videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', None, MAX_HOME_ALL_VIDEO_ITEMS) |
||||||
|
|
||||||
|
ozgurkon_video = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-keynote", MAX_HOME_LP_ITEMS) |
||||||
|
ozgurkon_slayt = lp_media_for_type(request.db, u'mediagoblin.media_types.video', "libreplanet-2017-video", MAX_HOME_LP_ITEMS) |
||||||
|
logolar = lp_media_for_type(request.db, u'mediagoblin.media_types.image', "logo", MAX_HOME_LP_ITEMS) |
||||||
|
bultenler = lp_media_for_type(request.db, u'mediagoblin.media_types.pdf', "bulten", MAX_HOME_LP_ITEMS) |
||||||
|
yayinlar = lp_media_for_type(request.db, u'mediagoblin.media_types.pdf', "yayin", MAX_HOME_LP_ITEMS) |
||||||
|
|
||||||
|
featured_images = lp_media_for_type(request.db, u'mediagoblin.media_types.image', FEATURED_TAG, MAX_HOME_FEATURED_ITEMS) |
||||||
|
featured_videos = lp_media_for_type(request.db, u'mediagoblin.media_types.video', FEATURED_TAG, MAX_HOME_FEATURED_ITEMS) |
||||||
|
|
||||||
|
return render_to_response( |
||||||
|
request, 'libreplanet/root.html', |
||||||
|
{'images': images, |
||||||
|
'videos': videos, |
||||||
|
'logolar': logolar, |
||||||
|
'bultenler': bultenler, |
||||||
|
'yayinlar': yayinlar, |
||||||
|
'featured_images': featured_images, |
||||||
|
'featured_videos': featured_videos, |
||||||
|
'allow_registration': mg_globals.app_config["allow_registration"]}) |
||||||
|
|
||||||
|
def frontpage_view_hook(): |
||||||
|
return frontpage_view |
||||||
|
|
||||||
|
register_routes([('all-videos', '/videos', |
||||||
|
'mediagoblin.plugins.libreplanet.views:video_listing'), |
||||||
|
('all-photos', '/photos', |
||||||
|
'mediagoblin.plugins.libreplanet.views:image_listing'), |
||||||
|
|
||||||
|
('featured-videos', '/videos/featured', |
||||||
|
'mediagoblin.plugins.libreplanet.views:featured_video_listing'), |
||||||
|
('featured-photos', '/photos/featured', |
||||||
|
'mediagoblin.plugins.libreplanet.views:featured_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 |
||||||
|
} |
||||||
|
|
||||||
|
register_template_hooks( |
||||||
|
{'header_left': "libreplanet/banner.html", |
||||||
|
'header_extra': "libreplanet/join.html"} |
||||||
|
) |
@ -0,0 +1,42 @@ |
|||||||
|
{# |
||||||
|
# MediaGoblin for LibrePlanet |
||||||
|
# Copyright (C) 2017 Andrew Engelbrecht <andrew@fsf.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/>. |
||||||
|
#} |
||||||
|
|
||||||
|
{# banner |
||||||
|
<style> |
||||||
|
.logo img { margin-top: 80px; } |
||||||
|
.header_left { position: relative; margin-bottom: -64px; } |
||||||
|
</style> |
||||||
|
|
||||||
|
<div style="position: absolute; margin-left: -30px; top: 0; width: 1000px;"> |
||||||
|
<iframe src="//static.fsf.org/nosvn/banners/libreplanet/libreplanet-banner.html" width="100%" height="64px" frameborder="0" scrolling="no"></iframe> |
||||||
|
</div> |
||||||
|
#} |
||||||
|
|
||||||
|
{# style for no banner #} |
||||||
|
<style> |
||||||
|
.logo img { margin-top: 16px; } |
||||||
|
</style> |
||||||
|
|
||||||
|
{# for spacing below the banner |
||||||
|
also update the join.html template file when adding/removing/changing |
||||||
|
the spacing of this div. |
||||||
|
-- sudoman 2017-03-09 |
||||||
|
|
||||||
|
<div style="margin-top: 64px;"></div> |
||||||
|
#} |
||||||
|
|
@ -0,0 +1,49 @@ |
|||||||
|
{# |
||||||
|
# MediaGoblin for LibrePlanet |
||||||
|
# Copyright (C) 2017 Andrew Engelbrecht <andrew@fsf.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/>. |
||||||
|
#} |
||||||
|
|
||||||
|
<style> |
||||||
|
.noselect { |
||||||
|
-webkit-touch-callout: none; /* iOS Safari */ |
||||||
|
-webkit-user-select: none; /* Safari */ |
||||||
|
-khtml-user-select: none; /* Konqueror HTML */ |
||||||
|
-moz-user-select: none; /* Firefox */ |
||||||
|
-ms-user-select: none; /* Internet Explorer/Edge */ |
||||||
|
user-select: none; /* Non-prefixed version, currently |
||||||
|
supported by Chrome and Opera */ |
||||||
|
} |
||||||
|
.campaign_donate { |
||||||
|
text-decoration: none; |
||||||
|
background-color: #4C2447; |
||||||
|
color: #cacaca; |
||||||
|
border-radius: 3px; |
||||||
|
padding: 8px 12px; |
||||||
|
margin-left: 10px; |
||||||
|
} |
||||||
|
</style> |
||||||
|
|
||||||
|
{# for spacing below the banner; see banner.html template. -- sudoman 2017-03-09 #} |
||||||
|
{# |
||||||
|
<div style="margin-top: 64px;"></div> |
||||||
|
#} |
||||||
|
|
||||||
|
<div class="noselect" style="display: inline; margin-right: 40px;"> |
||||||
|
<div style="display: inline; margin-right: 40px;"><a href="https://www.oyd.org.tr" target="_blank">ÖYD</a></div> |
||||||
|
<a class="campaign_donate" href="https://bagis.oyd.org.tr" target="_blank"> |
||||||
|
{% trans %}Bağış{% endtrans %} |
||||||
|
</a> |
||||||
|
</div> |
@ -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,87 @@ |
|||||||
|
{# |
||||||
|
# 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 %}Özgür Yazılım Derneği'nin medya sunucusuna hoş geldiniz!{% endtrans %}</h1> |
||||||
|
<img class="right_align" src="//oyd.org.tr/media.png" /> |
||||||
|
<p> |
||||||
|
{% trans %}Bu web sitesinde, <a href="https://oyd.org.tr" target="_blank">Özgür Yazılım Derneği</a>'nin yaptığı tüm medya çıktıları (belgeler, fotoğraflar, videolar, yayınlar vb.) bulunmaktadır.{% endtrans %} |
||||||
|
</p> |
||||||
|
<p>{% trans %}Derneğimizin projelerinin ve diğer çıktılarının kaynak kodlarına ulaşmak için, <a href="https://git.oyd.org.tr" target="_blank">Git sunucumuzu</a> ziyaret edebilirsiniz.{% endtrans %}</p> |
||||||
|
|
||||||
|
<p>{% trans %} Özgür Yazılım Derneği, özgür yazılım hareketini ve hali ile tüm insanların modern dünyadaki özgürlüklerini savunan insanların oluşturduğu bir topluluktur. Özgür Yazılım Derneği insanların özgürlüğünü, yazılımların özgürlüğünden başlamak üzere, donanımların, İnternet’in ve hizmetlerin özgürlüğü ile bağlantılı olarak savunur. {% endtrans %}</p> |
||||||
|
|
||||||
|
<div class="clear"></div> |
||||||
|
|
||||||
|
<h2>{% trans %}ÖzgürKon 2020 Oturumlar{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, ozgurkon_video) }} |
||||||
|
<div class="clear"></div> |
||||||
|
|
||||||
|
<h2>{% trans %}ÖzgürKon 2020 Slaytlar{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, ozgurkon_slayt) }} |
||||||
|
<div class="clear"></div> |
||||||
|
<p> |
||||||
|
<a href="/u/oyd/tag/ozgurkon-2020/">Tümünü görüntüle...</a> |
||||||
|
</p> |
||||||
|
|
||||||
|
<h2>{% trans %}Bültenler{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, bultenler) }} |
||||||
|
<div class="clear"></div> |
||||||
|
<p> |
||||||
|
<a href="/u/oyd/tag/yayinlar/">Tüm yayınlar...</a> |
||||||
|
</p> |
||||||
|
|
||||||
|
{# commenting out featured media sections for front page #} |
||||||
|
{# |
||||||
|
<h2>{% trans %}Öne çıkan videolar{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, featured_videos) }} |
||||||
|
<div class="clear"></div> |
||||||
|
<p> |
||||||
|
<a href="/videos/featured">Tümü...</a> |
||||||
|
</p> |
||||||
|
|
||||||
|
<h2>{% trans %}Öne çıkan fotoğraflar{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, featured_images) }} |
||||||
|
<div class="clear"></div> |
||||||
|
<p> |
||||||
|
<a href="/photos/featured">Tümü...</a> |
||||||
|
</p> |
||||||
|
#} |
||||||
|
|
||||||
|
<h2>{% trans %}Tüm videolar{% endtrans %}</h2> |
||||||
|
{{ media_grid(request, videos) }} |
||||||
|
<div class="clear"></div> |
||||||
|
<p> |
||||||
|
<a href="/videos">Tümü...</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,62 @@ |
|||||||
|
# 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(media_type, title, request, page, tag=None): |
||||||
|
if (tag == None): |
||||||
|
cursor = MediaEntry.query |
||||||
|
else: |
||||||
|
cursor = media_entries_for_tag_slug(request.db, tag) |
||||||
|
|
||||||
|
cursor = cursor.\ |
||||||
|
filter((MediaEntry.media_type == media_type) |
||||||
|
& (MediaEntry.state == u'processed')).\ |
||||||
|
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) |
||||||
|
|
||||||
|
|
||||||
|
@uses_pagination |
||||||
|
def featured_image_listing(request, page): |
||||||
|
return type_listing(u'mediagoblin.media_types.image', 'Featured Photos', request, page, "featured") |
||||||
|
|
||||||
|
@uses_pagination |
||||||
|
def featured_video_listing(request, page): |
||||||
|
return type_listing(u'mediagoblin.media_types.video', 'Featured Videos', request, page, "featured") |
||||||
|
|
Loading…
Reference in new issue