update postauto command for mysql
This commit is contained in:
parent
2fdc7a82e5
commit
41e96eef6a
102
bin/postauto
102
bin/postauto
@ -1,11 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Pour les couleurs, chemins et API, complète comme avant...
|
||||||
|
source /home/$USER/autopost/common.sh
|
||||||
|
|
||||||
source $HOME/autopost/common.sh
|
# ========== FONCTIONS SCRIPT ==========
|
||||||
|
|
||||||
checkdb(){
|
checkdb() {
|
||||||
if [ ! -f "$DB_FILE" ]; then
|
if [ "$dbtype" = "sqlite" ]; then
|
||||||
echo "La base de données n'existe pas. Création..."
|
if [ ! -f "$DB_FILE" ]; then
|
||||||
do_createdb
|
echo "La base de données n'existe pas. Création..."
|
||||||
|
#do_createdb
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Vérifie si la table existe, sinon crée-la
|
||||||
|
exists=$(db_query "SHOW TABLES LIKE 'release';")
|
||||||
|
if [ -z "$exists" ]; then
|
||||||
|
echo "La table 'release' n'existe pas. Création..."
|
||||||
|
#do_createdb
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,7 +52,6 @@ do_stop() {
|
|||||||
else
|
else
|
||||||
echo "Aucun screen '$WEB_NAME' en cours d'exécution."
|
echo "Aucun screen '$WEB_NAME' en cours d'exécution."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
do_restart() {
|
do_restart() {
|
||||||
@ -58,45 +68,33 @@ do_show() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_add() {
|
do_add() {
|
||||||
checkdb
|
checkdb
|
||||||
release_path="$2"
|
release_path="$2"
|
||||||
release_name=$(basename "$release_path")
|
release_name=$(basename "$release_path")
|
||||||
release_without_ext="${release_name%.*}"
|
release_without_ext="${release_name%.*}"
|
||||||
|
|
||||||
# Récupération de la réponse JSON complète
|
|
||||||
response=$(curl -s "${URL_API}${APIKEY}&check=${release_without_ext}")
|
response=$(curl -s "${URL_API}${APIKEY}&check=${release_without_ext}")
|
||||||
|
|
||||||
# Extraction du champ "code" avec jq
|
|
||||||
code=$(echo "$response" | jq -r '.code')
|
code=$(echo "$response" | jq -r '.code')
|
||||||
|
|
||||||
# Extraction du champ "explain" avec jq
|
|
||||||
explain=$(echo "$response" | jq -r '.Explain')
|
explain=$(echo "$response" | jq -r '.Explain')
|
||||||
|
|
||||||
# Arrêt du script si "code" vaut 1, en affichant le message "explain"
|
|
||||||
if [ "$code" = "2" ]; then
|
if [ "$code" = "2" ]; then
|
||||||
echo -e "$ROUGE""$explain""$NORMAL"
|
echo -e "$ROUGE""$explain""$NORMAL"
|
||||||
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; INSERT INTO release (nom, status) VALUES ('${release_name}', 3); COMMIT;"
|
db_query "INSERT INTO \`release\` (nom, status) VALUES ('${release_name}', 3);"
|
||||||
|
|
||||||
exit 1
|
exit 1
|
||||||
else
|
else
|
||||||
echo -e "$VERT""DEPLACEMENT DE LA RELEASE ${release_name} DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
|
echo -e "$VERT""DEPLACEMENT DE LA RELEASE ${release_name} DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
|
||||||
|
|
||||||
if [[ "${release_name}" =~ \.(mkv|mp4)$ ]]; then
|
if [[ "${release_name}" =~ \.(mkv|mp4)$ ]]; then
|
||||||
if [ ! -e "${DOSSIER_GLOBAL}${release_name}" ]; then
|
if [ ! -e "${DOSSIER_GLOBAL}${release_name}" ]; then
|
||||||
cp -rl "${release_path}" "${DOSSIER_GLOBAL}"
|
cp -rl "${release_path}" "${DOSSIER_GLOBAL}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "$ROUGE""CREATION MEDIAINFO""$NORMAL"
|
echo -e "$ROUGE""CREATION MEDIAINFO""$NORMAL"
|
||||||
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
|
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
|
||||||
|
|
||||||
echo -e "$CYAN""AJOUT DE LA RELEASE ${release_name} DANS LA DATABASE""$NORMAL"
|
echo -e "$CYAN""AJOUT DE LA RELEASE ${release_name} DANS LA DATABASE""$NORMAL"
|
||||||
sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; INSERT INTO release (nom, status) VALUES ('${release_name}', 0); COMMIT;"
|
db_query "INSERT INTO \`release\` (nom, status) VALUES ('${release_name}', 0);"
|
||||||
else
|
else
|
||||||
echo "il ne s'agit pas d'un fichier mkv ou mp4"
|
echo "il ne s'agit pas d'un fichier mkv ou mp4"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,16 +103,10 @@ do_check() {
|
|||||||
release_name=$(basename "$release_path")
|
release_name=$(basename "$release_path")
|
||||||
release_without_ext="${release_name%.*}"
|
release_without_ext="${release_name%.*}"
|
||||||
|
|
||||||
# Récupération de la réponse JSON complète
|
|
||||||
response=$(curl -s "${URL_API}${APIKEY}&check=${release_without_ext}")
|
response=$(curl -s "${URL_API}${APIKEY}&check=${release_without_ext}")
|
||||||
|
|
||||||
# Extraction du champ "code" avec jq
|
|
||||||
code=$(echo "$response" | jq -r '.code')
|
code=$(echo "$response" | jq -r '.code')
|
||||||
|
|
||||||
# Extraction du champ "explain" avec jq
|
|
||||||
explain=$(echo "$response" | jq -r '.Explain')
|
explain=$(echo "$response" | jq -r '.Explain')
|
||||||
|
|
||||||
# Arrêt du script si "code" vaut 1, en affichant le message "explain"
|
|
||||||
if [ "$code" = "1" ]; then
|
if [ "$code" = "1" ]; then
|
||||||
echo -e "${release_name}" "$ROUGE""$explain""$NORMAL"
|
echo -e "${release_name}" "$ROUGE""$explain""$NORMAL"
|
||||||
else
|
else
|
||||||
@ -124,17 +116,9 @@ do_check() {
|
|||||||
|
|
||||||
do_status() {
|
do_status() {
|
||||||
checkdb
|
checkdb
|
||||||
|
results=$(db_query "SELECT nom, status, id FROM (SELECT * FROM \`release\` ORDER BY id DESC LIMIT 500) t ORDER BY id ASC;")
|
||||||
# Exécuter la requête SQLite et récupérer les résultats dans une variable
|
|
||||||
results=$(sqlite3 "$DB_FILE" "BEGIN IMMEDIATE; SELECT nom, status, id FROM (SELECT * FROM release ORDER BY id DESC LIMIT 500) ORDER BY id ASC; COMMIT;")
|
|
||||||
|
|
||||||
# Trouver la longueur maximale du champ name
|
|
||||||
max_length=$(echo "$results" | awk -F'|' '{ if (length($1) > max) max = length($1) } END { print max }')
|
max_length=$(echo "$results" | awk -F'|' '{ if (length($1) > max) max = length($1) } END { print max }')
|
||||||
|
|
||||||
# Ajouter 10 à la longueur maximale pour définir la largeur de la première colonne
|
|
||||||
col1_width=$((max_length + 5))
|
col1_width=$((max_length + 5))
|
||||||
|
|
||||||
# Parcourir les résultats et afficher avec la couleur appropriée
|
|
||||||
while IFS='|' read -r name status id; do
|
while IFS='|' read -r name status id; do
|
||||||
case $status in
|
case $status in
|
||||||
0)
|
0)
|
||||||
@ -155,10 +139,7 @@ do_status() {
|
|||||||
esac
|
esac
|
||||||
done <<< "$results"
|
done <<< "$results"
|
||||||
|
|
||||||
# En-tête du tableau
|
|
||||||
printf "%-${col1_width}s %-35s %-19s\n" "Name" "Status" "id"
|
printf "%-${col1_width}s %-35s %-19s\n" "Name" "Status" "id"
|
||||||
|
|
||||||
# Afficher la légende des couleurs après le tableau
|
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "${CYAN}${GRAS}■■■■■■${NORMAL} : EN ATTENTE"
|
echo -e "${CYAN}${GRAS}■■■■■■${NORMAL} : EN ATTENTE"
|
||||||
echo -e "${ROSE}${GRAS}■■■■■■${NORMAL} : DEJA DISPONIBLE"
|
echo -e "${ROSE}${GRAS}■■■■■■${NORMAL} : DEJA DISPONIBLE"
|
||||||
@ -171,28 +152,36 @@ do_showlog() {
|
|||||||
if [[ "${release_name}" =~ \.(mkv|mp4)$ ]]; then
|
if [[ "${release_name}" =~ \.(mkv|mp4)$ ]]; then
|
||||||
release_name="${release_name%.*}"
|
release_name="${release_name%.*}"
|
||||||
fi
|
fi
|
||||||
cat ${DOSSIER_LOGS}${release_name}.log
|
cat "${DOSSIER_LOGS}${release_name}.log"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
do_createdb() {
|
do_createdb() {
|
||||||
if [ -f "$DB_FILE" ]; then
|
if [ "$dbtype" = "sqlite" ]; then
|
||||||
read -p "Voulez-vous vraiment supprimer $DB_FILE ? (y/n) : " choix
|
if [ -f "$DB_FILE" ]; then
|
||||||
if [[ "$choix" =~ ^[Yy]$ ]]; then
|
read -p "Voulez-vous vraiment supprimer $DB_FILE ? (y/n) : " choix
|
||||||
rm "$DB_FILE"
|
if [[ "$choix" =~ ^[Yy]$ ]]; then
|
||||||
|
rm "$DB_FILE"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
sqlite3 "$DB_FILE" <<EOF
|
||||||
|
CREATE TABLE \`release\` (
|
||||||
sqlite3 "$DB_FILE" <<EOF
|
|
||||||
CREATE TABLE release (
|
|
||||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||||
nom TEXT NOT NULL,
|
nom TEXT NOT NULL,
|
||||||
status INTEGER NOT NULL DEFAULT 0 CHECK(status IN (0, 1, 2, 3))
|
status INTEGER NOT NULL DEFAULT 0 CHECK(status IN (0, 1, 2, 3))
|
||||||
);
|
);
|
||||||
EOF
|
EOF
|
||||||
|
sqlite3 "$DB_FILE" "PRAGMA journal_mode=WAL;"
|
||||||
sqlite3 "$DB_FILE" "PRAGMA journal_mode=WAL;"
|
sqlite3 "$DB_FILE" "PRAGMA busy_timeout = 5000;"
|
||||||
sqlite3 "$DB_FILE" "PRAGMA busy_timeout = 5000;"
|
else
|
||||||
|
mysql --default-character-set=utf8mb4 -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" -e "CREATE DATABASE IF NOT EXISTS \`$MYSQL_DB\` DEFAULT CHARACTER SET utf8mb4;"
|
||||||
|
mysql --default-character-set=utf8mb4 -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" -D "$MYSQL_DB" -e "
|
||||||
|
DROP TABLE IF EXISTS \`release\`;
|
||||||
|
CREATE TABLE \`release\` (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
nom VARCHAR(255) NOT NULL,
|
||||||
|
status INT NOT NULL DEFAULT 0
|
||||||
|
);"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
do_update() {
|
do_update() {
|
||||||
@ -220,8 +209,8 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
check)
|
check)
|
||||||
if [ -z "$2" ]; then
|
if [ -z "$2" ]; then
|
||||||
echo "Usage: $0 add <release_path>"
|
echo "Usage: $0 check <release_path>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
do_check "$@"
|
do_check "$@"
|
||||||
;;
|
;;
|
||||||
@ -230,7 +219,7 @@ case "$1" in
|
|||||||
;;
|
;;
|
||||||
log)
|
log)
|
||||||
if [ -z "$2" ]; then
|
if [ -z "$2" ]; then
|
||||||
echo "Usage: $0 add <release_path>"
|
echo "Usage: $0 log <release_path>"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
do_showlog "$@"
|
do_showlog "$@"
|
||||||
@ -243,8 +232,7 @@ case "$1" in
|
|||||||
do_add "$@"
|
do_add "$@"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Usage: $0 {start|stop|restart|show|log|check|update|add <release_path>}"
|
echo "Usage: $0 {start|stop|restart|show|status|log|check|update|add <release_path>}"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user