Seminar Message Manager
A Python manager for automatically generating and sending mails, Zulip, Discord or Mattermost messages to announce upcoming seminars, using user-tunable html and markdown templates.
📦 Installation
Use pip to install the package:
pip install seminar-message-manager
💻 Usage
smm date [--seminar_csv csv_file.csv --mail_json mail.json --zulip_json zulip.json --discord_json discord.json --mattermost_json mattermost.json --template_mail template.html --template_zulip template.md --template_discord template.md (--send_mail | -sm) (--send_zulip | -sz) (--send_discord | -sd) (--send_mattermost | -smt) (--send | -s)]
Argument details
-
seminar_csv.csv file that describes the seminar's events following a specific template:date ; hour ; location; first_name; last_name; work_name ; work_link yyyy-mm-dd; hh:mm ; room ; John ; Doe ; My beautiful article; https://article-link.com
By default, the package will look for
seminar.csvin the root directory. -
datethe date (yyyy-mm-dd) used to select the relevant information from the csv. -
mail_json.json file that described the mail information{ "user" : "mail@mail.com", "password" : "123456789", "smtp_server_domain_name": "smtp.mail.com", "port" : 587, "to" : ["mail_list@mail.com", "myothermail@mail.com"], "subject" : "Upcoming seminar" }
By default, the package will look for
mail.jsonin the root directory. -
zulip_json.json file that describes the information needed by the Zulip bot:{ "config_file": "zuliprc", // API file of the bot "bot_email" : "mylab-bot@mylab.zulipchat.com", "channel" : "Seminars", "topic" : "Upcomming seminar", "old_topic" : "Past seminars" // Topic in {channel} where past bot messages are moved }
By default, the package will look for
zulip.jsonin the root directory. -
discord_json.json file that describes the information needed by the Discord bot:{ "webhook_url": "https://discord.com/api/webhooks/..." }
By default, the package will look for
discord.jsonin the root directory. -
mattermost_json.json file that describes the information needed by the Mattermost bot:{ "webhook_url": "https://mattermost.com/hooks/...", "username": "My Seminars", // Optional: the username the bot will use "icon_url": "https://image.com/icon.png" // Optional: the icon the bot will use }
By default, the package will look for
mattermost.jsonin the root directory. -
template_mail.html file that constitute the body of the mail (example). Some specific strings, indicated by{}, will be replaced by the package, using the corresponding csv line:{date}{hour}{room}{first_name}{last_name}{work_name}{work_link}
By default, the package will look for
announcement.htmlin the./templates/maildirectory. -
template_zulip.md file, similar to html file, see example.By default, the package will look for
announcement.mdin the./templates/zulipdirectory. -
template_discord.md file, similar to html file, see example.By default, the package will look for
announcement.mdin the./templates/discorddirectory. -
template_mattermost.md file, similar to html file, see example.By default, the package will look for
announcement.mdin the./templates/mattermostdirectory. -
--send_mailor-smif used, send message to the relevant mailing list. -
--send_zulipor-szif used, send message to the relevant Zulip topic. -
--send_discordor-sdif used, send message to the relevant Discord channel. -
--send_mattermostor-smtif used, send message to the relevant Mattermost channel. -
--sendor-sif used, send message to the relevant Zulip topic, Discord channel, Mattermost channel and mails.
⚖️ License
Distributed under the GNU GPL 3.0 License.
Metadata
Release files for seminar-message-manager 0.0.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| seminar_message_manager-0.0.9.tar.gz | 43.8 kB | Details |
Release files / seminar_message_manager-0.0.9.tar.gz
| Download URL | seminar_message_manager-0.0.9.tar.gz |
|---|---|
| Size | 43.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
84113dbfeb73cb37be1265359662ceb24ff59ae6243a2ca0a6c4e38ca04094c4
|
|
BLAKE2b-256 checksum How to use checksums |
8969210291267918a4a60ac82f8f74449298a6fcbe125274c1efff5734a975e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.9
|