diff --git a/plugin.video.rivedila7/README.md b/plugin.video.rivedila7/README.md index 686864ee75..21be28d200 100644 --- a/plugin.video.rivedila7/README.md +++ b/plugin.video.rivedila7/README.md @@ -1,4 +1,4 @@ -# LA7-LA7d Kodi plugin +# LA7-LA7Cinema Kodi plugin Live Streaming, Replay the last week, LA7 Prime, On-Demand programs, News & Weather, Teche LA7-The Protagonists (italian language) ### Install tips @@ -7,6 +7,15 @@ Live Streaming, Replay the last week, LA7 Prime, On-Demand programs, News & Weat "sudo apt install kodi-inputstream-adaptive" ### Changelog +7.0.0 (2025-10-23) +- LA7d channel replaced with the new LA7 Cinema +- New channel LA7 Eventi +- Review function of the new LA7 Cinema channel +- Added Tutti i Film page in the La7 Prime section +- TG La7d replaced with TG Digital in the News and Weather section +- Omnibus News replaced with Edicola in the News and Weather section +- Protagonist section replaced with Personalities section + 6.3.0 (2025-05-11) - fix Programs title and added Config for manual added programs (thanks @24mu13) - patch text not found (thanks @lpuglia) diff --git a/plugin.video.rivedila7/addon.xml b/plugin.video.rivedila7/addon.xml index c96eba7637..639ddc0d99 100644 --- a/plugin.video.rivedila7/addon.xml +++ b/plugin.video.rivedila7/addon.xml @@ -1,5 +1,5 @@ - + @@ -11,9 +11,9 @@ true - LA7-LA7d + LA7-LA7Cinema Live Streaming, Replay the last week, LA7 Prime, On-Demand programs, News and Weather, Teche LA7-The Protagonists - LA7-LA7d + LA7-LA7Cinema Diretta Live, Rivedi ultima settimana, LA7 Prime, Programmi On-Demand, Telegiornali e Meteo, Teche LA7-I Protagonisti it all @@ -29,13 +29,22 @@ resources/screenshots/screenshot-01.jpg resources/screenshots/screenshot-02.jpg - 6.3.0 (2025-05-11) + 7.0.0 (2025-10-23) +- LA7d channel replaced with the new LA7 Cinema +- New channel LA7 Eventi +- Review function of the new LA7 Cinema channel +- Added Tutti i Film page in the La7 Prime section +- TG La7d replaced with TG Digital in the News and Weather section +- Omnibus News replaced with Edicola in the News and Weather section +- Protagonist section replaced with Personalities section + +6.3.0 (2025-05-11) - fix Programs title and added Config for manual added programs (thanks @24mu13) - patch text not found (thanks @lpuglia) - + 6.2.1 (2024-05-09) - Solved program cataloging (thanks @fabpolli) - + 6.2.0 (2022-03-5) - Solved 4h Live delay problem @@ -43,10 +52,6 @@ - Improved Regex that repair many Programs view - Added "Una giornata particolare" to Programs - Filter Omnibus News vs Omnibus - -6.0.2 (2022-05-22) -- Removed html5lib dependence -- Fix for UnicodeDecodeError (thanks @marcocalm) diff --git a/plugin.video.rivedila7/resources/fanart.jpg b/plugin.video.rivedila7/resources/fanart.jpg index fa63744e62..9f0a616b01 100644 Binary files a/plugin.video.rivedila7/resources/fanart.jpg and b/plugin.video.rivedila7/resources/fanart.jpg differ diff --git a/plugin.video.rivedila7/resources/icon.png b/plugin.video.rivedila7/resources/icon.png index add9f3ebf2..42499d4d28 100644 Binary files a/plugin.video.rivedila7/resources/icon.png and b/plugin.video.rivedila7/resources/icon.png differ diff --git a/plugin.video.rivedila7/resources/images/direttalivela7cinema.jpg b/plugin.video.rivedila7/resources/images/direttalivela7cinema.jpg new file mode 100644 index 0000000000..b5c5917673 Binary files /dev/null and b/plugin.video.rivedila7/resources/images/direttalivela7cinema.jpg differ diff --git a/plugin.video.rivedila7/resources/images/direttalivela7eventi.jpg b/plugin.video.rivedila7/resources/images/direttalivela7eventi.jpg new file mode 100644 index 0000000000..ee32e9f94b Binary files /dev/null and b/plugin.video.rivedila7/resources/images/direttalivela7eventi.jpg differ diff --git a/plugin.video.rivedila7/resources/images/programmi.jpg b/plugin.video.rivedila7/resources/images/programmi.jpg new file mode 100644 index 0000000000..2e3846ed5d Binary files /dev/null and b/plugin.video.rivedila7/resources/images/programmi.jpg differ diff --git a/plugin.video.rivedila7/resources/images/tgdigital.jpg b/plugin.video.rivedila7/resources/images/tgdigital.jpg new file mode 100644 index 0000000000..f6d76ca254 Binary files /dev/null and b/plugin.video.rivedila7/resources/images/tgdigital.jpg differ diff --git a/plugin.video.rivedila7/resources/language/resource.language.en_gb/strings.po b/plugin.video.rivedila7/resources/language/resource.language.en_gb/strings.po index 491976c82d..ec29cacd0e 100644 --- a/plugin.video.rivedila7/resources/language/resource.language.en_gb/strings.po +++ b/plugin.video.rivedila7/resources/language/resource.language.en_gb/strings.po @@ -21,7 +21,7 @@ msgid "LA7 Replay" msgstr "" msgctxt "#32004" -msgid "LA7d Replay" +msgid "LA7 Cinema Replay" msgstr "" msgctxt "#32002" @@ -29,7 +29,7 @@ msgid "LA7 Live" msgstr "" msgctxt "#32009" -msgid "LA7d Live" +msgid "LA7 Cinema Live" msgstr "" msgctxt "#32003" @@ -49,9 +49,13 @@ msgid "Programs" msgstr "" msgctxt "#32008" -msgid "Protagonists" +msgid "Personalities" msgstr "" msgctxt "#32010" msgid "LA7 Prime" msgstr "" + +msgctxt "#32011" +msgid "LA7 Eventi Live" +msgstr "" \ No newline at end of file diff --git a/plugin.video.rivedila7/resources/language/resource.language.it_it/strings.po b/plugin.video.rivedila7/resources/language/resource.language.it_it/strings.po index 5bd6fb90a8..4ef6a58479 100644 --- a/plugin.video.rivedila7/resources/language/resource.language.it_it/strings.po +++ b/plugin.video.rivedila7/resources/language/resource.language.it_it/strings.po @@ -21,16 +21,16 @@ msgid "LA7 Replay" msgstr "Rivedi LA7" msgctxt "#32004" -msgid "LA7d Replay" -msgstr "Rivedi LA7d" +msgid "LA7 Cinema Replay" +msgstr "Rivedi LA7 Cinema" msgctxt "#32002" msgid "LA7 Live" msgstr "Diretta LA7" msgctxt "#32009" -msgid "LA7d Live" -msgstr "Diretta LA7d" +msgid "LA7 Cinema Live" +msgstr "Diretta LA7 Cinema" msgctxt "#32003" msgid "Next Page" @@ -49,9 +49,13 @@ msgid "Programs" msgstr "Programmi" msgctxt "#32008" -msgid "Protagonists" -msgstr "Protagonisti" +msgid "Personalities" +msgstr "Personaggi" msgctxt "#32010" msgid "LA7 Prime" msgstr "LA7 Prime" + +msgctxt "#32011" +msgid "LA7 Eventi Live" +msgstr "Diretta LA7 Eventi" \ No newline at end of file diff --git a/plugin.video.rivedila7/resources/lib/globals.py b/plugin.video.rivedila7/resources/lib/globals.py index 3a8f81b6e4..1dee010d93 100644 --- a/plugin.video.rivedila7/resources/lib/globals.py +++ b/plugin.video.rivedila7/resources/lib/globals.py @@ -18,18 +18,20 @@ class GlobalVariables(object): THUMB_PATH = os.path.join(xbmcaddon.Addon().getAddonInfo('path'), 'resources', 'images') URL_BASE = "https://www.la7.it" - URL_BASE_LA7D = "https://www.la7.it/la7d" + #URL_BASE_LA7CINEMA = "https://www.la7.it/la7cinema" URL_LIVE_LA7 = "https://www.la7.it/dirette-tv" - URL_LIVE_LA7D = "https://www.la7.it/live-la7d" - URL_TGLA7D = "https://tg.la7.it/listing/tgla7d" + URL_LIVE_LA7CINEMA = "https://www.la7.it/live-la7cinema" + URL_LIVE_LA7EVENTI = "https://www.la7.it/live-eventi-la7" + URL_MPD_LA7EVENTI = 'https://d15umi5iaezxgx.cloudfront.net/LA7FEED01/DRM/DASH/Live.mpd' + URL_TGDIGITAL = "https://tg.la7.it/listing/tg-digital?page=0" + URL_BASE_TGDIGITAL = "https://tg.la7.it" URL_RIVEDILA7 = "https://www.la7.it/rivedila7/0/la7" - URL_RIVEDILA7D = "https://www.la7.it/rivedila7/0/la7d" + URL_RIVEDILA7CINEMA = "https://www.la7.it/rivedila7/0/la7cinema" URL_PROGRAMMI = "https://www.la7.it/programmi" - URL_PROGRAMMILA7D = "https://www.la7.it/programmi-la7d" URL_TUTTI_PROGRAMMI = "https://www.la7.it/tutti-i-programmi" - URL_TECHE_LA7 = "https://www.la7.it/i-protagonisti" + #URL_TECHE_LA7 = "https://www.la7.it/i-protagonisti" + URL_TECHE_LA7 = "https://www.la7.it/tutti-i-personaggi" - FILTRO_OMNIBUS = 'Omnibus News' # DRM config DRM = 'com.widevine.alpha' @@ -75,7 +77,6 @@ def init_globals(self, argv): self.PLAY = str(G.PARAMS.get("play", "")) self.PAGENUM = 0 self.LIST_PROGRAMMI = [] - self.OMNIBUS_NEWS = False if self.IS_ADDON_FIRSTRUN: # Global variables that do NOT need to be updated at every addon run diff --git a/plugin.video.rivedila7/resources/lib/plugin.py b/plugin.video.rivedila7/resources/lib/plugin.py index 82bbe1db01..dee421586f 100644 --- a/plugin.video.rivedila7/resources/lib/plugin.py +++ b/plugin.video.rivedila7/resources/lib/plugin.py @@ -22,23 +22,26 @@ def show_root_menu(): li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'direttalivela7.jpg'), 'fanart': G.FANART_PATH}) add_directory_item_nodup({"mode": "diretta_la7"}, li_style, folder=False, is_live=True) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32009) + '[/B]', offscreen=True) - li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'direttalivela7d.jpg'), 'fanart': G.FANART_PATH}) - add_directory_item_nodup({"mode": "diretta_la7d"}, li_style, folder=False, is_live=True) + li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'direttalivela7cinema.jpg'), 'fanart': G.FANART_PATH}) + add_directory_item_nodup({"mode": "diretta_la7cinema"}, li_style, folder=False, is_live=True) + li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32011) + '[/B]', offscreen=True) + li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'direttalivela7eventi.jpg'), 'fanart': G.FANART_PATH}) + add_directory_item_nodup({"mode": "diretta_la7eventi"}, li_style, folder=False, is_live=True) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32001) + '[/B]', offscreen=True) li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'rivedila7.jpg'), 'fanart': G.FANART_PATH}) add_directory_item_nodup({"mode": "rivedi_la7"}, li_style) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32004) + '[/B]', offscreen=True) - li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'rivedila7d.jpg'), 'fanart': G.FANART_PATH}) - add_directory_item_nodup({"mode": "rivedi_la7d"}, li_style) + li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'direttalivela7cinema.jpg'), 'fanart': G.FANART_PATH}) + add_directory_item_nodup({"mode": "rivedi_la7cinema"}, li_style) + li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32010) + '[/B]', offscreen=True) + li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'la7prime.jpg'), 'fanart': G.FANART_PATH}) + add_directory_item_nodup({"mode": "la7_prime"}, li_style) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32007) + '[/B]', offscreen=True) li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'tgmeteo.jpg'), 'fanart': G.FANART_PATH}) add_directory_item_nodup({"mode": "tg_meteo"}, li_style) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32006) + '[/B]', offscreen=True) - li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'programmila7la7d.jpg'), 'fanart': G.FANART_PATH}) + li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'programmi.jpg'), 'fanart': G.FANART_PATH}) add_directory_item_nodup({"mode": "tutti_programmi"}, li_style) - li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32010) + '[/B]', offscreen=True) - li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'la7prime.jpg'), 'fanart': G.FANART_PATH}) - add_directory_item_nodup({"mode": "la7_prime"}, li_style) li_style = xbmcgui.ListItem('[B]' + G.LANGUAGE(32008) + '[/B]', offscreen=True) li_style.setArt({'thumb': os.path.join(G.THUMB_PATH, 'techela7.jpg'), 'fanart': G.FANART_PATH}) add_directory_item_nodup({"mode": "teche_la7"}, li_style) @@ -50,7 +53,8 @@ def add_directory_item_nodup(parameters, li, title='', folder=True, is_live=Fals if not title: title = G.TITOLO if title in G.LIST_PROGRAMMI: - xbmc.log('PROGRAMMA DUPLICATO', xbmc.LOGINFO) + # xbmc.log('PROGRAMMA DUPLICATO', xbmc.LOGINFO) + pass else: url = sys.argv[0] + '?' + urllib.parse.urlencode(parameters) if is_live: @@ -64,7 +68,7 @@ def add_directory_item_nodup(parameters, li, title='', folder=True, is_live=Fals def play_dirette(url, live): xbmc.log('PLAY DIRETTE', xbmc.LOGINFO) - # xbmc.log('PAGE DIRETTE-----: '+str(url),xbmc.LOGINFO) + #xbmc.log('PAGE DIRETTE-----: '+str(url),xbmc.LOGINFO) url_title = '' regex5 = '' @@ -73,18 +77,24 @@ def play_dirette(url, live): if live: if url == G.URL_LIVE_LA7: url_title = G.URL_BASE - regex5 = r'emissioneString\s*=\s*"(.*?)"' - elif url == G.URL_LIVE_LA7D: - url_title = G.URL_BASE_LA7D - regex5 = r'emissioneStringLa7d\s*=\s*"(.*?)"' - # xbmc.log('URL TITLE-----: '+str(url_title),xbmc.LOGINFO) + regex5 = r'var orainonda = ".*\t(.*?)"' + elif url == G.URL_LIVE_LA7CINEMA: + url_title = G.URL_BASE + regex5 = r'var orainondala7d = ".*\t(.*?)"' + elif url == G.URL_LIVE_LA7EVENTI: + url_title = G.URL_LIVE_LA7EVENTI + #xbmc.log('URL TITLE-----: '+str(url_title),xbmc.LOGINFO) req = Request(url_title, headers={'user-agent': G.HEADERS_SET['user-agent']}) page = urlopen(req).read() html = page.decode(errors='replace') - # xbmc.log('REGEX5-----: '+str(re.findall(regex5, html)),xbmc.LOGINFO) - titolo_diretta = re.findall(regex5, html)[0] - # xbmc.log('TITOLO DIRETTA-----: '+str(titolo_diretta),xbmc.LOGINFO) + #xbmc.log('REGEX5-----: '+str(re.findall(regex5, html)),xbmc.LOGINFO) + + if url == G.URL_LIVE_LA7EVENTI: + titolo_diretta = 'LA7 Eventi Live' + else: + titolo_diretta = re.findall(regex5, html)[0] + #xbmc.log('TITOLO DIRETTA-----: '+str(titolo_diretta),xbmc.LOGINFO) response = requests.get(url, headers={'user-agent': G.HEADERS_SET['user-agent']}, verify=False).content.decode() try: @@ -95,7 +105,13 @@ def play_dirette(url, live): xbmcplugin.endOfDirectory(G.PLUGIN_HANDLE, succeeded=False) return response = response.replace("\'", '"') - mpdurl = re.findall('dash.+?"(.+?)"', response, re.DOTALL)[0] + + if url == G.URL_LIVE_LA7EVENTI: + mpdurl = G.URL_MPD_LA7EVENTI + else: + mpdurl = re.findall('dash.+?"(.+?)"', response, re.DOTALL)[0] + #xbmc.log('URL VIDEO MPD-----: '+str(mpdurl),xbmc.LOGINFO) + headers_tok = { 'host': G.HEADERS_SET['host_token'], 'user-agent': G.HEADERS_SET['user-agent'], @@ -144,10 +160,10 @@ def play_dirette(url, live): def play_video(page_video, live): xbmc.log('PLAY VIDEO', xbmc.LOGINFO) - # xbmc.log('PAGE VIDEO-----: '+str(page_video),xbmc.LOGINFO) + #xbmc.log('PAGE VIDEO-----: '+str(page_video),xbmc.LOGINFO) # regex1 = 'vS = "(.*?)"' - regex2 = '\.net/i/.*?content/(.*?)(?:\.mp4)' + regex2 = r'\.net/i/.*?content/(.*?)(?:\.mp4)' regex3 = 'm3u8: "(.*?)"' # regex4 = '