Closed Bug 762423 Opened 12 years ago Closed 11 years ago

Supybot ReMo plugin

Categories

(Mozilla Reps Graveyard :: reps.mozilla.org, task)

task
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: giorgos, Unassigned)

References

Details

(Whiteboard: [good first bug][lang=python][mentor=?])

Create a plugin for supybot to search reps in our IRC channels.

Example usage:
<user123> remobot whois giorgos
<remobot> giorgos is 'Giorgos Logiotatidis' http://reps.mozilla.org/u/giorgos/

Supybot will ask ReMo API (currently in reps-dev.mozilla.org) to get information about a Rep. 

Documentation on the API will be available here http://remo.rtfd.org
A set of different functions can be done through the plugin. E.g :

.rep <username> - Display rep profile and basic info (date joined, location)
.reports <username> - Display status of reports and links to recent user reports
.mentor <username> - Display the mentor of a username (and basic info)

also username should be able to be replaced with irc_nickname provided in remo profile.
I am interested to contribute in this bug. However, I need help on json,Supybot and API. Is there any links or documentations on that. I got the info regarding this bug from remo mailing list. TQ.
Hi wira,

Thanks for volunteering! 

Here is some documentation to get you started:
 - We use an IRC bot ('remobot') called Supybot. 

 - Here is documentation on writing Supybot plugins
   http://supybot.fr.cr/doc/use/plugins/index.html

 - You can find a lot of example plugins here
   https://github.com/stepnem/supybot-plugins

 - JSON is data a data representation format, with which your API data are distributed
   https://en.wikipedia.org/wiki/Json

 - You can use python json module to load json data as python dictionaries
   http://docs.python.org/library/json.html

 - Your API documentation is not ready yet, but it will be by next week. You can get started though with the following info:

   - To get all reps:
     https://reps-dev.allizom.org/api/v1/rep/?format=json

   - To look for rep with display_name 'giorgos':
     https://reps-dev.allizom.org/api/v1/rep/?display_name__iexact=giorgos

Note that the API is available only to reps-dev.allizom.org right know. (and I invited you to this)

Tell me how you feel about this. If you like to take over this I will assign this bug to you.

Thanks!
Depends on: 762890
Thanks for choosing me. I am glad to help and to learn on this bug. But before that,to be honest, this is the first time I heard about supybot. I think the best way to start is to install and to use supybot. I found one website but not sure whether it is correct or wrong.

Any website or guideline on how to install and to use supybot? A tutorial video would be excellence.
Hi wira,

I don't have any tutorials or videos. I haven't even installed supybot myself ;) I know that Leo installed and configured our supybot, known as 'remobot', so maybe you can ping him and I'm sure that if he has time he would be glad to help.

In any case though, I suggest that you become an experienced supybot user by installing and configuring yourself. This documentation

http://sourceforge.net/apps/mediawiki/gribble/index.php?title=Supybot_Install_Guide

looks pretty straightforward and supybot looks easily configurable imho.

Let me propose a first milestone:
 - Bring a supybot into #remo-dev on irc.mozilla.org
 - Install a plugin from stepnem's list I posted earlier. I suggest installing 'geekquote'

What do you think? ETA?
Yeah. That's what I plan for now. I'd play around with supybot first and try to know more about it and how it works. Then, I'll proceed by "pinging" Leo for help and answers if I do have any doubt or problem.

Wish me luck..!
Whiteboard: mentor
Okay, so... I got a little bored this night, and decided to have a crack at creating a supybot plugin. A few hours later, and I come up with this: https://github.com/LeoMcA/supybot-remo

It implements the whois feature, try it in #remo with "remobot: whois leo" (it accepts either a remo portal username or an irc nick)

So, I'm terribly sorry wira if you've been hard at work, and I've suddenly come in and stolen the show :( But I hope that the lack of activity on this bug means that you haven't been working on it, and so I haven't wasted anyone's time :)

whois is fully implemented, but I need a little more info for the others. For rep, I need to know what info should be displayed, and for reports and mentor, I need more in the api. Currently, the api doesn't list anything regarding reports and doesn't list a person's mentor :(

I also noticed, though, that the API exposes details about events. If you want me to add some commands related to that, I'd be happy to do so!
Excellent work Leo!

A few suggestions / ideas:

 * Print the number of results. For example, when I search for 'reps interest coding' I get many results and I would be nice to know how many they are.

 * Limit the number of results. If a request returns too many results (e.g. more than 5) instead of printing them all, print the first 5 and then message to say that the results are limited. This will help avoid channel flooding. Maybe you can you use a special keyword, like 'getall', to return all results when a user specifically requests so. E.g.

'remobot reps interest coding getall'


 * Interests with spaces don't work.

'remobot reps interest developer tools'


* There is a place paramaber 'query=' that searches for
 - First name
 - Last name
 - username
 - irc name
 - email
 - country
 - region
 - city
 - functional areas

all at once. Maybe you would like to support this as well, e.g.

'remobot search <query>'


Again, excellent work, congrats! ;)

-g
Whiteboard: mentor → [good first bug][lang=python]
Whiteboard: [good first bug][lang=python] → [mentor=?][lang=python]
Whiteboard: [mentor=?][lang=python] → [good first bug][lang=python]
Whiteboard: [good first bug][lang=python] → [good first bug][lang=python][mentor=?]
I would like to work on this one. One question though. Should I implement this from scratch or should I try to extend https://github.com/LeoMcA/supybot-remo instead?
(In reply to Tarashish Mishra from comment #9)
> I would like to work on this one. One question though. Should I implement
> this from scratch or should I try to extend
> https://github.com/LeoMcA/supybot-remo instead?

Hey Tarashish,

This bug probably should have been closed a while back, as my code (the stuff you linked on github) does what the bug described, and is currently running on remobot, in various IRC channels.

If you want to extend the functionality of that plugin (like the things Pierros talks about in comment #1), please feel free to, and then send me a pull request!

Cheers!
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Product: Mozilla Reps → Mozilla Reps Graveyard
You need to log in before you can comment on or make changes to this bug.