Compare commits
No commits in common. "113dfd363026c6b6312ca7cd657c655fa3e854e8" and "dd9b7be1987ecec7fcf3d2a8c5f7b8c6fc6be702" have entirely different histories.
113dfd3630
...
dd9b7be198
|
@ -4,7 +4,7 @@ import typing
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
from typing import Any, cast
|
from typing import Any, cast
|
||||||
|
|
||||||
from . import mediawiki_oauth
|
from . import wikidata_oauth
|
||||||
|
|
||||||
wiki_hostname = "en.wikipedia.org"
|
wiki_hostname = "en.wikipedia.org"
|
||||||
wiki_api_php = f"https://{wiki_hostname}/w/api.php"
|
wiki_api_php = f"https://{wiki_hostname}/w/api.php"
|
||||||
|
@ -29,7 +29,7 @@ def parse_page(enwiki: str) -> dict[str, Any]:
|
||||||
|
|
||||||
def call(params: dict[str, str | int]) -> dict[str, typing.Any]:
|
def call(params: dict[str, str | int]) -> dict[str, typing.Any]:
|
||||||
"""Make GET request to mediawiki API."""
|
"""Make GET request to mediawiki API."""
|
||||||
data = mediawiki_oauth.api_post_request(params)
|
data = wikidata_oauth.api_post_request(params)
|
||||||
return cast(dict[str, Any], data.json())
|
return cast(dict[str, Any], data.json())
|
||||||
|
|
||||||
|
|
||||||
|
|
39
web_view.py
39
web_view.py
|
@ -84,25 +84,24 @@ def article_url(title: str) -> str:
|
||||||
return flask.url_for("article_page", url_title=title.replace(" ", "_"))
|
return flask.url_for("article_page", url_title=title.replace(" ", "_"))
|
||||||
|
|
||||||
|
|
||||||
def get_hit_count(q: str) -> int:
|
|
||||||
"""Search Wikipedia and return hit count."""
|
|
||||||
return typing.cast(int, run_search(q, limit=0)["searchinfo"]["totalhits"])
|
|
||||||
|
|
||||||
|
|
||||||
def search_count(q: str) -> int:
|
def search_count(q: str) -> int:
|
||||||
"""How often does this article title appear in Wikipedia."""
|
"""How often does this article title appear in Wikipedia."""
|
||||||
return get_hit_count(article_title_to_search_query(q)) - 1
|
query = run_search(article_title_to_search_query(q), limit=0)
|
||||||
|
return typing.cast(int, query["searchinfo"]["totalhits"]) - 1
|
||||||
|
|
||||||
|
|
||||||
def search_count_with_link(q: str) -> int:
|
def search_count_with_link(q: str) -> int:
|
||||||
"""Articles in Wikipedia that include this search term and a link."""
|
"""How often does this article title appear in Wikipedia."""
|
||||||
return get_hit_count(article_title_to_search_query(q) + f' linksto:"{q}"')
|
query = run_search(article_title_to_search_query(q) + f' linksto:"{q}"', limit=0)
|
||||||
|
return typing.cast(int, query["searchinfo"]["totalhits"])
|
||||||
|
|
||||||
|
|
||||||
def search_no_link(q: str) -> tuple[int, list[Hit]]:
|
def search_no_link(q: str) -> tuple[int, list[Hit]]:
|
||||||
"""Search for mentions of article title with no link included."""
|
"""Search for mentions of article title with no link included."""
|
||||||
query = run_search(article_title_to_search_query(q) + f' -linksto:"{q}"', "max")
|
query = run_search(article_title_to_search_query(q) + f' -linksto:"{q}"', "max")
|
||||||
return (query["searchinfo"]["totalhits"], query["search"])
|
totalhits = query["searchinfo"]["totalhits"]
|
||||||
|
results = query["search"]
|
||||||
|
return (totalhits, results)
|
||||||
|
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
|
@ -133,27 +132,7 @@ def index() -> str | Response:
|
||||||
|
|
||||||
|
|
||||||
def case_flip(s: str) -> str:
|
def case_flip(s: str) -> str:
|
||||||
"""
|
"""Switch case of character."""
|
||||||
Switch the case of a single character.
|
|
||||||
|
|
||||||
If the character is lowercase, it is converted to uppercase. If it is uppercase,
|
|
||||||
it is converted to lowercase. Non-alphabetic characters remain unchanged.
|
|
||||||
|
|
||||||
Args:
|
|
||||||
s (str): A single character string.
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
str: The character with its case flipped, or the original character if it's
|
|
||||||
not a letter.
|
|
||||||
|
|
||||||
Example:
|
|
||||||
>>> case_flip('a')
|
|
||||||
'A'
|
|
||||||
>>> case_flip('A')
|
|
||||||
'a'
|
|
||||||
>>> case_flip('1')
|
|
||||||
'1'
|
|
||||||
"""
|
|
||||||
if s.islower():
|
if s.islower():
|
||||||
return s.upper()
|
return s.upper()
|
||||||
if s.isupper():
|
if s.isupper():
|
||||||
|
|
Loading…
Reference in a new issue