Source code for raven.layer.cmd.wiki

from mediawiki import MediaWiki
from mediawiki.exceptions import DisambiguationError

from raven.layer.cmd.cmd_base_layer import CMDBaseLayer
from raven.config import PROCESSED_INPUT, COMMANDS, STOPLAYER
from raven.utils import parse_cmd_value


[docs]class WikiLayer(CMDBaseLayer): """ Getting the Summary for the give keyword if it available in the wikipedia. """ def __init__(self, param=None): super(WikiLayer, self).__init__(param)
[docs] def response(self, txObject): super(WikiLayer, self).response(txObject) if self.check_cmd(COMMANDS["WIKI"]["name"], txObject): key_value = parse_cmd_value(txObject[PROCESSED_INPUT]) respose_value = None try: wikipedia = MediaWiki() try: respose_value = wikipedia.page(key_value).summary except DisambiguationError as e: respose_value = str(e) txObject[PROCESSED_INPUT] = respose_value STOPLAYER.send() except ConnectionError as e: txObject[PROCESSED_INPUT] = str(e) return txObject