Changeset - d461c1bc86f7
[Not reviewed]
4 1 2
Ben Sturmfels (bsturmfels) - 6 months ago 2024-03-06 06:34:48
ben@sturm.com.au
podjango: Add The Corresponding Source logo to feed
7 files changed with 2 insertions and 2 deletions:
0 comments (0 inline, 0 general)
conservancy/podjango/feeds.py
Show inline comments
 
#  Copyright (C) 2008, 2010 Bradley M. Kuhn <bkuhn@ebb.org>
 
#  Copyright (C) 2006, 2007 Software Freedom Law Center, Inc.
 
#
 
# This software's license gives you freedom; you can copy, convey,
 
# propogate, redistribute and/or modify this program under the terms of
 
# the GNU Affero General Public License (AGPL) as published by the Free
 
# Software Foundation (FSF), either version 3 of the License, or (at your
 
# option) any later version of the AGPL published by the FSF.
 
#
 
# 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 a file in the toplevel directory called
 
# "AGPLv3".  If not, see <http://www.gnu.org/licenses/>.
 
#
 

	
 
from datetime import datetime
 

	
 
from django.contrib.sites.shortcuts import get_current_site
 
from django.contrib.syndication.views import Feed, add_domain
 
from django.shortcuts import render
 
from django.utils.feedgenerator import Rss201rev2Feed
 

	
 
from .models import Cast
 

	
 
# FIXME: Settings here should not be hard-coded for given casts, but
 
# should instead have settings from the main screen.
 

	
 

	
 
class CastFeedBase(Feed):
 
    def copyright_holder(self):
 
        return "Bradley M. Kuhn, Karen M. Sandler"
 

	
 
    def license_no_html(self):
 
        return "Licensed under a Creative Commons Attribution-Share Alike 3.0 USA License."
 

	
 
    def item_copyright(self, item):
 
        year = 2008
 
        for attr in ('pub_date', 'date_created', 'date_last_modified'):
 
            if hasattr(item, attr):
 
                if hasattr(getattr(item, attr), 'year'):
 
                    year = getattr(getattr(item, attr), 'year')
 
                    break
 
        return 'Copyright (C) %d, %s.  %s' % (year, self.copyright_holder(), self.license_no_html())
 

	
 
    def item_extra_kwargs(self, item):
 
        year = 2008
 
        for attr in ('pub_date', 'date_created', 'date_last_modified'):
 
            if hasattr(item, attr):
 
                if hasattr(getattr(item, attr), 'year'):
 
                    year = getattr(getattr(item, attr), 'year')
 
                    break
 
        return {'year': year}
 

	
 

	
 
