Source code for cslbot.commands.wiki

# -*- coding: utf-8 -*-
# Copyright (C) 2013-2015 Samuel Damashek, Peter Foley, James Forcier, Srijay Kasturi, Reed Koser, Christopher Reffett, and Fox Wilson
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

from requests import get

from ..helpers.command import Command


[docs]def get_rand(url): params = {'format': 'json', 'action': 'query', 'list': 'random', 'rnnamespace': '0'} data = get('%s/api.php' % url, params=params).json() return data['query']['random'][0]['title']
@Command(['wiki', 'wikipedia', 'livedoc'], ['name'])
[docs]def cmd(send, msg, args): """Returns the first wikipedia result for the argument. Syntax: {command} [term] """ if 'livedoc' in args['name']: url = 'http://livedoc.tjhsst.edu/w' name = 'livedoc' else: url = 'http://en.wikipedia.org/w' name = 'wikipedia' if not msg: msg = get_rand(url) params = {'format': 'json', 'action': 'query', 'list': 'search', 'srlimit': '1', 'srsearch': msg} data = get('%s/api.php' % url, params=params).json() try: article = data['query']['search'][0]['title'] except IndexError: send("%s isn't important enough to have a %s article." % (msg, name)) return article = article.replace(' ', '_') # wikipedia uses /w for api and /wiki for articles url += 'iki' send('%s/%s' % (url, article))