Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
vB Weather Mk. 2 Details »»
vB Weather Mk. 2
Version: 1.00, by JJR512 JJR512 is offline
Developer Last Online: Jun 2006 Show Printable Version Email this Page

Version: 2.2.x Rating:
Released: 08-02-2002 Last Update: Never Installs: 59
 
No support by the author.

This is a post of a much-revised hack originally posted (by myself) here. I am posting this as a new hack because MSNBC, who the raw weather data is provided through, has changed their source provider (from AccuWeather to The Weather Channel), which required a retooling of the data parsing code, as well as completely new databases. I have also made obsolete the weather_functions.php file, moving the functions to admin/functions.php, simplifying the ability to show current weather data on any page (if desired). Finally, in what I'm sure will be welcome news to many people who have installed the original, I've completely rewritten the instructions, making them, as far as I can tell, much simpler.

If you are unfamiliar with the original: This hack provides current weather conditions and a five-day forecast to your members. Each member can select from over 34,000 cities, by narrowing down from region (like continents), country, and subdivision (like states). Each member can also select to see temperatures in Fahrenheit or Celsius, as well as metric or standard measurements for the other data.

A demo is available on my test board: http://www.jjr512.com/testboard/. I have set up an account for anyone to use to test it out (username: test; pw: test). If you are not logged in, you will see default weather on the home page (default is set to New York City), and cannot change settings (I forget if you can view a detailed forecast, though; you may be able to). If you do log in, you can change the settings for the test account, to see how it works.

***
If you have installed any previous version, you should completely uninstall it. Read the instructions and work backwards from there: Delete all templates added, remove changes to any existing templates (I forget if there were any or not), delete all new tables from the database, delete all new files added by the old hack. All have been changed to some extent, some more than others, and it would be easier to work from a clean slate. Especially since some of the template names have changes, so if you don't delete the old ones, they'll just be sitting there doing nothing at all. It is also vitally important to delete (or "drop") the tables--I believe there were six--you added for the original version. The new ones have different data and, for some, a different structure, so do not just empty them. Remove them totally.

Good luck!

Change Log
v1.1a: Current Version: Corrects a small error where an incorrect variable was used in the code to show the local time of the last update. If you already have v1.1, you only need to do the fix described in Post #82 below.
v1.1: Changes display of last update time to be the correct time in the user's own local time zone; previously, it was always Eastern Time (GMT-5) (Upgrade instructions are in Post #79 below). Also breaks the weather_city.sql into six smaller pieces (useful only to new installations; existing installations need not worry about this).
v1.0a: Adds instructions on how to add location to current weather on forums home page (changes to code added to index.php and forumhome_weather template).
v1.0: Original Release

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #392  
Old 08-29-2003, 10:17 AM
dvdweb dvdweb is offline
 
Join Date: Mar 2003
Posts: 2
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I've just noticed that whenever you change your settings it always works, but after that it just falls over again
Reply With Quote
  #393  
Old 09-05-2003, 08:51 AM
MaDCaT75 MaDCaT75 is offline
 
Join Date: Jul 2003
Location: Southern California
Posts: 718
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

This hack is pretty good
Reply With Quote
  #394  
Old 09-06-2003, 10:53 AM
translucent translucent is offline
 
Join Date: Apr 2002
Posts: 9
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

While it worked intermittently before, I'm suddenly getting the following error:

Warning: fsockopen(): php_hostconnect: connect failed in /home/u1/translucent/html/board/weather.php on line 32

Warning: fsockopen(): unable to connect to www.msnbc.com:80 in /home/u1/translucent/html/board/weather.php on line 32
Reply With Quote
  #395  
Old 09-06-2003, 10:52 PM
MaDCaT75 MaDCaT75 is offline
 
Join Date: Jul 2003
Location: Southern California
Posts: 718
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That usually happens to me but only once in a while
Reply With Quote
  #396  
Old 09-26-2003, 03:21 AM
patriciafrankie patriciafrankie is offline
 
Join Date: Sep 2003
Location: Ontario Canada
Posts: 13
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Could someone help me with the create_table part, please?

Thanks,
Patricia
Reply With Quote
  #397  
Old 10-27-2003, 06:20 PM
joeydood joeydood is offline
 
Join Date: Sep 2003
Posts: 30
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

hate to beat my own drum here but i guess i can, what the heck...

i think this is a lotta trouble to go thru. i wanted and needed weather for my motorcycle riding members so here's what i did:

1. changed the description of the 'location' user field to let them know that it was also used for their weather.

2. jacked yahoo's form for weather

3. threw a button on the top of my forum that yanks the member's 'location' field and passes it to the yahoo form.

bam you have member-specific weather. when they open the forum there's a button on the top called YOUR WEATHER with their location written in the form in the html already for them.

and yes, if some dumbass puts 'playboy mansion' or 'third ring of saturn' for their location, it will return the yahoo weather home page.

and yes, you could use the weather form from any site like www.noaa.com so long as they don't check the originating ip in their server-side script.
Reply With Quote
  #398  
Old 12-18-2003, 02:34 AM
mlevenson mlevenson is offline
 
Join Date: Apr 2003
Posts: 24
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

well as much as I like this hack I can't deal with the delay of the index.php file being loaded. I think I'm going to take Joey's idea with what he did with his weather. Since he and I have the same needs
Reply With Quote
  #399  
Old 12-22-2003, 04:13 AM
CtrlAltDel CtrlAltDel is offline
 
Join Date: Feb 2002
Location: Ohio
Posts: 107
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

this hack fails terribly most of the time

