#!/usr/bin/env python3
-import datetime
import json
import logging
import requests
from typing import Dict
-import datetime_utils
import file_writer
import renderer
ret = f'''
<TABLE>
<TR>
- <TD><B>temperature:</B></TD>
- <TD>{conditions['temperature']}°{conditions['temperatureUnit'][0]}</TD>
+ <TD WIDTH="150"><FONT SIZE=+2><B>Temp:</B></FONT></TD>
+ <TD><FONT SIZE=+2>{conditions['temperature']}°{conditions['temperatureUnit'][0]}</FONT></TD>
</TR>
<TR>
- <TD><B>weather:</B></TD>
- <TD>{conditions['weather']}</TD>
+ <TD><FONT SIZE=+2><B>Weather:</B></FONT></TD>
+ <TD><FONT SIZE=+2>{conditions['weather']}</FONT></TD>
</TR>
<TR>
- <TD><B>road:</B></TD>
- <TD>{conditions['roadCondition']}</TD>
+ <TD><FONT SIZE=+2><B>Roadway:</B></FONT></TD>
+ <TD><FONT SIZE=+2>{conditions['roadCondition']}</FONT></TD>
</TR>'''
- if 'restrictionOne' in conditions or 'restrictionTwo' in conditions:
+ if 'restrictionOne' in conditions and 'restrictionTwo' in conditions:
ret += '''
<TR>
- <TD><B>restrictions:</B></TD>
- <TD>'''
- if 'restrictionOne' in conditions:
+ <TD><FONT SIZE=+2><B>Restrictions:</B></FONT></TD>
+ <TD><FONT SIZE=+2>'''
+ count = 0
+ msg = conditions['restrictionOne'].get('publicPage', 'no restrictions')
+ if msg.lower() != 'no restrictions':
+ count += 1
+ msg = conditions['restrictionTwo'].get('publicPage', 'no restrictions')
+ if msg.lower() != 'no restrictions':
+ count += 1
+ if count == 2:
ret += f'''
- {conditions['restrictionOne']['travelDirectionName']}:
- {conditions['restrictionOne']['publicPage']}<BR>'''
- if 'restrictionTwo' in conditions:
- ret += f'''
- {conditions['restrictionTwo']['travelDirectionName']}:
- {conditions['restrictionTwo']['publicPage']}'''
- ret += '</TR></TABLE>'
+ <U>{conditions['restrictionOne']['travelDirectionName']}:</U>
+ {conditions['restrictionOne']['publicPage']} <BR>
+ <U>{conditions['restrictionTwo']['travelDirectionName']}:</U>
+ {conditions['restrictionTwo']['publicPage']}'''
+ elif count == 1:
+ msg = conditions['restrictionOne'].get('publicPage', 'no restrictions')
+ if msg.lower() != 'no restrictions':
+ ret += f'''
+ <U>{conditions['restrictionOne']['travelDirectionName']}:</U>
+ {conditions['restrictionOne']['publicPage']}<BR>'''
+ else:
+ ret += f'''
+ <U>{conditions['restrictionTwo']['travelDirectionName']}:</U>
+ {conditions['restrictionTwo']['publicPage']}<BR>'''
+ else:
+ ret += '''None.<BR>'''
+ ret += '</FONT></TD></TR></TABLE>'
return ret
def render_forecast(forecasts: Dict[str, str]) -> str:
color = ' BGCOLOR="#dfefff"'
ret += f'''
<TR>
- <TD{color}><B>{f['periodText']}</B></TD>
+ <TD WIDTH="150" valign="top" {color}><B>{f['periodText']}</B></TD>
<TD{color}>{f['forecastText']}</TD>
</TR>'''
ret += '</TABLE>'
if camera['cameraId'] == 8063:
return f'''
<CENTER>
- <IMG SRC={camera['cameraUrl']} WIDTH={camera['width']}>
+ <A HREF='https://wsdot.com/travel/real-time/mountainpasses/Stevens'>
+ <IMG SRC={camera['cameraUrl']} WIDTH={camera['width'] * 1.75}>
+ </A>
<BR>
- <B>{camera['cameraLabel']} ({camera['direction']})</B>
+ <I>{camera['cameraLabel']} ({camera['direction']})</I>
</CENTER>'''
return ''
conditions = contents['condition']
cameras = contents['cameras']
forecasts = contents['stationForecasts'][0]
- now = datetime_utils.now_pacific()
- tss = conditions['displayDate']
- tss = tss.replace('Z', '+00:00')
- ts = datetime.datetime.strptime(tss, '%Y-%m-%dT%H:%M:%S.%f%z')
- tss = datetime_utils.describe_timedelta_briefly(now - ts)
with file_writer.file_writer('stevens-conditions_5_3000.html') as f:
f.write(f'''
-<H2>Stevens Pass Conditions ~{tss} ago:</H2>
+<H1>Stevens Pass Conditions:</H1>
<HR>
<TABLE WIDTH=90%>
<TR>
return True
return False
-test = stevens_renderer({"Test", 123})
-test.periodic_render("Test")
+# Test:
+#test = stevens_renderer({"Test", 123})
+#test.periodic_render("Test")