diff options
| author | kaotisk <kaotisk@arching-kaos.org> | 2023-04-16 04:48:19 +0300 | 
|---|---|---|
| committer | kaotisk <kaotisk@arching-kaos.org> | 2023-04-16 04:48:19 +0300 | 
| commit | 5c9c4b177400c5279b6a7c3f05e9be113cf5458b (patch) | |
| tree | c8e335c362f49d5fccda158ecf25ada37d498aae /bin/ak-stellar-get-participants | |
| parent | b68cfb97905628e60f23c430b253e5c69eeaa3f9 (diff) | |
| download | arching-kaos-tools-5c9c4b177400c5279b6a7c3f05e9be113cf5458b.tar.gz arching-kaos-tools-5c9c4b177400c5279b6a7c3f05e9be113cf5458b.tar.bz2 arching-kaos-tools-5c9c4b177400c5279b6a7c3f05e9be113cf5458b.zip  | |
Added crawler for the Stellar Network, returning addresses and configuration values if any
Diffstat (limited to 'bin/ak-stellar-get-participants')
| -rwxr-xr-x | bin/ak-stellar-get-participants | 96 | 
1 files changed, 96 insertions, 0 deletions
diff --git a/bin/ak-stellar-get-participants b/bin/ak-stellar-get-participants new file mode 100755 index 0000000..8921fad --- /dev/null +++ b/bin/ak-stellar-get-participants @@ -0,0 +1,96 @@ +#!/bin/bash +PROGRAM="$(basename $0)" +logit(){ +    ak-logthis "<$PROGRAM>" "$1" "$2" +} +stellarParticipants="$AK_WORKDIR/stellar-network-participants" +stellarParticipantsOnline="$AK_WORKDIR/stellar-network-participants-online" +if [ ! -f "$stellarParticipants" ] +then +    touch $stellarParticipants +fi +if [ ! -f "$stellarParticipantsOnline" ] +then +    touch $stellarParticipantsOnline +fi + +if [ ! -z $1 ] && [ "$1" == "-l" ] && [ ! -z $2 ] +then +    limit=$2 +else +    limit=3 +fi + +show_ids(){ +    i=0 +    flag=0 +    while [ "$i" -lt "$limit" ] +    do +        test="$(cat tmp | jq '.["_embedded"]' | jq .'["records"]' | jq '.['$i']' | jq '.["id"]' | sed -e 's/\"//g')" +        while IFS="" read -r p || [ -n "$p" ] +        do +            if [ "$p" == "$test" ] +            then +                flag=1 +                break +            fi +        done < $stellarParticipants +        if [ "$flag" == "0" ] +        then +            echo $test >> $stellarParticipants +            logit "[INFO]" "Added $test" +        else +            logit "[INFO]" "$test already there. Skipping..." +        fi +        i="$(expr $i + 1)" +    done +} + +get_next_page(){ +    cat tmp | grep -1 next | grep https | sed -e 's/^.*https/https/' | sed -e 's/\u0026/\&/g; s/"//g; s/\\//g' +} + +proceed_to_next_page(){ + +    nextURL="$(get_next_page)" +    curl "$nextURL" > tmp 2>/dev/null +} + +get_asset_holders(){ +    curl https://horizon.stellar.org/accounts\?asset\=ARCHINGKAOS:GB4QVKD6NW3CSNO5TNPARAWNPPXOPSSTKB35XCWB7PUNBIQTK3DVELB2\&limit\=$limit > tmp 2>/dev/null +} + +get_asset_holders  +while [ "$(tail -1 $stellarParticipants)" != "null" ] +do +    show_ids +    proceed_to_next_page  +done + +grep G $stellarParticipants > tmpaddr +cat tmpaddr > $stellarParticipants +rm tmp tmpaddr +while IFS="" read -r p || [ -n "$p" ] +do +    flag=0 +    test="$(curl https://horizon.stellar.org/accounts/$p/data/config 2>/dev/null | grep value)" +    if [ "$?" == 0 ] +    then +        addressValuePair="$(printf '%s %s\n' "$p" "$(echo $test | sed -e 's/^.*: "//g; s/"//g' | base64 -d)")" +        while IFS="" read -r x || [ -n "$x" ] +        do +            if [ "$x" == "$addressValuePair" ] +            then +                flag=1 +                break +            fi +        done < $stellarParticipantsOnline +        if [ "$flag" == "0" ] +        then +            echo $addressValuePair >> $stellarParticipantsOnline +            logit "[INFO]" "$p is configured with  $(echo $addressValuePair | awk '{ print $2 }'). Added to online participants." +        else +            logit "[INFO]" "$(echo $addressValuePair | awk '{ print $2 }') is already in $stellarParticipantsOnline. Skipping..." +        fi +    fi +done < $stellarParticipants  | 
