1
0

Compare commits

...

2 Commits

3 changed files with 70 additions and 60 deletions

View File

@ -5,6 +5,7 @@ APIKEY="A RETROUVER DANS VOTRE PROFIL"
DB_FILE="/home/$USER/autopost/base_autopost.db" DB_FILE="/home/$USER/autopost/base_autopost.db"
DOSSIER_GLOBAL="/home/$USER/" DOSSIER_GLOBAL="/home/$USER/"
DOSSIER_NFO="/home/$USER/autopost/mediainfo/" DOSSIER_NFO="/home/$USER/autopost/mediainfo/"
DOSSIER_LOGS="/home/$USER/autopost/logs/"
DOSSIER_NZB_ATTENTE="/home/$USER/ATTENTE/" DOSSIER_NZB_ATTENTE="/home/$USER/ATTENTE/"
DOSSIER_NZB_FINAL="/home/$USER/FINIS/" DOSSIER_NZB_FINAL="/home/$USER/FINIS/"

View File

@ -2,7 +2,7 @@
source /home/$USER/autopost/common.sh source /home/$USER/autopost/common.sh
# Vérification et création des dossiers # Vérification et création des dossiers
for dossier in "$DOSSIER_NFO" "$DOSSIER_NZB_ATTENTE" "$DOSSIER_NZB_FINAL" for dossier in "$DOSSIER_NFO" "$DOSSIER_NZB_ATTENTE" "$DOSSIER_NZB_FINAL" "$DOSSIER_LOGS"
do do
if [ ! -d "$dossier" ]; then if [ ! -d "$dossier" ]; then
echo -e "${ROUGE} Le dossier $dossier n'existe pas. Création... ${NORMAL}" echo -e "${ROUGE} Le dossier $dossier n'existe pas. Création... ${NORMAL}"
@ -37,41 +37,48 @@ do
id=$(echo $verif | awk -F "|" '{ print $1 }' | sed 's/^[ \t]*//;s/[ \t]*$//') id=$(echo $verif | awk -F "|" '{ print $1 }' | sed 's/^[ \t]*//;s/[ \t]*$//')
name=$(echo $verif | awk -F "|" '{ print $2 }' | sed 's/^[ \t]*//;s/[ \t]*$//') name=$(echo $verif | awk -F "|" '{ print $2 }' | sed 's/^[ \t]*//;s/[ \t]*$//')
FILESANSEXT=${name%.*} FILESANSEXT=${name%.*}
echo -e ${VERT}"DEBUT DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
echo -e ${CYAN}"CREATION DES PAR2"${NORMAL}
parpar -s10M -r20%+2 -m4096M -p1l -o ${FILESANSEXT}.par2 ${name}
echo -e ${VERT}"UPLOAD SUR USENET" ${NORMAL} {
checkusenet echo -e ${VERT}"DEBUT DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
nyuu -h ${NG_HOST} -P ${NG_PORT} -S -u ${NG_USER} -p ${NG_PASS} -n ${NG_NBR_CONN} -g alt.binaries.boneless -o "{fnamebase}.nzb" --nzb-title "${FILESANSEXT}" -f "{rand(14)} {rand(14)}@{rand(5)}.{rand(3)}" --message-id "{rand(32)}@{rand(8)}.{rand(3)}" --subject "{rand(32)}" --nzb-subject "{filename}" --obfuscate-articles ${FILESANSEXT}.* echo -e ${CYAN}"CREATION DES PAR2"${NORMAL}
mv ${FILESANSEXT}.nzb ${DOSSIER_NZB_ATTENTE} parpar -s10M -r20%+2 -m4096M -p1l -o ${FILESANSEXT}.par2 ${name}
if [ -e "${DOSSIER_NFO}""${FILESANSEXT}".json ]; then
echo -e ${JAUNE}"VERIF DU NZB"${NORMAL} echo -e ${VERT}"UPLOAD SUR USENET" ${NORMAL}
nzbsizebit=$(php ${ANALYZER} ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb | jq '.Taillebit') checkusenet
echo -e "NZB_SIZE :"${nzbsizebit} nyuu -h ${NG_HOST} -P ${NG_PORT} -S -u ${NG_USER} -p ${NG_PASS} -n ${NG_NBR_CONN} -g alt.binaries.boneless -o "{fnamebase}.nzb" --nzb-title "${FILESANSEXT}" -f "{rand(14)} {rand(14)}@{rand(5)}.{rand(3)}" --message-id "{rand(32)}@{rand(8)}.{rand(3)}" --subject "{rand(32)}" --nzb-subject "{filename}" --obfuscate-articles ${FILESANSEXT}.*
jsonsizebit=$(cat ${DOSSIER_NFO}${FILESANSEXT}.json | jq -r '.media.track[] | select(.["@type"] == "General") | .FileSize')
echo -e "MEDIAINFO_SIZE :"${jsonsizebit} mv ${FILESANSEXT}.nzb ${DOSSIER_NZB_ATTENTE}
if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
echo -e "$ROUGE""PROBLEME TAILLE NZB""$NORMAL" if [ -e "${DOSSIER_NFO}""${FILESANSEXT}".json ]; then
rm ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${FILESANSEXT}.par2 ${FILESANSEXT}.vol* echo -e ${JAUNE}"VERIF DU NZB"${NORMAL}
sqlite3 $DB_FILE "UPDATE release SET status = '2' WHERE id = ${id}" nzbsizebit=$(php ${ANALYZER} ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb | jq '.Taillebit')
else echo -e "NZB_SIZE :"${nzbsizebit}
echo -e ${CYAN}"ENVOI SUR LE SITE"${NORMAL} jsonsizebit=$(cat ${DOSSIER_NFO}${FILESANSEXT}.json | jq -r '.media.track[] | select(.["@type"] == "General") | .FileSize')
curl -s -k -L -m 60 --output /dev/null -F rlsname=${FILESANSEXT} -F generated_nfo_json=@${DOSSIER_NFO}${FILESANSEXT}.json -F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb -F upload=upload "${URL_API}${APIKEY}" echo -e "MEDIAINFO_SIZE :"${jsonsizebit}
first_char=$(echo "${name:0:1}" | tr '[:lower:]' '[:upper:]')
if [ ! -d ${DOSSIER_NZB_FINAL}${first_char} ]; then if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
mkdir ${DOSSIER_NZB_FINAL}${first_char} echo -e "$ROUGE""PROBLEME TAILLE NZB""$NORMAL"
rm ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${FILESANSEXT}.par2 ${FILESANSEXT}.vol*
sqlite3 $DB_FILE "UPDATE release SET status = '2' WHERE id = ${id}"
else
echo -e ${CYAN}"ENVOI SUR LE SITE"${NORMAL}
curl -s -k -L -m 60 --output /dev/null -F rlsname=${FILESANSEXT} -F generated_nfo_json=@${DOSSIER_NFO}${FILESANSEXT}.json -F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb -F upload=upload "${URL_API}${APIKEY}"
first_char=$(echo "${name:0:1}" | tr '[:lower:]' '[:upper:]')
if [ ! -d ${DOSSIER_NZB_FINAL}${first_char} ]; then
mkdir ${DOSSIER_NZB_FINAL}${first_char}
fi
mv ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${DOSSIER_NZB_FINAL}${first_char}/
rm -rf ${FILESANSEXT}*
#rm ${DOSSIER_NFO}${FILESANSEXT}.json
sqlite3 $DB_FILE "UPDATE release SET status = '1' WHERE id = ${id}"
echo -e ${VERT}"FIN DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
fi fi
mv ${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb ${DOSSIER_NZB_FINAL}${first_char}/ else
rm -rf ${FILESANSEXT}* echo -e ${ROUGE}"ENVOI SUR LE SITE IMPOSSIBLE NFO MANQUANT"${NORMAL}
#rm ${DOSSIER_NFO}${FILESANSEXT}.json
sqlite3 $DB_FILE "UPDATE release SET status = '1' WHERE id = ${id}"
echo -e ${VERT}"FIN DE TRAITEMENT DE" ${FILESANSEXT}${NORMAL}
fi fi
else } 2>&1 | tee -a ${DOSSIER_LOGS}${FILESANSEXT}.log
echo -e ${ROUGE}"ENVOI SUR LE SITE IMPOSSIBLE NFO MANQUANT"${NORMAL}
fi
fi fi
attente 10 # Attente de 10 secondes attente 10 # Attente de 10 secondes
done done

View File

@ -30,7 +30,7 @@ do_stop() {
do_restart() { do_restart() {
do_stop do_stop
sleep 10 sleep 1
do_start do_start
} }
@ -63,29 +63,23 @@ do_add() {
echo -e "$ROUGE""$explain""$NORMAL" echo -e "$ROUGE""$explain""$NORMAL"
sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 3);" sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 3);"
exit 1 exit 1
else
echo -e "$VERT""DEPLACEMENT DE LA RELEASE DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
cp -rl "${release_path}" "${DOSSIER_GLOBAL}"
echo -e "$ROUGE""CREATION MEDIAINFO""$NORMAL"
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
echo -e "$CYAN""AJOUT DE LA RELEASE DANS LA DATABASE""$NORMAL"
sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 0);"
fi fi
echo -e "$VERT""DEPLACEMENT DE LA RELEASE DANS LE REPERTOIRE DE TRAVAIL""$NORMAL"
cp -rl "${release_path}" "${DOSSIER_GLOBAL}"
echo -e "$ROUGE""CREATION MEDIAINFO""$NORMAL"
mediainfo --output=JSON --full "${DOSSIER_GLOBAL}${release_name}" > "${DOSSIER_NFO}${release_without_ext}.json"
echo -e "$CYAN""AJOUT DE LA RELEASE DANS LA DATABASE""$NORMAL"
sqlite3 "$DB_FILE" "INSERT INTO release (nom, status) VALUES ('${release_name}', 0);"
} }
do_status() { do_status() {
checkdb checkdb
# Afficher la légende des couleurs
echo -e "${CYAN}${GRAS}■■■■■■${NORMAL} : EN ATTENTE"
echo -e "${ROSE}${GRAS}■■■■■■${NORMAL} : DEJA DISPONIBLE"
echo -e "${VERT}${GRAS}■■■■■■${NORMAL} : ENVOIR TERMINÉ"
echo -e "${ROUGE}${GRAS}■■■■■■${NORMAL} : ERREUR"
echo ""
# Exécuter la requête SQLite et récupérer les résultats dans une variable # Exécuter la requête SQLite et récupérer les résultats dans une variable
results=$(sqlite3 "$DB_FILE" "SELECT nom, status FROM (SELECT * FROM release ORDER BY id DESC LIMIT 500) ORDER BY id DESC;") results=$(sqlite3 "$DB_FILE" "SELECT nom, status, id FROM (SELECT * FROM release ORDER BY id DESC LIMIT 500) ORDER BY id ASC;")
# Trouver la longueur maximale du champ name # 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 }')
@ -93,31 +87,39 @@ do_status() {
# Ajouter 10 à la longueur maximale pour définir la largeur de la première colonne # 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))
# En-tête du tableau
printf "%-${col1_width}s %-35s %-19s\n" "Name"
# Parcourir les résultats et afficher avec la couleur appropriée # Parcourir les résultats et afficher avec la couleur appropriée
while IFS='|' read -r name status; do while IFS='|' read -r name status id; do
case $status in case $status in
0) 0)
printf "${FOND_CYAN}${NOIR}${GRAS}%-${col1_width}s %-35s %-19s${NORMAL}\n" "$name" printf "${FOND_CYAN}${NOIR}${GRAS}%-${col1_width}s %-34s %-19s${NORMAL}\n" "$name" "EN ATTENTE" "$id"
;; ;;
1) 1)
printf "${FOND_VERT}${NOIR}${GRAS}%-${col1_width}s %-35s %-19s${NORMAL}\n" "$name" printf "${FOND_VERT}${NOIR}${GRAS}%-${col1_width}s %-35s %-19s${NORMAL}\n" "$name" "ENVOI TERMINÉ" "$id"
;; ;;
2) 2)
printf "${FOND_ROUGE}${NOIR}${GRAS}%-${col1_width}s %-35s %-19s${NORMAL}\n" "$name" printf "${FOND_ROUGE}${NOIR}${GRAS}%-${col1_width}s %-34s %-19s${NORMAL}\n" "$name" "ERREUR" "$id"
;; ;;
3) 3)
printf "${FOND_ROSE}${NOIR}${GRAS}%-${col1_width}s %-35s %-19s${NORMAL}\n" "$name" printf "${FOND_ROSE}${NOIR}${GRAS}%-${col1_width}s %-34s %-19s${NORMAL}\n" "$name" "DEJA DISPONIBLE" "$id"
;; ;;
*) *)
printf "%-${col1_width}s %-30s %-15s\n" "$name" printf "%-${col1_width}s %-30s %-15s\n" "$name" "$id"
;; ;;
esac esac
done <<< "$results" done <<< "$results"
# En-tête du tableau
printf "%-${col1_width}s %-35s %-19s\n" "Name" "Status" "id"
# Afficher la légende des couleurs après le tableau
echo ""
echo -e "${CYAN}${GRAS}■■■■■■${NORMAL} : EN ATTENTE"
echo -e "${ROSE}${GRAS}■■■■■■${NORMAL} : DEJA DISPONIBLE"
echo -e "${VERT}${GRAS}■■■■■■${NORMAL} : ENVOI TERMINÉ"
echo -e "${ROUGE}${GRAS}■■■■■■${NORMAL} : ERREUR"
} }
do_createdb() { do_createdb() {
if [ -f "$DB_FILE" ]; then if [ -f "$DB_FILE" ]; then
read -p "Voulez-vous vraiment supprimer $DB_FILE ? (y/n) : " choix read -p "Voulez-vous vraiment supprimer $DB_FILE ? (y/n) : " choix