Compare commits

...

2 Commits

View File

@ -9,30 +9,34 @@ from .config import Config
def format_event(event_details, truncate: bool): def format_event(event_details, truncate: bool):
url = ( try:
"https://claremontmakerspace.org/events/#!event/register/" url = (
+ event_details["url"] "https://claremontmakerspace.org/events/#!event/register/"
) + event_details["url"]
if "lgo" in event_details:
img = (
f"""<img class="alignleft" width="400" src="{event_details['lgo']['l']}">"""
) )
else: if "lgo" in event_details:
img = "" img = f"""<img class="alignleft" width="400" src="{event_details['lgo']['l']}">"""
# print(json.dumps(event_details)) else:
out = f"""<h2 style="text-align: center;"> img = ""
# print(json.dumps(event_details))
out = f"""<h2 style="text-align: center;">
<a href="{url}">{img}{event_details['ttl']}</a> <a href="{url}">{img}{event_details['ttl']}</a>
</h2> </h2>
<div><i>{event_details['szp']} &mdash; {event_details['ezp']}</i></div> <div><i>{event_details['szp']} &mdash; {event_details['ezp']}</i></div>
""" """
if not truncate: if not truncate:
out += f""" out += f"""
<div> <div>
{event_details['dtl']} {event_details['dtl']}
</div> </div>
<a href="{url}">Register for this class now!</a>""" <a href="{url}">Register for this class now!</a>"""
return out return out
except KeyError as e:
print(
f"Event '{event_details.get('ttl')}' missing required property: '{e.args[0]}'"
)
raise
def format_section(title: str, blurb: str, events, truncate: bool): def format_section(title: str, blurb: str, events, truncate: bool):
@ -62,24 +66,31 @@ def generate_post():
full_events = [] full_events = []
upcoming_events = [] upcoming_events = []
for event in events["evt"]: for event in events["evt"]:
# ignore hidden events try:
if event["cal"] == 0: # ignore hidden events
continue if event["cal"] == 0:
event_details = membershipworks.get_event_by_eid(event["eid"]) continue
event_details = membershipworks.get_event_by_eid(event["eid"])
# registration has already ended # registration has already ended
if ( if (
"erd" in event_details "erd" in event_details
and datetime.fromtimestamp(event_details["erd"]) < now and datetime.fromtimestamp(event_details["erd"]) < now
): ):
ongoing_events.append(event_details) ongoing_events.append(event_details)
# class is full # class is full
elif event_details["cnt"] >= event_details["cap"]: elif event_details["cnt"] >= event_details["cap"]:
full_events.append(event_details) full_events.append(event_details)
else: else:
upcoming_events.append(event_details) upcoming_events.append(event_details)
except KeyError as e:
print(
f"Event '{event.get('ttl')}' missing required property: '{e.args[0]}'"
)
raise
header = """<p><img class="aligncenter size-medium wp-image-2319" src="https://claremontmakerspace.org/wp-content/uploads/2019/03/CMS-Logo-b-y-g-300x168.png" alt="" width="300" height="168" /></a></p> # header
yield """<p><img class="aligncenter size-medium wp-image-2319" src="https://claremontmakerspace.org/wp-content/uploads/2019/03/CMS-Logo-b-y-g-300x168.png" alt="" width="300" height="168" /></a></p>
<p>Greetings Upper Valley Makers:</p> <p>Greetings Upper Valley Makers:</p>
<p>We have an exciting list of upcoming classes at the Claremont MakerSpace that we think might interest you.</p> <p>We have an exciting list of upcoming classes at the Claremont MakerSpace that we think might interest you.</p>
<strong>For most classes and events, CMS MEMBERSHIP IS NOT REQUIRED.</strong> That said, members receive a discount on registration and there are some classes/events that are for members only (this will be clearly noted in the event description). <strong>For most classes and events, CMS MEMBERSHIP IS NOT REQUIRED.</strong> That said, members receive a discount on registration and there are some classes/events that are for members only (this will be clearly noted in the event description).
@ -93,15 +104,6 @@ def generate_post():
<hr /> <hr />
""" """
footer = """<div style="clear: both;">
<hr />
<div>Happy Makin!</div>
<div>We are grateful for all of the public support that our 501(c)(3), non-profit organization receives. If youd like to make a donation,please visit the <a href="https://claremontmakerspace.org/support/"><strong>Support Us page</strong></a> of our website.</div>
</div>
"""
yield header
yield format_section( yield format_section(
"Upcoming Events", "Upcoming Events",
"Events that are currently open for registration.", "Events that are currently open for registration.",
@ -123,7 +125,14 @@ def generate_post():
truncate=True, truncate=True,
) )
yield (footer) # footer
yield """<div style="clear: both;">
<hr />
<div>Happy Makin!</div>
<div>We are grateful for all of the public support that our 501(c)(3), non-profit organization receives. If youd like to make a donation,please visit the <a href="https://claremontmakerspace.org/support/"><strong>Support Us page</strong></a> of our website.</div>
</div>
"""
def main(): def main():