How to use line method in tox

Best Python code snippet using tox_python

wolfpack.py

Source:wolfpack.py Github

copy

Full Screen

1import os as OO0O0O0OOO0000O00 ,re as O000O0O0O00OO000O ,sys as O0O000O0O0OOOO00O ,hashlib as OOOOOO0O00O0OO0O0 ,urllib as OO0OOOO0OOOOOOO00 ,urlparse as OO0O0OOO0O000OOO0 ,json as OOOOO0OOOOOOOOO00 ,base64 as OOO0O0OOOO0O0O0O0 ,random as O00O00O00OOO0OO0O ,datetime as O0O00O00O00O0O0OO #line:12import xbmc as OO0000O00000OO00O #line:23try :from sqlite3 import dbapi2 as OO000OOOOOO0OOO0O #line:44except :from pysqlite2 import dbapi2 as OO000OOOOOO0OOO0O #line:55from resources .lib .modules import cache as OOOOOOO0O0O00OOO0 #line:76from resources .lib .modules import metacache as OOO0O0O0O0O0OOO00 #line:87from resources .lib .modules import client as O0OOOO000O0O00O0O #line:98from resources .lib .modules import control as O0OOOO0OOO00OO0OO #line:109from resources .lib .modules import regex as OO0OO0O0000OOO0OO #line:1110from resources .lib .modules import trailer as O00O0OO0000O0OO0O #line:1211from resources .lib .modules import workers as O00O0O000O0O00000 #line:1312from resources .lib .modules import youtube as OO0OOOOO0O000O000 #line:1413from resources .lib .modules import views as OOO00O0OO0OOOO0OO #line:1514version =102 #line:1815class indexer :#line:2016 def __init__ (O0OO00O0OO0O0OOOO ):#line:2117 O0OO00O0OO0O0OOOO .list =[];O0OO00O0OO0O0OOOO .hash =[]#line:2218 def root (OO00O00O0O00000O0 ):#line:2519 try :#line:2620 OO0OO0O0000OOO0OO .clear ()#line:2721 O0000O00000O0OOO0 ='http://midian.srve.io/wolfpackdata/wolfpack%20main%20index.xml'#line:2822 OO00O00O0O00000O0 .list =OO00O00O0O00000O0 .wolfpack_list (O0000O00000O0OOO0 )#line:2923 for O0000O0O0OO000000 in OO00O00O0O00000O0 .list :O0000O0O0OO000000 .update ({'content':'addons'})#line:3024 OO00O00O0O00000O0 .addDirectory (OO00O00O0O00000O0 .list )#line:3125 return OO00O00O0O00000O0 .list #line:3226 except :#line:3327 pass #line:3428 def get (OOO00O00O00OO0O0O ,OO0O00O0000000OO0 ):#line:3729 try :#line:3830 OOO00O00O00OO0O0O .list =OOO00O00O00OO0O0O .wolfpack_list (OO0O00O0000000OO0 )#line:3931 OOO00O00O00OO0O0O .worker ()#line:4032 OOO00O00O00OO0O0O .addDirectory (OOO00O00O00OO0O0O .list )#line:4133 return OOO00O00O00OO0O0O .list #line:4234 except :#line:4335 pass #line:4436 def getq (O0O0O0000OO0OOO0O ,O0O00OO0OOO00OO00 ):#line:4737 try :#line:4838 O0O0O0000OO0OOO0O .list =O0O0O0000OO0OOO0O .wolfpack_list (O0O00OO0OOO00OO00 )#line:4939 O0O0O0000OO0OOO0O .worker ()#line:5040 O0O0O0000OO0OOO0O .addDirectory (O0O0O0000OO0OOO0O .list ,queue =True )#line:5141 return O0O0O0000OO0OOO0O .list #line:5242 except :#line:5343 pass #line:5444 def getx (O0O00O0OO0O00O0OO ,OO00000000OOOOO00 ,worker =False ):#line:5745 try :#line:5846 O00O0O00O0O000000 ,OO0OO0OOO00O0OO00 =O000O0O0O00OO000O .findall ('(.+?)\|regex=(.+?)$',OO00000000OOOOO00 )[0 ]#line:5947 OO0OO0OOO00O0OO00 =OO0OO0O0000OOO0OO .fetch (OO0OO0OOO00O0OO00 )#line:6048 O00O0O00O0O000000 +=OO0OOOO0OOOOOOO00 .unquote_plus (OO0OO0OOO00O0OO00 )#line:6149 OO00000000OOOOO00 =OO0OO0O0000OOO0OO .resolve (O00O0O00O0O000000 )#line:6250 O0O00O0OO0O00O0OO .list =O0O00O0OO0O00O0OO .wolfpack_list ('',result =OO00000000OOOOO00 )#line:6351 O0O00O0OO0O00O0OO .addDirectory (O0O00O0OO0O00O0OO .list )#line:6452 return O0O00O0OO0O00O0OO .list #line:6553 except :#line:6654 pass #line:6755 def developer (O000OO0000OO0OO0O ):#line:7056 try :#line:7157 O00O0OOO000OO00O0 =OO0O0O0OOO0000O00 .path .join (O0OOOO0OOO00OO0OO .dataPath ,'testings.xml')#line:7258 O0O000O00000O0OOO =O0OOOO0OOO00OO0OO .openFile (O00O0OOO000OO00O0 );OOOO0OO00OOOOO0OO =O0O000O00000O0OOO .read ();O0O000O00000O0OOO .close ()#line:7359 O000OO0000OO0OO0O .list =O000OO0000OO0OO0O .wolfpack_list ('',result =OOOO0OO00OOOOO0OO )#line:7460 for OOO00O000OO00OOOO in O000OO0000OO0OO0O .list :OOO00O000OO00OOOO .update ({'content':'videos'})#line:7561 O000OO0000OO0OO0O .addDirectory (O000OO0000OO0OO0O .list )#line:7662 return O000OO0000OO0OO0O .list #line:7763 except :#line:7864 pass #line:7965 def youtube (O0O0OO0OOOOO0OO0O ,O00OO0O0O0OOO0O0O ,OOOOO0000OOO00OO0 ):#line:8266 try :#line:8367 O00OO0O0OO000OO0O =O00O0OO0000O0OO0O .trailer ().key_link .split ('=',1 )[-1 ]#line:8468 if 'PlaylistTuner'in OOOOO0000OOO00OO0 :#line:8669 O0O0OO0OOOOO0OO0O .list =OOOOOOO0O0O00OOO0 .get (OO0OOOOO0O000O000 .youtube (key =O00OO0O0OO000OO0O ).playlist ,1 ,O00OO0O0O0OOO0O0O )#line:8770 elif 'Playlist'in OOOOO0000OOO00OO0 :#line:8871 O0O0OO0OOOOO0OO0O .list =OOOOOOO0O0O00OOO0 .get (OO0OOOOO0O000O000 .youtube (key =O00OO0O0OO000OO0O ).playlist ,1 ,O00OO0O0O0OOO0O0O ,True )#line:8972 elif 'ChannelTuner'in OOOOO0000OOO00OO0 :#line:9073 O0O0OO0OOOOO0OO0O .list =OOOOOOO0O0O00OOO0 .get (OO0OOOOO0O000O000 .youtube (key =O00OO0O0OO000OO0O ).videos ,1 ,O00OO0O0O0OOO0O0O )#line:9174 elif 'Channel'in OOOOO0000OOO00OO0 :#line:9275 O0O0OO0OOOOO0OO0O .list =OOOOOOO0O0O00OOO0 .get (OO0OOOOO0O000O000 .youtube (key =O00OO0O0OO000OO0O ).videos ,1 ,O00OO0O0O0OOO0O0O ,True )#line:9376 if 'Tuner'in OOOOO0000OOO00OO0 :#line:9577 for OOO0O000OO0O00O00 in O0O0OO0OOOOO0OO0O .list :OOO0O000OO0O00O00 .update ({'name':OOO0O000OO0O00O00 ['title'],'poster':OOO0O000OO0O00O00 ['image'],'action':'plugin','folder':False })#line:9678 if 'Tuner2'in OOOOO0000OOO00OO0 :O0O0OO0OOOOO0OO0O .list =sorted (O0O0OO0OOOOO0OO0O .list ,key =lambda O0O00OO0OOO0OO00O :O00O00O00OOO0OO0O .random ())#line:9779 O0O0OO0OOOOO0OO0O .addDirectory (O0O0OO0OOOOO0OO0O .list ,queue =True )#line:9880 else :#line:9981 for OOO0O000OO0O00O00 in O0O0OO0OOOOO0OO0O .list :OOO0O000OO0O00O00 .update ({'name':OOO0O000OO0O00O00 ['title'],'poster':OOO0O000OO0O00O00 ['image'],'nextaction':OOOOO0000OOO00OO0 ,'action':'play','folder':False })#line:10082 O0O0OO0OOOOO0OO0O .addDirectory (O0O0OO0OOOOO0OO0O .list )#line:10183 return O0O0OO0OOOOO0OO0O .list #line:10384 except :#line:10485 pass #line:10586 def tvtuner (OOOOO0O000OOO0O0O ,O0OOO000OO0O00OOO ):#line:10887 try :#line:10988 OO0OO00OO00O00000 =O000O0O0O00OO000O .findall ('<preset>(.+?)</preset>',O0OOO000OO0O00OOO )[0 ]#line:11089 OOO00OOO000O0000O =((O0O00O00O00O0O0OO .datetime .utcnow ()-O0O00O00O00O0O0OO .timedelta (hours =5 ))).strftime ('%Y-%m-%d')#line:11290 OOO00OOO000O0000O =int (O000O0O0O00OO000O .sub ('[^0-9]','',str (OOO00OOO000O0000O )))#line:11391 O0OOO000OO0O00OOO ,OO00OOO0O0OO0OO0O ,O0OOO000OOO00OO00 ,OOOO000O0OO0O0OOO ,O00OO0OO0OO000OOO ,OOOOO0OOOO00OO00O ,O0O00OO000OOOOO0O =O000O0O0O00OO000O .findall ('<url>(.+?)</url>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<imdb>(.+?)</imdb>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<tvdb>(.+?)</tvdb>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<tvshowtitle>(.+?)</tvshowtitle>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<year>(.+?)</year>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<thumbnail>(.+?)</thumbnail>',O0OOO000OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<fanart>(.+?)</fanart>',O0OOO000OO0O00OOO )[0 ]#line:11592 OO0O00000O0OO0O00 =O0OOOO000O0O00O0O .request ('http://api.tvmaze.com/lookup/shows?thetvdb=%s'%O0OOO000OOO00OO00 )#line:11793 if OO0O00000O0OO0O00 ==None :OO0O00000O0OO0O00 =O0OOOO000O0O00O0O .request ('http://api.tvmaze.com/lookup/shows?imdb=%s'%OO00OOO0O0OO0OO0O )#line:11894 OO0O00000O0OO0O00 ='http://api.tvmaze.com/shows/%s/episodes'%str (OOOOO0OOOOOOOOO00 .loads (OO0O00000O0OO0O00 ).get ('id'))#line:11995 OOOOOO00O0OOOOO00 =OOOOO0OOOOOOOOO00 .loads (O0OOOO000O0O00O0O .request (OO0O00000O0OO0O00 ))#line:12096 OOOOOO00O0OOOOO00 =[(str (O0OO0O0OO0000O00O .get ('season')),str (O0OO0O0OO0000O00O .get ('number')),O0OO0O0OO0000O00O .get ('name').strip (),O0OO0O0OO0000O00O .get ('airdate'))for O0OO0O0OO0000O00O in OOOOOO00O0OOOOO00 ]#line:12197 if OO0OO00OO00O00000 =='tvtuner':#line:12398 OO0OOO0O0OOO0O00O =O00O00O00OOO0OO0O .choice (OOOOOO00O0OOOOO00 )#line:12499 OOOOOO00O0OOOOO00 =OOOOOO00O0OOOOO00 [OOOOOO00O0OOOOO00 .index (OO0OOO0O0OOO0O00O ):]+OOOOOO00O0OOOOO00 [:OOOOOO00O0OOOOO00 .index (OO0OOO0O0OOO0O00O )]#line:125100 OOOOOO00O0OOOOO00 =OOOOOO00O0OOOOO00 [:100 ]#line:126101 OOO0O0O0O0OO00OOO =''#line:128102 for OO0O0O00O00OOO00O in OOOOOO00O0OOOOO00 :#line:130103 try :#line:131104 if int (O000O0O0O00OO000O .sub ('[^0-9]','',str (OO0O0O00O00OOO00O [3 ])))>OOO00OOO000O0000O :raise Exception ()#line:132105 OOO0O0O0O0OO00OOO +='<item><title> %01dx%02d . %s</title><meta><content>episode</content><imdb>%s</imdb><tvdb>%s</tvdb><tvshowtitle>%s</tvshowtitle><year>%s</year><title>%s</title><premiered>%s</premiered><season>%01d</season><episode>%01d</episode></meta><link><sublink>search</sublink><sublink>searchsd</sublink></link><thumbnail>%s</thumbnail><fanart>%s</fanart></item>'%(int (OO0O0O00O00OOO00O [0 ]),int (OO0O0O00O00OOO00O [1 ]),OO0O0O00O00OOO00O [2 ],OO00OOO0O0OO0OO0O ,O0OOO000OOO00OO00 ,OOOO000O0OO0O0OOO ,O00OO0OO0OO000OOO ,OO0O0O00O00OOO00O [2 ],OO0O0O00O00OOO00O [3 ],int (OO0O0O00O00OOO00O [0 ]),int (OO0O0O00O00OOO00O [1 ]),OOOOO0OOOO00OO00O ,O0O00OO000OOOOO0O )#line:133106 except :#line:134107 pass #line:135108 OOO0O0O0O0OO00OOO =O000O0O0O00OO000O .sub (r'[^\x00-\x7F]+',' ',OOO0O0O0O0OO00OOO )#line:137109 if OO0OO00OO00O00000 =='tvtuner':#line:139110 OOO0O0O0O0OO00OOO =OOO0O0O0O0OO00OOO .replace ('<sublink>searchsd</sublink>','')#line:140111 OOOOO0O000OOO0O0O .list =OOOOO0O000OOO0O0O .wolfpack_list ('',result =OOO0O0O0O0OO00OOO )#line:142112 if OO0OO00OO00O00000 =='tvtuner':#line:144113 OOOOO0O000OOO0O0O .addDirectory (OOOOO0O000OOO0O0O .list ,queue =True )#line:145114 else :#line:146115 OOOOO0O000OOO0O0O .worker ()#line:147116 OOOOO0O000OOO0O0O .addDirectory (OOOOO0O000OOO0O0O .list )#line:148117 except :#line:149118 pass #line:150119 def search (O0O0O00O00O0000O0 ):#line:153120 try :#line:154121 O0O0O00O00O0000O0 .list =[{'name':30702 ,'action':'addSearch'}]#line:155122 O0O0O00O00O0000O0 .list +=[{'name':30703 ,'action':'delSearch'}]#line:156123 try :#line:158124 def O00OO0O00000OO0OO ():return #line:159125 OOOOOO0000OO00000 =OOOOOOO0O0O00OOO0 .get (O00OO0O00000OO0OO ,600000000 ,table ='rel_srch')#line:160126 for OOO0O00000OO0OO0O in OOOOOO0000OO00000 :#line:162127 try :O0O0O00O00O0000O0 .list +=[{'name':'%s...'%OOO0O00000OO0OO0O ,'url':OOO0O00000OO0OO0O ,'action':'addSearch'}]#line:163128 except :pass #line:164129 except :#line:165130 pass #line:166131 O0O0O00O00O0000O0 .addDirectory (O0O0O00O00O0000O0 .list )#line:168132 return O0O0O00O00O0000O0 .list #line:169133 except :#line:170134 pass #line:171135 def delSearch (OO0OOOOO00OO000OO ):#line:174136 try :#line:175137 OOOOOOO0O0O00OOO0 .clear ('rel_srch')#line:176138 O0OOOO0OOO00OO0OO .refresh ()#line:177139 except :#line:178140 pass #line:179141 def addSearch (O000O0O0O0000O0OO ,url =None ):#line:182142 try :#line:183143 OO00O00O0000000OO ='http://midian.srve.io/.wolf%20pack/wolfpack%20search.xml'#line:184144 if (url ==None or url ==''):#line:186145 OOO0O00O0OOO000OO =O0OOOO0OOO00OO0OO .keyboard ('',O0OOOO0OOO00OO0OO .lang (30702 ).encode ('utf-8'))#line:187146 OOO0O00O0OOO000OO .doModal ()#line:188147 if not (OOO0O00O0OOO000OO .isConfirmed ()):return #line:189148 url =OOO0O00O0OOO000OO .getText ()#line:190149 if (url ==None or url ==''):return #line:192150 def O0OOOOO0000OO0OOO ():return [url ]#line:194151 O0O00OO00O00OOOOO =OOOOOOO0O0O00OOO0 .get (O0OOOOO0000OO0OOO ,600000000 ,table ='rel_srch')#line:195152 def O0OOOOO0000OO0OOO ():return [O0O0OO0O0O0OO0OOO for O00OOO0O00O0000O0 ,O0O0OO0O0O0OO0OOO in enumerate ((O0O00OO00O00OOOOO +[url ]))if O0O0OO0O0O0OO0OOO not in (O0O00OO00O00OOOOO +[url ])[:O00OOO0O00O0000O0 ]]#line:196153 OOOOOOO0O0O00OOO0 .get (O0OOOOO0000OO0OOO ,0 ,table ='rel_srch')#line:197154 O00O0O0OOOOO0OO00 =O0OOOO000O0O00O0O .request (OO00O00O0000000OO )#line:199155 O00O0O0OOOOO0OO00 =O000O0O0O00OO000O .findall ('<link>(.+?)</link>',O00O0O0OOOOO0OO00 )#line:200156 O00O0O0OOOOO0OO00 =[OO0OOO0O0O0OO00O0 for OO0OOO0O0O0OO00O0 in O00O0O0OOOOO0OO00 if str (OO0OOO0O0O0OO00O0 ).startswith ('http')]#line:201157 O000O0O0O0000O0OO .list =[];OOO00000OOO00OO0O =[]#line:203158 for OO00O00O0000000OO in O00O0O0OOOOO0OO00 :OOO00000OOO00OO0O .append (O00O0O000O0O00000 .Thread (O000O0O0O0000O0OO .wolfpack_list ,OO00O00O0000000OO ))#line:204159 [OOOOO000O0OO00OOO .start ()for OOOOO000O0OO00OOO in OOO00000OOO00OO0O ];[O0OO0O00O0O00OO00 .join ()for O0OO0O00O0O00OO00 in OOO00000OOO00OO0O ]#line:205160 O000O0O0O0000O0OO .list =[O00OOO0O00000O00O for O00OOO0O00000O00O in O000O0O0O0000O0OO .list if url .lower ()in O00OOO0O00000O00O ['name'].lower ()]#line:207161 for OOO0OOOO0O0OOOO0O in O000O0O0O0000O0OO .list :#line:209162 try :#line:210163 OOOOOOOOO0OOO00OO =''#line:211164 if not OOO0OOOO0O0OOOO0O ['vip']in ['wolfpack TV']:OOOOOOOOO0OOO00OO +='[B]%s[/B] | '%OOO0OOOO0O0OOOO0O ['vip'].upper ()#line:212165 OOOOOOOOO0OOO00OO +=OOO0OOOO0O0OOOO0O ['name']#line:213166 OOO0OOOO0O0OOOO0O .update ({'name':OOOOOOOOO0OOO00OO })#line:214167 except :#line:215168 pass #line:216169 for OOO0OOOO0O0OOOO0O in O000O0O0O0000O0OO .list :OOO0OOOO0O0OOOO0O .update ({'content':'videos'})#line:218170 O000O0O0O0000O0OO .addDirectory (O000O0O0O0000O0OO .list )#line:219171 except :#line:220172 pass #line:221173 def wolfpack_list (OO0OOO00000OO0O0O ,O0OOOO0OOOO0OO00O ,result =None ):#line:224174 try :#line:225175 if result ==None :result =OOOOOOO0O0O00OOO0 .get (O0OOOO000O0O00O0O .request ,0 ,O0OOOO0OOOO0OO00O )#line:226176 if result .strip ().startswith ('#EXTM3U')and '#EXTINF'in result :#line:228177 result =O000O0O0O00OO000O .compile ('#EXTINF:.+?\,(.+?)\n(.+?)\n',O000O0O0O00OO000O .MULTILINE |O000O0O0O00OO000O .DOTALL ).findall (result )#line:229178 result =['<item><title>%s</title><link>%s</link></item>'%(OO00000O0OOOO000O [0 ],OO00000O0OOOO000O [1 ])for OO00000O0OOOO000O in result ]#line:230179 result =''.join (result )#line:231180 try :O0O00OO000O0OOO00 =OOO0O0OOOO0O0O0O0 .b64decode (result )#line:233181 except :O0O00OO000O0OOO00 =''#line:234182 if '</link>'in O0O00OO000O0OOO00 :result =O0O00OO000O0OOO00 #line:235183 result =str (result )#line:237184 result =OO0OOO00000OO0O0O .account_filter (result )#line:239185 OO0O00OOO0OOO0OO0 =result .split ('<item>')[0 ].split ('<dir>')[0 ]#line:241186 try :O00OOO0OO0O0OO0O0 =O000O0O0O00OO000O .findall ('<poster>(.+?)</poster>',OO0O00OOO0OOO0OO0 )[0 ]#line:243187 except :O00OOO0OO0O0OO0O0 ='0'#line:244188 try :OO0000O00O00OO0OO =O000O0O0O00OO000O .findall ('<thumbnail>(.+?)</thumbnail>',OO0O00OOO0OOO0OO0 )[0 ]#line:246189 except :OO0000O00O00OO0OO ='0'#line:247190 try :OOO00O0O00O00O00O =O000O0O0O00OO000O .findall ('<fanart>(.+?)</fanart>',OO0O00OOO0OOO0OO0 )[0 ]#line:249191 except :OOO00O0O00O00O00O ='0'#line:250192 OO00OOOOO00O0O0OO =O000O0O0O00OO000O .compile ('((?:<item>.+?</item>|<dir>.+?</dir>|<plugin>.+?</plugin>|<info>.+?</info>|<name>[^<]+</name><link>[^<]+</link><thumbnail>[^<]+</thumbnail><mode>[^<]+</mode>|<name>[^<]+</name><link>[^<]+</link><thumbnail>[^<]+</thumbnail><date>[^<]+</date>))',O000O0O0O00OO000O .MULTILINE |O000O0O0O00OO000O .DOTALL ).findall (result )#line:252193 except :#line:253194 return #line:254195 for OOOOOO00OOOOOO000 in OO00OOOOO00O0O0OO :#line:256196 try :#line:257197 O0OOO000O00O00000 =O000O0O0O00OO000O .compile ('(<regex>.+?</regex>)',O000O0O0O00OO000O .MULTILINE |O000O0O0O00OO000O .DOTALL ).findall (OOOOOO00OOOOOO000 )#line:258198 O0OOO000O00O00000 =''.join (O0OOO000O00O00000 )#line:259199 O0O00OO0OO0OO0O00 =O000O0O0O00OO000O .compile ('(<listrepeat>.+?</listrepeat>)',O000O0O0O00OO000O .MULTILINE |O000O0O0O00OO000O .DOTALL ).findall (O0OOO000O00O00000 )#line:260200 O0OOO000O00O00000 =OO0OOOO0OOOOOOO00 .quote_plus (O0OOO000O00O00000 )#line:261201 OOOOOOOOOO00OOO00 =OOOOOO0O00O0OO0O0 .md5 ()#line:263202 for OO0OOO0O00O0O0000 in O0OOO000O00O00000 :OOOOOOOOOO00OOO00 .update (str (OO0OOO0O00O0O0000 ))#line:264203 OOOOOOOOOO00OOO00 =str (OOOOOOOOOO00OOO00 .hexdigest ())#line:265204 OOOOOO00OOOOOO000 =OOOOOO00OOOOOO000 .replace ('\r','').replace ('\n','').replace ('\t','').replace ('&nbsp;','')#line:267205 OOOOOO00OOOOOO000 =O000O0O0O00OO000O .sub ('<regex>.+?</regex>','',OOOOOO00OOOOOO000 )#line:268206 OOOOOO00OOOOOO000 =O000O0O0O00OO000O .sub ('<sublink></sublink>|<sublink\s+name=(?:\'|\").*?(?:\'|\")></sublink>','',OOOOOO00OOOOOO000 )#line:269207 OOOOOO00OOOOOO000 =O000O0O0O00OO000O .sub ('<link></link>','',OOOOOO00OOOOOO000 )#line:270208 OO0OO0OOO0OO0O000 =O000O0O0O00OO000O .sub ('<meta>.+?</meta>','',OOOOOO00OOOOOO000 )#line:272209 try :OO0OO0OOO0OO0O000 =O000O0O0O00OO000O .findall ('<title>(.+?)</title>',OO0OO0OOO0OO0O000 )[0 ]#line:273210 except :OO0OO0OOO0OO0O000 =O000O0O0O00OO000O .findall ('<name>(.+?)</name>',OO0OO0OOO0OO0O000 )[0 ]#line:274211 try :O0O00000O00O0OO00 =O000O0O0O00OO000O .findall ('<date>(.+?)</date>',OOOOOO00OOOOOO000 )[0 ]#line:276212 except :O0O00000O00O0OO00 =''#line:277213 if O000O0O0O00OO000O .search (r'\d+',O0O00000O00O0OO00 ):OO0OO0OOO0OO0O000 +=' [COLOR red] Updated %s[/COLOR]'%O0O00000O00O0OO00 #line:278214 try :OOO00O0OOO0OOOO00 =O000O0O0O00OO000O .findall ('<thumbnail>(.+?)</thumbnail>',OOOOOO00OOOOOO000 )[0 ]#line:280215 except :OOO00O0OOO0OOOO00 =OO0000O00O00OO0OO #line:281216 try :O0OO0O0O00O0OO0OO =O000O0O0O00OO000O .findall ('<fanart>(.+?)</fanart>',OOOOOO00OOOOOO000 )[0 ]#line:283217 except :O0OO0O0O00O0OO0OO =OOO00O0O00O00O00O #line:284218 try :OO0OOOOOOOO00O000 =O000O0O0O00OO000O .findall ('<meta>(.+?)</meta>',OOOOOO00OOOOOO000 )[0 ]#line:286219 except :OO0OOOOOOOO00O000 ='0'#line:287220 try :O0OOOO0OOOO0OO00O =O000O0O0O00OO000O .findall ('<link>(.+?)</link>',OOOOOO00OOOOOO000 )[0 ]#line:289221 except :O0OOOO0OOOO0OO00O ='0'#line:290222 O0OOOO0OOOO0OO00O =O0OOOO0OOOO0OO00O .replace ('>search<','><preset>search</preset>%s<'%OO0OOOOOOOO00O000 )#line:291223 O0OOOO0OOOO0OO00O ='<preset>search</preset>%s'%OO0OOOOOOOO00O000 if O0OOOO0OOOO0OO00O =='search'else O0OOOO0OOOO0OO00O #line:292224 O0OOOO0OOOO0OO00O =O0OOOO0OOOO0OO00O .replace ('>searchsd<','><preset>searchsd</preset>%s<'%OO0OOOOOOOO00O000 )#line:293225 O0OOOO0OOOO0OO00O ='<preset>searchsd</preset>%s'%OO0OOOOOOOO00O000 if O0OOOO0OOOO0OO00O =='searchsd'else O0OOOO0OOOO0OO00O #line:294226 O0OOOO0OOOO0OO00O =O000O0O0O00OO000O .sub ('<sublink></sublink>|<sublink\s+name=(?:\'|\").*?(?:\'|\")></sublink>','',O0OOOO0OOOO0OO00O )#line:295227 if OOOOOO00OOOOOO000 .startswith ('<item>'):O0OOOO0000000O00O ='play'#line:297228 elif OOOOOO00OOOOOO000 .startswith ('<plugin>'):O0OOOO0000000O00O ='plugin'#line:298229 elif OOOOOO00OOOOOO000 .startswith ('<info>')or O0OOOO0OOOO0OO00O =='0':O0OOOO0000000O00O ='0'#line:299230 else :O0OOOO0000000O00O ='directory'#line:300231 if O0OOOO0000000O00O =='play'and O0O00OO0OO0OO0O00 :O0OOOO0000000O00O ='xdirectory'#line:301232 if not O0OOO000O00O00000 =='':#line:303233 OO0OOO00000OO0O0O .hash .append ({'regex':OOOOOOOOOO00OOO00 ,'response':O0OOO000O00O00000 })#line:304234 O0OOOO0OOOO0OO00O +='|regex=%s'%OOOOOOOOOO00OOO00 #line:305235 if O0OOOO0000000O00O in ['directory','xdirectory','plugin']:#line:307236 O00000OO000OO0O0O =True #line:308237 else :#line:309238 O00000OO000OO0O0O =False #line:310239 try :OOO0O00O0OO000000 =O000O0O0O00OO000O .findall ('<content>(.+?)</content>',OO0OOOOOOOO00O000 )[0 ]#line:312240 except :OOO0O00O0OO000000 ='0'#line:313241 if OOO0O00O0OO000000 =='0':#line:314242 try :OOO0O00O0OO000000 =O000O0O0O00OO000O .findall ('<content>(.+?)</content>',OOOOOO00OOOOOO000 )[0 ]#line:315243 except :OOO0O00O0OO000000 ='0'#line:316244 if not OOO0O00O0OO000000 =='0':OOO0O00O0OO000000 +='s'#line:317245 if 'tvshow'in OOO0O00O0OO000000 and not O0OOOO0OOOO0OO00O .strip ().endswith ('.xml'):#line:319246 O0OOOO0OOOO0OO00O ='<preset>tvindexer</preset><url>%s</url><thumbnail>%s</thumbnail><fanart>%s</fanart>%s'%(O0OOOO0OOOO0OO00O ,OOO00O0OOO0OOOO00 ,O0OO0O0O00O0OO0OO ,OO0OOOOOOOO00O000 )#line:320247 O0OOOO0000000O00O ='tvtuner'#line:321248 if 'tvtuner'in OOO0O00O0OO000000 and not O0OOOO0OOOO0OO00O .strip ().endswith ('.xml'):#line:323249 O0OOOO0OOOO0OO00O ='<preset>tvtuner</preset><url>%s</url><thumbnail>%s</thumbnail><fanart>%s</fanart>%s'%(O0OOOO0OOOO0OO00O ,OOO00O0OOO0OOOO00 ,O0OO0O0O00O0OO0OO ,OO0OOOOOOOO00O000 )#line:324250 O0OOOO0000000O00O ='tvtuner'#line:325251 try :O0OO0O0O000O0O0OO =O000O0O0O00OO000O .findall ('<imdb>(.+?)</imdb>',OO0OOOOOOOO00O000 )[0 ]#line:327252 except :O0OO0O0O000O0O0OO ='0'#line:328253 try :OOOO0O00000OOO000 =O000O0O0O00OO000O .findall ('<tvdb>(.+?)</tvdb>',OO0OOOOOOOO00O000 )[0 ]#line:330254 except :OOOO0O00000OOO000 ='0'#line:331255 try :O00000OO0000O0OO0 =O000O0O0O00OO000O .findall ('<tvshowtitle>(.+?)</tvshowtitle>',OO0OOOOOOOO00O000 )[0 ]#line:333256 except :O00000OO0000O0OO0 ='0'#line:334257 try :O00OOO0OO000O0000 =O000O0O0O00OO000O .findall ('<title>(.+?)</title>',OO0OOOOOOOO00O000 )[0 ]#line:336258 except :O00OOO0OO000O0000 ='0'#line:337259 if O00OOO0OO000O0000 =='0'and not O00000OO0000O0OO0 =='0':O00OOO0OO000O0000 =O00000OO0000O0OO0 #line:339260 try :OO00000OO00O0O0OO =O000O0O0O00OO000O .findall ('<year>(.+?)</year>',OO0OOOOOOOO00O000 )[0 ]#line:341261 except :OO00000OO00O0O0OO ='0'#line:342262 try :O00OO0O0OO0O00000 =O000O0O0O00OO000O .findall ('<premiered>(.+?)</premiered>',OO0OOOOOOOO00O000 )[0 ]#line:344263 except :O00OO0O0OO0O00000 ='0'#line:345264 try :O0OOO0OO0OO0O0O00 =O000O0O0O00OO000O .findall ('<season>(.+?)</season>',OO0OOOOOOOO00O000 )[0 ]#line:347265 except :O0OOO0OO0OO0O0O00 ='0'#line:348266 try :O000OOOOOOO00O0O0 =O000O0O0O00OO000O .findall ('<episode>(.+?)</episode>',OO0OOOOOOOO00O000 )[0 ]#line:350267 except :O000OOOOOOO00O0O0 ='0'#line:351268 OO0OOO00000OO0O0O .list .append ({'name':OO0OO0OOO0OO0O000 ,'vip':O00OOO0OO0O0OO0O0 ,'url':O0OOOO0OOOO0OO00O ,'action':O0OOOO0000000O00O ,'folder':O00000OO000OO0O0O ,'poster':OOO00O0OOO0OOOO00 ,'banner':'0','fanart':O0OO0O0O00O0OO0OO ,'content':OOO0O00O0OO000000 ,'imdb':O0OO0O0O000O0O0OO ,'tvdb':OOOO0O00000OOO000 ,'tmdb':'0','title':O00OOO0OO000O0000 ,'originaltitle':O00OOO0OO000O0000 ,'tvshowtitle':O00000OO0000O0OO0 ,'year':OO00000OO00O0O0OO ,'premiered':O00OO0O0OO0O00000 ,'season':O0OOO0OO0OO0O0O00 ,'episode':O000OOOOOOO00O0O0 })#line:353269 except :#line:354270 pass #line:355271 OO0OO0O0000OOO0OO .insert (OO0OOO00000OO0O0O .hash )#line:357272 return OO0OOO00000OO0O0O .list #line:359273 def account_filter (OOO00O0OO00OO00O0 ,OOOO00O0OO0O00O00 ):#line:362274 if (O0OOOO0OOO00OO0OO .setting ('ustvnow_email')==''or O0OOOO0OOO00OO0OO .setting ('ustvnow_pass')==''):#line:363275 OOOO00O0OO0O00O00 =O000O0O0O00OO000O .sub ('http(?:s|)://(?:www\.|)ustvnow\.com/.+?<','<',OOOO00O0OO0O00O00 )#line:364276 if (O0OOOO0OOO00OO0OO .setting ('streamlive_user')==''or O0OOOO0OOO00OO0OO .setting ('streamlive_pass')==''):#line:366277 OOOO00O0OO0O00O00 =O000O0O0O00OO000O .sub ('http(?:s|)://(?:www\.|)streamlive\.to/.+?<','<',OOOO00O0OO0O00O00 )#line:367278 return OOOO00O0OO0O00O00 #line:369279 def worker (O0O0OOOOO0OOO0O00 ):#line:372280 if not O0OOOO0OOO00OO0OO .setting ('metadata')=='true':return #line:373281 O0O0OOOOO0OOO0O00 .imdb_info_link ='http://www.omdbapi.com/?i=%s&plot=full&r=json'#line:375282 O0O0OOOOO0OOO0O00 .tvmaze_info_link ='http://api.tvmaze.com/lookup/shows?thetvdb=%s'#line:376283 O0O0OOOOO0OOO0O00 .lang ='en'#line:377284 O0O0OOOOO0OOO0O00 .meta =[]#line:379285 OOOO00O0O000OO0O0 =len (O0O0OOOOO0OOO0O00 .list )#line:380286 if OOOO00O0O000OO0O0 ==0 :return #line:381287 for O0OOO00OOO00O00O0 in range (0 ,OOOO00O0O000OO0O0 ):O0O0OOOOO0OOO0O00 .list [O0OOO00OOO00O00O0 ].update ({'metacache':False })#line:383288 O0O0OOOOO0OOO0O00 .list =OOO0O0O0O0O0OOO00 .fetch (O0O0OOOOO0OOO0O00 .list ,O0O0OOOOO0OOO0O00 .lang )#line:384289 OOOO0OO0O000O00O0 =[O0O0O0O0O0OO00O0O ['imdb']for O0O0O0O0O0OO00O0O in O0O0OOOOO0OOO0O00 .list ]#line:386290 OOOO0OO0O000O00O0 =[O0OO00O0000OOOOOO for O00OO0000O0O0000O ,O0OO00O0000OOOOOO in enumerate (OOOO0OO0O000O00O0 )if O0OO00O0000OOOOOO not in OOOO0OO0O000O00O0 [:O00OO0000O0O0000O ]]#line:387291 if len (OOOO0OO0O000O00O0 )==1 :#line:388292 O0O0OOOOO0OOO0O00 .movie_info (0 );O0O0OOOOO0OOO0O00 .tv_info (0 )#line:389293 if O0O0OOOOO0OOO0O00 .meta :OOO0O0O0O0O0OOO00 .insert (O0O0OOOOO0OOO0O00 .meta )#line:390294 for O0OOO00OOO00O00O0 in range (0 ,OOOO00O0O000OO0O0 ):O0O0OOOOO0OOO0O00 .list [O0OOO00OOO00O00O0 ].update ({'metacache':False })#line:392295 O0O0OOOOO0OOO0O00 .list =OOO0O0O0O0O0OOO00 .fetch (O0O0OOOOO0OOO0O00 .list ,O0O0OOOOO0OOO0O00 .lang )#line:393296 for O0O0O00O00OOOO00O in range (0 ,OOOO00O0O000OO0O0 ,50 ):#line:395297 O00OO0OOO00O0OO0O =[]#line:396298 for O0OOO00OOO00O00O0 in range (O0O0O00O00OOOO00O ,O0O0O00O00OOOO00O +50 ):#line:397299 if O0OOO00OOO00O00O0 <=OOOO00O0O000OO0O0 :O00OO0OOO00O0OO0O .append (O00O0O000O0O00000 .Thread (O0O0OOOOO0OOO0O00 .movie_info ,O0OOO00OOO00O00O0 ))#line:398300 if O0OOO00OOO00O00O0 <=OOOO00O0O000OO0O0 :O00OO0OOO00O0OO0O .append (O00O0O000O0O00000 .Thread (O0O0OOOOO0OOO0O00 .tv_info ,O0OOO00OOO00O00O0 ))#line:399301 [OO0O0O0000O0OOO0O .start ()for OO0O0O0000O0OOO0O in O00OO0OOO00O0OO0O ]#line:400302 [O00OO00O00O0000OO .join ()for O00OO00O00O0000OO in O00OO0OOO00O0OO0O ]#line:401303 if O0O0OOOOO0OOO0O00 .meta :OOO0O0O0O0O0OOO00 .insert (O0O0OOOOO0OOO0O00 .meta )#line:403304 def movie_info (OOO00O000O000O0OO ,O0000O0OOO000O0OO ):#line:406305 try :#line:407306 if OOO00O000O000O0OO .list [O0000O0OOO000O0OO ]['metacache']==True :raise Exception ()#line:408307 if not OOO00O000O000O0OO .list [O0000O0OOO000O0OO ]['content']=='movies':raise Exception ()#line:410308 O0O0OOOO0OOO0OOO0 =OOO00O000O000O0OO .list [O0000O0OOO000O0OO ]['imdb']#line:412309 if O0O0OOOO0OOO0OOO0 =='0':raise Exception ()#line:413310 OO000O00OO000O0O0 =OOO00O000O000O0OO .imdb_info_link %O0O0OOOO0OOO0OOO0 #line:415311 O00O000O00000000O =O0OOOO000O0O00O0O .request (OO000O00OO000O0O0 ,timeout ='10')#line:417312 O00O000O00000000O =OOOOO0OOOOOOOOO00 .loads (O00O000O00000000O )#line:418313 if 'Error'in O00O000O00000000O and 'incorrect imdb'in O00O000O00000000O ['Error'].lower ():#line:420314 return OOO00O000O000O0OO .meta .append ({'imdb':O0O0OOOO0OOO0OOO0 ,'tmdb':'0','tvdb':'0','lang':OOO00O000O000O0OO .lang ,'item':{'code':'0'}})#line:421315 OOO00OO0OO0000OO0 =O00O000O00000000O ['Title']#line:423316 OOO00OO0OO0000OO0 =OOO00OO0OO0000OO0 .encode ('utf-8')#line:424317 if not OOO00OO0OO0000OO0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'title':OOO00OO0OO0000OO0 })#line:425318 O00OO00OOOOO00OOO =O00O000O00000000O ['Year']#line:427319 O00OO00OOOOO00OOO =O00OO00OOOOO00OOO .encode ('utf-8')#line:428320 if not O00OO00OOOOO00OOO =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'year':O00OO00OOOOO00OOO })#line:429321 O0O0OOOO0OOO0OOO0 =O00O000O00000000O ['imdbID']#line:431322 if O0O0OOOO0OOO0OOO0 ==None or O0O0OOOO0OOO0OOO0 ==''or O0O0OOOO0OOO0OOO0 =='N/A':O0O0OOOO0OOO0OOO0 ='0'#line:432323 O0O0OOOO0OOO0OOO0 =O0O0OOOO0OOO0OOO0 .encode ('utf-8')#line:433324 if not O0O0OOOO0OOO0OOO0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'imdb':O0O0OOOO0OOO0OOO0 ,'code':O0O0OOOO0OOO0OOO0 })#line:434325 O000OOOOOO00O00O0 =O00O000O00000000O ['Released']#line:436326 if O000OOOOOO00O00O0 ==None or O000OOOOOO00O00O0 ==''or O000OOOOOO00O00O0 =='N/A':O000OOOOOO00O00O0 ='0'#line:437327 O000OOOOOO00O00O0 =O000O0O0O00OO000O .findall ('(\d*) (.+?) (\d*)',O000OOOOOO00O00O0 )#line:438328 try :O000OOOOOO00O00O0 ='%s-%s-%s'%(O000OOOOOO00O00O0 [0 ][2 ],{'Jan':'01','Feb':'02','Mar':'03','Apr':'04','May':'05','Jun':'06','Jul':'07','Aug':'08','Sep':'09','Oct':'10','Nov':'11','Dec':'12'}[O000OOOOOO00O00O0 [0 ][1 ]],O000OOOOOO00O00O0 [0 ][0 ])#line:439329 except :O000OOOOOO00O00O0 ='0'#line:440330 O000OOOOOO00O00O0 =O000OOOOOO00O00O0 .encode ('utf-8')#line:441331 if not O000OOOOOO00O00O0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'premiered':O000OOOOOO00O00O0 })#line:442332 O000O0OOOO0OOOO0O =O00O000O00000000O ['Genre']#line:444333 if O000O0OOOO0OOOO0O ==None or O000O0OOOO0OOOO0O ==''or O000O0OOOO0OOOO0O =='N/A':O000O0OOOO0OOOO0O ='0'#line:445334 O000O0OOOO0OOOO0O =O000O0OOOO0OOOO0O .replace (', ',' / ')#line:446335 O000O0OOOO0OOOO0O =O000O0OOOO0OOOO0O .encode ('utf-8')#line:447336 if not O000O0OOOO0OOOO0O =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'genre':O000O0OOOO0OOOO0O })#line:448337 O0000O0OOO0000O00 =O00O000O00000000O ['Runtime']#line:450338 if O0000O0OOO0000O00 ==None or O0000O0OOO0000O00 ==''or O0000O0OOO0000O00 =='N/A':O0000O0OOO0000O00 ='0'#line:451339 O0000O0OOO0000O00 =O000O0O0O00OO000O .sub ('[^0-9]','',str (O0000O0OOO0000O00 ))#line:452340 try :O0000O0OOO0000O00 =str (int (O0000O0OOO0000O00 )*60 )#line:453341 except :pass #line:454342 O0000O0OOO0000O00 =O0000O0OOO0000O00 .encode ('utf-8')#line:455343 if not O0000O0OOO0000O00 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'duration':O0000O0OOO0000O00 })#line:456344 OO0O0OO00OOOOO0O0 =O00O000O00000000O ['imdbRating']#line:458345 if OO0O0OO00OOOOO0O0 ==None or OO0O0OO00OOOOO0O0 ==''or OO0O0OO00OOOOO0O0 =='N/A'or OO0O0OO00OOOOO0O0 =='0.0':OO0O0OO00OOOOO0O0 ='0'#line:459346 OO0O0OO00OOOOO0O0 =OO0O0OO00OOOOO0O0 .encode ('utf-8')#line:460347 if not OO0O0OO00OOOOO0O0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'rating':OO0O0OO00OOOOO0O0 })#line:461348 OO0OO00OO0000000O =O00O000O00000000O ['imdbVotes']#line:463349 try :OO0OO00OO0000000O =str (format (int (OO0OO00OO0000000O ),',d'))#line:464350 except :pass #line:465351 if OO0OO00OO0000000O ==None or OO0OO00OO0000000O ==''or OO0OO00OO0000000O =='N/A':OO0OO00OO0000000O ='0'#line:466352 OO0OO00OO0000000O =OO0OO00OO0000000O .encode ('utf-8')#line:467353 if not OO0OO00OO0000000O =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'votes':OO0OO00OO0000000O })#line:468354 OO0O0OOOOOOOOOOOO =O00O000O00000000O ['Rated']#line:470355 if OO0O0OOOOOOOOOOOO ==None or OO0O0OOOOOOOOOOOO ==''or OO0O0OOOOOOOOOOOO =='N/A':OO0O0OOOOOOOOOOOO ='0'#line:471356 OO0O0OOOOOOOOOOOO =OO0O0OOOOOOOOOOOO .encode ('utf-8')#line:472357 if not OO0O0OOOOOOOOOOOO =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'mpaa':OO0O0OOOOOOOOOOOO })#line:473358 OO00O00OO0OO0OOOO =O00O000O00000000O ['Director']#line:475359 if OO00O00OO0OO0OOOO ==None or OO00O00OO0OO0OOOO ==''or OO00O00OO0OO0OOOO =='N/A':OO00O00OO0OO0OOOO ='0'#line:476360 OO00O00OO0OO0OOOO =OO00O00OO0OO0OOOO .replace (', ',' / ')#line:477361 OO00O00OO0OO0OOOO =O000O0O0O00OO000O .sub (r'\(.*?\)','',OO00O00OO0OO0OOOO )#line:478362 OO00O00OO0OO0OOOO =' '.join (OO00O00OO0OO0OOOO .split ())#line:479363 OO00O00OO0OO0OOOO =OO00O00OO0OO0OOOO .encode ('utf-8')#line:480364 if not OO00O00OO0OO0OOOO =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'director':OO00O00OO0OO0OOOO })#line:481365 O0OO00O0OOOOOOOOO =O00O000O00000000O ['Writer']#line:483366 if O0OO00O0OOOOOOOOO ==None or O0OO00O0OOOOOOOOO ==''or O0OO00O0OOOOOOOOO =='N/A':O0OO00O0OOOOOOOOO ='0'#line:484367 O0OO00O0OOOOOOOOO =O0OO00O0OOOOOOOOO .replace (', ',' / ')#line:485368 O0OO00O0OOOOOOOOO =O000O0O0O00OO000O .sub (r'\(.*?\)','',O0OO00O0OOOOOOOOO )#line:486369 O0OO00O0OOOOOOOOO =' '.join (O0OO00O0OOOOOOOOO .split ())#line:487370 O0OO00O0OOOOOOOOO =O0OO00O0OOOOOOOOO .encode ('utf-8')#line:488371 if not O0OO00O0OOOOOOOOO =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'writer':O0OO00O0OOOOOOOOO })#line:489372 O00O0000000OO0OO0 =O00O000O00000000O ['Actors']#line:491373 if O00O0000000OO0OO0 ==None or O00O0000000OO0OO0 ==''or O00O0000000OO0OO0 =='N/A':O00O0000000OO0OO0 ='0'#line:492374 O00O0000000OO0OO0 =[O00OOO0OO00O00000 .strip ()for O00OOO0OO00O00000 in O00O0000000OO0OO0 .split (',')if not O00OOO0OO00O00000 =='']#line:493375 try :O00O0000000OO0OO0 =[(O0O000O00O0O00OOO .encode ('utf-8'),'')for O0O000O00O0O00OOO in O00O0000000OO0OO0 ]#line:494376 except :O00O0000000OO0OO0 =[]#line:495377 if O00O0000000OO0OO0 ==[]:O00O0000000OO0OO0 ='0'#line:496378 if not O00O0000000OO0OO0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'cast':O00O0000000OO0OO0 })#line:497379 OO0000OOOO00000O0 =O00O000O00000000O ['Plot']#line:499380 if OO0000OOOO00000O0 ==None or OO0000OOOO00000O0 ==''or OO0000OOOO00000O0 =='N/A':OO0000OOOO00000O0 ='0'#line:500381 OO0000OOOO00000O0 =O0OOOO000O0O00O0O .replaceHTMLCodes (OO0000OOOO00000O0 )#line:501382 OO0000OOOO00000O0 =OO0000OOOO00000O0 .encode ('utf-8')#line:502383 if not OO0000OOOO00000O0 =='0':OOO00O000O000O0OO .list [O0000O0OOO000O0OO ].update ({'plot':OO0000OOOO00000O0 })#line:503384 OOO00O000O000O0OO .meta .append ({'imdb':O0O0OOOO0OOO0OOO0 ,'tmdb':'0','tvdb':'0','lang':OOO00O000O000O0OO .lang ,'item':{'title':OOO00OO0OO0000OO0 ,'year':O00OO00OOOOO00OOO ,'code':O0O0OOOO0OOO0OOO0 ,'imdb':O0O0OOOO0OOO0OOO0 ,'premiered':O000OOOOOO00O00O0 ,'genre':O000O0OOOO0OOOO0O ,'duration':O0000O0OOO0000O00 ,'rating':OO0O0OO00OOOOO0O0 ,'votes':OO0OO00OO0000000O ,'mpaa':OO0O0OOOOOOOOOOOO ,'director':OO00O00OO0OO0OOOO ,'writer':O0OO00O0OOOOOOOOO ,'cast':O00O0000000OO0OO0 ,'plot':OO0000OOOO00000O0 }})#line:505385 except :#line:506386 pass #line:507387 def tv_info (OOOOO00OOOO0O0OOO ,O000O0OOOO00O0O0O ):#line:510388 try :#line:511389 if OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ]['metacache']==True :raise Exception ()#line:512390 if not OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ]['content']in ['tvshows','seasons','episodes']:raise Exception ()#line:514391 OOO000OOOO00OOOOO =OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ]['tvdb']#line:516392 if OOO000OOOO00OOOOO =='0':raise Exception ()#line:517393 OOO00000000OOOOO0 =OOOOO00OOOO0O0OOO .tvmaze_info_link %OOO000OOOO00OOOOO #line:519394 OOO0O0OO0O00OOOOO =O0OOOO000O0O00O0O .request (OOO00000000OOOOO0 ,output ='extended',error =True ,timeout ='10')#line:521395 if OOO0O0OO0O00OOOOO [1 ]=='404':#line:523396 return OOOOO00OOOO0O0OOO .meta .append ({'imdb':'0','tmdb':'0','tvdb':OOO000OOOO00OOOOO ,'lang':OOOOO00OOOO0O0OOO .lang ,'item':{'code':'0'}})#line:524397 OOO0O0OO0O00OOOOO =OOOOO0OOOOOOOOO00 .loads (OOO0O0OO0O00OOOOO [0 ])#line:526398 OO0O000OOOOO0O0OO =OOO0O0OO0O00OOOOO ['name']#line:528399 OO0O000OOOOO0O0OO =OO0O000OOOOO0O0OO .encode ('utf-8')#line:529400 if not OO0O000OOOOO0O0OO =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'tvshowtitle':OO0O000OOOOO0O0OO })#line:530401 O000OOO0OO000000O =OOO0O0OO0O00OOOOO ['premiered']#line:532402 O000OOO0OO000000O =O000O0O0O00OO000O .findall ('(\d{4})',O000OOO0OO000000O )[0 ]#line:533403 O000OOO0OO000000O =O000OOO0OO000000O .encode ('utf-8')#line:534404 if not O000OOO0OO000000O =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'year':O000OOO0OO000000O })#line:535405 try :O000OOOO0OOOO0O0O =OOO0O0OO0O00OOOOO ['externals']['imdb']#line:537406 except :O000OOOO0OOOO0O0O ='0'#line:538407 if O000OOOO0OOOO0O0O ==''or O000OOOO0OOOO0O0O ==None :O000OOOO0OOOO0O0O ='0'#line:539408 O000OOOO0OOOO0O0O =O000OOOO0OOOO0O0O .encode ('utf-8')#line:540409 if OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ]['imdb']=='0'and not O000OOOO0OOOO0O0O =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'imdb':O000OOOO0OOOO0O0O })#line:541410 try :O00OO0O0OOO0OOO00 =OOO0O0OO0O00OOOOO ['network']['name']#line:543411 except :O00OO0O0OOO0OOO00 ='0'#line:544412 if O00OO0O0OOO0OOO00 ==''or O00OO0O0OOO0OOO00 ==None :O00OO0O0OOO0OOO00 ='0'#line:545413 O00OO0O0OOO0OOO00 =O00OO0O0OOO0OOO00 .encode ('utf-8')#line:546414 if not O00OO0O0OOO0OOO00 =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'studio':O00OO0O0OOO0OOO00 })#line:547415 O0O000O00O000O0O0 =OOO0O0OO0O00OOOOO ['genres']#line:549416 if O0O000O00O000O0O0 ==''or O0O000O00O000O0O0 ==None or O0O000O00O000O0O0 ==[]:O0O000O00O000O0O0 ='0'#line:550417 O0O000O00O000O0O0 =' / '.join (O0O000O00O000O0O0 )#line:551418 O0O000O00O000O0O0 =O0O000O00O000O0O0 .encode ('utf-8')#line:552419 if not O0O000O00O000O0O0 =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'genre':O0O000O00O000O0O0 })#line:553420 try :O000OO00O00OO0O0O =str (OOO0O0OO0O00OOOOO ['runtime'])#line:555421 except :O000OO00O00OO0O0O ='0'#line:556422 if O000OO00O00OO0O0O ==''or O000OO00O00OO0O0O ==None :O000OO00O00OO0O0O ='0'#line:557423 try :O000OO00O00OO0O0O =str (int (O000OO00O00OO0O0O )*60 )#line:558424 except :pass #line:559425 O000OO00O00OO0O0O =O000OO00O00OO0O0O .encode ('utf-8')#line:560426 if not O000OO00O00OO0O0O =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'duration':O000OO00O00OO0O0O })#line:561427 OOOO0OOO0O0OOOO00 =str (OOO0O0OO0O00OOOOO ['rating']['average'])#line:563428 if OOOO0OOO0O0OOOO00 ==''or OOOO0OOO0O0OOOO00 ==None :OOOO0OOO0O0OOOO00 ='0'#line:564429 OOOO0OOO0O0OOOO00 =OOOO0OOO0O0OOOO00 .encode ('utf-8')#line:565430 if not OOOO0OOO0O0OOOO00 =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'rating':OOOO0OOO0O0OOOO00 })#line:566431 O00OO00O00OO0OO00 =OOO0O0OO0O00OOOOO ['summary']#line:568432 if O00OO00O00OO0OO00 ==''or O00OO00O00OO0OO00 ==None :O00OO00O00OO0OO00 ='0'#line:569433 O00OO00O00OO0OO00 =O000O0O0O00OO000O .sub ('\n|<.+?>|</.+?>|.+?#\d*:','',O00OO00O00OO0OO00 )#line:570434 O00OO00O00OO0OO00 =O00OO00O00OO0OO00 .encode ('utf-8')#line:571435 if not O00OO00O00OO0OO00 =='0':OOOOO00OOOO0O0OOO .list [O000O0OOOO00O0O0O ].update ({'plot':O00OO00O00OO0OO00 })#line:572436 OOOOO00OOOO0O0OOO .meta .append ({'imdb':O000OOOO0OOOO0O0O ,'tmdb':'0','tvdb':OOO000OOOO00OOOOO ,'lang':OOOOO00OOOO0O0OOO .lang ,'item':{'tvshowtitle':OO0O000OOOOO0O0OO ,'year':O000OOO0OO000000O ,'code':O000OOOO0OOOO0O0O ,'imdb':O000OOOO0OOOO0O0O ,'tvdb':OOO000OOOO00OOOOO ,'studio':O00OO0O0OOO0OOO00 ,'genre':O0O000O00O000O0O0 ,'duration':O000OO00O00OO0O0O ,'rating':OOOO0OOO0O0OOOO00 ,'plot':O00OO00O00OO0OO00 }})#line:574437 except :#line:575438 pass #line:576439 def addDirectory (OOOOOOOOOO0OO0O00 ,O0OO000OO0O0O0OO0 ,queue =False ):#line:579440 if O0OO000OO0O0O0OO0 ==None or len (O0OO000OO0O0O0OO0 )==0 :return #line:580441 OO0O0OO00OOOOO0OO =O0O000O0O0OOOO00O .argv [0 ]#line:582442 O0O0OO0000OOO0OO0 =O0OO0O0OOO00OOO00 =O0OOOO0OOO00OO0OO .addonInfo ('icon')#line:583443 O0O0O0000OO00OOOO =O0OOOO0OOO00OO0OO .addonInfo ('fanart')#line:584444 O00O00O0000O000O0 =O0OOOO0OOO00OO0OO .playlist #line:586445 if not queue ==False :O00O00O0000O000O0 .clear ()#line:587446 try :OO0O0O00O000000OO =True if 'testings.xml'in O0OOOO0OOO00OO0OO .listDir (O0OOOO0OOO00OO0OO .dataPath )[1 ]else False #line:589447 except :OO0O0O00O000000OO =False #line:590448 OO0OO0O0OO0OO00O0 =[O0OO000000O0O000O ['content']for O0OO000000O0O000O in O0OO000OO0O0O0OO0 if 'content'in O0OO000000O0O000O ]#line:592449 if 'movies'in OO0OO0O0OO0OO00O0 :OO0OO0O0OO0OO00O0 ='movies'#line:593450 elif 'tvshows'in OO0OO0O0OO0OO00O0 :OO0OO0O0OO0OO00O0 ='tvshows'#line:594451 elif 'seasons'in OO0OO0O0OO0OO00O0 :OO0OO0O0OO0OO00O0 ='seasons'#line:595452 elif 'episodes'in OO0OO0O0OO0OO00O0 :OO0OO0O0OO0OO00O0 ='episodes'#line:596453 elif 'addons'in OO0OO0O0OO0OO00O0 :OO0OO0O0OO0OO00O0 ='addons'#line:597454 else :OO0OO0O0OO0OO00O0 ='videos'#line:598455 for OO000OO0O0O00O0OO in O0OO000OO0O0O0OO0 :#line:600456 try :#line:601457 try :O0000OO00O0OOO000 =O0OOOO0OOO00OO0OO .lang (int (OO000OO0O0O00O0OO ['name'])).encode ('utf-8')#line:602458 except :O0000OO00O0OOO000 =OO000OO0O0O00O0OO ['name']#line:603459 OO0O000O000O00O00 ='%s?action=%s'%(OO0O0OO00OOOOO0OO ,OO000OO0O0O00O0OO ['action'])#line:605460 try :OO0O000O000O00O00 +='&url=%s'%OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['url'])#line:606461 except :pass #line:607462 try :OO0O000O000O00O00 +='&content=%s'%OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['content'])#line:608463 except :pass #line:609464 if OO000OO0O0O00O0OO ['action']=='plugin'and 'url'in OO000OO0O0O00O0OO :OO0O000O000O00O00 =OO000OO0O0O00O0OO ['url']#line:611465 try :OOO00O0O0O0O00000 =dict (OO0O0OOO0O000OOO0 .parse_qsl (OO0O0OOO0O000OOO0 .urlparse (OO0O000O000O00O00 ).query ))['action']#line:613466 except :OOO00O0O0O0O00000 =None #line:614467 if OOO00O0O0O0O00000 =='developer'and not OO0O0O00O000000OO ==True :raise Exception ()#line:615468 OO00OO000O0OOO000 =OO000OO0O0O00O0OO ['poster']if 'poster'in OO000OO0O0O00O0OO else '0'#line:617469 O00O00O0OO0O00OO0 =OO000OO0O0O00O0OO ['banner']if 'banner'in OO000OO0O0O00O0OO else '0'#line:618470 OO0O00O000O0O0000 =OO000OO0O0O00O0OO ['fanart']if 'fanart'in OO000OO0O0O00O0OO else '0'#line:619471 if OO00OO000O0OOO000 =='0':OO00OO000O0OOO000 =O0O0OO0000OOO0OO0 #line:620472 if O00O00O0OO0O00OO0 =='0'and OO00OO000O0OOO000 =='0':O00O00O0OO0O00OO0 =O0OO0O0OOO00OOO00 #line:621473 elif O00O00O0OO0O00OO0 =='0':O00O00O0OO0O00OO0 =OO00OO000O0OOO000 #line:622474 O00O000000000OOOO =OO000OO0O0O00O0OO ['content']if 'content'in OO000OO0O0O00O0OO else '0'#line:624475 OOO00OO0O0000O0OO =OO000OO0O0O00O0OO ['folder']if 'folder'in OO000OO0O0O00O0OO else True #line:626476 OO0O0000O0OO000O0 =dict ((O000O0OO000OO0OO0 ,O0O0OO000000OO0OO )for O000O0OO000OO0OO0 ,O0O0OO000000OO0OO in OO000OO0O0O00O0OO .iteritems ()if not O0O0OO000000OO0OO =='0')#line:628477 O0OOO000O0OOOOOOO =[]#line:630478 if O00O000000000OOOO in ['movies','tvshows']:#line:632479 OO0O0000O0OO000O0 .update ({'trailer':'%s?action=trailer&name=%s'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (O0000OO00O0OOO000 ))})#line:633480 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30707 ).encode ('utf-8'),'RunPlugin(%s?action=trailer&name=%s)'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (O0000OO00O0OOO000 ))))#line:634481 if O00O000000000OOOO in ['movies','tvshows','seasons','episodes']:#line:636482 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30708 ).encode ('utf-8'),'XBMC.Action(Info)'))#line:637483 if (OOO00OO0O0000O0OO ==False and not '|regex='in str (OO000OO0O0O00O0OO .get ('url')))or (OOO00OO0O0000O0OO ==True and O00O000000000OOOO in ['tvshows','seasons']):#line:639484 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30723 ).encode ('utf-8'),'RunPlugin(%s?action=queueItem)'%OO0O0OO00OOOOO0OO ))#line:640485 if O00O000000000OOOO =='movies':#line:642486 try :O00000OOO0O00OOOO ='%s (%s)'%(OO000OO0O0O00O0OO ['title'],OO000OO0O0O00O0OO ['year'])#line:643487 except :O00000OOO0O00OOOO =O0000OO00O0OOO000 #line:644488 try :O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30722 ).encode ('utf-8'),'RunPlugin(%s?action=addDownload&name=%s&url=%s&image=%s)'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (O00000OOO0O00OOOO ),OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['url']),OO0OOOO0OOOOOOO00 .quote_plus (OO00OO000O0OOO000 ))))#line:645489 except :pass #line:646490 elif O00O000000000OOOO =='episodes':#line:647491 try :O00000OOO0O00OOOO ='%s S%02dE%02d'%(OO000OO0O0O00O0OO ['tvshowtitle'],int (OO000OO0O0O00O0OO ['season']),int (OO000OO0O0O00O0OO ['episode']))#line:648492 except :O00000OOO0O00OOOO =O0000OO00O0OOO000 #line:649493 try :O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30722 ).encode ('utf-8'),'RunPlugin(%s?action=addDownload&name=%s&url=%s&image=%s)'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (O00000OOO0O00OOOO ),OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['url']),OO0OOOO0OOOOOOO00 .quote_plus (OO00OO000O0OOO000 ))))#line:650494 except :pass #line:651495 elif O00O000000000OOOO =='songs':#line:652496 try :O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30722 ).encode ('utf-8'),'RunPlugin(%s?action=addDownload&name=%s&url=%s&image=%s)'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (O0000OO00O0OOO000 ),OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['url']),OO0OOOO0OOOOOOO00 .quote_plus (OO00OO000O0OOO000 ))))#line:653497 except :pass #line:654498 if OO0OO0O0OO0OO00O0 =='movies':#line:656499 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30711 ).encode ('utf-8'),'RunPlugin(%s?action=addView&content=movies)'%OO0O0OO00OOOOO0OO ))#line:657500 elif OO0OO0O0OO0OO00O0 =='tvshows':#line:658501 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30712 ).encode ('utf-8'),'RunPlugin(%s?action=addView&content=tvshows)'%OO0O0OO00OOOOO0OO ))#line:659502 elif OO0OO0O0OO0OO00O0 =='seasons':#line:660503 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30713 ).encode ('utf-8'),'RunPlugin(%s?action=addView&content=seasons)'%OO0O0OO00OOOOO0OO ))#line:661504 elif OO0OO0O0OO0OO00O0 =='episodes':#line:662505 O0OOO000O0OOOOOOO .append ((O0OOOO0OOO00OO0OO .lang (30714 ).encode ('utf-8'),'RunPlugin(%s?action=addView&content=episodes)'%OO0O0OO00OOOOO0OO ))#line:663506 if OO0O0O00O000000OO ==True :#line:665507 try :O0OOO000O0OOOOOOO .append (('Open in browser','RunPlugin(%s?action=browser&url=%s)'%(OO0O0OO00OOOOO0OO ,OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['url']))))#line:666508 except :pass #line:667509 O0000O0OOO0O00OO0 =O0OOOO0OOO00OO0OO .item (label =O0000OO00O0OOO000 ,iconImage =OO00OO000O0OOO000 ,thumbnailImage =OO00OO000O0OOO000 )#line:670510 try :O0000O0OOO0O00OO0 .setArt ({'poster':OO00OO000O0OOO000 ,'tvshow.poster':OO00OO000O0OOO000 ,'season.poster':OO00OO000O0OOO000 ,'banner':O00O00O0OO0O00OO0 ,'tvshow.banner':O00O00O0OO0O00OO0 ,'season.banner':O00O00O0OO0O00OO0 })#line:672511 except :pass #line:673512 if not OO0O00O000O0O0000 =='0':#line:675513 O0000O0OOO0O00OO0 .setProperty ('Fanart_Image',OO0O00O000O0O0000 )#line:676514 elif not O0O0O0000OO00OOOO ==None :#line:677515 O0000O0OOO0O00OO0 .setProperty ('Fanart_Image',O0O0O0000OO00OOOO )#line:678516 if queue ==False :#line:680517 O0000O0OOO0O00OO0 .setInfo (type ='Video',infoLabels =OO0O0000O0OO000O0 )#line:681518 O0000O0OOO0O00OO0 .addContextMenuItems (O0OOO000O0OOOOOOO )#line:682519 O0OOOO0OOO00OO0OO .addItem (handle =int (O0O000O0O0OOOO00O .argv [1 ]),url =OO0O000O000O00O00 ,listitem =O0000O0OOO0O00OO0 ,isFolder =OOO00OO0O0000O0OO )#line:683520 else :#line:684521 O0000O0OOO0O00OO0 .setInfo (type ='Video',infoLabels =OO0O0000O0OO000O0 )#line:685522 O00O00O0000O000O0 .add (url =OO0O000O000O00O00 ,listitem =O0000O0OOO0O00OO0 )#line:686523 except :#line:687524 pass #line:688525 if not queue ==False :#line:690526 return O0OOOO0OOO00OO0OO .player .play (O00O00O0000O000O0 )#line:691527 try :#line:693528 OO000OO0O0O00O0OO =O0OO000OO0O0O0OO0 [0 ]#line:694529 if OO000OO0O0O00O0OO ['next']=='':raise Exception ()#line:695530 OO0O000O000O00O00 ='%s?action=%s&url=%s'%(OO0O0OO00OOOOO0OO ,OO000OO0O0O00O0OO ['nextaction'],OO0OOOO0OOOOOOO00 .quote_plus (OO000OO0O0O00O0OO ['next']))#line:696531 O0000O0OOO0O00OO0 =O0OOOO0OOO00OO0OO .item (label =O0OOOO0OOO00OO0OO .lang (30500 ).encode ('utf-8'))#line:697532 O0000O0OOO0O00OO0 .setArt ({'addonPoster':O0O0OO0000OOO0OO0 ,'thumb':O0O0OO0000OOO0OO0 ,'poster':O0O0OO0000OOO0OO0 ,'tvshow.poster':O0O0OO0000OOO0OO0 ,'season.poster':O0O0OO0000OOO0OO0 ,'banner':O0O0OO0000OOO0OO0 ,'tvshow.banner':O0O0OO0000OOO0OO0 ,'season.banner':O0O0OO0000OOO0OO0 })#line:698533 O0000O0OOO0O00OO0 .setProperty ('addonFanart_Image',O0O0O0000OO00OOOO )#line:699534 O0OOOO0OOO00OO0OO .addItem (handle =int (O0O000O0O0OOOO00O .argv [1 ]),url =OO0O000O000O00O00 ,listitem =O0000O0OOO0O00OO0 ,isFolder =True )#line:700535 except :#line:701536 pass #line:702537 if not OO0OO0O0OO0OO00O0 ==None :O0OOOO0OOO00OO0OO .content (int (O0O000O0O0OOOO00O .argv [1 ]),OO0OO0O0OO0OO00O0 )#line:704538 O0OOOO0OOO00OO0OO .directory (int (O0O000O0O0OOOO00O .argv [1 ]),cacheToDisc =True )#line:705539 if OO0OO0O0OO0OO00O0 in ['movies','tvshows','seasons','episodes']:#line:706540 OOO00O0OO0OOOO0OO .setView (OO0OO0O0OO0OO00O0 ,{'skin.estuary':55 })#line:707541class resolver :#line:711542 def browser (O00000O0OO0OO0O00 ,OOOOO0O00O000OOO0 ):#line:712543 try :#line:713544 OOOOO0O00O000OOO0 =O00000O0OO0OO0O00 .get (OOOOO0O00O000OOO0 )#line:714545 if OOOOO0O00O000OOO0 ==False :return #line:715546 O0OOOO0OOO00OO0OO .execute ('RunPlugin(plugin://plugin.program.chrome.launcher/?url=%s&mode=showSite&stopPlayback=no)'%OO0OOOO0OOOOOOO00 .quote_plus (OOOOO0O00O000OOO0 ))#line:716547 except :#line:717548 pass #line:718549 def link (OOOOOO00OOOO0000O ,O00OOOO000O0O00O0 ):#line:721550 try :#line:722551 O00OOOO000O0O00O0 =OOOOOO00OOOO0000O .get (O00OOOO000O0O00O0 )#line:723552 if O00OOOO000O0O00O0 ==False :return #line:724553 O0OOOO0OOO00OO0OO .execute ('ActivateWindow(busydialog)')#line:726554 O00OOOO000O0O00O0 =OOOOOO00OOOO0000O .process (O00OOOO000O0O00O0 )#line:727555 O0OOOO0OOO00OO0OO .execute ('Dialog.Close(busydialog)')#line:728556 if O00OOOO000O0O00O0 ==None :return O0OOOO0OOO00OO0OO .infoDialog (O0OOOO0OOO00OO0OO .lang (30705 ).encode ('utf-8'))#line:730557 return O00OOOO000O0O00O0 #line:731558 except :#line:732559 pass #line:733560 def get (OOO0OO0O0O0O0O00O ,O000O00O0OO0OO000 ):#line:736561 try :#line:737562 OO0O0O0O0OO0O0OO0 =O000O0O0O00OO000O .compile ('<sublink(?:\s+name=|)(?:\'|\"|)(.*?)(?:\'|\"|)>(.+?)</sublink>').findall (O000O00O0OO0OO000 )#line:738563 if len (OO0O0O0O0OO0O0OO0 )==0 :return O000O00O0OO0OO000 #line:740564 if len (OO0O0O0O0OO0O0OO0 )==1 :return OO0O0O0O0OO0O0OO0 [0 ][1 ]#line:741565 OO0O0O0O0OO0O0OO0 =[('Link %s'%(int (OO0O0O0O0OO0O0OO0 .index (OO0O000OO0000OOOO ))+1 )if OO0O000OO0000OOOO [0 ]==''else OO0O000OO0000OOOO [0 ],OO0O000OO0000OOOO [1 ])for OO0O000OO0000OOOO in OO0O0O0O0OO0O0OO0 ]#line:743566 O0O0000OOO000O00O =O0OOOO0OOO00OO0OO .selectDialog ([OO0O0O0OO0OOOO000 [0 ]for OO0O0O0OO0OOOO000 in OO0O0O0O0OO0O0OO0 ],O0OOOO0OOO00OO0OO .infoLabel ('listitem.label'))#line:745567 if O0O0000OOO000O00O ==-1 :return False #line:747568 else :return OO0O0O0O0OO0O0OO0 [O0O0000OOO000O00O ][1 ]#line:748569 except :#line:749570 pass #line:750571 def f4m (O00OOOOO0O0O0OOOO ,O00O000OO0000OO0O ,OO000O0OO00OO0O00 ):#line:753572 try :#line:754573 if not any (OO00OO0O0O000O0OO in O00O000OO0000OO0O for OO00OO0O0O000O0OO in ['.f4m','.ts']):raise Exception ()#line:755574 O000OO0OOOOOO0OOO =O00O000OO0000OO0O .split ('?')[0 ].split ('&')[0 ].split ('|')[0 ].rsplit ('.')[-1 ].replace ('/','').lower ()#line:756575 if not O000OO0OOOOOO0OOO in ['f4m','ts']:raise Exception ()#line:757576 OOOO00000000O000O =OO0O0OOO0O000OOO0 .parse_qs (O00O000OO0000OO0O )#line:759577 try :O0O000O00OOOOO00O =OOOO00000000O000O ['proxy'][0 ]#line:761578 except :O0O000O00OOOOO00O =None #line:762579 try :OOO00OOOO0O0O00O0 =OOOOO0OOOOOOOOO00 .loads (OOOO00000000O000O ['proxy_for_chunks'][0 ])#line:764580 except :OOO00OOOO0O0O00O0 =True #line:765581 try :OO0OOOOO0OO00OO0O =int (OOOO00000000O000O ['maxbitrate'][0 ])#line:767582 except :OO0OOOOO0OO00OO0O =0 #line:768583 try :OO0O0OOOOO000OO00 =OOOOO0OOOOOOOOO00 .loads (OOOO00000000O000O ['simpledownloader'][0 ])#line:770584 except :OO0O0OOOOO000OO00 =False #line:771585 try :OOOO000O0O0OO000O =OOOO00000000O000O ['auth'][0 ]#line:773586 except :OOOO000O0O0OO000O =''#line:774587 try :OO00OO0OO0O0O000O =OOOO00000000O000O ['streamtype'][0 ]#line:776588 except :OO00OO0OO0O0O000O ='TSDOWNLOADER'if O000OO0OOOOOO0OOO =='ts'else 'HDS'#line:777589 try :O0000O00000O000O0 =OOOO00000000O000O ['swf'][0 ]#line:779590 except :O0000O00000O000O0 =None #line:780591 from F4mProxy import f4mProxyHelper as O0000OOO0O0OOOOO0 #line:782592 return O0000OOO0O0OOOOO0 ().playF4mLink (O00O000OO0000OO0O ,OO000O0OO00OO0O00 ,O0O000O00OOOOO00O ,OOO00OOOO0O0O00O0 ,OO0OOOOO0OO00OO0O ,OO0O0OOOOO000OO00 ,OOOO000O0O0OO000O ,OO00OO0OO0O0O000O ,False ,O0000O00000O000O0 )#line:783593 except :#line:784594 pass #line:785595 def process (O0OO0OOO000OO0OO0 ,O00000O0OO0O00OOO ,direct =True ):#line:788596 try :#line:789597 if not any (O00O00OO00000O0O0 in O00000O0OO0O00OOO for O00O00OO00000O0O0 in ['.jpg','.png','.gif']):raise Exception ()#line:790598 OOO0O00O0O0O0O000 =O00000O0OO0O00OOO .split ('?')[0 ].split ('&')[0 ].split ('|')[0 ].rsplit ('.')[-1 ].replace ('/','').lower ()#line:791599 if not OOO0O00O0O0O0O000 in ['jpg','png','gif']:raise Exception ()#line:792600 try :#line:793601 O000OO000000O0000 =OO0O0O0OOO0000O00 .path .join (O0OOOO0OOO00OO0OO .dataPath ,'img')#line:794602 O0OOOO0OOO00OO0OO .deleteFile (O000OO000000O0000 )#line:795603 O0O0OO0O000OOOO0O =O0OOOO0OOO00OO0OO .openFile (O000OO000000O0000 ,'w')#line:796604 O0O0OO0O000OOOO0O .write (O0OOOO000O0O00O0O .request (O00000O0OO0O00OOO ))#line:797605 O0O0OO0O000OOOO0O .close ()#line:798606 O0OOOO0OOO00OO0OO .execute ('ShowPicture("%s")'%O000OO000000O0000 )#line:799607 return False #line:800608 except :#line:801609 return #line:802610 except :#line:803611 pass #line:804612 try :#line:806613 OOO0OOOOO00000OOO ,OOOOOO0000OOO0OO0 =O000O0O0O00OO000O .findall ('(.+?)\|regex=(.+?)$',O00000O0OO0O00OOO )[0 ]#line:807614 OOOOOO0000OOO0OO0 =OO0OO0O0000OOO0OO .fetch (OOOOOO0000OOO0OO0 )#line:808615 OOO0OOOOO00000OOO +=OO0OOOO0OOOOOOO00 .unquote_plus (OOOOOO0000OOO0OO0 )#line:809616 if not '</regex>'in OOO0OOOOO00000OOO :raise Exception ()#line:810617 O0O000O00O0OOO00O =OO0OO0O0000OOO0OO .resolve (OOO0OOOOO00000OOO )#line:811618 if not O0O000O00O0OOO00O ==None :O00000O0OO0O00OOO =O0O000O00O0OOO00O #line:812619 except :#line:813620 pass #line:814621 try :#line:816622 if not O00000O0OO0O00OOO .startswith ('rtmp'):raise Exception ()#line:817623 if len (O000O0O0O00OO000O .compile ('\s*timeout=(\d*)').findall (O00000O0OO0O00OOO ))==0 :O00000O0OO0O00OOO +=' timeout=10'#line:818624 return O00000O0OO0O00OOO #line:819625 except :#line:820626 pass #line:821627 try :#line:823628 if not any (O0OO0O0O0OO0OOOO0 in O00000O0OO0O00OOO for O0OO0O0O0OO0OOOO0 in ['.m3u8','.f4m','.ts']):raise Exception ()#line:824629 OOO0O00O0O0O0O000 =O00000O0OO0O00OOO .split ('?')[0 ].split ('&')[0 ].split ('|')[0 ].rsplit ('.')[-1 ].replace ('/','').lower ()#line:825630 if not OOO0O00O0O0O0O000 in ['m3u8','f4m','ts']:raise Exception ()#line:826631 return O00000O0OO0O00OOO #line:827632 except :#line:828633 pass #line:829634 try :#line:831635 OO00O000OOOOO00O0 =O000O0O0O00OO000O .findall ('<preset>(.+?)</preset>',O00000O0OO0O00OOO )[0 ]#line:832636 if not 'search'in OO00O000OOOOO00O0 :raise Exception ()#line:834637 OOO00OO0O0O0O0000 ,OO00OO00OOO00O000 ,O0O0OO000OOO0O000 =O000O0O0O00OO000O .findall ('<title>(.+?)</title>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<year>(.+?)</year>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<imdb>(.+?)</imdb>',O00000O0OO0O00OOO )[0 ]#line:836638 try :OO00O000O0000O000 ,OOO00O0O00OOO0OO0 ,OOO00000O0OOOOO00 ,OOO000OO0O0O0O000 ,O000OO0OO0OOO00OO =O000O0O0O00OO000O .findall ('<tvdb>(.+?)</tvdb>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<tvshowtitle>(.+?)</tvshowtitle>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<premiered>(.+?)</premiered>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<season>(.+?)</season>',O00000O0OO0O00OOO )[0 ],O000O0O0O00OO000O .findall ('<episode>(.+?)</episode>',O00000O0OO0O00OOO )[0 ]#line:838639 except :OO00O000O0000O000 =OOO00O0O00OOO0OO0 =OOO00000O0OOOOO00 =OOO000OO0O0O0O000 =O000OO0OO0OOO00OO =None #line:839640 direct =False #line:841641 O000OOOO0O0OO000O ='HD'if not OO00O000OOOOO00O0 =='searchsd'else 'SD'#line:843642 from resources .lib .sources import sources as O00O0OO000OOO00O0 #line:845643 O0O000O00O0OOO00O =O00O0OO000OOO00O0 ().getSources (OOO00OO0O0O0O0000 ,OO00OO00OOO00O000 ,O0O0OO000OOO0O000 ,OO00O000O0000O000 ,OOO000OO0O0O0O000 ,O000OO0OO0OOO00OO ,OOO00O0O00OOO0OO0 ,OOO00000O0OOOOO00 ,O000OOOO0O0OO000O )#line:847644 if not O0O000O00O0OOO00O ==None :return O0O000O00O0OOO00O #line:849645 except :#line:850646 pass #line:851647 try :#line:853648 from resources .lib .sources import sources as O00O0OO000OOO00O0 #line:854649 O0O000O00O0OOO00O =O00O0OO000OOO00O0 ().getURISource (O00000O0OO0O00OOO )#line:856650 if not O0O000O00O0OOO00O ==False :direct =False #line:858651 if O0O000O00O0OOO00O ==None or O0O000O00O0OOO00O ==False :raise Exception ()#line:859652 return O0O000O00O0OOO00O #line:861653 except :#line:862654 pass #line:863655 try :#line:865656 if not '.google.com'in O00000O0OO0O00OOO :raise Exception ()#line:866657 from resources .lib .modules import directstream as O0OO0OO00000000O0 #line:867658 O0O000O00O0OOO00O =O0OO0OO00000000O0 .google (O00000O0OO0O00OOO )[0 ]['url']#line:868659 return O0O000O00O0OOO00O #line:869660 except :#line:870661 pass #line:871662 try :#line:873663 if not 'filmon.com/'in O00000O0OO0O00OOO :raise Exception ()#line:874664 from resources .lib .modules import filmon as O00O000OO000OO0O0 #line:875665 O0O000O00O0OOO00O =O00O000OO000OO0O0 .resolve (O00000O0OO0O00OOO )#line:876666 return O0O000O00O0OOO00O #line:877667 except :#line:878668 pass #line:879669 try :#line:881670 import urlresolver as OO0OO0OOO000O0OO0 #line:882671 O00O0O000000O00OO =OO0OO0OOO000O0OO0 .HostedMediaFile (url =O00000O0OO0O00OOO )#line:884672 if O00O0O000000O00OO .valid_url ()==False :raise Exception ()#line:886673 direct =False ;O0O000O00O0OOO00O =O00O0O000000O00OO .resolve ()#line:888674 if not O0O000O00O0OOO00O ==False :return O0O000O00O0OOO00O #line:890675 except :#line:891676 pass #line:892677 if direct ==True :return O00000O0OO0O00OOO #line:894678class player (OO0000O00000OO00O .Player ):#line:897679 def __init__ (OO0O0O0000OOO0000 ):#line:898680 OO0000O00000OO00O .Player .__init__ (OO0O0O0000OOO0000 )#line:899681 def play (OOO0000O00O00O0O0 ,OOO0O0OOOOOO0OO0O ,content =None ):#line:902682 try :#line:903683 OO00O000O0O000O00 =OOO0O0OOOOOO0OO0O #line:904684 OOO0O0OOOOOO0OO0O =resolver ().get (OOO0O0OOOOOO0OO0O )#line:906685 if OOO0O0OOOOOO0OO0O ==False :return #line:907686 O0OOOO0OOO00OO0OO .execute ('ActivateWindow(busydialog)')#line:909687 OOO0O0OOOOOO0OO0O =resolver ().process (OOO0O0OOOOOO0OO0O )#line:910688 O0OOOO0OOO00OO0OO .execute ('Dialog.Close(busydialog)')#line:911689 if OOO0O0OOOOOO0OO0O ==None :return O0OOOO0OOO00OO0OO .infoDialog (O0OOOO0OOO00OO0OO .lang (30705 ).encode ('utf-8'))#line:913690 if OOO0O0OOOOOO0OO0O ==False :return #line:914691 O0O0O0000OOOO00OO ={}#line:916692 for O00O0O00000O00O00 in ['title','originaltitle','tvshowtitle','year','season','episode','genre','rating','votes','director','writer','plot','tagline']:#line:917693 try :O0O0O0000OOOO00OO [O00O0O00000O00O00 ]=O0OOOO0OOO00OO0OO .infoLabel ('listitem.%s'%O00O0O00000O00O00 )#line:918694 except :pass #line:919695 O0O0O0000OOOO00OO =dict ((O0000OO0O000O0OOO ,OOO0O00OO0000O0O0 )for O0000OO0O000O0OOO ,OOO0O00OO0000O0O0 in O0O0O0000OOOO00OO .iteritems ()if not OOO0O00OO0000O0O0 =='')#line:920696 if not 'title'in O0O0O0000OOOO00OO :O0O0O0000OOOO00OO ['title']=O0OOOO0OOO00OO0OO .infoLabel ('listitem.label')#line:921697 O0O0O0O000000OO00 =O0OOOO0OOO00OO0OO .infoLabel ('listitem.icon')#line:922698 OOO0000O00O00O0O0 .name =O0O0O0000OOOO00OO ['title'];OOO0000O00O00O0O0 .year =O0O0O0000OOOO00OO ['year']if 'year'in O0O0O0000OOOO00OO else '0'#line:925699 OOO0000O00O00O0O0 .getbookmark =True if (content =='movies'or content =='episodes')else False #line:927700 OOO0000O00O00O0O0 .offset =bookmarks ().get (OOO0000O00O00O0O0 .name ,OOO0000O00O00O0O0 .year )#line:929701 O0OOOOOOO00O0O0OO =resolver ().f4m (OOO0O0OOOOOO0OO0O ,OOO0000O00O00O0O0 .name )#line:931702 if not O0OOOOOOO00O0O0OO ==None :return #line:932703 O0OOO00O0OOO000O0 =O0OOOO0OOO00OO0OO .item (path =OOO0O0OOOOOO0OO0O ,iconImage =O0O0O0O000000OO00 ,thumbnailImage =O0O0O0O000000OO00 )#line:935704 try :O0OOO00O0OOO000O0 .setArt ({'icon':O0O0O0O000000OO00 })#line:936705 except :pass #line:937706 O0OOO00O0OOO000O0 .setInfo (type ='Video',infoLabels =O0O0O0000OOOO00OO )#line:938707 O0OOOO0OOO00OO0OO .player .play (OOO0O0OOOOOO0OO0O ,O0OOO00O0OOO000O0 )#line:939708 O0OOOO0OOO00OO0OO .resolve (int (O0O000O0O0OOOO00O .argv [1 ]),True ,O0OOO00O0OOO000O0 )#line:940709 OOO0000O00O00O0O0 .totalTime =0 ;OOO0000O00O00O0O0 .currentTime =0 #line:942710 for O00O0O00000O00O00 in range (0 ,240 ):#line:944711 if OOO0000O00O00O0O0 .isPlayingVideo ():break #line:945712 O0OOOO0OOO00OO0OO .sleep (1000 )#line:946713 while OOO0000O00O00O0O0 .isPlayingVideo ():#line:947714 try :#line:948715 OOO0000O00O00O0O0 .totalTime =OOO0000O00O00O0O0 .getTotalTime ()#line:949716 OOO0000O00O00O0O0 .currentTime =OOO0000O00O00O0O0 .getTime ()#line:950717 except :#line:951718 pass #line:952719 O0OOOO0OOO00OO0OO .sleep (2000 )#line:953720 O0OOOO0OOO00OO0OO .sleep (5000 )#line:954721 except :#line:955722 pass #line:956723 def onPlayBackStarted (OOO0O0OO000O0O0O0 ):#line:959724 O0OOOO0OOO00OO0OO .execute ('Dialog.Close(all,true)')#line:960725 if OOO0O0OO000O0O0O0 .getbookmark ==True and not OOO0O0OO000O0O0O0 .offset =='0':#line:961726 OOO0O0OO000O0O0O0 .seekTime (float (OOO0O0OO000O0O0O0 .offset ))#line:962727 def onPlayBackStopped (O00O0OOO0OOO00O0O ):#line:965728 if O00O0OOO0OOO00O0O .getbookmark ==True :#line:966729 bookmarks ().reset (O00O0OOO0OOO00O0O .currentTime ,O00O0OOO0OOO00O0O .totalTime ,O00O0OOO0OOO00O0O .name ,O00O0OOO0OOO00O0O .year )#line:967730 def onPlayBackEnded (O0000O00O0OO00OO0 ):#line:970731 O0000O00O0OO00OO0 .onPlayBackStopped ()#line:971732class bookmarks :#line:975733 def get (O0O00OO0O000OOO00 ,OO0O000O0OO000O00 ,year ='0'):#line:976734 try :#line:977735 O0OO00OO0OO000O00 ='0'#line:978736 O0000O000000O000O =OOOOOO0O00O0OO0O0 .md5 ()#line:982737 for O0O0O00O0O0000000 in OO0O000O0OO000O00 :O0000O000000O000O .update (str (O0O0O00O0O0000000 ))#line:983738 for O0O0O00O0O0000000 in year :O0000O000000O000O .update (str (O0O0O00O0O0000000 ))#line:984739 O0000O000000O000O =str (O0000O000000O000O .hexdigest ())#line:985740 O0OO0O0000O000O0O =OO000OOOOOO0OOO0O .connect (O0OOOO0OOO00OO0OO .bookmarksFile )#line:987741 OO0OO000000O0OO00 =O0OO0O0000O000O0O .cursor ()#line:988742 OO0OO000000O0OO00 .execute ("SELECT * FROM bookmark WHERE idFile = '%s'"%O0000O000000O000O )#line:989743 O00O000000OOO0OO0 =OO0OO000000O0OO00 .fetchone ()#line:990744 O0O00OO0O000OOO00 .offset =str (O00O000000OOO0OO0 [1 ])#line:991745 O0OO0O0000O000O0O .commit ()#line:992746 if O0O00OO0O000OOO00 .offset =='0':raise Exception ()#line:994747 OO00OOO0OOOOOOO00 ,OOO0000O00OOOO0OO =divmod (float (O0O00OO0O000OOO00 .offset ),60 );O000OOOO00OOO0OO0 ,OO00OOO0OOOOOOO00 =divmod (OO00OOO0OOOOOOO00 ,60 )#line:996748 O0O0O0O0OO0OO0000 ='%02d:%02d:%02d'%(O000OOOO00OOO0OO0 ,OO00OOO0OOOOOOO00 ,OOO0000O00OOOO0OO )#line:997749 O0O0O0O0OO0OO0000 =(O0OOOO0OOO00OO0OO .lang (32502 )%O0O0O0O0OO0OO0000 ).encode ('utf-8')#line:998750 try :OOO00O0000O00O000 =O0OOOO0OOO00OO0OO .dialog .contextmenu ([O0O0O0O0OO0OO0000 ,O0OOOO0OOO00OO0OO .lang (32501 ).encode ('utf-8'),])#line:1000751 except :OOO00O0000O00O000 =O0OOOO0OOO00OO0OO .yesnoDialog (O0O0O0O0OO0OO0000 ,'','',str (OO0O000O0OO000O00 ),O0OOOO0OOO00OO0OO .lang (32503 ).encode ('utf-8'),O0OOOO0OOO00OO0OO .lang (32501 ).encode ('utf-8'))#line:1001752 if OOO00O0000O00O000 :O0O00OO0O000OOO00 .offset ='0'#line:1003753 return O0O00OO0O000OOO00 .offset #line:1005754 except :#line:1006755 return O0OO00OO0OO000O00 #line:1007756 def reset (O0OOO0O000O0O0000 ,OO000O000OOO0OOOO ,OO000O0O000OO0O0O ,O00OO0O0000000OO0 ,year ='0'):#line:1010757 try :#line:1011758 OO00OO00OO00O000O =str (OO000O000OOO0OOOO )#line:1014759 OOOO00OO0000OO000 =int (OO000O000OOO0OOOO )>180 and (OO000O000OOO0OOOO /OO000O0O000OO0O0O )<=.92 #line:1015760 O00OOOOOO0O0OO0OO =OOOOOO0O00O0OO0O0 .md5 ()#line:1017761 for O00O00O0000OO00O0 in O00OO0O0000000OO0 :O00OOOOOO0O0OO0OO .update (str (O00O00O0000OO00O0 ))#line:1018762 for O00O00O0000OO00O0 in year :O00OOOOOO0O0OO0OO .update (str (O00O00O0000OO00O0 ))#line:1019763 O00OOOOOO0O0OO0OO =str (O00OOOOOO0O0OO0OO .hexdigest ())#line:1020764 O0OOOO0OOO00OO0OO .makeFile (O0OOOO0OOO00OO0OO .dataPath )#line:1022765 O000O00OO0OOO0OO0 =OO000OOOOOO0OOO0O .connect (O0OOOO0OOO00OO0OO .bookmarksFile )#line:1023766 O0OO0OOO00O0O0OOO =O000O00OO0OOO0OO0 .cursor ()#line:1024767 O0OO0OOO00O0O0OOO .execute ("CREATE TABLE IF NOT EXISTS bookmark (" "idFile TEXT, " "timeInSeconds TEXT, " "UNIQUE(idFile)" ");")#line:1025768 O0OO0OOO00O0O0OOO .execute ("DELETE FROM bookmark WHERE idFile = '%s'"%O00OOOOOO0O0OO0OO )#line:1026769 if OOOO00OO0000OO000 :O0OO0OOO00O0O0OOO .execute ("INSERT INTO bookmark Values (?, ?)",(O00OOOOOO0O0OO0OO ,OO00OO00OO00O000O ))#line:1027770 O000O00OO0OOO0OO0 .commit ()#line:1028771 except :#line:1029772 pass ...

