plugins/dict_plugin.py
author Mikael Berthe <mikael@lilotux.net>
Thu, 03 May 2007 22:41:58 +0200
changeset 34 535d03a56f9d
parent 31 a707bfd53b26
permissions -rw-r--r--
Improve DICT module readbility

#$ neutron_plugin 01

import DICT
import urllib
import re

def handler_dict_define(type, source, parameters):
	dc = DICT.DictConnection('dict.org')
	db = "*"
        parameters = parameters.strip()
        m = re.match(r"\[([\w\d-]+)\] ", parameters)
	if m:
		db = m.group(1)
		parameters = parameters[parameters.find(' ')+1:]
	try:
		results = dc.get_definition(parameters, db)
		if len(results):
			#reply = string.join(results[0], '\n')
			#reply = 'http://www.dict.org/bin/Dict?Form=Dict1&Query=' + urllib.quote(parameters) + '&Strategy=*&Database=*'
			reply = ''
			for result in results[:3]:
				reply += '\n\n' + string.join(result[:8], '\n')[:500][4:]
				if len(result) > 8:
					reply += ' . . .'
			reply = reply.replace('\n\n\n', '\n\n')
		else:
			reply = 'No Results'
	except:
		raise
		reply = 'Error'
	smsg(type, source, reply.strip())

register_command_handler(handler_dict_define, 'dict', 0,
                         'Defines a word using the DICT protocol.',
                         'dict [db] <word>', ['dict jabber'])