80 lines
1.6 KiB
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()
|
|
}
|