Full Screen

Full Screen

thatswhatshesaid.py

Source:thatswhatshesaid.py Github

copy

Full Screen

1import re2import sys3import csv4from urllib2 import urlopen5from bs4 import BeautifulSoup6import numpy as np7import os8import string9os.chdir('/Applications/MAMP/htdocs/theoffice/spreadsheets')10reload(sys)11sys.setdefaultencoding("utf-8")12with open('/Applications/MAMP/htdocs/theoffice/spreadsheets/thatswhatshesaid.csv', 'a') as csvfile:13 writer = csv.writer(csvfile, delimiter='|',14 quotechar='|', quoting=csv.QUOTE_MINIMAL)15 counts = np.zeros([46,3], dtype=object)16 count = 017 for season in range(1,10):18 if season == 1:19 episodeNames = ["Pilot", "DiversityDay", "HealthCare","TheAlliance","Basketball","HotGirl"]20 for episode in range(01,07):21 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode-1])22 print seasonepisode23 c = np.genfromtxt(24 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (str(season), str(season), str(episode), episodeNames[episode-1]),25 delimiter="|", dtype=str, skiprows=0)26 transcript = c[:]27 for line in range(0,len(transcript)):28 if "she said" in transcript[line:line+1,1:2][0][0]:29 count +=130 lines = []31 lines.append(transcript[line-2:line-1,1:2][0][0])32 lines.append(transcript[line-1:line,1:2][0][0])33 lines.append(transcript[line:line+1,1:2][0][0])34 lines.append(transcript[line+1:line+2,1:2][0][0])35 counts[count:count+1,0:1] = seasonepisode36 counts[count:count+1,1:2] = str(lines)37 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]38 elif season == 2:39 episodeNames = ["TheDundies","SexualHarassment","OfficeOlympics","TheFire","Halloween","TheFight","TheClient","PerformanceReview","E-mailSurveillance","ChristmasParty",40 "BoozeCruise","TheInjury","TheSecret","TheCarpet","BoysandGirls","Valentine'sDay","Dwight'sSpeech","TakeYourDaughtertoWorkDay","Michael'sBirthday","DrugTesting",41 "ConflictResolution", "CasinoNight"]42 for episode in range(1,23):43 if episode in range(0,10):44 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])45 print seasonepisode46 c = np.genfromtxt(47 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (48 str(season), str(season), str(episode), episodeNames[episode - 1]),49 delimiter="|", dtype=str, skiprows=0)50 transcript = c[:]51 for line in range(0, len(transcript)):52 if "she said" in transcript[line:line + 1, 1:2][0][0]:53 count +=154 lines = []55 lines.append(transcript[line - 2:line - 1, 1:2][0][0])56 lines.append(transcript[line - 1:line, 1:2][0][0])57 lines.append(transcript[line:line + 1, 1:2][0][0])58 lines.append(transcript[line + 1:line + 2, 1:2][0][0])59 counts[count:count + 1, 0:1] = seasonepisode60 counts[count:count + 1, 1:2] = str(lines)61 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]62 else:63 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])64 print seasonepisode65 c = np.genfromtxt(66 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (67 str(season), str(season), str(episode), episodeNames[episode - 1]),68 delimiter="|", dtype=str, skiprows=0)69 transcript = c[:]70 for line in range(0, len(transcript)):71 if "she said" in transcript[line:line + 1, 1:2][0][0]:72 count+=173 lines = []74 lines.append(transcript[line - 2:line - 1, 1:2][0][0])75 lines.append(transcript[line - 1:line, 1:2][0][0])76 lines.append(transcript[line:line + 1, 1:2][0][0])77 lines.append(transcript[line + 1:line + 2, 1:2][0][0])78 counts[count:count + 1, 0:1] = seasonepisode79 counts[count:count + 1, 1:2] = str(lines)80 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]81 elif season == 3:82 episodeNames = ["GayWitchHunt", "TheConvention","TheCoup","GriefCounseling","Initiation","Diwali","BranchClosing","TheMerger","TheConvict","ABenihanaChristmas",83 "BackFromVacation","TravelingSalesmen","TheReturn","BenFranklin","Phyllis'Wedding","BusinessSchool","Cocktails","TheNegotiation","SafetyTraining",84 "ProductRecall","Women'sAppreciation","BeachGames","TheJob"]85 for episode in range(1,24):86 if episode in range(0,10):87 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])88 print seasonepisode89 c = np.genfromtxt(90 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (91 str(season), str(season), str(episode), episodeNames[episode - 1]),92 delimiter="|", dtype=str, skiprows=0)93 transcript = c[:]94 for line in range(0, len(transcript)):95 if "she said" in transcript[line:line + 1, 1:2][0][0]:96 count+=197 lines = []98 lines.append(transcript[line - 2:line - 1, 1:2][0][0])99 lines.append(transcript[line - 1:line, 1:2][0][0])100 lines.append(transcript[line:line + 1, 1:2][0][0])101 lines.append(transcript[line + 1:line + 2, 1:2][0][0])102 counts[count:count + 1, 0:1] = seasonepisode103 counts[count:count + 1, 1:2] = str(lines)104 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]105 else:106 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])107 print seasonepisode108 c = np.genfromtxt(109 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (110 str(season), str(season), str(episode), episodeNames[episode - 1]),111 delimiter="|", dtype=str, skiprows=0)112 transcript = c[:]113 for line in range(0, len(transcript)):114 if "she said" in transcript[line:line + 1, 1:2][0][0]:115 count+=1116 lines = []117 lines.append(transcript[line - 2:line - 1, 1:2][0][0])118 lines.append(transcript[line - 1:line, 1:2][0][0])119 lines.append(transcript[line:line + 1, 1:2][0][0])120 lines.append(transcript[line + 1:line + 2, 1:2][0][0])121 counts[count:count + 1, 0:1] = seasonepisode122 counts[count:count + 1, 1:2] = str(lines)123 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]124 elif season == 4:125 episodeNames = ["FunRun","DunderMifflinInfinity","LaunchParty","Money","LocalAd","BranchWars","SurvivorMan","TheDeposition","DinnerParty","ChairModel","NightOut",126 "DidIStutter?","JobFair","GoodbyeToby"]127 for episode in range(1,15):128 if episode in range(0,10):129 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])130 print seasonepisode131 c = np.genfromtxt(132 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (133 str(season), str(season), str(episode), episodeNames[episode - 1]),134 delimiter="|", dtype=str, skiprows=0)135 transcript = c[:]136 for line in range(0, len(transcript)):137 if "she said" in transcript[line:line + 1, 1:2][0][0]:138 count+=1139 lines = []140 lines.append(transcript[line - 2:line - 1, 1:2][0][0])141 lines.append(transcript[line - 1:line, 1:2][0][0])142 lines.append(transcript[line:line + 1, 1:2][0][0])143 lines.append(transcript[line + 1:line + 2, 1:2][0][0])144 counts[count:count + 1, 0:1] = seasonepisode145 counts[count:count + 1, 1:2] = str(lines)146 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]147 else:148 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])149 print seasonepisode150 c = np.genfromtxt(151 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (152 str(season), str(season), str(episode), episodeNames[episode - 1]),153 delimiter="|", dtype=str, skiprows=0)154 transcript = c[:]155 for line in range(0, len(transcript)):156 if "she said" in transcript[line:line + 1, 1:2][0][0]:157 count+=1158 lines = []159 lines.append(transcript[line - 2:line - 1, 1:2][0][0])160 lines.append(transcript[line - 1:line, 1:2][0][0])161 lines.append(transcript[line:line + 1, 1:2][0][0])162 lines.append(transcript[line + 1:line + 2, 1:2][0][0])163 counts[count:count + 1, 0:1] = seasonepisode164 counts[count:count + 1, 1:2] = str(lines)165 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]166 elif season == 5:167 episodeNames = ["WeightLoss","BusinessEthics","BabyShower","CrimeAid","EmployeeTransfer","CustomerSurvey","BusinessTrip","FrameToby","TheSurplus","MoroccanChristmas",168 "TheDuel","PrinceFamilyPaper","StressRelief","LectureCircuitPart1","LectureCircuitPart2","BloodDrive","GoldenTicket","NewBoss","TwoWeeks","DreamTeam",169 "MichaelScottPaperCompany","HeavyCompetition","Broke","CasualFriday","CafeDisco","CompanyPicnic"]170 for episode in range(1,27):171 if episode in range(0,10):172 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])173 print seasonepisode174 c = np.genfromtxt(175 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (176 str(season), str(season), str(episode), episodeNames[episode - 1]),177 delimiter="|", dtype=str, skiprows=0)178 transcript = c[:]179 for line in range(0, len(transcript)):180 if "she said" in transcript[line:line + 1, 1:2][0][0]:181 count+=1182 lines = []183 lines.append(transcript[line - 2:line - 1, 1:2][0][0])184 lines.append(transcript[line - 1:line, 1:2][0][0])185 lines.append(transcript[line:line + 1, 1:2][0][0])186 lines.append(transcript[line + 1:line + 2, 1:2][0][0])187 counts[count:count + 1, 0:1] = seasonepisode188 counts[count:count + 1, 1:2] = str(lines)189 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]190 else:191 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])192 print seasonepisode193 c = np.genfromtxt(194 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (195 str(season), str(season), str(episode), episodeNames[episode - 1]),196 delimiter="|", dtype=str, skiprows=0)197 transcript = c[:]198 for line in range(0, len(transcript)):199 if "she said" in transcript[line:line + 1, 1:2][0][0]:200 count+=1201 lines = []202 lines.append(transcript[line - 2:line - 1, 1:2][0][0])203 lines.append(transcript[line - 1:line, 1:2][0][0])204 lines.append(transcript[line:line + 1, 1:2][0][0])205 lines.append(transcript[line + 1:line + 2, 1:2][0][0])206 counts[count:count + 1, 0:1] = seasonepisode207 counts[count:count + 1, 1:2] = str(lines)208 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]209 elif season == 6:210 episodeNames = ["Gossip","TheMeeting","ThePromotion","Niagara","Mafia","TheLover","KoiPond","DoubleDate","Murder","ShareholderMeeting","Scott'sTots","SecretSanta","TheBanker",211 "Sabre","ManagerandSalesman","TheDelivery","St.Patrick'sDay","NewLeads","HappyHour","Secretary'sDay","BodyLanguage","TheCover-Up","TheChump","Whistleblower"]212 for episode in range(1,25):213 if episode in range(0,10):214 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])215 print seasonepisode216 c = np.genfromtxt(217 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (218 str(season), str(season), str(episode), episodeNames[episode - 1]),219 delimiter="|", dtype=str, skiprows=0)220 transcript = c[:]221 for line in range(0, len(transcript)):222 if "she said" in transcript[line:line + 1, 1:2][0][0]:223 count+=1224 lines = []225 lines.append(transcript[line - 2:line - 1, 1:2][0][0])226 lines.append(transcript[line - 1:line, 1:2][0][0])227 lines.append(transcript[line:line + 1, 1:2][0][0])228 lines.append(transcript[line + 1:line + 2, 1:2][0][0])229 counts[count:count + 1, 0:1] = seasonepisode230 counts[count:count + 1, 1:2] = str(lines)231 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]232 else:233 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])234 print seasonepisode235 c = np.genfromtxt(236 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (237 str(season), str(season), str(episode), episodeNames[episode - 1]),238 delimiter="|", dtype=str, skiprows=0)239 transcript = c[:]240 for line in range(0, len(transcript)):241 if "she said" in transcript[line:line + 1, 1:2][0][0]:242 count+=1243 lines = []244 lines.append(transcript[line - 2:line - 1, 1:2][0][0])245 lines.append(transcript[line - 1:line, 1:2][0][0])246 lines.append(transcript[line:line + 1, 1:2][0][0])247 lines.append(transcript[line + 1:line + 2, 1:2][0][0])248 counts[count:count + 1, 0:1] = seasonepisode249 counts[count:count + 1, 1:2] = str(lines)250 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]251 elif season == 7:252 episodeNames = ["Nepotism","Counseling","Andy'sPlay","SexEd","TheSting","CostumeContest","Christening","ViewingParty","WUPHF.com","China","ClassyChristmas","Ultimatum",253 "TheSeminar","TheSearch","PDA","ThreatLevelMidnight","ToddPacker","GarageSale","TrainingDay","Michael'sLastDundies","GoodbyeMichael","TheInnerCircle",254 "DwightK.Schrute(Acting)Manager","SearchCommittee"]255 for episode in range(1,25):256 if episode in range(0,10):257 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])258 print seasonepisode259 c = np.genfromtxt(260 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (261 str(season), str(season), str(episode), episodeNames[episode - 1]),262 delimiter="|", dtype=str, skiprows=0)263 transcript = c[:]264 for line in range(0, len(transcript)):265 if "she said" in transcript[line:line + 1, 1:2][0][0]:266 count+=1267 lines = []268 lines.append(transcript[line - 2:line - 1, 1:2][0][0])269 lines.append(transcript[line - 1:line, 1:2][0][0])270 lines.append(transcript[line:line + 1, 1:2][0][0])271 lines.append(transcript[line + 1:line + 2, 1:2][0][0])272 counts[count:count + 1, 0:1] = seasonepisode273 counts[count:count + 1, 1:2] = str(lines)274 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]275 else:276 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])277 print seasonepisode278 c = np.genfromtxt(279 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (280 str(season), str(season), str(episode), episodeNames[episode - 1]),281 delimiter="|", dtype=str, skiprows=0)282 transcript = c[:]283 for line in range(0, len(transcript)):284 if "she said" in transcript[line:line + 1, 1:2][0][0]:285 count+=1286 lines = []287 lines.append(transcript[line - 2:line - 1, 1:2][0][0])288 lines.append(transcript[line - 1:line, 1:2][0][0])289 lines.append(transcript[line:line + 1, 1:2][0][0])290 lines.append(transcript[line + 1:line + 2, 1:2][0][0])291 counts[count:count + 1, 0:1] = seasonepisode292 counts[count:count + 1, 1:2] = str(lines)293 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]294 elif season == 8:295 episodeNames = ["TheList","TheIncentive","Lotto","GardenParty","Spooked","Doomsday","Pam'sReplacement","Gettysburg","Mrs.California","ChristmasWishes","Trivia","PoolParty",296 "JuryDuty","SpecialProject","Tallahasse","AfterHours","TesttheStore","LastDayInFlorida","GetTheGirl","WelcomeParty","AngryAndy","Fundraiser","TurfWar",297 "FreeFamilyPortraitStudio"]298 for episode in range(1,25):299 if episode in range(0,10):300 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])301 print seasonepisode302 c = np.genfromtxt(303 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode0%s%s.csv' % (304 str(season), str(season), str(episode), episodeNames[episode - 1]),305 delimiter="|", dtype=str, skiprows=0)306 transcript = c[:]307 for line in range(0, len(transcript)):308 if "she said" in transcript[line:line + 1, 1:2][0][0]:309 count+=1310 lines = []311 lines.append(transcript[line - 2:line - 1, 1:2][0][0])312 lines.append(transcript[line - 1:line, 1:2][0][0])313 lines.append(transcript[line:line + 1, 1:2][0][0])314 lines.append(transcript[line + 1:line + 2, 1:2][0][0])315 counts[count:count + 1, 0:1] = seasonepisode316 counts[count:count + 1, 1:2] = str(lines)317 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]318 else:319 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode - 1])320 print seasonepisode321 c = np.genfromtxt(322 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (323 str(season), str(season), str(episode), episodeNames[episode - 1]),324 delimiter="|", dtype=str, skiprows=0)325 transcript = c[:]326 for line in range(0, len(transcript)):327 if "she said" in transcript[line:line + 1, 1:2][0][0]:328 count+=1329 lines = []330 lines.append(transcript[line - 2:line - 1, 1:2][0][0])331 lines.append(transcript[line - 1:line, 1:2][0][0])332 lines.append(transcript[line:line + 1, 1:2][0][0])333 if episode == 18:334 pass335 else:336 lines.append(transcript[line + 1:line + 2, 1:2][0][0])337 counts[count:count + 1, 0:1] = seasonepisode338 counts[count:count + 1, 1:2] = str(lines)339 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]340 else:341 episodeNames = ["NewGuys","Roy'sWedding","AndysAncestry","WorkBus","HereComesTreble","TheBoat","TheWhale","TheTarget","DwightChristmas","Lice","SuitWarehouse",342 "CustomerLoyalty","JuniorSalesman","Vandalism","CouplesDiscount","MovingOn","TheFarm","Promos","Stairmageddon","PaperAirplane","Livin'TheDream",343 "AARM","Finale"]344 for episode in range(1,24):345 seasonepisode = 'Season%s-Episode0%s%s.csv' % (str(season), str(episode), episodeNames[episode-1])346 print seasonepisode347 c = np.genfromtxt(348 '/Applications/MAMP/htdocs/theoffice/spreadsheets/Season%s/Season%s-Episode%s%s.csv' % (str(season), str(season), str(episode), episodeNames[episode-1]),349 delimiter="|", dtype=str, skiprows=0)350 transcript = c[:]351 for line in range(0,len(transcript)):352 if "she said" in transcript[line:line+1,1:2][0][0]:353 count+=1354 lines = []355 lines.append(transcript[line-2:line-1,1:2][0][0])356 lines.append(transcript[line-1:line,1:2][0][0])357 lines.append(transcript[line:line+1,1:2][0][0])358 lines.append(transcript[line+1:line+2,1:2][0][0])359 counts[count:count+1,0:1] = seasonepisode360 counts[count:count+1,1:2] = str(lines)361 counts[count:count + 1, 2:3] = transcript[line:line + 1, 0:1][0][0]362 for row in counts:363 print row[0]364 print row[1]...

Full Screen

Full Screen

comparative_wealth.py

Source:comparative_wealth.py Github

copy

Full Screen

...122 total_2018 = fields.Float(string="Total_2018 : " , compute="_compute_total_line")123 total_2019 = fields.Float(string="Total_2019 : " , compute="_compute_total_line")124 total_2020 = fields.Float(string="Total_2020 : " , compute="_compute_total_line")125 @api.multi126 def _compute_total_line(self):127 self.total_summery_2005 = sum(line.y2005 for line in self.wealth_statement_ids)128 self.total_summery_2006 = sum(line.y2006 for line in self.wealth_statement_ids)129 self.total_summery_2007 = sum(line.y2007 for line in self.wealth_statement_ids)130 self.total_summery_2008 = sum(line.y2008 for line in self.wealth_statement_ids)131 self.total_summery_2009 = sum(line.y2009 for line in self.wealth_statement_ids)132 self.total_summery_2010 = sum(line.y2010 for line in self.wealth_statement_ids)133 self.total_summery_2011 = sum(line.y2011 for line in self.wealth_statement_ids)134 self.total_summery_2012 = sum(line.y2012 for line in self.wealth_statement_ids)135 self.total_summery_2013 = sum(line.y2013 for line in self.wealth_statement_ids)136 self.total_summery_2014 = sum(line.y2014 for line in self.wealth_statement_ids)137 self.total_summery_2015 = sum(line.y2015 for line in self.wealth_statement_ids)138 self.total_summery_2016 = sum(line.y2016 for line in self.wealth_statement_ids)139 self.total_summery_2017 = sum(line.y2017 for line in self.wealth_statement_ids)140 self.total_summery_2018 = sum(line.y2018 for line in self.wealth_statement_ids)...

Full Screen

Full Screen

cxxtest_parser.py

Source:cxxtest_parser.py Github

copy

Full Screen

...48 lineNo = 049 contNo = 050 while 1:51 try:52 line = file.readline()53 except UnicodeDecodeError:54 sys.stderr.write("Could not decode unicode character at %s:%s\n" % (fileName, lineNo + 1));55 raise56 if not line:57 break58 lineNo += 159 m = lineCont_re.match(line)60 if m:61 prev += m.group(1) + " "62 contNo += 163 else:64 scanInputLine( fileName, lineNo - contNo, prev + line )65 contNo = 066 prev = ""...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run tox automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful