2018-07-27 20:27:42 +00:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Author : freezed < freezed @users.noreply.github.com > 2018 - 07 - 27
Version : 0.1
Licence : ` GNU GPL v3 ` GNU GPL v3 : http : / / www . gnu . org / licenses /
This file is part of [ ocp5 ] ( https : / / github . com / freezed / ocp5 ) project
"""
2018-08-04 13:58:31 +00:00
# API
FIELD_KEPT = {
' product ' : [
' product_name ' ,
' nutrition_grades ' ,
' categories_tags '
] ,
' category ' : [
' _id ' ,
' url ' ,
' product_name ' ,
' nutrition_grades ' ,
' categories_tags '
]
}
2018-08-08 20:08:18 +00:00
API_URL_CAT = " https://fr.openfoodfacts.org/category/ {} / {} .json "
2018-08-04 13:58:31 +00:00
2018-08-04 16:34:10 +00:00
# CLI
DB_REQUEST = {
2018-08-07 21:11:15 +00:00
' list_cat ' : " SELECT c.name, COUNT(*) AS ' option ' , c.id AS ' id ' FROM category AS c JOIN product AS p ON p.category_id = c.id GROUP BY c.name ORDER BY COUNT(*) DESC; " ,
2018-08-08 09:07:19 +00:00
' list_prod ' : " SELECT p.name, p.nutrition_grades AS ' option ' , p.id AS ' id ' FROM product AS p LEFT JOIN category AS c ON p.category_id = c.id WHERE c.id = ' {} ' AND p.nutrition_grades IS NOT NULL AND p.substitute_id IS NULL; " ,
2018-08-07 21:11:15 +00:00
' list_substitute ' : " SELECT p.name, p.nutrition_grades AS ' option ' , p.id AS ' id ' FROM product AS p LEFT JOIN category AS c ON p.category_id = c.id WHERE c.id = ' {} ' AND p.nutrition_grades < ' {} ' " ,
' select_substitute ' : " SELECT p.*, c.name FROM product AS p LEFT JOIN category AS c ON p.category_id = c.id WHERE p.id = ' {} ' " ,
2018-08-04 16:34:10 +00:00
' save_substitute ' : " UPDATE product SET substitute_id= {} WHERE id= {} " ,
2018-08-08 15:53:11 +00:00
' list_substituated_prod ' : " SELECT p.name AS pname, p.nutrition_grades AS pnutri, sub.name AS sname, sub.nutrition_grades AS snutri FROM product AS p LEFT JOIN category AS c ON p.category_id = c.id JOIN product AS sub ON sub.id = p.substitute_id WHERE p.substitute_id IS NOT NULL; " ,
2018-08-04 16:34:10 +00:00
}
2018-08-06 16:12:06 +00:00
2018-08-08 15:53:11 +00:00
CLI_MAX_LEN = 30
2018-08-07 15:40:38 +00:00
CLI_MSG_SUBST = " Substituts disponibles : \n "
2018-08-08 15:53:11 +00:00
CLI_MSG_QUIT = " \n Au revoir! "
2018-08-04 20:44:52 +00:00
2018-08-08 15:53:11 +00:00
CLI_ITEM_LIST = " {} : {} \t {} : {} \n "
CLI_MSG_INIT_MENU = CLI_MSG_SUBST + " Voulez vous les consulter? \n " \
" \n \t 0: non \n \t 1: oui "
CLI_MSG_ASK_BAK = " Sauvegarder « {} » \n en substitut du produit « {} »? " \
" \n \t 0: non \n \t 1: oui "
CLI_MSG_ASK_ERR = " \n Saisie incorrecte : « {} » "
CLI_MSG_ASK_IDX = " Index choisi [0- {} ] : "
CLI_MSG_BAK_DONE = " \n Substitut sauvegardé " + CLI_MSG_QUIT
CLI_MSG_CAT = " Catégories disponibles : \n "
2018-08-07 00:54:46 +00:00
CLI_MSG_CHOOSEN_CAT = " # # Categorie : [ {} ] \n "
2018-08-07 16:33:18 +00:00
CLI_MSG_CHOOSEN_PROD = " # Produits : [ {} ] \n "
2018-08-07 20:52:12 +00:00
CLI_MSG_DETAILLED_SUB = " Nutriscore [ {nutri} ] \t Code [ {code} ] " \
2018-08-08 08:58:42 +00:00
" \n URL: {url} \n \n "
2018-08-08 15:53:11 +00:00
CLI_MSG_DISCLAIMER = " # # # Bienvenu sur PyOFF # # # \n \n "
2018-08-08 08:58:42 +00:00
CLI_MSG_NO_SUBST = " Pas de substitut trouvé pour le produit « {} » " \
" (nutriscore : « {} ») " + CLI_MSG_QUIT
2018-08-08 15:53:11 +00:00
CLI_MSG_PROD = " Produits disponibles : \n "
CLI_MSG_SUBST_LIST = " {pname} \t {sname} \n "
CLI_MSG_SUBST_TITLE = " \n " + " # # SUBSTITUTIONS ENREGISTRÉES # # " . center (
2 * CLI_MAX_LEN
) + " \n "
CLI_MSG_SUBST_HEAD = " PRODUIT : " . center ( CLI_MAX_LEN ) + \
" SUBSTITUT : " . center ( CLI_MAX_LEN ) + " \n "
2018-08-07 20:52:12 +00:00
2018-08-04 16:34:10 +00:00
2018-07-27 20:27:42 +00:00
# DATABASE
DB_CONFIG = {
' host ' : ' localhost ' ,
' user ' : ' loff ' ,
2018-08-02 18:00:30 +00:00
' password ' : ' loff ' ,
2018-07-27 20:27:42 +00:00
' db ' : ' loff ' ,
2018-08-02 18:00:30 +00:00
' charset ' : ' utf8 ' ,
2018-08-03 16:23:09 +00:00
' autocommit ' : True ,
2018-07-27 20:27:42 +00:00
' file ' : ' create-db-loff.sql '
}
2018-08-02 22:03:31 +00:00
DB_MSG_TEMPLATE = {
" database " : " DB « {} » contains these tables : " ,
" db_created " : " DB « {} » created \n \n " ,
" tables " : " {} \n " ,
" dashboard " : " DB size : {dbsize} \n Table ' product ' has « {rowprod} » "
" row(s) \n Table ' category ' has « {rowcat} » row(s) "
}
2018-08-04 14:33:28 +00:00
# POPULATE
POP_MSG_TEMPLATE = {
' work ' : ' \n # # # # # # \t C A T E G O R Y --[ {} ]-- ' ,
' fetch ' : ' \t Fetching data over API… ' ,
' insert ' : ' \t Inserting data into DB… ' ,
' missing ' : ' \t /! \\ [ {} ] do not exists /! \\ ' ,
# '': '',
}
CATEGORY_LIST = [
' roti ' ,
2018-08-08 20:08:18 +00:00
' tourtes ' ,
' donuts ' ,
' boudoirs ' ,
' canards ' ,
' macarons ' ,
' gratins ' ,
' bouillons ' ,
' entrées ' ,
' barres chocolatées ' ,
' pizzas ' ,
2018-08-04 14:33:28 +00:00
]