From 35fa9e13522d6807e8f32983e60ded10fa3cb49f Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Sat, 26 Jan 2013 20:02:51 +0000 Subject: [PATCH 01/19] We should have a .gitignore, really. This is probably incomplete, but better than nothing. --- .gitignore | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..e1850648d --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +favicon.* +.htconfig.php +\#* +*.log +*.out +*.version* +favicon.* +*~ + +#ignore reports, should be generted with every build +report/ + +#ignore config files from eclipse, we don't want IDE files in our repository +.project +.buildpath +.externalToolBuilders +.settings +#ignore OSX .DS_Store files +.DS_Store + +/nbproject/private/ + +#ignore smarty cache +/view/smarty3/compiled/ \ No newline at end of file From b7eab50b1f5bff5aaa8a2c500f4101475ee6635f Mon Sep 17 00:00:00 2001 From: Tony Baldwin Date: Thu, 31 Jan 2013 23:59:39 -0500 Subject: [PATCH 02/19] pulled from upstream and stuff --- mahjongg.tar | Bin 0 -> 76288 bytes mahjongg/mahjongg.php | 42 ++++++++++++++++++++++++++++++++++++++++++ mahjongg/mahjongg.swf | Bin 0 -> 72018 bytes 3 files changed, 42 insertions(+) create mode 100644 mahjongg.tar create mode 100755 mahjongg/mahjongg.php create mode 100755 mahjongg/mahjongg.swf diff --git a/mahjongg.tar b/mahjongg.tar new file mode 100644 index 0000000000000000000000000000000000000000..56d70515ed88548245e9cabf0e4d21de8ba81bb5 GIT binary patch literal 76288 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 E000uE-2eap literal 0 HcmV?d00001 diff --git a/mahjongg/mahjongg.php b/mahjongg/mahjongg.php new file mode 100755 index 000000000..d2433ccb5 --- /dev/null +++ b/mahjongg/mahjongg.php @@ -0,0 +1,42 @@ +Beer Monster'; +} + + +function mahjongg_module() {} + +function mahjongg_content(&$a) { + +$baseurl = $a->get_baseurl() . '/addon/mahjongg'; + +$o .= <<< EOT +

+

+ +

+Simply locate the matching tiles and find a way to clear them from the board as quickly as possible. +A timer at the top of the screen keeps track of how you are doing.
+

+EOT; + +return $o; +} \ No newline at end of file diff --git a/mahjongg/mahjongg.swf b/mahjongg/mahjongg.swf new file mode 100755 index 0000000000000000000000000000000000000000..79f8c9e3a515c14ab543b4598e74d301dac71ec0 GIT binary patch literal 72018 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

y@(xDbm+5&T_ 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 Date: Fri, 1 Feb 2013 00:01:35 -0500 Subject: [PATCH 03/19] s/BeerMonster/Mahjongg/ (weird) --- mahjongg/mahjongg.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mahjongg/mahjongg.php b/mahjongg/mahjongg.php index d2433ccb5..977c693d7 100755 --- a/mahjongg/mahjongg.php +++ b/mahjongg/mahjongg.php @@ -18,7 +18,7 @@ function mahjongg_uninstall() { } function mahjongg_app_menu($a,&$b) { - $b['app_menu'][] = '

'; + $b['app_menu'][] = ''; } @@ -39,4 +39,4 @@ A timer at the top of the screen keeps track of how you are doing.
EOT; return $o; -} \ No newline at end of file +} From 26326d0c2fecbee29165cf700fb71154c9055147 Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Sun, 3 Feb 2013 15:16:35 +0000 Subject: [PATCH 04/19] Forumdirectory - don't call hooks. It was intended as a feature, but people keep reporting it as a bug. --- forumdirectory.tgz | Bin 3801 -> 3773 bytes forumdirectory/forumdirectory.php | 4 +--- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/forumdirectory.tgz b/forumdirectory.tgz index 0a84585dd41af97f49d12658c1f3576c295b5c4b..9f163deabc41984d5d0b78bee59ca75c98249fcc 100644 GIT binary patch literal 3773 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 PKh*vM6BE-x08jt`RX1ka diff --git a/forumdirectory/forumdirectory.php b/forumdirectory/forumdirectory.php index 9837b9c18..f4292c619 100644 --- a/forumdirectory/forumdirectory.php +++ b/forumdirectory/forumdirectory.php @@ -3,7 +3,7 @@ * Name: Forum Directory * Description: Add a directory of forums hosted on your server, with verbose descriptions. * Version: 1.0 -* Author: Thomas Willingham +* Author: Thomas Willingham */ function forumdirectory_install() { @@ -186,8 +186,6 @@ function forumdirectory_content(&$a) { $arr = array('contact' => $rr, 'entry' => $entry); - call_hooks('directory_item', $arr); - unset($profile); unset($location); From 5cca6daad4f92569576c6cdaff24ed1f22de35f2 Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Wed, 6 Feb 2013 03:14:51 +0000 Subject: [PATCH 05/19] Fix viewsrc to use colorbox. --- viewsrc/viewsrc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/viewsrc/viewsrc.php b/viewsrc/viewsrc.php index f165e9c53..9e3658c16 100644 --- a/viewsrc/viewsrc.php +++ b/viewsrc/viewsrc.php @@ -25,7 +25,7 @@ function viewsrc_page_end(&$a, &$o){ $a->page['htmlhead'] .= <<< EOS EOS; From 04ce026be2ec09aba16153379bc7f786986833e5 Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 5 Feb 2013 20:20:44 -0800 Subject: [PATCH 06/19] pkg update --- fbpost.tgz | Bin 11410 -> 11467 bytes geonames.tgz | Bin 2154 -> 2157 bytes openstreetmap.tgz | Bin 2124 -> 2984 bytes statusnet.tgz | Bin 19692 -> 19722 bytes viewsrc.tgz | Bin 609 -> 608 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/fbpost.tgz b/fbpost.tgz index 790a573214bb411a4a4ba3f1a00ca8364d199fb9..b118c6d78ceec5bead0354eeed04d9f960ea81fb 100644 GIT binary patch delta 11442 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 diff --git a/openstreetmap.tgz b/openstreetmap.tgz index 967b56017b7e109cf26897381ebb1083ecf3b628..562115c7c85443f861ab48731019a58f5f3ab9e4 100644 GIT binary patch literal 2984 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 C@h<5A diff --git a/statusnet.tgz b/statusnet.tgz index ea19ef18e6b4d640896c428ea01bf121671f403d..da873b1755c8538cc894d8fc54550af7618a568e 100755 GIT binary patch delta 17503 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

