Add history, cleanup pubkey function, forebiden unwanted silkaj commands

This commit is contained in:
poka 2020-07-23 02:16:31 +02:00
parent 8edca7d441
commit 8a550eb9f4
6 changed files with 42 additions and 26 deletions

1
.gitignore vendored
View File

@ -69,3 +69,4 @@ memo.txt
# BoG
src/shell/.env
core

View File

@ -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)
}
});
}, {

View File

@ -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)
}

View File

@ -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\`\`\`"
}

View File

@ -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:"
}

View File

@ -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"