2025-02-01 22:23:51 +01:00
|
|
|
#!/bin/bash
|
2025-06-23 14:27:18 +02:00
|
|
|
|
|
|
|
|
source /home/$USER/autopost/common.sh
|
2025-02-01 22:23:51 +01:00
|
|
|
|
|
|
|
|
# Vérification et création des dossiers
|
2025-04-17 19:24:47 +02:00
|
|
|
for dossier in "$DOSSIER_NFO" "$DOSSIER_NZB_ATTENTE" "$DOSSIER_NZB_FINAL" "$DOSSIER_LOGS" "tmp"
|
2025-02-01 22:23:51 +01:00
|
|
|
do
|
|
|
|
|
if [ ! -d "$dossier" ]; then
|
|
|
|
|
echo -e "${ROUGE} Le dossier $dossier n'existe pas. Création... ${NORMAL}"
|
|
|
|
|
mkdir -p "$dossier"
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
attente() {
|
|
|
|
|
for ((i=$1; i>0; i--)); do
|
|
|
|
|
echo -ne "Attente : $i secondes\r"
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
checkusenet(){
|
|
|
|
|
SERVICE="nyuu"
|
|
|
|
|
if pgrep -x "$SERVICE" >/dev/null
|
|
|
|
|
then
|
|
|
|
|
echo "$SERVICE EN COURS"
|
|
|
|
|
sleep 16
|
|
|
|
|
else
|
|
|
|
|
echo "$SERVICE OK"
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
2025-06-23 14:27:18 +02:00
|
|
|
cd "${DOSSIER_GLOBAL}"
|
2025-02-01 22:23:51 +01:00
|
|
|
|
2025-05-12 13:40:27 +02:00
|
|
|
while true; do
|
2025-06-23 14:27:18 +02:00
|
|
|
# Utilisation universelle
|
2025-07-03 14:39:17 +02:00
|
|
|
autopost_json=$(curl -sf https://unfr.pw/autopost.status.json)
|
|
|
|
|
autopost_file=$(echo "$autopost_json" | jq -r '.autopost')
|
|
|
|
|
|
|
|
|
|
if [[ "$autopost_file" == "0" ]]; then
|
2025-08-08 22:01:26 +02:00
|
|
|
verif=$(db_query "SELECT id, nom FROM \`$MYSQL_TABLE\` WHERE status = 0 LIMIT 1;")
|
2025-07-03 14:39:17 +02:00
|
|
|
if [ -n "$verif" ]; then
|
|
|
|
|
id=$(echo "$verif" | awk -F "|" '{print $1}' | xargs)
|
|
|
|
|
name=$(echo "$verif" | awk -F "|" '{print $2}' | xargs)
|
|
|
|
|
FILESANSEXT=${name%.*}
|
|
|
|
|
LOG="${DOSSIER_LOGS}${FILESANSEXT}.log"
|
|
|
|
|
|
|
|
|
|
echo -e "${VERT}DEBUT DE TRAITEMENT DE ${FILESANSEXT}${NORMAL}" | tee -a "$LOG"
|
2025-08-13 10:54:54 +02:00
|
|
|
if [ "$dbtype" = "mysql" ]; then
|
|
|
|
|
db_query "UPDATE \`$MYSQL_TABLE\` SET status = 4 WHERE id = ${id};"
|
|
|
|
|
fi
|
2025-07-03 14:39:17 +02:00
|
|
|
echo -e "${CYAN}CREATION DES PAR2${NORMAL}" | tee -a "$LOG"
|
|
|
|
|
parpar -s10M -S -m4096M -t16 -r20% -O -o "${FILESANSEXT}.par2" "${name}" \
|
|
|
|
|
> >(tee -a "$LOG") 2> >(tee -a "$LOG" >&2)
|
|
|
|
|
ret=$?
|
|
|
|
|
if [ $ret -ne 0 ]; then
|
|
|
|
|
echo -e "${ROUGE}Erreur parpar (code $ret). Marquage en échec.${NORMAL}" | tee -a "$LOG"
|
2025-08-08 22:01:26 +02:00
|
|
|
db_query "UPDATE \`$MYSQL_TABLE\` SET status = 2 WHERE id = ${id};"
|
2025-07-03 14:39:17 +02:00
|
|
|
rm -f "${FILESANSEXT}.par2" "${FILESANSEXT}.vol*"
|
|
|
|
|
continue
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
echo -e "${VERT}UPLOAD SUR USENET${NORMAL}"
|
2025-08-10 11:31:51 +02:00
|
|
|
files=( ${FILESANSEXT}.* )
|
2025-07-03 14:39:17 +02:00
|
|
|
checkusenet
|
2025-08-10 11:49:16 +02:00
|
|
|
script -q -c \
|
2025-08-10 11:31:51 +02:00
|
|
|
"nyuu -h ${NG_HOST} -P ${NG_PORT} -S -u ${NG_USER} -p ${NG_PASS} -n ${NG_NBR_CONN} \
|
|
|
|
|
-g alt.binaries.boneless -o '${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.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 ${files[*]} \
|
|
|
|
|
--progress=stderr" \
|
|
|
|
|
/dev/null
|
2025-07-03 14:39:17 +02:00
|
|
|
|
2025-08-07 15:30:15 +02:00
|
|
|
if [ -e "${DOSSIER_NFO}${FILESANSEXT}.json" ] || [ -e "${DOSSIER_NFO}${FILESANSEXT}.txt" ]; then
|
2025-07-03 14:39:17 +02:00
|
|
|
echo -e "${JAUNE}VERIF DU NZB${NORMAL}"
|
|
|
|
|
nzbsizebit=$(bash ${ANALYZER} "${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb" | jq '.Taillebit')
|
|
|
|
|
echo -e "NZB_SIZE : ${nzbsizebit}"
|
2025-08-07 16:12:39 +02:00
|
|
|
if [[ "${name}" =~ \.(iso)$ ]]; then
|
|
|
|
|
jsonsizebit=$(du -b -c "${name}" | grep total | awk '{ print $1 }')
|
|
|
|
|
else
|
|
|
|
|
jsonsizebit=$(jq -r '.media.track[] | select(."@type" == "General") | .FileSize' "${DOSSIER_NFO}${FILESANSEXT}.json")
|
|
|
|
|
fi
|
2025-07-03 14:39:17 +02:00
|
|
|
echo -e "MEDIAINFO_SIZE : ${jsonsizebit}"
|
|
|
|
|
|
|
|
|
|
if [[ ${nzbsizebit} -le ${jsonsizebit} ]] || [[ ${nzbsizebit} = "NAN" ]]; then
|
|
|
|
|
echo -e "${ROUGE}PROBLEME TAILLE NZB${NORMAL}"
|
|
|
|
|
rm "${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb" "${FILESANSEXT}.par2" "${FILESANSEXT}.vol*"
|
2025-08-08 22:01:26 +02:00
|
|
|
db_query "UPDATE \`$MYSQL_TABLE\` SET status = 2 WHERE id = ${id};"
|
2025-07-03 14:39:17 +02:00
|
|
|
else
|
|
|
|
|
echo -e "${CYAN}ENVOI SUR LE SITE${NORMAL}"
|
2025-08-07 15:30:15 +02:00
|
|
|
if [[ "${name}" =~ \.(iso)$ ]]; then
|
|
|
|
|
curl -s -k -L -m 60 --output /dev/null \
|
|
|
|
|
-F rlsname=${FILESANSEXT} \
|
|
|
|
|
-F bdinfo_full=@${DOSSIER_NFO}${FILESANSEXT}.bdinfo.txt \
|
|
|
|
|
-F bdinfo_mini=@${DOSSIER_NFO}${FILESANSEXT}.quicksummary.txt \
|
|
|
|
|
-F nzb=@${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb \
|
|
|
|
|
-F upload=upload "${URL_API}${APIKEY}"
|
|
|
|
|
else
|
|
|
|
|
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}"
|
|
|
|
|
fi
|
2025-07-03 14:39:17 +02:00
|
|
|
first_char=$(echo "${name:0:1}" | tr '[:lower:]' '[:upper:]')
|
|
|
|
|
mkdir -p "${DOSSIER_NZB_FINAL}${first_char}"
|
|
|
|
|
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on \
|
|
|
|
|
"${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.7z" \
|
|
|
|
|
"${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb" > /dev/null 2>&1
|
|
|
|
|
mv "${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.7z" "${DOSSIER_NZB_FINAL}${first_char}/"
|
|
|
|
|
rm -rf "${FILESANSEXT}"*
|
|
|
|
|
rm "${DOSSIER_NZB_ATTENTE}${FILESANSEXT}.nzb"
|
2025-08-08 22:01:26 +02:00
|
|
|
db_query "UPDATE \`$MYSQL_TABLE\` SET status = 1 WHERE id = ${id};"
|
2025-07-03 14:39:17 +02:00
|
|
|
echo -e "${VERT}FIN DE TRAITEMENT DE ${FILESANSEXT}${NORMAL}"
|
|
|
|
|
fi
|
2025-02-02 11:08:54 +01:00
|
|
|
else
|
2025-07-03 14:39:17 +02:00
|
|
|
echo -e "${ROUGE}ENVOI SUR LE SITE IMPOSSIBLE NFO MANQUANT${NORMAL}"
|
2025-02-01 22:23:51 +01:00
|
|
|
fi
|
2025-08-10 11:31:51 +02:00
|
|
|
} 2>&1 | tee -a "$LOG"
|
2025-07-03 14:39:17 +02:00
|
|
|
fi
|
|
|
|
|
else
|
|
|
|
|
echo -e "${ROUGE}PROBLEME DE PROPAGATION POST EN PAUSE${NORMAL}"
|
2025-05-12 13:40:27 +02:00
|
|
|
fi
|
2025-06-23 14:27:18 +02:00
|
|
|
attente 3
|
2025-02-01 22:23:51 +01:00
|
|
|
done
|