-
Notifications
You must be signed in to change notification settings - Fork 0
/
global.go
67 lines (62 loc) · 1.75 KB
/
global.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package main
import (
"clout/display"
"clout/models"
"clout/network"
"clout/session"
"encoding/json"
"fmt"
"strings"
"time"
)
func HandleGlobal() {
pub58 := session.LoggedInPub58()
js := network.GetPostsStateless(pub58, false)
var ps models.PostsStateless
json.Unmarshal([]byte(js), &ps)
m := map[string]string{}
for _, p := range ps.PostsFound {
coin := p.ProfileEntryResponse.Username
pub58 := p.ProfileEntryResponse.PublicKeyBase58Check
m[coin] = pub58
}
for coin, pub58 := range m {
fmt.Println(coin)
buyers := GetNotificationsForEachGlobalPost(coin, pub58)
for k, v := range buyers {
fmt.Println(" ", k, v)
}
}
}
func GetNotificationsForEachGlobalPost(coin, pub58 string) map[string]string {
offset := -1
buyers := map[string]string{}
for {
//fmt.Println("offset", offset)
js := network.GetNotificationsWithOffset(offset, pub58)
var list models.NotificationList
//ioutil.WriteFile(fmt.Sprintf("%s_%d.json", coin, offset), []byte(js), 0755)
json.Unmarshal([]byte(js), &list)
if len(list.Notifications) == 0 || offset > 200 {
break
}
for _, n := range list.Notifications {
buyer := list.ProfilesByPublicKey[n.Metadata.TransactorPublicKeyBase58Check].Username
if buyer == "" || strings.HasPrefix(buyer, "B1") {
continue
}
if n.Metadata.TxnType == "SUBMIT_POST" {
} else if n.Metadata.TxnType == "CREATOR_COIN_TRANSFER" {
} else if n.Metadata.TxnType == "CREATOR_COIN" {
cctm := n.Metadata.CreatorCoinTxindexMetadata
if display.OneE9Float(cctm.BitCloutToSellNanos) >= 1.0 {
//display.Row(sizes, username, target, display.OneE9(cctm.BitCloutToSellNanos))
buyers[buyer] = display.OneE9(cctm.BitCloutToSellNanos)
}
}
}
time.Sleep(time.Second * 1)
offset += 50
}
return buyers
}