Beispiel #1
0
def getImdbAwards(type,year):
	if type == 'Oscars':
		url = 'http://www.imdb.com/event/ev0000003/{0}'.format(year)
	elif type == 'Cannes':
		url = 'http://www.imdb.com/event/ev0000147/{0}'.format(year)
	response = urllib2.urlopen(url)
	html = response.read()
	soup = BeautifulSoup(html)
	#print soup.prettify()
	winners = soup.findAll('h2')
	movies = dict()
	for winner in winners:
	    category = winner.text
	    try:
		    h3 = winner.findNextSibling('blockquote').h3
	    except:
		continue
	    winnerdiv = h3.findNextSibling('div')
	    link = winnerdiv.find(href=re.compile("/title/tt(\d{7})/"))
	    imdb_number = re.match(r'/title/tt(\d{7})/',link.get('href')).group(1)
	    if not imdb_number in movies.keys():
		    movie = common.getMovieInfobyImdbid(imdb_number)
		    if movie:
			    movies[imdb_number] = movie
		    else:
			    movies[imdb_number] = None
	    else:
                    movie= movies[imdb_number]
	    common.createListItem(category, False, '',len(winners)*2)
	    if movie:
		common.createMovieListItemTrakt(movie,len(winners)*2)
	    else:
		common.createListItem(imdb_number, False, '',len(winners)*2)
	common.endofDir()
        return 
def getReco(channel):
	filename = PLAYLIST_PATH +  str(channel) + '.m3u'
	if not os.path.isfile(filename):
		refresh=True
	else:
		f = os.path.getmtime(filename)
		if time.time() - f > 1800:
			refresh=True
		else:
			refresh=False
	if refresh==False:
		return refresh
	count= 0
	updateDialog = xbmcgui.DialogProgress()
	updateDialog.create("FurkTrailers", "Receiving Movies from trakt")
	updateDialog.update(25, "Recommended", "Total: " + str(count))
	reco = traktlib.getRecommendedMoviesFromTrakt() 
	count = count + len(reco)
	updateDialog.update(50, "Watchlist", "Total: " + str(count))
	WL = traktlib.getWatchlistMoviesFromTrakt() 
	count = count + len(WL)
	updateDialog.update(75, "Trending", "Total: " + str(count))
	trending= traktlib.getTrendingMoviesFromTrakt()
	count = count + len(trending)
	
	updateDialog.update(99, "Imdb", "")
	imdbTop = []
	entries = imdb.getImdbRentalsList()
	for entry in entries:
		link_number,title,year = entry
		movie = common.getMovieInfobyImdbid(link_number)
		imdbTop.append(movie)
	updateDialog.update(99, "Imdb", "Len: " + str(len(entries)))
	updateDialog.close()

	if count==0:
		return
	
	movies = []
	if trending:
		movies= movies + trending
	if WL:
		movies= movies + WL
	if reco:
		movies = movies + reco
	if len(imdbTop)>0:
		movies = movies + imdbTop
	if len(movies)>0:
		fle = FileAccess.open(filename, 'w')
		flewrite = "#EXTM3U\n"
		for movie in movies:
			try:
				watched = movie['watched']
			except:
				watched = False
			try:
				inwatchlist= movie['in_watchlist']
			except:
				inwatchlist = False

			if movie['trailer']=='':
				continue
			if watched == True and inwatchlist == False:
				continue
			if movie in reco:
				type = 'Recommended'
			elif movie in imdbTop:
				type= 'Imdb Top Rentals'
			elif movie in WL:
				type= 'In Watchlist'
			elif movie in trending:
				if int(movie['watchers'])<2:
					continue
				else:
					type = 'Trending ' + str(movie['watchers']) + ' watchers'
			mygenre = ''
			try:
				for genre in movie['genres']:
					mygenre = mygenre + genre + ' / '
				if len(mygenre)>0:
					mygenre = mygenre[:-2] 
			except:
				pass


			# #EXTINF:5760,2 Days In Paris////Adam Goldberg delivers "an uproarious study in transatlantic culture panic" as Jack, an anxious, hypochondriac-prone New Yorker vacationing throughout Europe with his breezy, free-spirited Parisian girlfriend, Marion. But when they make a two-day stop in Marion's hometown, the couple's romantic trip takes a turn as Jack is exposed to Marion's sexually perverse and emotionally unstable family.
			tmpstr = str(movie['runtime']*60) + ','
			tmpstr = str(50) + ','
			try:
				imdbid= movie['imdb_id'].encode('utf-8').strip()
			except:
				imdbid= ''
			try:
				rating = str(movie['ratings']['percentage']/10.0) + ' ' + type + ' ' + mygenre.encode('utf-8').strip()
			except:
				rating = type
			poster= urllib.quote(movie['images']['poster'][7:])
			tmpstr += movie['title'].encode('utf-8').strip() + " (" + str(movie['year']) +  ")//" + rating + "//" + poster + "//" + imdbid + "//" + movie['overview'].encode('utf-8').strip()  
			tmpstr = tmpstr[:600]
			tmpstr = tmpstr.replace("\\n", " ").replace("\\r", " ").replace("\\\"", "\"")
			tmpstr = tmpstr + '\n' + getTrailer(movie['trailer']).encode('utf-8').strip()

			flewrite += "#EXTINF:" + tmpstr + "\n"
			#print movie
		
		fle.write(flewrite)
		fle.close()
		return refresh
        type = params['type']
        season = params['season']
        episode = params['episode']
        title = params['title']
        try:
            tvdbid = params['tvdbid']
        except:
		    tvdbid = None
        if tvdbid:
            episodedata = traktlib.getEpisodeInfo(tvdbid,season,episode)
        else:
            episodedata = None

    elif type=='Movie':
        imdbid = params['imdbid']
        movie = common.getMovieInfobyImdbid(imdbid)
        if movie:
			title = movie['title']
			year = movie['year']
        else:
			title = params['title']
			year = params['year']
    else:
		type = 'Movie'
		title = params['query']

    go = False
    try:
        go = params['go']
        if go:
            go=True
