import discord, wikipedia, json from discord import Option from random import randrange #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.slash_command(guild_ids=g_ids, name = "addfact", description="Adds fun fact into pool") async def new_joke(ctx, fact: Option(str, description = "Text of the fun fact", required = True)): await ctx.channel.trigger_typing() with open("funfacts.json", "r") as f: jokes = json.load(f) new = {} new["author"] = str(ctx.author.id) new["rating"] = 0 new["txt"] = str(fact) jokes["funfacts"].append(new) try: await ctx.respond(f"~ moc děkuju Senpai ~ UwU") except: await ctx.send(f"~ moc děkuju Senpai ~ UwU") with open("funfacts.json", "w") as f: json.dump(jokes, f) return True @bot.slash_command(guild_ids=g_ids, name = "random_fact", description="Reads facts from the pool") async def random_joke(ctx): await ctx.channel.trigger_typing() with open("funfacts.json", "r") as f: jokes = json.load(f) ran = randrange(len(jokes["funfacts"])) print(jokes["funfacts"][ran]) #try: # await ctx.respond(f"~ moc děkuju Senpai ~ UwU") #except: # await ctx.send(f"~ moc děkuju Senpai ~ UwU") bot.run("MTMyNTk1Mzg4OTcyNzQxNDM0Mw.G2Tgo0.2OhbgaVYhys0BhxJMVgGDnG0W5qvxH-soJML3M")