示例#1
0
    def save(self, request):
       
        song = Song()
        song.user =  request.user
        
        domain_name = ''
        if self.cleaned_data['audio_url']:
            domain_name = self.cleaned_data['audio_url'].split('/')
            song.audio_url = self.cleaned_data['audio_url']                
            
        if self.cleaned_data['vedio_url']:
            domain_name = self.cleaned_data['vedio_url'].split('/')
            song.vedio_url = self.cleaned_data['vedio_url']
            
        if self.cleaned_data['flash_url']:
            domain_name = self.cleaned_data['flash_url'].split('/')
            song.flash_url = self.cleaned_data['flash_url']
            
        if len(domain_name) >= 2:
            song.source = domain_name[2]
            if song.flash_url:
                s_size = _get_swf_size(song.source)
                song.flash_width = s_size[0]
                song.flash_height = s_size[1]
            
        song.title = self.cleaned_data['title']
        song.singer = self.cleaned_data['singer']
        song.album = self.cleaned_data['album']
        song.genre = SongGenre.objects.get(id=self.cleaned_data['genre'])
        if self.cleaned_data['song_cover_url'].find('images/artist.png') == -1:
            song.song_cover_url = self.cleaned_data['song_cover_url']
        song.intro = self.cleaned_data['intro']
        song.show_media = True
        
        #当链接是百度那个下载链接(但不能在线引用播放)时,转成flash
        if song.audio_url and song.audio_url.find('zhangmenshiting') != -1 and song.audio_url.find('baidu') != -1:
            song.audio_url = None
            m = {'artist' : song.singer, 'name' : song.title, }
            song.flash_url = 'http://box.baidu.com/widget/flash/mbsong.swf?%s' % (urllib.urlencode(m))
            song.flash_width = 400
            song.flash_height = 95
        
        song.save()

        #加入电台播放
        if song.audio_url and request.POST.get('add_to_playlist'):
            _add_to_playlist(song, request.user)

        #发布到新浪微博
        if (request.POST.get('share_swf_to_weibo') and song.flash_url) or (request.POST.get('share_to_weibo') and song.audio_url):

            current_site = get_current_site(request)

            domain = current_site.domain
            public_radio_url = reverse('songs.views.public_radio',args=(song.id,))

            from social.views import _post_weibo
            s_url = 'http://%s%s' % (domain, public_radio_url)
            msg = '[%s-%s]%s' %(song.title, song.singer, song.intro)
            _post_weibo(request, msg, s_url)

        request.user.get_profile()
        request.user.get_profile().songs = request.user.get_profile().songs + 1
        request.user.get_profile().save()