RCU – Rename Comics Universal

 

RCU – Rename Comics Universal

RCU – Rename Comics Universal. Hai una collezione di fumetti digitali in disordine? Rename Comics Universal (RCU) è uno script universale che automatizza la rinominazione di file PDF, CBR, CBZ ed EPUB, estraendo intestazioni comuni (come “Zagor”, “Spider-Man” o “Dylan Dog”), numeri di albo e titoli, per ottenere nomi puliti e standardizzati. Immagina di avere centinaia di files pdf, cbr, cbz, epub, da rinominare, e tutto questo lavoro viene eseguito in un paio di secondi, e non in ore ed ore. Bene, a questo serve RCU.

RCU – Rename Comics Universal

Video/Screencast Linux

Video/Screencast Windows

Caratteristiche Tecniche Principali

  • Riconoscimento Formati: Analizza PDF, CBR, CBZ, EPUB in una directory specifica, ignorando sottodirectory
  • Estrazione Intelligente: Regex per isolare numeri (es. “033”, “N.33”) e titoli, rimuovendo token come “ScanBy”, “by”, “edit” con sed -E e tr
  • Pulizia Automatica: Funzioni clean_title e title_case per Title Case, eliminazione di parentesi, spazi multipli e caratteri speciali; padding numerico a 3 cifre (es. “Zagor 033 – Titolo pulito.cbz”)
  • Header Detection: Cerca il nome del fumetto e seleziona quello principale o quello più comune, si può modificare tramite Zenity GUI
  • Output Colorato: ANSI colors (GREEN per successi, YELLOW per skip), summary finale con contatori

Come Funziona

  1. Seleziona cartella via CLI o Zenity
  2. Detect header: Scansiona file, estrae potenziali header (pre-numero), sceglie il più frequente
  3. Rename files: Per ogni file, estrae numero + titolo, applica pulizia, formatta nuovo nome e rinomina (con check duplicati)

Lo script analizza tutti i file supportati nella cartella e cerca di capire:

  • Qual è il “nome serie” più usato (es. “Zagor”, “Dylan Dog”)
  • Dove si trova il numero dell’albo nel nome del file
  • Se dopo il numero è presente un titolo da ripulire

Per ogni file costruisce un nuovo nome del tipo:

  • “Serie 001 – Titolo pulito.cbz” se esiste un titolo
  • “Serie 001.cbz” se non c’è titolo recuperabile

Cosa Sistema Automaticamente

✅ Toglie scritte inutili come “scan by…”, “edited”, “colori”, tag di gruppi, ecc.
✅ Sistema maiuscole/minuscole: articoli e preposizioni rimangono in minuscolo, le parole importanti hanno l’iniziale maiuscola
✅ Elimina parentesi e contenuto dentro le parentesi quando sono solo note tecniche o ripetizioni del titolo
✅ Evita di creare doppioni: se esiste già un file con il nuovo nome, salta quel fumetto

Vantaggi

  • Ideale per collezioni italiane (Zagor, Tex Willer) o USA (Marvel/DC)
  • Gestisce varianti underscore/spazi, normalizza zeri iniziali
  • Evita sovrascritture con error handling robusto
  • Personalizzabile per nuovi formati estendendo il loop
  • Script leggero (13KB), zero dipendenze oltre bash/zenity (opzionale)

Dove si trova:

Si trova anche su Github, dove c’è un file readme, changelog, licenza, ed i link da dove scaricare lo zip per Linux o per Windows.

Download per Linux

👉 https://buymeacoffee.com/fconidi/e/487102

RCU - Rename Comics Universal

Download per Windows

👉 https://buymeacoffee.com/fconidi/e/485941

RCU - Rename Comics Universal

 

Come Si Usa

Linux Terminal

chmod +x rename_comics_universal.sh
./rename_comics_universal.sh
Oppure Installare il Pacchetto .deb
sudo dpkg -i rename-comics-universal_2.7.deb
rename_comics_universal

