mirror of
https://github.com/Starlio-app/Starlio-web.git
synced 2024-11-06 01:13:57 +03:00
The main actions with the wallpaper were not much rewritten and moved
This commit is contained in:
parent
beda837dd0
commit
6e0b50ade1
2 changed files with 93 additions and 0 deletions
0
src/functions/__init__.py
Normal file
0
src/functions/__init__.py
Normal file
93
src/functions/wallpaper.py
Normal file
93
src/functions/wallpaper.py
Normal file
|
@ -0,0 +1,93 @@
|
|||
from bs4 import BeautifulSoup
|
||||
|
||||
import requests
|
||||
import urllib
|
||||
import sys
|
||||
import ctypes
|
||||
import os
|
||||
|
||||
from .config import Config
|
||||
|
||||
|
||||
class Wallpaper(Config):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
self.url = "https://apod.nasa.gov/apod/"
|
||||
self.config_path = os.path.join(os.path.dirname(os.path.abspath(__file__)), "config.ini")
|
||||
|
||||
self.full_page = requests.get(self.url)
|
||||
self.soup = BeautifulSoup(self.full_page.content, 'html.parser')
|
||||
self.lnk = None
|
||||
|
||||
def check(self):
|
||||
config = Config.get_setting(self, path=self.config_path, section="Config", setting="wallpaper-link")
|
||||
|
||||
for link in self.soup.select("img"):
|
||||
self.lnk = link["src"]
|
||||
|
||||
if self.lnk is None:
|
||||
return "On the NASA website, they posted not a picture but a video, " \
|
||||
"unfortunately, it will not work to install wallpaper"
|
||||
|
||||
if config == self.lnk:
|
||||
return
|
||||
else:
|
||||
Config.update_setting(
|
||||
self,
|
||||
path=self.config_path,
|
||||
section="Config",
|
||||
setting="wallpaper-link",
|
||||
value=self.lnk
|
||||
)
|
||||
|
||||
def download(self):
|
||||
try:
|
||||
img = urllib.request.urlopen(self.url + self.lnk).read()
|
||||
with open("everyNASA.jpg", "wb") as file:
|
||||
file.write(img)
|
||||
except requests.exceptions.ConnectionError:
|
||||
return "Connection error, please try again later."
|
||||
|
||||
@staticmethod
|
||||
def set():
|
||||
if sys.platform == "win32":
|
||||
ctypes.windll.user32.SystemParametersInfoW(20, 0, os.path.abspath("everyNASA.jpg"), 0)
|
||||
elif sys.platform == "linux":
|
||||
desk_env = os.environ.get("DESKTOP_SESSION")
|
||||
if desk_env == "gnome":
|
||||
os.system(
|
||||
"gsettings set org.gnome.desktop.background "
|
||||
"picture-uri 'file://{}'"
|
||||
.format(
|
||||
os.path.abspath(
|
||||
"everyNASA.jpg"
|
||||
)
|
||||
)
|
||||
)
|
||||
elif desk_env == "plasma":
|
||||
import dbus
|
||||
jscript = """
|
||||
var allDesktops = desktops();
|
||||
print (allDesktops);
|
||||
for (i=0;i<allDesktops.length;i++) {
|
||||
d = allDesktops[i];
|
||||
d.wallpaperPlugin = "%s";
|
||||
d.currentConfigGroup = Array("Wallpaper", "%s", "General");
|
||||
d.writeConfig("Image", "file://%s")
|
||||
}
|
||||
"""
|
||||
bus = dbus.SessionBus()
|
||||
plasma = dbus.Interface(
|
||||
bus.get_object(
|
||||
'org.kde.plasmashell',
|
||||
'/PlasmaShell'),
|
||||
dbus_interface='org.kde.PlasmaShell'
|
||||
)
|
||||
|
||||
plasma.evaluateScript(jscript % ("org.kde.image", "org.kde.image", os.path.abspath("everyNASA.jpg")))
|
||||
else:
|
||||
return "Your desktop environment is not supported."
|
||||
else:
|
||||
return "Your operating system is not supported."
|
||||
|
||||
return "The wallpaper is installed."
|
Loading…
Reference in a new issue