示例#1
0
 def CheckLinksInLibrary(self):
     import thread_pool
     import time
     self.t_link_delay =  int(control.setting('library.service.testlink.delay') or 0)
     if self.t_link_delay == 0:
         printuj_linka('[CheckLink]: START and STOP - Do not check library sources')
         return
     dirs,files = control.listDir(self.library_folder)
     self.progressDialogBG = control.progressDialogBG
     self.progressDialogBG.create('Sprawdzam \xc5\xbar\xc3\xb3d\xc5\x82a biblioteki cda.pl','Ilo\xc5\x9b\xc4\x87 pozycji: %d'%len(dirs))
     printuj_linka('[CheckLink]: START Library Folders = %d'%len(dirs))
     if not control.condVisibility('Window.IsVisible(infodialog)') and not control.condVisibility('Player.HasVideo'):
         try:
             control.infoDialog('Sprawdzam \xc5\xbar\xc3\xb3dla biblioteki cda.pl', time=3)
             self.infoDialog = True
         except:
             self.infoDialog = False
     pool = thread_pool.ThreadPool(self.fredy)
     self.res={'checked':0,'skipped':0,'removed':0,'updated':0}
     N = len(dirs)
     for idx,folder_ in enumerate(dirs):
         pool.add_task(self.check_remove, *(folder_,idx,N))
         time.sleep(0.1)
     pool.wait_completion()
     printuj_linka('[CheckLink]: END Status checked:%d, skipped:%d, removed:%d, updated:%d'%(self.res['checked'],self.res['skipped'],self.res['removed'],self.res['updated']))
     self.progressDialogBG.close()
     if self.infoDialog == True:
         control.infoDialog('Usuni\xc4\x99to :%d, Zaktualizowano :%d '%(self.res['removed'],self.res['updated']), time=30)