In alternativa puoi lanciarlo senza parametri e inserire il percorso quando richiesto, oppure confermare/modificare l’intestazione proposta (il nome della serie).

Windows basta solo drag and drop da powershell

 

Perché è Utile per i Collezionisti

 

  • Risparmia tempo: Invece di rinominare centinaia di file a mano, basta un comando
  • Migliora la ricerca: Con nomi coerenti è più facile trovare un numero specifico o sfogliare l’intera serie
  • Pensato per fumetti italiani ed americani: Gestisce scansioni “reali” dove i nomi dei file spesso includono un sacco di informazioni superflue
  • Altamente configurabile: Aggiungendo eventuali nomi da rimuovere all’interno dello script.
  • Assistenza:  Richieste tramite Github, o mail l’aggiunta di altri pattern da rimuovere o modifiche.
RCU – Rename Comics Universal

enjoy 😉

 

Cambiare nome interfaccia di rete a eth0 su Debian 12

Cambiare nome interfaccia di rete a eth0 su Debian 12

 

Cambiare nome interfaccia di rete a eth0 su Debian 12

Guida su come cambiare il nome alle interfaccia di rete a eth0/wlan0, su Debian 11/12 e SysLinuxOS in modo permanente, utilizzando systemd-networkd. Attualmente vengono riconosciute con molteplici nomi, anche abbastanza lunghi e difficili da ricordare. Questi sono assegnati alle interfacce di rete direttamente dal kernel. Ma tutti questi nomi hanno in comune le due iniziali, “en” ” wl”, infatti se si digita il comando:

sudo dmesg | grep -i eth
sudo dmesg | grep -i wl

si può leggere che le interfacce vengono rinominate partendo da eth0 e wlan0. Personalmente conosco due modi funzionanti per ritornare al vecchio standard.

Metodo 1

questo modo dovrebbe funzionare nella maggior parte dei casi e si limita a fare una piccola aggiunta a grub:

sudo nano /etc/default/grub

ed aggiungere

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

come sotto:

GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"

generare un nuovo file di configurazione di grub, e riavviare.

sudo grub-mkconfig -o /boot/grub/grub.cfg
sudo reboot

se tutto è andato bene le interfacce saranno eth0 e wlan0. Se si usa il dhcp non c’è bisogno di modificare nulla, in caso di ip statico, si utilizza il solito metodo:

sudo nano /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
dns-nameservers 192.168.1.1
gateway 192.168.1.1
Metodo 2

questo metodo da utilizzare in alternativa al primo, consiste nell’andare a trovare i nomi ed i percorsi delle attuali schede di rete, per poi manualmente creare due file che conterranno i nuovi nomi.

sudo udevadm info /sys/class/net/nome_interfaccia

il comando sopra ci trova i dati che ci interessano:

E: ID_PATH=pci-0000:03:00.0
E: ID_PATH_TAG=pci-0000_03_00_0

di conseguenza potremo creare il file manualmente:

sudo nano /etc/systemd/network/10-rename-nome_interfaccia

ed aggiungere come esempio sotto

per eth0:

[Match]
Path=pci-0000:03:00.0
pci-0000_03_00_0
[Link]
Name=eth0

o questo per wlan0

[Match]
Path=pci-0000:05:00.0
pci-0000_05_00_0
[Link]
Name=wlan0

dopo il riavvio il nome delle interfacce di rete saranno viste permanentemente con il vecchio standard. In realtà ci sarebbe anche un altro metodo, più semplice 🙂 e cioè uno script bash che fa tutto da solo:

Metodo semplice

sempre in alternativa al primo

git clone https://github.com/fconidi/rename-interfaces.git
cd rename-interfaces/
chmod +x rename-interfaces.sh
sudo ./rename-interfaces.sh
sudo reboot

