From 10f297fac5ea02581623a99c97ba51958a7f2ea2 Mon Sep 17 00:00:00 2001 From: Alhaziel01 Date: Wed, 30 Sep 2020 11:52:53 +0200 Subject: [PATCH 1/7] Fix Ricerca Toonitalia --- channels/toonitalia.py | 27 +++++++++++++-------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/channels/toonitalia.py b/channels/toonitalia.py index ea7876eb..e6362337 100644 --- a/channels/toonitalia.py +++ b/channels/toonitalia.py @@ -30,7 +30,7 @@ def search(item, texto): support.info(texto) item.args='search' item.contentType='tvshow' - item.url = host + '/?s=' + texto + item.url = host + '/wp-json/wp/v2/search?search=' + texto try: return peliculas(item) # Continua la ricerca in caso di errore @@ -45,7 +45,7 @@ def newest(categoria): support.info(categoria) item = support.Item() try: - item.contentType = 'tvshow' + item.contentType = 'undefined' item.url= host item.args= 'new' return peliculas(item) @@ -61,20 +61,16 @@ def newest(categoria): def peliculas(item): pagination = '' anime = True - # debug = True + action = 'findvideos' if item.contentType == 'movie' else 'episodios' blacklist = ['-Film Animazione disponibili in attesa di recensione '] if item.args == 'search': - patron = r'

