mirror of
https://github.com/Starlio-app/StarlioX
synced 2024-11-22 08:46:22 +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…
Add table
Reference in a new issue