A simple bot builder for GroupMe
Project description
GroupMe Bot Builder
Easily build one or more bots into a single application. Supports regex handlers of incoming messages as well as cron jobs to perform functions on a regular cadence.
pip install groupme-bot
Multi Bot Example
import re
from groupme_bot import Router, Bot, Context, ImageAttachment, LocationAttachment
# define handler functions
def cron_task(ctx: Context):
print(ctx.bot.bot_name)
print("this is a scheduled function at the top of every hour")
def mention_all(ctx: Context):
ctx.bot.mention_all()
def attachments(ctx: Context):
img_url = ctx.bot.image_url_to_groupme_image_url(image_url="https://images.indianexpress.com/2020/12/Doodle.jpg")
image_attachment = ImageAttachment(image_url=img_url)
location_attachment = LocationAttachment(name="A Location", lat=100.000, lng=46.000)
ctx.bot.post_message("this is a message with attachments", [image_attachment, location_attachment])
def gif_search(ctx: Context):
sr = re.search(r'^\\gif([a-zA-Z0-9 -_]+)', ctx.callback.text)
if sr:
query_string = sr.group(1).strip()
# gif_result = search_for_gif(query_string)
# ctx.bot.post_message(gif_result)
print("implement something like this ^")
# build the bot objects
bot1 = Bot('Fake bot 1',
bot_id='fake-bot-id',
groupme_api_token='fake-token',
group_id='fake-group-id')
bot2 = Bot('Fake bot 2',
bot_id='fake-bot-id',
groupme_api_token='fake-token',
group_id='fake-group-id')
# add cron job
# - available cron_task arguments: https://apscheduler.readthedocs.io/en/stable/modules/triggers/cron.html
bot1.add_cron_job(cron_task, minute=0, hour='*', timezone='America/Chicago')
# add callback handlers
bot1.add_callback_handler(r'^\\attachments', attachments) # message starts with the string '\attachments'
bot1.add_callback_handler(r'^\\all', mention_all) # message starts with the string '\all'
bot2.add_callback_handler(r'^\\all', mention_all) # message starts with the string '\all'
bot2.add_callback_handler(r'^\\gif', gif_search) # message starts with the string '\gif'
if __name__ == '__main__':
# create the bot router
router = Router()
# add the bots to the bot router
router.add_bot(bot=bot1, callback_route="/bot1")
router.add_bot(bot=bot2, callback_route="/bot2")
# run both bots
router.run(debug=True)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
groupme-bot-0.1.6.tar.gz
(8.5 kB
view hashes)
Built Distribution
Close
Hashes for groupme_bot-0.1.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01eca8691a1589e31c76a545df27048c10d173432fd315a0fbd34359c11ac208 |
|
MD5 | bfe9e4c4c0acb0f9996a60d5fc6f8571 |
|
BLAKE2b-256 | ef191ad85348d191576294c55406271df7ac7f180b13c268de55fe0735decc7e |