Skip to main content

Seminar Message Manager

CI PyPI version Code style: black

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.csv in the root directory.

  • date the 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.json in 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.json in 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.json in 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.json in 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.html in the ./templates/mail directory.

  • template_zulip .md file, similar to html file, see example.

    By default, the package will look for announcement.md in the ./templates/zulip directory.

  • template_discord .md file, similar to html file, see example.

    By default, the package will look for announcement.md in the ./templates/discord directory.

  • template_mattermost .md file, similar to html file, see example.

    By default, the package will look for announcement.md in the ./templates/mattermost directory.

  • --send_mail or -sm if used, send message to the relevant mailing list.

  • --send_zulip or -sz if used, send message to the relevant Zulip topic.

  • --send_discord or -sd if used, send message to the relevant Discord channel.

  • --send_mattermost or -smt if used, send message to the relevant Mattermost channel.

  • --sendor -s if 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)

Source distribution for seminar-message-manager 0.0.9
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

Release history Release notifications | RSS feed

This release

0.0.9 This release

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page