summaryrefslogtreecommitdiff
path: root/examples/cloudflare/dns.go
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cloudflare/dns.go')
-rw-r--r--examples/cloudflare/dns.go132
1 files changed, 0 insertions, 132 deletions
diff --git a/examples/cloudflare/dns.go b/examples/cloudflare/dns.go
deleted file mode 100644
index eb8de23..0000000
--- a/examples/cloudflare/dns.go
+++ /dev/null
@@ -1,132 +0,0 @@
-// This is a simple example
-package main
-
-import (
- "os"
- "log"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "net/http"
- "strconv"
-)
-
-// Define a struct to match the JSON structure of the response.
-// This structure should be adjusted based on the actual format of the response.
-type DNSRecords struct {
- Result []struct {
- ID string `json:"id"`
- Type string `json:"type"`
- Name string `json:"name"`
- Content string `json:"content"`
- Proxied bool `json:"proxied"`
- Proxiable bool `json:"proxiable"`
- TTL int `json:"ttl"`
- } `json:"result"`
-}
-
-// var domain string = "wit.org"
-// var os.Getenv("CLOUDFLARE_DOMAIN")
-
-func loadDNS(hostname string) {
- log.Println("adding DNS record")
-
- newt := mainWindow.NewTab(hostname)
- newg := newt.NewGroup("more")
- grid := newg.NewGrid("gridnuts", 5, gridH)
-
-// grid.NewButton("Type", func () {
-// log.Println("sort by Type")
-// })
- typedrop := grid.NewDropdown("type")
- typedrop.AddText("A")
- typedrop.AddText("AAAA")
- typedrop.AddText("CNAME")
- typedrop.Custom = func () {
- log.Println("custom dropdown() a =", typedrop.Name, typedrop.S)
- }
- grid.NewButton("Name", func () {
- log.Println("sort by Name")
- })
- grid.NewButton("Protection", func () {
- log.Println("sort proxied")
- })
- grid.NewButton("TTL", func () {
- log.Println("sort by TTL")
- })
- grid.NewButton("Value", func () {
- log.Println("sort by Value")
- })
-
- newt.NewButton("Save", func () {
- log.Println("save stuff to cloudflare")
- })
-
- records := getRecords()
- for _, record := range records.Result {
- grid.NewLabel(record.Type)
- textbox := grid.NewTextbox(record.Name)
- textbox.SetText(record.Name)
- if (record.Proxied) {
- grid.NewLabel("Proxied")
- } else {
- grid.NewLabel("DNS")
- }
- var ttl, short string
- if (record.TTL == 1) {
- ttl = "Auto"
- } else {
- ttl = strconv.Itoa(record.TTL)
- }
- grid.NewLabel(ttl)
- // short = fmt.Sprintf("%80s", record.Content)
- short = record.Content
- if len(short) > 40 {
- short = short[:40] // Slice the first 20 characters
- }
-
- namebox := grid.NewTextbox(short)
- namebox.SetText(short)
-
- fmt.Printf("ID: %s, Type: %s, Name: %s, short Content: %s\n", record.ID, record.Type, record.Name, short)
- fmt.Printf("\tproxied: %b, %b, string TTL: %i\n", record.Proxied, record.Proxiable, ttl)
- }
-}
-
-func getRecords() *DNSRecords {
- var url string = os.Getenv("CLOUDFLARE_URL")
- req, err := http.NewRequest("GET", url, nil)
- if err != nil {
- fmt.Println(err)
- return nil
- }
-
- var authKey string = os.Getenv("CLOUDFLARE_AUTHKEY")
- var email string = os.Getenv("CLOUDFLARE_EMAIL")
-
- // Set headers
- req.Header.Set("X-Auth-Key", authKey)
- req.Header.Set("X-Auth-Email", email)
-
- client := &http.Client{}
- resp, err := client.Do(req)
- if err != nil {
- fmt.Println(err)
- return nil
- }
- defer resp.Body.Close()
-
- body, err := ioutil.ReadAll(resp.Body)
- if err != nil {
- fmt.Println(err)
- return nil
- }
-
- var records DNSRecords
- if err := json.Unmarshal(body, &records); err != nil {
- fmt.Println(err)
- return nil
- }
-
- return &records
-}