commiting
This commit is contained in:
9
public/cgi-bin/allpawcare.ini
Normal file
9
public/cgi-bin/allpawcare.ini
Normal file
@@ -0,0 +1,9 @@
|
||||
[fastmail-smtp]
|
||||
url = https://smtp.fastmail.com
|
||||
user = awkawb@awkawb.cloud
|
||||
pass = xw392bf7shg6wbzb
|
||||
|
||||
[fastmail-caldav]
|
||||
url = https://caldav.fastmail.com/caldav
|
||||
user = awkawb@awkawb.cloud
|
||||
pass = xk5fzhfdr2w9h86v
|
||||
41
public/cgi-bin/allpawcare.py
Normal file
41
public/cgi-bin/allpawcare.py
Normal file
@@ -0,0 +1,41 @@
|
||||
from configparser import ConfigParser
|
||||
from datetime import date
|
||||
from email.message import Message
|
||||
from smtplib import SMTP
|
||||
|
||||
from flask import Flask,request
|
||||
|
||||
from meetgreetnotification import MeetGreeNotification
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route('/forms/meetgreetrequest.html', methods=['POST'])
|
||||
def walk_request():
|
||||
if request.method == 'POST':
|
||||
name = request.form['client-name']
|
||||
pets = request.form['client-pets']
|
||||
notes = request.form['notes']
|
||||
requested_date = get_datetime(request.form['meet-greet-date'],
|
||||
request.form['meet-greet-time'])
|
||||
|
||||
#if is_valid_date(requested_date):
|
||||
# n = MeetGreetNotification('allpawcare.ini')
|
||||
# n.send(name,address,requested_date,notes)
|
||||
|
||||
def get_datetime(raw_date: str, raw_time: str):
|
||||
date_list = raw_date.rsplit('-')
|
||||
|
||||
print(raw_time)
|
||||
|
||||
year = int(date_list[0])
|
||||
month = int(date_list[1])
|
||||
day = int(date_list[2])
|
||||
|
||||
return datetime_request
|
||||
|
||||
def is_valid_date(requested_date: date):
|
||||
if requested_date <= date.today():
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
58
public/cgi-bin/meetgreetnotification.py
Normal file
58
public/cgi-bin/meetgreetnotification.py
Normal file
@@ -0,0 +1,58 @@
|
||||
from datetime import datetime
|
||||
|
||||
class MeetGreetNotification(object):
|
||||
def __init__(self, config: str):
|
||||
from configparser import ConfigParser
|
||||
|
||||
self.c = ConfigParser()
|
||||
self.c.read(config)
|
||||
|
||||
self.smtp_url = self.c['fastmail-smtp']['url']
|
||||
self.email_user = self.c['fastmail-smtp']['user']
|
||||
|
||||
def __get_smtp_client(self):
|
||||
from smtplib import SMTP_SSL
|
||||
|
||||
smtp_client = SMTP_SSL(host=self.smtp_url)
|
||||
smtp_client.login(self.email_user,self.c['fastmail-smtp']['pass'])
|
||||
|
||||
return smtp_client
|
||||
|
||||
def send(self, name: str, address: str, greet_time: datetime, notes: str = None):
|
||||
from email.mime.multipart import MIMEMultipart
|
||||
from email.mime.text import MIMEText
|
||||
|
||||
|
||||
subject = "Meet & greet request: {}".format(name)
|
||||
email = MIMEMultipart()
|
||||
email['Subject'] = subject
|
||||
email['From'] = self.email_user
|
||||
email['To'] = self.email_user
|
||||
|
||||
content = '''
|
||||
<table>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<td>{}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Address</th>
|
||||
<td>{}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Datetime</th>
|
||||
<td>{}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Notes</th>
|
||||
<td>{}</td>
|
||||
</tr>
|
||||
</table>
|
||||
'''.format(name,address,greet_time,notes)
|
||||
|
||||
email_content = MIMEMultipart('alternative')
|
||||
email_content.attach(MIMEText(content, 'html'))
|
||||
email.attach(email_content)
|
||||
|
||||
with self.__get_smtp_client() as c:
|
||||
c.sendmail(self.email_user,self.email_user,email.as_string())
|
||||
Reference in New Issue
Block a user