3 Commits
v0.7 ... v1.0

Author SHA1 Message Date
8264db80e9 Version 1.0
-ajout d’un nouveau champ dans la table pour faire des recherches sans accent (bashbird et insert)
-refonte de l’export markdown
2024-10-18 09:21:20 +02:00
6ecabb9ffa v 0.9.1 2024-10-14 09:25:55 +02:00
2c78917894 Export html
-option -w
2024-08-20 18:05:47 +02:00
6 changed files with 1248 additions and 1078 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
Transparent300px.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 B

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
VERSION="v0.7" VERSION="v1.0"
red="\033[1;31m" red="\033[1;31m"
greenbold="\033[1;32m" greenbold="\033[1;32m"
@@ -15,13 +15,13 @@ reset="\033[0m"
dotenv () { dotenv () {
set -a set -a
# shellcheck disable=SC1091 # shellcheck disable=SC1091
[ -f ".env" ] && . ".env" || echo -e "${red}\nNo .env file found ! No token for gotify.${reset}" [ -f ".env" ] && . ".env" || echo -e "${red}\nNo .env file found ! Could'nt get update from Github.'.${reset}"
set +a set +a
} }
dotenv dotenv
### ChangeNotes: . ### ChangeNotes: Minor corrections.
Github="https://github.com/bruno21/bashbirds" Github="https://github.com/bruno21/bashbirds"
# Repo normal: # Repo normal:
#RawUrl="https://raw.githubusercontent.com/Bruno21/bashbirds/main/bashbirds.sh" #RawUrl="https://raw.githubusercontent.com/Bruno21/bashbirds/main/bashbirds.sh"
@@ -36,21 +36,34 @@ ScriptWorkDir="$(dirname "$ScriptPath")" # /Users/bruno/Documents/Scripts/bashbi
### Check if there's a new release of the script: ### Check if there's a new release of the script:
LatestRelease="$(curl -s -r 0-50 $RawUrl | sed -n "/VERSION/s/VERSION=//p" | tr -d '"')" LatestRelease="$(curl -s -r 0-50 $RawUrl | sed -n "/VERSION/s/VERSION=//p" | tr -d '"')"
LatestChanges="$(curl -s -r 0-200 $RawUrl | sed -n "/ChangeNotes/s/### ChangeNotes: //p")" LatestChanges="$(curl -s -r 0-200 $RawUrl | sed -n "/ChangeNotes/s/### ChangeNotes: //p")"
echo $LatestRelease #[[ $LatestRelease != $VERSION ]] && new="($LatestRelease)" || new=""
echo -e "${yellowbold}Bashbird${reset} $VERSION\n" echo -e "${yellowbold}Bashbird${reset} $VERSION\n"
req2() { req2() {
f_md="liste_oiseaux.md" option=$1
if [ -f "./$f_md" ]; then
rm "./$f_md" case $option in
m) ext=".md" ;;
w) ext=".html";old_index="_" ;;
esac
f="liste_oiseaux$ext"
if [ -f "./$f" ]; then
rm "./$f"
fi fi
read -p "Pause: " choice
#read -p "Pause: " choice
query2="SELECT * FROM liste;"
#query2="SELECT * FROM liste;"
query2="SELECT Francais, Autres, Latin, Anglais, Ordre, Famille, Liens FROM liste;"
result2=$(sqlite3 ./birds.db "$query2") result2=$(sqlite3 ./birds.db "$query2")
#echo "$result2" #echo "$result2"
i=1
index=()
array=() array=()
while IFS='|' read -ra array; while IFS='|' read -ra array;
do do
@@ -61,21 +74,174 @@ req2() {
or="${array[4]}" or="${array[4]}"
fa="${array[5]}" fa="${array[5]}"
ln="${array[6]}" ln="${array[6]}"
#echo "$ln"
#read -r -p "Would you like to update? y/[n]: " SelfUpdate
[[ $aut != "" ]] && z="($aut)" || z="" [[ $aut != "" ]] && z="($aut)" || z=""
if [ $ext = ".md" ]; then
#echo "| $fr $z |" >>"$f"
#echo "|--------------------------------------------------|" >>"$f"
#echo "| $lat |" >> "$f"
#echo "| $en |" >> "$f"
#echo "| $or |" >> "$f"
#echo "| $fa |" >> "$f"
#echo "| $ln |" >> "$f"
#echo "" >> "$f"
birds+="| $fr | $z |"'\n'
birds+="|------------------------ | --------------------------|"'\n'
birds+="| Vernaculaire | $lat |"'\n'
birds+="| Anglais | $en |"'\n'
birds+="| Ordre | $or |"'\n'
birds+="| Famille | $fa |"'\n'
#birds+="| Liens (oiseaux.net)<br />![](/Users/bruno/Pictures/Transparent300px.png) | [$fr]($ln)<br />![](/Users/bruno/Pictures/Transparent300px.png) |"'\n'
birds+="| Liens (oiseaux.net)<br />![](Transparent300px.png) | [$fr]($ln)<br />![](Transparent300px.png) |"'\n'
birds+='\n'
elif [ $ext = ".html" ]; then
firstletter="${fr:0:1}"
if [ $firstletter != $old_index ]; then
index+=("$firstletter")
#bird+="<tr class='bird'><td class='bold'><a href='#$firstletter'></a>$fr</td><td>$aut</td><td>$lat</td><td>$en</td></tr>"
bird+="<tr class='bird'><td class='bold'><a id='$firstletter'></a>$fr</td><td>$aut</td><td>$lat</td><td>$en</td></tr>"
else
bird+="<tr class='bird'><td class='bold'>$fr</td><td>$aut</td><td>$lat</td><td>$en</td></tr>"
fi
bird+="<tr class='family'><td>$or</td><td>$fa</td><td></td><td><a href='$ln'>Oiseaux.net</a></tr>"
if [ $firstletter != $old_index ]; then
bird+="<tr class='family textcenter'><td colspan='4'>PLACEHOLDER</td></tr>"
else
bird+="<tr class='family'><td colspan='4'></td></tr>"
fi
old_index="$firstletter"
echo "| $fr $z |" >>"$f_md" fi
echo "|--------------------------------------------------|" >>"$f_md"
echo "| $lat |" >> "$f_md"
echo "| $en |" >> "$f_md"
echo "| $or |" >> "$f_md"
echo "| $fa |" >> "$f_md"
echo "| $ln |" >> "$f_md"
echo "" >> "$f_md"
done <<< "$result2" done <<< "$result2"
if [ $ext = ".html" ]; then
newArr=(); while IFS= read -r -d '' x; do newArr+=("$x"); done < <(printf "%s\0" "${index[@]}" | sort -uz)
for val in ${!newArr[@]}
do
liens_index+="<a href='#${newArr[$val]}'>${newArr[$val]}</a> | "
done
liens_index="${liens_index:0:-3}"
z=${bird//PLACEHOLDER/$liens_index}
bird="$z"
html
elif [ $ext = ".md" ]; then
echo -e "${yellow}Exporting markdown file...${reset}"
bird=$(echo "$birds" | sed 's/\
//g')
echo -e "$bird" > "liste_oiseaux$ext"
fi
exit 0 exit 0
}
html() {
echo -e "${yellow}Exporting html file...${reset}"
cat > liste_oiseaux.html << EOF
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta charset="utf-8">
<title>Liste oiseaux d'Europe...</title>
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {
font-family: Helvetica, Calibri, Arial, sans-serif;
background: #e0e5b6;
#font-weight: 300;
#font-size: 15px;
#color: #333;
}
table {
width: 100%;
}
table, th, td {
border: 1px solid black;
border-collapse: collapse;
padding: 10px;
}
caption {
letter-spacing: 3px;
font-weight: 600;
font-size: 28px;
padding: 16px;
}
h2 {
letter-spacing: 3px;
}
a {
color: #898121;
}
a:hover {
color: #914f1e;
}
.bird {
background-color: #ccd5ae;
}
.link {
background-color: #e0e5b6;
}
.family {
background-color: #faedce;
}
.bold {
font-weight: bold;
}
.textcenter {
text-align: center;
}
.index {
width: 550px;
margin: auto;
}
.td75 {
width: 75%;
background-color: #bbb;
}
.td25 {
width: 25%;
}
</style>
<link rel="stylesheet" href="">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="shortcut icon" href="">
</head>
<body>
<br /><br />
<table id="anchor-cask">
<caption>Liste des oiseaux d'Europe.</caption>
<div class='index'>$liens_index</div>
$bird
</table>
</body>
</html>
EOF
} }
req1() { req1() {
@@ -85,8 +251,9 @@ req1() {
if [[ "${request,,}" == "all" ]]; then if [[ "${request,,}" == "all" ]]; then
request=""; request="";
fi fi
#query1="SELECT * FROM liste WHERE Francais LIKE \"%$1%\" OR Autres LIKE \"%$1%\" OR Latin LIKE \"%$1%\"";
query1="SELECT * FROM liste WHERE Francais LIKE \"%$request%\" OR Autres LIKE \"%$request%\" OR Latin LIKE \"%$request%\""; request=$(echo "$request" | sed 'y/áàâäçéèêëîïìôöóùúüñÂÀÄÇÉÈÊËÎÏÔÖÙÜÑ/aaaaceeeeiiiooouuunAAACEEEEIIOOUUN/')
query1="SELECT * FROM liste WHERE Fra LIKE \"%$request%\" OR Aut LIKE \"%$request%\" OR Latin LIKE \"%$request%\""; query1="SELECT * FROM liste WHERE Fra LIKE \"%$request%\" OR Aut LIKE \"%$request%\" OR Latin LIKE \"%$request%\"";
result1=$(sqlite3 ./birds.db "$query1") result1=$(sqlite3 ./birds.db "$query1")
@@ -96,12 +263,12 @@ req1() {
cmpt=1 cmpt=1
while IFS='|' read -ra array2; while IFS='|' read -ra array2;
do do
aut2="${array2[1]}" fr2="${array2[0]}"
lat2="${array2[2]}" aut2="${array2[2]}"
en2="${array2[3]}" lat2="${array2[4]}"
or2="${array2[4]}" en2="${array2[5]}"
fa2="${array2[5]}" or2="${array2[6]}"
lnk2="${array2[6]}" fa2="${array2[7]}"
lnk2="${array2[8]}" lnk2="${array2[8]}"
tag2="$fr2" tag2="$fr2"
@@ -209,11 +376,10 @@ Help() {
echo "-v Prints current version." echo "-v Prints current version."
echo "-w Export html." echo "-w Export html."
} }
while getopts "b:hm" options; do
while getopts "b:hmw" options; do while getopts "b:hmw" options; do
# b) Bird="${OPTARG}" ;;
case "${options}" in case "${options}" in
m) req2 ;; b) req1 "${OPTARG}" ;;
m|w) req2 "${options}" ;; m|w) req2 "${options}" ;;
v) printf "%s\n" "$VERSION" ; exit 0 ;; v) printf "%s\n" "$VERSION" ; exit 0 ;;
h|*) Help ; exit 2 ;; h|*) Help ; exit 2 ;;

