コード例 #1
0
    def post(self):
        """Add a track to the favorite list"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = self.request.get('json', None)
        device = self.request.get('device')

        if json is None:
            self.error(400)
            return

        if playlist_model.owner.key() == youtify_user_model.key():
            if youtify_user_model.device != device:
                self.error(409)
                self.response.out.write('wrong_device')
                return
            else:
                old_playlist = simplejson.loads(json)
                playlist_model.private = old_playlist.get('isPrivate', False)
                playlist_model.tracks_json = simplejson.dumps(
                    old_playlist['videos'])
                playlist_model.owner = youtify_user_model
                playlist_model.title = old_playlist['title']
                playlist_model.remote_id = old_playlist['remoteId']
                playlist_model.json = None
                playlist_model.save()

                self.response.out.write(str(playlist_model.key().id()))
        else:
            self.error(403)
コード例 #2
0
ファイル: playlists.py プロジェクト: noisebleed/youtify
    def post(self):
        """Update playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_id = self.request.path.split("/")[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = self.request.get("json", None)
        device = self.request.get("device")

        if json is None:
            self.error(400)
            return

        if playlist_model.owner.key() == youtify_user_model.key():
            if youtify_user_model.device != device:
                self.error(409)
                self.response.out.write("wrong_device")
                return
            else:
                old_playlist = simplejson.loads(json)
                playlist_model.private = old_playlist.get("isPrivate", False)
                playlist_model.tracks_json = simplejson.dumps(old_playlist["videos"])
                playlist_model.owner = youtify_user_model
                playlist_model.title = old_playlist["title"]
                playlist_model.remote_id = old_playlist["remoteId"]
                playlist_model.json = None
                playlist_model.save()

                self.response.out.write(str(playlist_model.key().id()))
        else:
            self.error(403)
コード例 #3
0
ファイル: favorites.py プロジェクト: Narii1416/youtify
    def post(self):
        """Add a track to the favorite list"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return
        
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = self.request.get('json', None)
        device = self.request.get('device')

        if json is None:
            self.error(400)
            return

        if playlist_model.owner.key() == youtify_user_model.key():
            if youtify_user_model.device != device:
                self.error(409)
                self.response.out.write('wrong_device')
                return
            else:
                old_playlist = simplejson.loads(json)
                playlist_model.private = old_playlist.get('isPrivate', False)
                playlist_model.tracks_json = simplejson.dumps(old_playlist['videos'])
                playlist_model.owner = youtify_user_model
                playlist_model.title = old_playlist['title']
                playlist_model.remote_id = old_playlist['remoteId']
                playlist_model.json = None
                playlist_model.save()
                
                self.response.out.write(str(playlist_model.key().id()))
        else:
            self.error(403)
コード例 #4
0
ファイル: playlists.py プロジェクト: jensnockert/youtify
    def post(self):
        """Update playlist"""
        youtify_user = get_current_youtify_user()
        if youtify_user == None:
            self.error(403)
            return
        
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = self.request.get('json', None)
        device = self.request.get('device')

        if json is None:
            self.error(400)
            return

        if playlist_model.owner.key() == youtify_user.key():
            if youtify_user.device != device:
                self.error(409)
                self.response.out.write('wrong_device')
                return
            else:
                playlist_model.json = json
                playlist_model.save()
                self.response.out.write(str(playlist_model.key().id()))
        else:
            self.error(403)
コード例 #5
0
ファイル: playlists.py プロジェクト: noisebleed/youtify
    def post(self, playlist_id):
        """Follows a playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_model = Playlist.get_by_id(int(playlist_id))
        if playlist_model is None:
            self.error(404)
            return

        if playlist_model.owner.key().id() == youtify_user_model.key().id():
            self.error(400)
            self.response.out.write("You can not subscribe to your own playlists")
            return

        if playlist_model.key() in youtify_user_model.playlist_subscriptions:
            self.error(400)
            self.response.out.write("You already subscribe to this playlist")
            return

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

        playlist_model.followers.append(youtify_user_model.key())
        playlist_model.nr_of_followers = len(playlist_model.followers)
        playlist_model.save()

        create_subscribe_activity(youtify_user_model, playlist_model)
        send_new_subscriber_email(youtify_user_model, playlist_model)

        self.response.headers["Content-Type"] = "text/plain"
        self.response.out.write("ok")
コード例 #6
0
ファイル: test_playlists.py プロジェクト: jensnockert/youtify
    def test_update_playlists(self):
        self._post_playlist()
        playlists = [m for m in Playlist.all()]
        playlist_model = playlists[0]

        json = simplejson.dumps({
            'title': 'britney',
            'videos': [
                {
                    'title': 'oh baby baby',
                    'videoId': 'z2Am3aLwu1E',
                },
            ],
        })
        form = 'json=' + json

        handler = SpecificPlaylistHandler()
        handler.request = Request({
            'REQUEST_METHOD': 'POST',
            'PATH_INFO': '/api/playlists/' + str(playlist_model.key().id()),
            'wsgi.input': StringIO(form),
            'CONTENT_LENGTH': len(form),
            'SERVER_NAME': 'hi',
            'SERVER_PORT': '80',
            'wsgi.url_scheme': 'http',
        })

        handler.response = Response()
        handler.post()

        playlist_model = Playlist.get_by_id(1)
        json = simplejson.loads(playlist_model.json)
        self.failUnless(json['title'] == 'britney')
コード例 #7
0
ファイル: playlists.py プロジェクト: ubdreams/youtify
    def post(self, playlist_id):
        """Follows a playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_model = Playlist.get_by_id(int(playlist_id))
        if playlist_model is None:
            self.error(404)
            return

        if playlist_model.owner.key().id() == youtify_user_model.key().id():
            self.error(400)
            self.response.out.write(
                'You can not subscribe to your own playlists')
            return

        if playlist_model.key() in youtify_user_model.playlist_subscriptions:
            self.error(400)
            self.response.out.write('You already subscribe to this playlist')
            return

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

        playlist_model.followers.append(youtify_user_model.key())
        playlist_model.nr_of_followers = len(playlist_model.followers)
        playlist_model.save()

        create_subscribe_activity(youtify_user_model, playlist_model)
        send_new_subscriber_email(youtify_user_model, playlist_model)

        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('ok')
コード例 #8
0
ファイル: playlists.py プロジェクト: Erkan-Yilmaz/youtify
    def post(self):
        """Follows a playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return
        
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        if playlist_model is None:
            self.error(404)
            return

        if playlist_model.owner.key().id() == youtify_user_model.key().id():
            self.error(400)
            self.response.out.write('You can not subscribe to your own playlists')
            return
        
        youtify_user_model.playlist_subscriptions.append(playlist_model.key())
        youtify_user_model.save()
        
        playlist_model.followers.append(youtify_user_model.key())
        playlist_model.save()

        create_subscribe_activity(youtify_user_model, playlist_model)
        send_new_subscriber_email(youtify_user_model, playlist_model)
        
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('ok')
コード例 #9
0
ファイル: playlists.py プロジェクト: melpomene/youtify
    def get(self):
        """Get playlist"""
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))

        if playlist_model:
            self.response.headers['Content-Type'] = 'application/json'
            self.response.out.write(playlist_model.json)
        else:
            self.error(404)
