Migration
This commit is contained in:
parent
13bfd5dc7e
commit
3d3b71378b
32 changed files with 2024 additions and 0 deletions
28
README.md
28
README.md
|
@ -0,0 +1,28 @@
|
|||
# Scripts
|
||||
|
||||
## [track](https://git.mux.re/T0MuX/scripts/src/branch/master/track)
|
||||
Outil de suivi de colis
|
||||
|
||||
![](https://zupimages.net/up/19/22/xypt.png)
|
||||
|
||||
## [shufflizer](https://git.mux.re/T0MuX/scripts/src/branch/master/shufflizer)
|
||||
Shufflization d'un répertoire de musique...
|
||||
|
||||
![](https://zupimages.net/up/19/48/3q1z.png)
|
||||
|
||||
## [plaque](https://git.mux.re/T0MuX/scripts/src/branch/master/plaque)
|
||||
Obtenir le modèle d'une voiture, ou d'une moto, grâce à sa plaque d'immatriculation
|
||||
|
||||
![](https://zupimages.net/up/19/22/rm8e.png) ![](https://zupimages.net/up/19/22/bo9i.png) ![](https://zupimages.net/up/19/22/01gx.png)
|
||||
|
||||
## scan-st
|
||||
Script de scan automatisé. Très pratique quand on possède un scanner classique et qu'on a besoin de scanner des documents pour le travail comme par exemple des PV d'interventions (ce pourquoi il a été écrit à la base)
|
||||
|
||||
## tcs - "T0MuX Control Script"
|
||||
Une sorte de sur-couche à mon WM
|
||||
|
||||
## tiregom
|
||||
Un script pour rechercher des pneus rapidement sur Tiregom (script actuellement optimisé à mon utilisation personnelle)
|
||||
|
||||
## week
|
||||
Reverse-engineering bash de https://estcequecestbientotleweekend.fr :p
|
15
arch-myinstall.sh
Executable file
15
arch-myinstall.sh
Executable file
|
@ -0,0 +1,15 @@
|
|||
#!/bin/bash
|
||||
echo -e "\nInstallation..."
|
||||
|
||||
# ATTENTION : retirer riot-desktop (electron) sur archlinux32
|
||||
|
||||
# ATELIER / PC PRINCIPAL
|
||||
#pacstrap /mnt base base-devel dhcpcd linux linux-headers grub git nano python-pip mps-youtube xterm xorg-server xorg-xinit i3 thunar thunar-volman thunar-archive-plugin gvfs gvfs-mtp gvfs-smb samba cups firefox firefox-i18n-fr libreoffice-still libreoffice-still-fr nextcloud-client lutris wine mpv xarchiver epdfview papirus-icon-theme lxappearance feh moc conky slock dunst numlockx parcellite alsa-utils rofi riot-desktop virtualbox nfs-utils remmina freerdp rsync transset-df gnome-keyring sshfs picom thunar ncdu ttf-liberation terminus-font arc-gtk-theme geany thunderbird thunderbird-i18n-fr networkmanager network-manager-applet netorkmanager-openvpn ruby
|
||||
|
||||
# LAPTOP XFCE
|
||||
#pacstrap /mnt base base-devel dhcpcd linux linux-headers grub git nano python-pip mps-youtube xterm xorg-server xorg-xinit xfce4 xfce4-goodies gvfs-mtp gvfs-smb samba cups firefox firefox-i18n-fr libreoffice-still libreoffice-still-fr nextcloud-client lutris wine mpv xarchiver epdfview papirus-icon-theme moc numlockx parcellite alsa-utils riot-desktop nfs-utils remmina freerdp rsync sshfs ncdu ttf-liberation terminus-font arc-gtk-theme papirus-icon-theme geany thunderbird thunderbird-i18n-fr networkmanager network-manager-applet netorkmanager-openvpn pavucontrol ruby
|
||||
|
||||
echo -e "\nGeneration du fstab..."
|
||||
genfstab -U /mnt >> /mnt/etc/fstab
|
||||
|
||||
echo "ARCH-CHROOT TIME!"
|
51
arch-myinstall2.sh
Executable file
51
arch-myinstall2.sh
Executable file
|
@ -0,0 +1,51 @@
|
|||
#!/bin/bash
|
||||
|
||||
hostname=atelier-pc
|
||||
|
||||
echo -e "\nPacman..."
|
||||
sed -i s/#Color/Color\\nILoveCandy/ /etc/pacman.conf
|
||||
sed -i s/#TotalDownload/TotalDownload/ /etc/pacman.conf
|
||||
sed -i s/CheckSpace/#CheckSpace/ /etc/pacman.conf
|
||||
|
||||
echo -e "\nFuseau horaire..."
|
||||
ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
|
||||
|
||||
echo -e "\nHardware clock..."
|
||||
hwclock --systohc
|
||||
|
||||
echo -e "\nLocale & keymap..."
|
||||
echo "LANG=fr_FR.UTF-8" > /etc/locale.conf
|
||||
echo "fr_FR.UTF-8 UTF-8" > /etc/locale.gen
|
||||
echo "KEYMAP=fr-latin9" > /etc/vconsole.conf
|
||||
echo "FONT=ter-218b" >> /etc/vconsole.conf
|
||||
echo "FONT_MAP=8859-15" >> /etc/vconsole.conf
|
||||
sed -i 's/fsck)/fsck consolefont)/' /etc/mkinitcpio.conf
|
||||
locale-gen
|
||||
|
||||
echo -e "\nHostname & host..."
|
||||
echo $hostname > /etc/hostname
|
||||
echo -e "127.0.0.1\tlocalhost\n::1\tlocalhost\n127.0.1.1\t${hostname}.localdomain\t${hostname}" >> /etc/hosts
|
||||
|
||||
echo -e "\nServices..."
|
||||
systemctl enable org.cups.cupsd
|
||||
systemctl enable sshd
|
||||
|
||||
echo -e "\nInitramfs..."
|
||||
mkinitcpio -p linux
|
||||
|
||||
echo -e "\nBoot Loader...\n"
|
||||
sudo fdisk -l | grep "/dev/"
|
||||
echo
|
||||
read -p "Sur quel disque ? " dev
|
||||
grub-install $dev
|
||||
grub-mkconfig -o /boot/grub/grub.cfg
|
||||
|
||||
echo -e "\nRoot Password..."
|
||||
passwd
|
||||
|
||||
echo -e "\nT0MuX user, password and sudo"
|
||||
useradd -m -G wheel,sys t0mux
|
||||
passwd t0mux
|
||||
sed -i 's/# %wheel ALL=(ALL) ALL/%wheel ALL=(ALL) ALL/
|
||||
|
||||
echo -e "\nFin du script.\n"
|
40
cl1p/cl1p.sh
Executable file
40
cl1p/cl1p.sh
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Nom du clip utilisé et url
|
||||
cat ~/.cl1p &>/dev/null
|
||||
if [ $? -eq 0 ]
|
||||
then id=`cat ~/.cl1p`
|
||||
else read -p "Choisissez un nom pour votre cl1p : " id
|
||||
echo $id > ~/.cl1p
|
||||
echo "L'url de votre cl1p est https://cl1p.net/$id"
|
||||
echo -e "Vous pouvez le modifier en éditant le fichier ~/.cl1p\n"
|
||||
fi
|
||||
|
||||
url=https://cl1p.net/$id
|
||||
tmp=$HOME/.cl1p_tmp
|
||||
|
||||
# Fonction print du contenu du cl1p
|
||||
printclip() {
|
||||
cat $tmp|iconv -f latin1 -t utf-8
|
||||
}
|
||||
|
||||
# RECUPERER LE CL1P
|
||||
curl -s https://api.cl1p.net/$id > $tmp
|
||||
size=`wc -c $tmp | cut -d\ -f1`
|
||||
if [ ${size} -gt 2 ]; then clip=1; else clip=0; fi
|
||||
|
||||
case $clip in
|
||||
0) echo -e "Saisir le contenu et appuyer sur Ctrl+D :\n"
|
||||
# ttl = time to live en MINUTES
|
||||
# cat | curl --data "ttl=0&content=$(</dev/stdin)" $url &> /dev/null
|
||||
cat | curl --data "ttl=0&content=$(</proc/self/fd/0)" $url &> /dev/null
|
||||
echo -e "\nClip envoyé à $url"
|
||||
;;
|
||||
|
||||
1) printclip
|
||||
;;
|
||||
esac
|
||||
|
||||
# Ajouter menu New/Resend/Quit...
|
||||
|
||||
rm $tmp
|
6
cslan/README.md
Executable file
6
cslan/README.md
Executable file
|
@ -0,0 +1,6 @@
|
|||
# Scrit d'installation/config pour CS 1.6 LAN
|
||||
Prérequis : [cslan.zip](https://www.mux.re/share/cslan.zip) ... :D
|
||||
|
||||
Dézipper cslan.zip, et placer le script à coté des .exe, puis le lancer.
|
||||
|
||||
Un script pour Windows vera également le jour, notamment pour la partie configuration de CS.
|
62
cslan/install-linux.sh
Executable file
62
cslan/install-linux.sh
Executable file
|
@ -0,0 +1,62 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Script d'installation et de configuration automatisé pour CS 1.6 Lan, avec Wine sur Linux
|
||||
# Il faut posséder les fichiers suivants :
|
||||
# - cslan-HL143lite.exe
|
||||
# - cslan-CS16lan.exe
|
||||
# - cslan-pack_amx3.exe
|
||||
# - cslan-patch143.exe
|
||||
|
||||
|
||||
# Fonction config qui peut aussi etre appelée par 'install-linux.sh cfg'
|
||||
|
||||
config() {
|
||||
read -n1 -p "Configurer la partie ? (O/n)" ch
|
||||
case $ch in
|
||||
o|O) echo;;
|
||||
|
||||
n|N) echo;;
|
||||
|
||||
*) echo MAUVAIS CHOIX.; exit;;
|
||||
|
||||
esac
|
||||
|
||||
exit
|
||||
}
|
||||
|
||||
if [ $1 = cfg ]; then config; fi
|
||||
|
||||
if [ ! -f /usr/bin/wine ]
|
||||
then
|
||||
read -n1 -p "Wine n'est pas installé. Voulez vous l'installer maintenant ? (O/n)" ch
|
||||
case $ch in
|
||||
o|O) if [ -f /usr/bin/pacman ]; then sudo pacman -Sy wine --noconfirm; fi
|
||||
if [ -f /usr/bin/apt ]; then sudo apt update; sudo apt -y install wine; fi
|
||||
if [ -f /usr/bin/emerge ]; then sudo emerge wine; fi
|
||||
if [ -f /usr/bin/yum ]; then sudo yum -y wine; fi
|
||||
;;
|
||||
n|N) exit;;
|
||||
*) echo Mauvais choix.; exit;;
|
||||
esac
|
||||
fi
|
||||
|
||||
if [ -f /usr/bin/pacman ] && [ ! -d /usr/lib32/gstreamer-1.0 ]; then sudo pacman -Sy --noconfirm lib32-gst-plugins-base; fi
|
||||
|
||||
echo Installation de Half Life 1.4.3 Lite...
|
||||
env WINEPREFIX=~/.cslan wine cslan-HL143lite.exe > /dev/null
|
||||
|
||||
echo Installation de Counter Strike 1.6 LAN...
|
||||
env WINEPREFIX=~/.cslan wine cslan-CS16lan.exe > /dev/null
|
||||
|
||||
echo Installation du Pack AMX v3...
|
||||
env WINEPREFIX=~/.cslan wine cslan-pack_amx3.exe > /dev/null
|
||||
|
||||
echo Installation du Patch nosteam...
|
||||
env WINEPREFIX=~/.cslan wine cslan-patch143.exe > /dev/null
|
||||
|
||||
echo Activation de la console avec la touche L...
|
||||
echo "bind \"l\" \"toggleconsole\"" > "~/.cslan/drive_c/Program Files (x86)/Valve Lan/cstrike/userconfig.cfg"
|
||||
echo
|
||||
|
||||
echo "GO LAAAAAAAAAAAN !!!! :D"
|
||||
echo
|
3
ftech/ftech.sh
Executable file
3
ftech/ftech.sh
Executable file
|
@ -0,0 +1,3 @@
|
|||
# projet ftech, récupération de fiches techniques
|
||||
# depuis zeperfs, autotitre
|
||||
# en cours...
|
31
install.sh
Executable file
31
install.sh
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Script d'installation pour les scripts suivants :
|
||||
# - mux-shufflizer
|
||||
# - mux-track
|
||||
# - plaque
|
||||
# - tiregom
|
||||
|
||||
source=$(dirname $0)
|
||||
|
||||
if [ "$1" = "uninstall" ]; then sudo rm -v /usr/bin/{shufflizer,track,plaque,tiregom}; sudo rm /etc/mux-scripts; exit; fi
|
||||
|
||||
echo
|
||||
echo Installation des scripts...
|
||||
echo
|
||||
if [ -f "/etc/mux-scripts" ]; then maj=1; else maj=0; fi
|
||||
sudo cp -v $source/shufflizer/shufflizer.sh /usr/bin/shufflizer
|
||||
sudo cp -v $source/track/track.sh /usr/bin/track
|
||||
sudo cp -v $source/plaque/plaque.sh /usr/bin/plaque
|
||||
sudo cp -v $source/tiregom/tiregom.sh /usr/bin/tiregom
|
||||
sudo touch /etc/mux-scripts
|
||||
echo
|
||||
if [ $maj = 0 ]; then echo "Installation OK."; else echo "Mise à jour OK."; fi
|
||||
echo "Vous pouvez aussi mettre à jour les scripts en exécutant cette commande :"
|
||||
if [ "$source" != "." ]; then echo "cd $source"; fi
|
||||
echo "git pull"
|
||||
echo "./install.sh"
|
||||
echo
|
||||
echo "Pour désinstaller les scripts, exécutez simplement :"
|
||||
echo "./install.sh uninstall"
|
||||
echo
|
41
plaque/README.md
Executable file
41
plaque/README.md
Executable file
|
@ -0,0 +1,41 @@
|
|||
# plaque
|
||||
## Introduction
|
||||
Obtenir le modèle d'une voiture, ou d'une moto (pas encore fonctionnel), grâce à sa plaque d'immatriculation.
|
||||
Le script ne fait rien d'illégal, il parcours simplement les sites Oscaro, Yakarouler et Pieces auto à votre place pour ne récupérer que le modèle en fonction de la plaque (il utilise la fonction "recherche par plaque" de chaque site).
|
||||
Pour s'en servir, il suffit de lancer le script, et de saisir la plaque. Le script propose aussi de rechercher les fiches techniques correspondantes, et enregistre un historique des recherches.
|
||||
|
||||
## Installation sur Android
|
||||
Si vous partez de 0, il faut d'abord installer Termux, puis ensuite récupérer le script via le dépôt, et enfin faire un raccourci. Tout est expliqué ci-dessous.
|
||||
### Installer Termux
|
||||
Termux est accessible depuis n'importe quel store : [Play](https://play.google.com/store/apps/details?id=com.termux&hl=fr), [F-Droid](https://f-droid.org/fr/packages/com.termux/), [Aptoide](https://termux.fr.aptoide.com/)... Donc il suffit de le télécharger et l'installer.
|
||||
### Récupération du script
|
||||
Pour récupérer le script, il va falloir récupérer tout le dépot avec l'outil **git**
|
||||
* Ouvrir termux
|
||||
* Installer git en saisissant la commande suivante : `apt install git -y`
|
||||
* Récupérer ensuite le dépôt : `git clone https://git.mux.re/T0MuX/scripts`
|
||||
* Créer le dossier des raccourcis termux : `mkdir .shortcuts`
|
||||
* Copier le script dans le dossier : `cp ./scripts/plaque/plaque.sh ./.shortcuts/plaque`
|
||||
* Fermer termux en tapant `exit`, ou en déroulant le menu des notification et en appuyant sur Exit en dessous de "Termux"
|
||||
* Sur l'écran d'accueil, ajouter un widget "Termux shortcut"
|
||||
* Choisir "plaque" dans la liste, et c'est joué :)
|
||||
|
||||
![](https://zupimages.net/up/19/25/4b57.png)
|
||||
|
||||
## Utilisation
|
||||
Quand le script se lance, on a directement une invite à la saisie pour la plaque. On peut aussi saisir les commandes suivantes :
|
||||
```
|
||||
? aide
|
||||
h historique
|
||||
sh supprimer historique
|
||||
q quitter
|
||||
```
|
||||
|
||||
## Exemples
|
||||
### GNU/Linux (Manjaro)
|
||||
![](https://zupimages.net/up/19/22/l0dv.png) ![](https://zupimages.net/up/19/22/ccf5.png) ![](https://zupimages.net/up/19/22/it6n.png)
|
||||
|
||||
### MSYS2 / Cygwin / Bash for windows
|
||||
![](https://zupimages.net/up/19/22/rm8e.png) ![](https://zupimages.net/up/19/22/bo9i.png) ![](https://zupimages.net/up/19/22/01gx.png)
|
||||
|
||||
### Termux (Android)
|
||||
![](https://zupimages.net/up/19/22/vkgz.png) ![](https://zupimages.net/up/19/22/shbe.png)
|
242
plaque/plaque.sh
Executable file
242
plaque/plaque.sh
Executable file
|
@ -0,0 +1,242 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Couleurs
|
||||
N="\e[0m"
|
||||
V="\e[92m"
|
||||
J="\e[93m"
|
||||
R="\e[31m"
|
||||
B="\e[94m"
|
||||
BC="\e[34m"
|
||||
|
||||
cat=" " # Pour que la variable $cat prenne autant de place dans le script que sur le stdout...
|
||||
type=A # type Auto par défaut
|
||||
oscflag=0; ccashaflag=0; paflag=0 # déclaration des variables "flag"
|
||||
|
||||
logo() {
|
||||
echo -e $J" _____ _"
|
||||
echo "| __ \| |"
|
||||
echo "| |__) | | __ _ __ _ _MuX_ ___"
|
||||
echo "| ___/| |/ _\` |/ _\` | | | |/ _ \\"
|
||||
echo "| | | | (_| | (_| | |_| | __/"
|
||||
echo "|_| |_|\__,_|\__, |\__,_|\___|"
|
||||
echo " $cat| |"
|
||||
echo " |_|"
|
||||
}
|
||||
|
||||
clear; logo
|
||||
#echo; read -p "Auto / Moto ? (A/M) " typech # Je commente tant que je ne trouve pas de site de moto qui fait de la recherche de modèle par plaque
|
||||
if [ -z $typech ]
|
||||
then type=A
|
||||
cat=Auto
|
||||
else
|
||||
if [ $typech = M ] || [ $typech = m ]
|
||||
then type=M
|
||||
cat=Moto
|
||||
fi
|
||||
fi
|
||||
|
||||
# Debut de la grande boucle
|
||||
while :
|
||||
do
|
||||
clear;logo
|
||||
|
||||
# Saisie plaque
|
||||
echo -e -n "${B}# Plaque: $N"
|
||||
if [ -z $plkreplay ]; then read plk; else plk=$plkreplay; plkreplay=; fi
|
||||
|
||||
# Test entrée & exec commandes
|
||||
if [ "$plk" = q ] || [ "$plk" = e ]; then echo; exit; fi
|
||||
|
||||
if [ "$plk" = h ]
|
||||
then clear; logo; echo -e "${V}Historique des plaques recherchées :$J"
|
||||
if [ $type = M ]
|
||||
then if [ -f ~/.plkhm ]; then cat .plkhm; else echo -e "${J}vide$N";fi
|
||||
else if [ -f ~/.plkh ]
|
||||
then
|
||||
count=1
|
||||
total=$(cat ~/.plkh | wc -l)
|
||||
|
||||
while read -r line; do
|
||||
echo "$count) $line"
|
||||
if [ $count -eq $total ]; then break; fi
|
||||
((count++))
|
||||
done < ~/.plkh
|
||||
echo
|
||||
read -p "Rejouer une plaque ? (1-$total) / Retour menu ? (*) " plkch
|
||||
|
||||
if [ $plkch -gt 0 ] && [ $plkch -lt 100 ]
|
||||
then plkreplay=$(cat ~/.plkh | head -n${plkch} | tail -n1 | cut -d\ -f1)
|
||||
else echo
|
||||
fi
|
||||
|
||||
else
|
||||
echo -e "${J}vide$N"
|
||||
read
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$plk" = sh ]
|
||||
then clear; logo
|
||||
if [ $type = M ]
|
||||
then if [ -f ~/.plkhm ]; then rm .plkhm; echo -e "${J}Historique Moto supprimé.$N"; else echo -e "${J}déja vide$N"; fi
|
||||
else if [ -f ~/.plkh ]; then rm .plkh; echo -e "${J}Historique Auto supprimé.$N"; else echo -e "${J}déja vide$N"; fi
|
||||
fi
|
||||
read
|
||||
fi
|
||||
|
||||
if [ "$plk" = "?" ] || [ "$plk" = "help" ]; then
|
||||
clear; logo; echo -e "${V}Aide :$J\n"
|
||||
echo -e "$J ? - aide"
|
||||
echo -e "$J h - historique"
|
||||
echo -e "$J sh - supprimer historique"
|
||||
echo -e "$J q - quitter"
|
||||
fi
|
||||
|
||||
# Si aucune commande, lancer la recherche de plaque (ouverture du grand IF "recup info")
|
||||
if [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
|
||||
then
|
||||
|
||||
|
||||
# RECOLTE
|
||||
# Envoi des requetes pour récupérer les infos dans les variables
|
||||
|
||||
if [ $type = M ]
|
||||
then
|
||||
|
||||
# Surplusmoto https://www.surplusmotos.com
|
||||
# visiblement pas au point (version beta), re-essayer plus tard
|
||||
|
||||
# France Casse https://www.francecasse.fr/moto/pieces-moto.htm
|
||||
# pas au point non plus... faire tests plus tard
|
||||
|
||||
echo En cours de test/script...
|
||||
|
||||
|
||||
else
|
||||
echo -e "\nRecherche...\n"
|
||||
# Oscaro - HS
|
||||
#wget -qO- --post-data "plateValue=$plk&genartId=null" https://www.oscaro.com/Catalog/SearchEngine/GetPlateSearchResult 2>/dev/null | cut -d\" -f10 > osctmp
|
||||
#osc=`cat osctmp | head -n1`
|
||||
|
||||
# Carter-Cash - IN PROGRESS
|
||||
#wget -qO- --post-data "licensePlate=$plk&redirectUrl=https://www.carter-cash.com/pieces-auto/" https://www.carter-cash.com/carselector/licenseplate 2>/dev/null > ccashtmp
|
||||
#ccashtmp=`cat ccashtmp | grep title-car | awk -F"<|>" '{print $3}'`
|
||||
#yak2=`cat yaktmp | grep "Code moteur" | awk -F";|<" '{print $6}'`
|
||||
|
||||
# Pieces auto - TO CHECK
|
||||
wget -qO- "https://www.piecesauto.com/homepage/numberplate?value=$plk" > patmp 2>/dev/null
|
||||
pacarid=`awk -F":|}" '{print $2}' patmp`
|
||||
wget -qO- "https://www.piecesauto.com//common/seekCar?carid=$pacarid&language=fr" > patmp 2>/dev/null
|
||||
paurl=`cat patmp`
|
||||
wget -qO- "https://www.piecesauto.com$paurl" > patmp 2>/dev/null
|
||||
pa=`grep -A1 "$paurl#sommaire" patmp | sed -e 's/ / /g' -e 's/\t//g' | tr -d '\n' | awk -F'>|<' '{print $3}'`
|
||||
|
||||
# Mister Auto - IN PROGRESS
|
||||
curl "https://www.mister-auto.com/nwsAjax/Plate?immatriculation=$plk" > matmp 2>/dev/null
|
||||
ma1=
|
||||
ma2=
|
||||
|
||||
# Nettoyage des accents
|
||||
#yak1=`echo $yak1 | sed 's/Ë/Ë/'`
|
||||
#yak1=`echo $yak1 | sed 's/é/é/'`
|
||||
|
||||
# SORTIE
|
||||
newline=`echo -e "\n"`
|
||||
|
||||
# Oscaro
|
||||
osctest=`echo $osc | awk -F"<|>| " '{print $3}'`
|
||||
if [ "$osctest" = "HTML" ] || [ "$osctest" = "html" ] || [ "$osc" = "emptyIdPolTypesDictionnary" ] || [ "$osc" = "$newline" ]
|
||||
then echo -e "${V}- Oscaro\n${R}rien trouvé";oscflag=0
|
||||
else echo -e "${V}- Oscaro\n$J$osc$N";oscflag=1
|
||||
fi
|
||||
|
||||
# Yakarouler - à adapter à Carter-Cash
|
||||
#yaktest=`cat yaktmp | grep triangle | cut -d\ -f20`
|
||||
#if [ "$yaktest" = "aucun" ] || [ "$yak1" = "" ]
|
||||
# then echo -e "${V}- Yakarouler\n${R}rien trouvé";yakaflag=0
|
||||
# else echo -e "${V}- Yakarouler\n$J$yak1\nCode moteur $yak2$N";yakaflag=1
|
||||
#fi
|
||||
|
||||
# Pieces auto
|
||||
patest=`echo $pa`
|
||||
if [ "$patest" = "$newline" ]
|
||||
then echo -e "${V}- Pièces auto\n${R}rien trouvé$N";paflag=0
|
||||
else echo -e "${V}- Pièces auto\n$J$pa$N";paflag=1
|
||||
fi
|
||||
|
||||
|
||||
# Suppression des tmp et fermeture du IF "recup info"
|
||||
rm osctmp ccashtmp patmp
|
||||
fi
|
||||
fi
|
||||
|
||||
# Definition $model
|
||||
if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
|
||||
then
|
||||
model=
|
||||
if [ $oscflag = 1 ]; then model=`echo $osc | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; ccashflag=0; paflag=0; fi
|
||||
if [ $ccashflag = 1 ]; then model=`echo $ccash | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; paflag=0; fi
|
||||
if [ $paflag = 1 ]; then model=`echo $pa | awk -F' ' '{print $1" "$2" "$3" "$4" "$5}'`; fi
|
||||
fi
|
||||
|
||||
if [ $oscflag = 0 ] && [ $ccashflag = 0 ] && [ $paflag = 0 ] && [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
|
||||
then
|
||||
echo -e "\nAucune plaque trouvée !"
|
||||
sleep 2
|
||||
fi
|
||||
|
||||
# Proposition de chercher la fiche technique (si auto) sur zeperf (beta)
|
||||
if [ $type != M ]
|
||||
then
|
||||
|
||||
if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
|
||||
then
|
||||
echo; read -n1 -p "Fiche technique zeperf + autotitre ? (o/N) " ftch
|
||||
if [ "$ftch" = "o" ] || [ "$ftch" = "O" ]
|
||||
then
|
||||
if [ -f /c/Windows/explorer.exe ]; then cmdurl=explorer.exe; fi # MSYS2
|
||||
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
|
||||
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
|
||||
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; fi
|
||||
|
||||
# Recherche sur zeperf avec Qwant, avec le 1er site qui a trouvé la plaque
|
||||
if [ $oscflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; elif
|
||||
[ $ccashflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; elif
|
||||
[ $paflag = 1 ]; then $cmdurl "https://lite.qwant.com/?q=site:zeperfs.com $model&t=web"; $cmdurl "https://www.autotitre.com/redir-ft.php?q=$model"; fi
|
||||
|
||||
fi
|
||||
|
||||
fi
|
||||
|
||||
fi # test si != moto
|
||||
|
||||
# Ajout plaque en historique
|
||||
if [ "$plk" != "h" ] && [ "$plk" != "sh" ] && [ "$plk" != "help" ] && [ "$plk" != "?" ] && [ "$plk" != "" ]
|
||||
then
|
||||
|
||||
# Détection si plaque déjà recherchée, si oui ne pas la rajouter à nouveau
|
||||
grep -q $plk ~/.plkh
|
||||
if [ $? -eq 0 ]; then plkR=1; else plkR=0; fi
|
||||
|
||||
# Test si Moto (sinon Auto)
|
||||
if [ $type = M ]
|
||||
# Si Moto, juste mettre la plaque
|
||||
then echo "$plk" >> ~/.plkhm
|
||||
|
||||
# Si Auto, mettre plaque et modele
|
||||
else if [ $oscflag = 1 ] || [ $ccashflag = 1 ] || [ $paflag = 1 ]
|
||||
then
|
||||
if [ $plkR -eq 0 ]; then echo "$plk $model" >> ~/.plkh; fi
|
||||
fi
|
||||
fi # fermeture test si Moto
|
||||
|
||||
fi # fermeture test si commande au lieu de plaque
|
||||
|
||||
if [ "$plk" = "?" ]; then echo;echo "Appuyer sur une touche pour revenir..."; read; fi
|
||||
|
||||
# Remise des flags à 0
|
||||
oscflag=0; ccashflag=0; paflag=0
|
||||
|
||||
# Et on boucle !
|
||||
done
|
2
qbqmb/README.md
Executable file
2
qbqmb/README.md
Executable file
|
@ -0,0 +1,2 @@
|
|||
# QuteBrowser QuickMarks Browser #
|
||||
QBQMB est un navigateur de favoris (quickmarks) pour le navigateur QuteBrowser. Il est écrit en bash, et sa seule dépendance est dialog.
|
76
qbqmb/qbqmb.sh
Executable file
76
qbqmb/qbqmb.sh
Executable file
|
@ -0,0 +1,76 @@
|
|||
#!/bin/bash
|
||||
|
||||
## Vérification si dialog est installé
|
||||
if [ ! -f /usr/bin/dialog ] && [ ! -f /data/data/com.termux/files/usr/bin/dialog ]; then echo -e "\ndialog n'est pas installé.\n"; exit; fi
|
||||
|
||||
## chemin vers les quickmarks
|
||||
QMFILE=~/Sync/Conf/qb/quickmarks
|
||||
|
||||
## dialog 1 - filtre
|
||||
HEIGHT=15
|
||||
WIDTH=40
|
||||
CHOICE_HEIGHT=4
|
||||
BACKTITLE="QuteBrowser QuickMarks Browser"
|
||||
TITLE="QBQMB"
|
||||
MENU="Appliquer un filtre ?"
|
||||
|
||||
OPTIONS=(1 "Oui"
|
||||
2 "Non")
|
||||
|
||||
CHOICE=$(dialog --clear \
|
||||
--backtitle "$BACKTITLE" \
|
||||
--title "$TITLE" \
|
||||
--menu "$MENU" \
|
||||
$HEIGHT $WIDTH $CHOICE_HEIGHT \
|
||||
"${OPTIONS[@]}" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
clear
|
||||
case $CHOICE in
|
||||
1)
|
||||
echo "Saisir un filtre"
|
||||
# Saisir filtre via un read puis le réutiliser dans dialog 2
|
||||
;;
|
||||
2)
|
||||
# définition de $QM dont chaque array correspond à une ligne de $QMFILE
|
||||
mapfile -t QM <$QMFILE
|
||||
# awk '{print $NF}' Sync/Conf/qb/quickmarks
|
||||
# echo "${test##* }"
|
||||
read
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
## dialog 2 - quickmarks
|
||||
HEIGHT=15
|
||||
WIDTH=40
|
||||
CHOICE_HEIGHT=10
|
||||
TITLE="QBQMB"
|
||||
MENU="Choisir un quickmark:"
|
||||
|
||||
# ICI TROUVER comment récuperer la liste des quickmarks, peut etre avec un for
|
||||
OPTIONS=(1 "Option 1"
|
||||
2 "Option 2"
|
||||
3 "Option 3")
|
||||
|
||||
CHOICE=$(dialog --clear \
|
||||
--backtitle "$BACKTITLE" \
|
||||
--title "$TITLE" \
|
||||
--menu "$MENU" \
|
||||
$HEIGHT $WIDTH $CHOICE_HEIGHT \
|
||||
"${OPTIONS[@]}" \
|
||||
2>&1 >/dev/tty)
|
||||
|
||||
clear
|
||||
# ICI trouver un moyen d'exploiter les quickmarks trouvés (voir matrice variable bash?)
|
||||
case $CHOICE in
|
||||
1)
|
||||
echo "You chose Option 1"
|
||||
;;
|
||||
2)
|
||||
echo "You chose Option 2"
|
||||
;;
|
||||
3)
|
||||
echo "You chose Option 3"
|
||||
;;
|
||||
esac
|
35
qbqmb/qbqmb2.sh
Executable file
35
qbqmb/qbqmb2.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# définition du navigateur
|
||||
nav=qutebrowser
|
||||
|
||||
# définition du fichier d'options
|
||||
file=~/Sync/Conf/qb/quickmarks
|
||||
|
||||
# lecture des options à partir du fichier
|
||||
IFS_BACKUP=$IFS
|
||||
IFS=^
|
||||
options=()
|
||||
while read -r line; do
|
||||
#options+=("$line")
|
||||
# extraire le texte avant le dernier espace
|
||||
#text=$(echo "$line" | rev | cut -d ' ' -f2- | rev)
|
||||
#options+=("$text")
|
||||
text=$(echo "${line% *}^") # extraire le texte jusqu'au premier espace
|
||||
options+=("$text") # stocker le texte et la ligne complète comme 2 éléments distincts
|
||||
|
||||
done < "$file"
|
||||
|
||||
# affichage du menu et saisie de l'option choisie
|
||||
eval `resize`
|
||||
selected=$(whiptail --title "QB Quickmarks Browser" --menu "Sélectionnez une option :" $LINES $COLUMNS $(( $LINES - 8 )) "${options[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
# ouverture de l'URL sélectionnée dans le navigateur défini
|
||||
if [ $? = 0 ]; then
|
||||
# extraire l'URL correspondante dans le fichier d'options
|
||||
#url=$(grep -F "$selected" "$file" | cut -d ' ' -fNF)
|
||||
url=$(echo "$selected" | awk '{print $NF}')
|
||||
setsid $nav "$selected"
|
||||
fi
|
||||
|
||||
IFS=$IFS_BACKUP
|
219
scan-st/scan.sh
Executable file
219
scan-st/scan.sh
Executable file
|
@ -0,0 +1,219 @@
|
|||
#!/bin/bash
|
||||
# Laisser la boucle ci-dessous car elle permet au script de se répéter en entier
|
||||
while :; do
|
||||
count=
|
||||
|
||||
# Chemin par défaut
|
||||
defpath="/home/t0mux/Cloud/1-ATELIER/1-ST"
|
||||
# defpath="./scantest" # TEST
|
||||
|
||||
# Type document
|
||||
while true; do
|
||||
|
||||
clear
|
||||
echo "# Type de document ?";echo
|
||||
echo " 1) PV"
|
||||
echo " 2) BT"
|
||||
echo " 3) Autre";echo
|
||||
echo " G) Scanner via GUI"
|
||||
echo -e " C) Changer le chemin de sortie (${defpath})\n"
|
||||
if [ ! -z ${type} ]; then echo " i) Idem précédent ($type)"; fi
|
||||
read -n1 -p ">" ntype
|
||||
echo
|
||||
|
||||
case $ntype in
|
||||
1) type=PV;break
|
||||
;;
|
||||
2) type=BT;break
|
||||
;;
|
||||
3) read -p "Type=" type;break
|
||||
;;
|
||||
c|C) if [ -f /usr/bin/zenity ]
|
||||
then defpath=$(zenity --file-selection --directory)
|
||||
else echo -e "\nZenity n'est pas installé, impossible de changer le chemin par défaut.\n"
|
||||
fi
|
||||
;;
|
||||
g|G) if [ -f /usr/bin/simple-scan ]
|
||||
then simple-scan
|
||||
else echo -e "\nsimple-scan n'est pas installé. L'installer ? (O/n)"
|
||||
read -n1 -p ">" scinst
|
||||
if [ -z $scinst ]; then scinst=o; fi
|
||||
echo
|
||||
if [ "$scinst" = "o" -o "$scinst" = "O" ]
|
||||
then if [ -f /usr/bin/apt ]; then sudo apt update && sudo apt install simple-scan -y; fi
|
||||
if [ -f /usr/bin/pacman ]; then sudo pacman -Sy simple-scan; fi
|
||||
if [ ! -f /usr/bin/apt -a ! -f /usr/bin/pacman ]; then echo -e "\nAucun gestionnaire de paquet pris en charge (apt/pacman)\n" && sleep 3; fi
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
i|I) echo;break
|
||||
;;
|
||||
*)
|
||||
echo "MAUVAIS CHOIX !"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Particulier
|
||||
while true; do
|
||||
clear
|
||||
echo "Type=$type";echo
|
||||
echo "# Partenaire ?";echo
|
||||
echo " 1) AVA-IPS"
|
||||
echo " 2) BA2I"
|
||||
echo " 3) BugBusters"
|
||||
echo " 4) iTEC"
|
||||
echo " 5) JBS"
|
||||
echo " 6) Prestinfo"
|
||||
echo " 7) VTI"
|
||||
echo " 8) Autre"
|
||||
if [ ! -z ${part} ]; then echo " i) Idem précédent ($part)"; fi;echo
|
||||
read -n1 -p ">" npart
|
||||
|
||||
case $npart in
|
||||
1) part=AVA-IPS;break
|
||||
;;
|
||||
2) part=BA2I;break
|
||||
;;
|
||||
3) part=BugBusters;break
|
||||
;;
|
||||
4) part=iTEC;break
|
||||
;;
|
||||
5) part=JBS;break
|
||||
;;
|
||||
6) part=Prestinfo;break
|
||||
;;
|
||||
7) part=VTI;break
|
||||
;;
|
||||
8) read -p "Partenaire=" part;break
|
||||
;;
|
||||
i|I) echo;break
|
||||
;;
|
||||
*)
|
||||
echo "MAUVAIS CHOIX !"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Date
|
||||
while true; do
|
||||
clear
|
||||
echo "Type=$type | Partenaire=$part";echo
|
||||
echo "# Date ?";echo
|
||||
echo " 1) Aujourd'hui (`date +%d/%m/%y`)"
|
||||
echo " 2) Hier (`date -d "yesterday 13:00" '+%d/%m/%y'`)"
|
||||
echo " 3) Autre"
|
||||
if [ ! -z ${date} ]; then echo " i) Idem précédent ($date)"; fi
|
||||
read -n1 -p ">" ndate
|
||||
|
||||
case $ndate in
|
||||
1) date=`date +%y%m%d`;break
|
||||
;;
|
||||
2) date=`date -d "yesterday 13:00" '+%y%m%d'`;break
|
||||
;;
|
||||
3) echo; read -p "Date(DDMMYY)=" tmpdate
|
||||
date=${tmpdate:4:2}${tmpdate:2:2}${tmpdate:0:2}
|
||||
break
|
||||
;;
|
||||
i|I) echo;break
|
||||
;;
|
||||
*)
|
||||
echo "MAUVAIS CHOIX !"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Lieu
|
||||
while true; do
|
||||
clear
|
||||
echo "Type=$type | Partenaire=$part | Date=$date";echo
|
||||
echo "# Lieu ?";echo
|
||||
echo " 1) Gap"
|
||||
echo " 2) Chorges"
|
||||
echo " 3) Embrun"
|
||||
echo " 4) Laragne"
|
||||
echo " 5) Serres"
|
||||
echo " 6) Autre"
|
||||
if [ ! -z ${lieu} ]; then echo " i) Idem précédent ($lieu)"; fi
|
||||
read -n1 -p ">" nlieu
|
||||
|
||||
case $nlieu in
|
||||
1) lieu=Gap;break
|
||||
;;
|
||||
2) lieu=Chorges;break
|
||||
;;
|
||||
3) lieu=Embrun;break
|
||||
;;
|
||||
4) lieu=Laragne;break
|
||||
;;
|
||||
5) lieu=Serres;break
|
||||
;;
|
||||
6) read -p "Lieu=" lieu;break
|
||||
;;
|
||||
i|I) echo;break
|
||||
;;
|
||||
*)
|
||||
echo "MAUVAIS CHOIX !"
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Numero intervention
|
||||
clear
|
||||
echo "Type=$type | Partenaire=$part | Date=$date | Lieu=$lieu";echo
|
||||
if [ ! -z ${num} ]; then echo "Précédente intervention scannée : ${num} (i)"; fi
|
||||
read -p "Numéro intervention=" chnum
|
||||
if [ "$chnum" != "i" -a "$chnum" != "I" ]; then num=$chnum; fi
|
||||
|
||||
|
||||
# Préparation des variables et des dossiers
|
||||
rep1=20`echo ${date:0:2}-${date:2:2}`
|
||||
date2=`echo ${date:0:2}-${date:2:2}-${date:4:2}`
|
||||
rep2="${date2}_${lieu}"
|
||||
|
||||
filename="${date2}_${lieu}_${num}-${type}"
|
||||
path="${defpath}/${part}/${rep1}/${rep2}"
|
||||
|
||||
if [ -f "${path}/${filename}.jpg" ]
|
||||
then
|
||||
echo -e "\nLe fichier de destination existe déjà. Que faire ?"
|
||||
echo " E) Écraser"
|
||||
echo " I) Incrémenter"
|
||||
echo " A) Annuler"
|
||||
echo
|
||||
read -n1 -p "> " chex
|
||||
case $chex in
|
||||
e|E|é|É) echo;;
|
||||
i|I) count=2 # OK
|
||||
while :; do
|
||||
if [ -f "${path}/${filename}${count}.jpg" ]
|
||||
then ((count++))
|
||||
else
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
esac
|
||||
else
|
||||
count=
|
||||
fi
|
||||
|
||||
if [ ! -d "$path" ]; then mkdir -p "$path"; fi
|
||||
|
||||
# SCAN !
|
||||
clear
|
||||
echo "Type=$type$count | Partenaire=$part | Date=$date | Lieu=$lieu | Num inter=$num";echo
|
||||
echo;echo Lancer le scan en appuyant sur une touche...
|
||||
read
|
||||
|
||||
# Détection auto du scannerid
|
||||
scannerid=$(scanimage -L | grep device | cut -d\` -f2 | cut -d\' -f1)
|
||||
|
||||
# Détection manuelle du scannerid
|
||||
# lancer `scanimage -L` pour trouver "l'adresse sane" du scanner
|
||||
# commenter la ligne de la détection auto, et décommenter celle ci-dessous
|
||||
# scannerid=xxxxx:libusb:xxx:xxx
|
||||
|
||||
scanimage -d $scannerid --format jpeg --resolution 300 --mode Color >${path}/${filename}${count}.jpg && echo -e "\n${path}/${filename}.jpg scanné !\n" &
|
||||
|
||||
done
|
6
shufflizer/README.md
Executable file
6
shufflizer/README.md
Executable file
|
@ -0,0 +1,6 @@
|
|||
# MuX - Shufflizer
|
||||
.. est un script qui permet de "shufflizer" un dossier de musique.
|
||||
Certains ont pu constater que lors de la lecture aléatoire d'un dossier on pouvait souvent entendre plusieurs fois la même chanson, et jamais d'autres chansons... Cela se produit avec des lecteurs qui ne font que du "pur" aléatoire (VLC par exemple). Il existe bien des lecteurs qui font du shuffle (MOC par exemple).
|
||||
Ce script permet de palier à ce problème en ajoutant un nombre aléatoire au début de chaque fichier... Suite à cela, il suffit de lire le répertoire normalement. Chaque chanson sera alors lue aléatoirement et au moins une fois sur un cycle complet (repeat).
|
||||
|
||||
![](https://zupimages.net/up/19/48/3q1z.png)
|
216
shufflizer/shufflizer.sh
Executable file
216
shufflizer/shufflizer.sh
Executable file
|
@ -0,0 +1,216 @@
|
|||
#!/bin/bash
|
||||
# T0MuX - copyleft
|
||||
|
||||
# Definition du nombre total de .mp3 dans le dossier du script
|
||||
total=`ls *.mp3 2>/dev/null | wc -l`
|
||||
|
||||
# Definition variables couleurs
|
||||
normal="\e[0m"
|
||||
B="\e[97m"
|
||||
L="\e[94m" # Couleur du logo
|
||||
color=0
|
||||
|
||||
# Fonction couleur aleatoire
|
||||
color() {
|
||||
oldcolor="$color"
|
||||
while :
|
||||
do
|
||||
col=`echo $((1 + RANDOM % 12))`
|
||||
case $col in
|
||||
1) color="\e[91m";;
|
||||
2) color="\e[92m";;
|
||||
3) color="\e[93m";;
|
||||
4) color="\e[94m";;
|
||||
5) color="\e[95m";;
|
||||
6) color="\e[96m";;
|
||||
7) color="\e[31m";;
|
||||
8) color="\e[32m";;
|
||||
9) color="\e[33m";;
|
||||
10) color="\e[34m";;
|
||||
11) color="\e[35m";;
|
||||
12) color="\e[36m";;
|
||||
esac
|
||||
if [ "$oldcolor" != "$color" ]; then break; fi
|
||||
done
|
||||
}
|
||||
|
||||
# LOGO
|
||||
logo() {
|
||||
echo -e "$L __ __ __ __ "
|
||||
echo -e "$L | \/ | \ \ / / "
|
||||
echo -e "$L | \ / |_ _ \ V / "
|
||||
echo -e "$L | |\/| | | | | > < "
|
||||
echo -e "$L | | | | |_| |/ . \ "
|
||||
echo -e "$L |_| |_|\__,_/_/ \_\ "
|
||||
echo
|
||||
echo -e "$L _____ _ __ __ _ _"
|
||||
echo -e "$L / ____| | / _|/ _| (_)"
|
||||
echo -e "$L | (___ | |__ _ _| |_| |_| |_ _______ _ __"
|
||||
echo -e "$L \___ \| '_ \| | | | _| _| | |_ / _ \ '__|"
|
||||
echo -e "$L ____) | | | | |_| | | | | | | |/ / __/ |"
|
||||
echo -e "$L |_____/|_| |_|\__,_|_| |_| |_|_/___\___|_|"
|
||||
echo
|
||||
}
|
||||
|
||||
# YIPEE KAY YAY LOGO
|
||||
yipee_kay_yay() {
|
||||
color;C1=$color;color;C2=$color;color;C3=$color
|
||||
echo -e "$C1 __ _______ _____ ______ ______ $C2 _ __ __ __$C3 __ __ __ __"
|
||||
echo -e "$C1 \ \ / /_ _| __ \| ____| ____|$C2 | |/ / /\\\\\ \ / /$C3 \ \ / //\\\\\ \ / /"
|
||||
echo -e "$C1 \ \_/ / | | | |__) | |__ | |__ $C2 | ' / / \\\\\ \_/ / $C3 \ \_/ // \\\\\ \_/ / "
|
||||
echo -e "$C1 \ / | | | ___/| __| | __| $C2 | < / /\ \\\\\ / $C3 \ // /\ \\\\\ / "
|
||||
echo -e "$C1 | | _| |_| | | |____| |____ $C2 | . \ / ____ \| | $C3 | |/ ____ \| | "
|
||||
echo -e "$C1 |_| |_____|_| |______|______|$C2 |_|\_\/_/ \_\_| $C3 |_/_/ \_\_| "
|
||||
echo -e "$C1 ..motherfucker :D"
|
||||
echo -e "$normal"
|
||||
}
|
||||
|
||||
# Défini la fonction unshuffle
|
||||
unshuffle() {
|
||||
|
||||
# Compteur à 0 pour la progression
|
||||
count=0
|
||||
|
||||
if [ ! -f .shuffled ]
|
||||
then
|
||||
logo
|
||||
echo "ATTENTION, je n'arrive pas à savoir si le dossier courant est shufflized."
|
||||
echo "Si vous déshufflizez (du verbe déshufflizer donc) un dossier n'étant pas shufflizé,"
|
||||
echo "chaque première partie de chaque nom de fichier sera perdue. C'est quand même pas bien cool."
|
||||
read -n1 -p "Voulez vous quand même le déshufflizer ? Je vous aurais prévenu. (o/N)" ch
|
||||
if [ "$ch" = "" ]; then ch=N; fi
|
||||
case $ch in
|
||||
n|N) exit;;
|
||||
o|O) echo;echo "Unshufflize it motherfucker !";;
|
||||
*) echo;echo "MAUVAIS CHOIX"; exit;;
|
||||
esac
|
||||
fi
|
||||
|
||||
rm .shuffled 2> /dev/null
|
||||
|
||||
# Save et adaptation variable IFS pour faire un for tenant compte des epsaces
|
||||
SAVEIFS=$IFS
|
||||
IFS=$(echo -en "\n\b")
|
||||
for filename in $(ls *.mp3)
|
||||
do
|
||||
newfilename=`echo $filename | cut -d\ -f2-`
|
||||
color
|
||||
count=$((count+1))
|
||||
progress=`echo ${count}*100/${total} | bc`
|
||||
echo -e "${B}[${progress}%] ${color}$filename ${B}-> ${color}$newfilename${normal}"
|
||||
mv "$filename" "$newfilename"
|
||||
done
|
||||
|
||||
# Restauration variable IFS
|
||||
IFS=$SAVEIFS
|
||||
|
||||
}
|
||||
|
||||
# Défini la fonction shuffle
|
||||
shuffle() {
|
||||
|
||||
# Si fichier .shuffled présent, procéder à la déshufflization (si si, ce mot existe vraiment)
|
||||
if [ -f .shuffled ]; then unshuffle; fi
|
||||
|
||||
# Compteur à 0 pour la progression
|
||||
count=0
|
||||
|
||||
# Save et adaptation variable IFS pour faire un for tenant compte des epsaces
|
||||
SAVEIFS=$IFS
|
||||
IFS=$(echo -en "\n\b")
|
||||
|
||||
case $type in
|
||||
shuffle) ls_cmd=$(ls *.mp3 | shuf);;
|
||||
sort1) ls_cmd=$(ls -t --time=birth);;
|
||||
esac
|
||||
|
||||
for filename in $ls_cmd
|
||||
do
|
||||
# Renomme en ajoutant nbr au début du filename
|
||||
color
|
||||
count=$((count+1))
|
||||
progress=`echo ${count}*100/${total} | bc`
|
||||
echo -e "${B}[${progress}%] $color$filename ${B}-> $color$count $filename$normal"
|
||||
if [ $total -ge 100 ]
|
||||
then
|
||||
if [ $count -lt 10 ]; then mv "$filename" "00$count $filename"; fi
|
||||
if [ $count -ge 10 ] && [ $count -lt 100 ]; then mv "$filename" "0$count $filename"; fi
|
||||
if [ $count -ge 100 ]; then mv "$filename" "$count $filename"; fi
|
||||
fi
|
||||
|
||||
if [ $total -lt 100 ]
|
||||
then
|
||||
if [ $count -lt 10 ]; then mv "$filename" "0$count $filename"; fi
|
||||
if [ $count -ge 10 ]; then mv "$filename" "$count $filename"; fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Restauration variable IFS
|
||||
IFS=$SAVEIFS
|
||||
|
||||
# On pose un fichier pour tester sa présence à la prochaine exécution
|
||||
touch .shuffled
|
||||
|
||||
yipee_kay_yay
|
||||
}
|
||||
|
||||
sort1() {
|
||||
|
||||
SAVEIFS=$IFS
|
||||
IFS=$(echo -en "\n\b")
|
||||
|
||||
# Réalisé avec l'aide de ChatGPT
|
||||
counter=1
|
||||
|
||||
# Récupérer la liste des fichiers triés par date de création (du plus récent au plus vieux)
|
||||
files=($(ls -t --time=birth))
|
||||
|
||||
# Parcourir les fichiers et les renommer
|
||||
for file in "${files[@]}"
|
||||
do
|
||||
if [[ -f $file ]]; then
|
||||
# Formatage du numéro avec des zéros à gauche (ex: 001, 002, 010, etc.)
|
||||
number=$(printf "%03d" $counter)
|
||||
|
||||
# Extraire l'extension du fichier (s'il y en a une)
|
||||
extension="${file##*.}"
|
||||
|
||||
# Renommer le fichier en ajoutant le numéro au début
|
||||
mv "$file" "$number $file.$extension"
|
||||
|
||||
counter=$((counter+1))
|
||||
fi
|
||||
done
|
||||
IFS=$SAVEIFS
|
||||
}
|
||||
|
||||
|
||||
# Vérifie si le dossier contient des mp3 puis menu
|
||||
clear
|
||||
logo
|
||||
if [ $total -eq 0 ]
|
||||
then
|
||||
echo -e "\e[91mATTENTION : je ne trouve aucun mp3 dans ce répertoire."
|
||||
echo -e "Veuillez exécuter le script depuis un répertoire qui en contient$normal"
|
||||
echo
|
||||
exit
|
||||
fi
|
||||
echo -e "${B}S${L}hufflize it !"
|
||||
echo -e "S${B}o${L}rt it ! (newer to older)"
|
||||
echo -e "${B}U${L}nshufflize"
|
||||
echo -e "${B}E${L}xit"
|
||||
echo
|
||||
echo "Notez que si le dossier est déjà shufflizé et que vous choisissez de le"
|
||||
echo "reshufflizer (ce mot est parfaitement français d'ailleurs), le dossier"
|
||||
echo "sera tout d'abord unshufflizé avant d'être à nouveau shufflizé."
|
||||
echo
|
||||
|
||||
read -n 1 -p "Choix> " ch
|
||||
|
||||
case $ch in
|
||||
s|S) type=shuffle; shuffle && exit;;
|
||||
o|O) type=sort1; shuffle && exit;;
|
||||
u|U) unshuffle && echo -e "\nUnshuflized !\n" && exit;;
|
||||
q|Q|e|E) echo && exit;;
|
||||
*) echo -e "\n\e[91mChoix incorrect.\e[0m" && exit;;
|
||||
esac
|
BIN
tcs/Camera.wav
Executable file
BIN
tcs/Camera.wav
Executable file
Binary file not shown.
3
tcs/README.md
Executable file
3
tcs/README.md
Executable file
|
@ -0,0 +1,3 @@
|
|||
# tcs "T0MuX Control Script"
|
||||
script sur-couche pour wm.
|
||||
|
BIN
tcs/Slap_low.wav
Executable file
BIN
tcs/Slap_low.wav
Executable file
Binary file not shown.
BIN
tcs/modem_long.wav
Executable file
BIN
tcs/modem_long.wav
Executable file
Binary file not shown.
263
tcs/tcs
Executable file
263
tcs/tcs
Executable file
|
@ -0,0 +1,263 @@
|
|||
#!/bin/bash
|
||||
### T0MuX CTRL Script "tcs" v1.0beta ###
|
||||
|
||||
# Emplacement absolu des sons, ils seront lu SI ils existent. Pour ne pas les utiliser, les supprimer.
|
||||
snd=/home/t0mux/scripts/tcs
|
||||
|
||||
# Commande de lancement du navigateur (ex: "palemoon -new-window", "midori", "firefox-bin -new-tab -no-remote")
|
||||
nav=qutebrowser
|
||||
|
||||
# Commandes pour lancer les elements du bureau
|
||||
panel=
|
||||
dock=
|
||||
composite=compton
|
||||
composite_args="--backend glx -cCGfF -e0.8 -o0.7 -t0 -l0 -r6 -D8 -m 0.8 --shadow-exclude"
|
||||
conky_cmd="conky -c ~/.config/conky/conkyrc&conky -c ~/.config/conky/conkydo&conky -c ~/.config/conky/conkysys&conky -c ~/.config/conky/conkyram&conky -c ~/.config/conky/conkycpu&"
|
||||
|
||||
#### A FAIRE ###
|
||||
# saveconf
|
||||
# merge UP et URL
|
||||
# RECUP les sons pour la partie volume
|
||||
|
||||
# SEARCH
|
||||
search() {
|
||||
case $1 in
|
||||
qw)
|
||||
echo -ne "\033]0;"Recherche Qwant"\007"
|
||||
read -p "" search
|
||||
$nav https://www.qwant.com/?q="$search"'&t'=web
|
||||
;;
|
||||
qwi)
|
||||
echo -ne "\033]0;"Recherche Qwant Images"\007"
|
||||
read -p "" search
|
||||
$nav https://www.qwant.com/?q="$search"'&t'=images &
|
||||
#exec i3 workspace Recherche Qwant Images
|
||||
;;
|
||||
ddg)
|
||||
echo -ne "\033]0;"Recherche DuckDuckGo"\007"
|
||||
read -p "" search
|
||||
$nav https://duckduckgo.com/?t=palemoon'&q='"$search"'&ia'=web &
|
||||
#exec i3 workspace Recherche DuckDuckGo
|
||||
;;
|
||||
ddgi)
|
||||
echo -ne "\033]0;"Recherche DuckDuckGo Images"\007"
|
||||
read -p "" search
|
||||
$nav https://duckduckgo.com/?t=palemoon'&q='"$search"'&iax=1&'ia=images &
|
||||
#exec i3 workspace Recherche DuckDuckGo Images
|
||||
;;
|
||||
eco)
|
||||
echo -ne "\033]0;"Recherche Ecosia"\007"
|
||||
read -p "" search
|
||||
$nav https://www.ecosia.org/search?q="$search" &
|
||||
#exec i3 workspace Recherche Ecosia
|
||||
;;
|
||||
*)
|
||||
echo "Unknown fruit - sure it isn't toxic?"
|
||||
exit
|
||||
esac
|
||||
}
|
||||
|
||||
# Screen - dependances : xclip, scrot, curl +alsa-utils pour le son
|
||||
screen() {
|
||||
scrdate=`date +%Y%m%d-%H%M%S`
|
||||
# Emplacement des captures écrans
|
||||
scrpath=$HOME/Images/Screenshots/
|
||||
|
||||
scrfile=${scrpath}Scr_$scrdate.png
|
||||
|
||||
# Création du dossier $scrpath si il n'existe pas
|
||||
if [ ! -f $scrpath ]; then mkdir -p $scrpath; fi
|
||||
|
||||
if [ -z ${2+x} ]; then
|
||||
if [ "$1" = "f" ]; then
|
||||
scrot $scrfile
|
||||
fi
|
||||
if [ "$1" = "s" ]; then
|
||||
scrot $scrfile -s
|
||||
fi
|
||||
else
|
||||
if [ "$1" = "f" ]; then
|
||||
scrot $scrfile -d$2
|
||||
fi
|
||||
if [ "$1" = "s" ]; then
|
||||
scrot $scrfile -s -d$2
|
||||
fi
|
||||
fi
|
||||
|
||||
aplay -q $snd/Camera.wav && aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
|
||||
curl -F"file=@${scrfile}" https://0x0.st | xclip -selection primary
|
||||
pkill aplay && aplay -q $snd/Slap_low.wav
|
||||
}
|
||||
|
||||
# UP & URL - Dépendances : curl + alsa-utils pour le son
|
||||
up() {
|
||||
aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
|
||||
curl -F"file=@$1" https://0x0.st | xclip -selection c
|
||||
pkill aplay && aplay -q $snd/Slap_low.wav
|
||||
if [ ! -f /usr/bin/xclip ]; then echo xclip non installé; fi
|
||||
}
|
||||
url() {
|
||||
aplay -q $snd/modem_long.wav > /dev/null 2>&1 &
|
||||
curl -F"shorten=$1" https://0x0.st | xclip -selection c
|
||||
pkill aplay && aplay -q $snd/Slap_low.wav
|
||||
if [ ! -f /usr/bin/xclip ]; then echo xclip non installé; fi
|
||||
}
|
||||
|
||||
|
||||
# BashCalc - Dépendance : bc
|
||||
bashcalc() {
|
||||
echo -ne "\033]0;"BashCalc"\007"
|
||||
echo "Calculette à l'ancienne mon gars :D"
|
||||
echo
|
||||
while :
|
||||
do
|
||||
read -p "" calc
|
||||
echo -e $calc | bc -l
|
||||
echo
|
||||
done
|
||||
}
|
||||
|
||||
# Volume - Dépendances : MOC (lecteur audio) + alsa-utils pour le son
|
||||
volume() {
|
||||
if [ "$1" = "up" ]; then
|
||||
amixer -c 0 sset Master 4%+
|
||||
if [ "`mocp -i`" = "State: STOP" ] || [ "`mocp -i | grep State`" = "State: PAUSE" ]
|
||||
then aplay /home/t0mux/SOFT/LINUX/theme/sounds/T0MuX/button-pressed.wav
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" = "down" ]; then
|
||||
amixer -c 0 sset Master 4%-
|
||||
if [ "`mocp -i`" = "State: STOP" ] || [ "`mocp -i | grep State`" = "State: PAUSE" ]
|
||||
then aplay /home/t0mux/SOFT/LINUX/theme/sounds/T0MuX/button-pressed.wav
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$1" = "mute" ]; then
|
||||
amixer -c 0 sset Master toggle &&
|
||||
if [ "`amixer -c 0 sget Master | grep % | cut -d ' ' -f 8 | tr -d []`" = off ]
|
||||
then notify-send 'Volume' 'Mute' --icon=audio-volume-muted
|
||||
else notify-send 'Volume' 'Unmuted' --icon=audio-volume-high
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# Colors
|
||||
colors() {
|
||||
for clbg in {40..47} {100..107} 49 ; do
|
||||
#Foreground
|
||||
for clfg in {30..37} {90..97} 39 ; do
|
||||
#Formatting
|
||||
for attr in 0 1 2 4 5 7 ; do
|
||||
#Print the result
|
||||
echo -en "\e[${attr};${clbg};${clfg}m ^[${attr};${clbg};${clfg}m \e[0m"
|
||||
done
|
||||
echo #Newline
|
||||
done
|
||||
done
|
||||
|
||||
exit 0
|
||||
}
|
||||
|
||||
# ISO mounter/unmounter - PAS AU POINT
|
||||
iso() {
|
||||
mntdir="$2-mount"
|
||||
case $1 in
|
||||
m|mount)
|
||||
if [ ! -f $mntdir ]; then mkdir $mntdir; fi
|
||||
archivemount $2 $mntdir
|
||||
;;
|
||||
u|umount)
|
||||
fusermount -u $mntdir
|
||||
sleep 1
|
||||
rm -R $mntdir
|
||||
;;
|
||||
*)
|
||||
echo "Mauvais arguments."
|
||||
echo " "
|
||||
help
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Reconfigure
|
||||
reconfigure() {
|
||||
pkill $panel
|
||||
pkill $dock
|
||||
pkill $composite
|
||||
pkill $conky
|
||||
$panel & $dock & $composite $composite_args & $conky_cmd &
|
||||
}
|
||||
|
||||
|
||||
# HELP
|
||||
help() {
|
||||
echo "T0MuX Control Script - 1.0beta - 16/04/17"
|
||||
echo
|
||||
echo "Syntaxe : tcs [OPTION] [argument]"
|
||||
echo
|
||||
echo "# Recherche internet :"
|
||||
echo " tcs <s|search> qw Qwant"
|
||||
echo " qwi Qwant Images"
|
||||
echo " ddg DuckDuckGo"
|
||||
echo " ddgi DuckDuckGo Images"
|
||||
echo " eco Ecosia"
|
||||
echo
|
||||
echo "# Calculette BC"
|
||||
echo " tcs bc"
|
||||
echo
|
||||
echo "# Screencurl - capture écran + upload + retour lien dans clipboard"
|
||||
echo " tcs <scr|screen> <f|s> <N>"
|
||||
echo " f Capture tout l'écran"
|
||||
echo " s Capture avec selection"
|
||||
echo " N Délai de capture en secondes (0 si non-précisé)"
|
||||
echo
|
||||
echo "# Reconfigure - kill et relance les elements du bureau"
|
||||
echo " tcs <r|reconf>"
|
||||
echo
|
||||
echo "# Volume"
|
||||
echo " tcs <v|vol|volume> up monte le volume"
|
||||
echo " down baisse le volume"
|
||||
echo " mute coupe/remet le son"
|
||||
echo
|
||||
|
||||
}
|
||||
|
||||
# Interprétation des arguments
|
||||
case $1 in
|
||||
s|search)
|
||||
search $2
|
||||
;;
|
||||
scr|screen)
|
||||
screen $2 $3
|
||||
;;
|
||||
up)
|
||||
up $2
|
||||
;;
|
||||
url)
|
||||
url $2
|
||||
;;
|
||||
bc|bashcalc)
|
||||
bashcalc
|
||||
;;
|
||||
v|vol|volume)
|
||||
volume $2
|
||||
;;
|
||||
c|colors)
|
||||
colors
|
||||
;;
|
||||
i|iso)
|
||||
iso $2 $3 &
|
||||
;;
|
||||
r|reconf)
|
||||
reconfigure &
|
||||
;;
|
||||
h|help)
|
||||
help
|
||||
;;
|
||||
*)
|
||||
echo "Mauvais arguments."
|
||||
echo " "
|
||||
help
|
||||
;;
|
||||
esac
|
53
tiregom/tiregom.sh
Executable file
53
tiregom/tiregom.sh
Executable file
|
@ -0,0 +1,53 @@
|
|||
#!/bin/bash
|
||||
|
||||
while : # DEBUT GRANDE BOUCLE
|
||||
do
|
||||
|
||||
clear
|
||||
echo ".: TIREGOM :."
|
||||
echo
|
||||
echo " 1) Bridgestone"
|
||||
echo " 2) Nankang"
|
||||
echo " 3) Nokian"
|
||||
echo " 4) Yokohama"
|
||||
echo
|
||||
echo " Q) Quitter"
|
||||
echo
|
||||
read -n1 -p "Marque> " ch
|
||||
|
||||
case $ch in
|
||||
1) brand=43;;
|
||||
2) brand=77;;
|
||||
3) brand=58;;
|
||||
4) brand=62;;
|
||||
q|Q) echo;echo;exit;;
|
||||
esac
|
||||
|
||||
echo;echo
|
||||
echo " 1) 205 55 16 (Corolla Verso OEM)"
|
||||
echo " 2) 195 55 15 (Concerto+)"
|
||||
echo " 3) 195 50 15 (Civic+)"
|
||||
echo " 4) 175 70 13 (Civic OEM)"
|
||||
echo " A) AUTRE"
|
||||
read -n1 -p "Taille> " ch
|
||||
|
||||
case $ch in
|
||||
1) largeur=205; hauteur=55; diam=16;;
|
||||
2) largeur=195; hauteur=55; diam=15;;
|
||||
3) largeur=195; hauteur=50; diam=15;;
|
||||
4) largeur=175; hauteur=70; diam=13;;
|
||||
A) read -p "Largeur> " largeur
|
||||
read -p "Hauteur> " hauteur
|
||||
read -p "Diamètre> " diam
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ -f /c/Windows/explorer.exe ]; then cmdurl=explorer.exe; fi # MSYS2
|
||||
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
|
||||
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
|
||||
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; echo; exit; fi
|
||||
|
||||
$cmdurl "https://www.tiregom.fr/recherche?largeur=$largeur&hauteur=$hauteur&diametre=$diam&ref_brand[]=$brand" > /dev/null &
|
||||
|
||||
done # FIN GRANDE BOUCLE
|
||||
echo
|
24
track/README.md
Executable file
24
track/README.md
Executable file
|
@ -0,0 +1,24 @@
|
|||
# mux-track
|
||||
Outil de suivi de colis
|
||||
|
||||
![](https://zupimages.net/up/19/25/dkor.png)
|
||||
|
||||
## Utilisation
|
||||
MuXtrack peut s'utiliser de deux façon : avec le menu, ou en "oneshot". Pour avoir le menu, exécuter simplement le script. En oneshot, la syntaxe est la suivante : `./muxtrack.sh <ch,dhl,lp,tnt,mr> <numéro colis>`
|
||||
|
||||
- ch : Chronopost
|
||||
- dhl : DHL
|
||||
- dpd : DPD
|
||||
- lp : Laposte
|
||||
- lpc : Laposte Colissimo
|
||||
- tnt : TNT
|
||||
- mr : Mondial Relay
|
||||
|
||||
## Termux : raccourci sur l'écran d'accueil
|
||||
* Ouvrir termux
|
||||
* `git clone https://git.mux.re/T0MuX/scripts`
|
||||
* `cp ./scripts/mux-track/muxtrack.sh ./.shortcuts/muxtrack`
|
||||
* Sur l'écran d'accueil, ajouter un widget "Termux shortcut"
|
||||
* Choisir "muxtrack" dans la liste
|
||||
|
||||
![](https://zupimages.net/up/19/25/dcpb.png) ![](https://zupimages.net/up/19/25/nh4z.png)
|
250
track/track.sh
Executable file
250
track/track.sh
Executable file
|
@ -0,0 +1,250 @@
|
|||
#!/bin/bash
|
||||
|
||||
V="\e[92m"
|
||||
B="\e[1m"
|
||||
N="\e[0m"
|
||||
S="\e[4m"
|
||||
|
||||
# Detection systeme
|
||||
if [ -f /c/Windows/explorer.exe ]; then cmdurl=start; fi # MSYS2
|
||||
if [ -f ../usr/bin/termux-open ]; then cmdurl=termux-open; fi # Termux
|
||||
if [ -f /usr/bin/xdg-open ]; then cmdurl=xdg-open; fi # GNU/Linux
|
||||
if [ -z $cmdurl ]; then echo Aucun lanceur trouvé !; read; exit; fi
|
||||
|
||||
|
||||
# Logo (Ajouter logo MuX..)
|
||||
logo() {
|
||||
clear
|
||||
echo
|
||||
echo -e " ${S}Outil de suivi de colis$N - MuXtrack"
|
||||
echo
|
||||
}
|
||||
|
||||
# Fonction help
|
||||
help() {
|
||||
echo "MuXtrack - Syntaxe :"
|
||||
echo " ./muxtrack.sh <ch,dhl,lp,lpc,tnt,mr> <numéro colis>"
|
||||
echo
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
# Debut de la "grande boucle"
|
||||
while : ; do {
|
||||
|
||||
# Une fonction par société
|
||||
|
||||
chrono() {
|
||||
while : ; do {
|
||||
if [ -z $1 ] # Si pas de num colis donné en argument
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis Chronopost : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else # Si num colis donné en argument
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://www.chronopost.fr/fr/chrono_suivi_search?listeNumerosLT=${num}&lang=fr"
|
||||
if [ ! -z $1 ]; then exit; fi # Si num colis en argument, fermer.
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
dhl() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis DHL : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "http://www.dhl.fr/fr/dhl_express/suivi_expedition.html?AWB=${num}&brand=DHL"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
dpd() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis DPD : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://tracking.dpd.de/status/fr_FR/parcel/${num}"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
lp() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis Laposte : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://www.suivre-des-colis.fr/la-poste/tracking/?trackingcode=${num}&provider=la-poste"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
lpc() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis Colissimo : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://www.laposte.fr/outils/suivre-vos-envois?code=${num}"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
mr() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis Mondial Relay : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://www.mondialrelay.fr/suivi-de-colis?codeMarque=CC&numeroExpedition=${num}&language=fr"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
tnt() {
|
||||
while : ; do {
|
||||
if [ -z $1 ]
|
||||
then
|
||||
logo
|
||||
echo -e "Taper q puis entrée pour revenir\n"
|
||||
read -p "Numéro de colis TNT : " num
|
||||
if [ $num = q ] || [ $num = Q ]; then break ;fi
|
||||
else
|
||||
num=$1
|
||||
fi
|
||||
$cmdurl "https://www.tnt.fr/public/suivi_colis/recherche/visubontransport.do?bonTransport=${num}&radiochoixrecherche=BT&radiochoixtypeexpedition=NAT"
|
||||
if [ ! -z $1 ]; then exit; fi
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
# Possibilité d'appeler directement une fonction avec un argument
|
||||
if [ ! -z $1 ]; then
|
||||
case "$1" in
|
||||
ch)
|
||||
if [ -z $2 ]; then help; fi
|
||||
chrono $2
|
||||
;;
|
||||
|
||||
dhl)
|
||||
if [ -z $2 ]; then help; fi
|
||||
dhl $2
|
||||
;;
|
||||
|
||||
dpd)
|
||||
if [ -z $2 ]; then help; fi
|
||||
dpd $2
|
||||
;;
|
||||
|
||||
lp)
|
||||
if [ -z $2 ]; then help; fi
|
||||
lp $2
|
||||
;;
|
||||
|
||||
lpc)
|
||||
if [ -z $2 ]; then help; fi
|
||||
lpc $2
|
||||
;;
|
||||
|
||||
|
||||
tnt)
|
||||
if [ -z $2 ]; then help; fi
|
||||
tnt $2
|
||||
;;
|
||||
|
||||
mr)
|
||||
if [ -z $2 ]; then help; fi
|
||||
mr $2
|
||||
;;
|
||||
*)
|
||||
help
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
logo
|
||||
echo " 1) Chronopost"
|
||||
echo " 2) DHL"
|
||||
echo " 3) DPD"
|
||||
echo " 4) Laposte"
|
||||
echo " 5) Laposte Colissimo"
|
||||
echo " 6) TNT"
|
||||
echo " 7) Mondial Relay"
|
||||
echo
|
||||
echo " Q) Quitter"
|
||||
echo
|
||||
read -n1 -p "Choix > " ch
|
||||
|
||||
|
||||
case "$ch" in
|
||||
1)
|
||||
chrono
|
||||
;;
|
||||
|
||||
2)
|
||||
dhl
|
||||
;;
|
||||
|
||||
3)
|
||||
dpd
|
||||
;;
|
||||
|
||||
4)
|
||||
lp
|
||||
;;
|
||||
5)
|
||||
lpc
|
||||
;;
|
||||
6)
|
||||
tnt
|
||||
;;
|
||||
7)
|
||||
mr
|
||||
;;
|
||||
q|Q)
|
||||
echo&&exit 1
|
||||
;;
|
||||
*)
|
||||
echo "mauvais choix"
|
||||
;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
done
|
22
trad/trad.sh
Executable file
22
trad/trad.sh
Executable file
|
@ -0,0 +1,22 @@
|
|||
#!/bin/bash
|
||||
PS3='Choix:'
|
||||
langs=("fr-en" "en-fr" "fr-pt" "pt-fr")
|
||||
echo
|
||||
select trad in "${langs[@]}"; do
|
||||
echo
|
||||
case $trad in
|
||||
"fr-en")
|
||||
trans fr:en "$@";echo "---"
|
||||
;;
|
||||
"en-fr")
|
||||
trans en:fr "$@";echo "---"
|
||||
;;
|
||||
"fr-pt")
|
||||
trans fr:pt "$@";echo "---"
|
||||
;;
|
||||
"pt-fr")
|
||||
trans pt:fr "$@";echo "---"
|
||||
;;
|
||||
*) echo "invalid option $REPLY";;
|
||||
esac
|
||||
done
|
64
trad/tscli.sh
Executable file
64
trad/tscli.sh
Executable file
|
@ -0,0 +1,64 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Translate Shell CLI
|
||||
# Conçu avec l'aide de ChatGPT
|
||||
|
||||
# Liste des langues principales
|
||||
main_langs=("fr:en" "en:fr" "fr:pt" "pt:fr" "en:pt" "pt:en")
|
||||
|
||||
# Fonction pour afficher le menu principal
|
||||
function main_menu() {
|
||||
echo "=== MENU PRINCIPAL ==="
|
||||
echo "1. Français - Anglais"
|
||||
echo "2. Anglais - Français"
|
||||
echo "3. Français - Portugais"
|
||||
echo "4. Portugais - Français"
|
||||
echo "5. Anglais - Portugais"
|
||||
echo "6. Portugais - Anglais"
|
||||
echo "7. Autre langue"
|
||||
echo "8. Quitter"
|
||||
}
|
||||
|
||||
# Fonction pour afficher la liste de toutes les langues disponibles
|
||||
function list_all_langs() {
|
||||
echo "=== LISTE DES LANGUES ==="
|
||||
trans -list | awk '{print NR". "$0}'
|
||||
}
|
||||
|
||||
# Fonction pour traduire le texte
|
||||
function translate_text() {
|
||||
read -p "Texte à traduire: " text
|
||||
if [[ "$lang_choice" == "7" ]]; then
|
||||
read -p "Langue source-cible (ex: en:fr): " lang_choice
|
||||
trans "$lang_choice" "$text"
|
||||
else
|
||||
# echo DEBUG trans "${main_langs[$lang_choice-1]}" "$text"
|
||||
trans "${main_langs[$lang_choice-1]}" "$text"
|
||||
fi
|
||||
}
|
||||
|
||||
# Boucle principale
|
||||
while true; do
|
||||
clear
|
||||
main_menu
|
||||
read -n 1 -p "Choix: " lang_choice;echo
|
||||
case "$lang_choice" in
|
||||
1|2|3|4|5|6)
|
||||
translate_text
|
||||
read -p "Appuyez sur une touche pour continuer..."
|
||||
;;
|
||||
7)
|
||||
list_all_langs
|
||||
read -p "Langue source-cible (ex: en-fr): " lang_choice
|
||||
translate_text
|
||||
read -p "Appuyez sur une touche pour continuer..."
|
||||
;;
|
||||
8)
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Choix invalide."
|
||||
read -p "Appuyez sur une touche pour continuer..."
|
||||
;;
|
||||
esac
|
||||
done
|
14
wc-pattern/techniques.csv
Executable file
14
wc-pattern/techniques.csv
Executable file
|
@ -0,0 +1,14 @@
|
|||
tan sao,0
|
||||
pak sao,0
|
||||
bong sao,0
|
||||
gam sao,0
|
||||
jam sao,0
|
||||
kao sao,0
|
||||
jat sao,0
|
||||
lap sao,0
|
||||
chun kuen,1
|
||||
wan kuen,1
|
||||
biu jee,1
|
||||
chin chun,1
|
||||
fak sao,1
|
||||
chum sao,1
|
|
72
wc-pattern/wc-pattern.sh
Executable file
72
wc-pattern/wc-pattern.sh
Executable file
|
@ -0,0 +1,72 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Fonction pour générer un enchainement de techniques
|
||||
function generate_pattern() {
|
||||
local technique_type=$1
|
||||
local pattern=$2
|
||||
|
||||
# Lire les techniques à partir du fichier CSV
|
||||
IFS=$'\n' read -d '' -r -a techniques < techniques.csv
|
||||
|
||||
# Filtrer les techniques en fonction du type demandé (défense ou attaque)
|
||||
filtered_techniques=()
|
||||
for technique in "${techniques[@]}"; do
|
||||
name=$(echo "$technique" | cut -d ',' -f 1)
|
||||
type=$(echo "$technique" | cut -d ',' -f 2)
|
||||
if [ "$type" == "$technique_type" ]; then
|
||||
filtered_techniques+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
# Générer l'enchainement de techniques
|
||||
random_techniques=()
|
||||
for i in $(seq 1 ${#pattern}); do
|
||||
if [ "${pattern:i-1:1}" == "0" ]; then
|
||||
random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}")
|
||||
else
|
||||
random_techniques+=("${filtered_techniques[$RANDOM % ${#filtered_techniques[@]}]}")
|
||||
random_techniques+=("&")
|
||||
fi
|
||||
done
|
||||
|
||||
# Supprimer le dernier "&" s'il existe
|
||||
if [ "${random_techniques[-1]}" == "&" ]; then
|
||||
unset "random_techniques[${#random_techniques[@]}-1]"
|
||||
fi
|
||||
|
||||
# Afficher l'enchainement de techniques
|
||||
echo "${random_techniques[@]}"
|
||||
}
|
||||
|
||||
# Demander le pattern à l'utilisateur
|
||||
echo "Choisissez un pattern :"
|
||||
echo "1) Défense + attaque"
|
||||
echo "2) Défense + défense + attaque"
|
||||
echo "3) Défense + attaque + défense + attaque"
|
||||
echo "4) Défense + défense + attaque + attaque"
|
||||
echo "5) Personnaliser"
|
||||
read pattern_choice
|
||||
|
||||
# Générer l'enchainement de techniques en fonction du pattern choisi
|
||||
case $pattern_choice in
|
||||
1)
|
||||
generate_pattern 1 "01"
|
||||
;;
|
||||
2)
|
||||
generate_pattern 0 "010"
|
||||
;;
|
||||
3)
|
||||
generate_pattern 0 "1010"
|
||||
;;
|
||||
4)
|
||||
generate_pattern 0 "0011"
|
||||
;;
|
||||
5)
|
||||
echo "Entrez le pattern (par exemple, 0101 pour une défense suivie d'une attaque répétée deux fois) :"
|
||||
read pattern
|
||||
generate_pattern 0 "$pattern"
|
||||
;;
|
||||
*)
|
||||
echo "Choix invalide."
|
||||
;;
|
||||
esac
|
70
wc-pattern/wc-pattern2.sh
Executable file
70
wc-pattern/wc-pattern2.sh
Executable file
|
@ -0,0 +1,70 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Lire les techniques à partir du fichier CSV
|
||||
IFS=$'\n' read -d '' -r -a techniques < techniques.csv
|
||||
|
||||
# Fonction pour choisir une technique aléatoire d'un certain type
|
||||
function choose_random_technique() {
|
||||
local technique_type=$1
|
||||
local filtered_techniques=()
|
||||
|
||||
for technique in "${techniques[@]}"; do
|
||||
local name=$(echo "$technique" | cut -d ',' -f 1)
|
||||
local type=$(echo "$technique" | cut -d ',' -f 2)
|
||||
|
||||
if [ "$type" == "$technique_type" ]; then
|
||||
filtered_techniques+=("$name")
|
||||
fi
|
||||
done
|
||||
|
||||
# Choisir une technique aléatoire parmi les techniques filtrées
|
||||
local random_index=$(( RANDOM % ${#filtered_techniques[@]} ))
|
||||
echo "${filtered_techniques[random_index]}"
|
||||
}
|
||||
|
||||
# Demander le choix du pattern à l'utilisateur
|
||||
echo "Quel pattern souhaitez-vous choisir ?"
|
||||
echo "1) Défense + attaque"
|
||||
echo "2) Défense + défense + attaque"
|
||||
echo "3) Défense + attaque + défense + attaque"
|
||||
echo "4) Défense + défense + attaque + attaque"
|
||||
echo "5) Personnaliser"
|
||||
read -p "Entrez le numéro de votre choix : " pattern_choice
|
||||
|
||||
# Générer l'enchaînement de techniques en fonction du pattern choisi
|
||||
case $pattern_choice in
|
||||
1)
|
||||
defense_technique=$(choose_random_technique 0)
|
||||
attack_technique=$(choose_random_technique 1)
|
||||
echo "$defense_technique & $attack_technique"
|
||||
;;
|
||||
2)
|
||||
defense_technique=$(choose_random_technique 0)
|
||||
echo "$defense_technique & $defense_technique & $(choose_random_technique 1)"
|
||||
;;
|
||||
3)
|
||||
defense_technique=$(choose_random_technique 0)
|
||||
attack_technique=$(choose_random_technique 1)
|
||||
echo "$defense_technique & $attack_technique & $defense_technique & $attack_technique"
|
||||
;;
|
||||
4)
|
||||
defense_technique=$(choose_random_technique 0)
|
||||
echo "$defense_technique & $defense_technique & $(choose_random_technique 1) & $(choose_random_technique 1)"
|
||||
;;
|
||||
5)
|
||||
read -p "Entrez votre propre pattern en utilisant 0 pour la défense et 1 pour l'attaque (par exemple, 0101) : " custom_pattern
|
||||
pattern_output=""
|
||||
for c in $(echo $custom_pattern | grep -o .); do
|
||||
if [ "$c" == "0" ]; then
|
||||
pattern_output+="$(choose_random_technique 0) & "
|
||||
else
|
||||
pattern_output+="$(choose_random_technique 1) & "
|
||||
fi
|
||||
done
|
||||
echo "${pattern_output::-3}" # Supprimer le dernier "&" et l'espace
|
||||
;;
|
||||
*)
|
||||
echo "Choix invalide."
|
||||
;;
|
||||
esac
|
||||
|
13
wc-tech/techniques.csv
Executable file
13
wc-tech/techniques.csv
Executable file
|
@ -0,0 +1,13 @@
|
|||
tan sao,0
|
||||
pak sao,0
|
||||
bong sao,0
|
||||
gam sao,0
|
||||
jam sao,0
|
||||
kao sao,0
|
||||
jat sao,0
|
||||
lap sao,0
|
||||
chun kuen,1
|
||||
biu jee,1
|
||||
chin chun,1
|
||||
fak sao,1
|
||||
chum sao,1
|
|
68
wc-tech/wc-tech.sh
Executable file
68
wc-tech/wc-tech.sh
Executable file
|
@ -0,0 +1,68 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Fonction pour choisir une technique aléatoire
|
||||
choose_technique() {
|
||||
local techniques_file="$1"
|
||||
shuf -n 1 "$techniques_file"
|
||||
}
|
||||
|
||||
# Fonction pour afficher les techniques en fonction du pattern
|
||||
display_techniques() {
|
||||
local techniques_file="$1"
|
||||
local pattern="$2"
|
||||
IFS='+' read -ra pattern_array <<< "$pattern"
|
||||
for p in "${pattern_array[@]}"; do
|
||||
technique=""
|
||||
if [[ "$p" -eq 0 ]]; then
|
||||
technique=$(choose_technique "$techniques_file" | cut -d',' -f1)
|
||||
echo "Défensive : $technique"
|
||||
elif [[ "$p" -eq 1 ]]; then
|
||||
technique=$(choose_technique "$techniques_file" | cut -d',' -f2)
|
||||
echo "Offensive : $technique"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# Main
|
||||
techniques_file="techniques.csv"
|
||||
|
||||
while true; do
|
||||
clear
|
||||
echo "Menu :"
|
||||
echo "1) Défense + Attaque"
|
||||
echo "2) Défense + Défense"
|
||||
echo "3) Défense + Défense + Attaque"
|
||||
echo "4) Défense + Attaque + Défense + Attaque"
|
||||
echo "5) Pattern personnalisé"
|
||||
echo "0) Quitter"
|
||||
read -p "Choisissez une option : " choice
|
||||
|
||||
case "$choice" in
|
||||
1)
|
||||
display_techniques "$techniques_file" "0+1"
|
||||
;;
|
||||
2)
|
||||
display_techniques "$techniques_file" "0+0"
|
||||
;;
|
||||
3)
|
||||
display_techniques "$techniques_file" "0+0+1"
|
||||
;;
|
||||
4)
|
||||
display_techniques "$techniques_file" "0+1+0+1"
|
||||
;;
|
||||
5)
|
||||
read -p "Entrez le pattern personnalisé (par exemple '1+0+0+1') : " custom_pattern
|
||||
display_techniques "$techniques_file" "$custom_pattern"
|
||||
;;
|
||||
0)
|
||||
echo "Au revoir !"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "Option invalide. Veuillez choisir une option valide."
|
||||
;;
|
||||
esac
|
||||
|
||||
read -p "Appuyez sur Entrée pour afficher le menu à nouveau..." input
|
||||
done
|
||||
|
35
week/week.sh
Executable file
35
week/week.sh
Executable file
|
@ -0,0 +1,35 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Définition des variables
|
||||
date=`date +%d%m`
|
||||
day=`date +%u`
|
||||
heure=`date +%H`
|
||||
|
||||
# Définition des phrases type
|
||||
non="Non."
|
||||
non2="Non. Mais c'est comme si."
|
||||
ferie="Non. Mais aujourd'hui, on ne travaille pas \\o/"
|
||||
week="C'est le week end \\o/"
|
||||
|
||||
# Conditions
|
||||
if [ $day -eq 7 ]
|
||||
then text=$week
|
||||
else
|
||||
if [ $date -eq 2211 ] || [ $date -eq 2512 ] || [ $date -eq 0101 ] || [ $date -eq 0105 ] || [ $date -eq 0805 ] || [ $date -eq 1407 ] || [ $date -eq 1508 ]
|
||||
then text=$ferie
|
||||
else
|
||||
if [ $day -eq 6 ] && [ $heure -gt 15 ] && [ $heure -le 18 ]
|
||||
then text=$non2
|
||||
else
|
||||
if [ $day -eq 6 ] && [ $heure -gt 17 ]
|
||||
then text=$week
|
||||
else
|
||||
text=$non
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
# -> rajouter lundi de paques, pentecotes, sur 20 ans lol
|
||||
|
||||
# Output
|
||||
echo $text
|
Loading…
Reference in a new issue