notifier/main.go

80 lines
1.6 KiB
Go

package main
import (
"bufio"
"encoding/json"
"fmt"
"io/ioutil"
"log"
"net/http"
"net/url"
"os"
"strings"
)
type apikey struct {
Apikey string `json:"apikey"`
}
func readapikey() string {
dirname, err := os.UserHomeDir()
if err != nil {
log.Fatalln(err)
}
data, err := ioutil.ReadFile(dirname + "/.config/notifier/key.json")
if err != nil {
log.Fatalln(err)
}
var api apikey
err = json.Unmarshal(data, &api)
if err != nil {
fmt.Println("error:", err)
}
return api.Apikey
}
func showBanner() {
fmt.Println(`
____ ___ ______ ____ _____ ____ ___ ____
| \ / \ | Tl j| |l j / _]| \
| _ YY Y| | | T | __j | T / [_ | D )
| | || O |l_j l_j | | | l_ | | Y _]| /
| | || | | | | | | _] | | | [_ | \
| | |l ! | | j l | T j l | T| . Y
l__j__j \___/ l__j |____jl__j |____jl_____jl__j\_j
Name: Muhammad Daffa
Version: 0.0.1`)
}
func curl_line() {
s := bufio.NewScanner(os.Stdin)
if s.Err() != nil {
log.Fatal(s.Err())
}
for s.Scan() {
params := url.Values{}
params.Add("message", s.Text())
body := strings.NewReader(params.Encode())
req, err := http.NewRequest("POST", "https://notify-api.line.me/api/notify", body)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Authorization", "Bearer "+readapikey())
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
resp, err := http.DefaultClient.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
}
}
func main() {
showBanner()
curl_line()
}