コード例 #10
0
ファイル: playlists.py プロジェクト: ubdreams/youtify
    def get(self, playlist_id):
        """Gets the list of users that follow a playlist"""
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = []

        for key in playlist_model.followers:
            youtify_user_model = db.get(key)
            json.append(get_youtify_user_struct(youtify_user_model))

        self.response.headers['Content-Type'] = 'application/json'
        self.response.out.write(simplejson.dumps(json))
コード例 #11
0
ファイル: playlists.py プロジェクト: noisebleed/youtify
    def get(self, playlist_id):
        """Gets the list of users that follow a playlist"""
        playlist_model = Playlist.get_by_id(int(playlist_id))
        json = []

        for key in playlist_model.followers:
            youtify_user_model = db.get(key)
            json.append(get_youtify_user_struct(youtify_user_model))

        self.response.headers["Content-Type"] = "application/json"
        self.response.out.write(simplejson.dumps(json))
コード例 #12
0
ファイル: playlists.py プロジェクト: jensnockert/youtify
    def delete(self):
        """Delete playlist"""
        youtify_user = get_current_youtify_user()
        if youtify_user == None:
            self.error(403)
            return
        
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))

        if playlist_model.owner.key() == youtify_user.key():
            playlist_model.delete()
        else:
            self.error(403)
