From de6f9941cf85ca2bd69b33876600ac0d3a8aa360 Mon Sep 17 00:00:00 2001 From: Luke Robles Date: Sat, 21 Mar 2020 14:58:25 -0700 Subject: [PATCH] Adding river flow stats for zoid --- app/dragon-bot.py | 14 ++++++++++---- app/requirements.txt | 3 ++- app/river_stats.py | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 app/river_stats.py diff --git a/app/dragon-bot.py b/app/dragon-bot.py index 129a82bc..27fcedd1 100644 --- a/app/dragon-bot.py +++ b/app/dragon-bot.py @@ -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( diff --git a/app/requirements.txt b/app/requirements.txt index 635eabb5..b8aef34b 100644 --- a/app/requirements.txt +++ b/app/requirements.txt @@ -6,4 +6,5 @@ gTTS-token pyowm requests wikipedia -wolframalpha \ No newline at end of file +wolframalpha +lxml \ No newline at end of file diff --git a/app/river_stats.py b/app/river_stats.py new file mode 100644 index 00000000..adf0572e --- /dev/null +++ b/app/river_stats.py @@ -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 + "```" \ No newline at end of file