Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions plugin.video.rivedila7/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ Live Streaming, Replay the last week, LA7 Prime, On-Demand programs, News & Weat
"sudo apt install kodi-inputstream-adaptive"

### Changelog
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

Expand Down
11 changes: 9 additions & 2 deletions plugin.video.rivedila7/addon.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.rivedila7" name="LA7-LA7d" version="6.2.0" provider-name="Luivit, Testato">
<addon id="plugin.video.rivedila7" name="LA7-LA7d" version="6.3.0" provider-name="Luivit, Testato">
<requires>
<import addon="xbmc.python" version="3.0.0"/>
<import addon="script.module.requests" version="0.0.0"/>
Expand Down Expand Up @@ -29,7 +29,14 @@
<screenshot>resources/screenshots/screenshot-01.jpg</screenshot>
<screenshot>resources/screenshots/screenshot-02.jpg</screenshot>
</assets>
<news>6.2.0 (2022-03-5)
<news>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

6.1.0 (2022-10-29)
Expand Down
9 changes: 9 additions & 0 deletions plugin.video.rivedila7/resources/lib/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"exclusions": ["/meteola7", "/meteo-della-sera", "/tgla7", "/film", "/film-e-fiction"],
"mappings": {
"/facciaafaccia": "/faccia-a-faccia",
"/il-boss-dei-comici": "/boss-dei-comici",
"/lariadestate": "/laria-destate",
"/taga-doc": "/tagada-doc"
}
}
154 changes: 57 additions & 97 deletions plugin.video.rivedila7/resources/lib/plugin.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import json
import re
import os
import sys
Expand Down Expand Up @@ -62,7 +63,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('PLAY DIRETTE', xbmc.LOGINFO)
# xbmc.log('PAGE DIRETTE-----: '+str(url),xbmc.LOGINFO)

url_title = ''
Expand Down Expand Up @@ -243,6 +244,38 @@ def rivedi_giorno():
xbmcplugin.setContent(G.PLUGIN_HANDLE, 'episodes')
xbmcplugin.endOfDirectory(handle=G.PLUGIN_HANDLE, succeeded=True)

def process_program_data(dati, config):
if dati.find('a') is None:
return
url_trovato = dati.a.get('href').strip()
# xbmc.log('URL--------: '+str(url_trovato),xbmc.LOGINFO)
if url_trovato not in config['exclusions']:
url_trovato = config['mappings'].get(url_trovato, url_trovato)
titolo = ''
if dati.find('div', class_='titolo'):
titolo = dati.find('div', class_='titolo').text.strip()
if titolo == '':
titolo = url_trovato.lstrip('/').replace('-', ' ').upper()
# xbmc.log('TITLE1-----: '+str(titolo),xbmc.LOGINFO)
liStyle = xbmcgui.ListItem(titolo, offscreen=True)
link = G.URL_BASE + url_trovato
# xbmc.log('LINK-----: '+str(link),xbmc.LOGINFO)
if len(dati) > 0:
try:
thumb = dati.find('div', class_='image-bg lozad').get('data-background-image')
except Exception as e:
e = sys.exc_info()[0]
xbmc.log('EXCEP THUMB1: ' + str(e), xbmc.LOGINFO)
thumb = ''
if thumb:
liStyle.setArt({'thumb': thumb})
else:
xbmc.log('NO THUMB1', xbmc.LOGINFO)
liStyle.setArt({'fanart': G.FANART_PATH})
add_directory_item_nodup({"mode": G.MODE, "link": link}, liStyle, titolo)

if titolo not in G.LIST_PROGRAMMI:
G.LIST_PROGRAMMI.append(titolo)

def programmi_lettera():
req_p = Request(G.URL_PROGRAMMI, headers={'user-agent': G.HEADERS_SET['user-agent']})
Expand All @@ -259,106 +292,19 @@ def programmi_lettera():
html_tp = BeautifulSoup(page_tp, 'html.parser')
tutti_programmi = html_tp.find_all('div', class_='list-item')

config_path = os.path.join(os.path.dirname(__file__), 'config.json')
with open(config_path, 'r') as config_file:
config = json.load(config_file)

if programmi or programmila7d or tutti_programmi:
for dati in programmi:
if dati.find('div', class_='titolo'):
titolo = dati.find('div', class_='titolo').text.strip()
# xbmc.log('TITLE1-----: '+str(titolo),xbmc.LOGINFO)
liStyle = xbmcgui.ListItem(titolo, offscreen=True)
url_trovato = dati.a.get('href').strip()
# xbmc.log('URL--------: '+str(url_trovato),xbmc.LOGINFO)
if url_trovato != '/meteola7' and url_trovato != '/meteo-della-sera' and url_trovato != '/tgla7' and url_trovato != '/film' and url_trovato != '/film-e-fiction':
if url_trovato == '/facciaafaccia':
url_trovato = '/faccia-a-faccia'
if url_trovato == '/il-boss-dei-comici':
url_trovato = '/boss-dei-comici'
if url_trovato == '/lariadestate':
url_trovato = '/laria-destate'
if url_trovato == '/taga-doc':
url_trovato = '/tagada-doc'
link = G.URL_BASE + url_trovato
# xbmc.log('LINK-----: '+str(link),xbmc.LOGINFO)
if len(dati) > 0:
try:
thumb = dati.find('div', class_='image-bg lozad').get('data-background-image')
except Exception as e:
e = sys.exc_info()[0]
xbmc.log('EXCEP THUMB1: ' + str(e), xbmc.LOGINFO)
thumb = ''
if thumb:
liStyle.setArt({'thumb': thumb})
else:
xbmc.log('NO THUMB1', xbmc.LOGINFO)
liStyle.setArt({'fanart': G.FANART_PATH})
add_directory_item_nodup({"mode": G.MODE, "link": link}, liStyle, titolo)

