Added RAINBOWS
This commit is contained in:
parent
af9f024d63
commit
839871f636
|
@ -22,6 +22,7 @@ frdmn
|
||||||
We are using code from the following projects:
|
We are using code from the following projects:
|
||||||
./plugins/mlia.py - https://github.com/infinitylabs/UguuBot
|
./plugins/mlia.py - https://github.com/infinitylabs/UguuBot
|
||||||
./plugins/horoscope.py - https://github.com/infinitylabs/UguuBot
|
./plugins/horoscope.py - https://github.com/infinitylabs/UguuBot
|
||||||
|
color section in ./plugins/utility.py - https://github.com/hitzler/homero
|
||||||
|
|
||||||
Special Thanks:
|
Special Thanks:
|
||||||
Rmmh (created skybot!)
|
Rmmh (created skybot!)
|
||||||
|
|
|
@ -24,29 +24,33 @@ def reddit_url(match):
|
||||||
title, author, timeago, upvotes, downvotes, comments)
|
title, author, timeago, upvotes, downvotes, comments)
|
||||||
|
|
||||||
|
|
||||||
@hook.command
|
@hook.command(autohelp=False)
|
||||||
def reddit(inp):
|
def reddit(inp):
|
||||||
"""reddit <subreddit> [n] -- Gets a random post from <subreddit>, or gets the [n]th post in the subreddit."""
|
"""reddit <subreddit> [n] -- Gets a random post from <subreddit>, or gets the [n]th post in the subreddit."""
|
||||||
|
|
||||||
# clean and split the input
|
|
||||||
parts = inp.lower().strip().split()
|
|
||||||
id_num = None
|
id_num = None
|
||||||
|
|
||||||
# find the requested post number (if any)
|
if inp:
|
||||||
if len(parts) > 1:
|
# clean and split the input
|
||||||
inp = parts[0]
|
parts = inp.lower().strip().split()
|
||||||
try:
|
|
||||||
id_num = int(parts[1]) - 1
|
# find the requested post number (if any)
|
||||||
except ValueError:
|
if len(parts) > 1:
|
||||||
return "Invalid post number."
|
subreddit = parts[0]
|
||||||
|
try:
|
||||||
|
id_num = int(parts[1]) - 1
|
||||||
|
except ValueError:
|
||||||
|
return "Invalid post number."
|
||||||
|
else:
|
||||||
|
subreddit = "all"
|
||||||
|
|
||||||
try:
|
try:
|
||||||
data = http.get_json(base_url.format(inp.strip()),
|
data = http.get_json(base_url.format(subreddit.strip()),
|
||||||
user_agent=http.ua_chrome)
|
user_agent=http.ua_chrome)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
return "Error: " + str(e)
|
return "Error: " + str(e)
|
||||||
data = data["data"]["children"]
|
data = data["data"]["children"]
|
||||||
|
|
||||||
|
|
||||||
# get the requested/random post
|
# get the requested/random post
|
||||||
if id_num:
|
if id_num:
|
||||||
try:
|
try:
|
||||||
|
@ -68,6 +72,7 @@ def reddit(inp):
|
||||||
else:
|
else:
|
||||||
item["warning"] = ""
|
item["warning"] = ""
|
||||||
|
|
||||||
return u'\x02{title}\x02 - posted by \x02{author}\x02' \
|
|
||||||
|
return u'\x02{title} : {subreddit}\x02 - posted by \x02{author}\x02' \
|
||||||
' {timesince} ago - {ups} upvotes, {downs} downvotes -' \
|
' {timesince} ago - {ups} upvotes, {downs} downvotes -' \
|
||||||
' {link}{warning}'.format(**item)
|
' {link}{warning}'.format(**item)
|
||||||
|
|
|
@ -1,5 +1,30 @@
|
||||||
from util import hook, text
|
from util import hook, text
|
||||||
import hashlib
|
import hashlib
|
||||||
|
import collections
|
||||||
|
import re
|
||||||
|
|
||||||
|
# variables
|
||||||
|
|
||||||
|
colors = collections.OrderedDict([
|
||||||
|
('red', '\x0304'),
|
||||||
|
('ornage', '\x0307'),
|
||||||
|
('yellow', '\x0308'),
|
||||||
|
('green', '\x0309'),
|
||||||
|
('cyan', '\x0303'),
|
||||||
|
('ltblue', '\x0310'),
|
||||||
|
('rylblue','\x0312'),
|
||||||
|
('blue', '\x0302'),
|
||||||
|
('magenta','\x0306'),
|
||||||
|
('pink', '\x0313'),
|
||||||
|
('maroon', '\x0305')
|
||||||
|
])
|
||||||
|
|
||||||
|
# helper functions
|
||||||
|
|
||||||
|
strip_re = re.compile("(\x03|\x02|\x1f)(?:,?\d{1,2}(?:,\d{1,2})?)?", re.UNICODE)
|
||||||
|
|
||||||
|
def strip(text):
|
||||||
|
return strip_re.sub('', text)
|
||||||
|
|
||||||
# basic text tools
|
# basic text tools
|
||||||
|
|
||||||
|
@ -69,3 +94,37 @@ def munge(inp):
|
||||||
"""munge <text> -- Munges up <text>."""
|
"""munge <text> -- Munges up <text>."""
|
||||||
return text.munge(inp)
|
return text.munge(inp)
|
||||||
|
|
||||||
|
# colors - based on code by Reece Selwood - <https://github.com/hitzler/homero>
|
||||||
|
|
||||||
|
@hook.command
|
||||||
|
def rainbow(inp):
|
||||||
|
inp = unicode(inp)
|
||||||
|
inp = strip(inp)
|
||||||
|
col = colors.items()
|
||||||
|
out = ""
|
||||||
|
l = len(colors)
|
||||||
|
for i, t in enumerate(inp):
|
||||||
|
out += col[i % l][1] + t
|
||||||
|
return out
|
||||||
|
|
||||||
|
@hook.command
|
||||||
|
def wrainbow(inp):
|
||||||
|
inp = unicode(inp)
|
||||||
|
col = colors.items()
|
||||||
|
inp = strip(inp).split(' ')
|
||||||
|
out = []
|
||||||
|
l = len(colors)
|
||||||
|
for i, t in enumerate(inp):
|
||||||
|
out.append(col[i % l][1] + t)
|
||||||
|
return ' '.join(out)
|
||||||
|
|
||||||
|
@hook.command
|
||||||
|
def usa(inp):
|
||||||
|
inp = strip(inp)
|
||||||
|
c = [colors['red'], '\x0300', colors['blue']]
|
||||||
|
l = len(c)
|
||||||
|
out = ''
|
||||||
|
for i, t in enumerate(inp):
|
||||||
|
out += c[i % l] + t
|
||||||
|
return out
|
||||||
|
|
||||||
|
|
Reference in New Issue