gitignore updates
This commit is contained in:
parent
a8cc4e653d
commit
e77ae0c39f
4 changed files with 114 additions and 1 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -81,8 +81,10 @@ celerybeat-schedule
|
||||||
# SageMath parsed files
|
# SageMath parsed files
|
||||||
*.sage.py
|
*.sage.py
|
||||||
|
|
||||||
# Environments
|
# dotenv
|
||||||
.env
|
.env
|
||||||
|
|
||||||
|
# virtualenv
|
||||||
.venv
|
.venv
|
||||||
env/
|
env/
|
||||||
venv/
|
venv/
|
||||||
|
|
9
catto.plug
Normal file
9
catto.plug
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[Core]
|
||||||
|
name = Catto
|
||||||
|
module = catto
|
||||||
|
|
||||||
|
[Documentation]
|
||||||
|
description = Retrieve random cat pictures
|
||||||
|
|
||||||
|
[Python]
|
||||||
|
version = 3
|
101
catto.py
Normal file
101
catto.py
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
#import re
|
||||||
|
import json
|
||||||
|
import random
|
||||||
|
import logging
|
||||||
|
import requests
|
||||||
|
from errbot import BotPlugin, botcmd, re_botcmd
|
||||||
|
|
||||||
|
class Catto(BotPlugin):
|
||||||
|
"""Plugin for random cat images!"""
|
||||||
|
min_err_version = '3.0.0' # Optional, but recommended
|
||||||
|
|
||||||
|
|
||||||
|
def get_catapi_pic(self, type):
|
||||||
|
api_url = 'https://api.thecatapi.com/v1/images/search'
|
||||||
|
api_key = '9880edd3-3c4f-4758-aebe-c7182aeb3a70'
|
||||||
|
querystring = {"size":"full","mime_types":type,"format":"json","order":"RANDOM","limit":"1"}
|
||||||
|
headers = {'Content-Type': "application/json",'x-api-key': api_key}
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.request("GET", api_url, headers=headers, params=querystring)
|
||||||
|
response.raise_for_status()
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
logging.debug(e)
|
||||||
|
return 'Unable to return a cat image'
|
||||||
|
|
||||||
|
return json.loads(response.text)[0]['url']
|
||||||
|
|
||||||
|
def get_randomcat_pic(self):
|
||||||
|
api_url = 'http://aws.random.cat/meow'
|
||||||
|
|
||||||
|
try:
|
||||||
|
response = requests.request("GET", api_url)
|
||||||
|
response.raise_for_status()
|
||||||
|
except requests.exceptions.HTTPError as e:
|
||||||
|
logging.debug(e)
|
||||||
|
return 'Unable to return a cat image'
|
||||||
|
|
||||||
|
return json.loads(response.text)['file']
|
||||||
|
|
||||||
|
def get_catpic(self):
|
||||||
|
flip = random.randint(0, 1)
|
||||||
|
if flip == 0:
|
||||||
|
return self.get_catapi_pic("jpg,png,gif")
|
||||||
|
return self.get_randomcat_pic()
|
||||||
|
|
||||||
|
@botcmd()
|
||||||
|
def catto(self, msg, args):
|
||||||
|
"""Retrieve a random cat image, which may be animated (gif) or still (jpg/png)"""
|
||||||
|
if "gif" in args:
|
||||||
|
return self.catto_gif(msg, args)
|
||||||
|
elif "still" in args:
|
||||||
|
return self.catto_still(msg, args)
|
||||||
|
return self.get_catpic()
|
||||||
|
|
||||||
|
@botcmd()
|
||||||
|
def catto_gif(self, msg, args):
|
||||||
|
"""Retrieve a random cat animated gif"""
|
||||||
|
return self.get_catapi_pic("gif")
|
||||||
|
|
||||||
|
@botcmd()
|
||||||
|
def catto_still(self, msg, args):
|
||||||
|
"""Retrieve a random cat still picture (not animated)"""
|
||||||
|
return self.get_catapi_pic("jpg,png")
|
||||||
|
|
||||||
|
|
||||||
|
# @botcmd
|
||||||
|
# def catto_gif(self, msg, args):
|
||||||
|
# """Retrieve a random cat image"""
|
||||||
|
# return self.get_catpic("gif")
|
||||||
|
|
||||||
|
# """Example 'Hello, world!' plugin, modified by APiontek"""
|
||||||
|
|
||||||
|
# @botcmd
|
||||||
|
# def hello(self, msg, args):
|
||||||
|
# """Say hello to the world"""
|
||||||
|
# return "Fart on this, fucker!!"
|
||||||
|
|
||||||
|
# @re_botcmd(pattern=r"^(([Cc]an|[Mm]ay) I have a )?cookie please\?$")
|
||||||
|
# def hand_out_cookies(self, msg, match):
|
||||||
|
# """
|
||||||
|
# Gives cookies to people who ask me nicely.
|
||||||
|
|
||||||
|
# This command works especially nice if you have the following in
|
||||||
|
# your `config.py`:
|
||||||
|
|
||||||
|
# BOT_ALT_PREFIXES = ('Err',)
|
||||||
|
# BOT_ALT_PREFIX_SEPARATORS = (':', ',', ';')
|
||||||
|
|
||||||
|
# People are then able to say one of the following:
|
||||||
|
|
||||||
|
# Err, can I have a cookie please?
|
||||||
|
# Err: May I have a cookie please?
|
||||||
|
# Err; cookie please?
|
||||||
|
# """
|
||||||
|
# yield "Here's a cookie for you, {}".format(msg.frm)
|
||||||
|
# yield "/me hands out a cookie."
|
||||||
|
|
||||||
|
# @re_botcmd(pattern=r"(^| )cookies?( |$)", prefixed=False, flags=re.IGNORECASE)
|
||||||
|
# def listen_for_talk_of_cookies(self, msg, match):
|
||||||
|
# """Talk of cookies gives Errbot a craving..."""
|
||||||
|
# return "Somebody mentioned cookies? Om nom nom!"
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
|
@ -0,0 +1 @@
|
||||||
|
requests==2.18.4
|
Loading…
Reference in a new issue