From f6b53d7a99781d9a4f03ce20fa894126efe74ae1 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Wed, 3 Apr 2019 10:51:13 +0200 Subject: [PATCH] Some Fix --- plugin.video.alfa/channels/cineblog01.py | 13 +-- plugin.video.alfa/channels/support.py | 95 ++++++++++++------ plugin.video.alfa/channelselector.py | 37 +++++-- .../media/themes/default_ita/thumb_next.png | Bin 2351 -> 3283 bytes 4 files changed, 104 insertions(+), 41 deletions(-) diff --git a/plugin.video.alfa/channels/cineblog01.py b/plugin.video.alfa/channels/cineblog01.py index 6814e4ce..e2734a8f 100644 --- a/plugin.video.alfa/channels/cineblog01.py +++ b/plugin.video.alfa/channels/cineblog01.py @@ -43,13 +43,13 @@ def mainlist(item): support.menu(itemlist, 'HD submenu', 'menu', host, args="Film HD Streaming") support.menu(itemlist, 'Per genere submenu', 'menu', host, args="Film per Genere") support.menu(itemlist, 'Per anno submenu', 'menu', host, args="Film per Anno") - support.menu(itemlist, 'Cerca Film... submenu color blue', 'search', host) + support.menu(itemlist, 'Cerca... submenu color blue', 'search', host, args='film') support.menu(itemlist, 'Serie TV bold', 'peliculas', host + '/serietv/', contentType='episode') - support.menu(itemlist, 'Per lettera submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Lettera") - support.menu(itemlist, 'Per genere submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Genere") - support.menu(itemlist, 'Per Anno submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Anno") - support.menu(itemlist, 'Cerca Serie TV... submenu color blue', 'search', host + '/serietv/', contentType='episode') + support.menu(itemlist, 'Per Lettera submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Lettera") + support.menu(itemlist, 'Per Genere submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Genere") + support.menu(itemlist, 'Per anno submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Anno") + support.menu(itemlist, 'Cerca... submenu color blue', 'search', host + '/serietv/', contentType='episode', args='serie') autoplay.show_option(item.channel, itemlist) @@ -74,7 +74,8 @@ def menu(item): url=host + scrapedurl ) ) - return itemlist + + return support.thumb(itemlist) def search(item, text): diff --git a/plugin.video.alfa/channels/support.py b/plugin.video.alfa/channels/support.py index 07987285..4c3f7f24 100644 --- a/plugin.video.alfa/channels/support.py +++ b/plugin.video.alfa/channels/support.py @@ -53,7 +53,7 @@ def hdpass_get_servers(item): contentType=item.contentType, server=server, url=url_decode(media_url))) - logger.info("video ->" + res_video) + log("video -> ", res_video) return itemlist @@ -115,7 +115,7 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" data = httptools.downloadpage(item.url, headers=headers).data.replace("'", '"') data = re.sub('\n|\t', ' ', data) # replace all ' with " and eliminate newline, so we don't need to worry about - logger.info('DATA ='+data) + log('DATA =', data) block = data @@ -128,12 +128,12 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" block = "" for b in blocks: block += "\n" + b - logger.info('BLOCK '+str(n)+'=' + block) + log('BLOCK ', n, '=', block) else: block = data if patron and listGroups: matches = scrapertoolsV2.find_multiple_matches(block, patron) - logger.info('MATCHES ='+str(matches)) + log('MATCHES =', matches) for match in matches: if len(listGroups) > len(match): # to fix a bug @@ -275,16 +275,17 @@ def swzz_get_url(item): def menu(itemlist, title='', action='', url='', contentType='movie', args=[]): + # Function to simplify menu creation + frame = inspect.stack()[1] filename = frame[0].f_code.co_filename filename = os.path.basename(filename).replace('.py','') - logger.info('FILENAME= ' + filename) + # Call typo function title = typo(title) if contentType == 'movie': extra = 'movie' else: extra = 'tvshow' - logger.info('EXTRA= ' + title + ' '+extra) itemlist.append(Item( channel = filename, @@ -295,29 +296,57 @@ def menu(itemlist, title='', action='', url='', contentType='movie', args=[]): args = args, contentType = contentType )) + + # Apply auto Thumbnails at the menus from channelselector import thumb thumb(itemlist) + return itemlist -def typo(string): - if '[]' in string: - string = '[' + re.sub(r'\s\[\]','',string) + ']' - if '()' in string: - string = '(' + re.sub(r'\s\(\)','',string) + ')' - if '{}' in string: - string = '{' + re.sub(r'\s\{\}','',string) + '}' - if 'submenu' in string: - string = ' > ' + re.sub('\ssubmenu','',string) - if 'color' in string: - color = scrapertoolsV2.find_single_match(string,'color ([a-z]+)') - string = '[COLOR '+ color +']' + re.sub('\scolor\s([a-z]+)','',string) + '[/COLOR]' - if 'bold' in string: - string = '[B]' + re.sub('\sbold','',string) + '[/B]' - if 'italic' in string: - string = '[I]' + re.sub('\sitalic','',string) + '[/I]' - if '_' in string: - string = ' ' + re.sub('\s_','',string) +def typo(string, typography=''): + + + # Check if the typographic attributes are in the string or outside + if typography: + string = string + ' ' + typography + if config.get_localized_string(30992) in string: + string = string + ' >' + + # If there are no attributes, it applies the default ones + attribute = ['[]','()','{}','submenu','color','bold','italic','_','[B]','[I]','[COLOR]'] + + movie_word_list = ['film', 'serie', 'tv', 'anime', 'cinema', 'sala'] + search_word_list = ['cerca'] + categories_word_list = ['genere', 'categoria', 'categorie', 'ordine', 'lettera', 'anno', 'alfabetico', 'a-z', 'menu'] + + if not any(word in string for word in attribute): + if any(word in string.lower() for word in search_word_list): + string = '[COLOR blue]' + string + '[/COLOR]' + elif any(word in string.lower() for word in categories_word_list): + string = ' > ' + string + elif any(word in string.lower() for word in movie_word_list): + string = '[B]' + string + '[/B]' + + # Otherwise it uses the typographical attributes of the string + else: + if '[]' in string: + string = '[' + re.sub(r'\s\[\]','',string) + ']' + if '()' in string: + string = '(' + re.sub(r'\s\(\)','',string) + ')' + if '{}' in string: + string = '{' + re.sub(r'\s\{\}','',string) + '}' + if 'submenu' in string: + string = ' > ' + re.sub(r'\ssubmenu','',string) + if 'color' in string: + color = scrapertoolsV2.find_single_match(string,'color ([a-z]+)') + string = '[COLOR '+ color +']' + re.sub(r'\scolor\s([a-z]+)','',string) + '[/COLOR]' + if 'bold' in string: + string = '[B]' + re.sub(r'\sbold','',string) + '[/B]' + if 'italic' in string: + string = '[I]' + re.sub(r'\sitalic','',string) + '[/I]' + if '_' in string: + string = ' ' + re.sub(r'\s_','',string) return string @@ -326,13 +355,16 @@ def match(item, patron='', patron_block='', headers=''): data = httptools.downloadpage(item.url, headers=headers).data.replace("'", '"') data = re.sub('\n|\t', '', data) log('DATA= ',data) + if patron_block: block = scrapertoolsV2.find_single_match(data, patron_block) log('BLOCK= ',block) else: data = block + matches = scrapertoolsV2.find_multiple_matches(block, patron) - log('MATCHES=',matches) + log('MATCHES= ',matches) + return matches @@ -351,21 +383,23 @@ def videolibrary(itemlist, item, typography=''): title=title, url=item.url, action=action, + extra=extra, contentTitle=item.fulltitle)) def nextPage(itemlist, item, data, patron): next_page = scrapertoolsV2.find_single_match(data, patron) - logger.info('NEXT ' + next_page) + log('NEXT= ',next_page) if next_page != "": + thumbnails = thumb() itemlist.append( Item(channel=item.channel, action="peliculas", contentType=item.contentType, - title=typo(config.get_localized_string(30992) + ' > color blue'), + title=typo(config.get_localized_string(30992), 'color blue'), url=next_page, - thumbnails=thumb())) + thumbnail=thumb())) return itemlist @@ -378,7 +412,7 @@ def server(item, data='', headers=''): itemlist = servertools.find_video_items(data=data) for videoitem in itemlist: - videoitem.title = "".join([item.title, ' ', typo(videoitem.title + ' color blue []')]) + videoitem.title = "".join([item.title, ' ', typo(videoitem.title, 'color blue []')]) videoitem.fulltitle = item.fulltitle videoitem.show = item.show videoitem.thumbnail = item.thumbnail @@ -389,6 +423,9 @@ def server(item, data='', headers=''): def log(stringa1="", stringa2="", stringa3="", stringa4="", stringa5=""): + # Function to simplify the log + # Automatically returns File Name and Function Name + frame = inspect.stack()[1] filename = frame[0].f_code.co_filename filename = os.path.basename(filename) diff --git a/plugin.video.alfa/channelselector.py b/plugin.video.alfa/channelselector.py index 4bb1721b..1749e759 100644 --- a/plugin.video.alfa/channelselector.py +++ b/plugin.video.alfa/channelselector.py @@ -352,7 +352,29 @@ def thumb(itemlist=[]): 'news':['novità', "novita'"], 'now_playing':['cinema', 'in sala'], 'channels_anime':['anime'], - 'genres':['genere', 'generi', 'categorie', 'categoria']} + 'genres':['genere', 'generi', 'categorie', 'categoria'], + 'channels_animation': ['animazione'], + 'channels_adventure': ['avventura'], + 'channels_action':['azione'], + 'channels_biographical':['biografico'], + 'channels_comedy':['comico','commedia'], + 'channels_adult':['erotico'], + 'channels_drama':['drammatico'], + 'channels_syfy':['fantascienza'], + 'channels_fantasy':['fantasy'], + 'channels_crime':['gangster','poliziesco'], + 'channels_grotesque':['grottesco'], + 'channels_war':['guerra'], + 'channels_horror':['horror'], + 'channels_music':['musical'], + 'channels_noir':['noir', 'Mistero'], + 'channels_thriller':['thriller'], + 'channels_western':['western'], + 'channels_vos':['sub','sub-ita'], + 'channels_romance':['romantico','sentimentale'], + 'channels_family':['famiglia','famiglie'], + 'channels_historical':['storico'] + } suffix_dict = {'_hd':['hd','altadefinizione','alta definizione'], '_4k':['4K'], @@ -363,9 +385,12 @@ def thumb(itemlist=[]): search = ['cerca'] search_suffix ={'_movie':['film'], - '_tvshow':['sarie','tv']} - + '_tvshow':['serie','tv']} for item in itemlist: + + # Check if item has args propriety + if item.args: item.title = item.title + ' || ' + str(item.args) + for thumb, titles in icon_dict.items(): if any( word in item.title.lower() for word in search): thumb = 'search' @@ -374,15 +399,15 @@ def thumb(itemlist=[]): thumb = thumb + suffix item.thumbnail = get_thumb(thumb + '.png') elif any( word in item.title.lower() for word in titles ): - thumb = thumb - if thumb == 'channels_movie' or 'channels_tvshow': + if thumb == 'channels_movie' or thumb == 'channels_tvshow': for suffix, titles in suffix_dict.items(): if any( word in item.title.lower() for word in titles ): thumb = thumb + suffix item.thumbnail = get_thumb(thumb + '.png') else: thumb = item.thumbnails - + # REmove args from title + if item.args: item.title = item.title.replace(' || ' + str(item.args), '') return itemlist else: return get_thumb('next.png') \ No newline at end of file diff --git a/plugin.video.alfa/resources/media/themes/default_ita/thumb_next.png b/plugin.video.alfa/resources/media/themes/default_ita/thumb_next.png index 8f32a340f7a1099887206a77593028dc8c39f092..f4c3807d9016ef74d20d72772a0e12a0d9971cbf 100644 GIT binary patch literal 3283 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 Rvpa=vk+kG&?p2Mx{@>bw20;J- literal 2351 zcmeH}?^9G&7{{M;I_g=2>7HFHRHVIkcUd&6RSQi8uFEYTa9I^Xr_yU?Vp&m;nTVcn z#a(4IXTsJW1Di9MgN)HwCW?B?(n-n4A4xIghG|L~7%FHQolE~fFM8RFGk5N}pYP0l zp6`9W_k{eujM#xg1_D5AR;D%;0KH`{+F$JO8L>`ru@q&_CTA+9SR z{(n=TwFZA-P4~%Hnc+Hk{g##e0bomqtj$QDhQJ| zhb|u?r8HqL|p_Agrv4F|nbFAwObb{u)~U)Ym3<(uFS_ z@58PIVbdpl*f7ONOzFd_Y0<7~G>+k!MU&Fw3DPk%V8_tWl^ z0XQO|WQM1&ru7>nW4y+n3BY%Dd?}H5(pXfIc|!LX6(8bUyD-N%w z{>_pxQR5>5aNdsd9K@5#A|qt}Q3y_n`m;%)kmM-p7%!YB#8pUYsbcs8@Pidq2x<-WIAxx!@!1x1(v4##)5wEN zU*rW*`7{Y{ODAC=c~dd+L`7D#)j|A1;*$AjjnB8BcsI_OOrvp3U+jfHLy#@umJBkz zLNXRA#?%1pVradC6s0mf%L~7X8yD&HFnzukx@~B^n{>`rR3h`eAs7{arISfeA)VQZ z8ZYyj5UdkhPW*)xOXzb8x~TC*UUf7BSqz|&8{nD(9TGksgvJb-soSC#h3O6l8s&0s|~) zj148JG+aeh*=tm4FwlyhcVK^5^4J(37~nI4kf)F)l|&R-FHxY%f*dwfsM0tgad?ej zUks>@f`WpzGxy)Re(~D1*SlN0TR(keS)^<+|#^%^W-<7(YVzx)9_! zq0&bpR;2e=;BE>#C6tr{;Sg0PVPk=K4F=CUv0q5;XM8!~8$u9ohbAA<-AM1Jzyu20 zCDf7$(?itgkBt{ZL0nrR$4l>P|LSShY3Chsz;Fz$K{zTwi;qk%2P0K6t`fLzLt7J}sFHdfK>V!6hg;ws8Ruj`B%bLb zFw70X2?>&NNw^$TF@~K4+8L@y1pm9#GZOKe8ka5bv5aGcWEj(vFuW9kgAx?xk~kp| zIq(KHbKw~ah@O`?z?_X0V8m(sJb^ej^BvQE18{<8nZsDZ&Ipu?;P>L0II;YA}Xq{A&W= z$#{VR_4lyo0t~+~bnN<9?gPC)o;!E$@IJRFWsL}xjsv}idtbimOl$h?(Lj+QoPLj4fCy*aRnhZCQ zT^irACLoX$7TKL55D^61p3N4>O@?Y8brTF_A;?b|RQ}NZo~|?hZ2#$})oHzdbUZY( zv1e_pnx?3>j+N15_@-vrjocF}_opuYyk% zQ+zF@YXbfMNBQ3z2oCJqy?fF5en3lJz0%Qp$DL~**g5mqkT!7wf~?1U+77Q?{x_Sl Bq+kF5