Example #1
0
def play_movie(id):
    movie = media_db.get_item(id)
    movie['artfile'] = quote(movie['artfile'])        


    print movie['rating']
    cur_hour = localtime()[2]
    if movie['rating'] == 'R' and cur_hour < 21:
        out = '''
        <dialog id='about.panel'>
            <title>Cheap Parental Control</title>
            <description>Sorry, R-rated movies are restricted until after 9:00 pm. 
            </description>
        </dialog>
        '''

    else:
        out = '''
            <videoPlayer id="com.sample.video-player">
                    <httpFileVideoAsset id="%(id)s">
                            <mediaURL>http://__HOSTNAME__/media/play/%(id)s</mediaURL>
                            <title>%(title)s</title>
                            <description>%(desc)s</description>
                            <image>%(artfile)s</image>
                            <rating>%(rating)s</rating>
                    </httpFileVideoAsset>
            </videoPlayer>
    ''' % movie

    return out
Example #2
0
    def GET(self, command = None, id = None):
        if id == None:
            print "\n** Playing media, but no id received\n"
        
        elif command == 'play':
            media = media_db.get_item(id)
            filename = media['filename']

            return serve_file(filename, content_type = 'video/mp4')

        elif command == 'toggle_favorite':
            print "\n** Toggling favorite for media id %s" % id
            media_db.toggle_favorite(id)
            return send_page(self, movie_pages.detail(id))
Example #3
0
def detail(id):
    movie = media_db.get_item(id)
    favorite = movie['favorite']
    movie['artfile'] = quote(movie['artfile'])
    out = '''
    <itemDetail id="com.sample.movie-detail">
      <title>%(title)s</title>
      <subtitle>%(studio)s</subtitle>
      <rating>%(rating)s</rating>
      <summary>%(desc)s</summary>
      <image style="moviePoster">http://__HOSTNAME__/images/artwork/%(artfile)s</image>
      <defaultImage>resource://Poster.png</defaultImage>
    ''' % movie

    cols = '''
<columnDefinition width="25" alignment="left">
<title>Details</title>
</columnDefinition>
'''
    row_data = []
    row_data.append([movie['genre']])
    if len(movie['actors']) > 0:
      row_data.append(movie['actors'].split(',')[0:4])
      cols += '''
<columnDefinition width="25" alignment="left">
<title>Actors</title>
</columnDefinition>
'''

    if len(movie['directors']) > 0:
        row_data.append(movie['directors'].split(',')[0:4])
        cols += '''
<columnDefinition width="25" alignment="left">
<title>Directors</title>
</columnDefinition>
'''
  
    if len(movie['producers']) > 0:
        row_data.append(movie['producers'].split(',')[0:4])
        cols += '''
<columnDefinition width="25" alignment="left">
<title>Producers</title>
</columnDefinition>
'''

    out += '''
    <table>
    <columnDefinitions>
    %s
    </columnDefinitions>
    <rows>
    ''' % cols


    for r in range(0,4):
        out += '<row>\n'
        for c in row_data:
            if r < len(c):
                out += '<label>%s</label>\n' % c[r]
            else:
                out += '<label/>\n'
        out += '</row>\n'

    out += '</rows>\n</table>\n'

    out += '''
<centerShelf>
<shelf id="centerShelf" columnCount="4" center="true">
<sections>
<shelfSection>
<items>

<actionButton id="play" onSelect="atv.loadURL('http://__HOSTNAME__/movie/play/%(id)s');" 
onPlay="atv.loadURL('http://__HOSTNAME__/movie/play/%(id)s');">
<title>Play</title>
<image>resource://Play.png</image>
<focusedImage>resource://PlayFocused.png</focusedImage>
<badge>HD</badge>
</actionButton>

<actionButton id="favorite" onSelect="atv.loadURL('http://__HOSTNAME__/media/toggle_favorite/%(id)s');">
<title>Favorite</title>
''' % movie

    if favorite:
      out += '''
<image>resource://WishListFocused.png</image>
<focusedImage>resource://WishList.png</focusedImage>
'''
    else:
      out += '''
<image>resource://WishList.png</image>
<focusedImage>resource://WishListFocused.png</focusedImage>
'''


    out += '''
</actionButton>

</items>
</shelfSection>
</sections>
</shelf>
</centerShelf>
''' % movie

    out += '''
<divider>
<smallCollectionDivider alignment="left">
<title>%(genre)s</title>
</smallCollectionDivider>
</divider>
<bottomShelf>
<shelf id="bottomShelf" columnCount="8">


<sections>
<shelfSection>
<items>
''' % movie

    related_movies = media_db.get_items(genre=movie['id'], num_random=8, type='Movie')

    i = 1
    for r_movie in related_movies:
        r_movie['item_id'] = i
        i += 1
        r_movie['artfile'] = quote(r_movie['artfile'])

        out += '''
<moviePoster id="%(item_id)s" accessibilityLabel="%(title)s" related="true" 
onSelect="atv.loadURL('http://__HOSTNAME__/movie/detail/%(id)s');" 
onPlay="atv.loadURL('http://__HOSTNAME__/movie/play/%(id)s')">
<title>%(title)s</title>
<image>http://__HOSTNAME__/images/artwork/%(artfile)s</image>
<defaultImage>resource://Poster.png</defaultImage>
</moviePoster>
''' % r_movie

    out += '''
</items>
</shelfSection>
</sections>
</shelf>
</bottomShelf>

'''

    out += '''
      </itemDetail>
'''


    return out