Pārlūkot izejas kodu

[add] update gnome wallpaper

isundil 8 gadi atpakaļ
vecāks
revīzija
598b7c26e9
1 mainītis faili ar 62 papildinājumiem un 0 dzēšanām
  1. 62 0
      updateWallpaper.py

+ 62 - 0
updateWallpaper.py

@@ -0,0 +1,62 @@
+#!/bin/python
+
+from datetime import datetime
+from time import sleep
+import argparse
+import os
+import shutil
+import certifi
+import urllib3
+import anyjson
+
+class BingWallpaperChanger:
+    def __init__(self, saveDir, wallpaperCmd):
+        self.saveDir = saveDir
+        self.savePath = saveDir +"/wallpaper"
+        self.wallpaperCmd = wallpaperCmd.replace("$PATH", self.savePath)
+        self.lastUrl = None
+
+    def setWallpaper(self):
+        print("Setting new wallpaper")
+        os.system(self.wallpaperCmd)
+
+    def updateLatest(self):
+        print("test")
+        http = urllib3.PoolManager(
+                cert_reqs='CERT_REQUIRED',
+                ca_certs=certifi.where())
+        jsonReq = http.request('GET', 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=en-US')
+        if jsonReq.status != 200:
+            print("bing.com not responding")
+            exit()
+        json = anyjson.deserialize(jsonReq.data.decode("utf-8"))
+
+        for img in json["images"]:
+            if img["url"] != self.lastUrl:
+                try:
+                    os.makedirs(self.savePath)
+                except FileExistsError:
+                    pass
+                with http.request('GET', "https://www.bing.com/" +img["url"], preload_content=False) as r, open(self.savePath, 'wb') as outFile:
+                    shutil.copyfileobj(r, outFile)
+                    self.lastUrl = img["url"]
+                    return True
+            return False
+        return False
+
+    def run(self, delay):
+        while True:
+            if self.updateLatest():
+                self.setWallpaper()
+            sleep(delay)
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser()
+    parser.add_argument("--delay", default=30)
+    parser.add_argument("--saveDir", default=os.environ["HOME"] +"/.local/share/bing")
+    parser.add_argument("--wallpaperCmd", default="gsettings set org.gnome.desktop.background picture-uri file://$PATH")
+    args = parser.parse_args()
+
+    wallpaperChanger = BingWallpaperChanger(args.saveDir, args.wallpaperCmd)
+    wallpaperChanger.run(int(args.delay) * 60)
+