cmd: testing commands

Signed-off-by: HeshamTB <hishaminv@gmail.com>
This commit is contained in:
HeshamTB 2024-08-14 14:40:31 +03:00
parent f85c7cf3ac
commit 92dddc7ebe
5 changed files with 191 additions and 0 deletions

57
cmd/googleurltest/main.go Normal file
View File

@ -0,0 +1,57 @@
package main
import (
"fmt"
"net/http"
"net/url"
"os"
"strconv"
"time"
)
func main() {
if len(os.Args) < 2 {
fmt.Println(os.Args[0], " <url>")
os.Exit(1)
}
url, err := url.Parse(os.Args[1])
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
fmt.Printf("url.Query(): %+v\n", url.Query())
resp, err := http.Get(url.String())
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
if resp.StatusCode != 200 {
fmt.Printf("http: got %d\n", resp.StatusCode)
}
if url != resp.Request.URL {
fmt.Printf("resp.Request.URL: %+v\n", resp.Request.URL)
fmt.Printf("resp.Request.URL.Query(): %+v\n", resp.Request.URL.Query())
}
time_s := url.Query().Get("expire")
if time_s == "" {
fmt.Println("url: expire key missing")
os.Exit(1)
}
time_ss, err := strconv.ParseInt(time_s, 10, 64)
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
unix := time.Unix(time_ss, 0)
duration := unix.Sub(time.Now())
fmt.Printf("duration.String(): %v\n", duration.String())
}

10
cmd/watchfile/test Normal file
View File

@ -0,0 +1,10 @@
test
a
test
awdeafwqe
test
awd
test
test
awdwd
test

View File

@ -0,0 +1,35 @@
package main
import (
"fmt"
"log"
"github.com/gohugoio/hugo/watcher/filenotify"
)
func main() {
w, err := filenotify.NewEventWatcher()
if err != nil {
log.Fatalln(err.Error())
}
defer w.Close()
err = w.Add("test")
if err != nil {
log.Fatalln(err.Error())
}
for {
select {
case e, ok:= <- w.Events():
if !ok {
log.Println("channel closed")
return
}
fmt.Printf("e: %v\n", e)
}
}
}

32
cmd/ytdlpurldesc/main.go Normal file
View File

@ -0,0 +1,32 @@
package main
import (
"context"
"fmt"
"strings"
"github.com/lrstanley/go-ytdlp"
)
func main() {
cmd := ytdlp.New().ExtractAudio().GetURL().GetDescription()
res, err := cmd.Run(
context.Background(),
"https://www.youtube.com/watch?v=JD9IQRlQyh0",
"https://www.youtube.com/watch?v=ZwkNTwWJP5k",
)
if err != nil {
fmt.Printf("err: %v\n", err)
return
}
lines := strings.Split(res.Stdout, "\n")
for _, line := range lines {
fmt.Printf("line: %v\n", line)
if strings.HasPrefix(line, "https://") {
fmt.Println("probably link")
}
}
}

57
cmd/ytfeed/main.go Normal file
View File

@ -0,0 +1,57 @@
package main
import (
"bufio"
"errors"
"flag"
"fmt"
"io"
"net/http"
"os"
"gitea.hbanafa.com/hesham/yttopodcast/feed"
)
var CHAN_ID *string = flag.String("id", "", "youtube channel id")
func main() {
flag.Parse()
if *CHAN_ID == "" {
perr("provide channel id with -id <id>\n")
os.Exit(1)
}
url := fmt.Sprintf(feed.YT_FEED_URL, *CHAN_ID)
perr(url + "\n")
resp, err := http.Get(url)
if err != nil {
perr(err.Error() + "\n")
os.Exit(1)
}
if resp.StatusCode != http.StatusOK {
perr("http: endpoint returned %s\n", resp.Status)
os.Exit(1)
}
sc := bufio.NewReader(resp.Body)
for {
newl, err := sc.ReadString('\n')
if err != nil {
if errors.Is(err, io.EOF) {
break
}
perr(err.Error() + "\n")
os.Exit(1)
}
fmt.Print(newl)
}
}
func perr(f string, args... any) {
fmt.Fprintf(os.Stderr, f, args...)
}