Cambiare nome interfaccia di rete a eth0 su Debian 12

enjoy 😉

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Convertire Fumetti Cbr/Cbz in PdfConvertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Uno dei problemi più comuni che gli utenti devono affrontare è la conversione dei file di immagine di fumetti, come i file CBR e CBZ, in formato PDF. Per questo ho creato AllCbrztoPdf, uno script Bash che semplifica notevolmente questo processo. Lo script in questione è stato progettato per eseguire automaticamente la conversione di file CBR e CBZ in formato PDF, utilizzando una serie di comandi Bash standard, rendendo la conversione di grandi quantità di file una questione semplice e veloce.
L’esecuzione dello script è semplice. una volta eseguito scaricherà ed installerà i programmi che servono, per le distribuzioni come Debian based e SysLinuxOS,  poi chiederà all’utente di selezionare una cartella principale tramite Zenity e, successivamente, avvierà la conversione di tutti i file CBR e CBZ in formato PDF all’interno della cartella e delle sue sottocartelle.
Durante la conversione, lo script visualizzerà l’avanzamento tramite pv e creerà un unico file PDF combinato utilizzando pdftk. Infine, lo script salverà il file PDF risultante nella stessa cartella in cui si trovava il file originale. Di default lascerà solo i files PDF e cancellerà TUTTI i file CBR e CBZ.

Download ed utilizzo via GitHub

$ git clone https://github.com/fconidi/AllCbrztoPdf.git
$ cd AllCbrztoPdf/
$ chmod +x allcbrztopdf.sh
$ ./allcbrztopdf.sh

Download ed utilizzo anche via Sourceforge

AllCbrztoPdf script completo:

per le distribuzioni NON Debian based, si possono commentare/eliminare le stringhe con sudo, ed installare i pacchetti tramite il proprio gestore.

Se si volesse mantenere i file CBR/CBZ basta commentare la stringa in fondo rm “$file”

#!/bin/bash
set -xev
sudo apt update
sudo apt upgrade -y
sudo apt install -y pv imagemagick pdftk img2pdf unrar-free rar unrar p7zip-full

# Select the root folder
folder=$(zenity --file-selection --directory --title="Select the root folder")

# Rename all files .cbr to .rar and .cbz to .zip (recursively)
find "$folder" -type f -name "*.cbr" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbr" -execdir mv '{}' '{}'.rar \;
find "$folder" -type f -name "*.cbz" -execdir rename 's/ /_/g' '{}' \;
find "$folder" -type f -name "*.cbz" -execdir mv '{}' '{}'.zip \;