def getReco(channel):
    filename = PLAYLIST_PATH + str(channel) + '.m3u'
    if not os.path.isfile(filename):
        refresh = True
    else:
        f = os.path.getmtime(filename)
        if time.time() - f > 1800:
            refresh = True
        else:
            refresh = False
    if refresh == False:
        return refresh
    count = 0
    updateDialog = xbmcgui.DialogProgress()
    updateDialog.create("FurkTrailers", "Receiving Movies from trakt")
    updateDialog.update(25, "Recommended", "Total: " + str(count))
    reco = traktlib.getRecommendedMoviesFromTrakt()
    count = count + len(reco)
    updateDialog.update(50, "Watchlist", "Total: " + str(count))
    WL = traktlib.getWatchlistMoviesFromTrakt()
    count = count + len(WL)
    updateDialog.update(75, "Trending", "Total: " + str(count))
    trending = traktlib.getTrendingMoviesFromTrakt()
    count = count + len(trending)

    updateDialog.update(99, "Imdb", "")
    imdbTop = []
    entries = imdb.getImdbRentalsList()
    for entry in entries:
        link_number, title, year = entry
        movie = common.getMovieInfobyImdbid(link_number)
        imdbTop.append(movie)
    updateDialog.update(99, "Imdb", "Len: " + str(len(entries)))
    updateDialog.close()

    if count == 0:
        return

    movies = []
    if trending:
        movies = movies + trending
    if WL:
        movies = movies + WL
    if reco:
        movies = movies + reco
    if len(imdbTop) > 0:
        movies = movies + imdbTop
    if len(movies) > 0:
        fle = FileAccess.open(filename, 'w')
        flewrite = "#EXTM3U\n"
        for movie in movies:
            try:
                watched = movie['watched']
            except:
                watched = False
            try:
                inwatchlist = movie['in_watchlist']
            except:
                inwatchlist = False

            if movie['trailer'] == '':
                continue
            if watched == True and inwatchlist == False:
                continue
            if movie in reco:
                type = 'Recommended'
            elif movie in imdbTop:
                type = 'Imdb Top Rentals'
            elif movie in WL:
                type = 'In Watchlist'
            elif movie in trending:
                if int(movie['watchers']) < 2:
                    continue
                else:
                    type = 'Trending ' + str(movie['watchers']) + ' watchers'
            mygenre = ''
            try:
                for genre in movie['genres']:
                    mygenre = mygenre + genre + ' / '
                if len(mygenre) > 0:
                    mygenre = mygenre[:-2]
            except:
                pass

            # #EXTINF:5760,2 Days In Paris////Adam Goldberg delivers "an uproarious study in transatlantic culture panic" as Jack, an anxious, hypochondriac-prone New Yorker vacationing throughout Europe with his breezy, free-spirited Parisian girlfriend, Marion. But when they make a two-day stop in Marion's hometown, the couple's romantic trip takes a turn as Jack is exposed to Marion's sexually perverse and emotionally unstable family.
            tmpstr = str(movie['runtime'] * 60) + ','
            tmpstr = str(50) + ','
            try:
                imdbid = movie['imdb_id'].encode('utf-8').strip()
            except:
                imdbid = ''
            try:
                rating = str(
                    movie['ratings']['percentage'] /
                    10.0) + ' ' + type + ' ' + mygenre.encode('utf-8').strip()
            except:
                rating = type
            poster = urllib.quote(movie['images']['poster'][7:])
            tmpstr += movie['title'].encode('utf-8').strip() + " (" + str(
                movie['year']
            ) + ")//" + rating + "//" + poster + "//" + imdbid + "//" + movie[
                'overview'].encode('utf-8').strip()
            tmpstr = tmpstr[:600]
            tmpstr = tmpstr.replace("\\n",
                                    " ").replace("\\r",
                                                 " ").replace("\\\"", "\"")
            tmpstr = tmpstr + '\n' + getTrailer(
                movie['trailer']).encode('utf-8').strip()

            flewrite += "#EXTINF:" + tmpstr + "\n"
            #print movie

        fle.write(flewrite)
        fle.close()
        return refresh
