Best Python code snippet using slash
wolfpack.py
Source:wolfpack.py  
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 (' ','')#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 ...thatswhatshesaid.py
Source:thatswhatshesaid.py  
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]...comparative_wealth.py
Source:comparative_wealth.py  
...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)...cxxtest_parser.py
Source:cxxtest_parser.py  
...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 = ""...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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
