summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAndinus <andinus@inventati.org>2020-03-14 13:11:52 +0530
committerAndinus <andinus@inventati.org>2020-03-14 13:11:52 +0530
commitea8a01e9ae40f5478167abcf4563682adc77efb6 (patch)
treed1392b8cfe51d3105bc8bd3b84820de66488b8d9
parent79f249d1db5843f2966330ddc75a8c71bb8a9ca0 (diff)
downloadcetus-ea8a01e9ae40f5478167abcf4563682adc77efb6.tar.gz
Add photoID support
photo-id flag can be used to set a specific photo as background
-rw-r--r--cmd/cetus/cetus.go37
-rw-r--r--pkg/background.go2
-rw-r--r--pkg/unsplash/unsplash.go37
3 files changed, 75 insertions, 1 deletions
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 <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"
+
+	"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
+}