WB+b!PucB@Yc36b(Q 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 diff --git a/viewsrc.tgz b/viewsrc.tgz index 2ace240a6fef124011513f485166f93df404300f..b75b6009bd69b552bf819ef679866db84df2f04a 100644 GIT binary patch delta 599 zcmV-d0;v7r1mFaJABzY85!w+^00ZrmO>f#j5QcrlzhZ(AYoionYC}W}RiyTq_7Eu- zgsjCZcoo}gt=DO)CjY&=4$yoMsZx{l(0L?4p52*w=fhlc_PvscXT2c<&3GJI!!Q^R zhk-Q+N5fIzH})--KlBH|M}1*Dwg&z%2*(zLZz*a=T`4Mm0j!)R8!oST@xr}w6OR0o zlau$*^p0F_=fC~!mudOxIn01Zqu{0a``Y+q{=p~=EEv4Hk^}tb^N&91iQBgA^?Ek+ z;49791h&gy44+w*NM0%~iV2*pR?xoGhj1ZknXoowyto1-fGd_mA_~QBlySRcvT9uX z{=ht+)hZQ#asuc4ioyA=)exmhl@rg~H@}~V+$*J6^Ne}9zC1JD`s3O5x-Jr zg`QoOIWGLPTas;frI?IUA+8)^1jS`4l!$Xy)Z`clU9Cjn9awmCxR3e7&pmw>x}+Nx zvtsqfG4~ES*qwc#kh*wON?p8RG0%ekRXL`fXXWgFE;!u|J%(;axVoqg{V+2JbCRk& zOBr2}1@xy7MG<`Yc44=o`$e1Ctyag`#dM6TF%UXWC0qBV?Y+GAg1CBLG9j1Z#xb?E z?#y@O?IP*8rw0{2X-p%u+gUc<=WE9~f=nbdi|dL>$93WM7MzC`IGRFdId29-7IRW_ zU5)EOY6X(1S{7P`Ic}Q1fGJQZ=?|SsZkTib;DB<-gI9^TFr9&E(uS#cNh?-MvkrYA l`+`aTQPL*oG5k(+KaYR?kCQ(F7YxXI^9!(Vq{{#(002(dC>j6& delta 603 zcmV-h0;K)m1mOgKABzY8-Jy0*00ZrmO>f#j5QcrlzhZ(=yhf>wiESccs3Nt;w1-H! zAY?6O!B%XqwO*%*n*8_fIzaP5q)JWFL+6nId1hzkotZV)8T(O-#5LZLfnqcYjA7u9 zhC|;N1mQ6Bz1F_L@VwD+5O|?~to+{44?+Wi_Y}3IsU;PE07gNRbtbN}@|APdItaa! zlar6o^nqM&_P_acs-w%Uh0|sxdWDo!O{-e)oiMkE( zoPmBmYh=oQ#Td@BD+cG=QA3nUS&dzHH+(1IghM%YtB-4%tENn}j;*{n zE7k7uoY?Tw>La(+cDEhw&1E_qzAvayc9qRS;O-8~mxJ9jys#o4DXQde}% zVpcByIOi@vCA&BGG}4q$T4~C6Z01GsziLPK^P-)9?E!MwqepPqJ)||0@q*T@5&Akf pVC@>VoF_%wnn&=v(8E6d^*;)eKmrsF2!bFV%`aa21(5(K000HEE?EEo From 75660432d6dd16db8a8a785c437175c503cae08d Mon Sep 17 00:00:00 2001 From: friendica Date: Tue, 5 Feb 2013 21:02:33 -0800 Subject: [PATCH 07/19] make viewsrc actually use colorbox --- viewsrc.tgz | Bin 608 -> 634 bytes viewsrc/viewsrc.php | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/viewsrc.tgz b/viewsrc.tgz index b75b6009bd69b552bf819ef679866db84df2f04a..16d587a7ddbeb485ea6c1080d049ef031ed4495a 100644 GIT binary patch literal 634 zcmV-=0)_n_iwFSW;}KB+1MQSsZ`v>v$MZ@)#VJCygSv!3NGlqcDs7M59xC+(A!LFf zQ9~R#PSyEb&;3)}D! zY?r|teBxy+(?X>pAHmsj3GGXL2^XT0F>gbb=2xHuq>67K7P;a#%D7!}S=KJT+cWQH zl}dyh!FhVc;k;=zM2S+x$n$p1cVn^f3Mp1;#=VU;o)~Za@oall<+0Jx$eX9Ro?Vtv z2Y%Qs$=7MAxSS_KTv1{K&5J}RG2igKB1b^jaw&3e&%&F_UCbwb&grwz1zYnu&zHX) zbLXIg-PwBzsq#mqRQVeg^DOvZm1F98R!(C;4?FA#4m-lpMRnMRiMg1PL~XK!vn82< zJBBEV;PclDyA|Cp+Qe?PI<$#NjjK5zY??^E>Wf-T+ZU;fi=|T+Fm7T>F90B zgj|Rl+8i*YBqb&iaZEQ_t-JbBe@9*;K?^$FTiTP3))gLh7IofqMd<-#B4*jVD!HVN z1Gl$8AD+O$7&?n-Jy9~7k}B10a2%~ba#hJ(t1#E~v}P~{CMEl>Q^_@__b(I_B@cds z#DVbyOn28@%@?fXl{9%SrdK@bE%5ClOG1VIo4K@bE% U5ClOG1VR3gpV18z7XT;#06FwB_W%F@ literal 608 zcmV-m0-yaKiwFP_+7VFz1MQSeZ`wc*hJD4qVuBEBqZDImLqrT!r1qHh5Gfagti>#N z729jA*J-LI|Gm2o(0mZ7Qj_%1c_cud-I;mk!(4Ory^@J%y&(h5cpO^8Fc=Sqfi(z6 z!%^Tj_AQn_^asI5ePKMd2L3Pz#}b(d{F9TD_t5l? zTyN*U{q2`&`RX~$fJdX?rTP2X_+SpPJfGDn z6>3bbGVQB#Lqo_7P_Px7PDgY$1(Q~ zI@q0kppd$FR7zdEVKL8w|5Z7ro@eFkE;!u|J%(;axVoqg{V+2JbCRk&OBr2}1@xy7 zMG<`Yc44=o`$e1Ctyag`#dM6TF%UXWC0qBV?Y+GAg1CBLG9j1Z#xb?E?#y@O?IP*8 zrw0{2X-p%u+gUc<=WE9~f=nbdi|dL>$93WM7MzC`IGRFdId29-7IRW_U5)E%1(K;+ z7FvZlZkoP;DNrft51mSGm~;Q&fO5!#SBbbVoq=i6hN*Z-D^^Rh4t*f|f=T~T(kACI u{7!T~kAMA-f*=TjAP9mW2!bF8f*=TjAP9mW2!bHUd-DshZ=}lrC;$Km3@Bv) diff --git a/viewsrc/viewsrc.php b/viewsrc/viewsrc.php index 9e3658c16..9366930f0 100644 --- a/viewsrc/viewsrc.php +++ b/viewsrc/viewsrc.php @@ -25,7 +25,9 @@ function viewsrc_page_end(&$a, &$o){ $a->page['htmlhead'] .= <<< EOS EOS; From ed9adf976f6b7a7032ab6787a415a608a3b46475 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 03:31:13 -0500 Subject: [PATCH 08/19] adding current temp/weather plugin --- curtemp.tgz | Bin 0 -> 30720 bytes curtemp/curtemp.css | 10 ++ curtemp/curtemp.php | 101 +++++++++++++++++++ curtemp/getweather.php | 222 +++++++++++++++++++++++++++++++++++++++++ etherpadlite.tar.gz | Bin 0 -> 38196 bytes 5 files changed, 333 insertions(+) create mode 100644 curtemp.tgz create mode 100644 curtemp/curtemp.css create mode 100644 curtemp/curtemp.php create mode 100644 curtemp/getweather.php create mode 100644 etherpadlite.tar.gz diff --git a/curtemp.tgz b/curtemp.tgz new file mode 100644 index 0000000000000000000000000000000000000000..6d5084beb9b40eb1d839d5d7a97c512abcf2556f GIT binary patch literal 30720 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 literal 0 HcmV?d00001 diff --git a/curtemp/curtemp.css b/curtemp/curtemp.css new file mode 100644 index 000000000..6c1279634 --- /dev/null +++ b/curtemp/curtemp.css @@ -0,0 +1,10 @@ + +#curtemp-settings-label, #curtemp-location-label, #curtemp-enable-label { + float: left; + width: 200px; + margin-bottom: 25px; +} +#curtemp-network { + float: left; +} + diff --git a/curtemp/curtemp.php b/curtemp/curtemp.php new file mode 100644 index 000000000..372f0dbc4 --- /dev/null +++ b/curtemp/curtemp.php @@ -0,0 +1,101 @@ + + * + */ + +function curtemp_install() { + register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); + register_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); + register_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); + register_hook('profile_advanced', 'addon/curtemp/curtemp.php', 'curtemp_profile_advanced'); + +} + +function curtemp_uninstall() { + unregister_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); + unregister_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); + unregister_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); + unregister_hook('profile_advanced', 'addon/curtemp/curtemp.php', 'curtemp_profile_advanced'); + +} + + +function curtemp_network_mod_init($a,$b) { + + if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable'))) + return; + + $a->page['htmlhead'] .= '' . "\r\n"; + + // the getweather file does all the work here + // the $rpt value is needed for location + // which getweather uses to fetch the weather data for weather and temp + $curtemp_loc = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); + $curtemp = '

+
+

'.t("Current Temp").'

'; + $curtemp .= ' + Weather:
+ Temperature: '; + + $curtemp .= '
'; + + $a->page['aside'] = $curtemp . $a->page['aside']; +} + + +function curtemp_plugin_settings_post($a,$post) { + if(! local_user() || (! x($_POST,'curtemp-settings-submit'))) + return; +// set_pconfig(local_user(),'curtemp','max_curtemps',intval($_POST['curtemp_max_curtemps'])); + set_pconfig(local_user(),'curtemp','curtemp_loc',trim($_POST['curtemp_loc'])); + set_pconfig(local_user(),'curtemp','curtemp_enable',intval($_POST['curtemp_enable'])); + + info( t('Current Temp settings updated.') . EOL); +} + + +function curtemp_plugin_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the curtemp so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $curtemp_loc = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); + $enable = intval(get_pconfig(local_user(),'curtemp','curtemp_enable')); + $enable_checked = (($enable) ? ' checked="checked" ' : ''); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('Current Temp Settings') . '

'; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} + + diff --git a/curtemp/getweather.php b/curtemp/getweather.php new file mode 100644 index 000000000..eb8890fc6 --- /dev/null +++ b/curtemp/getweather.php @@ -0,0 +1,222 @@ +$i){ + $a=explode(" | ",$i); + if(is_numeric(array_search($wx,$a))){ + $wxdata['ICON']="$imgpath/$k.jpg"; + break; + } + } + + // Replace any null elements with "Not available" + foreach(array_keys($wxdata) as $key){ + $wxdata[$key]=$wxdata[$key]=="NULL"?"Not available":$wxdata[$key]; + } + + // If we got humidity + if(is_numeric($wxdata['RELATIVE_HUMIDITY'])) + // Append a percent sign + $wxdata['RELATIVE_HUMIDITY'].="%"; + + // Do some formatting to make the output a little friendlier + if($wxdata['VISIBILITY_MI']=="NA") + $wxdata['VISIBILITY']="Not available"; + if($wxdata['VISIBILITY']!="Not available") + $wxdata['VISIBILITY']=(1*$wxdata['VISIBILITY_MI'])." miles"; + + // If we got wind data + if(is_numeric($wxdata['WIND_MPH'])){ + // We're going to output wind data as both MPH from a cardinal direction + // and as Knots from a direction in degrees + + // Calculate the value for Knots + $wxdata['WIND_KNOTS']=$wxdata['WIND_MPH']/1.15; + + // Format the output + $wind=sprintf("From the %s at %d mph (%03.0f° at %d knots)",$wxdata['WIND_DIR'],$wxdata['WIND_MPH'],$wxdata['WIND_DEGREES'],$wxdata['WIND_KNOTS']); + + // If we got a value for wind gusts + if(is_numeric($wxdata['WIND_GUST_MPH']) && $wxdata['WIND_GUST_MPH']>0){ + // add it into the wind string + $wind=str_replace("mph","gusting to ".$wxdata['WIND_GUST_MPH']." mph
", $wind); + $knots=sprintf("%d",$wxdata['WIND_GUST_MPH']/1.15); + $wind=str_replace("knots","gusting to $knots knots",$wind); + } + } else { + // Otherwise, if wind is zero, we'll show "Calm" + $wind=$wxdata['WIND_MPH']=="Not available"?"Not available":"Calm"; + } // Done with wind + $wxdata['WIND_STRING']=$wind; + +} // Done getting and formatting the data + +function startElement($parser, $name, $attrs) { + global $itemname,$itemdata,$wxdata; + $itemname=$name; + $itemdata=""; +} + +function endElement($parser, $name) { + global $itemname,$itemdata,$wxdata; + $wxdata[$itemname]=($itemdata); + $itemdata=""; +} + +function characterData($parser, $data) { + global $itemname,$itemdata,$wxdata; + $itemdata.=$data; +} + +function defineIcons(){ + // See http://weather.gov/data/current_obs/weather.php for source data for this function + $retVal['bkn']="Mostly Cloudy | Mostly Cloudy with Haze | Mostly Cloudy and Breezy"; + $retVal['skc']="Fair | Clear | Fair with Haze | Clear with Haze | Fair and Breezy | Clear and Breezy"; + $retVal['few']="A Few Clouds | A Few Clouds with Haze | A Few Clouds and Breezy"; + $retVal['sct']="Partly Cloudy | Party Cloudy with Haze | Partly Cloudy and Breezy"; + $retVal['ovc']="Overcast | Overcast with Haze | Overcast and Breezy"; + $retVal['nfg']="Fog/Mist | Fog | Freezing Fog | Shallow Fog | Partial Fog | Patches of Fog | Fog in Vicinity | Freezing Fog in Vicinity | Shallow Fog in Vicinity | Partial Fog in Vicinity | Patches of Fog in Vicinity | Showers in Vicinity Fog | Light Freezing Fog | Heavy Freezing Fog"; + $retVal['smoke']="Smoke"; + $retVal['fzra']="Freezing Rain | Freezing Drizzle | Light Freezing Rain | Light Freezing Drizzle | Heavy Freezing Rain | Heavy Freezing Drizzle | Freezing Rain in Vicinity | Freezing Drizzle in Vicinity"; + $retVal['ip']="Ice Pellets | Light Ice Pellets | Heavy Ice Pellets | Ice Pellets in Vicinity | Showers Ice Pellets | Thunderstorm Ice Pellets | Ice Crystals | Hail | Small Hail/Snow Pellets | Light Small Hail/Snow Pellets | Heavy Small Hail/Snow Pellets | Showers Hail | Hail Showers"; + $retVal['mix']="Freezing Rain Snow | Light Freezing Rain Snow | Heavy Freezing Rain Snow | Freezing Drizzle Snow | Light Freezing Drizzle Snow | Heavy Freezing Drizzle Snow | Snow Freezing Rain| Light Snow Freezing Rain | Heavy Snow Freezing Rain | Snow Freezing Drizzle | Light Snow Freezing Drizzle | Heavy Snow Freezing Drizzle"; + $retVal['raip']="Rain Ice Pellets | Light Rain Ice Pellets | Heavy Rain Ice Pellets | Drizzle Ice Pellets | Light Drizzle Ice Pellets | Heavy Drizzle Ice Pellets | Ice Pellets Rain | Light Ice Pellets Rain | Heavy Ice Pellets Rain | Ice Pellets Drizzle | Light Ice Pellets Drizzle | Heavy Ice Pellets Drizzle"; + $retVal['rasn']="Rain Snow | Light Rain Snow | Heavy Rain Snow | Snow Rain | Light Snow Rain | Heavy Snow Rain | Drizzle Snow | Light Drizzle Snow | Heavy Drizzle Snow | Snow Drizzle | Light Snow Drizzle | Heavy Snow Drizzle"; + $retVal['shra']="Rain Showers | Light Rain Showers | Heavy Rain Showers | Rain Showers in Vicinity | Light Showers Rain | Heavy Showers Rain | Showers Rain | Showers Rain in Vicinity | Rain Showers Fog/Mist | Light Rain Showers Fog/Mist | Heavy Rain Showers Fog/Mist | Rain Showers in Vicinity Fog/Mist | Light Showers Rain Fog/Mist | Heavy Showers Rain Fog/Mist | Showers Rain Fog/Mist | Showers Rain in Vicinity Fog/Mist"; + $retVal['tsra']="Thunderstorm | Light Thunderstorm Rain | Heavy Thunderstorm Rain | Thunderstorm Rain Fog/Mist | Light Thunderstorm Rain Fog/Mist | Heavy Thunderstorm Rain Fog/Mist | Thunderstorm Showers in Vicinity | | Light Thunderstorm Rain Haze | Heavy Thunderstorm Rain Haze | Thunderstorm Fog | Light Thunderstorm Rain Fog | Heavy Thunderstorm Rain Fog | Thunderstorm Light Rain | Thunderstorm Heavy Rain | Thunderstorm Rain Fog/Mist | Thunderstorm Light Rain Fog/Mist | Thunderstorm Heavy Rain Fog/Mist | Thunderstorm in Vicinity Fog/Mist | Thunderstorm Showers in Vicinity | Thunderstorm in Vicinity | Thunderstorm in Vicinity Haze | Thunderstorm Haze in Vicinity | Thunderstorm Light Rain Haze | Thunderstorm Heavy Rain Haze | Thunderstorm Fog | Thunderstorm Light Rain Fog | Thunderstorm Heavy Rain Fog | Thunderstorm Hail | Light Thunderstorm Rain Hail | Heavy Thunderstorm Rain Hail | Thunderstorm Rain Hail Fog/Mist | Light Thunderstorm Rain Hail Fog/Mist | Heavy Thunderstorm Rain Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | | Light Thunderstorm Rain Hail Haze | Heavy Thunderstorm Rain Hail Haze | Thunderstorm Hail Fog | Light Thunderstorm Rain Hail Fog | Heavy Thunderstorm Rain Hail Fog | Thunderstorm Light Rain Hail | Thunderstorm Heavy Rain Hail | Thunderstorm Rain Hail Fog/Mist | Thunderstorm Light Rain Hail Fog/Mist | Thunderstorm Heavy Rain Hail Fog/Mist | Thunderstorm in Vicinity Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | Thunderstorm in Vicinity Hail | Thunderstorm in Vicinity Hail Haze | Thunderstorm Haze in Vicinity Hail | Thunderstorm Light Rain Hail Haze | Thunderstorm Heavy Rain Hail Haze | Thunderstorm Hail Fog | Thunderstorm Light Rain Hail Fog | Thunderstorm Heavy Rain Hail Fog | Thunderstorm Small Hail/Snow Pellets | Thunderstorm Rain Small Hail/Snow Pellets | Light Thunderstorm Rain Small Hail/Snow Pellets | Heavy Thunderstorm Rain Small Hail/Snow Pellets"; + $retVal['sn']="Snow | Light Snow | Heavy Snow | Snow Showers | Light Snow Showers | Heavy Snow Showers | Showers Snow | Light Showers Snow | Heavy Showers Snow | Snow Fog/Mist | Light Snow Fog/Mist | Heavy Snow Fog/Mist | Snow Showers Fog/Mist | Light Snow Showers Fog/Mist | Heavy Snow Showers Fog/Mist | Showers Snow Fog/Mist | Light Showers Snow Fog/Mist | Heavy Showers Snow Fog/Mist | Snow Fog | Light Snow Fog | Heavy Snow Fog | Snow Showers Fog | Light Snow Showers Fog | Heavy Snow Showers Fog | Showers Snow Fog | Light Showers Snow Fog | Heavy Showers Snow Fog | Showers in Vicinity Snow | Snow Showers in Vicinity | Snow Showers in Vicinity Fog/Mist | Snow Showers in Vicinity Fog | Low Drifting Snow | Blowing Snow | Snow Low Drifting Snow | Snow Blowing Snow | Light Snow Low Drifting Snow | Light Snow Blowing Snow | Heavy Snow Low Drifting Snow | Heavy Snow Blowing Snow | Thunderstorm Snow | Light Thunderstorm Snow | Heavy Thunderstorm Snow | Snow Grains | Light Snow Grains | Heavy Snow Grains | Heavy Blowing Snow | Blowing Snow in Vicinity"; + $retVal['wind']="Windy | Fair and Windy | A Few Clouds and Windy | Partly Cloudy and Windy | Mostly Cloudy and Windy | Overcast and Windy"; + $retVal['hi_shwrs']="Showers in Vicinity | Showers in Vicinity Fog/Mist | Showers in Vicinity Fog | Showers in Vicinity Haze"; + $retVal['fzrara']="Freezing Rain Rain | Light Freezing Rain Rain | Heavy Freezing Rain Rain | Rain Freezing Rain | Light Rain Freezing Rain | Heavy Rain Freezing Rain | Freezing Drizzle Rain | Light Freezing Drizzle Rain | Heavy Freezing Drizzle Rain | Rain Freezing Drizzle | Light Rain Freezing Drizzle | Heavy Rain Freezing Drizzle"; + $retVal['hi_tsra']="Thunderstorm in Vicinity | Thunderstorm in Vicinity Fog/Mist | Thunderstorm in Vicinity Fog | Thunderstorm Haze in Vicinity | Thunderstorm in Vicinity Haze"; + $retVal['ra1']="Light Rain | Drizzle | Light Drizzle | Heavy Drizzle | Light Rain Fog/Mist | Drizzle Fog/Mist | Light Drizzle Fog/Mist | Heavy Drizzle Fog/Mist | Light Rain Fog | Drizzle Fog | Light Drizzle Fog | Heavy Drizzle Fog"; + $retVal['ra']="Rain | Heavy Rain | Rain Fog/Mist | Heavy Rain Fog/Mist | Rain Fog | Heavy Rain Fog"; + $retVal['nsvrtsra']="Funnel Cloud | Funnel Cloud in Vicinity | Tornado/Water Spout"; + $retVal['dust']="Dust | Low Drifting Dust | Blowing Dust | Sand | Blowing Sand | Low Drifting Sand | Dust/Sand Whirls | Dust/Sand Whirls in Vicinity | Dust Storm | Heavy Dust Storm | Dust Storm in Vicinity | Sand Storm | Heavy Sand Storm | Sand Storm in Vicinity"; + $retVal['mist']="Haze"; + return $retVal; +} + +?> diff --git a/etherpadlite.tar.gz b/etherpadlite.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e611b9b0e3bceea42965b8a241e3d04d69e28f28 GIT binary patch literal 38196 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 literal 0 HcmV?d00001 From 234611f432d93329fbcefb3dcf2ebd9cf1a4576c Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 03:40:54 -0500 Subject: [PATCH 09/19] minor alteration --- curtemp/curtemp.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/curtemp/curtemp.php b/curtemp/curtemp.php index 372f0dbc4..f52ab9402 100644 --- a/curtemp/curtemp.php +++ b/curtemp/curtemp.php @@ -11,7 +11,6 @@ function curtemp_install() { register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); register_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); register_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); - register_hook('profile_advanced', 'addon/curtemp/curtemp.php', 'curtemp_profile_advanced'); } @@ -19,7 +18,6 @@ function curtemp_uninstall() { unregister_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); unregister_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); unregister_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); - unregister_hook('profile_advanced', 'addon/curtemp/curtemp.php', 'curtemp_profile_advanced'); } From 0ccb9f5c0c8496a1684a002e8122f94947de1371 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 03:44:05 -0500 Subject: [PATCH 10/19] another minor change (deleted a comment) --- curtemp/curtemp.php | 1 - 1 file changed, 1 deletion(-) diff --git a/curtemp/curtemp.php b/curtemp/curtemp.php index f52ab9402..77e14343d 100644 --- a/curtemp/curtemp.php +++ b/curtemp/curtemp.php @@ -52,7 +52,6 @@ function curtemp_network_mod_init($a,$b) { function curtemp_plugin_settings_post($a,$post) { if(! local_user() || (! x($_POST,'curtemp-settings-submit'))) return; -// set_pconfig(local_user(),'curtemp','max_curtemps',intval($_POST['curtemp_max_curtemps'])); set_pconfig(local_user(),'curtemp','curtemp_loc',trim($_POST['curtemp_loc'])); set_pconfig(local_user(),'curtemp','curtemp_enable',intval($_POST['curtemp_enable'])); From 3ce891c7d31cc813da11be7d50375962329caca0 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 05:24:21 -0500 Subject: [PATCH 11/19] fixed with Fabio's assistance --- curtemp.tgz | Bin 30720 -> 30720 bytes curtemp/curtemp.php | 41 ++--- curtemp/getweather.php | 338 +++++++++++++++++++++-------------------- curtemp/test.php | 5 + 4 files changed, 200 insertions(+), 184 deletions(-) create mode 100644 curtemp/test.php diff --git a/curtemp.tgz b/curtemp.tgz index 6d5084beb9b40eb1d839d5d7a97c512abcf2556f..36f1230e9a6389791631b7bebe228bc5a8428f3d 100644 GIT binary patch delta 4968 zcmahNT})fo8B>~qOG48Sf@8pk%eAj<{BMIB@Fk=M0u4!<|79%lF7`3L!uIv9uLHEo z2%6SS>i)u!_Bw5QnzX1((cW4qmG)3+t2U|9w3lew`mj~nsy=NG)3lv)|IfAS93k%c z{(sM(AAI3@@P+F~QY@LBN%SNV3FC{W>gY+Pl8M=5CY?y7dlJcHDx2&9GbrgQ4Yrz! zAOp~&NcFvkC&&887d>A8%lfqU~ zS&RaSu2%Lz?tG)t0LR@j{6(HP_C{q+OaVQ=TmWz*@T znYmOVi(^V>Nani7blCS%9$aWC6-k~0E5fEIfxJ{})kTmi3!AdIyIWh_7Uk_NS!y+6 zMX9#n24Vacr*aTPzjBX1$A#vPe%F_C9l>KOF7)vD2m<{lPY2lYc0p(~A^~thwV#kk7SYL} zSI()xGm@=(z$&oT!1d4*y@9U2cxsxvJFgM-a@y$J?d1zMR+q0CENI9*t6C!#jgc#f z_du~KG@Cr5h)NX#MUtuv&Y5GNlAGJtOch(Q>Pn0UoY5J8;Xn+#rZozla!hVh2Jv=9 z;06u@$^yv6bfF<^!3|DmiY3V1C9&&b zvCbUxZd_zP`rq@9#8FV5%NcNs-NB-P<#$(rK`lBlUz{|z$R4sDV zLAVQx#ABRMTIRprIBh06Hgm|JB|h*aX!*~55gOqIJdL;m=4r$U<_!8JIDJfu27L&+ zdGJ?|rlm(FXKBRc$=Qrm61?ZX$u|{QE>`3qX?LiIH5g$4)7I!eog58Qf_qSqc_I>I z?zFRiJn5*&2_{K)%}aI8%^INq5$PwV*Y)Fh4g=M>x->EIPvtOa!qC;bjfL4P=F7r-Y8 z6pEFgwwD8;3D|9ZffYm6*<`SzhJWNG12DemyZ*pg1F(N}2Oj&UR_$nGzKP9lTL+PW zzE7>``;NWwZ~oM#!AZV`^Xe)uY{R{#9=CDH)#8DB9iq|vGcIW?7QU;WWay1Rpxl8> zd+YEG@4IVdumi!Cq<~7RCYD5Hj|v8#P-3%CZ`GhI7LEG68}PNK^bY~gh&@a)*VFlK zU~D+XGk$!AQ_9gx9Dmv_gRSWzS2^%y+OBe^(A(VbmkORjkGa!bga^61d@vc-4gH1l z=j|>~DcKS0B|r{-%I%IhIS8FXi^0D3ysQM*+K~@~(RSpM;AG0~3YpUt^m?nnVPM$0+ zU%a-wjD0Z}AB8;aaeWkGS*LTIa~K|dF$4kuqi+tvqn?FChh?C8elF}AcB)kg8{vR) zP8@`zop~OIhb^8_^fcVxneXr69JTWh1CHemU=?3*JM27}>7@CnGaO|}OW7;;U^+|{ z{XV%eFG+O>c0{Fu|J6%W(e#Qunf6&1?mth5qlN+P^+=ag+XFPWRb|K>Nvs$WdSS^M zLA_41)|-H^*vMohnAcr>D?#6i1PTsS+FfJACP`Ep4QpQNt*yz%+0lk88oK1LVLWMK zym~)1LR7;uA1(UzUc22}6++*P-m$Xxr|3-!h{d)n;K#9R7Vuf@h6OCdS4`mO+i{;O zY`Dkb0^Aa+8(gy{ZR2+%&s--H+w%oINqlSx{~$TxvY8u5z^vtIgW00nUdFXI`izGs(!W({ts2}lEVN1 delta 2747 zcmbVOZA?>F7^ah`w;+fgpdjUNx%A#bOMCl4#d1NAiuD7eRK--%T-pP@qug6>Z&By) zKdnV9{W{Mkp$%#tmOb4!*bOU#T}vLDlBKTHJ?GSY%c=X8SG6_|{7NXmuQ-}>(JOk|MX$fz(_Z2cMXygRK>;FKQsw!a zA?pa0=$dAnui8{fM{>IK#|z6JuPzwyc}fQ;VJYDF#X*;c00f*2i7 zC^-Y`iL|Co3Vc@A#+3|C$f;>rP2v>El(keYq0J_(J1s1eSO14Bxl-0z#>q}@%z=(u ztqi$WwvA!H3nQ8#aMbvUo+IH7_2!XZ+|)K?zj9U;o%^sIp-M6R!^K4}uVyD0ep zmW?#lx1df?fp9XdA@0c0lx)cHL;QhoPi#jxdWatlb$4}+>Bw!$#K11rW$+q5UM?2i zvo{>=iS3Jq6T`7+WT1ae1s{T_xn#}5uDespbXTW|xF31BWzMtWhb{QS2B zk<+Vvv#HhfD=ut!Y{~h=fIm2$z82YEVEcI*ftPklWN^=)GOyO z%Ig_4uIUJJkCddQ=B(sJThI^eerzmIk(@)aiez1vk6Af$qm;tqii#stNPwfYk|Xu? z1DpcIKu=9#*%0i6l`2o+xz*fxN~RVn!YypnaaPlff)J=QXI65y!B(q`3tTb{$%kxZ z5{jxAf}>Ekw;E`DRv^K|jU!)huJ6#{Wh*T_IVBtuuGgkp~Pg2H=75)%Lf15YRz}JE0WLhw*HZh5h<%&if^sC^2 z;y4aMMNcSUR3bmO+1D*1fnrms=&r70pr(~vLd{QMT}cXL!rf5M&=mJ%vrr~TM$p%i zG{-q*LZz;L<>nxs2X3j9%94H$dIqR79)529sYj?=aDm?+8IJTuc1L0d`B6y_TS&Fo z%v1f5adZTu3C%!96tF|TKkHIwPKY&B_lIJH4*!TQI)uE98y+%nATrRG*flU18wLa9 ztha8X>Hc<2pOWX=hL$(7c_>1L-0^OW7c;?|f_;%FKk8ge+p~AaBecG7e>5Bh6HE3M z44Ws-kav9CYG!E=zxnEk)n9KOZ^++Zj;h~I-tfC>=p{6%YDP}VWp(Jt;{w~9Vx8oH zADR0cflg3JivZya^hkQT}J~V zE^pokxU6FWQ16HW-t3403R|{YnAzzq4Hj6u6{-dNBJ>@QE_T|0H2ayfhYpq9LAqgJ z>#wlr=($2^zxTef0*0BL_EKPdG;jv6d+;QXz8)N+yBmhC0^S + * Author: Fabio Comuni * */ +require_once('addon/curtemp/getweather.php'); function curtemp_install() { register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); @@ -22,30 +24,31 @@ function curtemp_uninstall() { } -function curtemp_network_mod_init($a,$b) { +function curtemp_network_mod_init(&$fk_app,&$b) { - if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable'))) - return; + if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable'))) + return; - $a->page['htmlhead'] .= '' . "\r\n"; + $fk_app->page['htmlhead'] .= '' . "\r\n"; - // the getweather file does all the work here - // the $rpt value is needed for location - // which getweather uses to fetch the weather data for weather and temp - $curtemp_loc = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); - $curtemp = '
-
-

'.t("Current Temp").'

'; - $curtemp .= ' - Weather:
- Temperature: '; + // the getweather file does all the work here + // the $rpt value is needed for location + // which getweather uses to fetch the weather data for weather and temp + $rpt = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); + $wxdata = GetWeather::get($rpt); + $temp = $wxdata['TEMPERATURE_STRING']; + $weather = $wxdata['WEATHER']; + $curtemp = '
+
+

'.t("Current Temp").'

'; - $curtemp .= '
'; + $curtemp .= 'Weather: "' . $weather . '"
+ Temperature: "' . $temp . '"'; + + $curtemp .= '
'; + + $fk_app->page['aside'] = $curtemp.$fk_app->page['aside']; - $a->page['aside'] = $curtemp . $a->page['aside']; } diff --git a/curtemp/getweather.php b/curtemp/getweather.php index eb8890fc6..b4660b9e9 100644 --- a/curtemp/getweather.php +++ b/curtemp/getweather.php @@ -28,195 +28,203 @@ Complete list of Weather stations available at http://weather.gov/data/current_obs/index.xml */ +class GetWeather { -// URL for the XML file -$xmlurl="http://www.weather.gov/data/current_obs/$rpt.xml"; + // Initialize some variables + static $itemdata; + static $itemname; + static $wxdata; -// Base url for the icons -$imgpath="http://weather.gov/weather/images/fcicons"; -// Get the icons as an array -$icons=defineIcons(); + function get($rpt) { + + // URL for the XML file + $xmlurl="http://www.weather.gov/data/current_obs/$rpt.xml"; -// Initialize some variables -$itemdata=""; -$itemname=""; -$wxdata=array(); -$data=""; -$report=""; -$icon=""; + // Base url for the icons + $imgpath="http://weather.gov/weather/images/fcicons"; -// create a new CURL resource -if($ch = curl_init()) { + + self::$itemdata=""; + self::$itemname=""; + self::$wxdata=array(); + + $icons=self::defineIcons(); + $icon=""; + $data=""; + $report=""; + + // create a new CURL resource + if($ch = curl_init()) { - // set URL and other appropriate options - curl_setopt($ch, CURLOPT_URL, $xmlurl); - curl_setopt($ch, CURLOPT_HEADER, trus); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); - - // grab URL and pass it to the browser - $data=curl_exec($ch); + // set URL and other appropriate options + curl_setopt($ch, CURLOPT_URL, $xmlurl); + curl_setopt($ch, CURLOPT_HEADER, trus); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); + + // grab URL and pass it to the browser + $data=curl_exec($ch); - $r=curl_getinfo($ch); //,CURLINFO_HTTP_CODE); + $r=curl_getinfo($ch); //,CURLINFO_HTTP_CODE); - // close CURL resource, and free up system resources - curl_close($ch); + // close CURL resource, and free up system resources + curl_close($ch); - // Create an XML parser - $xml_parser = xml_parser_create(); - - // Use case-folding so we are sure to find the tag in $map_array - // This will force all tags to upper case so we don't have to worry - // about matching the case of the original in our tests. - xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); - - // Assign the element starting and ending event handlers - xml_set_element_handler($xml_parser, "startElement", "endElement"); - - // Assign a function to handle character data - xml_set_character_data_handler($xml_parser, "characterData"); - - // Parse the file. This will place the data into an associative - // array assigned to the $wxdata variable - xml_parse($xml_parser,$data,true); - - // Free the parser object - xml_parser_free($xml_parser); - - // The OBSERVATION_TIME field of the returned XML will be in the - // format "Last Updated on May 18, 8:53 am CDT" - // We're going to change the format a bit. + // Create an XML parser + $xml_parser = xml_parser_create(); + + // Use case-folding so we are sure to find the tag in $map_array + // This will force all tags to upper case so we don't have to worry + // about matching the case of the original in our tests. + xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true); + + // Assign the element starting and ending event handlers + xml_set_element_handler($xml_parser, array(self,"startElement"), array(self,"endElement")); + + // Assign a function to handle character data + xml_set_character_data_handler($xml_parser, array(self,"characterData")); + + // Parse the file. This will place the data into an associative + // array assigned to the self::$wxdata variable + xml_parse($xml_parser,$data,true); + + // Free the parser object + xml_parser_free($xml_parser); + + // The OBSERVATION_TIME field of the returned XML will be in the + // format "Last Updated on May 18, 8:53 am CDT" + // We're going to change the format a bit. - // Strip out the "Last Updated on " portion of the date/time - // so we can display that separately in our tabular output - $datetime=str_replace("Last Updated on ","",$wxdata['OBSERVATION_TIME']); - - // We now have the format as "May 18, 8:53 am CDT" - // Now, get the time zone. It will be everything from - // the last space character to the end of the string. - $z=strrchr($datetime," "); + // Strip out the "Last Updated on " portion of the date/time + // so we can display that separately in our tabular output + $datetime=str_replace("Last Updated on ","",self::$wxdata['OBSERVATION_TIME']); + + // We now have the format as "May 18, 8:53 am CDT" + // Now, get the time zone. It will be everything from + // the last space character to the end of the string. + $z=strrchr($datetime," "); - // Get the current year - $year=date("Y"); + // Get the current year + $year=date("Y"); - // Now, we stuff the year into the string, following the comma. - $datetime=str_replace(",",", $year",$datetime); + // Now, we stuff the year into the string, following the comma. + $datetime=str_replace(",",", $year",$datetime); - // This does leave a small potential issue where, if you get a - // report between midnight and 1 a.m. on January 1, or the server - // is in a significantly different time zone than the report it - // could be as late as 4 a.m. the year will be wrong because the - // report will be from the previous year. I suppose it would be - // possible to correct for that, but for that little bit, I'm - // not going to worry about it. + // This does leave a small potential issue where, if you get a + // report between midnight and 1 a.m. on January 1, or the server + // is in a significantly different time zone than the report it + // could be as late as 4 a.m. the year will be wrong because the + // report will be from the previous year. I suppose it would be + // possible to correct for that, but for that little bit, I'm + // not going to worry about it. - // Now, strip out the time zone - $datetime=str_replace($z,"",$datetime); + // Now, strip out the time zone + $datetime=str_replace($z,"",$datetime); - // Format the date and time the way we want it and add - // back the time zone - $datetime=date("l F j, Y g:i A",strtotime($datetime)).$z; - $wxdata['OBSERVATION_TIME']=$datetime; - - // Get the WEATHER element - $wx=trim($wxdata['WEATHER']); + // Format the date and time the way we want it and add + // back the time zone + $datetime=date("l F j, Y g:i A",strtotime($datetime)).$z; + self::$wxdata['OBSERVATION_TIME']=$datetime; + + // Get the WEATHER element + $wx=trim(self::$wxdata['WEATHER']); - // Now, get the icon to match the weather - foreach($icons as $k=>$i){ - $a=explode(" | ",$i); - if(is_numeric(array_search($wx,$a))){ - $wxdata['ICON']="$imgpath/$k.jpg"; - break; - } - } + // Now, get the icon to match the weather + foreach($icons as $k=>$i){ + $a=explode(" | ",$i); + if(is_numeric(array_search($wx,$a))){ + self::$wxdata['ICON']="$imgpath/$k.jpg"; + break; + } + } - // Replace any null elements with "Not available" - foreach(array_keys($wxdata) as $key){ - $wxdata[$key]=$wxdata[$key]=="NULL"?"Not available":$wxdata[$key]; - } + // Replace any null elements with "Not available" + foreach(array_keys(self::$wxdata) as $key){ + self::$wxdata[$key]=self::$wxdata[$key]=="NULL"?"Not available":self::$wxdata[$key]; + } - // If we got humidity - if(is_numeric($wxdata['RELATIVE_HUMIDITY'])) - // Append a percent sign - $wxdata['RELATIVE_HUMIDITY'].="%"; + // If we got humidity + if(is_numeric(self::$wxdata['RELATIVE_HUMIDITY'])) + // Append a percent sign + self::$wxdata['RELATIVE_HUMIDITY'].="%"; - // Do some formatting to make the output a little friendlier - if($wxdata['VISIBILITY_MI']=="NA") - $wxdata['VISIBILITY']="Not available"; - if($wxdata['VISIBILITY']!="Not available") - $wxdata['VISIBILITY']=(1*$wxdata['VISIBILITY_MI'])." miles"; + // Do some formatting to make the output a little friendlier + if(self::$wxdata['VISIBILITY_MI']=="NA") + self::$wxdata['VISIBILITY']="Not available"; + if(self::$wxdata['VISIBILITY']!="Not available") + self::$wxdata['VISIBILITY']=(1*self::$wxdata['VISIBILITY_MI'])." miles"; - // If we got wind data - if(is_numeric($wxdata['WIND_MPH'])){ - // We're going to output wind data as both MPH from a cardinal direction - // and as Knots from a direction in degrees + // If we got wind data + if(is_numeric(self::$wxdata['WIND_MPH'])){ + // We're going to output wind data as both MPH from a cardinal direction + // and as Knots from a direction in degrees - // Calculate the value for Knots - $wxdata['WIND_KNOTS']=$wxdata['WIND_MPH']/1.15; + // Calculate the value for Knots + self::$wxdata['WIND_KNOTS']=self::$wxdata['WIND_MPH']/1.15; - // Format the output - $wind=sprintf("From the %s at %d mph (%03.0f° at %d knots)",$wxdata['WIND_DIR'],$wxdata['WIND_MPH'],$wxdata['WIND_DEGREES'],$wxdata['WIND_KNOTS']); + // Format the output + $wind=sprintf("From the %s at %d mph (%03.0f° at %d knots)",self::$wxdata['WIND_DIR'],self::$wxdata['WIND_MPH'],self::$wxdata['WIND_DEGREES'],self::$wxdata['WIND_KNOTS']); - // If we got a value for wind gusts - if(is_numeric($wxdata['WIND_GUST_MPH']) && $wxdata['WIND_GUST_MPH']>0){ - // add it into the wind string - $wind=str_replace("mph","gusting to ".$wxdata['WIND_GUST_MPH']." mph
", $wind); - $knots=sprintf("%d",$wxdata['WIND_GUST_MPH']/1.15); - $wind=str_replace("knots","gusting to $knots knots",$wind); - } - } else { - // Otherwise, if wind is zero, we'll show "Calm" - $wind=$wxdata['WIND_MPH']=="Not available"?"Not available":"Calm"; - } // Done with wind - $wxdata['WIND_STRING']=$wind; + // If we got a value for wind gusts + if(is_numeric(self::$wxdata['WIND_GUST_MPH']) && self::$wxdata['WIND_GUST_MPH']>0){ + // add it into the wind string + $wind=str_replace("mph","gusting to ".self::$wxdata['WIND_GUST_MPH']." mph
", $wind); + $knots=sprintf("%d",self::$wxdata['WIND_GUST_MPH']/1.15); + $wind=str_replace("knots","gusting to $knots knots",$wind); + } + } else { + // Otherwise, if wind is zero, we'll show "Calm" + $wind=self::$wxdata['WIND_MPH']=="Not available"?"Not available":"Calm"; + } // Done with wind + self::$wxdata['WIND_STRING']=$wind; -} // Done getting and formatting the data + } // Done getting and formatting the data + return self::$wxdata; + } + + function startElement($parser, $name, $attrs) { + self::$itemname=$name; + self::$itemdata=""; + } -function startElement($parser, $name, $attrs) { - global $itemname,$itemdata,$wxdata; - $itemname=$name; - $itemdata=""; + function endElement($parser, $name) { + self::$wxdata[self::$itemname]=self::$itemdata; + self::$itemdata=""; + } + + function characterData($parser, $data) { + self::$itemdata.=$data; + } + + function defineIcons(){ + // See http://weather.gov/data/current_obs/weather.php for source data for this function + $retVal['bkn']="Mostly Cloudy | Mostly Cloudy with Haze | Mostly Cloudy and Breezy"; + $retVal['skc']="Fair | Clear | Fair with Haze | Clear with Haze | Fair and Breezy | Clear and Breezy"; + $retVal['few']="A Few Clouds | A Few Clouds with Haze | A Few Clouds and Breezy"; + $retVal['sct']="Partly Cloudy | Party Cloudy with Haze | Partly Cloudy and Breezy"; + $retVal['ovc']="Overcast | Overcast with Haze | Overcast and Breezy"; + $retVal['nfg']="Fog/Mist | Fog | Freezing Fog | Shallow Fog | Partial Fog | Patches of Fog | Fog in Vicinity | Freezing Fog in Vicinity | Shallow Fog in Vicinity | Partial Fog in Vicinity | Patches of Fog in Vicinity | Showers in Vicinity Fog | Light Freezing Fog | Heavy Freezing Fog"; + $retVal['smoke']="Smoke"; + $retVal['fzra']="Freezing Rain | Freezing Drizzle | Light Freezing Rain | Light Freezing Drizzle | Heavy Freezing Rain | Heavy Freezing Drizzle | Freezing Rain in Vicinity | Freezing Drizzle in Vicinity"; + $retVal['ip']="Ice Pellets | Light Ice Pellets | Heavy Ice Pellets | Ice Pellets in Vicinity | Showers Ice Pellets | Thunderstorm Ice Pellets | Ice Crystals | Hail | Small Hail/Snow Pellets | Light Small Hail/Snow Pellets | Heavy Small Hail/Snow Pellets | Showers Hail | Hail Showers"; + $retVal['mix']="Freezing Rain Snow | Light Freezing Rain Snow | Heavy Freezing Rain Snow | Freezing Drizzle Snow | Light Freezing Drizzle Snow | Heavy Freezing Drizzle Snow | Snow Freezing Rain| Light Snow Freezing Rain | Heavy Snow Freezing Rain | Snow Freezing Drizzle | Light Snow Freezing Drizzle | Heavy Snow Freezing Drizzle"; + $retVal['raip']="Rain Ice Pellets | Light Rain Ice Pellets | Heavy Rain Ice Pellets | Drizzle Ice Pellets | Light Drizzle Ice Pellets | Heavy Drizzle Ice Pellets | Ice Pellets Rain | Light Ice Pellets Rain | Heavy Ice Pellets Rain | Ice Pellets Drizzle | Light Ice Pellets Drizzle | Heavy Ice Pellets Drizzle"; + $retVal['rasn']="Rain Snow | Light Rain Snow | Heavy Rain Snow | Snow Rain | Light Snow Rain | Heavy Snow Rain | Drizzle Snow | Light Drizzle Snow | Heavy Drizzle Snow | Snow Drizzle | Light Snow Drizzle | Heavy Snow Drizzle"; + $retVal['shra']="Rain Showers | Light Rain Showers | Heavy Rain Showers | Rain Showers in Vicinity | Light Showers Rain | Heavy Showers Rain | Showers Rain | Showers Rain in Vicinity | Rain Showers Fog/Mist | Light Rain Showers Fog/Mist | Heavy Rain Showers Fog/Mist | Rain Showers in Vicinity Fog/Mist | Light Showers Rain Fog/Mist | Heavy Showers Rain Fog/Mist | Showers Rain Fog/Mist | Showers Rain in Vicinity Fog/Mist"; + $retVal['tsra']="Thunderstorm | Light Thunderstorm Rain | Heavy Thunderstorm Rain | Thunderstorm Rain Fog/Mist | Light Thunderstorm Rain Fog/Mist | Heavy Thunderstorm Rain Fog/Mist | Thunderstorm Showers in Vicinity | | Light Thunderstorm Rain Haze | Heavy Thunderstorm Rain Haze | Thunderstorm Fog | Light Thunderstorm Rain Fog | Heavy Thunderstorm Rain Fog | Thunderstorm Light Rain | Thunderstorm Heavy Rain | Thunderstorm Rain Fog/Mist | Thunderstorm Light Rain Fog/Mist | Thunderstorm Heavy Rain Fog/Mist | Thunderstorm in Vicinity Fog/Mist | Thunderstorm Showers in Vicinity | Thunderstorm in Vicinity | Thunderstorm in Vicinity Haze | Thunderstorm Haze in Vicinity | Thunderstorm Light Rain Haze | Thunderstorm Heavy Rain Haze | Thunderstorm Fog | Thunderstorm Light Rain Fog | Thunderstorm Heavy Rain Fog | Thunderstorm Hail | Light Thunderstorm Rain Hail | Heavy Thunderstorm Rain Hail | Thunderstorm Rain Hail Fog/Mist | Light Thunderstorm Rain Hail Fog/Mist | Heavy Thunderstorm Rain Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | | Light Thunderstorm Rain Hail Haze | Heavy Thunderstorm Rain Hail Haze | Thunderstorm Hail Fog | Light Thunderstorm Rain Hail Fog | Heavy Thunderstorm Rain Hail Fog | Thunderstorm Light Rain Hail | Thunderstorm Heavy Rain Hail | Thunderstorm Rain Hail Fog/Mist | Thunderstorm Light Rain Hail Fog/Mist | Thunderstorm Heavy Rain Hail Fog/Mist | Thunderstorm in Vicinity Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | Thunderstorm in Vicinity Hail | Thunderstorm in Vicinity Hail Haze | Thunderstorm Haze in Vicinity Hail | Thunderstorm Light Rain Hail Haze | Thunderstorm Heavy Rain Hail Haze | Thunderstorm Hail Fog | Thunderstorm Light Rain Hail Fog | Thunderstorm Heavy Rain Hail Fog | Thunderstorm Small Hail/Snow Pellets | Thunderstorm Rain Small Hail/Snow Pellets | Light Thunderstorm Rain Small Hail/Snow Pellets | Heavy Thunderstorm Rain Small Hail/Snow Pellets"; + $retVal['sn']="Snow | Light Snow | Heavy Snow | Snow Showers | Light Snow Showers | Heavy Snow Showers | Showers Snow | Light Showers Snow | Heavy Showers Snow | Snow Fog/Mist | Light Snow Fog/Mist | Heavy Snow Fog/Mist | Snow Showers Fog/Mist | Light Snow Showers Fog/Mist | Heavy Snow Showers Fog/Mist | Showers Snow Fog/Mist | Light Showers Snow Fog/Mist | Heavy Showers Snow Fog/Mist | Snow Fog | Light Snow Fog | Heavy Snow Fog | Snow Showers Fog | Light Snow Showers Fog | Heavy Snow Showers Fog | Showers Snow Fog | Light Showers Snow Fog | Heavy Showers Snow Fog | Showers in Vicinity Snow | Snow Showers in Vicinity | Snow Showers in Vicinity Fog/Mist | Snow Showers in Vicinity Fog | Low Drifting Snow | Blowing Snow | Snow Low Drifting Snow | Snow Blowing Snow | Light Snow Low Drifting Snow | Light Snow Blowing Snow | Heavy Snow Low Drifting Snow | Heavy Snow Blowing Snow | Thunderstorm Snow | Light Thunderstorm Snow | Heavy Thunderstorm Snow | Snow Grains | Light Snow Grains | Heavy Snow Grains | Heavy Blowing Snow | Blowing Snow in Vicinity"; + $retVal['wind']="Windy | Fair and Windy | A Few Clouds and Windy | Partly Cloudy and Windy | Mostly Cloudy and Windy | Overcast and Windy"; + $retVal['hi_shwrs']="Showers in Vicinity | Showers in Vicinity Fog/Mist | Showers in Vicinity Fog | Showers in Vicinity Haze"; + $retVal['fzrara']="Freezing Rain Rain | Light Freezing Rain Rain | Heavy Freezing Rain Rain | Rain Freezing Rain | Light Rain Freezing Rain | Heavy Rain Freezing Rain | Freezing Drizzle Rain | Light Freezing Drizzle Rain | Heavy Freezing Drizzle Rain | Rain Freezing Drizzle | Light Rain Freezing Drizzle | Heavy Rain Freezing Drizzle"; + $retVal['hi_tsra']="Thunderstorm in Vicinity | Thunderstorm in Vicinity Fog/Mist | Thunderstorm in Vicinity Fog | Thunderstorm Haze in Vicinity | Thunderstorm in Vicinity Haze"; + $retVal['ra1']="Light Rain | Drizzle | Light Drizzle | Heavy Drizzle | Light Rain Fog/Mist | Drizzle Fog/Mist | Light Drizzle Fog/Mist | Heavy Drizzle Fog/Mist | Light Rain Fog | Drizzle Fog | Light Drizzle Fog | Heavy Drizzle Fog"; + $retVal['ra']="Rain | Heavy Rain | Rain Fog/Mist | Heavy Rain Fog/Mist | Rain Fog | Heavy Rain Fog"; + $retVal['nsvrtsra']="Funnel Cloud | Funnel Cloud in Vicinity | Tornado/Water Spout"; + $retVal['dust']="Dust | Low Drifting Dust | Blowing Dust | Sand | Blowing Sand | Low Drifting Sand | Dust/Sand Whirls | Dust/Sand Whirls in Vicinity | Dust Storm | Heavy Dust Storm | Dust Storm in Vicinity | Sand Storm | Heavy Sand Storm | Sand Storm in Vicinity"; + $retVal['mist']="Haze"; + return $retVal; + } +// end CLASS } - -function endElement($parser, $name) { - global $itemname,$itemdata,$wxdata; - $wxdata[$itemname]=($itemdata); - $itemdata=""; -} - -function characterData($parser, $data) { - global $itemname,$itemdata,$wxdata; - $itemdata.=$data; -} - -function defineIcons(){ - // See http://weather.gov/data/current_obs/weather.php for source data for this function - $retVal['bkn']="Mostly Cloudy | Mostly Cloudy with Haze | Mostly Cloudy and Breezy"; - $retVal['skc']="Fair | Clear | Fair with Haze | Clear with Haze | Fair and Breezy | Clear and Breezy"; - $retVal['few']="A Few Clouds | A Few Clouds with Haze | A Few Clouds and Breezy"; - $retVal['sct']="Partly Cloudy | Party Cloudy with Haze | Partly Cloudy and Breezy"; - $retVal['ovc']="Overcast | Overcast with Haze | Overcast and Breezy"; - $retVal['nfg']="Fog/Mist | Fog | Freezing Fog | Shallow Fog | Partial Fog | Patches of Fog | Fog in Vicinity | Freezing Fog in Vicinity | Shallow Fog in Vicinity | Partial Fog in Vicinity | Patches of Fog in Vicinity | Showers in Vicinity Fog | Light Freezing Fog | Heavy Freezing Fog"; - $retVal['smoke']="Smoke"; - $retVal['fzra']="Freezing Rain | Freezing Drizzle | Light Freezing Rain | Light Freezing Drizzle | Heavy Freezing Rain | Heavy Freezing Drizzle | Freezing Rain in Vicinity | Freezing Drizzle in Vicinity"; - $retVal['ip']="Ice Pellets | Light Ice Pellets | Heavy Ice Pellets | Ice Pellets in Vicinity | Showers Ice Pellets | Thunderstorm Ice Pellets | Ice Crystals | Hail | Small Hail/Snow Pellets | Light Small Hail/Snow Pellets | Heavy Small Hail/Snow Pellets | Showers Hail | Hail Showers"; - $retVal['mix']="Freezing Rain Snow | Light Freezing Rain Snow | Heavy Freezing Rain Snow | Freezing Drizzle Snow | Light Freezing Drizzle Snow | Heavy Freezing Drizzle Snow | Snow Freezing Rain| Light Snow Freezing Rain | Heavy Snow Freezing Rain | Snow Freezing Drizzle | Light Snow Freezing Drizzle | Heavy Snow Freezing Drizzle"; - $retVal['raip']="Rain Ice Pellets | Light Rain Ice Pellets | Heavy Rain Ice Pellets | Drizzle Ice Pellets | Light Drizzle Ice Pellets | Heavy Drizzle Ice Pellets | Ice Pellets Rain | Light Ice Pellets Rain | Heavy Ice Pellets Rain | Ice Pellets Drizzle | Light Ice Pellets Drizzle | Heavy Ice Pellets Drizzle"; - $retVal['rasn']="Rain Snow | Light Rain Snow | Heavy Rain Snow | Snow Rain | Light Snow Rain | Heavy Snow Rain | Drizzle Snow | Light Drizzle Snow | Heavy Drizzle Snow | Snow Drizzle | Light Snow Drizzle | Heavy Snow Drizzle"; - $retVal['shra']="Rain Showers | Light Rain Showers | Heavy Rain Showers | Rain Showers in Vicinity | Light Showers Rain | Heavy Showers Rain | Showers Rain | Showers Rain in Vicinity | Rain Showers Fog/Mist | Light Rain Showers Fog/Mist | Heavy Rain Showers Fog/Mist | Rain Showers in Vicinity Fog/Mist | Light Showers Rain Fog/Mist | Heavy Showers Rain Fog/Mist | Showers Rain Fog/Mist | Showers Rain in Vicinity Fog/Mist"; - $retVal['tsra']="Thunderstorm | Light Thunderstorm Rain | Heavy Thunderstorm Rain | Thunderstorm Rain Fog/Mist | Light Thunderstorm Rain Fog/Mist | Heavy Thunderstorm Rain Fog/Mist | Thunderstorm Showers in Vicinity | | Light Thunderstorm Rain Haze | Heavy Thunderstorm Rain Haze | Thunderstorm Fog | Light Thunderstorm Rain Fog | Heavy Thunderstorm Rain Fog | Thunderstorm Light Rain | Thunderstorm Heavy Rain | Thunderstorm Rain Fog/Mist | Thunderstorm Light Rain Fog/Mist | Thunderstorm Heavy Rain Fog/Mist | Thunderstorm in Vicinity Fog/Mist | Thunderstorm Showers in Vicinity | Thunderstorm in Vicinity | Thunderstorm in Vicinity Haze | Thunderstorm Haze in Vicinity | Thunderstorm Light Rain Haze | Thunderstorm Heavy Rain Haze | Thunderstorm Fog | Thunderstorm Light Rain Fog | Thunderstorm Heavy Rain Fog | Thunderstorm Hail | Light Thunderstorm Rain Hail | Heavy Thunderstorm Rain Hail | Thunderstorm Rain Hail Fog/Mist | Light Thunderstorm Rain Hail Fog/Mist | Heavy Thunderstorm Rain Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | | Light Thunderstorm Rain Hail Haze | Heavy Thunderstorm Rain Hail Haze | Thunderstorm Hail Fog | Light Thunderstorm Rain Hail Fog | Heavy Thunderstorm Rain Hail Fog | Thunderstorm Light Rain Hail | Thunderstorm Heavy Rain Hail | Thunderstorm Rain Hail Fog/Mist | Thunderstorm Light Rain Hail Fog/Mist | Thunderstorm Heavy Rain Hail Fog/Mist | Thunderstorm in Vicinity Hail Fog/Mist | Thunderstorm Showers in Vicinity Hail | Thunderstorm in Vicinity Hail | Thunderstorm in Vicinity Hail Haze | Thunderstorm Haze in Vicinity Hail | Thunderstorm Light Rain Hail Haze | Thunderstorm Heavy Rain Hail Haze | Thunderstorm Hail Fog | Thunderstorm Light Rain Hail Fog | Thunderstorm Heavy Rain Hail Fog | Thunderstorm Small Hail/Snow Pellets | Thunderstorm Rain Small Hail/Snow Pellets | Light Thunderstorm Rain Small Hail/Snow Pellets | Heavy Thunderstorm Rain Small Hail/Snow Pellets"; - $retVal['sn']="Snow | Light Snow | Heavy Snow | Snow Showers | Light Snow Showers | Heavy Snow Showers | Showers Snow | Light Showers Snow | Heavy Showers Snow | Snow Fog/Mist | Light Snow Fog/Mist | Heavy Snow Fog/Mist | Snow Showers Fog/Mist | Light Snow Showers Fog/Mist | Heavy Snow Showers Fog/Mist | Showers Snow Fog/Mist | Light Showers Snow Fog/Mist | Heavy Showers Snow Fog/Mist | Snow Fog | Light Snow Fog | Heavy Snow Fog | Snow Showers Fog | Light Snow Showers Fog | Heavy Snow Showers Fog | Showers Snow Fog | Light Showers Snow Fog | Heavy Showers Snow Fog | Showers in Vicinity Snow | Snow Showers in Vicinity | Snow Showers in Vicinity Fog/Mist | Snow Showers in Vicinity Fog | Low Drifting Snow | Blowing Snow | Snow Low Drifting Snow | Snow Blowing Snow | Light Snow Low Drifting Snow | Light Snow Blowing Snow | Heavy Snow Low Drifting Snow | Heavy Snow Blowing Snow | Thunderstorm Snow | Light Thunderstorm Snow | Heavy Thunderstorm Snow | Snow Grains | Light Snow Grains | Heavy Snow Grains | Heavy Blowing Snow | Blowing Snow in Vicinity"; - $retVal['wind']="Windy | Fair and Windy | A Few Clouds and Windy | Partly Cloudy and Windy | Mostly Cloudy and Windy | Overcast and Windy"; - $retVal['hi_shwrs']="Showers in Vicinity | Showers in Vicinity Fog/Mist | Showers in Vicinity Fog | Showers in Vicinity Haze"; - $retVal['fzrara']="Freezing Rain Rain | Light Freezing Rain Rain | Heavy Freezing Rain Rain | Rain Freezing Rain | Light Rain Freezing Rain | Heavy Rain Freezing Rain | Freezing Drizzle Rain | Light Freezing Drizzle Rain | Heavy Freezing Drizzle Rain | Rain Freezing Drizzle | Light Rain Freezing Drizzle | Heavy Rain Freezing Drizzle"; - $retVal['hi_tsra']="Thunderstorm in Vicinity | Thunderstorm in Vicinity Fog/Mist | Thunderstorm in Vicinity Fog | Thunderstorm Haze in Vicinity | Thunderstorm in Vicinity Haze"; - $retVal['ra1']="Light Rain | Drizzle | Light Drizzle | Heavy Drizzle | Light Rain Fog/Mist | Drizzle Fog/Mist | Light Drizzle Fog/Mist | Heavy Drizzle Fog/Mist | Light Rain Fog | Drizzle Fog | Light Drizzle Fog | Heavy Drizzle Fog"; - $retVal['ra']="Rain | Heavy Rain | Rain Fog/Mist | Heavy Rain Fog/Mist | Rain Fog | Heavy Rain Fog"; - $retVal['nsvrtsra']="Funnel Cloud | Funnel Cloud in Vicinity | Tornado/Water Spout"; - $retVal['dust']="Dust | Low Drifting Dust | Blowing Dust | Sand | Blowing Sand | Low Drifting Sand | Dust/Sand Whirls | Dust/Sand Whirls in Vicinity | Dust Storm | Heavy Dust Storm | Dust Storm in Vicinity | Sand Storm | Heavy Sand Storm | Sand Storm in Vicinity"; - $retVal['mist']="Haze"; - return $retVal; -} - ?> diff --git a/curtemp/test.php b/curtemp/test.php new file mode 100644 index 000000000..cd51c23c2 --- /dev/null +++ b/curtemp/test.php @@ -0,0 +1,5 @@ + Date: Mon, 11 Feb 2013 05:44:12 -0500 Subject: [PATCH 12/19] added infor for user to find station location code --- curtemp.tgz | Bin 30720 -> 30720 bytes curtemp/curtemp.php | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/curtemp.tgz b/curtemp.tgz index 36f1230e9a6389791631b7bebe228bc5a8428f3d..3281dbf705219772bf96cf7aa19d81d84cbc88e2 100644 GIT binary patch delta 688 zcmb7>K}!Nb6vx*^W5Esv9!$a>Lf4&LS6zrr@DgP za~c{nVmlM;k0OZ$fF?MXPX|ZYB*zcgxB1@pcCPC>+P0ljuR9u8zuOu2Q`5T?a()`_qFbrZm|*n< z0c+Y#L=VG2kltDK-=O9f>5rhK+EPP_hj7dEP#Av{j~6G!SAAaM`Hh{&lTsyTHFxdg frEGYyq4&3?dL?J?mSzijTl#Mr>dn8Co%(8%17LBVvgA!7

mznk%9t4Nq%1CL_rxA5Iy;0z~xCn`P?vLfb`_5AUReu69xqXyt+1p2rx|+V2a1; z5_4l?L%2(f49tNpF*X6Y1izV+SgI$Bu=?sMIF^=VFind the location code for the station or airport nearest you at http://en.wikipedia.org/wiki/International_Air_Transport_Association_airport_code * Version: 1.0 * Author: Tony Baldwin - * Author: Fabio Comuni * */ require_once('addon/curtemp/getweather.php'); @@ -83,6 +82,7 @@ function curtemp_plugin_settings(&$a,&$s) { $s .= '

'; $s .= '

' . t('Current Temp Settings') . '

'; $s .= '
'; + $s .= '

Find the location code for the airport/weather station nearest you here.

'; $s .= ''; $s .= ''; $s .= '
'; From 02b04541e722bebe193601b0d5db52e4e4d977b2 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 10:30:14 -0500 Subject: [PATCH 13/19] fixed so data appear without quote marks --- curtemp.tgz | Bin 30720 -> 30720 bytes curtemp/curtemp.php | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/curtemp.tgz b/curtemp.tgz index 3281dbf705219772bf96cf7aa19d81d84cbc88e2..2944ad4ded8548f84e1e983ecf04e3a271057d3c 100644 GIT binary patch delta 139 zcmZqpz}WDCaRUd_W)6`bu9KMZ^$g8T4Hygz3}7^nX49M! Li

'.t("Current Temp").'

'; - $curtemp .= 'Weather: "' . $weather . '"
- Temperature: "' . $temp . '"'; + $curtemp .= "Weather: $weather
+ Temperature: $temp "; $curtemp .= '
'; From f1a2214eb9c30a52141e3eff0112e493bd425016 Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 12:30:24 -0500 Subject: [PATCH 14/19] added Fabio to author, made station links open in a new tab/window --- curtemp/curtemp.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/curtemp/curtemp.php b/curtemp/curtemp.php index ea09c9b39..36d5fdd61 100644 --- a/curtemp/curtemp.php +++ b/curtemp/curtemp.php @@ -1,9 +1,10 @@ Find the location code for the station or airport nearest you at http://en.wikipedia.org/wiki/International_Air_Transport_Association_airport_code + * Description: Shows current temperature for user's location on their network page.
Find the location code for the station or airport nearest you here. * Version: 1.0 - * Author: Tony Baldwin + * Author: Tony Baldwin + * Author: Fabio Comuni * */ require_once('addon/curtemp/getweather.php'); @@ -82,7 +83,7 @@ function curtemp_plugin_settings(&$a,&$s) { $s .= '
'; $s .= '

' . t('Current Temp Settings') . '

'; $s .= '
'; - $s .= '

Find the location code for the airport/weather station nearest you here.

'; + $s .= '

Find the location code for the airport/weather station nearest you here.

'; $s .= ''; $s .= ''; $s .= '
'; From 8a797d3b2f3c3c6b488a7479ff457ff6d7bdddeb Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 12:31:28 -0500 Subject: [PATCH 15/19] updated tarball (forgot on last commit) --- curtemp.tgz | Bin 30720 -> 30720 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/curtemp.tgz b/curtemp.tgz index 2944ad4ded8548f84e1e983ecf04e3a271057d3c..d254640b1ab1e6ea01f0ba80789244a56f1c06eb 100644 GIT binary patch delta 354 zcmZqpz}WDCaYDYHp}DC6gMonoj0Q5nfWgqn(7?>d$kfQxkio#v(8%1BLBVvgA!Ev9 zM$i9~9P%gUdx%VKb`WJXGht9LfJtm}5@4Dv;87%PXkch;f@X-Z30&=FM$i3>lh=kt zODU8j7Nw__*eb;*LXDEsBx>0A~kle*gdg delta 358 zcmZqpz}WDCaYDYH0T3{N2q1vbV78%=p@Es9iK(%%IfH?rp^>pEgM#T~L&g-I(&CcD zA_WD8qWt`liGngLAbN5m%jHQ@`P@jxOsK{iP%yx&Ym*Fz&14RybX2WOa;%1g zwXz5>O%{lVN7WiZjMha_Oq1A}qz%l?O$`{pUNtf>H#9c_deztz7!nXiZ)RlQ&&Zru zqA*!XG;p#hrT KY(5ZGA_D--9%H5e From 6ec3a4059a006d3ccac798e4d41b91a2f712799c Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 12:49:19 -0500 Subject: [PATCH 16/19] added more weather data, change curtemp to curweather --- curtemp/curtemp.php | 102 ----------------- curtemp.tgz => curweather.tgz | Bin 30720 -> 30720 bytes .../curtemp.css => curweather/curweather.css | 0 curweather/curweather.php | 106 ++++++++++++++++++ {curtemp => curweather}/getweather.php | 0 {curtemp => curweather}/test.php | 0 6 files changed, 106 insertions(+), 102 deletions(-) delete mode 100644 curtemp/curtemp.php rename curtemp.tgz => curweather.tgz (85%) rename curtemp/curtemp.css => curweather/curweather.css (100%) create mode 100644 curweather/curweather.php rename {curtemp => curweather}/getweather.php (100%) rename {curtemp => curweather}/test.php (100%) diff --git a/curtemp/curtemp.php b/curtemp/curtemp.php deleted file mode 100644 index 36d5fdd61..000000000 --- a/curtemp/curtemp.php +++ /dev/null @@ -1,102 +0,0 @@ - Find the location code for the station or airport nearest you here. - * Version: 1.0 - * Author: Tony Baldwin - * Author: Fabio Comuni - * - */ -require_once('addon/curtemp/getweather.php'); - -function curtemp_install() { - register_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); - register_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); - register_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); - -} - -function curtemp_uninstall() { - unregister_hook('network_mod_init', 'addon/curtemp/curtemp.php', 'curtemp_network_mod_init'); - unregister_hook('plugin_settings', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings'); - unregister_hook('plugin_settings_post', 'addon/curtemp/curtemp.php', 'curtemp_plugin_settings_post'); - -} - - -function curtemp_network_mod_init(&$fk_app,&$b) { - - if(! intval(get_pconfig(local_user(),'curtemp','curtemp_enable'))) - return; - - $fk_app->page['htmlhead'] .= '' . "\r\n"; - - // the getweather file does all the work here - // the $rpt value is needed for location - // which getweather uses to fetch the weather data for weather and temp - $rpt = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); - $wxdata = GetWeather::get($rpt); - $temp = $wxdata['TEMPERATURE_STRING']; - $weather = $wxdata['WEATHER']; - $curtemp = '
-
-

'.t("Current Temp").'

'; - - $curtemp .= "Weather: $weather
- Temperature: $temp "; - - $curtemp .= '
'; - - $fk_app->page['aside'] = $curtemp.$fk_app->page['aside']; - -} - - -function curtemp_plugin_settings_post($a,$post) { - if(! local_user() || (! x($_POST,'curtemp-settings-submit'))) - return; - set_pconfig(local_user(),'curtemp','curtemp_loc',trim($_POST['curtemp_loc'])); - set_pconfig(local_user(),'curtemp','curtemp_enable',intval($_POST['curtemp_enable'])); - - info( t('Current Temp settings updated.') . EOL); -} - - -function curtemp_plugin_settings(&$a,&$s) { - - if(! local_user()) - return; - - /* Add our stylesheet to the curtemp so we can make our settings look nice */ - - $a->page['htmlhead'] .= '' . "\r\n"; - - /* Get the current state of our config variable */ - - $curtemp_loc = get_pconfig(local_user(), 'curtemp', 'curtemp_loc'); - $enable = intval(get_pconfig(local_user(),'curtemp','curtemp_enable')); - $enable_checked = (($enable) ? ' checked="checked" ' : ''); - - - /* Add some HTML to the existing form */ - - $s .= '
'; - $s .= '

' . t('Current Temp Settings') . '

'; - $s .= '
'; - $s .= '

Find the location code for the airport/weather station nearest you here.

'; - $s .= ''; - $s .= ''; - $s .= '
'; - $s .= ''; - $s .= ''; - $s .= '
'; - - $s .= '
'; - - /* provide a submit button */ - - $s .= '
'; - -} - - diff --git a/curtemp.tgz b/curweather.tgz similarity index 85% rename from curtemp.tgz rename to curweather.tgz index d254640b1ab1e6ea01f0ba80789244a56f1c06eb..ce8b12be28365b92e7f8a0b2825bd9d0fb8e7c32 100644 GIT binary patch delta 1715 zcma)5OK%cU7zIiS3|OGFR4I)&6XNt;pghtCO`1wtd=-I~K2l){({vKbkm1sYCR*1< zW4*D7u4)(VjEUWKReym|S1wH4xHG0J7cPu@|%-P|wVJ#)VEodcVP>diy7F;n8# z7#c1!eBaia*#S2`LBC%m-1r>7%RP_R;|_Se!G5<-<@R`jUat!Hkw=|1m5Pw&0Z{QA z2e+(Ft#G5q+OLE%1?e1fc7Z0~!(Ug9c%%D{w)y}b3f$+ieQ?$dntGCHQq{+`@i5{`Wh z1XM@;^#wfsi-x_>JN3y*iU3jitI|#&!{xIqWVw8C@2>v2S|{#`ej0#W8;C*INe_Ap z%LS?%P|6Ny$7n~8=&B98PlRg&rcG_OrBXg4s03Bh#*HJj5$qVpY6Jc=j@JfEn>uB8 zo|&ReqB~S~wHv=oFD09WbR}n>Ui#ZC6w>3J#^zBQVN zOovkwQ@116BZ*mRVTb_uxC%T|ES7kt8Xb*=exmASP|R0?`SfE4?KSeuCWWbRB1FY=&ogfJLDjLFfEU1h+8 zumcM>FtW0bf{BWn@slK<93m?FC}I#{iO2>gEsEJ`Q!{#P>6hO=TS5b(m?P$=a$JV$ zhCI8{?n*@`DkXeT$$kQvhR`My+fK@tI!fk=grM#i2 zed4A>$K>h79CMbK%B!p=Tn2-&63;Vv2qbym?3BE!wuO}I&XzAyy?a@+cQE(X@gMng BIx+wN delta 1368 zcmZqpz}WDCkt4aZs3bMFK!4)G7)t{nFgG=208)nLrUu9~ND2fP42=v8%#4gojZ6(0 z3=9p8%uN{-OeY&Mrtp*&mn0S`C@_@d=T%M=lwkqUlRw&BW`|lanad$cl7Rtas)3n_ z39{)x+a^~z$gmrko0%{u7~nN-lM^!&57@~tbNL+-^su#l;RO<|=9GsoUshnAq9q1C`jRTXS(K0D%fjub!=fQg~`&Nk(dsm4Zq+ zgrzXKD@aRFK?zOqWR74@h^r%lwIB?8U(w0)f{h`Z8^N|3sD6ph$xl|-DJja#)li8K z@DC1&hWpYjL_-%%acW*-QckM6PG(+7Sz-=`jwK-qEFdpUJ{_V9vG9LLEQFC9It@L@ z)FvB-S#f}D06AjvjsQiBFkBO6jvn^k!*)UJ*b%M`G5S^bH!F}Sx zJsiO{LBav6JrF6lRj%L=Qvlis%0OTXwW8D^7DhxVK^Toum%xn0QPE6@5`+nF3Bn}H sW@t*d0AXRa5db+^ADW!>l8cKc3I>YdDwtek*oi4O7P&Dkz7Q<~0N!)O!2kdN diff --git a/curtemp/curtemp.css b/curweather/curweather.css similarity index 100% rename from curtemp/curtemp.css rename to curweather/curweather.css diff --git a/curweather/curweather.php b/curweather/curweather.php new file mode 100644 index 000000000..77f3bf800 --- /dev/null +++ b/curweather/curweather.php @@ -0,0 +1,106 @@ + Find the location code for the station or airport nearest you here. + * Version: 1.0 + * Author: Tony Baldwin + * Author: Fabio Comuni + * + */ +require_once('addon/curweather/getweather.php'); + +function curweather_install() { + register_hook('network_mod_init', 'addon/curweather/curweather.php', 'curweather_network_mod_init'); + register_hook('plugin_settings', 'addon/curweather/curweather.php', 'curweather_plugin_settings'); + register_hook('plugin_settings_post', 'addon/curweather/curweather.php', 'curweather_plugin_settings_post'); + +} + +function curweather_uninstall() { + unregister_hook('network_mod_init', 'addon/curweather/curweather.php', 'curweather_network_mod_init'); + unregister_hook('plugin_settings', 'addon/curweather/curweather.php', 'curweather_plugin_settings'); + unregister_hook('plugin_settings_post', 'addon/curweather/curweather.php', 'curweather_plugin_settings_post'); + +} + + +function curweather_network_mod_init(&$fk_app,&$b) { + + if(! intval(get_pconfig(local_user(),'curweather','curweather_enable'))) + return; + + $fk_app->page['htmlhead'] .= '' . "\r\n"; + + // the getweather file does all the work here + // the $rpt value is needed for location + // which getweather uses to fetch the weather data for weather and temp + $rpt = get_pconfig(local_user(), 'curweather', 'curweather_loc'); + $wxdata = GetWeather::get($rpt); + $temp = $wxdata['TEMPERATURE_STRING']; + $weather = $wxdata['WEATHER']; + $rhumid = $wxdata['RELATIVE_HUMIDITY']; + $pressure = $wxdata['PRESSURE_STRING']; + $curweather = '
+
+

'.t("Current Weather").'

'; + + $curweather .= "Weather: $weather
+ Temperature: $temp
+ Relative Humidity: $rhumid
+ Pressure: $pressure"; + + $curweather .= '
'; + + $fk_app->page['aside'] = $curweather.$fk_app->page['aside']; + +} + + +function curweather_plugin_settings_post($a,$post) { + if(! local_user() || (! x($_POST,'curweather-settings-submit'))) + return; + set_pconfig(local_user(),'curweather','curweather_loc',trim($_POST['curweather_loc'])); + set_pconfig(local_user(),'curweather','curweather_enable',intval($_POST['curweather_enable'])); + + info( t('Current Weather settings updated.') . EOL); +} + + +function curweather_plugin_settings(&$a,&$s) { + + if(! local_user()) + return; + + /* Add our stylesheet to the curweather so we can make our settings look nice */ + + $a->page['htmlhead'] .= '' . "\r\n"; + + /* Get the current state of our config variable */ + + $curweather_loc = get_pconfig(local_user(), 'curweather', 'curweather_loc'); + $enable = intval(get_pconfig(local_user(),'curweather','curweather_enable')); + $enable_checked = (($enable) ? ' checked="checked" ' : ''); + + + /* Add some HTML to the existing form */ + + $s .= '
'; + $s .= '

' . t('Current Weather Settings') . '

'; + $s .= '
'; + $s .= '

Find the location code for the airport/weather station nearest you here.

'; + $s .= ''; + $s .= ''; + $s .= '
'; + $s .= ''; + $s .= ''; + $s .= '
'; + + $s .= '
'; + + /* provide a submit button */ + + $s .= '
'; + +} + + diff --git a/curtemp/getweather.php b/curweather/getweather.php similarity index 100% rename from curtemp/getweather.php rename to curweather/getweather.php diff --git a/curtemp/test.php b/curweather/test.php similarity index 100% rename from curtemp/test.php rename to curweather/test.php From a0a918369c89477dc8ad390ddd1304b68f8b4d5f Mon Sep 17 00:00:00 2001 From: tony baldwin Date: Mon, 11 Feb 2013 17:10:37 -0500 Subject: [PATCH 17/19] added wind data --- curweather.tgz | Bin 30720 -> 30720 bytes curweather/curweather.php | 4 +++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/curweather.tgz b/curweather.tgz index ce8b12be28365b92e7f8a0b2825bd9d0fb8e7c32..76e0646c896c592bdd895eeba7ea3c06cc46069e 100644 GIT binary patch delta 391 zcmZqpz}WDCaYDYHp}DC6gMonoj0Q5nfWgqn(7?>d%*@chh{3?n(A>mznk%9t4Nq%1CL_rxA5Iy;$-Q`IR`P?vLfb`@l2RT+#GX@0%yt+0y>}lvc_|9E3M%ClDTyVC(dyxzelDB01==%; u+9VYz=-Y8|aw>!a)mQOou~~c}S_S|$FmMh4 delta 348 zcmZqpz}WDCaYDYH0T3{N2q1vbV78%=p@Er^k-4#f34?*5p}CO}gM#T~L&g-I(&CcD zA_WD8qWt`liGngLAbN5m%jHRO`P@jxOs
'; @@ -47,7 +48,8 @@ function curweather_network_mod_init(&$fk_app,&$b) { $curweather .= "Weather: $weather
Temperature: $temp
Relative Humidity: $rhumid
- Pressure: $pressure"; + Pressure: $pressure
+ Wind: $wind"; $curweather .= '
'; From 8e6d1d8f8be6480f0816c7dc04b8a9ff5ad1670d Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 16 Feb 2013 09:15:08 +0100 Subject: [PATCH 18/19] SN import from timeline, check if there are posting before the foreach loop --- statusnet/statusnet.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/statusnet/statusnet.php b/statusnet/statusnet.php index f3678c805..393bbfe53 100755 --- a/statusnet/statusnet.php +++ b/statusnet/statusnet.php @@ -808,7 +808,8 @@ function statusnet_fetchtimeline($a, $uid) { $items = $connection->get('statuses/user_timeline', $parameters); $posts = array_reverse($items); - foreach ($posts as $post) { + if (count($posts)) { + foreach ($posts as $post) { if ($post->id > $lastid) $lastid = $post->id; @@ -852,7 +853,8 @@ function statusnet_fetchtimeline($a, $uid) { require_once('mod/item.php'); item_post($a); } - } + } + } } set_pconfig($uid, 'statusnet', 'lastid', $lastid); } From e5499d75db18cd93d1f4c8db5ecf9298e3ec255c Mon Sep 17 00:00:00 2001 From: Tobias Diekershoff Date: Sat, 16 Feb 2013 09:20:02 +0100 Subject: [PATCH 19/19] Twitter import from timeline, check if there are posting before the foreach loop --- twitter/twitter.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/twitter/twitter.php b/twitter/twitter.php index 0452db603..808768f83 100755 --- a/twitter/twitter.php +++ b/twitter/twitter.php @@ -615,7 +615,8 @@ function twitter_fetchtimeline($a, $uid) { $items = $connection->get('statuses/user_timeline', $parameters); $posts = array_reverse($items); - foreach ($posts as $post) { + if (count($posts)) { + foreach ($posts as $post) { if ($post->id_str > $lastid) $lastid = $post->id_str; @@ -652,7 +653,8 @@ function twitter_fetchtimeline($a, $uid) { require_once('mod/item.php'); item_post($a); - } + } + } } set_pconfig($uid, 'twitter', 'lastid', $lastid); }