BIN
birds.db

Binary file not shown.

View File

@@ -13,8 +13,8 @@ reset="\033[0m"
dir=$(dirname "$0") # /Users/bruno/Documents/Scripts/keywords2insta dir=$(dirname "$0") # /Users/bruno/Documents/Scripts/keywords2insta
if [ ! -f ./birds.db ]; then if [ ! -f ./birds.db ]; then
cmd0="CREATE TABLE liste (Francais string, Autres string, Latin string, Anglais string, Ordre string, Famille string, Liens string);" cmd0="CREATE TABLE liste (Francais string, Fra string, Autres string, Aut string, Latin string, Anglais string, Ordre string, Famille string, Liens string);"
echo "$cmd0" | sqlite3 ./birds_plus.db echo "$cmd0" | sqlite3 ./birds.db
if [ $? -ne 0 ]; then exit 0; fi if [ $? -ne 0 ]; then exit 0; fi
fi fi
@@ -34,20 +34,24 @@ if [ -f "$dir"/Oiseaux_europe.csv ]; then
((skip_headers--)) ((skip_headers--))
else else
fr="${array[0]}" fr="${array[0]}"
aut="${array[1]}" fr_wa="${array[1]}"
lat="${array[2]}" aut="${array[2]}"
en="${array[3]}" aut_wa="${array[3]}"
or="${array[4]}" lat="${array[4]}"
fa="${array[5]}" en="${array[5]}"
ln="${array[6]}" or="${array[6]}"
fa="${array[7]}"
ln="${array[8]}"
fr=$(echo "$fr" | sed "s/'/''/g") fr=$(echo "$fr" | sed "s/'/''/g")
fr_wa=$(echo "$fr_wa" | sed "s/'/''/g")
aut=$(echo "$aut" | sed "s/'/''/g") aut=$(echo "$aut" | sed "s/'/''/g")
aut_wa=$(echo "$aut_wa" | sed "s/'/''/g")
en=$(echo "$en" | sed "s/'/''/g") en=$(echo "$en" | sed "s/'/''/g")
or=$(echo "$or" | sed "s/'/''/g") or=$(echo "$or" | sed "s/'/''/g")
fa=$(echo "$fa" | sed "s/'/''/g") fa=$(echo "$fa" | sed "s/'/''/g")
cmd1="INSERT INTO liste (Francais, Autres, Latin, Anglais, Ordre, Famille, Liens) VALUES ('$fr','$aut','$lat','$en','$or','$fa','$ln');" cmd1="INSERT INTO liste (Francais, Fra, Autres, Aut, Latin, Anglais, Ordre, Famille, Liens) VALUES ('$fr','$fr_wa','$aut','$aut_wa','$lat','$en','$or','$fa','$ln');"
echo "$cmd1" | sqlite3 ./birds.db echo "$cmd1" | sqlite3 ./birds.db
fi fi