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)
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)) )
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()
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()
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')