Skip to main content

A package to automate message generation and sending for seminars from a csv file

Project description

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      ; location; first_name; last_name; work_name           ; work_link
    yyyy-mm-dd; 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}
    • {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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

seminar_message_manager-0.0.6.tar.gz (43.7 kB view details)

Uploaded Source

File details

Details for the file seminar_message_manager-0.0.6.tar.gz.

File metadata

  • Download URL: seminar_message_manager-0.0.6.tar.gz
  • Upload date:
  • Size: 43.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for seminar_message_manager-0.0.6.tar.gz
Algorithm Hash digest
SHA256 04cf75fc5fca9637475c33ac75048cc27ea4c9e3bd1c7accbd2cc9255719fe1b
MD5 85d2a4a4cd866b1365212478767d1759
BLAKE2b-256 dd8c9b03ca8fd57c1a36e8308a7e9a98f9a948ef7e27791584bd05ca0fd36762

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page