Skip to content
This repository was archived by the owner on Feb 21, 2018. It is now read-only.

Commit 2290d6c

Browse files
committed
bot/hubstats: New module
1 parent 91ee09a commit 2290d6c

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed

modules/bot/hubstats.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"""
2+
Copyright (c) 2014, Sam Dodrill
3+
All rights reserved.
4+
5+
This software is provided 'as-is', without any express or implied
6+
warranty. In no event will the authors be held liable for any damages
7+
arising from the use of this software.
8+
9+
Permission is granted to anyone to use this software for any purpose,
10+
including commercial applications, and to alter it and redistribute it
11+
freely, subject to the following restrictions:
12+
13+
1. The origin of this software must not be misrepresented; you must not
14+
claim that you wrote the original software. If you use this software
15+
in a product, an acknowledgment in the product documentation would be
16+
appreciated but is not required.
17+
18+
2. Altered source versions must be plainly marked as such, and must not be
19+
misrepresented as being the original software.
20+
21+
3. This notice may not be removed or altered from any source
22+
distribution.
23+
"""
24+
25+
import requests
26+
27+
NAME="Github statistics"
28+
DESC="Shows Github statistics via the Open Source Report Card"
29+
30+
def initModule(cod):
31+
cod.addBotCommand("OSRC", personCheck)
32+
33+
def destroyModule(cod):
34+
cod.delBotCommand("OSRC")
35+
36+
def rehash():
37+
pass
38+
39+
def personCheck(cod, line, splitline, source, destination):
40+
"ARGS: <person> - looks up <person> on http://osrc.dfm.io/ and summarizes their report card"
41+
42+
if len(splitline) < 2:
43+
cod.reply(source, destination, personCheck.__doc__)
44+
45+
person = splitline[1]
46+
47+
try:
48+
info = requests.get("http://osrc.dfm.io/%s.json" % person).json()
49+
50+
toplang = info["usage"]["languages"][0]
51+
toprepo = info["repositories"][0]
52+
53+
string = "%s: %s user (top %d%%) - Top repo: %s (%d events)" %\
54+
(info["name"], toplang["language"], toplang["quantile"],
55+
toprepo["repo"], toprepo["count"])
56+
57+
cod.reply(source, destination, string)
58+
except Exception as e:
59+
cod.reply(source, destination, "There was some error looking that person up: %s" % e.message)
60+

0 commit comments

Comments
 (0)