Esempio n. 1
0
def fetch_toplist():
    """Fetch the most popular playlists"""
    json = []
    for m in Playlist.all().filter('private =',
                                   False).order('-nr_of_followers').fetch(100):
        json.append(get_playlist_struct_from_playlist_model(m))
    return simplejson.dumps(json)
Esempio n. 2
0
    def post(self):
        """Create new playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        json_playlist = simplejson.loads(self.request.get('json'))

        if json_playlist is None:
            self.error(500)

        playlist_model = Playlist(owner=youtify_user_model, json=None)
        playlist_model.private = json_playlist.get('isPrivate', False)
        playlist_model.tracks_json = simplejson.dumps(json_playlist['videos'])
        playlist_model.title = json_playlist['title']
        playlist_model.put()

        youtify_user_model.playlists.append(playlist_model.key())
        youtify_user_model.save()

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(
            simplejson.dumps(
                get_playlist_struct_from_playlist_model(playlist_model)))
Esempio n. 3
0
 def get(self):
     q = self.request.get('q')
     ret = []
     for m in Playlist.all().search(q, properties=['title']).filter('private =', False):
         ret.append(get_playlist_struct_from_playlist_model(m))
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(simplejson.dumps(ret))
Esempio n. 4
0
 def get(self):
     q = self.request.get('q').strip(' \t\n\r')
     if len(q) < 3:
         self.response.headers['Content-Type'] = 'application/json'
         self.response.out.write('[]')
         return
     ret = []
     for m in Playlist.all().search(q, properties=['title']).filter(
             'private =', False).fetch(30):
         ret.append(get_playlist_struct_from_playlist_model(m))
     self.response.headers['Content-Type'] = 'application/json'
     self.response.out.write(simplejson.dumps(ret))
Esempio n. 5
0
def create_subscribe_activity(youtify_user_model, playlist_model):
    """ user subscribed to playlist

    Both user and playlists owner gets a new activity
    """
    target = simplejson.dumps(get_playlist_struct_from_playlist_model(playlist_model))
    actor = simplejson.dumps(get_youtify_user_struct(youtify_user_model))

    m = Activity(owner=youtify_user_model, verb='subscribe', actor=actor, target=target, type='outgoing')
    m.put()

    m = Activity(owner=playlist_model.owner, verb='subscribe', actor=actor, target=target, type='incoming')
    m.put()
Esempio n. 6
0
    def get(self):
        """Get playlist"""
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        playlist_struct = get_playlist_struct_from_playlist_model(playlist_model)

        if playlist_model.private and playlist_model.owner.key() != get_current_youtify_user_model().key():
            self.error(403)
            return

        if playlist_struct:
            self.response.headers['Content-Type'] = 'application/json'
            self.response.out.write(simplejson.dumps(playlist_struct))
        else:
            self.error(404)
Esempio n. 7
0
    def post(self):
        """Create new playlist"""
        youtify_user_model = get_current_youtify_user_model()
        json_playlist = simplejson.loads(self.request.get('json'))

        if json_playlist is None:
            self.error(500)

        playlist_model = Playlist(owner=youtify_user_model, json=None)
        playlist_model.private = json_playlist.get('isPrivate', False)
        playlist_model.tracks_json = simplejson.dumps(json_playlist['videos'])
        playlist_model.title = json_playlist['title']
        playlist_model.put()
        
        youtify_user_model.playlists.append(playlist_model.key())
        youtify_user_model.save()
        
        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(simplejson.dumps(get_playlist_struct_from_playlist_model(playlist_model)))
Esempio n. 8
0
def create_subscribe_activity(youtify_user_model, playlist_model):
    """ user subscribed to playlist

    Both user and playlists owner gets a new activity
    """
    target = simplejson.dumps(
        get_playlist_struct_from_playlist_model(playlist_model))
    actor = simplejson.dumps(get_youtify_user_struct(youtify_user_model))

    m = Activity(owner=youtify_user_model,
                 verb='subscribe',
                 actor=actor,
                 target=target,
                 type='outgoing')
    m.put()

    m = Activity(owner=playlist_model.owner,
                 verb='subscribe',
                 actor=actor,
                 target=target,
                 type='incoming')
    m.put()
Esempio n. 9
0
    def post(self):
        """Create new playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        json_playlist = simplejson.loads(self.request.get("json"))

        if json_playlist is None:
            self.error(500)

        playlist_model = Playlist(owner=youtify_user_model, json=None)
        playlist_model.private = json_playlist.get("isPrivate", False)
        playlist_model.tracks_json = simplejson.dumps(json_playlist["videos"])
        playlist_model.title = json_playlist["title"]
        playlist_model.put()

        youtify_user_model.playlists.append(playlist_model.key())
        youtify_user_model.save()

        self.response.headers["Content-Type"] = "application/json"
        self.response.out.write(simplejson.dumps(get_playlist_struct_from_playlist_model(playlist_model)))
Esempio n. 10
0
def fetch_toplist():
    """Fetch the most popular playlists"""
    json = []
    for m in Playlist.all().filter('private =', False).order('-nr_of_followers').fetch(100):
        json.append(get_playlist_struct_from_playlist_model(m))
    return simplejson.dumps(json)