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 😉

 

Informazioni sul terminale usando Archey e Debian Gnu/Linux

 

 

Per la visualizzazione all'interno del terminale di alcune informazioni di sistema, oltre a Screenfetch, che è più completo, e ad altre personalizzazioni varie, si può utilizzare Archey:

 

# apt-get install scrot

$ wget https://github.com/downloads/djmelik/archey/archey-0.2.8.deb

# dpkg -i archey*

$ archey

 

come al solito per averlo all'avvio del terminale, inserire in .bashrc:

 

#Archey
archey

 

enjoy 😉

 

Informazioni avanzate sul terminale usando Screenfetch e Debian Gnu/Linux

 

 

 

 

 

Ho fatto diverse guide sulla personalizzazione del terminale, ma a differenza delle altre con questa si vedranno molte più informazioni riguardanti la nostra Debian/LinuxBox.

 

# cd /usr/bin

# wget -c https://raw.github.com/KittyKatt/screenFetch/master/screenfetch-dev -O screenfetch

# chmod +x screenfetch

$ screenfetch

 

enjoy 😉

Aggiungere un logo Debian in tty1

 

 

 

 

# nano /etc/issue

 

per l'esempio sopra:

 

Debian GNU/Linux wheezy/sid \n \l

              █ █ █    █ █ █   █ █ █    █      █      █    █
              █    █   █       █    █   █     █ █     █ █  █
              █    █   █ █ █   █ █ █    █    █   █    █  █ █
              █    █   █       █    █   █   █ █ █ █   █   ██
              █ █ █    █ █ █   █ █ █    █  █       █  █    █

 

 

 

altri terminali personalizzati nell'apposita categoria.

 

enjoy 😉

Chiudere il terminale senza chiudere il programma

 

 

Se si avvia un'applicazione da terminale, nel momento in cui lo stesso viene chiuso, il programma in esecuzione verrà interrotto. Per ovviare a questa situazione si può ricorrere a questo accorgimento: ipotizzando che il programma aperto da terminale sia synaptic, premiamo:

 

Ctrl+Z

 

e poi, per svincolare il processo da chi lo ha lanciato:



disown -h %1

bg 1

 

dove 1 è il nomero del processo, come si vede sopra nell'immagine, da adesso in poi si potrà chiudere il terminale.

 

enjoy 😉

Terminali personalizzati Debian

 

Terminali personalizzati Debian, gli altri si possono trovare quà e quà.

 

 

 

Requisiti: installare figlet e toilet
 

# Colori:

black='\e[0;30m'
blue='\e[0;34m'
green='\e[0;32m'
cyan='\e[0;36m'
red='\e[0;31m'
purple='\e[0;35m'
brown='\e[0;33m'
lightgray='\e[0;37m'
darkgray='\e[1;30m'
lightblue='\e[1;34m'
lightgreen='\e[1;32m'
lightcyan='\e[1;36m'
lightred='\e[1;31m'
lightpurple='\e[1;35m'
yellow='\e[1;33m'
white='\e[1;37m'
nc='\e[0m'

# Prompt:

PS1='\[\033[01;32m\]\u\[\033[01;34m\]-\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]'

# Informazioni di Sistema

clear
echo -e "${lightred}";toilet --gay -f pagga "          Debian Box           ";
echo
echo
echo -ne "${lightblue}Oggi è:\t\t${lightblue}" `date`; echo ""
echo -e "${lightblue}Kernel : \t${lightblue}" `uname -smr`
echo
echo -e "${lightred}Debian  GNU/Linux ${NC}" `cat /etc/debian_version`
echo -e "${lightblue}"; cal -A 1

 

 

# Colori:

black='\e[0;30m'
blue='\e[0;34m'
green='\e[0;32m'
cyan='\e[0;36m'
red='\e[0;31m'
purple='\e[0;35m'
brown='\e[0;33m'
lightgray='\e[0;37m'
darkgray='\e[1;30m'
lightblue='\e[1;34m'
lightgreen='\e[1;32m'
lightcyan='\e[1;36m'
lightred='\e[1;31m'
lightpurple='\e[1;35m'
yellow='\e[1;33m'
white='\e[1;37m'
nc='\e[0m'

# Prompt:

PS1='\[\033[01;32m\]\u\[\033[01;34m\]-\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]'

# Informazioni di Sistema:

clear
echo -e "";
echo -e "${red}              █ █ █    █ █ █   █ █ █    █      █      █    █";
echo -e "              █    █   █       █    █   █     █ █     █ █  █";
echo -e "              █    █   █ █ █   █ █ █    █    █   █    █  █ █";
echo -e "              █    █   █       █    █   █   █ █ █ █   █   ██";
echo -e "              █ █ █    █ █ █   █ █ █    █  █       █  █    █";
echo -e "";
echo -e "";
echo -ne "${lightblue}Oggi è:\t\t${lightblue}" `date`; echo ""
echo -e "${lightblue}Kernel : \t${lightblue}" `uname -smr`
echo
echo -e "${lightred}Debian  GNU/Linux ${NC}" `cat /etc/debian_version`
echo -e "${lightblue}"; cal -A1

 

 

PS1='\[\033[01;32m\]\u\[\033[01;34m\]-\[\033[01;31m\]\h\[\033[00;34m\]{\[\033[01;34m\]\w\[\033[00;34m\]}\[\033[01;32m\]:\[\033[00m\]'

rosso='\e[1;31m'
NC='\e[0m'

echo -e "";
echo -e "${rosso}              █ █ █    █ █ █   █ █ █    █      █      █    █";
echo -e "              █    █   █       █    █   █     █ █     █ █  █";
echo -e "              █    █   █ █ █   █ █ █    █    █   █    █  █ █";
echo -e "              █    █   █       █    █   █   █ █ █ █   █   ██";
echo -e "              █ █ █    █ █ █   █ █ █    █  █       █  █    █";
echo -e "";
echo -e "${rosso}Debian  GNU/Linux ${NC}" `cat /etc/debian_version`

 

 

enjoy 😉