keyword everywhere api helper checker – golang and fyne project
keyword everywhere api helper checker – golang and fyne project
source code
<div>
<div>package main</div>
<div>import (</div>
<div> _ "bytes"</div>
<div> _ "encoding/json"</div>
<div> _ "fmt"</div>
<div> "image/color"</div>
<div> "io/ioutil"</div>
<div> "net/http"</div>
<div> "regexp"</div>
<div> _ "strings"</div>
<div> "unsafe"</div>
<div> "fyne.io/fyne/v2/app"</div>
<div> "fyne.io/fyne/v2/canvas"</div>
<div> "fyne.io/fyne/v2/container"</div>
<div> "fyne.io/fyne/v2/widget"</div>
<div>)</div>
<div>func BytesToString(b []byte) string {</div>
<div> return *(*string)(unsafe.Pointer(&b))</div>
<div>}</div>
<div>func stripRegex(in string) string {</div>
<div> reg, _ := regexp.Compile("[^a-zA-Z0-9 ]+")</div>
<div> return reg.ReplaceAllString(in, "")</div>
<div>}</div>
<div>func main() {</div>
<div> url := "https://api.keywordseverywhere.com/v1/account/credits"</div>
<div> a := app.New()</div>
<div> w := a.NewWindow("Keyword everywhere api Helper")</div>
<div> l2 := canvas.NewText("KeywordEveryWhere Api Helper",</div>
<div> color.RGBA{R: 255, G: 0, B: 0, A: 255})</div>
<div> l2.TextSize = 23</div>
<div> // get key from user</div>
<div> in := widget.NewEntry()</div>
<div> in.PlaceHolder = "Enter your API key here"</div>
<div> l := widget.NewLabel("Credits left....")</div>
<div> btn := widget.NewButton("Check Status", func() {</div>
<div> var key = in.Text</div>
<div> var bearer = "Bearer " + key</div>
<div> // Create a new request using http</div>
<div> req, _ := http.NewRequest("GET", url, nil)</div>
<div> // add authorization header to the req</div>
<div> req.Header.Add("Authorization", bearer)</div>
<div> // add app/json header to the req</div>
<div> req.Header.Add("Accept", "application/json")</div>
<div> // Send req using http Client</div>
<div> client := &http.Client{}</div>
<div> resp, _ := client.Do(req)</div>
<div> defer resp.Body.Close()</div>
<div> if resp.StatusCode == 401 {</div>
<div> l.Text = "invalid api key"</div>
<div> l.Refresh()</div>
<div> } else if resp.StatusCode == 200 {</div>
<div> body, _ := ioutil.ReadAll(resp.Body)</div>
<div> // this function will remove all non alphaNumeric characters</div>
<div> var replaceStr = stripRegex(string(body))</div>
<div> l.Text = "Credits left " + replaceStr</div>
<div> l.Refresh()</div>
<div> }</div>
<div> })</div>
<div> w.SetContent(container.NewVBox(l2, in, l, btn))</div>
<div> w.ShowAndRun()</div>
<div>}</div>
</div>