@ -1,6 +1,11 @@
import traceback
import HTMLParser
from bs4 import BeautifulSoup
from couchpotato import fireEvent
from couchpotato . core . logger import CPLog
from couchpotato . core . helpers . rss import RSS
from couchpotato . core . helpers . variable import tryInt
from couchpotato . core . media . movie . providers . automation . base import Automation
log = CPLog ( __name__ )
@ -8,10 +13,13 @@ log = CPLog(__name__)
autoload = ' YTSPopular '
class YTSPopular ( Automation ) :
class YTSPopular ( Automation , RSS ) :
interval = 1800
url = ' https://yts.lt/ '
url = ' https://yts.mx/ '
rss_url = ' https://yts.mx/rss '
display_url = ' https://yts.mx/ '
chart_order = 2
def getIMDBids ( self ) :
@ -58,7 +66,49 @@ class YTSPopular(Automation):
movies . append ( imdb [ ' imdb ' ] )
return movies
def getChartList ( self ) :
cache_key = ' yts.charts '
movie_list = {
' name ' : ' YTS - Popular Downloads ' ,
' url ' : self . display_url ,
' order ' : self . chart_order ,
' list ' : self . getCache ( cache_key ) or [ ]
}
if not movie_list [ ' list ' ] :
movie_ids = [ ]
max_items = 10
rss_movies = self . getRSSData ( self . rss_url )
for movie in rss_movies :
name = self . getTextElement ( movie , ' title ' ) . lower ( ) [ 9 : ] . split ( " ( " , 1 ) [ 0 ] . rstrip ( )
year = self . getTextElement ( movie , ' title ' ) . split ( " ( " ) [ 1 ] . split ( " ) " ) [ 0 ] . rstrip ( )
if not name . find ( ' / ' ) == - 1 : # make sure it is not a double movie release
continue
movie = self . search ( name , year )
if movie :
if movie . get ( ' imdb ' ) in movie_ids :
continue
is_movie = fireEvent ( ' movie.is_movie ' , identifier = movie . get ( ' imdb ' ) , single = True )
if not is_movie :
continue
movie_ids . append ( movie . get ( ' imdb ' ) )
movie_list [ ' list ' ] . append ( movie )
if len ( movie_list [ ' list ' ] ) > = max_items :
break
if not movie_list [ ' list ' ] :
return
self . setCache ( cache_key , movie_list [ ' list ' ] , timeout = 259200 )
return [ movie_list ]
config = [ {
' name ' : ' ytspopular ' ,
@ -77,5 +127,19 @@ config = [{
} ,
] ,
} ,
{
' tab ' : ' display ' ,
' list ' : ' charts_providers ' ,
' name ' : ' yts_popular_display ' ,
' label ' : ' YTS ' ,
' description ' : ' Display <a href= " https://yts.mx " target= " _blank " >Popular Downloads</a> from YTS.MX ' ,
' options ' : [
{
' name ' : ' chart_display_enabled ' ,
' default ' : False ,
' type ' : ' enabler ' ,
} ,
] ,
} ,
] ,
} ]