From 80d28109c4f6074e87997ab3e82782dfd7af4d9b Mon Sep 17 00:00:00 2001
From: buffbears <54551697+buffbears@users.noreply.github.com>
Date: Thu, 1 Apr 2021 22:05:13 -0400
Subject: [PATCH] Delete loops.js
---
webroot/loops.js | 522 -----------------------------------------------
1 file changed, 522 deletions(-)
delete mode 100644 webroot/loops.js
diff --git a/webroot/loops.js b/webroot/loops.js
deleted file mode 100644
index 79bd5f9..0000000
--- a/webroot/loops.js
+++ /dev/null
@@ -1,522 +0,0 @@
-
-function Loops(bindDataManager) {
- var //dataManager,
- obsData,
- foreDataDaily,
- foreDataHourly;
-
- obsData = bindDataManager.observations;
- foreDataDaily = bindDataManager.forecasts('daily');
- foreDataHourly = bindDataManager.forecasts('hourly');
-
-
- // init the display loops
- displayAtmospheric(0);
- displayForecast(0);
-
- function displayAtmospheric(idx) {
-
- var displays = {
-
- conditions() {
- return (getCC(obsData(0).current.weather[0].id + obsData(0).current.weather[0].icon, obsData(0).current.wind_speed)).toLowerCase();
- },
-
- wind(){ return 'wind ' + degToCompass(obsData(0).current.wind_deg) + ' ' + Math.round(parseInt(obsData(0).current.wind_speed)); },
-
- gusts(){
- if ( obsData(1)!=undefined ) {
- return obsData(1).windGust.value!=null ? 'gusts ' + mps2mph( obsData(1).windGust.value ) : '';
- }
- },
-
- humidity(){ return 'humidity ' + obsData(0).current.humidity + '%'; },
-
- dewpoint(){ return 'dew point ' + dewPoint(obsData(0).current.temp, obsData(0).current.humidity ) + '°'; },
-
- heatindex_windchill(){
- var windchill = 35.74 + (0.6215 * parseInt(obsData(0).current.temp)) + (0.4275 * parseInt(obsData(0).current.temp) - 35.75) * parseInt(obsData(0).current.wind_speed) ^ 0.16;
- if (parseInt(obsData(0).current.temp)<80 && windchill < parseInt(obsData(0).current.temp)) {
-
- return 'wind chill ' + windchill + '°';
- } else if (parseInt(obsData(0).current.temp)>=80 && parseInt(obsData(0).current.humidity)>=40 ){
- return 'heat index ' + heatIndex(obsData(0).current.temp, obsData(0).current.humidity) + '°';
- }
- else return '';
- },
-
- pressure(){ return 'pressure ' + (obsData(0).current.pressure*0.0295301).toFixed(2) },
-//+ ['S','R','F'][obsData(0).current.rising];
- visibility() { return 'visibility ' + (parseInt(obsData(0).current.visibility) / 1000) + ' mile' + (obsData(0).current.visibility != 1 ? 's' : ''); },
-
- uvindex() { return 'UV index ' + obsData(0).current.uvi; },
-
- },
- keys = Object.keys(displays),
- text = displays[ keys[idx] ]();
-
- // increment the pointer
- idx = (++idx===keys.length ? 0 : idx);
-
- if (text) {
- $('#current-info').html(text);
- setTimeout(function(){ displayAtmospheric(idx) }, 6000); // 6 second increment loop
- } else {
- // nothing to display - skip to the next one
- setTimeout(function(){ displayAtmospheric(idx) }, 0);
- }
-
- } // end function
-
-
- function displayForecast(idx) {
-
- var displays = {
-
- text1() {
- $('#forecast-title').text( possessiveForecast(foreDataDaily[0].name) );
- resizeText(foreDataDaily[0].detailedForecast);
- },
- text2() {
- $('#forecast-title').text( possessiveForecast(foreDataDaily[1].name) );
- resizeText(foreDataDaily[1].detailedForecast);
- },
-
- fiveday() {
- var newtile, weekend, icons,
- startidx = (foreDataDaily[0].name==='Tonight' ? 1 : 2),
- days = ['SUN','MON','TUE','WED','THU','FRI','SAT'];
-
- $('#forecast-title').text("5 DAY FORECAST");
- $('#forecast-tiles').empty();
-
- for (var i=startidx; i<=10; i+=2 ) {
-
- weekend = ( dateFns.isWeekend(foreDataDaily[i].startTime) ? ' weekend' : '');
- newtile = $("
");
-
- $("") .appendTo(newtile) .text(days[ dateFns.getDay(foreDataDaily[i].startTime) ]);
-
- icons = mapNWSicons(foreDataDaily[i].icon);
- for (x=icons.length-1; x>=0; x--){
- $("
") .appendTo(newtile) .attr('src', icons[x]);
- }
-
- $("") .appendTo(newtile) .text(foreDataDaily[i].temperature);
- $("") .appendTo(newtile) .text(foreDataDaily[i+1].temperature);
-
- $('#forecast-tiles').append(newtile);
- }
-
- $('#forecast-tiles').css('display','flex');
- },
-
- hourly() {
- var newtile, icons, sizer, highbar,
- indexes = calcHourlyReport(foreDataHourly),
- data, label, temps=[];
-
- $('#forecast-title').text( buildHourlyHeaderTitle(foreDataHourly[indexes[0]].startTime) );
- $('#forecast-tiles').empty();
-
- for (var i of indexes) {
- data = foreDataHourly[i];
-
- newtile = $("");
- sizer = $("").appendTo(newtile);
-
- icons = mapNWSicons(data.icon);
- for (var x=icons.length-1; x>=0; x--){
- $("
") .appendTo(sizer) .attr('src', icons[x]);
- }
-
- $("") .appendTo(newtile) .text(buildHourlyTimeTitle(data.startTime));
-
- highbar = $("") .appendTo(sizer);
-
- $("") .appendTo(highbar) .text(data.temperature);
- temps.push(data.temperature);
-
- $("") .appendTo(highbar);
-
- $('#forecast-tiles').append(newtile);
- }
-
- $('#forecast-tiles').css('display','flex');
-
- // animate grow and show temp
- var min = Math.min(...temps), // 54
- max = Math.max(...temps), // 73
- range = (max-min),
- prange = (95-78), // percent range for bar height
- temp, value;
- $('.forecast-tile').each(function(){
- temp = $(this).find('.high').first().text();
- value = ((temp-min)/range) * prange + 78; // find percentage of range and translate to percent and add that to the starting css % height number
- $(this).find('.hourly-high').animate({height:value+"%"}, 1500,function(){
- $(this).find('.high').fadeTo('slow', 1);
- });
- })
- },
-
- dummy(){}
-
- },
- keys = Object.keys(displays);
-
- displays[ keys[idx] ]();
-
- // increment the pointer
- idx = (++idx===keys.length ? 0 : idx);
-
- setTimeout(function(){ displayForecast(idx) }, 15000); // 15 second increment loop
-
- }
-
- function resizeText(text){
- var s = 38,
- $test = $('') .appendTo('#forecast-text') .css('font-size', s + 'px') .html(text);
- $test.width($('#forecast-text').width() );
- //setTimeout(function() {
- while ($test.outerHeight(true) >= ($('#forecast-text').height()) ) {
- s -= 1;
- $test.css('font-size', s + 'px');
- }
- $('#forecast-text div') .text(text) .css('font-size', s + 'px');
- $test.remove();
- $('#forecast-tiles').hide();
- //},100); // delay is a workaround for Interstate font not updating display
- }
-
- function possessiveForecast(text){
- return text + (text.toUpperCase() != 'OVERNIGHT' ? "'S" : '') + ' FORECAST';
- }
-
-
-} // end Loops class
-
-
-function buildHourlyHeaderTitle(time) {
- var today = new Date(),
- tomorrow = dateFns.addDays(today, 1),
- sforecast = "'s Forecast";
-
- // title based on the first hour reported
- switch (dateFns.getHours(time)) {
-
- case 6: // 6 - Nextday's Forecast / Today's Forecast
- // if 6am today
- if (dateFns.isToday(time)) {
- return dateFns.format(today, 'dddd') + sforecast;
- }
- case 0: // 0 - Nextday's Forecast
- return dateFns.format(tomorrow, 'dddd') + sforecast;
-
- case 12:
- return 'This Afternoon';
-
- case 15:
- return "Today's Forecast";
-
- case 17:
- return "Tonight's Forecast";
-
- case 20:
- return dateFns.format(today, 'ddd') + ' Night/' + dateFns.format(tomorrow, 'ddd');
-
- }
-
-}
-
-
-function buildHourlyTimeTitle(time){
- var hour=dateFns.getHours(time);
-
- if (hour===0) {
- return 'midnight';
- } else if (hour===12){
- return 'noon';
- }
-
- return dateFns.format(time,'h a');
-}
-
-
-// finds the intervals to report on the hourly forecast
-function calcHourlyReport(data) {
- var ret = [],
- targets = [0, 6, 12, 15, 17, 20], // hours that we report
- current = dateFns.getHours(new Date()),
- now = new Date(),
- //firsthour = targets[ getNextHighestIndex(targets, current) ],
- start,
- hour, i=0;
-
- switch (true) {
- case (current < 3):
- start = 6;
- case (current < 9):
- start = 12; break;
- case (current < 12):
- start = 15; break;
- case (current < 15):
- start = 17; break;
- case (current < 17):
- start = 20; break;
- case (current < 20):
- start = 0; break;
- default:
- start = 6;
- }
-
- while(ret.length<4){
-
- // hour must be equal or greater than current
- hour = dateFns.getHours( data[i].startTime );
- if ( dateFns.isAfter(data[i].startTime, now) && (hour==start || ret.length>0) ) {
-
- if ( targets.indexOf(hour)>=0 ) { // it is in our target list so record its index
- ret.push(i);
- }
-
- }
- i++;
- }
- return ret;
-}
-
-function mapNWSicons(url){
- var map = {
- skc:[26,25],
- few:[28,27],
- sct:[24,23],
- bkn:[22,21],
- ovc:[20,20],
- wind_skc:[26,25,47],
- wind_few:[28,27,47],
- wind_sct:[24,23,47],
- wind_bkn:[22,21,47],
- wind_ovc:[20,20,47],
- snow:[10,10],
- rain_snow:[2,2],
- rain_sleet:[38,38],
- snow_sleet:[3,3],
- fzra:[6,6],
- rain_fzra:[6,6],
- snow_fzra:[44,44],
- sleet:[13,13],
- rain:[8,8],
- rain_showers:[7,7],
- rain_showers_hi:[5,5],
- tsra:[1,1],
- tsra_sct:[29,37],
- tsra_hi:[29,37],
- tornado:[46,46],
- hurr_warn:[45,45],
- hurr_watch:[45,45],
- ts_warn:[45,45],
- ts_watch:[45,45],
- ts_hurr_warn:[45,45],
- dust:[14,14],
- smoke:[16,16],
- haze:[16,16],
- hot:[16,16],
- cold:[42,42],
- blizzard:[11,11],
- fog:[15,15]
- },
- matches = url.match(/icons\/land\/(day|night)\/([a-z_]*)\/?([a-z_]*)/), // day or night followed by one or more condition codes
- idx = {day:0, night:1}[matches[1]],
- ret=[], match;
-
- for (i=2; i2) {
- ret.push( match[2] );
- }
- }
- }
-
- // place word icons last so they render on top
- if (ret.length>1 && [15,47,41,42, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 20, 31, 33, 34, 38, 39, 40, 44].indexOf( ret[1] )>-1) {
- ret.swap(0,1);
- }
-
- return ret.map(function(num){
- return 'images/icons/' + ('0'+num).slice(-2) + '.png';
- });
-
-}
-
-/*
-
-wind E 14
-gusts 17 mph
-humidity 58%
-dew point 72(degree symbol)
-heat index 95(degree symbol) / wind chill
-pressure 30.02 S
-visibility 10 miles
-uv index High
-partly cloudy
-
-*/
-
-// sample data
-/*
-
-https://query.yahooapis.com/v1/public/yql?format=json&q=select * from weather.forecast where woeid=2402292
-
-"units":{
- "distance":"mi",
- "pressure":"in",
- "speed":"mph",
- "temperature":"F"
-},
-"title":"Yahoo! Weather - Fargo, ND, US",
-"link":"http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2402292/",
-"description":"Yahoo! Weather for Fargo, ND, US",
-"language":"en-us",
-"lastBuildDate":"Thu, 12 Oct 2017 10:10 PM CDT",
-"ttl":"60",
-"location":{
- "city":"Fargo",
- "country":"United States",
- "region":" ND"
-},
-"wind":{
- "chill":"52",
- "direction":"295",
- "speed":"18"
-},
-"atmosphere":{
- "humidity":"54",
- "pressure":"978.0",
- "rising":"0",
- "visibility":"16.1"
-},
-"astronomy":{
- "sunrise":"7:41 am",
- "sunset":"6:46 pm"
-},
-"image":{
- "title":"Yahoo! Weather",
- "width":"142",
- "height":"18",
- "link":"http://weather.yahoo.com",
- "url":"http://l.yimg.com/a/i/brand/purplelogo//uh/us/news-wea.gif"
-},
-"item":{
- "title":"Conditions for Fargo, ND, US at 09:00 PM CDT",
- "lat":"46.865089",
- "long":"-96.829224",
- "link":"http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2402292/",
- "pubDate":"Thu, 12 Oct 2017 09:00 PM CDT",
- "condition":{
- "code":"27",
- "date":"Thu, 12 Oct 2017 09:00 PM CDT",
- "temp":"55",
- "text":"Mostly Cloudy"
- },
- "forecast":[
- {
- "code":"30",
- "date":"12 Oct 2017",
- "day":"Thu",
- "high":"70",
- "low":"48",
- "text":"Partly Cloudy"
- },
- {
- "code":"32",
- "date":"13 Oct 2017",
- "day":"Fri",
- "high":"58",
- "low":"37",
- "text":"Sunny"
- },
- {
- "code":"39",
- "date":"14 Oct 2017",
- "day":"Sat",
- "high":"49",
- "low":"38",
- "text":"Scattered Showers"
- },
- {
- "code":"34",
- "date":"15 Oct 2017",
- "day":"Sun",
- "high":"56",
- "low":"31",
- "text":"Mostly Sunny"
- },
- {
- "code":"34",
- "date":"16 Oct 2017",
- "day":"Mon",
- "high":"65",
- "low":"35",
- "text":"Mostly Sunny"
- },
- {
- "code":"34",
- "date":"17 Oct 2017",
- "day":"Tue",
- "high":"65",
- "low":"39",
- "text":"Mostly Sunny"
- },
- {
- "code":"30",
- "date":"18 Oct 2017",
- "day":"Wed",
- "high":"64",
- "low":"48",
- "text":"Partly Cloudy"
- },
- {
- "code":"30",
- "date":"19 Oct 2017",
- "day":"Thu",
- "high":"65",
- "low":"44",
- "text":"Partly Cloudy"
- },
- {
- "code":"30",
- "date":"20 Oct 2017",
- "day":"Fri",
- "high":"66",
- "low":"49",
- "text":"Partly Cloudy"
- },
- {
- "code":"28",
- "date":"21 Oct 2017",
- "day":"Sat",
- "high":"61",
- "low":"49",
- "text":"Mostly Cloudy"
- }
- ],
- "description":"\n
\nCurrent Conditions:\n
Mostly Cloudy\n
\n
\nForecast:\n
Thu - Partly Cloudy. High: 70Low: 48\n
Fri - Sunny. High: 58Low: 37\n
Sat - Scattered Showers. High: 49Low: 38\n
Sun - Mostly Sunny. High: 56Low: 31\n
Mon - Mostly Sunny. High: 65Low: 35\n
\n
\nFull Forecast at Yahoo! Weather\n
\n
\n
\n]]>",
- "guid":{
- "isPermaLink":"false"
- }
-
-}
-
-
-Current Conditions:\n
Mostly Cloudy\n
\n
\n
-Forecast:\n
Thu - Partly Cloudy. High: 70Low: 48\n
Fri - Sunny. High: 58Low: 37\n
Sat - Scattered Showers. High: 49Low: 38\n
Sun - Mostly Sunny. High: 56Low: 31\n
-Mon - Mostly Sunny. High: 65Low: 35\n
\n
\nFull Forecast at Yahoo! Weather\n
\n
\n
\n]]>",
- "guid":{
-
-*/