(?P[^<]+)</a>.*?<p>(?P<plot>[^<]+)</p>.*?<span class="cat-links">Pubblicato in.*?.*?(?P<type>(?:[Ff]ilm|</artic))[^>]+>' - typeContentDict={'movie':['film']} - typeActionDict={'findvideos':['film']} - patronNext = r'<a href="([^"]+)"\s*>Articoli meno recenti' + action = 'check' + data = support.match(item).data.replace('\\','') + patron = r'"title":"(?P<title>[^"]+)","url":"(?P<url>[^"]+)' elif item.args == 'last': patronBlock = 'Aggiornamenti</h2>(?P<block>.*)</ul>' patron = r'<a href="(?P<url>[^"]+)">\s*<img[^>]+src(?:set)?="(?P<thumbnail>[^ ]+)[^>]+>\s*<span[^>]+>(?P<title>[^<]+)' - # elif item.args == 'most_view': - # patronBlock = 'I piu visti</h2>(?P<block>.*)</ul>' - # patron = r'<a href="(?P<url>[^"]+)" title="(?P<title>[^"]+)"' elif item.args == 'new': patronBlock = '<main[^>]+>(?P<block>.*)</main>' patron = r'<a href="(?P<url>[^"]+)" rel="bookmark">(?P<title>[^<]+)</a>[^>]+>[^>]+>[^>]+><img.*?src="(?P<thumb>[^"]+)".*?<p>(?P<plot>[^<]+)</p>.*?<span class="cat-links">Pubblicato in.*?.*?(?P<type>(?:[Ff]ilm|</artic))[^>]+>' @@ -94,16 +90,19 @@ def peliculas(item): item.title = item.title.replace('[ITA]','[Sub-ITA]') item.contentLanguage = 'Sub-ITA' return item - - action = 'findvideos' if item.contentType == 'movie' else 'episodios' - return locals() +def check(item): + if support.match(item, headers=headers, patron=r'(category tag">Film)').match: + item.contentType = 'movie' + return findvideos(item) + else: + item.contentType = 'tvshow' + return episodios(item) @support.scrape def episodios(item): anime = True - # debug=True data = support.match(item, headers=headers).data if 'https://vcrypt.net' in data: patron = r'(?: /> |<p>)(?P<episode>\d+.\d+)?(?: – )?(?P<title>[^<]+)<a (?P<url>.*?)(?:<br|</p)' From 08c3871987ba3845577d97d7e8facd46d4c7e6eb Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Wed, 30 Sep 2020 11:53:10 +0200 Subject: [PATCH 2/7] Fix Community Channels --- specials/community.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specials/community.py b/specials/community.py index 53de1afb..b5ac7034 100644 --- a/specials/community.py +++ b/specials/community.py @@ -63,7 +63,7 @@ def show_channels(item): itemlist.append(Item(channel=item.channel, title=support.typo(channel['channel_name'],'bold'), - url=channel['url'], + url=channel['url'] if 'url' in channel else path, thumbnail=thumbnail, fanart=fanart, plot=plot, From 055c22d59fe9f450efd9e5299caf8aac9a9bd4d0 Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Wed, 30 Sep 2020 11:53:46 +0200 Subject: [PATCH 3/7] Fanart in InfoPlus --- platformcode/infoplus.py | 80 +++++++++++------- resources/skins/Default/720p/InfoPlus.xml | 18 +++- .../skins/Default/media/Infoplus/fanart.png | Bin 0 -> 8631 bytes specials/tvmoviedb.py | 8 +- 4 files changed, 69 insertions(+), 37 deletions(-) create mode 100644 resources/skins/Default/media/Infoplus/fanart.png diff --git a/platformcode/infoplus.py b/platformcode/infoplus.py index ee38c076..4d8aaca8 100644 --- a/platformcode/infoplus.py +++ b/platformcode/infoplus.py @@ -32,6 +32,7 @@ NEXT = 30009 PREVIOUS = 30010 LOADING = 30011 COMMANDS = 30012 +IMAGES = 30013 RECOMANDED = TRAILERS = 30500 ACTORS = 30501 CAST = 30502 @@ -67,6 +68,7 @@ class MainWindow(xbmcgui.WindowXMLDialog): self.cast = [] self.actors = [] self.ids = {} + self.tmdb = [] def onInit(self): #### Compatibility with Kodi 18 #### @@ -91,9 +93,9 @@ class MainWindow(xbmcgui.WindowXMLDialog): def onClick(self, control_id): setFocus(self) + title = self.getControl(RECOMANDED).getSelectedItem().getProperty('title') + mode = self.getControl(RECOMANDED).getSelectedItem().getProperty('mediatype') if control_id in [SEARCH]: - title = self.getControl(RECOMANDED).getSelectedItem().getProperty('title') - mode = self.getControl(RECOMANDED).getSelectedItem().getProperty('mediatype') self.close() if self.getControl(RECOMANDED).getSelectedPosition() > 0: Search(ITEM.clone(action='search', search_text=title)) @@ -103,6 +105,12 @@ class MainWindow(xbmcgui.WindowXMLDialog): info = self.getControl(RECOMANDED).getSelectedItem() self.close() Trailer(info) + elif control_id in [IMAGES]: + info = self.getControl(RECOMANDED).getSelectedItem() + images = tmdb.Tmdb(id_Tmdb=info.getProperty('tmdb_id'), tipo='movie' if mode == 'movie' else 'tv').result.get("images", {}) + for key, value in list(images.items()): + if not value: images.pop(key) + ImagesWindow(tmdb = images).doModal() elif control_id in [ACTORS, CAST]: self.close() Main(self.getControl(self.getFocusId()).getSelectedItem()) @@ -346,7 +354,7 @@ class TrailerWindow(xbmcgui.WindowXMLDialog): elif action in [EXIT]: self.close() -class images(xbmcgui.WindowDialog): +class ImagesWindow(xbmcgui.WindowDialog): def __init__(self, *args, **kwargs): self.tmdb = kwargs.get("tmdb", {}) self.imdb = kwargs.get("imdb", {}) @@ -371,47 +379,61 @@ class images(xbmcgui.WindowDialog): self.main_image = xbmcgui.ControlImage(0, 0, 1280, 720, main_image, 2) self.addControl(self.main_image) + if self.image_list: + self.counter = xbmcgui.ControlTextBox(1180, 640, 60, 40, 'font30_title') + self.addControl(self.counter) + self.counter.setText('%s/%s' % (1,len(self.image_list))) + else: + self.text = xbmcgui.ControlLabel(0, 0, 1280, 720, 'NESSUNA IMMAGINE', 'font30_title', alignment=2|4) + self.addControl(self.text) + self.close_btn = xbmcgui.ControlButton(0, 0, 1280, 720, '' ,'', '') self.addControl(self.close_btn) - # BUTTON LEFT - self.btn_left = xbmcgui.ControlButton(0, 330, 60, 60, '', imagepath('previous_focus'), imagepath('previous_nofocus')) - self.addControl(self.btn_left) - self.btn_left.setAnimations([('WindowOpen', 'effect=slide start=-60,0 end=0,0 delay=100 time=200'),('WindowClose', 'effect=slide start=0,0 end=-60,0 delay=100 time=200')]) + if len(self.image_list) > 1: + # BUTTON LEFT + self.btn_left = xbmcgui.ControlButton(0, 330, 60, 60, '', imagepath('previous_focus'), imagepath('previous_nofocus')) + self.addControl(self.btn_left) + self.btn_left.setAnimations([('WindowOpen', 'effect=slide start=-60,0 end=0,0 delay=100 time=200'),('WindowClose', 'effect=slide start=0,0 end=-60,0 delay=100 time=200')]) - # BUTTON RIGHT - self.btn_right = xbmcgui.ControlButton(1220, 330, 60, 60, '', imagepath('next_focus'), imagepath('next_nofocus')) - self.addControl(self.btn_right) - self.btn_right.setAnimations([('WindowOpen', 'effect=slide start=60,0 end=0,0 delay=100 time=200'),('WindowClose', 'effect=slide start=0,0 end=60,0 delay=100 time=200')]) + # BUTTON RIGHT + self.btn_right = xbmcgui.ControlButton(1220, 330, 60, 60, '', imagepath('next_focus'), imagepath('next_nofocus')) + self.addControl(self.btn_right) + self.btn_right.setAnimations([('WindowOpen', 'effect=slide start=60,0 end=0,0 delay=100 time=200'),('WindowClose', 'effect=slide start=0,0 end=60,0 delay=100 time=200')]) - self.count = 0 + self.count = 0 def onAction(self, action): if action in [BACKSPACE, EXIT]: self.close() + if len(self.image_list) > 1: + if action in [RIGHT, DOWN]: + self.count += 1 + if self.count > len(self.image_list) -1: self.count = 0 + self.main_image.setImage(self.image_list[self.count]) + self.counter.setText('%s/%s' % (self.count,len(self.image_list))) - if action in [RIGHT, DOWN]: - self.count += 1 - if self.count > len(self.image_list) -1: self.count = 0 - self.main_image.setImage(self.image_list[self.count]) - - if action in [LEFT, UP]: - self.count -= 1 - if self.count < 0: self.count = len(self.image_list) -1 - self.main_image.setImage(self.image_list[self.count]) + if action in [LEFT, UP]: + self.count -= 1 + if self.count < 0: self.count = len(self.image_list) -1 + self.main_image.setImage(self.image_list[self.count]) + self.counter.setText('%s/%s' % (self.count,len(self.image_list))) def onControl(self, control): - if control.getId() == self.btn_right.getId(): - self.count += 1 - if self.count > len(self.image_list) -1: self.count = 0 - self.main_image.setImage(self.image_list[self.count]) + if len(self.image_list) > 1: + if control.getId() == self.btn_right.getId(): + self.count += 1 + if self.count > len(self.image_list) -1: self.count = 0 + self.main_image.setImage(self.image_list[self.count]) - elif control.getId() == self.btn_left.getId(): - self.count -= 1 - if self.count < 0: self.count = len(self.image_list) -1 - self.main_image.setImage(self.image_list[self.count]) + elif control.getId() == self.btn_left.getId(): + self.count -= 1 + if self.count < 0: self.count = len(self.image_list) -1 + self.main_image.setImage(self.image_list[self.count]) + else: + self.close() else: self.close() diff --git a/resources/skins/Default/720p/InfoPlus.xml b/resources/skins/Default/720p/InfoPlus.xml index 388018fe..89de92d5 100644 --- a/resources/skins/Default/720p/InfoPlus.xml +++ b/resources/skins/Default/720p/InfoPlus.xml @@ -309,8 +309,8 @@ <top>25</top> <right>25</right> <height>50</height> - <width>240</width> - <visible allowhiddenfocus="true">Control.HasFocus(30500) | Control.HasFocus(30006) | Control.HasFocus(30007) | Control.HasFocus(30008)</visible> + <width>300</width> + <visible allowhiddenfocus="true">Control.HasFocus(30500) | Control.HasFocus(30006) | Control.HasFocus(30007) | Control.HasFocus(30008) | Control.HasFocus(30013)</visible> <control type="image"> <width>50</width> <height>50</height> @@ -335,16 +335,26 @@ <texturefocus colordiffuse="FFFFFFFF">Infoplus/trailer.png</texturefocus> <ondown>30500</ondown> <onleft>30008</onleft> + <onright>30013</onright> + </control> + <control type="button" id="30013"> + <left>180</left> + <width>50</width> + <height>50</height> + <texturenofocus colordiffuse="AAFFFFFF">Infoplus/fanart.png</texturenofocus> + <texturefocus colordiffuse="FFFFFFFF">Infoplus/fanart.png</texturefocus> + <ondown>30500</ondown> + <onleft>30007</onleft> <onright>30008</onright> </control> <control type="button" id="30008"> - <left>180</left> + <left>240</left> <width>50</width> <height>50</height> <texturenofocus colordiffuse="AAFFFFFF">Infoplus/search.png</texturenofocus> <texturefocus colordiffuse="FFFFFFFF">Infoplus/search.png</texturefocus> <ondown>30500</ondown> - <onleft>30007</onleft> + <onleft>30013</onleft> <onright>30007</onright> </control> </control> diff --git a/resources/skins/Default/media/Infoplus/fanart.png b/resources/skins/Default/media/Infoplus/fanart.png new file mode 100644 index 0000000000000000000000000000000000000000..790d1c28cda5d1e492212a881d5f700aeffbc5d9 GIT binary patch literal 8631 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 PzlDl|CZghwMeu(C3<;&y literal 0 HcmV?d00001 diff --git a/specials/tvmoviedb.py b/specials/tvmoviedb.py index 590c5af6..a8198422 100644 --- a/specials/tvmoviedb.py +++ b/specials/tvmoviedb.py @@ -1775,7 +1775,7 @@ def imagenes(item): itemlist.append(Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, title=title, infoLabels=item.infoLabels)) else: - imagesWindow = infoplus.images(tmdb=value).doModal() + imagesWindow = infoplus.ImagesWindow(tmdb=value).doModal() elif key == "fanart.tv": if item.folder: @@ -1787,7 +1787,7 @@ def imagenes(item): itemlist.append(Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, title=title, infoLabels=item.infoLabels)) else: - imagesWindow = infoplus.images(fanartv=value).doModal() + imagesWindow = infoplus.ImagesWindow(fanartv=value).doModal() # elif key == "filmaffinity" and "Filmaffinity" in item.title: # if item.folder: @@ -1808,7 +1808,7 @@ def imagenes(item): Item(channel=item.channel, action="", thumbnail=thumb, fanart=fanart, title=title, infoLabels=item.infoLabels)) else: - imagesWindow = infoplus.images(imdb=value).doModal() + imagesWindow = infoplus.ImagesWindow(imdb=value).doModal() elif key == "myanimelist" and "MyAnimeList" in item.title: if item.folder: @@ -1817,7 +1817,7 @@ def imagenes(item): Item(channel=item.channel, action="", thumbnail=imagen, fanart=imagen, title=title, infoLabels=item.infoLabels)) else: - imagesWindow = infoplus.images(mal=value).doModal() + imagesWindow = infoplus.ImagesWindow(mal=value).doModal() return itemlist From 0e01936f509dc06a2257edc61b8a7dcbda744fd3 Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Wed, 30 Sep 2020 20:24:28 +0200 Subject: [PATCH 4/7] Fix dirette paramount --- platformcode/platformtools.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index 609d2615..698aca0a 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -945,6 +945,17 @@ def set_player(item, xlistitem, mediaurl, view, strm, nfo_path=None, head_nfo=No from platformcode import xbmc_videolibrary xbmc_videolibrary.mark_auto_as_watched(item, nfo_path, head_nfo, item_nfo) + if 'paramount' in item.title.lower(): + # from core.support import dbg;dbg() + from time import time, sleep + start_time = time() + while not is_playing() or (time() - start_time) > 5: + continue + while is_playing and xbmcgui.getCurrentWindowId() != 12006: + continue + xbmcgui.Window(12006).show() + xbmcgui.Window(12005).show() + def torrent_client_installed(show_tuple=False): # External plugins found in servers / torrent.json node clients From 365d7fd062a80e6435cb783c6effebf697b7974e Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Thu, 1 Oct 2020 14:53:52 +0200 Subject: [PATCH 5/7] Fix e migliorie --- channels/paramount.py | 2 +- platformcode/launcher.py | 4 ++++ platformcode/platformtools.py | 10 +++------- platformcode/xbmc_videolibrary.py | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/channels/paramount.py b/channels/paramount.py index 0e4c8684..6a91cf5d 100644 --- a/channels/paramount.py +++ b/channels/paramount.py @@ -171,6 +171,6 @@ def findvideos(item): for quality, url in video_urls: if quality not in qualities: qualities.append(quality) - itemlist.append(item.clone(title=support.config.get_localized_string(30137), server='directo', action='play', url=url, quality=quality)) + itemlist.append(item.clone(title=support.config.get_localized_string(30137), server='directo', action='play', url=url, quality=quality, focusOnVideoPlayer=True)) itemlist.sort(key=lambda item: item.quality) return support.server(item, itemlist=itemlist, Download=False) diff --git a/platformcode/launcher.py b/platformcode/launcher.py index 8bfcc231..9eb64d2c 100644 --- a/platformcode/launcher.py +++ b/platformcode/launcher.py @@ -125,6 +125,10 @@ def run(item=None): from platformcode import infoplus return infoplus.Main(item) + elif item.channel == "backup": + from platformcode import backup + return getattr(backup, item.action)(item) + elif item.channel == "shortcuts": from platformcode import shortcuts return getattr(shortcuts, item.action)(item) diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index 698aca0a..a1a9ac23 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -945,15 +945,11 @@ def set_player(item, xlistitem, mediaurl, view, strm, nfo_path=None, head_nfo=No from platformcode import xbmc_videolibrary xbmc_videolibrary.mark_auto_as_watched(item, nfo_path, head_nfo, item_nfo) - if 'paramount' in item.title.lower(): - # from core.support import dbg;dbg() - from time import time, sleep - start_time = time() - while not is_playing() or (time() - start_time) > 5: - continue + # for cases where the audio playback window appears in place of the video one + if item.focusOnVideoPlayer: while is_playing and xbmcgui.getCurrentWindowId() != 12006: continue - xbmcgui.Window(12006).show() + xbmc.sleep(500) xbmcgui.Window(12005).show() diff --git a/platformcode/xbmc_videolibrary.py b/platformcode/xbmc_videolibrary.py index fb6ea365..ea0c7745 100644 --- a/platformcode/xbmc_videolibrary.py +++ b/platformcode/xbmc_videolibrary.py @@ -44,7 +44,7 @@ def mark_auto_as_watched(item, nfo_path=None, head_nfo=None, item_nfo=None): while platformtools.is_playing(): actual_time = xbmc.Player().getTime() total_time = xbmc.Player().getTotalTime() - if item_nfo.played_time and item_nfo.played_time > actual_time > 1: + if item_nfo.played_time and xbmcgui.getCurrentWindowId() == 12005: xbmc.Player().seekTime(item_nfo.played_time) item_nfo.played_time = 0 # Fix for Slow Devices From ebe3d3df7bc68521fb053cdc02f106659a48f416 Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Thu, 1 Oct 2020 19:03:13 +0200 Subject: [PATCH 6/7] Probabile Fix Backup Videoteca --- platformcode/backup.py | 71 +++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 21 deletions(-) diff --git a/platformcode/backup.py b/platformcode/backup.py index c6405d45..bc9ee7c3 100644 --- a/platformcode/backup.py +++ b/platformcode/backup.py @@ -3,16 +3,19 @@ # Backup and restore video library # ------------------------------------------------------------ -import datetime, xbmc +import datetime, xbmc, os, shutil -from core import ziptools, videolibrarytools, filetools +from lib.sambatools import libsmb as samba +from zipfile import ZipFile +from core import videolibrarytools, filetools from platformcode import logger, config, platformtools, xbmc_videolibrary from distutils.dir_util import copy_tree from specials import videolibrary temp_path = u'' + xbmc.translatePath("special://userdata/addon_data/plugin.video.kod/temp/") -movies_path = u'' + filetools.join(temp_path, "movies") -tvshows_path = u'' + filetools.join(temp_path, "tvshows") +videolibrary_temp_path = u'' + xbmc.translatePath("special://userdata/addon_data/plugin.video.kod/temp/videolibrary") +movies_path = u'' + filetools.join(videolibrary_temp_path, "movies") +tvshows_path = u'' + filetools.join(videolibrary_temp_path, "tvshows") videolibrary_movies_path = u'' + videolibrarytools.MOVIES_PATH videolibrary_tvshows_path = u'' + videolibrarytools.TVSHOWS_PATH @@ -26,11 +29,11 @@ def export_videolibrary(item): zip_file = u'' + xbmc.translatePath(zip_file_folder + "KoD_video_library-" + str(datetime.date.today()) + ".zip") p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(20000), config.get_localized_string(80003)) - p_dialog.update(0) + # p_dialog.update(0) - if filetools.exists(temp_path): - filetools.rmdirtree(temp_path) - filetools.mkdir(temp_path) + if filetools.exists(videolibrary_temp_path): + shutil.rmtree(videolibrary_temp_path) + filetools.mkdir(videolibrary_temp_path) p_dialog.update(25) filetools.mkdir(movies_path) copy_tree(videolibrary_movies_path, movies_path) @@ -39,10 +42,9 @@ def export_videolibrary(item): copy_tree(videolibrary_tvshows_path, tvshows_path) p_dialog.update(75) - zipper = ziptools.ziptools() - zipper.zip(temp_path, zip_file) - - filetools.rmdirtree(temp_path) + zip(videolibrary_temp_path, zip_file) + xbmc.sleep(1000) + shutil.rmtree(temp_path) p_dialog.update(100) xbmc.sleep(1000) @@ -60,21 +62,21 @@ def import_videolibrary(item): return p_dialog = platformtools.dialog_progress_bg(config.get_localized_string(20000), config.get_localized_string(80007)) - p_dialog.update(0) + # p_dialog.update(0) if filetools.exists(temp_path): - filetools.rmdirtree(temp_path) - filetools.mkdir(temp_path) + shutil.rmtree(temp_path) + filetools.mkdir(videolibrary_temp_path) - unzipper = ziptools.ziptools() - unzipper.extract(zip_file, temp_path) + unzip(videolibrary_temp_path, zip_file) p_dialog.update(20) if config.is_xbmc() and config.get_setting("videolibrary_kodi"): xbmc_videolibrary.clean() p_dialog.update(30) - filetools.rmdirtree(videolibrary_movies_path) - filetools.rmdirtree(videolibrary_tvshows_path) + xbmc.sleep(1000) + shutil.rmtree(videolibrary_movies_path) + shutil.rmtree(videolibrary_tvshows_path) p_dialog.update(50) config.verify_directories_created() @@ -84,7 +86,7 @@ def import_videolibrary(item): if filetools.exists(tvshows_path): copy_tree(tvshows_path, videolibrary_tvshows_path) p_dialog.update(90) - filetools.rmdirtree(temp_path) + shutil.rmtree(temp_path) p_dialog.update(100) xbmc.sleep(1000) @@ -93,4 +95,31 @@ def import_videolibrary(item): videolibrary.update_videolibrary() if config.is_xbmc() and config.get_setting("videolibrary_kodi"): - xbmc_videolibrary.update() \ No newline at end of file + xbmc_videolibrary.update() + + +def zip(dir, file): + smb = False + if file.lower().startswith('smb://'): + temp = file + file = filetools.join(temp_path, os.path.split(file)[-1]) + smb = True + with ZipFile(file, "w") as zf: + abs_src = os.path.abspath(dir) + for dirname, subdirs, files in os.walk(dir): + for filename in files: + absname = os.path.abspath(os.path.join(dirname, filename)) + arcname = absname[len(abs_src) + 1:] + zf.write(absname, arcname) + zf.close() + if smb: + filetools.move(file, temp) + +def unzip(dir, file): + if file.lower().startswith('smb://'): + temp = filetools.join(temp_path, os.path.split(file)[-1]) + filetools.copy(file, temp) + file = temp + + with ZipFile(file, 'r') as zf: + zf.extractall(dir) \ No newline at end of file From da2f06a566bf1d34d7031305e738b093fcf12538 Mon Sep 17 00:00:00 2001 From: Alhaziel01 <alhaziel01@gmail.com> Date: Thu, 1 Oct 2020 20:05:58 +0200 Subject: [PATCH 7/7] Fix Backup Per Matrix --- platformcode/backup.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/platformcode/backup.py b/platformcode/backup.py index bc9ee7c3..baf4eea2 100644 --- a/platformcode/backup.py +++ b/platformcode/backup.py @@ -5,7 +5,6 @@ import datetime, xbmc, os, shutil -from lib.sambatools import libsmb as samba from zipfile import ZipFile from core import videolibrarytools, filetools from platformcode import logger, config, platformtools, xbmc_videolibrary @@ -43,7 +42,6 @@ def export_videolibrary(item): p_dialog.update(75) zip(videolibrary_temp_path, zip_file) - xbmc.sleep(1000) shutil.rmtree(temp_path) p_dialog.update(100) @@ -74,7 +72,6 @@ def import_videolibrary(item): if config.is_xbmc() and config.get_setting("videolibrary_kodi"): xbmc_videolibrary.clean() p_dialog.update(30) - xbmc.sleep(1000) shutil.rmtree(videolibrary_movies_path) shutil.rmtree(videolibrary_tvshows_path) p_dialog.update(50)