Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 8 additions & 2 deletions bot/extensions/wikipedia_cog.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
from json import loads
from typing import Any, List
from urllib.parse import quote_plus
from urllib.request import urlopen
from urllib.request import Request, urlopen

from discord import Button, ButtonStyle, Embed, Interaction, ui
from discord.ext.commands import Cog, Context, hybrid_command
from discord.ui import View

# Wikimedia requires a descriptive User-Agent identifying the application
# and a way to contact the operator. See:
# https://foundation.wikimedia.org/wiki/Policy:Wikimedia_Foundation_User-Agent_Policy
USER_AGENT = "grace-bot/1.0 (https://github.com/Code-Society-Lab/grace)"


def search_results(search: str) -> List[Any]:
"""Return search results from Wikipedia for the given search query.
Expand All @@ -20,7 +25,8 @@ def search_results(search: str) -> List[Any]:
url_encode: str = quote_plus(search)
base_url: str = f"https://en.wikipedia.org/w/api.php?action=opensearch&format=json&limit=3&namespace=0&search={url_encode}"

with urlopen(base_url) as url:
request = Request(base_url, headers={"User-Agent": USER_AGENT})
with urlopen(request) as url:
return loads(url.read())


Expand Down