the weather.php page just hangs like crazy, rarely loads at all. the integrated version with the portal does the same thing...no error messages, it just sits at about half loaded and never works. i can go to the page page in the source manually, but i feel that the method that its being opened is the wrong way to go about it. i'll have to check into other ways of pulling the data because the current way just doesnt work enough of the time.
Reply With Quote
  #400  
Old 01-02-2004, 07:05 AM
AutomatikStudio's Avatar
AutomatikStudio AutomatikStudio is offline
 
Join Date: Dec 2003
Posts: 229
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I'm gonna go with the last few posts and say that this hack is usless to me as index.php and weather.php just hang for about 5 min. and then time out.
Reply With Quote
  #401  
Old 01-02-2004, 08:01 AM
MaDCaT75 MaDCaT75 is offline
 
Join Date: Jul 2003
Location: Southern California
Posts: 718
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

oh well he tried
Reply With Quote
  #402  
Old 01-08-2004, 04:44 PM
replicon replicon is offline
 
Join Date: Apr 2002
Posts: 5
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Wow. I didn't think there were so many people having problems with this. I have a fix for pretty much everything that's mentioned in this thread, lag, weather not working, blank page... . Here's the technical description of what happened and why.

I stumbled upon the lag issue on the main page a few months back. It was fairly rare, approx. 5% of the hits to the main page which had the weather it would basically hang php completely affecting all the PHP pages on the server anytime someone checked the weather or hit the main page. It progressively got worse and worse. Like most of you guys, I took out the weather from the main page as a quick fix.

I pulled up a network sniffer to see what was going on between PHP and msnbc (which hosts the weather component). I noticed that sometimes it'd hit an IIS5 server, and sometimes, it'd hit an IIS6 server, which would hang the page. Looks like they were slowly rolling out Windows 2003 servers to their msnbc web server clusters, and whenver PHP requests the weather from the component and it (randomly) went to an upgraded IIS6/Win2K3 server, it'd hang.

Used my browser (IE) to hit the weather component page, and sniffed those packets. Works fine on IIS5 and IIS6. Compared the packets and noticed the difference. The vbWeather script was terminiating the request with 2 LF's (\n). IE terminated the requests with 2 CRLF's (\r\n). The HTTP standard defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body. Meaning there was a bug in the weather.php code, which was allowed in IIS5, but because IIS6 is much stricter in RFC compliance, it sat there waiting for a proper end of line, which it never receives, so it just hangs there and does nothing.

OK there's the geeky tech description. Here's the fix.

In all your php files that access the weather, replace the line:
Code:
fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");
with:
Code:
fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\r\n\r\n");
And your weather will be back up and running.

Here's the link to my site. Click F5 to refresh as much as you want, it'll never hang .

Beyond Car Forums

Enjoy.
Reply With Quote
  #403  
Old 01-08-2004, 05:39 PM
indiamike's Avatar
indiamike indiamike is offline
 
Join Date: Oct 2001
Location: New Jersey, India
Posts: 124
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Most excellent!!!!!


Thanks for the fix.
Reply With Quote
  #404  
Old 01-14-2004, 08:09 PM
Zhin Jio's Avatar
Zhin Jio Zhin Jio is offline
 
Join Date: Mar 2003
Location: Colorado
Posts: 36
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Instantaneous fix. Thank you so so much for posting that info. I don't have to ditch this very cool hack now.

- ZJ
Reply With Quote
  #405  
Old 01-21-2004, 12:24 AM
White Knight White Knight is offline
 
Join Date: Nov 2001
Posts: 85
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by replicon
Wow. I didn't think there were so many people having problems with this. I have a fix for pretty much everything that's mentioned in this thread, lag, weather not working, blank page... . Here's the technical description of what happened and why.

I stumbled upon the lag issue on the main page a few months back. It was fairly rare, approx. 5% of the hits to the main page which had the weather it would basically hang php completely affecting all the PHP pages on the server anytime someone checked the weather or hit the main page. It progressively got worse and worse. Like most of you guys, I took out the weather from the main page as a quick fix.

I pulled up a network sniffer to see what was going on between PHP and msnbc (which hosts the weather component). I noticed that sometimes it'd hit an IIS5 server, and sometimes, it'd hit an IIS6 server, which would hang the page. Looks like they were slowly rolling out Windows 2003 servers to their msnbc web server clusters, and whenver PHP requests the weather from the component and it (randomly) went to an upgraded IIS6/Win2K3 server, it'd hang.

Used my browser (IE) to hit the weather component page, and sniffed those packets. Works fine on IIS5 and IIS6. Compared the packets and noticed the difference. The vbWeather script was terminiating the request with 2 LF's (\n). IE terminated the requests with 2 CRLF's (\r\n). The HTTP standard defines the sequence CR LF as the end-of-line marker for all protocol elements except the entity-body. Meaning there was a bug in the weather.php code, which was allowed in IIS5, but because IIS6 is much stricter in RFC compliance, it sat there waiting for a proper end of line, which it never receives, so it just hangs there and does nothing.

OK there's the geeky tech description. Here's the fix.

In all your php files that access the weather, replace the line:
Code:
fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");
with:
Code:
fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\r\n\r\n");
And your weather will be back up and running.

Here's the link to my site. Click F5 to refresh as much as you want, it'll never hang .

Beyond Car Forums

Enjoy.
Great Job! Works very well!
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 05:57 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.09860 seconds
  • Memory Usage 2,361KB
  • Queries Executed 29 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (4)bbcode_code
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (2)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (15)post_thanks_box
  • (15)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (15)post_thanks_postbit_info
  • (14)postbit
  • (15)postbit_onlinestatus
  • (15)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete