160 lines
3.7 KiB
Python
160 lines
3.7 KiB
Python
|
#!/usr/bin/python
|
||
|
#
|
||
|
# Copyright (C) 2009 Google Inc.
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
"""Contains the data classes of the Yahoo! Media RSS Extension"""
|
||
|
|
||
|
|
||
|
__author__ = 'j.s@google.com (Jeff Scudder)'
|
||
|
|
||
|
|
||
|
import atom.core
|
||
|
|
||
|
|
||
|
MEDIA_TEMPLATE = '{http://search.yahoo.com/mrss//}%s'
|
||
|
|
||
|
|
||
|
class MediaCategory(atom.core.XmlElement):
|
||
|
"""Describes a media category."""
|
||
|
_qname = MEDIA_TEMPLATE % 'category'
|
||
|
scheme = 'scheme'
|
||
|
label = 'label'
|
||
|
|
||
|
|
||
|
class MediaCopyright(atom.core.XmlElement):
|
||
|
"""Describes a media copyright."""
|
||
|
_qname = MEDIA_TEMPLATE % 'copyright'
|
||
|
url = 'url'
|
||
|
|
||
|
|
||
|
class MediaCredit(atom.core.XmlElement):
|
||
|
"""Describes a media credit."""
|
||
|
_qname = MEDIA_TEMPLATE % 'credit'
|
||
|
role = 'role'
|
||
|
scheme = 'scheme'
|
||
|
|
||
|
|
||
|
class MediaDescription(atom.core.XmlElement):
|
||
|
"""Describes a media description."""
|
||
|
_qname = MEDIA_TEMPLATE % 'description'
|
||
|
type = 'type'
|
||
|
|
||
|
|
||
|
class MediaHash(atom.core.XmlElement):
|
||
|
"""Describes a media hash."""
|
||
|
_qname = MEDIA_TEMPLATE % 'hash'
|
||
|
algo = 'algo'
|
||
|
|
||
|
|
||
|
class MediaKeywords(atom.core.XmlElement):
|
||
|
"""Describes a media keywords."""
|
||
|
_qname = MEDIA_TEMPLATE % 'keywords'
|
||
|
|
||
|
|
||
|
class MediaPlayer(atom.core.XmlElement):
|
||
|
"""Describes a media player."""
|
||
|
_qname = MEDIA_TEMPLATE % 'player'
|
||
|
height = 'height'
|
||
|
width = 'width'
|
||
|
url = 'url'
|
||
|
|
||
|
|
||
|
class MediaRating(atom.core.XmlElement):
|
||
|
"""Describes a media rating."""
|
||
|
_qname = MEDIA_TEMPLATE % 'rating'
|
||
|
scheme = 'scheme'
|
||
|
|
||
|
|
||
|
class MediaRestriction(atom.core.XmlElement):
|
||
|
"""Describes a media restriction."""
|
||
|
_qname = MEDIA_TEMPLATE % 'restriction'
|
||
|
relationship = 'relationship'
|
||
|
type = 'type'
|
||
|
|
||
|
|
||
|
class MediaText(atom.core.XmlElement):
|
||
|
"""Describes a media text."""
|
||
|
_qname = MEDIA_TEMPLATE % 'text'
|
||
|
end = 'end'
|
||
|
lang = 'lang'
|
||
|
type = 'type'
|
||
|
start = 'start'
|
||
|
|
||
|
|
||
|
class MediaThumbnail(atom.core.XmlElement):
|
||
|
"""Describes a media thumbnail."""
|
||
|
_qname = MEDIA_TEMPLATE % 'thumbnail'
|
||
|
time = 'time'
|
||
|
url = 'url'
|
||
|
width = 'width'
|
||
|
height = 'height'
|
||
|
|
||
|
|
||
|
class MediaTitle(atom.core.XmlElement):
|
||
|
"""Describes a media title."""
|
||
|
_qname = MEDIA_TEMPLATE % 'title'
|
||
|
type = 'type'
|
||
|
|
||
|
|
||
|
class MediaContent(atom.core.XmlElement):
|
||
|
"""Describes a media content."""
|
||
|
_qname = MEDIA_TEMPLATE % 'content'
|
||
|
bitrate = 'bitrate'
|
||
|
is_default = 'isDefault'
|
||
|
medium = 'medium'
|
||
|
height = 'height'
|
||
|
credit = [MediaCredit]
|
||
|
language = 'language'
|
||
|
hash = MediaHash
|
||
|
width = 'width'
|
||
|
player = MediaPlayer
|
||
|
url = 'url'
|
||
|
file_size = 'fileSize'
|
||
|
channels = 'channels'
|
||
|
expression = 'expression'
|
||
|
text = [MediaText]
|
||
|
samplingrate = 'samplingrate'
|
||
|
title = MediaTitle
|
||
|
category = [MediaCategory]
|
||
|
rating = [MediaRating]
|
||
|
type = 'type'
|
||
|
description = MediaDescription
|
||
|
framerate = 'framerate'
|
||
|
thumbnail = [MediaThumbnail]
|
||
|
duration = 'duration'
|
||
|
copyright = MediaCopyright
|
||
|
keywords = MediaKeywords
|
||
|
restriction = [MediaRestriction]
|
||
|
|
||
|
|
||
|
class MediaGroup(atom.core.XmlElement):
|
||
|
"""Describes a media group."""
|
||
|
_qname = MEDIA_TEMPLATE % 'group'
|
||
|
credit = [MediaCredit]
|
||
|
content = [MediaContent]
|
||
|
copyright = MediaCopyright
|
||
|
description = MediaDescription
|
||
|
category = [MediaCategory]
|
||
|
player = MediaPlayer
|
||
|
rating = [MediaRating]
|
||
|
hash = MediaHash
|
||
|
title = MediaTitle
|
||
|
keywords = MediaKeywords
|
||
|
restriction = [MediaRestriction]
|
||
|
thumbnail = [MediaThumbnail]
|
||
|
text = [MediaText]
|
||
|
|
||
|
|