Starlio-web/main.py

58 lines
1.8 KiB
Python

from bs4 import BeautifulSoup
from elevate import elevate
import requests
import ctypes
import os
import urllib
import schedule
import winreg as reg
import getpass
class Nasa:
def __init__(self):
self.url = "https://apod.nasa.gov/apod/"
self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) '
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
self.photoName = "everydayphotonasa.jpg"
@staticmethod
def autorun():
path = os.path.dirname(os.path.realpath(__file__))
address = os.path.join(path, "main.py")
key_value = "Software/Microsoft/Windows/CurrentVersion/Run"
user = getpass.getuser()
key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, key_value, 0, reg.KEY_ALL_ACCESS)
reg.SetValueEx(key, user, 0, reg.REG_SZ, address)
reg.CloseKey(key)
def download_photo(self):
full_page = requests.get(self.url, headers=self.headers)
soup = BeautifulSoup(full_page.content, 'html.parser')
lnk = str
for link in soup.select("img"):
lnk = link["src"]
img = urllib.request.urlopen(self.url + lnk).read()
out = open(self.photoName, "wb")
out.write(img)
out.close()
def set_wallpaper(self):
path = os.path.abspath(self.photoName)
ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)
def start(self):
if not ctypes.windll.shell32.IsUserAnAdmin() != 0:
elevate(show_console=False, graphical=False)
self.download_photo()
self.set_wallpaper()
if __name__ == "__main__":
nasa = Nasa()
nasa.start()
schedule.every(3).seconds.do(nasa.start)
while True:
schedule.run_pending()