initial commit
This commit is contained in:
133
cogs/radar.py
Normal file
133
cogs/radar.py
Normal file
@@ -0,0 +1,133 @@
|
||||
import json
|
||||
from tracemalloc import stop
|
||||
import discord
|
||||
import wget
|
||||
import requests
|
||||
import random
|
||||
import time
|
||||
import os
|
||||
from discord.ext import commands
|
||||
|
||||
## Xeno Discord PY Bot
|
||||
### Radar Cog and Functionality
|
||||
extname = (f'Radar')
|
||||
randomnum = random.random()
|
||||
|
||||
# init local vars
|
||||
initcurtime = time.localtime()
|
||||
curtime = (f'{initcurtime.tm_hour}{initcurtime.tm_min}{initcurtime.tm_sec}')
|
||||
curdate = (f'{initcurtime.tm_year}{initcurtime.tm_mon}{initcurtime.tm_mday}')
|
||||
|
||||
#make a cog.
|
||||
class Radar(commands.Cog):
|
||||
def __init__(self, bot):
|
||||
self.bot = bot
|
||||
|
||||
#radar command define
|
||||
@commands.command(name='radar', pass_context=True)
|
||||
async def radarget(self, ctx, arg1):
|
||||
fnameformat = (f'XenoRadar_{arg1}_{curdate}_{curtime}.gif')
|
||||
imgname = fnameformat
|
||||
print (f'Cog_Radar: The radar command was run! {curdate}@{curtime}')
|
||||
#uparg1 = arg1.upper()
|
||||
#uparg2 = arg2.upper()
|
||||
if arg1 == "help":
|
||||
await ctx.channel.send(f'With no special arguments, this help page will appear.\n Using the radar command fetches radar loops from NWS servers, 3 letters automatically adds *K* in front, such as *KHGX*. \nIf a radar site with 4 or more letters is specified, Xeno will automatically fetch a radar image for your input. \nUsing the **natl** argument gets a moasic of all radars in the major US.')
|
||||
elif arg1 == "natl":
|
||||
conusarg = ('CONUS-LARGE')
|
||||
await self.newdownloadImage(conusarg, imgname)
|
||||
# await self.downloadImage(f'conus')
|
||||
#if arg1 and len(arg1) == 3:
|
||||
# addkarg1 = ('K'+arg1)
|
||||
# downloadImage(addkarg1)
|
||||
else:
|
||||
await self.newdownloadImage(arg1, imgname)
|
||||
#argCheck(uparg1, uparg2)
|
||||
if os.path.isfile(f'data/radar/{imgname}'):
|
||||
print(f'\nCog_Radar: file {imgname} was downloaded!! now sending to channel') # (TODO: make this go in bot log and show actual stuff)
|
||||
await ctx.reply(file=discord.File(f'data/radar/{imgname}'))
|
||||
await ctx.send(f'current radar image for {arg1} as of {curtime} on {curdate}')
|
||||
else:
|
||||
print("Cog_Radar: error has occurred")
|
||||
# print(f'{self.filepath}')
|
||||
# print("bullshit!") # yes
|
||||
# await ctx.send(file=discord.File(f'{self.radarupload()}'))
|
||||
|
||||
# let's fix this bitch
|
||||
async def newdownloadImage(self, radarname, fileout):
|
||||
tmpradarname = radarname
|
||||
if radarname and len(radarname) == 3:
|
||||
tmpradarname = (f'K{radarname}')
|
||||
|
||||
downloadradar = tmpradarname.upper()
|
||||
|
||||
# print ("shit!") # testing lmfao
|
||||
# wget.download(f'https://radar.weather.gov/ridge/lite/{downloadradar}_loop.gif?{random.random()}',f'data/radar/{fileout}') # RIP /lite directory because NWS suddenly changed that? 11.21.22
|
||||
# wget.download(f'https://radar.weather.gov/ridge/standard/{downloadradar}_loop.gif?{random.random()}',f'data/radar/{fileout}') # new /standard directory, not sure what changed
|
||||
|
||||
# copied the below method from TranstarArchive, it may be faster who fucking knows
|
||||
rq = requests.get(f'https://radar.weather.gov/ridge/standard/{downloadradar}_loop.gif?{random.random()}')
|
||||
open(f'data/radar/{fileout}', 'wb').write(rq.content)
|
||||
# fin
|
||||
|
||||
|
||||
# # downloads image based off of arguments from command
|
||||
# async def downloadImage(self, radarname):
|
||||
# loopname = radarname.upper()
|
||||
# fnameformat = (f'XenoRadar_{radarname}_{curdate}_{curtime}.gif')
|
||||
# imgname = fnameformat
|
||||
|
||||
# if 'conus' in radarname:
|
||||
# # urllib.request.urlretrieve(f'https://radar.weather.gov/ridge/lite/CONUS-LARGE_loop.gif?{random()}',f'XenoRadar_{radarname}_{curdate}_{curtime}')
|
||||
# loopname = ('CONUS-LARGE')
|
||||
# elif 'addkarg1' in radarname:
|
||||
# loopname = (f'K{radarname}')
|
||||
|
||||
# print ("shit!") # testing lmfao
|
||||
# # the commented following is deprecated
|
||||
# # urllib.request.urlretrieve(f'https://radar.weather.gov/ridge/lite/{loopname}_loop.gif?{random()}',f'data/radar/{imgname}')
|
||||
# wget.download(f'https://radar.weather.gov/ridge/lite/{loopname}_loop.gif?{random.random()}',f'data/radar/{imgname}')
|
||||
# # wget.download(f'https://radar.weather.gov/ridge/lite/{loopname}_loop.gif?{randomnum}',f'data/radar/{imgname}')
|
||||
|
||||
# # check if the file was downloaded
|
||||
# if os.path.isfile(f'data/radar/{imgname}'):
|
||||
# print(f'Cog_Radar: file {imgname} was downloaded!!')
|
||||
# filepath = (f'data/radar/{imgname}')
|
||||
# return filepath
|
||||
# else:
|
||||
# print("Cog_Radar: error has occurred")
|
||||
|
||||
# # send to the bitchy uploader (caution:sexy)
|
||||
# # self.radarupload(f'{filepath}')
|
||||
|
||||
# async def radarupload(self,uploadimage):
|
||||
# # uploadfile = self.filepath
|
||||
# print("fuck!") # more testing lmao
|
||||
# print(f'{self.filepath} this thingy should be ok')
|
||||
# # await ctx.send(file=discord.File(f'{self.filepath}'))
|
||||
# return uploadimage
|
||||
|
||||
|
||||
# checks args for specific terms
|
||||
# def argCheck(arg1, arg2):
|
||||
# if "NATL" in arg1:
|
||||
# downloadImage('conus')
|
||||
#
|
||||
# if arg1.len() == '3':
|
||||
# addkarg1 = ('K'+arg1)
|
||||
# downloadImage(addkarg1)
|
||||
# else:
|
||||
# downloadImage(arg1)
|
||||
|
||||
|
||||
def initFolder():
|
||||
if not os.path.exists("data/radar"):
|
||||
print("Cog_Radar: radar image folder wasn't found, creating it")
|
||||
os.makedirs("data/radar")
|
||||
else:
|
||||
print("Cog_Radar: radar image folder exists, we jud")
|
||||
|
||||
async def setup(bot):
|
||||
initFolder()
|
||||
await bot.add_cog(Radar(bot))
|
||||
print (f'Cog_Radar: Was initialized {curdate}@{curtime}')
|
||||
Reference in New Issue
Block a user