if titolo not in G.LIST_PROGRAMMI:
G.LIST_PROGRAMMI.append(titolo)
process_program_data(dati, config)

for dati in programmila7d:
if dati.find('div', class_='titolo'):
titolo = dati.find('div', class_='titolo').text.strip()
# xbmc.log('TITLE1-----: '+str(titolo),xbmc.LOGINFO)
liStyle = xbmcgui.ListItem(titolo, offscreen=True)
url_trovato = dati.a.get('href').strip()
if url_trovato != '/meteola7' and url_trovato != '/meteo-della-sera' and url_trovato != '/tgla7' and url_trovato != '/film' and url_trovato != '/film-e-fiction':
if url_trovato == '/facciaafaccia':
url_trovato = '/faccia-a-faccia'
if url_trovato == '/il-boss-dei-comici':
url_trovato = '/boss-dei-comici'
if url_trovato == '/lariadestate':
url_trovato = '/laria-destate'
if url_trovato == '/taga-doc':
url_trovato = '/tagada-doc'
link = G.URL_BASE + url_trovato
# xbmc.log('LINK-----: '+str(link),xbmc.LOGINFO)
if len(dati) > 0:
try:
thumb = dati.find('div', class_='image-bg lozad').get('data-background-image')
except Exception as e:
e = sys.exc_info()[0]
xbmc.log('EXCEP THUMB2: ' + str(e), xbmc.LOGINFO)
thumb = ''
if thumb:
liStyle.setArt({'thumb': thumb})
else:
xbmc.log('NO THUMB2', xbmc.LOGINFO)
liStyle.setArt({'fanart': G.FANART_PATH})
add_directory_item_nodup({"mode": G.MODE, "link": link}, liStyle, titolo)
if titolo not in G.LIST_PROGRAMMI:
G.LIST_PROGRAMMI.append(titolo)

process_program_data(dati, config)

for dati in tutti_programmi:
if dati.find('div', class_='titolo'):
titolo = dati.find('div', class_='titolo').text.strip()
# xbmc.log('TITLE2: '+str(titolo),xbmc.LOGINFO)
liStyle = xbmcgui.ListItem(titolo, offscreen=True)
url_trovato = dati.a.get('href').strip()
# xbmc.log('URL TROVATO-----: '+str(url_trovato),xbmc.LOGINFO)
if url_trovato != '/meteola7' and url_trovato != '/meteo-della-sera' and url_trovato != '/tgla7' and url_trovato != '/film' and url_trovato != '/film-e-fiction':
if url_trovato == '/facciaafaccia':
url_trovato = '/faccia-a-faccia'
if url_trovato == '/il-boss-dei-comici':
url_trovato = '/boss-dei-comici'
if url_trovato == '/lariadestate':
url_trovato = '/laria-destate'
if url_trovato == '/taga-doc':
url_trovato = '/tagada-doc'
link = G.URL_BASE + url_trovato
# xbmc.log('LINK-----: '+str(link),xbmc.LOGINFO)
if len(dati) > 0:
try:
thumb = dati.find('div', class_='image-bg lozad').get('data-background-image')
except Exception as e:
e = sys.exc_info()[0]
xbmc.log('EXCEP THUMB3: ' + str(e), xbmc.LOGINFO)
thumb = ''
if thumb:
liStyle.setArt({'thumb': thumb})
else:
xbmc.log('NO THUMB3', xbmc.LOGINFO)
liStyle.setArt({'fanart': G.FANART_PATH})
add_directory_item_nodup({"mode": G.MODE, "link": link}, liStyle, titolo)
process_program_data(dati, config)

# Prog aggiunti manualmente
programmi = {
Expand Down Expand Up @@ -420,6 +366,8 @@ def programmi_lettera_teche_la7():

if teche_la7:
for dati in teche_la7:
if dati.find('a') is None:
continue
if dati.find('div', class_='titolo'):
nomicognomi = dati.find('div', class_='titolo').text.strip()
cognominomi = " ".join(reversed(nomicognomi.split(" ")))
Expand Down Expand Up @@ -767,11 +715,23 @@ def get_rows_video_landpage_preview(video):
titolo = video.find('div', class_='title_puntata').text.strip()
data = '[I] - (' + video.find('div', class_='scritta_ultima').text.strip() + ')[/I]'
thumblink = video.find('div', class_='holder-bg lozad').get('data-background-image')
plot = ""
if thumblink.startswith('//'):
thumb = 'https:' + thumblink
else:
thumb = thumblink
plot = video.find('div', class_='occhiello').text.strip()
try:
occhiello = video.find('div', class_='occhiello')
plot = occhiello.text.strip() if occhiello else ""
except Exception as e:
e = sys.exc_info()[0]
xbmc.log('EXCEP PLOT2: ' + str(e), xbmc.LOGINFO)
try:
plot = video.find('div', class_='title_puntata').text.strip()
except Exception as ee:
ee = sys.exc_info()[0]
xbmc.log('EXCEP TITLE_PUNTATA: ' + str(ee), xbmc.LOGINFO)
plot = ""
link = G.URL_BASE + video.find('a').get('href')
liStyle = xbmcgui.ListItem(titolo + data, offscreen=True)
liStyle.setArt({'thumb': thumb, 'fanart': G.FANART_PATH})
Expand Down