"math/rand"
"net"
"os"
+ "strconv"
"strings"
"time"
)
const clientConfigPath = "/usr/local/etc/mobius-client-config.yaml"
+const (
+ trackerListPage = "trackerList"
+)
//go:embed client/banners/*.txt
var bannerDir embed.FS
Username string `yaml:"Username"`
IconID int `yaml:"IconID"`
Bookmarks []Bookmark `yaml:"Bookmarks"`
+ Tracker string `yaml:"Tracker"`
}
func readConfig(cfgPath string) (*ClientPrefs, error) {
}
func (ui *UI) getTrackerList() *tview.List {
- listing, err := GetListing("hltracker.com:5498")
+ listing, err := GetListing(ui.HLClient.pref.Tracker)
if err != nil {
spew.Dump(err)
}
}
func (ui *UI) renderSettingsForm() *tview.Flex {
+ iconStr := strconv.Itoa(ui.HLClient.pref.IconID)
settingsForm := tview.NewForm()
- settingsForm.AddInputField("Your Name", ui.HLClient.pref.Username, 20, nil, nil)
+ settingsForm.AddInputField("Your Name", ui.HLClient.pref.Username, 0, nil, nil)
+ settingsForm.AddInputField("IconID",iconStr, 0, func(idStr string, _ rune) bool {
+ _, err := strconv.Atoi(idStr)
+ return err == nil
+ }, nil)
+ settingsForm.AddInputField("Tracker", ui.HLClient.pref.Tracker, 0, nil, nil)
settingsForm.AddButton("Save", func() {
ui.HLClient.pref.Username = settingsForm.GetFormItem(0).(*tview.InputField).GetText()
+ iconStr = settingsForm.GetFormItem(1).(*tview.InputField).GetText()
+ ui.HLClient.pref.IconID, _ = strconv.Atoi(iconStr)
+ ui.HLClient.pref.Tracker = settingsForm.GetFormItem(2).(*tview.InputField).GetText()
+
out, err := yaml.Marshal(&ui.HLClient.pref)
if err != nil {
// TODO: handle err
rand.Seed(time.Now().UnixNano())
bannerFiles, _ := bannerDir.ReadDir("client/banners")
- file, _ := os.ReadFile("banners/" + bannerFiles[rand.Intn(len(bannerFiles))].Name())
+ file, _ := bannerDir.ReadFile("client/banners/" + bannerFiles[rand.Intn(len(bannerFiles))].Name())
return fmt.Sprintf("\n\n\nWelcome to...\n\n[red::b]%s[-:-:-]\n\n", file)
}