From ea8a01e9ae40f5478167abcf4563682adc77efb6 Mon Sep 17 00:00:00 2001 From: Andinus Date: Sat, 14 Mar 2020 13:11:52 +0530 Subject: Add photoID support photo-id flag can be used to set a specific photo as background --- cmd/cetus/cetus.go | 37 ++++++++++++++++++++++++++++++++++++- pkg/background.go | 2 ++ pkg/unsplash/unsplash.go | 37 +++++++++++++++++++++++++++++++++++++ 3 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 pkg/unsplash/unsplash.go diff --git a/cmd/cetus/cetus.go b/cmd/cetus/cetus.go index 2618245..35afd01 100644 --- a/cmd/cetus/cetus.go +++ b/cmd/cetus/cetus.go @@ -14,4 +14,39 @@ package main -func main() {} +import ( + "flag" + "log" + + "framagit.org/andinus/cetus/pkg/unsplash" +) + +func main() { + var ( + photoID string + + width int + height int + + err error + ) + + flag.StringVar(&photoID, "photo-id", "", "Unsplash Photo ID to set 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 + } +} + +func errChk(err error) { + if err != nil { + log.Fatal(err) + } +} diff --git a/pkg/background.go b/pkg/background.go index 44e455c..c6000ff 100644 --- a/pkg/background.go +++ b/pkg/background.go @@ -14,6 +14,8 @@ package background +import "os/exec" + // Set calls feh to set the background func Set(path string) error { feh, err := exec.LookPath("feh") diff --git a/pkg/unsplash/unsplash.go b/pkg/unsplash/unsplash.go new file mode 100644 index 0000000..3070716 --- /dev/null +++ b/pkg/unsplash/unsplash.go @@ -0,0 +1,37 @@ +// Copyright (c) 2020, Andinus + +// 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" + + "framagit.org/andinus/cetus/pkg" +) + +// SetFromID sets background from Unsplash Photo ID +func SetFromID(photoID string, width int, height int) error { + var ( + path string + size string + + err error + ) + + size = fmt.Sprintf("%sx%s", width, height) + path = fmt.Sprintf("%s/%s/%s", "https://source.unsplash.com", photoID, size) + err = background.Set(path) + + return err +} -- cgit 1.4.1-2-gfad0