This commit is contained in:
Luke Rogers 2014-02-14 17:03:08 +13:00
parent 004ceb79fc
commit d6683b32f4
24 changed files with 64 additions and 58 deletions

View File

@ -3,7 +3,6 @@ import time
from util import hook
# CTCP responses
@hook.regex(r'^\x01VERSION\x01$')
def ctcp_version(inp, notice=None):

View File

@ -8,7 +8,6 @@ import pygeoip
from util import hook, http
# load region database
with open("./plugins/data/geoip_regions.json", "rb") as f:
regions = json.loads(f.read())

View File

@ -3,8 +3,8 @@ import re
from util import hook
@hook.command(autohelp=False)
def help(inp, notice=None, conn=None, bot=None):
@hook.command("help", autohelp=False)
def help_command(inp, notice=None, conn=None, bot=None):
"""help -- Gives a list of commands/help for a command."""
funcs = {}

View File

@ -39,10 +39,10 @@ def imdb(inp):
@hook.regex(*imdb_re)
def imdb_url(match):
id = match.group(4).split('/')[-1]
if id == "":
id = match.group(4).split('/')[-2]
content = http.get_json("http://www.omdbapi.com/", i=id)
imdb_id = match.group(4).split('/')[-1]
if imdb_id == "":
imdb_id = match.group(4).split('/')[-2]
content = http.get_json("http://www.omdbapi.com/", i=imdb_id)
if content.get('Error', None) == 'Movie not found!':
return 'Movie not found!'
elif content['Response'] == 'True':

View File

@ -19,7 +19,8 @@ def is_valid(data):
@hook.command(autohelp=False)
def imgur(inp):
"""imgur [subreddit] -- Gets the first page of imgur images from [subreddit] and returns a link to them. If [subreddit] is undefined, return any imgur images"""
"""imgur [subreddit] -- Gets the first page of imgur images from [subreddit] and returns a link to them.
If [subreddit] is undefined, return any imgur images"""
if inp:
# see if the input ends with "nsfw"
show_nsfw = inp.endswith(" nsfw")

View File

@ -132,7 +132,6 @@ def bukget(inp, reply=None, message=None):
message(line_b)
@hook.command(autohelp=None)
def randomplugin(inp, reply=None, message=None):
"""randomplugin - Gets a random plugin from dev.bukkit.org"""

View File

@ -77,11 +77,12 @@ def mcping_modern(host, port):
try:
version = data["version"]["name"]
desc = data["description"]
max = data["players"]["max"]
max_players = data["players"]["max"]
online = data["players"]["online"]
except Exception as e:
return "Invalid data: {}; error: {}".format(data, e)
return mc_color_format(u"{}\x0f - {}\x0f - {}/{} players *".format(desc, version, online, max)).replace("\n", u"\x0f - ")
return mc_color_format(u"{}\x0f - {}\x0f - {}/{} players *".format(desc, version, online,
max_players)).replace("\n", u"\x0f - ")
def mcping_legacy(host, port):
@ -102,7 +103,8 @@ def mcping_legacy(host, port):
message = u"{} - {}/{} players".format(mc_color_format(data[0]), data[1], data[2])
else:
# decoded data, server is using new format
message = u"{} \x0f- {} - {}/{} players".format(mc_color_format(data[3]), mc_color_format(data[2]), data[4], data[5])
message = u"{} \x0f- {} - {}/{} players".format(mc_color_format(data[3]),
mc_color_format(data[2]), data[4], data[5])
sock.close()
return message
@ -174,7 +176,6 @@ def mcping(inp):
# return e.args[0]
#
try:
return mcping_modern(host, port)
except:

View File

@ -46,14 +46,14 @@ def db_getall(db, nick, limit=-1):
""", (nick, limit))
def db_get(db, nick, id):
def db_get(db, nick, note_id):
return db.execute("""
select added, text from todos
where lower(user) = lower(?)
order by added desc
limit 1
offset ?
""", (nick, id)).fetchone()
""", (nick, note_id)).fetchone()
def db_del(db, nick, limit='all'):

View File

@ -39,7 +39,7 @@ potatoes = ['AC Belmont', 'AC Blue Pride', 'AC Brador', 'AC Chaleur', 'AC Domino
@hook.command
def potato(inp, action=None, input=None):
def potato(inp, action=None):
"""potato <user> - Makes <user> a tasty little potato."""
inp = inp.strip()

View File

@ -21,7 +21,7 @@ def rottentomatoes(inp, bot=None):
movie = results['movies'][0]
title = movie['title']
id = movie['id']
movie_id = movie['id']
critics_score = movie['ratings']['critics_score']
audience_score = movie['ratings']['audience_score']
url = movie['links']['alternate']
@ -29,7 +29,7 @@ def rottentomatoes(inp, bot=None):
if critics_score == -1:
return
reviews = http.get_json(movie_reviews_url % id, apikey=api_key, review_type='all')
reviews = http.get_json(movie_reviews_url % movie_id, apikey=api_key, review_type='all')
review_count = reviews['total']
fresh = critics_score * review_count / 100

View File

@ -30,11 +30,11 @@ def get_steam_info(url):
break
# find the next element directly after the <b></b> tag
next = b.nextSibling
if next:
next_element = b.nextSibling
if next_element:
# if the element is some text
if isinstance(next, NavigableString):
text = next.string.strip()
if isinstance(next_element, NavigableString):
text = next_element.string.strip()
if text:
# we found valid text, save it and continue the loop
data[title] = text
@ -44,11 +44,11 @@ def get_steam_info(url):
# useless spaces or tabs between the <b> and <a> tags.
# so we find the next <a> tag and carry on to the next
# bit of code below
next = next.find_next('a', href=True)
next_element = next_element.find_next('a', href=True)
# if the element is an <a></a> tag
if isinstance(next, Tag) and next.name == 'a':
text = next.string.strip()
if isinstance(next_element, Tag) and next_element.name == 'a':
text = next_element.string.strip()
if text:
# we found valid text (in the <a></a> tag),
# save it and continue the loop

View File

@ -29,6 +29,7 @@ strip_re = re.compile("(\x03|\x02|\x1f)(?:,?\d{1,2}(?:,\d{1,2})?)?", re.UNICODE)
def strip(string):
return strip_re.sub('', string)
# basic text tools
@ -63,6 +64,7 @@ def swapcase(inp):
"""swapcase <string> -- Swaps the capitalization of <string>."""
return inp.swapcase()
# encoding
@ -116,6 +118,7 @@ def escape(inp):
except Exception as e:
return "Error: {}".format(e)
# length
@ -124,6 +127,7 @@ def length(inp):
"""length <string> -- gets the length of <string>"""
return "The length of that string is {} characters.".format(len(inp))
# reverse
@ -132,15 +136,17 @@ def reverse(inp):
"""reverse <string> -- reverses <string>."""
return inp[::-1]
# hashing
@hook.command
def hash(inp):
@hook.command("hash")
def hash_command(inp):
"""hash <string> -- Returns hashes of <string>."""
return ', '.join(x + ": " + getattr(hashlib, x)(inp).hexdigest()
for x in ['md5', 'sha1', 'sha256'])
# novelty
@ -149,6 +155,7 @@ def munge(inp):
"""munge <text> -- Munges up <text>."""
return text.munge(inp)
# colors - based on code by Reece Selwood - <https://github.com/hitzler/homero>