diff options
-rw-r--r-- | README.org | 34 | ||||
-rw-r--r-- | cmd/cetus/cetus.go | 144 |
2 files changed, 2 insertions, 176 deletions
diff --git a/README.org b/README.org index a369fe3..8cc92cd 100644 --- a/README.org +++ b/README.org @@ -6,12 +6,9 @@ wallpapers. *Note*: Cetus is a work in-progress & many features are yet to be implemented. * Features -- set a random/daily/weekly wallpaper - set a specific photo as wallpaper -- set a wallpaper from a specific user, user's likes, a collection or a search - term - customize wallpaper size -* Demo +* pppDemo I just run some cetus commands on my computer, nothing fancy. I'll make better demo videos someday. @@ -20,32 +17,3 @@ demo videos someday. | v0.2.0 | https://diode.zone/videos/watch/12db31e1-3517-4888-ad06-55f3859447a1 | * Dependency - [[https://feh.finalrewind.org/][feh]] -* Installation -** From source -*** Download the source -- Using Go -#+BEGIN_SRC sh -go get https://framagit.org/andinus/cetus.git -#+END_SRC - -- Using git -#+BEGIN_SRC sh -git clone https://framagit.org/andinus/cetus.git -#+END_SRC - -- Using curl -#+BEGIN_SRC sh -# get the master branch (supported formats: zip, tar.gz, tar.bz2, tar) -curl -o cetus-master.tar.gz \ - https://framagit.org/andinus/cetus/-/archive/master/cetus-master.tar.gz -#+END_SRC -*** Compile cetus -Navigate to the source directory & compile cetus. - -#+BEGIN_SRC sh -# compile -go build - -# install in $PATH -go install -#+END_SRC diff --git a/cmd/cetus/cetus.go b/cmd/cetus/cetus.go index 731a4ae..2618245 100644 --- a/cmd/cetus/cetus.go +++ b/cmd/cetus/cetus.go @@ -14,146 +14,4 @@ package main -import ( - "flag" - "fmt" - "log" - "math/rand" - "net/http" - "os/exec" - "strconv" - "time" -) - -var ( - timeout time.Duration - - unsplashAPI string - - width int - height int -) - -func main() { - rand.Seed(time.Now().Unix()) - - var ( - err error - - imgPath string - wall string - src string - srcArr []string = []string{ - "unsplash", - } - ) - - // Parse flags passed to program - flag.StringVar(&src, "src", "random", "Source for the image") - flag.StringVar(&wall, "wall", "random", "Daily, Weekly or Random wallpaper") - - flag.IntVar(&width, "width", 1920, "Width of the image") - flag.IntVar(&height, "height", 1080, "Height of the image") - - flag.StringVar(&unsplashAPI, "unsplash-api", "https://source.unsplash.com", "Unsplash Source API URL") - flag.DurationVar(&timeout, "timeout", 16, "Timeout for http client") - flag.Parse() - - if src == "random" { - src = srcArr[rand.Intn(len(srcArr))] - } - - // Check if the source is known - if !contains(srcArr, src) { - log.Fatal("Error: Unknown Source") - } - - imgPath, err = parseSrcAndGetPath(src, wall) - errChk(err) - - err = setWall(imgPath) - errChk(err) -} - -func contains(arr []string, str string) bool { - for _, i := range arr { - if i == str { - return true - } - } - return false -} - -// Gets image path from src -func parseSrcAndGetPath(src string, wall string) (string, error) { - var err error - var imgPath string - - switch src { - case "unsplash": - fmt.Println("Unsplash Source") - imgPath, err = getPathUnsplash(wall) - } - - return imgPath, err -} - -func getPathUnsplash(wall string) (string, error) { - var err error - var imgPath string - - switch wall { - case "daily", "weekly": - unsplashAPI = fmt.Sprintf("%s/%s", - unsplashAPI, wall) - case "random": - unsplashAPI = fmt.Sprintf("%s/%sx%s", - unsplashAPI, strconv.Itoa(width), strconv.Itoa(height)) - default: - return "", fmt.Errorf("Error: Unknown wall") - } - - req, err := http.NewRequest(http.MethodGet, unsplashAPI, nil) - if err != nil { - return "", err - } - - res, err := getRes(req) - if err != nil { - return "", err - } - defer res.Body.Close() - - // Unsplash Source API will redirect to the image - imgPath = res.Request.URL.String() - return imgPath, err -} - -// Calls feh to set the wallpaper -func setWall(imgPath string) error { - feh, err := exec.LookPath("feh") - if err != nil { - fmt.Println("Error: feh is not in $PATH") - return err - } - - fmt.Printf("Path to set as Wallpaper: %s\n", imgPath) - - err = exec.Command(feh, "--bg-fill", imgPath).Run() - return err -} - -func getRes(req *http.Request) (*http.Response, error) { - client := http.Client{ - Timeout: time.Second * timeout, - } - res, err := client.Do(req) - - return res, err -} - -func errChk(err error) { - if err != nil { - log.Fatal(err) - } -} +func main() {} |