1
0
mirror of https://github.com/MaxenceG2M/github-release-notifier.git synced 2025-12-08 22:03:24 +00:00

Black formatting

This commit is contained in:
2023-11-10 00:14:00 +01:00
parent 148c647ac7
commit 89e88c8a1b

View File

@@ -1,55 +1,55 @@
import os
from configparser import ConfigParser
import json
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import datetime
import json
import os
import smtplib
from configparser import ConfigParser
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import requests
SMTP_PORT = 0
SMTP_SERVER = 'null'
SENDER_EMAIL = 'a@b.c'
RECEIVER_EMAIL = 'd@e.f'
SMTP_SERVER = "null"
SENDER_EMAIL = "a@b.c"
RECEIVER_EMAIL = "d@e.f"
def main():
global SMTP_PORT, SMTP_SERVER, SENDER_EMAIL, RECEIVER_EMAIL
script_dir = os.path.dirname(__file__)
conf_file = os.path.join(script_dir, 'conf.ini')
template_file = os.path.join(script_dir, 'template.html')
conf_file = os.path.join(script_dir, "conf.ini")
template_file = os.path.join(script_dir, "template.html")
parser = ConfigParser()
parser.read(conf_file)
SMTP_PORT = parser.get('config', 'smtp_port')
SMTP_SERVER = parser.get('config', 'smtp_server')
SENDER_EMAIL = parser.get('config', 'sender_email')
RECEIVER_EMAIL = parser.get('config', 'receiver_email')
SMTP_PORT = parser.get("config", "smtp_port")
SMTP_SERVER = parser.get("config", "smtp_server")
SENDER_EMAIL = parser.get("config", "sender_email")
RECEIVER_EMAIL = parser.get("config", "receiver_email")
projects = json.loads(parser.get('projects', 'projects'))
projects = json.loads(parser.get("projects", "projects"))
new_releases = []
new_projects = []
if not parser.has_section('release'):
parser.add_section('release')
if not parser.has_section("release"):
parser.add_section("release")
for project in projects:
last_release = get_last_release(project)
if not parser.has_option('release', project):
if not parser.has_option("release", project):
new_projects.append(last_release)
else:
last_config_tag = parser.get('release', project)
if last_config_tag != last_release['release_tag']:
last_release['preview_tag'] = last_config_tag
last_config_tag = parser.get("release", project)
if last_config_tag != last_release["release_tag"]:
last_release["preview_tag"] = last_config_tag
new_releases.append(last_release)
parser.set('release', project, last_release['release_tag'])
parser.set("release", project, last_release["release_tag"])
if not new_releases and not new_projects:
print('No new projets or new release detected. Bye!')
print("No new projets or new release detected. Bye!")
return
content = ""
@@ -59,49 +59,55 @@ def main():
<li><a href="{}" target="_blank">{}</a>: new release <a href="{}" target="_blank">{}</a> available (old: {}).
(published {})</li>
""".format(
new_r['release_url'],
new_r['project_name'],
new_r['release_url'],
new_r['release_tag'],
new_r['preview_tag'],
convert_date(new_r['published_date']))
new_r["release_url"],
new_r["project_name"],
new_r["release_url"],
new_r["release_tag"],
new_r["preview_tag"],
convert_date(new_r["published_date"]),
)
for new_p in new_projects:
content += """
<li><a href="{}" target="_blank">{}</a> was added to your configuration. Last release: <a href="{}" target="_blank">{}</a>
(published {})</li>""".format(
new_p['release_url'],
new_p['project_name'],
new_p['release_url'],
new_p['release_tag'],
convert_date(new_p['published_date']))
new_p["release_url"],
new_p["project_name"],
new_p["release_url"],
new_p["release_tag"],
convert_date(new_p["published_date"]),
)
# print(content)
with open(template_file, 'r') as f_template:
with open(template_file, "r") as f_template:
template = f_template.read()
send_mail(template.replace('{{content}}', content))
send_mail(template.replace("{{content}}", content))
with open('conf.ini', 'w') as configfile:
with open("conf.ini", "w") as configfile:
parser.write(configfile)
def get_last_release(project):
url = 'https://api.github.com/repos/{}/releases/latest'.format(project)
url = "https://api.github.com/repos/{}/releases/latest".format(project)
result = requests.get(url)
print(project)
print(url)
release = result.json()
release_tag = release['tag_name']
published_date = release['published_at']
release_tag = release["tag_name"]
published_date = release["published_at"]
# body = release['body']
release_url = release['html_url']
release_url = release["html_url"]
return {'release_tag': release_tag,
'published_date': published_date,
return {
"release_tag": release_tag,
"published_date": published_date,
# 'body': body,
'project_name': project,
'release_url': release_url}
"project_name": project,
"release_url": release_url,
}
def send_mail(content):
message = MIMEMultipart("alternative")
@@ -118,8 +124,10 @@ def send_mail(content):
with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server:
server.sendmail(SENDER_EMAIL, RECEIVER_EMAIL, message.as_string())
def convert_date(date: str, format='%d %b %Y at %H:%M') -> str:
def convert_date(date: str, format="%d %b %Y at %H:%M") -> str:
return datetime.datetime.strptime(date, "%Y-%m-%dT%H:%M:%SZ").strftime(format)
if __name__ == "__main__":
main()