import os import requests import mebots import random from flask import Flask, request app = Flask(__name__) bot = mebots.Bot('mealbot', os.environ.get('BOT_TOKEN')) PREFIX = 'mealbot' GROUPME_ACCESS_TOKEN = os.environ['GROUPME_ACCESS_TOKEN'] GROUP_SIZE = 2 def process(message): # Prevent self-reply if message['sender_type'] != 'bot': if message['text'].lower().startswith(PREFIX): group_id = message['group_id'] users = requests.get(f'https://api.groupme.com/v3/groups/{group_id}?token={GROUPME_ACCESS_TOKEN}').json()["response"]["members"] users = [user['name'] for user in users] random.shuffle(users) pairs = [] extra = None if len(users) % GROUP_SIZE != 0: extra = users.pop() for i in range(0, len(users), GROUP_SIZE): pairs.append(users[i:i + GROUP_SIZE]) if extra: pairs[-1].append(extra) return 'Meal pairings:\n--------------\n' + '\n'.join(['- ' + ' & '.join(pair) for pair in pairs])
# Other import mebots from threading import Thread import requests import os import argparse # Bot components from factory import Factory CACHE_TIMEOUT = 60 * 60 app = Flask(__name__) cache = Cache(app, config={"CACHE_TYPE": "simple"}) bot = mebots.Bot("memebot", os.environ.get("BOT_TOKEN")) MAX_MESSAGE_LENGTH = 1000 PREFIX = "%" factory = Factory() # Webhook receipt and response @app.route("/", methods=["POST"]) def receive(): """ Receive callback to URL when message is sent in the group. """ # Retrieve data on that single GroupMe message. message = request.get_json()
# Flask from flask import Flask, request, render_template, redirect # Other import mebots from threading import Thread import requests import os import time from game import Game app = Flask(__name__) bot = mebots.Bot("tictactoebot", os.environ.get("BOT_TOKEN")) MAX_MESSAGE_LENGTH = 1000 PREFIX = "#" games = {} # Webhook receipt and response @app.route("/", methods=["POST"]) def receive(): """ Receive callback to URL when message is sent in the group. """ # Retrieve data on that single GroupMe message. message = request.get_json() group_id = message["group_id"] # Begin reply process in a new thread.
import os import requests import mebots from flask import Flask, request app = Flask(__name__) bot = mebots.Bot('at_everyone', os.environ.get('BOT_TOKEN')) GROUPME_ACCESS_TOKEN = os.environ.get('GROUPME_ACCESS_TOKEN') SEARCH = '@everyone' def get_user_ids(group_id): users = requests.get( f'https://api.groupme.com/v3/groups/{group_id}?token={GROUPME_ACCESS_TOKEN}' ).json()['response']['members'] user_ids = [user['id'] for user in users] return user_ids def send(message): url = 'https://api.groupme.com/v3/bots/post' r = requests.post(url, json=message) def process(message): # Prevent self-reply if message['sender_type'] != 'bot': if SEARCH in message['text'].lower(): group_id = message['group_id'] user_ids = get_user_ids(group_id)
import mebots import os import requests from flask import Flask, request, render_template, redirect from flask_socketio import SocketIO, emit, join_room, leave_room import eventlet from threading import Thread import json import random app = Flask(__name__) socketio = SocketIO(app) bot = mebots.Bot("bah", os.environ["BOT_TOKEN"]) PREFIX = "CAH " games = {} # TODO: use references to Player objects?? playing = {} class Player: def __init__(self, user_id, name): self.user_id = user_id self.name = name self.hand = [] self.won = [] def draw_white(self, card): self.hand.append(card)
import os import requests import mebots from flask import Flask, request from website import Website app = Flask(__name__) bot = mebots.Bot('old_owl', os.environ.get('BOT_TOKEN')) website = Website() PREFIX = '!' def process(message): # Prevent self-reply if message['sender_type'] != 'bot': if message['text'].startswith(PREFIX): args = message['text'].lstrip(PREFIX).split() command = args.pop(0) query = ' '.join(args) if command == 'search': return website.search(query) # Endpoint @app.route('/', methods=['POST']) def receive(): message = request.get_json() group_id = message["group_id"]
import os import argparse import requests import mebots from threading import Thread from flask import Flask, request app = Flask(__name__) bot = mebots.Bot('cleverbot', os.environ.get('BOT_TOKEN')) class CleverBot: _API_ROOT = 'https://cleverbot.io/1.0/' def __init__(self, user, key, group_id): self.user = user self.key = key self.nick = f'GroupMe_{group_id}' body = {'user': user, 'key': key, 'nick': self.nick} requests.post(self._API_ROOT + 'create', data=body) def query(self, text): body = { 'user': self.user, 'key': self.key, 'nick': self.nick, 'text': text }
#!/usr/bin/env python3 import requests, re, datetime, bs4, time, sys, json import numpy as np import matplotlib.pyplot as plt from matplotlib.dates import DateFormatter, SecondLocator from flask import Flask from flask import request import mebots DEBUG = False GROUPME_IMAGE_SERVICE_TOKEN = "" app = Flask(__name__) bot = mebots.Bot("crosscountrybot", os.environ["BOT_TOKEN"]) def plotTimes(group_id, data): formatter = DateFormatter('%m-%d-%y') x = data["x"] y = data["y"] _, axes = plt.subplots(1, data["years"], sharey=True) if len(data['boundaries']) == 0: sendMessage(group_id, text=f'{data["name"]} has no 5k races recorded.') return False if data["years"] == 1: axes = [axes] if DEBUG: print(f'Starting plot for {data["name"]}... ',end='') for i in range(data['years']):
import os import requests import mebots from flask import Flask, request app = Flask(__name__) bot = mebots.Bot('your_bot_shortname_here', os.environ['BOT_TOKEN']) @app.route('/', methods=['GET']) def home(): return 'You could put any content here you like, perhaps even a homepage for your bot!' @app.route('/', methods=['POST']) def receive(): data = request.get_json() group_id = data["group_id"] print('Incoming message:') print(data) # Prevent self-reply if data['sender_type'] != 'bot': if data['text'].startswith('/ping'): send(data['name'] + ' pinged me!', group_id) return 'ok', 200 def send(msg, group_id):
import mebots import os GROUP_ID = 49940116 # "bot" name can be whatever is most convenient for your program bot = mebots.Bot("test", os.environ["BOT_TOKEN"]) # Get all bot instances print(bot.instances()) # Given a group's ID, get the ID of the bot instance in that group print(bot.instance(GROUP_ID).id)
import os import requests import mebots from flask import Flask, request from website import Website app = Flask(__name__) bot = mebots.Bot('globalistbot', os.environ.get('BOT_TOKEN')) website = Website() PREFIX = '$' def process(message): # Prevent self-reply if message['sender_type'] != 'bot': if message['text'].startswith(PREFIX): args = message['text'].lstrip(PREFIX).split() command = args.pop(0) query = ' '.join(args) if command == 'search': return website.search(query) # Endpoint @app.route('/', methods=['POST']) def receive(): message = request.get_json() group_id = message["group_id"]