def musicAction(params):

    if (params['action'] == 'about'):
        # Play a file
        collector.Notification(__plugin__, __version__)

    elif (params['action'] == 'music_search'):
        # Search
        keyboard = xbmc.Keyboard('', 'Search')
        keyboard.doModal()

        if keyboard.isConfirmed():
            query = keyboard.getText()
            searcher.SearchFromMenu(query)

    elif (params['action'] == 'music_myFiles'):
        searcher.getMyFiles()

    elif (params['action'] == 'listFiles'):
        id = params['id']
        searcher.ListFiles(id)

    elif (params['action'] == 'movielens'):
        # Search
        movielens.displayMovieLensmenu()

    elif (params['action'] == 'movielensUrl'):
        # Search
        url = params['url']
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')
        movielens.getMovieLens(url)
        common.endofDir()

    elif (params['action'] == 'criticker'):
        # Search
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')
        criticker.getCriticker()

    elif (params['action'] == 'vcdq'):
        url1 = "http://www.vcdq.com/browse/rss/1/0/0/10_9_11_3_2_6_4/0/0/0"
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')
        vcdq.getVCDQ(url1)

    elif (params['action'] == 'torrentfreak'):
        xbmcplugin.setContent(int(sys.argv[1]), 'movies')
        url1 = "http://torrentfreak.com/category/dvdrip/feed/"
        torrentfreak.getpopular(url1)

    elif (params['action'] == 'scrapeMovie'):
        title = params['title']
        year = params['year']
        common.createMovieStrm(title, year, MOVIES_PATH)
        common.Notification('Added to library:', title)
        xbmc.executebuiltin('UpdateLibrary(video)')

    elif (params['action'] == 'SearchMe'):
        # Search
        type = params['type']
        year = 0
        season = 0
        episode = 0
        movie = None
        if type == 'Show':
            type = params['type']
            season = params['season']
            episode = params['episode']
            title = params['title']
            try:
                tvdbid = params['tvdbid']
            except:
                tvdbid = None
            if tvdbid:
                episodedata = traktlib.getEpisodeInfo(tvdbid, season, episode)
            else:
                episodedata = None

        elif type == 'Movie':
            title = params['title']
            year = params['year']
            imdbid = params['imdbid']
            movie = common.getMovieInfobyImdbid(imdbid)
        else:
            type = 'Movie'
            title = params['query']

        try:
            go = params['go']
            go = True
        except:
            go = False

        myname, myurl = searcher.SearchDialog(type, title, year, season,
                                              episode)
        if myurl:
            #common.Notification("Found"," and playing!")
            time.sleep(1)
            listitem = xbmcgui.ListItem(myname, path=myurl)
            listitem.setLabel(myname)
            listitem.setProperty("IsPlayable", "true")
            if movie:
                common.addMovieInfotoPlayListitem(listitem, movie)
                #common.Notification("Found"," Movie!")

            elif episodedata:
                common.addEpisodeInfotoListitem(listitem, episodedata)

            xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, listitem)
            print myname
            print myurl
            if go:
                xbmc.Player().play(myurl, listitem)
        else:
            xbmcplugin.setResolvedUrl(int(sys.argv[1]), False,
                                      xbmcgui.ListItem())

    elif (params['action'].startswith('imdb_')):
        imdb.imdbAction(params)

    elif (params['action'].startswith('trakt_')):
        trakt.traktAction(params)

    elif (params['action'].startswith('rotten_')):
        rotten.rottenAction(params)

    elif (params['action'] == 'traktlib'):
        try:
            fg = params['fg']
        except:
            fg = 'True'
        totalAdded = trakt.addToXbmcLib(fg)
        totalAdded += imdb.addImdbToLib(fg)

        if totalAdded > 0:
            common.Notification('Furk-Trakt',
                                '{0} were added'.format(totalAdded))
        xbmc.executebuiltin('UpdateLibrary(video)')
        if fg == 'False':
            settings.startTimer()

    elif (params['action'] == 'download'):
        url = params['url']
        filename = params['filename']
        common.download(url, filename)

    elif (params['action'] == 'setup'):
        settings.setSetting('first_time_startup', 'true')
        FIRST_TIME_STARTUP = settings.first_time_startup()
        setup()

    else:
        # torrents a root Directories
        xbmc.log('argv=%s' % sys.argv)
        if (MYCONTEXT == 'video'):
            common.createCachePath()
            setup()
            AddonMenu()
        else:
            music.MusicMenu()

    print 'Closing FurkLib'
