48 lines
1.3 KiB
Python
48 lines
1.3 KiB
Python
import requests
|
|
import json
|
|
|
|
from models.xkcdComic import Comic
|
|
|
|
|
|
class ProgrammerExcuses:
|
|
def __init__(self) -> None:
|
|
self.url = "http://programmingexcuses.com"
|
|
|
|
def get_excuse(self):
|
|
page = requests.get(url=self.url)
|
|
content = page.content.decode().split("\n")
|
|
for html in content:
|
|
if 'href="/"' in html:
|
|
start_index = html.find('3;">')
|
|
end_index = html.find("</a></center>")
|
|
return html[start_index + 4:end_index]
|
|
|
|
|
|
class XKCD:
|
|
def __init__(self) -> None:
|
|
self.url = "https://xkcd.com"
|
|
self.api = "info.0.json"
|
|
|
|
def get_random_comic(self):
|
|
response = requests.get(url=f"https://c.xkcd.com/random/comic")
|
|
|
|
for line in response.text.split("\n"):
|
|
if '<meta property="og:url"' in line:
|
|
line = line.split('"')
|
|
for cell in line:
|
|
if "https" in cell:
|
|
return self.get_specific_comic(url=cell)
|
|
|
|
def get_last_comic(self):
|
|
response = requests.api.get(f"{self.url}/{self.api}")
|
|
return Comic(json.loads(response.text))
|
|
|
|
def get_specific_comic(self, num=None, url=None):
|
|
if num is not None:
|
|
response = requests.api.get(url=f"{self.url}/{num}/{self.api}")
|
|
return Comic(json.loads(response.text))
|
|
|
|
if url is not None:
|
|
response = requests.api.get(url=f"{url}/{self.api}")
|
|
return Comic(json.loads(response.text))
|