示例#2
0
 def check_remove(self,folder_,idx,N):
     from shutil import rmtree
     sciezka2x = os.path.join(self.library_folder,folder_)
     content = control.listDir(sciezka2x)
     strmFile = [os.path.join(self.library_folder,folder_,x) for x in content[1] if x.endswith('.strm')]
     czas_progres = int((idx+1)*100.0/(N))
     self.progressDialogBG.update(czas_progres,message='%s'%(folder_))
     if strmFile:
         strmFile = strmFile[0]
         content = lib_tools.write_file2(strmFile)
         itemok = eval(urlparse.parse_qs(content.split('?')[-1]).get('ex_link',{})[0])
         hrefOut = itemok.get('url',[])
         check_time = itemok.get('linkchecked','2000-01-01 12:00:00')
         check_time = datetime.datetime.strptime(check_time, '%Y-%m-%d %H:%M:%S')
         obecnie_check = datetime.datetime.now() - check_time
         if obecnie_check.days >= self.t_link_delay:
             self.res['checked']+=1
             new_href=[new_hrefX for new_hrefX in set(hrefOut) if 'OK' in lib_tools.get_urlStat(new_hrefX)]
             printuj_linka('[CheckLink]: Checking %s links count before/after: %d/%d'%(folder_,len(hrefOut),len(new_href)))
             if len(new_href)==0:
                 rmtree(sciezka2x)
                 self.res['removed']+=1
                 printuj_linka('[CheckLink]: Removing Folder %s'%(folder_))
             else:
                 itemok.update( {'url':new_href, 'linkchecked': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') } )
                 content = lib_tools.build_url({'mode': 'lplay', 'ex_link':str(itemok)})
                 lib_tools.write_file(strmFile, content)
                 self.res['updated']+=1
                 printuj_linka('[CheckLink]: Updateing strmFile= %s'%(strmFile))
         else:
             self.res['skipped']+=1
             printuj_linka('[CheckLink]: Skipping %s already checked on %s'%(folder_,str(check_time)) )
示例#3
0
 def downloads(self):
     movie_downloads = control.setting('movie.download.path')
     tv_downloads = control.setting('tv.download.path')
     if len(control.listDir(movie_downloads)[0]) > 0:
         self.addDirectoryItem(32001,
                               movie_downloads,
                               'movies.png',
                               'DefaultMovies.png',
                               isAction=False)
     if len(control.listDir(tv_downloads)[0]) > 0:
         self.addDirectoryItem(32002,
                               tv_downloads,
                               'tvshows.png',
                               'DefaultTVShows.png',
                               isAction=False)
     self.endDirectory()
示例#4
0
 def root(self):
     self.addDirectoryItem(32001, 'movieNavigator', 'movies.png',
                           'DefaultMovies.png')
     self.addDirectoryItem(32002, 'tvNavigator', 'tvshows.png',
                           'DefaultTVShows.png')
     if self.getMenuEnabled('navi.channels') == True:
         self.addDirectoryItem(32007, 'channels', 'channels.png',
                               'DefaultMovies.png')
     if not control.setting('lists.widget') == '0':
         self.addDirectoryItem(32003, 'mymovieNavigator', 'mymovies.png',
                               'DefaultVideoPlaylists.png')
         self.addDirectoryItem(32004, 'mytvNavigator', 'mytvshows.png',
                               'DefaultVideoPlaylists.png')
     if not control.setting('movie.widget') == '0':
         self.addDirectoryItem(32005, 'movieWidget', 'latest-movies.png',
                               'DefaultRecentlyAddedMovies.png')
     if (traktIndicators == True and not control.setting('tv.widget.alt')
             == '0') or (traktIndicators == False
                         and not control.setting('tv.widget') == '0'):
         self.addDirectoryItem(32006, 'tvWidget', 'latest-episodes.png',
                               'DefaultRecentlyAddedEpisodes.png')
     if not control.setting('furk.api') == '':
         self.addDirectoryItem('Furk.net', 'furkNavigator', 'movies.png',
                               'movies.png')
     if self.getMenuEnabled('navi.docu') == True:
         self.addDirectoryItem(32631, 'docuHeaven', 'movies.png',
                               'DefaultMovies.png')
     self.addDirectoryItem(32010, 'searchNavigator', 'search.png',
                           'DefaultAddonProgram.png')
     self.addDirectoryItem(32008, 'toolNavigator', 'tools.png',
                           'DefaultAddonProgram.png')
     self.addDirectoryItem('Scraper Settings',
                           'openscrapersSettings&query=0.0', 'tools.png',
                           'DefaultAddonProgram.png')
     downloads = True if control.setting('downloads') == 'true' and (
         len(control.listDir(control.setting('movie.download.path'))[0]) > 0
         or len(control.listDir(control.setting('tv.download.path'))[0]) > 0
     ) else False
     if downloads == True:
         self.addDirectoryItem(32009, 'downloadNavigator', 'downloads.png',
                               'DefaultAddonProgram.png')
     self.addDirectoryItem('Info!!', 'newsNavigator', 'tools.png',
                           'DefaultAddonProgram.png')
     self.endDirectory()
示例#5
0
 def __init__(self):
     self.library_folder = os.path.join(control.transPath(control.setting('library.movie')), '')
     try:
         lib_serv_last_run = control.setting('library.service.last.run')
         lib_serv_last_run = datetime.datetime.strptime(lib_serv_last_run, '%Y-%m-%d %H:%M:%S')
         t1 = datetime.timedelta(hours=int(control.setting('library.service.wait.time')))
         czasOK = t1-abs(datetime.datetime.now() - lib_serv_last_run)
     except:
         czasOK= False
     dirs,files = control.listDir(self.library_folder) if self.library_folder else ([],[])
     self.ilosc_filmow = 'Ilo\xc5\x9b\xc4\x87 film\xc3\xb3w w bibliotece: [B]%d[/B]'%len(dirs)
     self.aktualizacja_co_ile = 'Aktulizacja co: [B]%s h[/B]'%control.setting('library.service.wait.time')
     lib_serv_test_delay = control.setting('library.service.testlink.delay')
     self.nie_sa_sprawdzane = '\xc5\xb9r\xc3\xb3d\xc5\x82a biblioteki nie s\xc4\x85 sprawdzane okresowo [B](0 dni)[/B]' if lib_serv_test_delay=='0' else 'Sprawdzanie \xc5\xbar\xc3\xb3de\xc5\x82 co: [B]%s dni[/B]'%lib_serv_test_delay
     self.service_online = 'Service: [COLOR lightgreen]online[/COLOR]' if control.setting('library.service.active') == 'true' else 'Service: [COLOR red]offline[/COLOR]'
     if control.setting('library.service.active') == 'true' and czasOK:
         chwilka = 'chwilk\xc4\x99' if czasOK.days<0 else str(czasOK).split('.')[0]+' h'
         self.nast_szukanie = 'Nast\xc4\x99pne szukanie za ok: [B] %s [/B] '%chwilka
     else:
         self.nast_szukanie = 'Nast\xc4\x99pne szukanie nie wiadomo kiedy'
     self.ostat_aktualizacja = 'Ostatnia Aktualizacja: [B]%s[/B]'%control.setting('library.service.last.run')