def for_podcast_feed_extra_kwargs(self, obj):
 
    return {
 
        'managingEditorNames': 'Bradley and Karen',
 
        'rssImage': {'url': 'https://sfconservancy.org/static/podjango/img/cast/faif_144x144.jpg',
 
        'rssImage': {'url': 'https://sfconservancy.org/static/podjango/img/cast/tcs_300x300.jpg',
 
                     'width': '144', 'height': '144'},
 
        'webMaster': 'oggcast@faif.us (Bradley and Karen)',
 
        'dcCreator': 'oggcast@faif.us (Bradley and Karen)',
 
        'iTunesExplicit': 'No',
 
        'iTunesBlock': 'No',
 
        'iTunesImage': {'url': 'https://sfconservancy.org/static/podjango/img/cast/faif_300x300.jpg',
 
        'iTunesImage': {'url': 'https://sfconservancy.org/static/podjango/img/cast/tcs_300x300.jpg',
 
                        'title': 'The Corresponding Source (formerly Free as in Freedom)',
 
                        'link': self.author_link,
 
                        'type': 'video/jpg'},
 
        'category': {'name': 'Government & Organizations', 'scheme': 'http://www.itunes.com/dtds/podcast-1.0.dtd',
 
                     'subcats': ['Non-Profit']},
 
        'keywords': 'open source, opensource, freesoftware, software freedom, legal, law, linux, free, license, gpl, lgpl, agpl, bsd',
 
        'iTunesAuthor': 'Software Freedom Conservancy',
 
        'iTunesSubtitle': 'Bi-Weekly Discussion of Legal, Policy, and Any other Issues in the Free, Libre, and Open Source Software (FLOSS) Community',
 
        'copyrightHolder': self.copyright_holder(),
 
        'copyrightLicense': self.license_no_html(),
 
    }
 

	
 

	
 
def for_podcast_item_extra_kwargs(self, item):
 
    return {
 
        'duration': item.duration,
 
        'year': item.date_created.year,
 
        'dcCreator': 'oggcast@faif.us (Bradley and Karen)',
 
        'intheitembkuhn': item.__dict__.__str__(),
 
    }
 

	
 

	
 
def podcast_helper_add_root_elements(self, handler):
 
    handler.addQuickElement('managingEditor', self.feed['author_email']
 
                            + ' (' + self.feed['managingEditorNames'] + ')')
 
    handler.startElement('image', {})
 
    handler.addQuickElement('url', self.feed['rssImage']['url'])
 
    handler.addQuickElement('title', self.feed['author_name'])
 
    handler.addQuickElement('link', self.feed['link'])
 
    handler.addQuickElement('width', self.feed['rssImage']['width'])
 
    handler.addQuickElement('height', self.feed['rssImage']['height'])
 
    handler.endElement('image')
 

	
 
    handler.addQuickElement('webMaster', self.feed['webMaster'])
 
#    handler.addQuickElement('dc:creator', self.feed['dcCreator'])
 
    handler.addQuickElement('itunes:explicit', self.feed['iTunesExplicit'])
 
    handler.addQuickElement('itunes:block', self.feed['iTunesBlock'])
 
    handler.addQuickElement('generator', 'http://www.faif.us/code')
 

	
 
    handler.addQuickElement('media:thumbnail', '' , { 'url' : self.feed['rssImage']['url'] })
 
    handler.addQuickElement('itunes:image', '' , { 'href' : self.feed['iTunesImage']['url']})
 
#    handler.addQuickElement('itunes:link', '', { 'href' : self.feed['iTunesImage']['url'],
 
#                                                 'type' : self.feed['iTunesImage']['type']})
 

	
 
    handler.addQuickElement("media:category", self.feed['category']['name'],
 
                            {'scheme': self.feed['category']['scheme']})
 
    if not (self.feed['category']['subcats'] and len(self.feed['category']['subcats']) > 0):
 
        handler.addQuickElement("itunes:category", '', {'text': self.feed['category']['name']})
 
    else:
 
        handler.startElement("itunes:category", {'text': self.feed['category']['name']})
 
        for cc in self.feed['category']['subcats']:
 
            handler.addQuickElement("itunes:category", '', {'text': cc})
 
        handler.endElement("itunes:category")
 

	
 
    handler.addQuickElement("media:keywords", self.feed['keywords'].replace(" ", ","))
 

	
 
    handler.startElement("itunes:owner", {})
 
    handler.addQuickElement("itunes:email", self.feed['author_email'])
 
    handler.addQuickElement("itunes:name", self.feed['author_name'])
 
    handler.endElement("itunes:owner")
 

	
 
    handler.addQuickElement("itunes:summary", self.feed['description'])
 
    handler.addQuickElement("itunes:subtitle", self.feed['iTunesSubtitle'])
 

	
conservancy/podjango/static/podjango/img/cast/faif_144x144.jpg
Show inline comments
 
deleted file
 
binary diff not shown
Show images
conservancy/podjango/static/podjango/img/cast/faif_200x200.jpg
Show inline comments
 
deleted file
 
binary diff not shown
Show images
conservancy/podjango/static/podjango/img/cast/faif_300x300.jpg
Show inline comments
 
deleted file
 
binary diff not shown
Show images
conservancy/podjango/static/podjango/img/cast/faif_300x300.xcf
Show inline comments
 
deleted file
 
binary diff not shown
conservancy/podjango/static/podjango/img/cast/tcs_300x300.jpg
Show inline comments
 
new file 100644
 
binary diff not shown
Show images
conservancy/podjango/static/podjango/img/cast/tcs_300x300.xcf
Show inline comments
 
new file 100644
 
binary diff not shown
0 comments (0 inline, 0 general)