Adding river flow stats for zoid

This commit is contained in:
Luke Robles 2020-03-21 14:58:25 -07:00
parent 2fc686aa9c
commit de6f9941cf
3 changed files with 52 additions and 5 deletions

View File

@ -11,9 +11,9 @@ import requests
import animals
import core_utils
import dice
import decide
import define_word
import dice
import discord
import docker
import eight_ball
@ -23,16 +23,16 @@ import get_from_reddit
import gitlab
import help_methods
import lewds
import meme_gen
import quake
import questions
import river_stats
import role_check
import set_avatar
import stock
import tts
import wallpaper
import weather
import meme_gen
# Client object
client = discord.Client()
dragon_environment = os.getenv('DRAGON_ENV')
@ -182,6 +182,12 @@ async def on_message(message):
if message.content.startswith('!emoji'):
await emoji.parse_message(client, message)
if message.content.startswith('!flows'):
await client.send_message(
message.channel,
river_stats.get_stats()
)
if message.content.startswith('!greentext'):
await client.send_message(
message.channel,
@ -293,7 +299,7 @@ async def on_message(message):
await client.send_message(
message.channel,
dice.parse_message(message.content)
)
)
if message.content.startswith('!smug'):
await client.send_message(

View File

@ -7,3 +7,4 @@ pyowm
requests
wikipedia
wolframalpha
lxml

40
app/river_stats.py Normal file
View File

@ -0,0 +1,40 @@
import discord
from bs4 import BeautifulSoup
import requests
import threading
results = {}
def get_river_stats(river_url):
url = requests.get(river_url)
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():
rivers = [
'https://waterdata.usgs.gov/usa/nwis/uv?06752260',
'https://waterdata.usgs.gov/co/nwis/uv/?site_no=07091200&PARAmeter_cd=00065,00060',
'https://waterdata.usgs.gov/co/nwis/uv/?site_no=06719505&PARAmeter_cd=00065,00060',
]
threads = []
for river in rivers:
t = threading.Thread(target=get_river_stats, args=(river,))
threads.append(t)
t.start()
for x in threads:
x.join()
final_string = ''
for key, value in results.items():
final_string += "\n" + key + ": " + value
return "```" + final_string + "```"