Files
addon/specials/checkhost.py
greko17 b5a47566d6 fix
2019-07-30 16:43:05 +02:00

67 lines
2.1 KiB
Python

# -*- coding: utf-8 -*-
"""
leggo gli host dei canali dal file channels.json
li controllo
scrivo il file channels-test.json
con i codici di errore e i nuovi url in caso di redirect
gli url DEVONO avere http(s)
Durante il controllo degli url vengono rieffettuati
i controlli di ip, asdl e dns.
Questo perchè può succedere che in un qualsiasi momento
la connessione può avere problemi.
Nel caso succeda il controllo e relativa scrittura del file viene interrotto
con messaggio di avvertimento
"""
import xbmc
import xbmcaddon
import json
from platformcode import logger
from kdicc import test_conn
def check(item):
logger.info()
folderJson = xbmc.translatePath(xbmcaddon.Addon().getAddonInfo('path')).decode('utf-8')
fileJson = 'channels.json'
with open(folderJson+'/'+fileJson) as f:
data = json.load(f)
## logger.info("DATA :%s" % data)
risultato = {}
for chann, host in sorted(data.items()):
ris = []
logger.info("channel - host :%s - %s " % (chann, host))
#lst_host = []
#lst_host.append(host)
lst_host = [host]
rslt = test_conn(is_exit = True, check_dns = False, view_msg = True,
lst_urls = lst_host, lst_site_check_dns = [], in_addon = True)
logger.info("checkhost rslt :%s " % (rslt))
rslt = rslt[0]
# tutto ok
if rslt['code'] == 200 and rslt['isRedirect'] == False:
risultato[chann] = host
# redirect
elif rslt['code'] == 200 and rslt['isRedirect'] == True:
risultato[chann] = str(rslt['code']) +' - '+ rslt['rdrcturl']
# sito inesistente
elif rslt['code'] == -2:
risultato[chann] = 'Host Sconosciuto - '+ str(rslt['code']) +' - '+ host
else:
# altri tipi di errore
risultato[chann] = str(rslt['code']) +' - '+ host
fileJson_test = 'channels-test.json'
# scrivo il file aggiornato
with open(folderJson+'/'+fileJson_test, 'w') as f:
data = json.dump(risultato, f, sort_keys=True, indent=4)
logger.info(data)