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
VERSION="v0.7"
VERSION="v1.0"
red="\033[1;31m"
greenbold="\033[1;32m"
@@ -15,13 +15,13 @@ reset="\033[0m"
dotenv () {
set -a
# 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
}
dotenv
### ChangeNotes: .
### ChangeNotes: Minor corrections.
Github="https://github.com/bruno21/bashbirds"
# Repo normal:
#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:
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")"
echo $LatestRelease
#[[ $LatestRelease != $VERSION ]] && new="($LatestRelease)" || new=""
echo -e "${yellowbold}Bashbird${reset} $VERSION\n"
req2() {
f_md="liste_oiseaux.md"
if [ -f "./$f_md" ]; then
rm "./$f_md"
option=$1
case $option in
m) ext=".md" ;;
w) ext=".html";old_index="_" ;;
esac
f="liste_oiseaux$ext"
if [ -f "./$f" ]; then
rm "./$f"
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")
#echo "$result2"
i=1
index=()
array=()
while IFS='|' read -ra array;
do
@@ -61,21 +74,174 @@ req2() {
or="${array[4]}"
fa="${array[5]}"
ln="${array[6]}"
#echo "$ln"
#read -r -p "Would you like to update? y/[n]: " SelfUpdate
[[ $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"
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"
fi
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
}
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() {
@@ -85,8 +251,9 @@ req1() {
if [[ "${request,,}" == "all" ]]; then
request="";
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%\"";
result1=$(sqlite3 ./birds.db "$query1")
@@ -96,12 +263,12 @@ req1() {
cmpt=1
while IFS='|' read -ra array2;
do
aut2="${array2[1]}"
lat2="${array2[2]}"
en2="${array2[3]}"
or2="${array2[4]}"
fa2="${array2[5]}"
lnk2="${array2[6]}"
fr2="${array2[0]}"
aut2="${array2[2]}"
lat2="${array2[4]}"
en2="${array2[5]}"
or2="${array2[6]}"
fa2="${array2[7]}"
lnk2="${array2[8]}"
tag2="$fr2"
@@ -209,11 +376,10 @@ Help() {
echo "-v Prints current version."
echo "-w Export html."
}
while getopts "b:hm" options; do
while getopts "b:hmw" options; do
# b) Bird="${OPTARG}" ;;
case "${options}" in
m) req2 ;;
b) req1 "${OPTARG}" ;;
m|w) req2 "${options}" ;;
v) printf "%s\n" "$VERSION" ; exit 0 ;;
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
if [ ! -f ./birds.db ]; then
cmd0="CREATE TABLE liste (Francais string, Autres string, Latin string, Anglais string, Ordre string, Famille string, Liens string);"
echo "$cmd0" | sqlite3 ./birds_plus.db
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.db
if [ $? -ne 0 ]; then exit 0; fi
fi
@@ -34,20 +34,24 @@ if [ -f "$dir"/Oiseaux_europe.csv ]; then
((skip_headers--))
else
fr="${array[0]}"
aut="${array[1]}"
lat="${array[2]}"
en="${array[3]}"
or="${array[4]}"
fa="${array[5]}"
ln="${array[6]}"
fr_wa="${array[1]}"
aut="${array[2]}"
aut_wa="${array[3]}"
lat="${array[4]}"
en="${array[5]}"
or="${array[6]}"
fa="${array[7]}"
ln="${array[8]}"
fr=$(echo "$fr" | sed "s/'/''/g")
fr_wa=$(echo "$fr_wa" | sed "s/'/''/g")
aut=$(echo "$aut" | sed "s/'/''/g")
aut_wa=$(echo "$aut_wa" | sed "s/'/''/g")
en=$(echo "$en" | sed "s/'/''/g")
or=$(echo "$or" | 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
fi