Commit 695e4f27 authored by Jonas's avatar Jonas

Clean code

parent ab0b42a2
......@@ -30,25 +30,26 @@ from slugify import slugify
reload(sys)
sys.setdefaultencoding('utf8')
TZ = timezone('Europe/Paris')
B_URL = "http://mafreebox.freebox.fr"
BASE_URL = "http://mafreebox.freebox.fr/api/v3/"
CHANNEL_URL = BASE_URL + "tv/channels/"
ICON_URL = BASE_URL + "tv/img/channels/logos68x60/"
EPG_URL = BASE_URL + "tv/epg/by_channel/"
PROG_URL = BASE_URL + "tv/epg/programs/"
CONFIG_FILE = os.path.join(os.environ['HOME'],'.xmltv','tv_grab_fr_mafreebox.conf')
parser = argparse.ArgumentParser(description = "Grabber xmltv via l'api de la freebox")
parser.add_argument("--description", action = 'store_true', help="Description")
parser.add_argument("--capabilities", action = 'store_true', help="Capactitée")
parser.add_argument("--configure", action = 'store_true', help="Configurer le grabber")
config_file = os.path.join(os.environ['HOME'],'.xmltv','tv_grab_fr_mafreebox.conf')
parser.add_argument("--config-file", action = 'store_true', default=config_file, help="Fichier de configuration (%s par défaut)"%config_file)
parser.add_argument("--config-file", action = 'store_true', default=CONFIG_FILE, help="Fichier de configuration (%s par défaut)"%CONFIG_FILE)
parser.add_argument("--quiet", action = 'store_true', help="Supprime toutes les sorties de progressions")
parser.add_argument("--verbose", action = 'store_true', help="Bavard (affiche plus d'information de progression)")
parser.add_argument("--debug", action = 'store_true', help="Affiche des informations pour le debug")
args = parser.parse_args()
TZ = timezone('Europe/Paris')
B_URL = "http://mafreebox.freebox.fr"
BASE_URL = "http://mafreebox.freebox.fr/api/v3/"
CHANNEL_URL = BASE_URL + "tv/channels/"
ICON_URL = BASE_URL + "tv/img/channels/logos68x60/"
EPG_URL = BASE_URL + "tv/epg/by_channel/"
PROG_URL = BASE_URL + "tv/epg/programs/"
if args.debug :
logLevel = logging.DEBUG
elif args.verbose :
......@@ -85,6 +86,10 @@ categories_en = {
def get_cfg_chan() :
'''
Recupérère la liste des chaines configurées dans le fichier de
configuration.
'''
if not os.path.isfile(args.config_file) :
logging.error("Non configuré, lancez %s --configure"%__file__)
sys.exit(1)
......@@ -99,6 +104,9 @@ def get_cfg_chan() :
def get_hts_chan():
'''
Recupérère la liste des chaines configurée sur hts.
'''
url = (raw_input ("URL de hts (\"http://localhost:9981/\" par défaut) : ") or "http://localhost:9981/")
user = (raw_input ("Utilisateur hts (\"admin\" par défaut) : ") or "admin")
pswd = (raw_input ("Mot de passe(\"admin\" par défaut) : ") or "admin")
......@@ -113,6 +121,9 @@ def get_hts_chan():
def get_mythtv_chan():
'''
Recupérère la liste des chaines configurée sur mythtv.
'''
list_chan = []
db = MythDB()
SchemaVersion = db.settings.NULL.DBSchemaVer
......@@ -124,6 +135,9 @@ def get_mythtv_chan():
def do_request(my_url):
'''
Execute une requète http.
'''
logging.debug(my_url)
time.sleep(1)
response = requests.get(my_url)
......@@ -140,17 +154,27 @@ def do_request(my_url):
def start_time():
'''
L'heure actuelle.
'''
now=int(time.time())
return now-now%7200
def format_time(dt):
'''
Format de l'heure selon spécification xmltv
'''
return datetime.strftime(
datetime.fromtimestamp(dt, tz=TZ),
"%Y%m%d%H%M%S %z")
def get_epg_data(root, channel_uid, channel_slug, start_time):
'''
Complète l'xmltv <root> pour la chaine <channel_uid> à partir de
<start_time>
'''
# Scan EPG to get program data
epg_progs = {}
for time_slot in range(10):
......@@ -225,12 +249,15 @@ def get_epg_data(root, channel_uid, channel_slug, start_time):
desc.text = dic_prog.get('desc')
cur_prog.append(desc)
else:
logging.info("Pas de description trouvée")
logging.debug("Pas de description trouvée")
root.append(cur_prog)
return True
def build_xml():
'''
Construit l'xmltv
'''
root = ET.Element('tv')
root.set('generator-info-name', 'snouf XMLTV generated')
root.set('generator-info-url', 'https://gitlab.com/snouf/tvheadend_tools')
......@@ -265,6 +292,9 @@ def build_xml():
def configure () :
'''
Lance la configuration
'''
choise = raw_input(\
"Configuration de la liste des chaines pour lequel récupérer l'epg :\n"+\
" 1 : Toutes par défaut\n"+\
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment