request jobs generation
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
ycc
2024-01-12 23:17:34 +01:00
parent a9f3b548e5
commit 48b2e78b41
5 changed files with 442 additions and 285 deletions

View File

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