diff options
author | Andinus <andinus@inventati.org> | 2020-03-14 16:23:53 +0530 |
---|---|---|
committer | Andinus <andinus@inventati.org> | 2020-03-14 16:23:53 +0530 |
commit | a7e66bc241524caf1accf02966c76f436fa19210 (patch) | |
tree | 8c8002b03ac1399ffe914e448de6c51f6777fab9 | |
parent | 6849d7fb2d78ee820978fa64cc3b6623dbf8d633 (diff) | |
download | cetus-a7e66bc241524caf1accf02966c76f436fa19210.tar.gz |
Split project into multiple programs
Re-initialization to split project into multiple programs
-rw-r--r-- | README.org | 31 | ||||
-rw-r--r-- | cmd/cetus/cetus.go | 60 | ||||
-rw-r--r-- | pkg/unsplash/unsplash.go | 89 |
3 files changed, 7 insertions, 173 deletions
diff --git a/README.org b/README.org index 75678c5..9363c21 100644 --- a/README.org +++ b/README.org @@ -1,37 +1,20 @@ #+TITLE: Cetus -Cetus is a wallpaper manager written in Go. It uses [[https://source.unsplash.com/][Unsplash Source]] to get -wallpapers. +Cetus is a simple wallpaper management tool written in Go. It supports multiple +sources for fetching the background. *Note*: Cetus is a work in-progress & many features are yet to be implemented. -* Features -- set a specific photo as background -- set a random photo as background -- customize wallpaper size +*Dependency*: [[https://feh.finalrewind.org/][feh]] + * Demo I just run some cetus commands on my computer, nothing fancy. I'll make better demo videos someday. +*Note*: Cetus was restructured multiple times & these demos may not work on the +latest release. + | Version | Video | |---------+----------------------------------------------------------------------| | v0.3.1 | https://diode.zone/videos/watch/0808c512-315a-4dab-9526-4a537e8c3257 | | v0.2.0 | https://diode.zone/videos/watch/12db31e1-3517-4888-ad06-55f3859447a1 | -* Dependency -- [[https://feh.finalrewind.org/][feh]] -* Usage -** photo-id -photo-id flag can be used to set a specific photo as background. -#+BEGIN_SRC sh -cetus -width 1920 -height 1080 \ - -photo-id=FzrjgIId6NU -#+END_SRC -** random -random flag can be used to set a random photo as background, this is the default -behaviour. -#+BEGIN_SRC sh -cetus -width 1920 -height 1080 \ - -random - -cetus -width 1920 -height 1080 # same as above -#+END_SRC diff --git a/cmd/cetus/cetus.go b/cmd/cetus/cetus.go deleted file mode 100644 index e6799c8..0000000 --- a/cmd/cetus/cetus.go +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright (c) 2020, Andinus <andinus@inventati.org> - -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. - -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -package main - -import ( - "flag" - "log" - - "framagit.org/andinus/cetus/pkg/unsplash" -) - -func main() { - var ( - photoID string - random bool - - width int - height int - - err error - ) - - flag.StringVar(&photoID, "photo-id", "", "Unsplash Photo ID to set as background") - flag.BoolVar(&random, "random", true, "Set a random photo as background") - - flag.IntVar(&width, "width", 1920, "Width of the image") - flag.IntVar(&height, "height", 1080, "Height of the image") - - flag.Parse() - - if len(photoID) != 0 { - err = unsplash.SetFromID(photoID, width, height) - errChk(err) - return - } - - if random { - err = unsplash.SetRandom(width, height) - errChk(err) - return - } -} - -func errChk(err error) { - if err != nil { - log.Fatal(err) - } -} diff --git a/pkg/unsplash/unsplash.go b/pkg/unsplash/unsplash.go deleted file mode 100644 index 7cd408a..0000000 --- a/pkg/unsplash/unsplash.go +++ /dev/null @@ -1,89 +0,0 @@ -// Copyright (c) 2020, Andinus <andinus@inventati.org> - -// Permission to use, copy, modify, and/or distribute this software for any -// purpose with or without fee is hereby granted, provided that the above -// copyright notice and this permission notice appear in all copies. - -// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - -package unsplash - -import ( - "fmt" - "net/http" - "time" - - "framagit.org/andinus/cetus/pkg" -) - -// SetFromID sets background from Unsplash Photo ID -func SetFromID(photoID string, width int, height int) error { - var path string - var err error - - path = getPathFromID(photoID) - path = appendSizeToPath(path, width, height) - err = background.Set(path) - return err -} - -// SetRandom sets a random photo as background -func SetRandom(width int, height int) error { - var path string - var err error - - path, err = getPathRandom(width, height) - if err != nil { - return err - } - err = background.Set(path) - return err -} - -func getPathFromID(photoID string) string { - var path string - path = fmt.Sprintf("%s/%s", "https://source.unsplash.com", photoID) - return path -} - -func getPathRandom(width int, height int) (string, error) { - var err error - var path string - var reqPath string - - client := http.Client{ - Timeout: time.Second * 64, - } - - reqPath = "https://source.unsplash.com" - reqPath = appendSizeToPath(reqPath, width, height) - - req, err := http.NewRequest(http.MethodGet, reqPath, nil) - if err != nil { - return "", err - } - - res, err := client.Do(req) - if err != nil { - return "", err - } - defer res.Body.Close() - - // Unsplash Source redirects to the photo - path = res.Request.URL.String() - return path, nil -} - -func appendSizeToPath(path string, width int, height int) string { - var size string - - size = fmt.Sprintf("%dx%d", width, height) - path = fmt.Sprintf("%s/%s", path, size) - return path -} |