Add history, cleanup pubkey function, forebiden unwanted silkaj commands
This commit is contained in:
parent
8edca7d441
commit
8a550eb9f4
|
@ -69,3 +69,4 @@ memo.txt
|
||||||
|
|
||||||
# BoG
|
# BoG
|
||||||
src/shell/.env
|
src/shell/.env
|
||||||
|
core
|
||||||
|
|
|
@ -42,9 +42,9 @@ bot.global.text({
|
||||||
process.env.hb_cmd = cmd
|
process.env.hb_cmd = cmd
|
||||||
pubkey = exec("src/shell/g1-infos.sh silkaj $hb_cmd", function(err, stdout, stderr) {
|
pubkey = exec("src/shell/g1-infos.sh silkaj $hb_cmd", function(err, stdout, stderr) {
|
||||||
if (err) {
|
if (err) {
|
||||||
b.respond("Une erreur est survenu :" + err)
|
b.respond("Une erreur est survenu :" + stderr)
|
||||||
} else {
|
} else {
|
||||||
b.respond("```" + stdout + "```")
|
b.respond(stdout)
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -4,7 +4,7 @@ const fs = require('fs');
|
||||||
const util = require('util')
|
const util = require('util')
|
||||||
|
|
||||||
bot.global.text({
|
bot.global.text({
|
||||||
starts: ['./gbanque', 'biz ./gbanque', 'biz gb']
|
starts: ['./gbanque', 'biz ./gbanque', 'biz gb', 'gb']
|
||||||
}, (b) => {
|
}, (b) => {
|
||||||
username = b.message.user.name
|
username = b.message.user.name
|
||||||
process.env.hb_username = username
|
process.env.hb_username = username
|
||||||
|
@ -15,7 +15,7 @@ bot.global.text({
|
||||||
|
|
||||||
gbanque = exec("src/shell/gbanque.sh ~~~$hb_cmd~~~$hb_username~~~$hb_room", function(err, stdout, stderr) {
|
gbanque = exec("src/shell/gbanque.sh ~~~$hb_cmd~~~$hb_username~~~$hb_room", function(err, stdout, stderr) {
|
||||||
if (err) {
|
if (err) {
|
||||||
b.respond("Une erreur est survenu: " + err)
|
b.respond("Une erreur est survenu: " + stderr)
|
||||||
} else {
|
} else {
|
||||||
b.respond(stdout)
|
b.respond(stdout)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,24 @@ sendmsg() {
|
||||||
-d "{ \"channel\": \"$chan\", \"text\": \"$msg\" }" > /dev/null 2>&1
|
-d "{ \"channel\": \"$chan\", \"text\": \"$msg\" }" > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getPubkey() {
|
||||||
|
url="$node/wot/members"
|
||||||
|
[[ -z $username || $username == "bot" ]] && username=$(echo $1 | tr -d '@')
|
||||||
|
# old way: local pubkey=$(curl -m 5 -s $url | grep -wiB 1 $username | grep "pubkey" | awk -F '"' '{ print $4 }')
|
||||||
|
local pubkey=$(curl -m 10 -s $url | jq -r --arg username "$username" '.results[] | select(.uid==$username) | .pubkey')
|
||||||
|
[[ $pubkey ]] && echo "$pubkey" || echo "none"
|
||||||
|
}
|
||||||
|
|
||||||
|
getPseudo() {
|
||||||
|
url="$node/wot/members"
|
||||||
|
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
|
||||||
|
[ $(echo $args | wc -w) -ge 2 ] && pubkey=$(echo $args | awk '{ print $2 }') || pubkey=$1
|
||||||
|
# pubkey="$1"
|
||||||
|
pubkey=$(echo $pubkey | tr -d '@')
|
||||||
|
local pseudo=$(curl -m 10 -s $url | jq -r --arg pubkey "$pubkey" '.results[] | select(.pubkey==$pubkey) | .uid')
|
||||||
|
[[ $pseudo ]] && echo "Le pseudo correspondant à la clé publique $pubkey est: @$pseudo" || echo "La clé publique $pubkey n'a pas de pseudo associé."
|
||||||
|
}
|
||||||
|
|
||||||
info_account() {
|
info_account() {
|
||||||
local chan="$1"
|
local chan="$1"
|
||||||
[[ ! $chan ]] && echo "Please select user." && exit 0
|
[[ ! $chan ]] && echo "Please select user." && exit 0
|
||||||
|
@ -93,16 +111,20 @@ tx() {
|
||||||
#This shoudl works, but accents are ok and should not... [[ ! "$comment" =~ [^a-zA-Z0-9\ ] ]] && echo OK
|
#This shoudl works, but accents are ok and should not... [[ ! "$comment" =~ [^a-zA-Z0-9\ ] ]] && echo OK
|
||||||
[[ "$comment" =~ [^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:'('')'.+\ ] ]] && echo "Votre commentaire contient des charactères non autorisés." && exit 0
|
[[ "$comment" =~ [^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:'('')'.+\ ] ]] && echo "Votre commentaire contient des charactères non autorisés." && exit 0
|
||||||
[[ -z "$comment" ]] && local comment="Transaction effectuee avec BoG."
|
[[ -z "$comment" ]] && local comment="Transaction effectuee avec BoG."
|
||||||
|
[[ $amount =~ '-' ]] && echo "La somme de votre transaction ne peut être négative: **$amount** Ḡ1" && exit 0
|
||||||
|
[[ $(echo $dest | wc -c) -le 43 ]] && local dest=$(getPubkey $dest)
|
||||||
|
[[ $dest == "none" ]] && echo "Ce pseudo ne correspond à aucun membre Ḡ1 connu." && exit 0
|
||||||
|
|
||||||
local result=$($silkaj --auth-file --file ~/.bog/ids/axiomchat/$chan/secret.dunikey tx --amount $amount --output $dest --comment "$comment" -y)
|
local result=$($silkaj --auth-file --file ~/.bog/ids/axiomchat/$chan/secret.dunikey tx --amount $amount --output $dest --comment "$comment" -y)
|
||||||
echo "\`\`\`$result\`\`\`"
|
[[ -n $result ]] && echo "\`\`\`$result\`\`\`" || echo "Une erreur est survenu, votre transaction n'a pas été effecutée." && exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
history() {
|
history_account() {
|
||||||
local chan="$1"
|
local chan="$1"
|
||||||
local homedir="$HOME/.bog/ids/axiomchat/$chan"
|
local homedir="$HOME/.bog/ids/axiomchat/$chan"
|
||||||
source $homedir/db
|
source $homedir/db
|
||||||
|
|
||||||
|
# echo "$silkaj history $pubkey"
|
||||||
local result=$($silkaj history $pubkey)
|
local result=$($silkaj history $pubkey)
|
||||||
echo "\`\`\`$result\`\`\`"
|
echo "\`\`\`$result\`\`\`"
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,36 +7,29 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
||||||
source $MY_PATH/functions.sh
|
source $MY_PATH/functions.sh
|
||||||
|
|
||||||
# Get Ḡ1 pubkey base on pseudo
|
# Get Ḡ1 pubkey base on pseudo
|
||||||
|
|
||||||
pubkey() {
|
pubkey() {
|
||||||
url="$node/wot/members"
|
local args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
|
||||||
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
|
[ $(echo $args | wc -w) -ge 3 ] && local username=$(echo $args | awk '{ print $3 }') || local username=$1
|
||||||
[ $(echo $args | wc -w) -ge 3 ] && username=$(echo $args | awk '{ print $3 }') || username=$1
|
local username=$(echo $username | tr -d '@')
|
||||||
username=$(echo $username | tr -d '@')
|
local pubkey=$(getPubkey $@)
|
||||||
# old way: local pubkey=$(curl -m 5 -s $url | grep -wiB 1 $username | grep "pubkey" | awk -F '"' '{ print $4 }')
|
[[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas un pseudo membre de la Ḡ1"
|
||||||
local pubkey=$(curl -m 5 -s $url | jq -r --arg username "$username" '.results[] | select(.uid==$username) | .pubkey')
|
|
||||||
[[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas pseudo membre de la Ḡ1"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get Ḡ1 pseudo base on pubkey
|
# Get Ḡ1 pseudo base on pubkey
|
||||||
pseudo() {
|
pseudo() { getPseudo $@; }
|
||||||
url="$node/wot/members"
|
|
||||||
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
|
|
||||||
[ $(echo $args | wc -w) -ge 2 ] && pubkey=$(echo $args | awk '{ print $2 }') || pubkey=$1
|
|
||||||
# pubkey="$1"
|
|
||||||
pubkey=$(echo $pubkey | tr -d '@')
|
|
||||||
# old way: local pubkey=$(curl -m 5 -s $url | grep -wiB 1 $username | grep "pubkey" | awk -F '"' '{ print $4 }')
|
|
||||||
local pseudo=$(curl -m 5 -s $url | jq -r --arg pubkey "$pubkey" '.results[] | select(.pubkey==$pubkey) | .uid')
|
|
||||||
[[ $pseudo ]] && echo "Le pseudo correspondant à la clé publique $pubkey est: @$pseudo" || echo "La clé publique $pubkey n'a pas de pseudo associé."
|
|
||||||
}
|
|
||||||
|
|
||||||
silkaj() {
|
silkaj() {
|
||||||
args=$(echo "$@" | tr ' ' '\n' | grep -vEw 'silkaj|biz' | tr '\n' ' ')
|
args=$(echo "$@" | tr ' ' '\n' | grep -vEw 'silkaj|biz' | tr '\n' ' ')
|
||||||
$silkaj $args || echo "Silkaj ne comprends cette commande."
|
cmd=$(echo $args | tr ' ' '\n' | grep -v '-' | head -n1)
|
||||||
|
[[ $cmd =~ ^(tx|authfile|cert)$ ]] && echo "BoḠ refuse d'executer la commande \`$cmd\` ... :eyes:" && exit 0
|
||||||
|
result=$($silkaj $args) || echo "Silkaj ne comprends cette commande."
|
||||||
|
echo "\`\`\`$result\`\`\`"
|
||||||
}
|
}
|
||||||
|
|
||||||
membres() {
|
membres() {
|
||||||
url="$node/blockchain/current"
|
url="$node/blockchain/current"
|
||||||
local nbr_membres=$(curl -m 5 -s $url | jq '.membersCount')
|
local nbr_membres=$(curl -m 10 -s $url | jq '.membersCount')
|
||||||
[[ $nbr_membres ]] && echo "Il y a actuellement $nbr_membres membres de la Ğ1 !" || echo "Service en maintenance, réessayez dans un instant :coffee:"
|
[[ $nbr_membres ]] && echo "Il y a actuellement $nbr_membres membres de la Ğ1 !" || echo "Service en maintenance, réessayez dans un instant :coffee:"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ init() {
|
||||||
remove() { rm_account $dest; }
|
remove() { rm_account $dest; }
|
||||||
info() { info_account $dest; }
|
info() { info_account $dest; }
|
||||||
pay() { tx $dest $args; }
|
pay() { tx $dest $args; }
|
||||||
history() { history $dest; }
|
history() { history_account $dest; }
|
||||||
|
|
||||||
[[ "$cmd" =~ ^(init|remove|info|pay|history)$ ]] && "$cmd" || echo "Veuillez indiquer une commande valide"
|
[[ "$cmd" =~ ^(init|remove|info|pay|history)$ ]] && "$cmd" || echo "Veuillez indiquer une commande valide"
|
||||||
|
|
||||||
|
|
Reference in New Issue