WikipeBot/bot.py
2025-01-10 22:58:52 +01:00

100 lines
4.0 KiB
Python

import discord, wikipedia
from discord import Option
#from private.config import token
#import os
#os.chdir("/opt/disbot")
bot = discord.Bot()
g_ids = [1261698917163077632]
@bot.event
async def on_ready():
print(f"We've logged in as {bot.user}.")
@bot.slash_command(guild_ids=g_ids, name = "summary", description="Returns a Wikipedia summary")
async def summary(ctx, search: Option(str, description="What do you want to get summary for?", required = True), lang: Option(str, description="Language of wiki", required = False) = "en"):
await ctx.channel.trigger_typing() # that bot is typing
try:
wikipedia.set_lang(lang)
except:
await ctx.author.send("Your chosen language doesnt have dedicated wiki")
try: # sezene sumar a odesle
thesummary = wikipedia.summary(search, chars = 1950)
try:
await ctx.respond(thesummary) # Respons je limitovano 3 vterinami, lepsi ale obcas nestihne
except:
await ctx.send(thesummary) # Send horsi, pouzije pokud nestihne response
except: # pokud nesezena musi vyhledavat
searchsummary = str(wikipedia.search(search, suggestion = True)).replace('(', '').replace(")", "").replace("'", "").replace('[', '').replace(']', '')
await ctx.author.send(f"I can't seem to find a summary for that.. Did you mean: {searchsummary}")
@bot.slash_command(guild_ids=g_ids, name = "search", description="Search Wikipedia")
async def search(ctx, search: Option(str, description = "What do you want to search for?", required = True), lang: Option(str, description="Language of wiki", required = False) = "en"):
await ctx.channel.trigger_typing() # shows that bot is typing
try:
wikipedia.set_lang(lang)
except:
await ctx.author.send("Your chosen language doesnt have dedicated wiki")
searchsearch = str(wikipedia.search(search, suggestion = True)).replace('(', '').replace(")", "").replace("'", "").replace('[', '').replace(']', '')
try:
await ctx.respond(searchsearch)
except:
await ctx.send(searchsearch)
@bot.slash_command(guild_ids=g_ids, name = "url", description="Get a URL to a page on Wikipedia")
async def url(ctx, search: Option(str, description = "What do you want to get URL for?", required = True), lang: Option(str, description="Language of wiki", required = False) = "en"):
await ctx.channel.trigger_typing() # shows that bot is typing
try:
wikipedia.set_lang(lang)
except:
await ctx.author.send("Your chosen language doesnt have dedicated wiki")
try: # pokud sezenu sumary tak sezenu link
urlsummary = wikipedia.summary(search, auto_suggest = False)
search = search.lower().replace(" ","_").replace(" ","_")
try:
await ctx.respond(f"https://{lang}.wikipedia.org/wiki/{search}")
except:
await ctx.send(f"https://{lang}.wikipedia.org/wiki/{search}")
except:
urlsearch = str(wikipedia.search(search, suggestion = True)).replace('(', '').replace(")", "").replace("'", "").replace('[', '').replace(']', '')
try:
await ctx.respond(f"https://{lang}.wikipedia.org/wiki/{urlsearch}")
except:
await ctx.send(f"https://{lang}.wikipedia.org/wiki/{urlsearch}")
@bot.slash_command(guild_ids=g_ids, name = "random", description="Returns a random Wikipedia article")
async def random(ctx, lang: Option(str, description = "Language of wiki", required = False) = "en"):
await ctx.channel.trigger_typing() # shows that bot is typing
try:
wikipedia.set_lang(lang)
except:
await ctx.author.send("Your chosen language doesnt have dedicated wiki")
ran_article = wikipedia.random().replace(" ", "_").replace(" ", "_")
try:
await ctx.respond(f"https://{lang}.wikipedia.org/wiki/{ran_article}")
except:
await ctx.send(f"https://{lang}.wikipedia.org/wiki/{ran_article}")
bot.run("MTMyNTk1Mzg4OTcyNzQxNDM0Mw.G2Tgo0.2OhbgaVYhys0BhxJMVgGDnG0W5qvxH-soJML3M")