]>
Commit | Line | Data |
---|---|---|
1 | <?php | |
2 | /******************** | |
3 | * Fuzzy Thermometer * | |
4 | * Ver 0.3 * | |
5 | * By Ben Beltran * | |
6 | *********************/ | |
7 | ||
8 | /****************************** | |
9 | * CHANGELOG * | |
10 | ******************************* | |
11 | * 0.1 -> Initial Release * | |
12 | * 0.2 -> Config options * | |
13 | * 0.3 -> Day and Night * | |
14 | *******************************/ | |
15 | ||
16 | ||
17 | /*Weather.com configuration | |
18 | ********************************/ | |
19 | $citycode = 'MXCA0026'; //Zip Code (US) or City code according to weather.com | |
20 | $partnerid = '1140062701'; //Partner ID | |
21 | $license = '5b323d77586070aa'; //License number | |
22 | ||
23 | /*Color Configuration | |
24 | ********************************/ | |
25 | $nightbackground = '#222'; //main colors. | |
26 | $daybackground = '#fff'; | |
27 | ||
28 | $daymaincolor = '#666'; | |
29 | $nightmaincolor = '#e1e1e1;'; | |
30 | ||
31 | $taglinecolor = '#999'; | |
32 | ||
33 | $coldcolor = '#78d6fd'; //Colors for each temperature. | |
34 | $coolcolor = '#1b95fb'; | |
35 | $temperatecolor = '#999'; | |
36 | $warmcolor = '#ff9226'; | |
37 | $hotcolor = '#ff1818'; | |
38 | ||
39 | /*Text Configuration | |
40 | *******************************/ | |
41 | $maintext = 'Juárez está:'; | |
42 | $title = '¿Cómo está el clima en Juárez?'; | |
43 | ||
44 | $coldstring = 'frio.'; //string for each temperature. | |
45 | $coolstring = 'fresco.'; | |
46 | $temperatestring = 'templado.'; | |
47 | $warmstring = 'cálido.'; | |
48 | $hotstring = 'caliente.'; | |
49 | ||
50 | $coldtagline = '(abrigate bien.)'; //tagline for each temperature. | |
51 | $cooltagline = '(perfecto para un saco.)'; | |
52 | $temperatetagline = '(ni fu ni fa.)'; | |
53 | $warmtagline = '(como para estar afuera.)'; | |
54 | $hottagline = '(hidrátate bien.)'; | |
55 | ||
56 | /*Temperature Configuration | |
57 | ******************************/ | |
58 | $coldlimit = 15; //How many degrees? (celsius) | |
59 | $coollimit = 20; | |
60 | $temperatelimit = 25; | |
61 | $warmlimit = 30; | |
62 | ||
63 | ||
64 | ||
65 | /****************************** | |
66 | * DANGER! DANGER! * | |
67 | ******************************* | |
68 | * Don't edit below this part * | |
69 | * unless you know what you're * | |
70 | * doing. * | |
71 | ******************************* | |
72 | * It's not that hard really. * | |
73 | * but it's better if we leave * | |
74 | * it like it is. Unless you * | |
75 | * like customizing the shit * | |
76 | * out of stuff. * | |
77 | *******************************/ | |
78 | ||
79 | ||
80 | $ch = curl_init('http://xoap.weather.com/weather/local/'.$citycode.'?cc=*&link=xoap&prod=xoap&par='.$partnerid.'&key='.$license.''); //Initialize curl. | |
81 | ||
82 | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); //More curl config | |
83 | curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 4); | |
84 | ||
85 | $data = curl_exec($ch); //this is your xml stuff | |
86 | curl_close($ch); | |
87 | ||
88 | $xml = new SimpleXmlElement($data, LIBXML_NOCDATA); //now let's make an XmlElement | |
89 | $feelslike = $xml->cc->flik; //This is the "Feel's Like temp" | |
90 | $sunset = date('G.i',strtotime($xml->loc->suns)); | |
91 | $sunrise = date('G.i',strtotime($xml->loc->sunr)); | |
92 | $now = date('G.i',time()-28800); | |
93 | $feelslike = ($feelslike -32)*5/9; //Convert fahrenheit to celsius. | |
94 | ||
95 | //now let's get the sponsored links. Stupid EULA. | |
96 | $sponsors = '<a href="'.$xml->lnks->link[0]->l.'">'.$xml->lnks->link[0]->t.'</a> · '; | |
97 | $sponsors .= '<a href="'.$xml->lnks->link[1]->l.'">'.$xml->lnks->link[1]->t.'</a> · '; | |
98 | $sponsors .= '<a href="'.$xml->lnks->link[2]->l.'">'.$xml->lnks->link[2]->t.'</a> · '; | |
99 | $sponsors .= '<a href="'.$xml->lnks->link[3]->l.'">'.$xml->lnks->link[3]->t.'</a>'; | |
100 | ||
101 | ||
102 | if(isset($_GET['temp'])){ | |
103 | $feelslike = $_GET['temp']; //This overrides the weather.com temperature for debugging. | |
104 | } | |
105 | if(isset($_GET['now'])){ | |
106 | $now = $_GET['now']; //This overrides the weather.com temperature for debugging. | |
107 | } | |
108 | ||
109 | ||
110 | echo '<?xml version="1.0" encoding="UTF-8"?> | |
111 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" | |
112 | "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">'; | |
113 | ?> | |
114 | ||
115 | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
116 | <head> | |
117 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | |
118 | <title><?php echo $title; ?></title> | |
119 | <style type="text/css"> | |
120 | *{ | |
121 | padding: 0; | |
122 | margin: 0; | |
123 | } | |
124 | ||
125 | body{ | |
126 | <?php | |
127 | if($now > $sunrise && $now < $sunset){ | |
128 | echo 'background-color:'.$daybackground.';'; | |
129 | }else{ | |
130 | echo 'background-color:'.$nightbackground.';'; | |
131 | } | |
132 | ?> | |
133 | font-family:Helvetica,Arial,sans-serif; | |
134 | <?php | |
135 | if($now > $sunrise && $now < $sunset){ | |
136 | echo 'color:'.$daymaincolor.';'; | |
137 | }else{ | |
138 | echo 'color:'.$nightmaincolor.';'; | |
139 | } | |
140 | ?> | |
141 | } | |
142 | ||
143 | #container{ | |
144 | margin: auto; | |
145 | width: 400px; | |
146 | text-align:center; | |
147 | margin-top:200px; | |
148 | } | |
149 | ||
150 | #container p{ | |
151 | font-size:4em; | |
152 | padding-left: 24px; | |
153 | } | |
154 | ||
155 | #container .rec{ | |
156 | font-style: italic; | |
157 | font-size: .6em; | |
158 | letter-spacing: .1em; | |
159 | color: <?php echo $taglinecolor; ?>; | |
160 | } | |
161 | ||
162 | #container .cold{ | |
163 | color: <?php echo $coldcolor?>; | |
164 | } | |
165 | #container .cool{ | |
166 | color: <?php echo $coolcolor?>; | |
167 | } | |
168 | #container .temperate{ | |
169 | color: <?php echo $temperatecolor?>; | |
170 | } | |
171 | #container .warm{ | |
172 | color: <?php echo $warmcolor?>; | |
173 | } | |
174 | #container .hot{ | |
175 | color: <?php echo $hotcolor?>; | |
176 | } | |
177 | ||
178 | #footer{ | |
179 | color: #999; | |
180 | font-size: .6em; | |
181 | bottom: 0; | |
182 | left: 0; | |
183 | position: absolute; | |
184 | padding: 10px; | |
185 | } | |
186 | ||
187 | img{ border: 0; } | |
188 | a{ color: #1b95fb; } | |
189 | </style> | |
190 | </head> | |
191 | <body> | |
192 | <div id="container"> | |
193 | <span><?php echo $maintext; ?></span><br/> | |
194 | <?php | |
195 | ||
196 | /****************************** | |
197 | * DANGER! DANGER! * | |
198 | ******************************* | |
199 | * I guess the following part * | |
200 | * is not that dangerous, but * | |
201 | * make sure you know what * | |
202 | * you're doing. * | |
203 | *******************************/ | |
204 | ||
205 | if($feelslike < $coldlimit){ echo '<p class="cold">'.$coldstring.'</p><span class="rec">'.$coldtagline.'</span>'; } | |
206 | else if($feelslike < $coollimit){ echo '<p class="cool">'.$coolstring.'</p><span class="rec">'.$cooltagline.'</span>'; } | |
207 | else if($feelslike < $temperatelimit){ echo '<p class="temperate">'.$temperatestring.'</p><span class="rec">'.$temperatetagline.'</span>'; } | |
208 | else if($feelslike < $warmlimit){ echo '<p class="warm">'.$warmstring.'</p><span class="rec">'.$warmtagline.'</span>'; } | |
209 | else{ echo '<p class="hot">'.$hotstring.'</p><span class="rec">'.$hottagline.'</span>'; } | |
210 | ?> | |
211 | </div> | |
212 | <!-- <div id="footer"> | |
213 | Powered by: <a href="http://weather.com"><img src="TWClogo_31px.png" alt="The Weather Channel" /></a> Sponsored by: <?php echo $sponsors; ?> | |
214 | </div> --> | |
215 | </body> | |
216 | </html> |