-
Notifications
You must be signed in to change notification settings - Fork 1
/
coderwall.py
35 lines (31 loc) · 996 Bytes
/
coderwall.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import json
from urllib.error import HTTPError
from urllib.request import urlopen
from errbot import BotPlugin, botcmd
USER = """
User: %(username)s
Name: %(name)s
Team: %(team)s
location: %(location)s
endorsements: %(endorsements)s
"""
BADGE = "%(name)20s -- %(description)s -- %(badge)s"
class Coderwall(BotPlugin):
@botcmd
def coderwall(self, mess, args):
"""Shows the badges of a coderwall user
Example: !coderwall gbin
"""
if not args:
return "Am I supposed to guess the username?..."
response = None
username = args.strip()
try:
content = urlopen(f"http://coderwall.com/{username}.json")
results = json.loads(content.read().decode())
for badge in results["badges"]:
self.send(mess.frm, BADGE % badge)
response = USER % results
except HTTPError:
response = "User not found."
return response