mirror of
https://github.com/Starlio-app/Starlio-web.git
synced 2024-11-21 16:26:21 +03:00
Удалено кардрирование фотографии, теперь код каждый день меняет обои
This commit is contained in:
parent
9d2be872d5
commit
b13b03657e
2 changed files with 9 additions and 41 deletions
45
main.py
45
main.py
|
@ -1,13 +1,10 @@
|
||||||
import math
|
|
||||||
from bs4 import BeautifulSoup
|
from bs4 import BeautifulSoup
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
import ctypes
|
import ctypes
|
||||||
import os
|
import os
|
||||||
import urllib
|
import urllib
|
||||||
|
import schedule
|
||||||
from PIL import Image
|
|
||||||
from screeninfo import get_monitors
|
|
||||||
|
|
||||||
|
|
||||||
class Nasa:
|
class Nasa:
|
||||||
|
@ -17,59 +14,31 @@ class Nasa:
|
||||||
self.headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) '
|
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'}
|
'AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'}
|
||||||
self.photoName = "everydayphotonasa.jpg"
|
self.photoName = "everydayphotonasa.jpg"
|
||||||
self.screen_size = (self.get_size_screen())
|
|
||||||
|
|
||||||
def download_photo(self):
|
def download_photo(self):
|
||||||
full_page = requests.get(self.url, headers=self.headers)
|
full_page = requests.get(self.url, headers=self.headers)
|
||||||
soup = BeautifulSoup(full_page.content, 'html.parser')
|
soup = BeautifulSoup(full_page.content, 'html.parser')
|
||||||
|
lnk = str
|
||||||
for link in soup.select("img"):
|
for link in soup.select("img"):
|
||||||
lnk = link["src"]
|
lnk = link["src"]
|
||||||
print(f"Сохарняю картинку — {self.url + lnk}")
|
print(f"Скачиваю картинку — {self.url + lnk}")
|
||||||
|
|
||||||
img = urllib.request.urlopen(self.url + lnk).read()
|
img = urllib.request.urlopen(self.url + lnk).read()
|
||||||
out = open(self.photoName, "wb")
|
out = open(self.photoName, "wb")
|
||||||
out.write(img)
|
out.write(img)
|
||||||
out.close()
|
out.close()
|
||||||
|
|
||||||
def get_size_photo(self):
|
|
||||||
image = Image.open(self.photoName)
|
|
||||||
width, height = image.size
|
|
||||||
return width, height
|
|
||||||
|
|
||||||
def get_size_screen(self):
|
|
||||||
for m in get_monitors():
|
|
||||||
width = m.width
|
|
||||||
height = m.height
|
|
||||||
return width, height
|
|
||||||
|
|
||||||
def set_wallpaper(self):
|
def set_wallpaper(self):
|
||||||
path = os.path.abspath(self.photoName)
|
path = os.path.abspath(self.photoName)
|
||||||
ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)
|
ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)
|
||||||
|
|
||||||
def aspect_ratio(self, width, height):
|
|
||||||
k = math.gcd(width, height)
|
|
||||||
return width // k, height // k
|
|
||||||
|
|
||||||
def valid_image(self):
|
|
||||||
w_image, h_image = self.get_size_photo()
|
|
||||||
w_image, h_image = self.aspect_ratio(w_image, h_image)
|
|
||||||
w_screen, h_screen = self.aspect_ratio(self.screen_size[0], self.screen_size[1])
|
|
||||||
return w_image == w_screen and h_image == h_screen
|
|
||||||
|
|
||||||
def crop_image(self):
|
|
||||||
size_screen = self.get_size_screen()
|
|
||||||
img = Image.open(self.photoName)
|
|
||||||
img_crop = img.crop((0, 0, size_screen[0], size_screen[1]))
|
|
||||||
img_crop.save(self.photoName)
|
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.download_photo()
|
self.download_photo()
|
||||||
if not self.valid_image():
|
|
||||||
self.crop_image()
|
|
||||||
|
|
||||||
self.set_wallpaper()
|
self.set_wallpaper()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
nasa = Nasa()
|
schedule.every(1).days.do(Nasa().start)
|
||||||
nasa.start()
|
while True:
|
||||||
|
schedule.run_pending()
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
beautifulsoup4~=4.11.1
|
beautifulsoup4==4.11.1
|
||||||
requests~=2.28.0
|
requests~=2.28.0
|
||||||
Pillow~=9.2.0
|
schedule~=1.1.0
|
||||||
screeninfo~=0.8
|
|
Loading…
Add table
Reference in a new issue