blob: bb5d2c80f85cfb1df84971f9aebfb7624aefb1f5 [file] [log] [blame]
#!/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]