コード例 #13
0
ファイル: playlists.py プロジェクト: glesperance/youtify
    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)
コード例 #14
0
ファイル: playlists.py プロジェクト: noisebleed/youtify
    def delete(self):
        """Delete playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_id = self.request.path.split("/")[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))

        if playlist_model.owner.key() == youtify_user_model.key():
            youtify_user_model.playlists.remove(playlist_model.key())
            youtify_user_model.save()

            playlist_model.delete()
        else:
            self.error(403)
コード例 #15
0
    def delete(self):
        """Remove a track from favorites"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))

        if playlist_model.owner.key() == youtify_user_model.key():
            youtify_user_model.playlists.remove(playlist_model.key())
            youtify_user_model.save()

            playlist_model.delete()
        else:
            self.error(403)
コード例 #16
0
ファイル: playlists.py プロジェクト: noisebleed/youtify
    def delete(self, playlist_id):
        """Unfollows a playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_model = Playlist.get_by_id(int(playlist_id))

        youtify_user_model.playlist_subscriptions.remove(playlist_model.key())
        youtify_user_model.save()

        playlist_model.followers.remove(youtify_user_model.key())
        playlist_model.nr_of_followers = len(playlist_model.followers)
        playlist_model.save()

        self.response.headers["Content-Type"] = "text/plain"
        self.response.out.write("ok")
コード例 #17
0
ファイル: playlists.py プロジェクト: ubdreams/youtify
    def delete(self, playlist_id):
        """Unfollows a playlist"""
        youtify_user_model = get_current_youtify_user_model()
        if youtify_user_model == None:
            self.error(403)
            return

        playlist_model = Playlist.get_by_id(int(playlist_id))

        youtify_user_model.playlist_subscriptions.remove(playlist_model.key())
        youtify_user_model.save()

        playlist_model.followers.remove(youtify_user_model.key())
        playlist_model.nr_of_followers = len(playlist_model.followers)
        playlist_model.save()

        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write('ok')
コード例 #18
0
ファイル: playlists.py プロジェクト: Erkan-Yilmaz/youtify
 def delete(self):
     """Unfollows a playlist"""
     youtify_user_model = get_current_youtify_user_model()
     if youtify_user_model == None:
         self.error(403)
         return
     
     playlist_id = self.request.path.split('/')[-1]
     playlist_model = Playlist.get_by_id(int(playlist_id))
     
     youtify_user_model.playlist_subscriptions.remove(playlist_model.key())
     youtify_user_model.save()
     
     playlist_model.followers.remove(youtify_user_model.key())
     playlist_model.save()
     
     self.response.headers['Content-Type'] = 'text/plain'
     self.response.out.write('ok')
コード例 #19
0
ファイル: playlists.py プロジェクト: melpomene/youtify
    def delete(self):
        """Delete playlist"""
        youtify_user = get_current_youtify_user()
        if youtify_user == None:
            self.error(403)
            return
        
        playlist_id = self.request.path.split('/')[-1]
        playlist_model = Playlist.get_by_id(int(playlist_id))
        device = self.request.get('device')

        if playlist_model.owner.key() == youtify_user.key():
            if youtify_user.device != device:
                self.error(409)
                self.response.out.write('wrong_device')
                return
            else:
                playlist_model.delete()
        else:
            self.error(403)