request jobs generation
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -5,6 +5,7 @@ import (
|
||||
"errors"
|
||||
"math/rand"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"forge.redroom.link/yves/meowlib"
|
||||
@ -187,8 +188,8 @@ func (id *Identity) HidePeer(peerIdx int, password string) error {
|
||||
}
|
||||
|
||||
func (id *Identity) generateRandomHiddenStuff() {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
count := rand.Intn(maxHiddenCount) + 1
|
||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
count := r.Intn(maxHiddenCount) + 1
|
||||
for i := 1; i < count; i++ {
|
||||
var p Peer
|
||||
p.Name = randomLenString(4, 20)
|
||||
@ -202,21 +203,72 @@ func (id *Identity) generateRandomHiddenStuff() {
|
||||
p.Contact.AddUrls([]string{randomLenString(14, 60), randomLenString(14, 60)})
|
||||
id.Peers = append(id.Peers, p)
|
||||
id.HidePeer(0, randomLenString(8, 14))
|
||||
// TODO Add conversations
|
||||
// TODO Add random conversations
|
||||
}
|
||||
}
|
||||
|
||||
type RequestsJob struct {
|
||||
server Server `json:"server,omitempty"`
|
||||
lookupKeys []meowlib.KeyPair `json:"lookup_keys,omitempty"`
|
||||
}
|
||||
|
||||
func (id *Identity) GetRequestJobs() []*RequestsJob {
|
||||
var list []*RequestsJob
|
||||
srvs := map[string]*RequestsJob{}
|
||||
// build a server map
|
||||
for _, server := range id.MessageServers.Servers {
|
||||
var rj RequestsJob
|
||||
rj.server = server
|
||||
srvs[server.ServerData.GetUid()] = &rj
|
||||
}
|
||||
// add ids to the map
|
||||
for _, peer := range id.Peers {
|
||||
for _, server := range peer.MyPullServers {
|
||||
srvs[server.GetUid()].lookupKeys = append(srvs[server.GetUid()].lookupKeys, peer.MyLookupKp)
|
||||
}
|
||||
}
|
||||
// add hidden peers
|
||||
for _, peer := range id.unlockedHiddenPeers {
|
||||
for _, server := range peer.MyPullServers {
|
||||
srvs[server.GetUid()].lookupKeys = append(srvs[server.GetUid()].lookupKeys, peer.MyLookupKp)
|
||||
}
|
||||
}
|
||||
// todo add garbage
|
||||
|
||||
// todo reorder shit
|
||||
|
||||
// build list
|
||||
for _, value := range srvs {
|
||||
list = append(list, value)
|
||||
}
|
||||
return list
|
||||
}
|
||||
|
||||
func (id *Identity) SaveRequestJobs() error {
|
||||
jobs := id.GetRequestJobs()
|
||||
jsonjobs, err := json.Marshal(jobs)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = os.WriteFile(filepath.Join(GetConfig().StoragePath, ".jobs"), jsonjobs, 0644)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func randomLenString(min int, max int) string {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
n := rand.Intn(max-min) + min
|
||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
n := r.Intn(max-min) + min
|
||||
return randomString(n)
|
||||
}
|
||||
|
||||
func randomString(n int) string {
|
||||
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||
var letters = []rune("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")
|
||||
s := make([]rune, n)
|
||||
for i := range s {
|
||||
s[i] = letters[rand.Intn(len(letters))]
|
||||
s[i] = letters[r.Intn(len(letters))]
|
||||
}
|
||||
return string(s)
|
||||
}
|
||||
|
Reference in New Issue
Block a user