# Convert all files .cbr and .cbz to PDF (recursively)
find "$folder" -type f \( -name "*.rar" -o -name "*.cbr" -o -name "*.zip" -o -name "*.cbz" \) |
while read file; do
ORIGINAL_FOLDER=$(dirname "$file")
TMP_FOLDER=$(mktemp -d)
cd "$TMP_FOLDER"
case "$file" in
*.rar|*.cbr)
unrar e "$file" "$TMP_FOLDER"
;;
*.zip|*.cbz)
unzip -j "$file" -d "$TMP_FOLDER"
;;
esac
ls -1 ./*jpg ./*jpeg ./*png | pv -lep -s $(ls -1 ./*jpg ./*jpeg ./*png | wc -l) | xargs -L1 -I {} img2pdf {} -o {}.pdf
pdftk *.pdf cat output combined.pdf
cp "$TMP_FOLDER/combined.pdf" "$ORIGINAL_FOLDER/$(basename "$file" .cbr | sed 's/.rar$//;s/.zip$//;s/.cbz$//').pdf"
rm -rf "$TMP_FOLDER"
rm "$file"
done

zenity --info --text="Conversion completed!"

PS: script aggiornato su GitHub o SourceForge

 

Convertire Fumetti Cbr/Cbz in Pdf con AllCbrztoPdf

Video:

 

enjoy 😉

 

Fix error Possible missing firmware /lib/firmware/i915

 

Fix error Possible missing firmware /lib/firmware/i915Fix error Possible missing firmware /lib/firmware/i915

 

Questi tipo di errori sono presente oramai da qualche anno e si presentano quando si lancia il comando:

sudo update-initramfs -u

questi errori segnalano che ci sono dei firmware mancanti e si riferiscono alle microarchitetture intel come:

Sky Lake, Broxton, Kaby Lake, Commet Lake, Ice Lake, Elkhart Lake, Tiger Lake, Gemini Lake, Alder Lake,Arc Alchemist.

Per risolvere il problema su Debian, SysLinuxOS ed altre distro, basta scaricare da GitHub il mio script bash, che si occuperà di scaricare tutti i firmware .bin, compararli con quelli già presenti, per poi copiare solamenti quelli mancanti in /lib/firmware/i915.

Per utilizzare fixi915.sh eseguire i seguenti comandi:

$ git clone https://github.com/fconidi/fix-firmware-i915.git
$ cd fix-firmware-i915/
$ chmod +x fixi915.sh
$ ./fixi915.sh

questo è tutto!

 

Di seguito lo script completo:

 

#!/bin/bash

# Source: https://francoconidi.it/fix-error-possible-missing/
# Source: https://syslinuxos.com

# Install curl, wget, lynx

sudo apt update; sudo apt install -y wget curl lynx

# folder creation
mkdir /home/$USER/i915; cd /home/$USER/i915

# Download the web page and use lynx to extract the HTTP/HTTPS links

lynx -dump "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/i915/" | grep -o 'https\?://[^ ]*\.bin' > /home/$USER/i915/links.txt

# Download the .bin files from the list of links
while read -r line
do
# Extract the filename from the link
filename=$(basename "$line")

# Download the file from the link using curl
curl -OJL "$line"

# Rename the downloaded file to its original name
mv "$filename" "${filename%.*}.bin"
done < "links.txt"

# Two folders to compare
folder1="/home/$USER/i915"
folder2="/lib/firmware/i915/"

# Check folders
if [ ! -d "$folder1" ]; then
echo "Error: First folder does not exist."
exit 1
fi

if [ ! -d "$folder2" ]; then
echo "Error: Second folder does not exist."
exit 1
fi

# Cycle through the files in the first folder
for file1 in "$folder1"/*.bin; do
# Extract the filename without the path
filename="$(basename "$file1")"
# Check if the file exists in the second folder
if [ ! -f "$folder2/$filename" ]; then
# Copy the missing file into the second folder
sudo cp "$file1" "$folder2"
echo "The file $filename has been copied to the second folder."
fi
done

echo "The check has been completed."

# Update initramfs
sudo update-initramfs -u

echo "Fix missing firmware has been completed."

 

Fix error Possible missing firmware /lib/firmware/i915

 

enjoy 😉

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

 

Condividere terminale via Browser con ttyd

Guida su come condividere il proprio terminale via web browser utilizzando ttyd. Questo trucco è molto utile soprattutto se si vuole mostrare il terminale e di conseguenza renderlo leggibile a tutti, utilizzando lo zoom del proprio browser.

$ sudo apt update
$ sudo apt-get install build-essential cmake git libjson-c-dev libwebsockets-dev
$ git clone https://github.com/tsl0922/ttyd.git
$ cd ttyd
$ mkdir build; cd build
$ cmake ..
$ sudo make; sudo make install

Avviare da terminale con il comando:

$ ttyd -p 8080 bash

poi aprire il browser all’indirizzo:

http://localhost:8080

e continuare ad eseguire i comandi nella pagina web.

enjoy 😉

 

Speedtest da teminale in Linux con Testspeed

 

Speedtest da teminale in Linux con Testspeed

Speedtest da teminale in Linux con Testspeed

Qualche tempo fa avevo scritto un post su come effettuare uno speedtest da terminale, utilizzando speedtest-cli. Adesso utilizzo anche un'altro programmino in python, che si chiama Testspeed. Anche questo si appoggia a speedtest.net.

Installazione:

$ sudo apt-get install git python-lxml python-argparse
$ git clone git://github.com/Janhouse/tespeed.git
$ cd tespeed
$ git submodule init
$ git submodule update

Utilizzo:

$ cd tespeed/
$ ./tespeed.py

per una lista di server disponibili utilizzare:

$ ./tespeed.py -ls
edmond@debianbox:~/tespeed$ ./tespeed.py -ls
Getting ready
Printing CSV formated results to STDOUT.
Loading speedtest configuration...
IP: 151.66.XXX.XXX; Lat: 45.626800; Lon: 9.053600; ISP: WIND
Loading server list...
1. https://speedtest.siportal.it/speedtest/ (SIPORTAL SRL, Milano, Italy) [23.02 km]
2. https://speedtest.cheapnet.it/speedtest/ (CWNET, Milan, Italy) [23.54 km]
3. https://speedtestmi1.telecomitalia.it/speedtest/ (Telecom Italia S.p.A., Milan, Italy) [23.54 km]
4.  (H3G, Milan, Italy) [23.54 km]
5.  (Fastweb SpA, Milan, Italy) [23.54 km]
6. https://speedtest.vodafone.it/speedtest/speedtest/ (Vodafone IT, Milan, Italy) [23.54 km]
7.  (Join srl, Milan, Italy) [23.54 km]
8.  (ItaliaOnline, Milan, Italy) [23.54 km]
9. https://79.171.160.66/speedtest/speedtest/ (Linkem SPA, Milan, Italy) [23.54 km]
10.  (CDLAN S.R.L., Milan, Italy) [23.54 km]

per utilizzare il server vodafone:

$ ./tespeed.py https://speedtest.vodafone.it/speedtest/speedtest/

Speedtest da teminale in Linux con Testspeed

enjoy 😉

 

Copiare un file contemporaneamente in più directory

 

Per copiare un file contemporaneamente in più directory, si può scegliere di usare il comando xargs, a cui si dirà di eseguire un determinato comando più volte. Quindi invece di copiare con questi tre comandi:

 

$ cp file /percorso/dir1
$ cp file /percorso/dir2
$ cp file /percorso/dir3

 

se ne userà solamente uno:

 

$ echo /percorso/dir1 /percorso/dir2 /percorso/dir3 | xargs -n 1 cp -v file

 

enjoy 🙂

 

Confrontare il contenuto di due cartelle usando diff

 

Puo capitare di volere confrontare il contenuto di due cartelle simili, ed uno dei metodi potrebbe essere quello di usare il comando diff:

 

$ diff --suppress-common-lines -y <(cd /percorso/cartella1; find .|sort) <(cd /percorso/cartella2; find .|sort)

 

questo comando mostrerà nel terminale solo sul lato destro, le differenze tra le due cartelle. In caso di un output lungo è meglio redirigere il tutto in un file di testo:

 

$ diff --suppress-common-lines -y <(cd /percorso/cartella1; find .|sort) <(cd /percorso/cartella2; find .|sort) >confronto.txt

 

enjoy 😉

 

Generare codice QR per rete wifi da terminale

 

codice-qr

 

 

Per generare un codice QR della propria rete wifi ospiti, si può usare il terminale con l'aiuto di qrencode e zenity.

 

# apt-get install qrencode zenity

 

per creare il codice QR wifi:

 

$ qrencode -s 5 -o code-qr-wifi.png "WIFI:S:$(zenity --entry --text="Nome Rete (SSID)" --title="Creazione QR Wifi");T:WPA2;P:$(zenity --password --title="Password Wifi");;"

 

Qual'è il nome/password della mia rete ospiti?

 

enjoy 😉