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
|
||||
src/shell/.env
|
||||
core
|
||||
|
|
|
@ -42,9 +42,9 @@ bot.global.text({
|
|||
process.env.hb_cmd = cmd
|
||||
pubkey = exec("src/shell/g1-infos.sh silkaj $hb_cmd", function(err, stdout, stderr) {
|
||||
if (err) {
|
||||
b.respond("Une erreur est survenu :" + err)
|
||||
b.respond("Une erreur est survenu :" + stderr)
|
||||
} else {
|
||||
b.respond("```" + stdout + "```")
|
||||
b.respond(stdout)
|
||||
}
|
||||
});
|
||||
}, {
|
||||
|
|
|
@ -4,7 +4,7 @@ const fs = require('fs');
|
|||
const util = require('util')
|
||||
|
||||
bot.global.text({
|
||||
starts: ['./gbanque', 'biz ./gbanque', 'biz gb']
|
||||
starts: ['./gbanque', 'biz ./gbanque', 'biz gb', 'gb']
|
||||
}, (b) => {
|
||||
username = b.message.user.name
|
||||
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) {
|
||||
if (err) {
|
||||
b.respond("Une erreur est survenu: " + err)
|
||||
b.respond("Une erreur est survenu: " + stderr)
|
||||
} else {
|
||||
b.respond(stdout)
|
||||
}
|
||||
|
|
|
@ -18,6 +18,24 @@ sendmsg() {
|
|||
-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() {
|
||||
local chan="$1"
|
||||
[[ ! $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
|
||||
[[ "$comment" =~ [^abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789/-?:'('')'.+\ ] ]] && echo "Votre commentaire contient des charactères non autorisés." && exit 0
|
||||
[[ -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)
|
||||
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 homedir="$HOME/.bog/ids/axiomchat/$chan"
|
||||
source $homedir/db
|
||||
|
||||
# echo "$silkaj history $pubkey"
|
||||
local result=$($silkaj history $pubkey)
|
||||
echo "\`\`\`$result\`\`\`"
|
||||
}
|
||||
|
|
|
@ -7,36 +7,29 @@ MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized
|
|||
source $MY_PATH/functions.sh
|
||||
|
||||
# Get Ḡ1 pubkey base on pseudo
|
||||
|
||||
pubkey() {
|
||||
url="$node/wot/members"
|
||||
args=$(echo $@ | tr ' ' '\n' | grep -v 'biz' | tr '\n' ' ')
|
||||
[ $(echo $args | wc -w) -ge 3 ] && username=$(echo $args | awk '{ print $3 }') || username=$1
|
||||
username=$(echo $username | 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 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"
|
||||
local 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
|
||||
local username=$(echo $username | tr -d '@')
|
||||
local pubkey=$(getPubkey $@)
|
||||
[[ $pubkey ]] && echo "@$username Ta clé publique Ğ1 est: $pubkey" || echo "@$username n'est pas un pseudo membre de la Ḡ1"
|
||||
}
|
||||
|
||||
# Get Ḡ1 pseudo base on pubkey
|
||||
pseudo() {
|
||||
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é."
|
||||
}
|
||||
pseudo() { getPseudo $@; }
|
||||
|
||||
silkaj() {
|
||||
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() {
|
||||
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:"
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ init() {
|
|||
remove() { rm_account $dest; }
|
||||
info() { info_account $dest; }
|
||||
pay() { tx $dest $args; }
|
||||
history() { history $dest; }
|
||||
history() { history_account $dest; }
|
||||
|
||||
[[ "$cmd" =~ ^(init|remove|info|pay|history)$ ]] && "$cmd" || echo "Veuillez indiquer une commande valide"
|
||||
|
||||
|
|
Reference in New Issue