Use jinja templates
Modify 2 files
This commit is contained in:
parent
556c1dd7eb
commit
05d5093e23
8 changed files with 114 additions and 49 deletions
101
orders.py
101
orders.py
|
|
@ -10,57 +10,55 @@ from mastodon import Mastodon
|
|||
from telegram.telegram import Telegram
|
||||
from settings import ENV
|
||||
from util import timezone
|
||||
from jinja2 import Environment, PackageLoader, select_autoescape
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
template_env = Environment(
|
||||
loader=PackageLoader("orders"),
|
||||
autoescape=select_autoescape()
|
||||
)
|
||||
template_env.globals['ENV'] = ENV
|
||||
|
||||
def filter_short_time(value):
|
||||
return value.strftime("%I:%M %p")
|
||||
template_env.filters["short_time"] = filter_short_time
|
||||
|
||||
async def order_mastodon_post(session, orders_pool, orders_str, repeats, due_at, verify_at=None):
|
||||
user = orders_pool.user
|
||||
|
||||
post = "Here are today's orders for @%s -\n\n" % user.mastodon_account()
|
||||
post += orders_str + "\n\n"
|
||||
if repeats > 1:
|
||||
post += f"These are the same orders from the last {repeats} days\n\n"
|
||||
post += "Proof of compliance is due by " + due_at.strftime("%I:%M %p") + "\n"
|
||||
if verify_at is not None:
|
||||
post += "Verification due by " + verify_at.strftime("%I:%M %p") + "\n"
|
||||
post += "\n"
|
||||
|
||||
if ENV == 'dev':
|
||||
post += "⚠️ DEV"
|
||||
elif user.mastodon_attn_list:
|
||||
post += f"ATTN - {user.mastodon_attn_list}\n"
|
||||
template = template_env.get_template('mastodon_order')
|
||||
post = template.render(
|
||||
user=user,
|
||||
orders_str=orders_str,
|
||||
repeats=repeats,
|
||||
due_at=due_at,
|
||||
verify_at=verify_at
|
||||
)
|
||||
|
||||
m = Mastodon(session)
|
||||
return await m.statusPost(post, user)
|
||||
|
||||
async def order_telegram_post(session, orders_pool, orders_str, repeats, due_at, m_url, verify_at=None):
|
||||
post = "Here are your orders -\n\n"
|
||||
post += orders_str + "\n\n"
|
||||
if repeats > 1:
|
||||
post += f"These are the same orders from the last {repeats} days\n\n"
|
||||
post += "Proof of compliance is due by " + due_at.strftime("%I:%M %p") + "\n"
|
||||
if verify_at is not None:
|
||||
post += "Verification due by " + verify_at.strftime("%I:%M %p") + "\n"
|
||||
post += "\n"
|
||||
post += m_url
|
||||
if ENV == 'dev':
|
||||
post += "\n⚠️ DEV"
|
||||
template = template_env.get_template("telegram_order")
|
||||
|
||||
post = template.render(
|
||||
orders_str = orders_str,
|
||||
repeats=repeats,
|
||||
due_at=due_at,
|
||||
verify_at=verify_at,
|
||||
m_url=m_url
|
||||
)
|
||||
|
||||
t = Telegram(session)
|
||||
await t.message_send(orders_pool.user.telegram_chat_id, post)
|
||||
|
||||
async def order_telegram_post_need_mastodon(session, orders_pool):
|
||||
post = "Cannot issue an order without a mastodon username"
|
||||
if ENV == 'dev':
|
||||
post += "\n⚠️ DEV"
|
||||
async def order_telegram_message(session, orders_pool, message):
|
||||
template = template_env.get_template("telegram_message")
|
||||
|
||||
t = Telegram(session)
|
||||
await t.message_send(orders_pool.user.telegram_chat_id, post)
|
||||
|
||||
async def order_telegram_post_none(session, orders_pool):
|
||||
post = "No orders for today"
|
||||
if ENV == 'dev':
|
||||
post += "\n⚠️ DEV"
|
||||
post = template.render(
|
||||
message=message
|
||||
)
|
||||
|
||||
t = Telegram(session)
|
||||
await t.message_send(orders_pool.user.telegram_chat_id, post)
|
||||
|
|
@ -71,7 +69,10 @@ async def order_issue(orders_pool):
|
|||
|
||||
if user.mastodon_username is None:
|
||||
logger.info(f"{orders_pool} - Cannot issue order without mastodon username")
|
||||
await order_telegram_post_need_mastodon(session, orders_pool)
|
||||
await order_telegram_message(
|
||||
session, orders_pool,
|
||||
"Cannot issue order without mastodon username"
|
||||
)
|
||||
timeline_event_put(
|
||||
TIMELINE_ORDER_NOT_ISSUED,
|
||||
"Cannot issue order without mastodon username",
|
||||
|
|
@ -84,7 +85,10 @@ async def order_issue(orders_pool):
|
|||
|
||||
if 'orders' not in orders_info:
|
||||
logger.info(f"{orders_pool} - {orders_info['reason']}")
|
||||
await order_telegram_post_none(session, orders_pool)
|
||||
await order_telegram_message(
|
||||
session, orders_pool,
|
||||
"No orders this time"
|
||||
)
|
||||
timeline_event_put(
|
||||
TIMELINE_ORDER_NOT_ISSUED,
|
||||
orders_info['reason'],
|
||||
|
|
@ -156,13 +160,11 @@ async def order_issue(orders_pool):
|
|||
async def punishment_mastodon_post(session, orders_pool, punishment_str, reply_id=None):
|
||||
user = orders_pool.user
|
||||
|
||||
post = "@%s has failed to post proof of compliance. Here is the punishment -\n\n" % user.mastodon_account()
|
||||
post += punishment_str + "\n\n"
|
||||
|
||||
if ENV == 'dev':
|
||||
post += "⚠️ DEV"
|
||||
elif user.mastodon_attn_list:
|
||||
post += f"ATTN - {user.mastodon_attn_list}\n"
|
||||
template = template_env.get_template('mastodon_punishment')
|
||||
post = template.render(
|
||||
user=user,
|
||||
punishment_str=punishment_str
|
||||
)
|
||||
|
||||
m = Mastodon(session)
|
||||
return await m.statusPost(
|
||||
|
|
@ -172,11 +174,12 @@ async def punishment_mastodon_post(session, orders_pool, punishment_str, reply_i
|
|||
)
|
||||
|
||||
async def punishment_telegram_post(session, orders_pool, punishment_str, m_url):
|
||||
post = "You failed to show proof of compliance. Here is your punishment -\n\n"
|
||||
post += punishment_str + "\n\n"
|
||||
post += m_url
|
||||
if ENV == 'dev':
|
||||
post += "\n\n⚠️ DEV"
|
||||
template = template_env.get_template('telegram_punishment')
|
||||
|
||||
post = template.render(
|
||||
punishment_str=punishment_str,
|
||||
m_url=m_url
|
||||
)
|
||||
|
||||
t = Telegram(session)
|
||||
await t.message_send(orders_pool.user.telegram_chat_id, post)
|
||||
|
|
|
|||
9
templates/mastodon_base
Normal file
9
templates/mastodon_base
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{% block main %}{% endblock %}
|
||||
{% block attn %}
|
||||
{% if user.mastodon_attn_list %}
|
||||
ATTN - {{user.mastodon_attn_list}}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block env %}
|
||||
{% if ENV == 'dev' %}⚠️ DEV{% endif %}
|
||||
{% endblock %}
|
||||
16
templates/mastodon_order
Normal file
16
templates/mastodon_order
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{% extends "mastodon_base" %}
|
||||
|
||||
{% block main %}
|
||||
Here are today's orders for @{{user.mastodon_account()}}
|
||||
|
||||
{{orders_str}}
|
||||
|
||||
{% if repeats > 1 %}
|
||||
These are the same orders from the last {{repeats}} days.
|
||||
{% endif %}
|
||||
|
||||
Proof of compliance is due by {{due_at|short_time}}
|
||||
{% if verify_at %}
|
||||
Verification due by {{verify_at|short_time}}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
7
templates/mastodon_punishment
Normal file
7
templates/mastodon_punishment
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{% extends "mastodon_base" %}
|
||||
|
||||
{% block main %}
|
||||
@{{user.mastodon_account()}} failed to show proof of compliance. Here is the punishment -
|
||||
|
||||
{{punishment_str}}
|
||||
{% endblock %}
|
||||
2
templates/telegram_base
Normal file
2
templates/telegram_base
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
{% block main %}{% endblock %}
|
||||
{% if ENV == 'dev' %}⚠️ DEV{% endif %}
|
||||
4
templates/telegram_message
Normal file
4
templates/telegram_message
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
{% extends "telegram_base" %}
|
||||
{% block main %}
|
||||
{{message}}
|
||||
{% endblock %}
|
||||
15
templates/telegram_order
Normal file
15
templates/telegram_order
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{% extends "telegram_base" %}
|
||||
|
||||
{% block main %}
|
||||
Here are your orders -
|
||||
|
||||
{{orders_str}}
|
||||
{% if repeats > 1 %}
|
||||
These are the same orders from the last {{repeats}} days.
|
||||
{% endif %}
|
||||
Proof of compliance is due by {{due_at|short_time}}
|
||||
{% if verify_at %}
|
||||
Proof of verification is due by {{verify_at|short_time}}
|
||||
{% endif %}
|
||||
{{m_url}}
|
||||
{% endblock %}
|
||||
9
templates/telegram_punishment
Normal file
9
templates/telegram_punishment
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{% extends "telegram_base" %}
|
||||
|
||||
{% block main %}
|
||||
You failed to show proof of compliance. Here is your punishment -
|
||||
|
||||
{{punishment_str}}
|
||||
|
||||
{{m_url}}
|
||||
{% endblock %}
|
||||
Loading…
Reference in a new issue