def musicAction(params):

	if(params['action'] == 'about'):
		# Play a file
		collector.Notification(__plugin__,__version__)

	elif(params['action'] == 'music_search'):
		# Search
		keyboard = xbmc.Keyboard('', 'Search')
		keyboard.doModal()

		if keyboard.isConfirmed():
			query = keyboard.getText()
			searcher.SearchFromMenu(query)

	elif(params['action'] == 'music_myFiles'):
		 searcher.getMyFiles()


	elif(params['action'] == 'listFiles'):
		id = params['id']
		searcher.ListFiles(id)

	elif(params['action'] == 'movielens'):
		# Search
		movielens.displayMovieLensmenu()

	elif(params['action'] == 'movielensUrl'):
		# Search
		url = params['url']
		xbmcplugin.setContent(int(sys.argv[1]), 'movies')
		movielens.getMovieLens(url)
		common.endofDir()

	elif(params['action'] == 'criticker'):
		# Search
		xbmcplugin.setContent(int(sys.argv[1]), 'movies')
		criticker.getCriticker()

	elif(params['action'] == 'vcdq'):
		url1 = "http://www.vcdq.com/browse/rss/1/0/0/10_9_11_3_2_6_4/0/0/0"
		xbmcplugin.setContent(int(sys.argv[1]), 'movies')
		vcdq.getVCDQ(url1)

	elif(params['action'] == 'torrentfreak'):
		xbmcplugin.setContent(int(sys.argv[1]), 'movies')
		url1 = "http://torrentfreak.com/category/dvdrip/feed/"
		torrentfreak.getpopular(url1)


	elif(params['action'] == 'scrapeMovie'):
		title = params['title']
		year = params['year']
		common.createMovieStrm(title,year,MOVIES_PATH)
		common.Notification ('Added to library:',title)
		xbmc.executebuiltin('UpdateLibrary(video)')

	elif(params['action'] == 'SearchMe'):
		# Search
		type = params['type']
		year= 0
		season = 0
		episode = 0
		movie = None
		if type=='Show':
			type = params['type']
			season = params['season']
			episode = params['episode']
			title = params['title']
			try:
				tvdbid = params['tvdbid']
			except:
				tvdbid = None
			if tvdbid:
				episodedata = traktlib.getEpisodeInfo(tvdbid,season,episode)
			else:
				episodedata = None

		elif type=='Movie':
			title = params['title']
			year = params['year']
			imdbid = params['imdbid']
			movie = common.getMovieInfobyImdbid(imdbid)
		else:
			type = 'Movie'
			title = params['query']

		try:
			go = params['go']
			go = True
		except:
			go = False

		


		myname,myurl = searcher.SearchDialog(type,title,year,season,episode)
		if myurl:
			#common.Notification("Found"," and playing!")
			time.sleep(1)
			listitem = xbmcgui.ListItem(myname, path=myurl)
			listitem.setLabel(myname)
			listitem.setProperty("IsPlayable", "true")
			if movie:
				common.addMovieInfotoPlayListitem(listitem,movie)
				#common.Notification("Found"," Movie!")
				
			elif episodedata:	
				common.addEpisodeInfotoListitem(listitem,episodedata)

			xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),True,listitem)
			print myname
			print myurl
			if go:
				xbmc.Player().play(myurl, listitem)
		else:
			xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),False,xbmcgui.ListItem())

	elif(params['action'].startswith('imdb_')):
		imdb.imdbAction(params)

	elif(params['action'].startswith('trakt_')):
		trakt.traktAction(params)

	elif(params['action'].startswith('rotten_')):
		rotten.rottenAction(params)


	elif(params['action'] == 'traktlib'):
		try:
			fg = params['fg']
		except:
			fg = 'True'
		totalAdded = trakt.addToXbmcLib(fg)
		totalAdded += imdb.addImdbToLib(fg)

		if totalAdded>0:
			common.Notification('Furk-Trakt', '{0} were added'.format(totalAdded))
		xbmc.executebuiltin('UpdateLibrary(video)')
		if fg=='False':
			settings.startTimer()


	elif(params['action'] == 'download'):
		url = params['url']
		filename = params['filename']
		common.download(url,filename)



	elif(params['action'] == 'setup'):
		settings.setSetting('first_time_startup','true')
		FIRST_TIME_STARTUP = settings.first_time_startup()
		setup()
		
	else:
		# torrents a root Directories 
		xbmc.log('argv=%s' % sys.argv)
		if (MYCONTEXT == 'video'):
			common.createCachePath()
			setup()
			AddonMenu()
		else:
			music.MusicMenu()
			

	print 'Closing FurkLib'
        type = params['type']
        season = params['season']
        episode = params['episode']
        title = params['title']
        try:
            tvdbid = params['tvdbid']
        except:
            tvdbid = None
        if tvdbid:
            episodedata = traktlib.getEpisodeInfo(tvdbid, season, episode)
        else:
            episodedata = None

    elif type == 'Movie':
        imdbid = params['imdbid']
        movie = common.getMovieInfobyImdbid(imdbid)
        if movie:
            title = movie['title']
            year = movie['year']
        else:
            title = params['title']
            year = params['year']
    else:
        type = 'Movie'
        title = params['query']

    go = False
    try:
        go = params['go']
        if go:
            go = True