Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 2.x > vBulletin 2.x Full Releases

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
  #302  
Old 03-23-2003, 10:07 PM
scottct1 scottct1 is offline
 
Join Date: Mar 2002
Location: Connecticut
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My weather.php is the standard one. In my home.php (or index.php I have modified it as shown below)

Code:
// put weather here
// BEGIN WEATHER HACK
// ###################### Get Weather #######################
if ($weatherpage!=1 or !isset($weatherpage)) {

 $usersettings = $DB_site->query_first("SELECT * FROM weather_usersettings WHERE userid=$bbuserinfo[userid]");
 if (!isset($usersettings[userid])) {
 $usersettings[accid] = "USTX1200";
 $usersettings[tpc] = "1";
 $usersettings[tps] = "1";
 $DB_site->query("INSERT INTO weather_usersettings (userid,accid,tpc,tps) VALUES ('$bbuserinfo[userid]','$usersettings[accid]','$usersettings[tpc]','$usersettings[tps]')");
 }

 $userdata = $DB_site->query_first("SELECT * FROM weather_userdata WHERE userid=$bbuserinfo[userid]");
 $datecut = $userdata[time];
 if ((time()-3600)>$datecut or $forceupdate=="yes") {
 $rawdata = fsockopen("207.46.245.60",80,$num_error,$str_error,30);
 if(!$rawdata) {
 $weather[error_num] = $num_error;
 $weather[error_str] = $str_error;
 } else {
 fputs($rawdata,"GET /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");

 while (!feof($rawdata)) {
 $getbit = fgets($rawdata,4096);
 $getbit = trim($getbit)."\n";
 if (substr($getbit,7,4) == "City") {
 $weather[city] = substr($getbit,15,40);
 $weather[city] = substr($weather[city],0,strlen($weather[city])-3);
 }
 if (substr($getbit,7,6) == "SubDiv") {
 $weather[subdiv] = substr($getbit,17,20);
 $weather[subdiv] = substr($weather[subdiv],0,strlen($weather[subdiv])-3);
 }
 if (substr($getbit,7,7) == "Country") {
 $weather[country] = substr($getbit,18,20);
 $weather[country] = substr($weather[country],0,strlen($weather[country])-3);
 }
 if (substr($getbit,7,5) == "Temp ") {
 $weather[temp] = substr($getbit,15,20);
 $weather[temp] = substr($weather[temp],0,strlen($weather[temp])-3);
 }
 if (substr($getbit,7,5) == "CIcon") {
 $weather[cicon] = substr($getbit,16,20);
 $weather[cicon] = substr($weather[cicon],0,strlen($weather[cicon])-3);
 }
 if (substr($getbit,7,5) == "WindS") {
 $weather[wind_spd] = substr($getbit,16,20);
 $weather[wind_spd] = substr($weather[wind_spd],0,strlen($weather[wind_spd])-3);
 }
 if (substr($getbit,7,5) == "WindD") {
 $weather[wind_dir] = substr($getbit,16,20);
 $weather[wind_dir] = substr($weather[wind_dir],0,strlen($weather[wind_dir])-3);
 }
 if (substr($getbit,7,4) == "Baro") {
 $weather[barometer] = substr($getbit,15,20);
 $weather[barometer] = substr($weather[barometer],0,strlen($weather[barometer])-3);
 }
 if (substr($getbit,7,5) == "Humid") {
 $weather[humidity] = substr($getbit,16,20);
 $weather[humidity] = substr($weather[humidity],0,strlen($weather[humidity])-3);
 }
 if (substr($getbit,7,4) == "Real") {
 $weather[realfeel] = substr($getbit,15,20);
 $weather[realfeel] = substr($weather[realfeel],0,strlen($weather[realfeel])-3);
 }
 if (substr($getbit,7,6) == "LastUp") {
 $weather[lastup] = substr($getbit,17,25);
 $weather[lastup] = substr($weather[lastup],0,strlen($weather[lastup])-3);
 }
 if (substr($getbit,7,7) == "ConText") {
 $weather[context] = substr($getbit,18,25);
 $weather[context] = substr($weather[context],0,strlen($weather[context])-3);
 }
 }

 // Location Info
 $weatherdata[city] = $weather[city];
 $weatherdata[subdiv] = $weather[subdiv];
 $weatherdata[country] = $weather[country];

 // Current Conditions
 $weatherdata[temp] = convert_temp($weather[temp],$usersettings[tpc]);
 $weatherdata[cicon] = $weather[cicon];
 $weatherdata[wind_dir] = $weather[wind_dir];
 $weatherdata[wind_spd] = convert_speed($weather[wind_spd],$usersettings[tps]);
 $weatherdata[barometer] = convert_press($weather[barometer],$usersettings[tps]);
 $weatherdata[humidity] = $weather[humidity];
 $weatherdata[realfeel] = convert_temp($weather[realfeel],$usersettings[tpc]);
 $weatherdata[lastup] = $weather[lastup];
 $weatherdata[context] = $weather[context];

 fclose($rawdata);
 }
 } else {
 $weatherdata = $DB_site->query_first("SELECT city,subdiv,country,temp,cicon,wind_dir,wind_spd,barometer,humidity,realfeel,lastup,context FROM weather_userdata WHERE userid=$bbuserinfo[userid]");
 }

 if ($weatherdata[subdiv]) {
 $weatherdata[showsubdiv] = "$weatherdata[subdiv], ";
 } else {
 $weatherdata[showsubdiv] = "";
 }

 eval("\$currentweather = \"".gettemplate("forumhome_weather")."\";");
 }


