47 lines
1.2 KiB
Python
Executable File
47 lines
1.2 KiB
Python
Executable File
import discord
|
|
from bs4 import BeautifulSoup
|
|
import requests
|
|
import threading
|
|
|
|
results = {}
|
|
|
|
|
|
def get_river_stats(river_id):
|
|
url = requests.get("https://waterdata.usgs.gov/usa/nwis/uv?" + river_id)
|
|
|
|
soup = BeautifulSoup(url.content, "lxml")
|
|
river_name = " ".join(soup.find("h2").text.split()[2:])
|
|
table = soup.find("table", border=1, align="left")
|
|
title = table.find("caption").text.strip().split("--")[0].strip()
|
|
|
|
for rows in table.findAll("tr"):
|
|
flow_value = rows.findAll("td", {"class": "highlight2"})
|
|
results[river_name] = flow_value[0].text
|
|
|
|
|
|
def get_stats():
|
|
river_ids = [
|
|
"06752260",
|
|
"07091200",
|
|
"06719505",
|
|
]
|
|
threads = []
|
|
for river in river_ids:
|
|
t = threading.Thread(target=get_river_stats, args=(river,))
|
|
threads.append(t)
|
|
t.start()
|
|
|
|
for x in threads:
|
|
x.join()
|
|
|
|
final_string = ""
|
|
embed = discord.Embed(
|
|
description=":man_rowing_boat: Flows :man_rowing_boat:",
|
|
color=0x428BCA,
|
|
type="rich",
|
|
)
|
|
embed.set_author(name="River stats")
|
|
for key, value in results.items():
|
|
embed.add_field(name=key, value=value, inline=False)
|
|
return embed
|