Добавление файла NOTICE

This commit is contained in:
Данил 2022-07-16 16:32:59 +03:00
parent 77fbbcf077
commit 1229b6bc02
3 changed files with 113 additions and 38 deletions

View file

@ -1,24 +1,23 @@
## Инструкция
1. Скачайте все необходимые модули
```
```sh
pip install -r requirements.txt
```
2. Запустите main.py
```
```sh
python main.py
```
## Участники проекта ✨
## Участники проекта ✨ [(Emoji key)](https://allcontributors.org/docs/en/emoji-key)
<table>
<tr>
<td align="center">
<a href="https://github.com/redume"><img src="https://avatars.githubusercontent.com/u/49362257?v=3?s=100" width="100px;" alt=""/>
<br/><sub><b>Redume</b></sub></a><br/>
<a href="#code" title="Код">💻</a>
<a href="#projectManagement" title="Управление проектом">📆</a></td>
<td align="center"><a href="https://github.com/Murzify"><img src="https://avatars.githubusercontent.com/u/59001661?v=3?s=100" width="100px;" alt=""/>
<br/><sub><b>Murzify</b></sub></a><br/>

136
main.py
View file

@ -1,7 +1,27 @@
from win10toast import ToastNotifier
"""
Copyright 2022 Redume
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
from bs4 import BeautifulSoup
from win10toast import ToastNotifier
from pystray import MenuItem, Menu, Icon
from PIL import Image
from elevate import elevate
import json
import requests
import ctypes
import os
@ -9,29 +29,87 @@ import urllib
import schedule
import winreg as reg
import getpass
import sys
from config import Config
class Nasa:
class Nasa(Config):
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"
self.toaster = ToastNotifier()
self.state = json.loads(
Config.get_setting(self,
path="config.ini",
section="Settings",
setting="autorun")
.lower())
def resource_path(self, relative_path):
base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
return os.path.join(base_path, relative_path)
def autorun(self):
path = os.path.dirname(os.path.realpath(__file__))
address = os.path.join(path, "main.exe")
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)
self.toaster.show_toast("EveryDayPhotoNasa",
"Программа добавлена в автозапуск.",
duration=5,
icon_path=None)
self.state = not MenuItem.checked
if not ctypes.windll.shell32.IsUserAnAdmin() != 0:
elevate(show_console=False)
if self.state is False:
print("Автозапуск включен.")
path = os.path.dirname(os.path.realpath(__file__))
address = os.path.join(path, "main.exe")
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)
Config.update_setting(self,
path="config.ini",
section="Settings",
setting="autorun",
value="True")
self.toaster.show_toast("EveryDayPhotoNasa",
"Программа добавлена в автозапуск.",
duration=3,
icon_path=self.resource_path("nasa.ico"))
else:
print("Программа удалена из автозапуска.")
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.DeleteValue(key, user)
reg.CloseKey(key)
Config.update_setting(self,
path="config.ini",
section="Settings",
setting="autorun",
value="False")
self.toaster.show_toast("EveryDayPhotoNasa",
"Программа удалена из автозапуска.",
duration=3,
icon_path=self.resource_path("nasa.ico"))
def tray(self):
tray = Icon("EveryDayPhotoNasa", title="EveryDayPhotoNasa",
icon=Image.open(self.resource_path("nasa.ico")),
menu=Menu(
MenuItem("Автозапуск",
self.autorun,
checked=lambda item: self.state),
MenuItem("Выход",
self.tray_close),
))
tray.run()
def tray_close(self, tray):
tray.visible = False
sys.exit(0)
def download_photo(self):
try:
@ -49,27 +127,23 @@ class Nasa:
except requests.exceptions.ConnectionError:
return self.toaster.show_toast("EveryDayPhotoNasa",
"Не получилось подключится к сайту, проверьте подключение к интернету.",
duration=5,
icon_path=None)
duration=3,
icon_path=self.resource_path("nasa.ico"))
def set_wallpaper(self):
print(self.state)
path = os.path.abspath(self.photoName)
ctypes.windll.user32.SystemParametersInfoW(20, 0, path, 0)
self.toaster.show_toast("EveryDayPhotoNasa",
"Обои поставлены.",
duration=5,
icon_path=None)
def start(self):
self.download_photo()
if ctypes.windll.shell32.IsUserAnAdmin() != 0:
elevate(show_console=False, graphical=False)
self.autorun()
"Обои установлены.",
duration=3,
icon_path=self.resource_path("nasa.ico"))
if __name__ == "__main__":
nasa = Nasa()
nasa.start()
schedule.every(1).day.do(nasa.start)
while True:
schedule.run_pending()
nasa = Nasa()
nasa.download_photo()
schedule.every().day.at("00:30").do(nasa.download_photo)
while True:
schedule.run_pending()
nasa.tray()

View file

@ -1,6 +1,8 @@
beautifulsoup4==4.11.1
requests~=2.28.0
schedule~=1.1.0
elevate~=0.1.3
future~=0.18.2
win10toast~=0.9
beautifulsoup4~=4.11.1
win10toast~=0.9
pystray~=0.19.4
Pillow~=9.2.0
elevate~=0.1.3