// END WEATHER HACK
Reply With Quote
  #303  
Old 03-23-2003, 10:17 PM
gopherhockey's Avatar
gopherhockey gopherhockey is offline
 
Join Date: Jul 2002
Posts: 202
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Hmmm.. code looks identical to mine (other than the default city) - I tried yours, still nothing.

Well... I guess I better just disable this thing until it gets repaired. :cry:
Reply With Quote
  #304  
Old 03-23-2003, 10:22 PM
gopherhockey's Avatar
gopherhockey gopherhockey is offline
 
Join Date: Jul 2002
Posts: 202
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Yesterday at 11:57 PM scottct1 said this in Post #297
Still working fine for me, my town is Newington, Connecticut. As a test I randomly selected other cities and all worked fine.

Below is a screen shot I just took of the weather working on my board.
Your site worked when I first came online, but the temp doesn't seem to change. I changed my weather city to be another one in Texas (other than your default San Antonio) - that broke your home page, then I changed it back to default and it was still broken. Strange.
Reply With Quote
  #305  
Old 03-23-2003, 10:49 PM
scottct1 scottct1 is offline
 
Join Date: Mar 2002
Location: Connecticut
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

It's almost like they are limiting connections per internet connection and since the server is always the same IP address it is only allowed one connection every x minutes.

I have been playing with the weather, and sometimes it shows up correctly on my front page, other times it does not.

I am seriously thinking that this is the reason why its not working corrctly anymore.
Reply With Quote
  #306  
Old 03-23-2003, 10:56 PM
scottct1 scottct1 is offline
 
Join Date: Mar 2002
Location: Connecticut
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

BTW fdor what its worth, the weather is NOT working on MSNBC's site as well, im wondering if they are cutting back the bandwith for weather so more people can get in for War news?
Reply With Quote
  #307  
Old 03-24-2003, 03:28 AM
ezdreamer ezdreamer is offline
 
Join Date: Nov 2001
Posts: 10
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here's a thought, not sure if this is possible, but what about getting the feed straight from the weather channel?
Reply With Quote
  #308  
Old 03-24-2003, 08:24 AM
lemarsu's Avatar
lemarsu lemarsu is offline
 
Join Date: Aug 2002
Location: .eu
Posts: 73
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ok,


It wasn't working for me as well but I have been looking around and have found a fix

just edit your weather.php from

Code:
      fputs($rawdata,"GET  /m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");
To read :

Code:
      fputs($rawdata,"GET  http://www.msnbc.com/m/chnk/d/weather_d_src.asp?acid=$usersettings[accid] HTTP/1.0\n\n");
But this is JJR512 baby, and I would like him to have a look at the problem, help us find a better fix.

I hope this helps everyone.

LeMarsu
Reply With Quote
  #309  
Old 03-24-2003, 12:10 PM
scottct1 scottct1 is offline
 
Join Date: Mar 2002
Location: Connecticut
Posts: 391
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

That fix worked for me.

Look I even get Minneapolis weather.
Reply With Quote
  #310  
Old 03-24-2003, 08:05 PM
mbaskett mbaskett is offline
 
Join Date: Jan 2002
Posts: 43
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I added the DNS name, and it worked for a bit, but I still noticed it's not working 100%
Reply With Quote
  #311  
Old 03-24-2003, 08:45 PM
Lionel Lionel is offline
 
Join Date: Dec 2001
Location: Delray Beach, Florida
Posts: 3,277
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

does not work for me
Reply With Quote
Reply

Thread Tools

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 07:22 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.05501 seconds
  • Memory Usage 2,311KB
  • Queries Executed 25 (?)
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
  • (3)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
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)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