def wikipedia(self, context, lang: str = None, query: str = None):
''' Get a page from wikipedia and reply with an embed '''
query = self.bot.get_text(context)
if lang is not None:
if lang.startswith('(') and lang.endswith(')'):
query = query[len(lang) + 1:]
lang = lang[1:-1]
else:
lang = None
if query in [None, '', ' ']:
await self.bot.doubt(context)
return
try:
import wikipedia
if lang is not None and lang in wikipedia.languages().keys():
wikipedia.set_lang(lang)
else:
wikipedia.set_lang('en')
page = wikipedia.page(query)
summary = page.summary
if len(summary) > 1222: # totally arbitrary chosen number
summary = summary[:1220] + '...'
embed = discord.Embed(title=page.title, description=summary, url=page.url)
embed.set_footer(text=page.url)
if self.bot.config['bleeding']:
if len(page.images) > 0:
embed.set_image(url=page.images[0])
await self.bot.say(embed=embed)
await self.bot.replied(context)
except wikipedia.PageError as e:
await self.bot.reply('{}\nMake sure you search for page titles in the language that you have set.'.format(e))
await self.bot.doubt(context)
except KeyError:
pass
except wikipedia.DisambiguationError as e:
msg = '```\n{}\n```'.format(e)
await self.bot.doubt(context)
await self.bot.say(msg)
评论列表
文章目录