aboutsummaryrefslogtreecommitdiffstats
path: root/.conky/cronograph
diff options
context:
space:
mode:
Diffstat (limited to '.conky/cronograph')
-rwxr-xr-x.conky/cronograph/accuweather/accuweather.sh172
-rw-r--r--.conky/cronograph/accuweather/curr_cond5
-rw-r--r--.conky/cronograph/accuweather/curr_cond_raw1646
-rw-r--r--.conky/cronograph/accuweather/last_days25
-rw-r--r--.conky/cronograph/accuweather/last_days_raw82
-rw-r--r--.conky/cronograph/accuweather/tod_ton25
-rw-r--r--.conky/cronograph/accuweather/tod_ton_raw81
-rwxr-xr-x.conky/cronograph/conky_start.sh10
-rw-r--r--.conky/cronograph/conkyrc89
-rw-r--r--.conky/cronograph/images/Blank.pngbin0 -> 11356 bytes
-rw-r--r--.conky/cronograph/images/Blue.pngbin0 -> 11605 bytes
-rw-r--r--.conky/cronograph/images/Dark_Green.pngbin0 -> 12198 bytes
-rw-r--r--.conky/cronograph/images/Dark_Purple.pngbin0 -> 11429 bytes
-rw-r--r--.conky/cronograph/images/Green.pngbin0 -> 11963 bytes
-rw-r--r--.conky/cronograph/images/Orange.pngbin0 -> 11767 bytes
-rw-r--r--.conky/cronograph/images/Pink.pngbin0 -> 11514 bytes
-rw-r--r--.conky/cronograph/images/Purple.pngbin0 -> 11335 bytes
-rw-r--r--.conky/cronograph/images/Red.pngbin0 -> 11470 bytes
-rw-r--r--.conky/cronograph/images/Yellow.pngbin0 -> 11889 bytes
-rwxr-xr-x.conky/cronograph/scripts/blinkingLED3
-rwxr-xr-x.conky/cronograph/scripts/clock_rings.lua358
-rwxr-xr-x.conky/cronograph/scripts/multi_rings.lua375
22 files changed, 2871 insertions, 0 deletions
diff --git a/.conky/cronograph/accuweather/accuweather.sh b/.conky/cronograph/accuweather/accuweather.sh
new file mode 100755
index 0000000..fe6a407
--- /dev/null
+++ b/.conky/cronograph/accuweather/accuweather.sh
@@ -0,0 +1,172 @@
+#!/bin/sh
+
+## get the directory of this script
+SCRIPT_PATH=`readlink -f $0`
+SCRIPT_DIR=`dirname ${SCRIPT_PATH}`
+
+## address (Accuweather url)
+address="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577" # Shanghai
+
+
+## function: test_image()
+test_image() {
+ case $1 in
+ 1)
+ echo a
+ ;;
+ 2|3)
+ echo b
+ ;;
+ 4|5)
+ echo c
+ ;;
+ 6)
+ echo d
+ ;;
+ 7)
+ echo e
+ ;;
+ 8)
+ echo f
+ ;;
+ 11)
+ echo 0
+ ;;
+ 12)
+ echo h
+ ;;
+ 13|14)
+ echo g
+ ;;
+ 15)
+ echo m
+ ;;
+ 16|17)
+ echo k
+ ;;
+ 18)
+ echo i
+ ;;
+ 19)
+ echo q
+ ;;
+ 20|21|23)
+ echo o
+ ;;
+ 22)
+ echo r
+ ;;
+ 24|31)
+ echo E
+ ;;
+ 25)
+ echo v
+ ;;
+ 26)
+ echo x
+ ;;
+ 29)
+ echo y
+ ;;
+ 30)
+ echo 5
+ ;;
+ 32)
+ echo 6
+ ;;
+ 33)
+ echo A
+ ;;
+ 34|35)
+ echo B
+ ;;
+ 36|37)
+ echo C
+ ;;
+ 38)
+ echo D
+ ;;
+ 39|40)
+ echo G
+ ;;
+ 41|42)
+ echo K
+ ;;
+ 43|44)
+ echo O
+ ;;
+ *)
+ echo -
+ ;;
+ esac
+}
+
+
+#kill -STOP $(pidof conky)
+#killall wget
+
+## urls and wget weather data
+loc_id=$(echo ${address} | sed 's/\/weather-forecast.*$//' | sed 's/^.*\///')
+last_number=$(echo ${address} | sed 's/^.*\///')
+
+curr_addr="$(echo ${address} | sed 's/weather-forecast.*$//')current-weather/${last_number}"
+wget -O ${SCRIPT_DIR}/curr_cond_raw "${curr_addr}"
+
+addr1="$(echo ${address} | sed 's/weather-forecast.*$//')daily-weather-forecast/${last_number}"
+wget -O ${SCRIPT_DIR}/tod_ton_raw "${addr1}"
+
+addr2="${addr1}?day=6"
+wget -O ${SCRIPT_DIR}/last_days_raw "${addr2}"
+
+## current conditions
+if [ -s ${SCRIPT_DIR}/curr_cond_raw ]; then
+ sed -i '/detail-now/,/#details/!d' ${SCRIPT_DIR}/curr_cond_raw
+ egrep -i '"cond"|icon i-|detail-tab-panel' ${SCRIPT_DIR}/curr_cond_raw > ${SCRIPT_DIR}/curr_cond
+ sed -i -e 's/^.*detail-tab-panel //g' -e 's/^.*icon i-//g' -e 's/"><\/div>.*$//g' ${SCRIPT_DIR}/curr_cond
+ sed -i -e 's/^.*"cond">//g' -e 's/&deg/\n/g' -e 's/<\/span>.*"temp">/\n/g' -e 's/<.*>//g' ${SCRIPT_DIR}/curr_cond
+ sed -i -e 's/">//g' -e 's/-->//g' -e 's/\r$//g' -e 's/ i-alarm.*$//g' -e 's/-[a-z].*$//g' ${SCRIPT_DIR}/curr_cond
+ image=$(sed -n 2p ${SCRIPT_DIR}/curr_cond)
+ sed -i 2s/${image}/$(test_image ${image})/ ${SCRIPT_DIR}/curr_cond
+fi
+
+## First 5 days
+if [ -s ${SCRIPT_DIR}/tod_ton_raw ]; then
+ sed -i '/feed-tabs/,/\.feed-tabs/!d' ${SCRIPT_DIR}/tod_ton_raw
+ egrep -i 'Early AM|Today|Tonight|Overnight|icon i-|cond|temp|Mon|Tue|Wed|Thu|Fri|Sat|Sun' ${SCRIPT_DIR}/tod_ton_raw > ${SCRIPT_DIR}/tod_ton
+ sed -i -e 's/^.*#">//g' -e 's/^.*icon i-//g' -e 's/^.*cond">//g' -e 's/^.*temp">//g' ${SCRIPT_DIR}/tod_ton
+ sed -i -e 's/Lo<\/span> /\n/g' -e 's/<\/a>.*$//g' -e 's/ "><.*$//g' -e 's/&#.*$//g' -e 's/teo//g' ${SCRIPT_DIR}/tod_ton
+ sed -i -e 's/<span>.*$//g' -e 's/<\/span>//g' -e 's/\r$//g' -e 's/ i-alarm.*$//g' ${SCRIPT_DIR}/tod_ton
+ sed -i -e 's/Early AM/EARLY AM/' -e 's/Today/TODAY/' -e 's/Tonight/TONIGHT/' -e 's/Overnight/OVERNIGHT/' -e 's/Mon/MON/' -e 's/Tue/TUE/' -e 's/Wed/WED/' -e 's/Thu/THU/' -e 's/Fri/FRI/' -e 's/Sat/SAT/' -e 's/Sun/SUN/' -e 's/-[a-z]*$//g' ${SCRIPT_DIR}/tod_ton
+ time=$(sed -n 1p ${SCRIPT_DIR}/tod_ton)
+ image=$(sed -n 2p ${SCRIPT_DIR}/tod_ton)
+ #
+ if [ "${time}" = "TODAY" ]; then
+ sed -i 2s/${image}/$(test_image ${image})/ ${SCRIPT_DIR}/tod_ton
+ elif [ "${time}" = "TONIGHT" -o "${time}" = "OVERNIGHT" -o "${time}" = "EARLY AM" ]; then
+ sed -i 2s/${image}/$(test_image ${image})/ ${SCRIPT_DIR}/tod_ton
+ sed -i 3a- ${SCRIPT_DIR}/tod_ton
+ fi
+ #
+ for i in $(seq 7 5 22); do
+ image=$(sed -n "${i}"p ${SCRIPT_DIR}/tod_ton)
+ sed -i ${i}s/${image}/$(test_image ${image})/ ${SCRIPT_DIR}/tod_ton
+ done
+fi
+
+## Next 5 days
+if [ -s ${SCRIPT_DIR}/last_days_raw ]; then
+ sed -i '/feed-tabs/,/\.feed-tabs/!d' ${SCRIPT_DIR}/last_days_raw
+ egrep -i 'icon i-|cond|temp|Mon|Tue|Wed|Thu|Fri|Sat|Sun' ${SCRIPT_DIR}/last_days_raw > ${SCRIPT_DIR}/last_days
+ sed -i -e 's/^.*#">//g' -e 's/^.*icon i-//g' -e 's/^.*cond">//g' -e 's/^.*temp">//g' ${SCRIPT_DIR}/last_days
+ sed -i -e 's/Lo<\/span> /\n/g' -e 's/<\/a>.*$//g' -e 's/ "><.*$//g' -e 's/&#.*$//g' -e 's/teo//g' ${SCRIPT_DIR}/last_days
+ sed -i -e 's/<span>.*$//g' -e 's/<\/span>//g' -e 's/\r$//g' -e 's/ i-alarm.*$//g' ${SCRIPT_DIR}/last_days
+ sed -i -e 's/Mon/MON/' -e 's/Tue/TUE/' -e 's/Wed/WED/' -e 's/Thu/THU/' -e 's/Fri/FRI/' -e 's/Sat/SAT/' -e 's/Sun/SUN/' -e 's/-[a-z]*$//g' ${SCRIPT_DIR}/last_days
+ #
+ for i in $(seq 7 5 22); do
+ image=$(sed -n "${i}"p ${SCRIPT_DIR}/last_days)
+ sed -i ${i}s/${image}/$(test_image ${image})/ ${SCRIPT_DIR}/last_days
+ done
+fi
+
+#kill -CONT $(pidof conky)
+
diff --git a/.conky/cronograph/accuweather/curr_cond b/.conky/cronograph/accuweather/curr_cond
new file mode 100644
index 0000000..f5d92e6
--- /dev/null
+++ b/.conky/cronograph/accuweather/curr_cond
@@ -0,0 +1,5 @@
+night
+A
+Clear
+18
+
diff --git a/.conky/cronograph/accuweather/curr_cond_raw b/.conky/cronograph/accuweather/curr_cond_raw
new file mode 100644
index 0000000..9f2b26c
--- /dev/null
+++ b/.conky/cronograph/accuweather/curr_cond_raw
@@ -0,0 +1,1646 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Shanghai Current Weather - AccuWeather Forecast for Shanghai China</title>
+ <script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"beacon-3.newrelic.com","errorBeacon":"jserror.newrelic.com","licenseKey":"a690b21e9f","applicationID":"599479","transactionName":"NV0GYUFWCEUDBkNQDAwXIFpHeQNCIQpZTRENVAhQQRggWRAAVFgQFhcnQEFFA1gWJlhXBwtMDVpdRA==","queueTime":0,"applicationTime":48,"ttGuid":"BB8C9D8BB020BC9B","agent":"js-agent.newrelic.com/nr-411.min.js"}</script><script type="text/javascript">(window.NREUM||(NREUM={})).loader_config={xpid:"VQUFVl5UGwYJXVVVDg=="};window.NREUM||(NREUM={}),__nr_require=function(t,e,n){function r(n){if(!e[n]){var o=e[n]={exports:{}};t[n][0].call(o.exports,function(e){var o=t[n][1][e];return r(o?o:e)},o,o.exports)}return e[n].exports}if("function"==typeof __nr_require)return __nr_require;for(var o=0;o<n.length;o++)r(n[o]);return r}({1:[function(t,e){function n(t,e,n){n||(n={});for(var r=o[t],a=r&&r.length||0,s=n[i]||(n[i]={}),u=0;a>u;u++)r[u].apply(s,e);return s}function r(t,e){var n=o[t]||(o[t]=[]);n.push(e)}var o={},i="nr@context";e.exports={on:r,emit:n}},{}],2:[function(t){function e(t,e,n,i,s){return u?u-=1:r("err",[s||new UncaughtException(t,e,n)]),"function"==typeof a?a.apply(this,o(arguments)):!1}function UncaughtException(t,e,n){this.message=t||"Uncaught error with no additional information",this.sourceURL=e,this.line=n}function n(t){r("err",[t,(new Date).getTime()])}var r=t("handle"),o=t(6),i=t(5),a=window.onerror,s=!1,u=0;t("loader").features.push("err"),window.onerror=e,NREUM.noticeError=n;try{throw new Error}catch(d){"stack"in d&&(t(1),t(2),"addEventListener"in window&&t(3),window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&t(4),s=!0)}i.on("fn-start",function(){s&&(u+=1)}),i.on("fn-err",function(t,e,r){s&&(this.thrown=!0,n(r))}),i.on("fn-end",function(){s&&!this.thrown&&u>0&&(u-=1)}),i.on("internal-error",function(t){r("ierr",[t,(new Date).getTime(),!0])})},{1:5,2:4,3:3,4:6,5:1,6:14,handle:"D5DuLP",loader:"G9z0Bl"}],3:[function(t){function e(t){r.inPlace(t,["addEventListener","removeEventListener"],"-",n)}function n(t){return t[1]}var r=t(1),o=(t(3),t(2));if(e(window),"getPrototypeOf"in Object){for(var i=document;i&&!i.hasOwnProperty("addEventListener");)i=Object.getPrototypeOf(i);i&&e(i);for(var a=XMLHttpRequest.prototype;a&&!a.hasOwnProperty("addEventListener");)a=Object.getPrototypeOf(a);a&&e(a)}else XMLHttpRequest.prototype.hasOwnProperty("addEventListener")&&e(XMLHttpRequest.prototype);o.on("addEventListener-start",function(t){if(t[1]){var e=t[1];"function"==typeof e?this.wrapped=e["nr@wrapped"]?t[1]=e["nr@wrapped"]:e["nr@wrapped"]=t[1]=r(e,"fn-"):"function"==typeof e.handleEvent&&r.inPlace(e,["handleEvent"],"fn-")}}),o.on("removeEventListener-start",function(t){var e=this.wrapped;e&&(t[1]=e)})},{1:15,2:1,3:14}],4:[function(t){var e=(t(3),t(1)),n=t(2);e.inPlace(window,["requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame"],"raf-"),n.on("raf-start",function(t){t[0]=e(t[0],"fn-")})},{1:15,2:1,3:14}],5:[function(t){function e(t){var e=t[0];"string"==typeof e&&(e=new Function(e)),t[0]=n(e,"fn-")}var n=(t(3),t(1)),r=t(2);n.inPlace(window,["setTimeout","setInterval","setImmediate"],"setTimer-"),r.on("setTimer-start",e)},{1:15,2:1,3:14}],6:[function(t){function e(){o.inPlace(this,s,"fn-")}function n(t,e){o.inPlace(e,["onreadystatechange"],"fn-")}function r(t,e){return e}var o=t(1),i=t(2),a=window.XMLHttpRequest,s=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"];window.XMLHttpRequest=function(t){var n=new a(t);try{i.emit("new-xhr",[],n),o.inPlace(n,["addEventListener","removeEventListener"],"-",function(t,e){return e}),n.addEventListener("readystatechange",e,!1)}catch(r){try{i.emit("internal-error",r)}catch(s){}}return n},window.XMLHttpRequest.prototype=a.prototype,o.inPlace(XMLHttpRequest.prototype,["open","send"],"-xhr-",r),i.on("send-xhr-start",n),i.on("open-xhr-start",n)},{1:15,2:1}],7:[function(t){function e(){function e(t){if("string"==typeof t&&t.length)return t.length;if("object"!=typeof t)return void 0;if("undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer&&t.byteLength)return t.byteLength;if("undefined"!=typeof Blob&&t instanceof Blob&&t.size)return t.size;if("undefined"!=typeof FormData&&t instanceof FormData)return void 0;try{return JSON.stringify(t).length}catch(e){return void 0}}function n(t){var n=this.params,r=this.metrics;if(!this.ended){this.ended=!0;for(var i=0;u>i;i++)t.removeEventListener(s[i],this.listener,!1);if(!n.aborted){if(r.duration=(new Date).getTime()-this.startTime,4===t.readyState){n.status=t.status;var a=t.responseType,d="arraybuffer"===a||"blob"===a||"json"===a?t.response:t.responseText,f=e(d);if(f&&(r.rxSize=f),this.sameOrigin){var c=t.getResponseHeader("X-NewRelic-App-Data");c&&(n.cat=c.split(", ").pop())}}else n.status=0;r.cbTime=this.cbTime,o("xhr",[n,r])}}}function r(t,e){var n=i(e),r=t.params;r.host=n.hostname+":"+n.port,r.pathname=n.pathname,t.sameOrigin=n.sameOrigin}t("loader").features.push("xhr");var o=t("handle"),i=t(1),a=t(5),s=["load","error","abort","timeout"],u=s.length,d=t(2);t(3),t(4),a.on("new-xhr",function(){this.totalCbs=0,this.called=0,this.cbTime=0,this.end=n,this.ended=!1,this.xhrGuids={}}),a.on("open-xhr-start",function(t){this.params={method:t[0]},r(this,t[1]),this.metrics={}}),a.on("open-xhr-end",function(t,e){"loader_config"in NREUM&&"xpid"in NREUM.loader_config&&this.sameOrigin&&e.setRequestHeader("X-NewRelic-ID",NREUM.loader_config.xpid)}),a.on("send-xhr-start",function(t,n){var r=this.metrics,o=t[0],i=this;if(r&&o){var d=e(o);d&&(r.txSize=d)}this.startTime=(new Date).getTime(),this.listener=function(t){try{"abort"===t.type&&(i.params.aborted=!0),("load"!==t.type||i.called===i.totalCbs&&(i.onloadCalled||"function"!=typeof n.onload))&&i.end(n)}catch(e){try{a.emit("internal-error",e)}catch(r){}}};for(var f=0;u>f;f++)n.addEventListener(s[f],this.listener,!1)}),a.on("xhr-cb-time",function(t,e,n){this.cbTime+=t,e?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof n.onload||this.end(n)}),a.on("xhr-load-added",function(t,e){var n=""+d(t)+!!e;this.xhrGuids&&!this.xhrGuids[n]&&(this.xhrGuids[n]=!0,this.totalCbs+=1)}),a.on("xhr-load-removed",function(t,e){var n=""+d(t)+!!e;this.xhrGuids&&this.xhrGuids[n]&&(delete this.xhrGuids[n],this.totalCbs-=1)}),a.on("addEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-added",[t[1],t[2]],e)}),a.on("removeEventListener-end",function(t,e){e instanceof XMLHttpRequest&&"load"===t[0]&&a.emit("xhr-load-removed",[t[1],t[2]],e)}),a.on("fn-start",function(t,e,n){e instanceof XMLHttpRequest&&("onload"===n&&(this.onload=!0),("load"===(t[0]&&t[0].type)||this.onload)&&(this.xhrCbStart=(new Date).getTime()))}),a.on("fn-end",function(t,e){this.xhrCbStart&&a.emit("xhr-cb-time",[(new Date).getTime()-this.xhrCbStart,this.onload,e],e)})}window.XMLHttpRequest&&XMLHttpRequest.prototype&&XMLHttpRequest.prototype.addEventListener&&!/CriOS/.test(navigator.userAgent)&&e()},{1:8,2:11,3:3,4:6,5:1,handle:"D5DuLP",loader:"G9z0Bl"}],8:[function(t,e){e.exports=function(t){var e=document.createElement("a"),n=window.location,r={};e.href=t,r.port=e.port;var o=e.href.split("://");return!r.port&&o[1]&&(r.port=o[1].split("/")[0].split(":")[1]),r.port&&"0"!==r.port||(r.port="https"===o[0]?"443":"80"),r.hostname=e.hostname||n.hostname,r.pathname=e.pathname,"/"!==r.pathname.charAt(0)&&(r.pathname="/"+r.pathname),r.sameOrigin=!e.hostname||e.hostname===document.domain&&e.port===n.port&&e.protocol===n.protocol,r}},{}],handle:[function(t,e){e.exports=t("D5DuLP")},{}],D5DuLP:[function(t,e){function n(t,e){var n=r[t];return n?n.apply(this,e):(o[t]||(o[t]=[]),void o[t].push(e))}var r={},o={};e.exports=n,n.queues=o,n.handlers=r},{}],11:[function(t,e){function n(t){if(!t||"object"!=typeof t&&"function"!=typeof t)return-1;if(t===window)return 0;if(o.call(t,"__nr"))return t.__nr;try{return Object.defineProperty(t,"__nr",{value:r,writable:!0,enumerable:!1}),r}catch(e){return t.__nr=r,r}finally{r+=1}}var r=1,o=Object.prototype.hasOwnProperty;e.exports=n},{}],loader:[function(t,e){e.exports=t("G9z0Bl")},{}],G9z0Bl:[function(t,e){function n(){var t=p.info=NREUM.info;if(t&&t.agent&&t.licenseKey&&t.applicationID&&u&&u.body){p.proto="https"===c.split(":")[0]||t.sslForHttp?"https://":"http://",a("mark",["onload",i()]);var e=u.createElement("script");e.src=p.proto+t.agent,u.body.appendChild(e)}}function r(){"complete"===u.readyState&&o()}function o(){a("mark",["domContent",i()])}function i(){return(new Date).getTime()}var a=t("handle"),s=window,u=s.document,d="addEventListener",f="attachEvent",c=(""+location).split("?")[0],p=e.exports={offset:i(),origin:c,features:[]};u[d]?(u[d]("DOMContentLoaded",o,!1),s[d]("load",n,!1)):(u[f]("onreadystatechange",r),s[f]("onload",n)),a("mark",["firstbyte",i()])},{handle:"D5DuLP"}],14:[function(t,e){function n(t,e,n){e||(e=0),"undefined"==typeof n&&(n=t?t.length:0);for(var r=-1,o=n-e||0,i=Array(0>o?0:o);++r<o;)i[r]=t[e+r];return i}e.exports=n},{}],15:[function(t,e){function n(t,e,r,s){function nrWrapper(){try{var n,a=u(arguments),d=this,f=r&&r(a,d)||{}}catch(c){i([c,"",[a,d,s],f])}o(e+"start",[a,d,s],f);try{return n=t.apply(d,a)}catch(p){throw o(e+"err",[a,d,p],f),p}finally{o(e+"end",[a,d,n],f)}}return a(t)?t:(e||(e=""),nrWrapper[n.flag]=!0,nrWrapper)}function r(t,e,r,o){r||(r="");var i,s,u,d="-"===r.charAt(0);for(u=0;u<e.length;u++)s=e[u],i=t[s],a(i)||(t[s]=n(i,d?s+r:r,o,s,t))}function o(t,e,n){try{s.emit(t,e,n)}catch(r){i([r,t,e,n])}}function i(t){try{s.emit("internal-error",t)}catch(e){}}function a(t){return!(t&&"function"==typeof t&&t.apply&&!t[n.flag])}var s=t(1),u=t(2);e.exports=n,n.inPlace=r,n.flag="nr@wrapper"},{1:1,2:14}]},{},["G9z0Bl",2,7]);</script>
+
+ <meta name="description" content="Get Shanghai, China current weather reports and conditions including temperature, RealFeel and precipitation from AccuWeather.com" />
+<link rel="canonical" href="http://www.accuweather.com/en/cn/shanghai/106577/current-weather/106577" />
+<meta name="keywords" content="Shanghai China, current weather, weather report" />
+<link rel="alternate" media="only screen and (max-width: 640px)" href="http://m.accuweather.com/en/cn/shanghai/106577/current-weather/106577" />
+<link rel="alternate" media="handheld" href="http://m.accuweather.com/en/cn/shanghai/106577/current-weather/106577" />
+
+ <meta name="viewport" content="width=988"/>
+ <link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/site.min-20140501.css" type="text/css" media="all" />
+
+ <style type="text/css">
+ @media print{#header-davek,#header-links,#header-davek-2,#ad-prestitial-panel,#footer-nav,#offers,div.logo-ad,div.panel-ad-mr,div.ad-lr,#ad-links,#wrap-s .bt,.margusity,.column-2-r,.addthis_toolbox,body#news-news .column-2,body#news-news #news,body#news-news .panel-head-tabs-rt,#extras{display:none}body,#wrap,#wrap-content,.column-1,#panel-main,.strong .panel-body,.strong .panel-body-lt,.strong .panel-body-rt,.strong .panel-foot,.strong .panel-foot-lt,.strong .panel-foot-rt,.strong .panel-head,.strong .panel-head-lt,.strong .panel-head-rt{background:0}.clearfix{position:static;display:block}body#news-news .column-1{width:980px;float:none;}}
+ </style>
+
+ <link rel="shortcut icon" href="http://vortex.accuweather.com/adc2010/images/favicons/awx-2013-master.ico" />
+
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+
+ <style type="text/css">
+.flag-CN { background-image: url(http://vortex.accuweather.com/adc2010/images/flags/CN.png) !important;}
+.flag-US { background-image: url(http://vortex.accuweather.com/adc2010/images/flags/US.png) !important;}
+.flag-GB { background-image: url(http://vortex.accuweather.com/adc2010/images/flags/GB.png) !important;}
+ .i-11-header {background-image: url(http://vortex.accuweather.com/adc2010/images/header-bg-day/11-header.jpg);}
+ </style>
+
+<link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/pages/forecast-extended.min-20111207.css" type="text/css" media="all" />
+<style type="text/css">
+.detail-tab-buttons li a span {
+padding: 6px 15px 0 18px;
+}
+</style>
+<style type="text/css">
+.i-11-xl{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/11-xl.png)}
+.i-12-l{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/12-l.png)} .i-18-l{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/18-l.png)} .i-12-s{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/12-s.png)} .i-18-s{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/18-s.png)} .i-1-s{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/01-s.png)} .i-6-s{background-image:url(http://vortex.accuweather.com/adc2010/images/icons-numbered/06-s.png)}
+</style>
+
+
+ <!--[if lte IE 6]>
+ <link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/ie6.css" type="text/css" media="all" />
+ <script type="text/javascript" src="http://vortex.accuweather.com/adc2010/javascripts/ie6.js"></script>
+ <![endif]-->
+ <!--[if lt IE 7]>
+ <script defer type="text/javascript" src="http://vortex.accuweather.com/adc2010/javascripts/ie6_png_fix.js"></script>
+ <![endif]-->
+ <!--[if IE 7]><link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/ie7.min-20130423.css" type="text/css" media="all" /><![endif]-->
+ <!--[if IE 8]><link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/ie8.min-20130423.css" type="text/css" media="all" /><![endif]-->
+ <!--[if gte IE 9]><link rel="stylesheet" href="http://vortex.accuweather.com/adc2010/stylesheets/ie9.min-20121129.css" type="text/css" media="all" /><![endif]-->
+
+ <script type="text/javascript">
+ var apgUserInfoObj = {
+ country: 'CN',
+ city: 'Shanghai',
+ state: '31',
+ metro: '',
+ zip: '',
+ fcode: 'ZA80',
+ partner: 'accuweather',
+ sessionPartner: 'accuweather',
+ referer: '',
+ lang: 'en-us',
+ langid: '1',
+ lat: '31.23',
+ lon: '121.44',
+ dma: '',
+ ip: '202.120.52.45',
+ geo_dma: '',
+ geo_city: 'Shanghai',
+ geo_state: '31',
+ geo_zip: '',
+ geo_country: 'CN',
+ gmtOffset: '8',
+ locationKey: '106577'
+ };
+ var apgWxInfoObj = { nwsalrt: '', alerts: { source: '', category: '', typeid: '' }, isday: '1', lfs: { day: '1', category: '', severity: '2' }, hdln: '2', ut: '1', cu: { wx: '11', hi: '18', wd: '', hd: '', uv: '' }, fc: [{ wx: '', hi: '', lo: '' }, { wx: '', hi: '', lo: '' }, { wx: '', hi: '', lo: '' }], ix: {arthritis:'2',asthma:'2',bbq:'3',cold:'2',flu:'',lawnmowing:'4',migraine:'1',outdoor:'4',schoolclosing:'',sinus:'2',soil:'',field:'',beach:'1',biking:'4',concert:'2',construction:'3',composting:'2',dust:'1',fishing:'4',fueleconomy:'3',golf:'3',heart:'5',hiking:'4',hvac:'1',mosq:'1',sailing:'4',running:'4',schoolbus:'4',skiing:'1',star:'1',frizz:'0',pollen:'1',uvindex:'2',hunting:'4', driving:'2', travel:'4', airq:'0', pgrass:'1', pmold:'1', pweed:'1', ptree:'1' } };
+var aadCustomKeyValuePairs = {};
+ var apgConfigObj = {};
+ apgConfigObj.prompts = {};
+ </script>
+
+ <script type="text/javascript">
+ var acm_RecentLocationsCarousel= new Array();
+
+acm_RecentLocationsCarousel.push({name:'Shanghai, China', daypart:'day', href:'/en/cn/shanghai/106577/weather-forecast/106577', icon:'http://vortex.accuweather.com/adc2010/images/icons-numbered/11-m.png', bg:'f', temp:'18', realfeel:'20', text:'Light fog'});
+acm_RecentLocationsCarousel.push({name:'New York, NY', daypart:'night', href:'/en/us/new-york-ny/10017/weather-forecast/349727', icon:'http://vortex.accuweather.com/adc2010/images/icons-numbered/11-m.png', bg:'s', temp:'16', realfeel:'18', text:'Light fog'});
+acm_RecentLocationsCarousel.push({name:'Miami, FL', daypart:'night', href:'/en/us/miami-fl/33128/weather-forecast/347936', icon:'http://vortex.accuweather.com/adc2010/images/icons-numbered/38-m.png', bg:'s', temp:'26', realfeel:'26', text:'Mostly cloudy'});
+acm_RecentLocationsCarousel.push({name:'Los Angeles, CA', daypart:'night', href:'/en/us/los-angeles-ca/90012/weather-forecast/347625', icon:'http://vortex.accuweather.com/adc2010/images/icons-numbered/33-m.png', bg:'cl', temp:'17', realfeel:'18', text:'Clear'});
+
+ </script>
+
+ <script type="text/javascript">
+ var acm_InterestLayers = [
+{group:'1.1', name:'Cold & Flu', code:'10302', icon: 'cold-flu', href:'http://www.accuweather.com/en/cn/shanghai/106577/cold-flu-weather/106577', alarm:[3,4,5]},
+{group:'1.1', name:'Allergies', code:'10201', icon: 'allergies', href:'http://www.accuweather.com/en/cn/shanghai/106577/allergies-weather/106577', alarm:[3,4,5]},
+{group:'1.1', name:'Respiratory', code:'10301', icon: 'respiratory', href:'http://www.accuweather.com/en/cn/shanghai/106577/asthma-weather/106577', alarm:[3,4,5]},
+{group:'1.1', name:'Arthritis', code:'10102', icon: 'arthritis', href:'http://www.accuweather.com/en/cn/shanghai/106577/arthritis-weather/106577', alarm:[3,4,5]},
+{group:'1.1', name:'Migraine', code:'10101', icon: 'migraine', href:'http://www.accuweather.com/en/cn/shanghai/106577/migraine-weather/106577', alarm:[3,4,5]},
+{group:'1.1', name:'Sinus', code:'10103', icon: 'sinus', href:'http://www.accuweather.com/en/cn/shanghai/106577/sinus-weather/106577', alarm:[3,4,5]},
+{group:'1.2', name:'Travel', code:'20501', icon: 'travel', href:'http://www.accuweather.com/en/cn/shanghai/106577/air-travel-weather/106577', alarm:[1]},
+{group:'1.2', name:'Astronomy', code:'40501', icon: 'astro', href:'http://www.accuweather.com/en/cn/shanghai/106577/astronomy-weather/106577', alarm:[1]},
+{group:'1.2', name:'Events', code:'41001', icon: 'events', href:'http://www.accuweather.com/en/cn/shanghai/106577/events-weather/106577', alarm:[1]},
+{group:'2.1', name:'Driving', code:'20401', icon: 'driving', href:'http://www.accuweather.com/en/cn/shanghai/106577/driving-weather/106577', alarm:[1]},
+{group:'2.1', name:'School Day', code:'30401', icon: 'school', href:'http://www.accuweather.com/en/cn/shanghai/106577/school-day-weather/106577', alarm:[1]},
+{group:'2.1', name:'Hair Day', code:'30301', icon: 'hair', href:'http://www.accuweather.com/en/cn/shanghai/106577/hair-day-weather/106577', alarm:[3,4,5]},
+{group:'2.1', name:'Snow Days', code:'30402', icon: 'snow', href:'http://www.accuweather.com/en/cn/shanghai/106577/snow-day-weather/106577', alarm:[4,5]},
+{group:'2.2', name:'D.I.Y.', code:'30101', icon: 'diy', href:'http://www.accuweather.com/en/cn/shanghai/106577/diy-weather/106577', alarm:[1]},
+{group:'2.2', name:'Lawn & Garden', code:'30201', icon: 'lawn-garden', href:'http://www.accuweather.com/en/cn/shanghai/106577/lawn-garden-weather/106577', alarm:[1]},
+{group:'2.2', name:'Home Energy', code:'30501', icon: 'home-energy', href:'http://www.accuweather.com/en/cn/shanghai/106577/home-energy-weather/106577', alarm:[1]},
+{group:'2.2', name:'Entertaining', code:'40102', icon: 'entertaining', href:'http://www.accuweather.com/en/cn/shanghai/106577/outdoor-entertaining-weather/106577', alarm:[1]},
+{group:'3.1', name:'Golf', code:'40201', icon: 'golf', href:'http://www.accuweather.com/en/cn/shanghai/106577/golf-weather/106577', alarm:[1]},
+{group:'3.1', name:'Ski', code:'40301', icon: 'ski', href:'http://www.accuweather.com/en/cn/shanghai/106577/ski-weather/106577', alarm:[1]},
+{group:'3.1', name:'Hunting', code:'40601', icon: 'hunting', href:'http://www.accuweather.com/en/cn/shanghai/106577/hunting-weather/106577', alarm:[1]},
+{group:'3.1', name:'Fishing', code:'40602', icon: 'fishing', href:'http://www.accuweather.com/en/cn/shanghai/106577/fishing-weather/106577', alarm:[1]},
+{group:'3.1', name:'Running', code:'40901', icon: 'running', href:'http://www.accuweather.com/en/cn/shanghai/106577/running-weather/106577', alarm:[1]},
+{group:'3.1', name:'Hiking', code:'40903', icon: 'hiking', href:'http://www.accuweather.com/en/cn/shanghai/106577/hiking-weather/106577', alarm:[1]},
+{group:'3.1', name:'Biking', code:'40902', icon: 'biking', href:'http://www.accuweather.com/en/cn/shanghai/106577/biking-weather/106577', alarm:[1]},
+{group:'3.1', name:'Sun & Sand', code:'40401', icon: 'sun-sand', href:'http://www.accuweather.com/en/cn/shanghai/106577/sun-sand-weather/106577', alarm:[1]},
+{group:'3.1', name:'Sailing', code:'40402', icon: 'sailing', href:'http://www.accuweather.com/en/cn/shanghai/106577/sailing-weather/106577', alarm:[1]}];
+ </script>
+
+ <script type="text/javascript" src="http://vortex.accuweather.com/adc2010/javascripts/lib.min-20121129.js"></script>
+
+<script type="text/javascript">
+ var apgPageInfoObj = { ad_site: 'world',
+ section: 'forecast',
+ ad_section: 'forecast',
+ page: 'forecast-current-conditions',
+ ad_page: 'current-conditions',
+ page_code: '',
+ crumb_trail: ['Forecast', 'CurrentConditions', 'CN', 'Shanghai', 'Shanghai'],
+ pageType: 'forecast',
+ pageExt: '', adPos: { atf728: true, atfPencil: true, atf300: true, atf160: false, btf728: true, btf300: true, popunder: true, prestitial: true, links: true, ptoSkin: true } };
+
+apgWxInfoObj.cu.wx = '11';apgWxInfoObj.cu.hi = '19';apgWxInfoObj.cu.wd = '17';apgWxInfoObj.cu.hd = '88';apgWxInfoObj.cu.uv = '4'; apgWxInfoObj.fc = [{ wx: '12', hi: '22', lo: '19' },
+ { wx: '18', hi: '23', lo: '17' },
+ { wx: '1', hi: '26', lo: '16' }];
+</script>
+
+ <script type="text/javascript" src="http://vortex.accuweather.com/adc2010/javascripts/site.min-20140417.js"></script>
+ <!--[if lte IE 8]>
+ <script>acm.isOldIE = true;</script>
+ <![endif]-->
+ <script type="text/javascript" src="http://vortex.accuweather.com/adc2010/javascripts/ads.min-20140331.js"></script>
+
+
+ <script type="text/javascript">
+ var settingsCke = "acm";
+ sj_SelectCountry = "Select a Country";
+
+ function acmCitySubmit(key) {
+
+ var s_value = document.getElementById('s').value;
+ if (s_value == "Enter postal code or city...") {
+ return false;
+ }
+
+ if (s_value === "") {
+ return false;
+ }
+ var isKeyPress = (key) ? 'EnterKey' : 'ButtonClick';
+
+ if (s_value == "Shanghai, China") {
+ _gaq.push(['_trackEvent', 'LocationBox', 'DefaultLocation', s_value.toLowerCase()]);
+ setTimeout(function () {
+ window.location.href = 'http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577';
+ }, 50);
+ } else {
+ _gaq.push(['_trackEvent', 'LocationBox', 'SearchLocation', s_value.toLowerCase()]);
+ //setTimeout(function () {
+ // document.forms["findcity"].submit();
+ //}, 50);
+ // Execute it right away to prevent double-submit.
+ document.forms["findcity"].submit();
+ }
+ }
+
+
+ </script>
+
+ <script type="text/javascript">
+ _gaq.push(['_setCustomVar', 10, 'SkyMotion', '1', 3]);
+ </script>
+
+ <!-- Begin comScore Tag -->
+ <script>
+ var _comscore = _comscore || [];
+ _comscore.push({ c1: "2", c2: "6005068" });
+ (function () {
+ var s = document.createElement("script"), el = document.getElementsByTagName("script")[0]; s.async = true;
+ s.src = (document.location.protocol == "https:" ? "https://sb" : "http://b") + ".scorecardresearch.com/beacon.js";
+ el.parentNode.insertBefore(s, el);
+ })();
+ </script>
+ <!-- End comScore Tag -->
+
+ <script type="text/javascript">
+ (function () {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'stats.g.doubleclick.net/dc.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })()
+ </script>
+ <script>
+ if (typeof (aadObj) == 'undefined') {
+ _gaq.push(['_setCustomVar', 47, 'Ads_JS_Not_Loaded', apgUserInfoObj.sessionPartner, 3]);
+ }
+
+ _gaq.push(['_trackPageview']);
+ </script>
+</head>
+<body id="forecast-extended" class="forecast">
+ <style type="text/css">
+ #cobrand-banner-wrap-head{border-bottom:#D1D4D9 2px solid;}
+ #cobrand-banner-head{width:900px;margin:0px auto;height:40px;overflow:hidden;}
+ </style>
+ <div id="cobrand-banner-wrap-head">
+ <div id="cobrand-banner-head">
+ <style>#cobrand-banner-wrap-head{background:#ffffff !important}.cobrand-header{background:#FFF;width:100%;height:40px;}.cobrand-header .cobrand-header-container{width:90%;height:40px;margin:0 auto;clear:both}.cobrand-header .cobrand-header-container .logo{width:20%;float:left;height:40px;background-image:url(http://vortex.accuweather.com/adc2010/images/cobrand-partners/ARC-logo.jpg);background-size:contain;background-repeat:no-repeat}.cobrand-header .cobrand-header-container p{width:60%;padding-top:10px;margin:0 auto;text-align:center;display:inline-block;float:left;color:#d2341d;font-size: 16px;}.cobrand-header .cobrand-header-container span{width:20%;height:27px;padding-top:13px;display:inline-block;text-align:center;font-size:12px;color:#000;background: url(http://vortex.accuweather.com/adc2010/images/cobrand-partners/ACR-cta-btn.png) no-repeat 10px center}.lt-728 .cobrand-header .cobrand-header-container p{font-size:14px}.cobrand-header a{text-decoration:none;margin:0;padding:0;}.lt-728 .cobrand-header .cobrand-header-container span{background:red;color:#fff}.lt-623 .cobrand-header .cobrand-header-container .logo{width:10%;background-image:url(http://vortex.accuweather.com/adc2010/images/cobrand-partners/ARC-logo-sm.jpg)}.lt-623 .cobrand-header .cobrand-header-container p{width:70%;font-size:13px;line-height:12px}.lt-479 .cobrand-header .cobrand-header-container p{font-size:12px;line-height:12px;padding:10px 5% 0 5%;width:60%}</style><div class="cobrand-header"><a href="http://www.redcross.org/cm/accuweather-pub" target="_blank"><div class="cobrand-header-container"><div class="logo"></div><p>Help The Arkansas Tornado Relief Effort</p><span>Donate Now</span></div></a></div>
+ </div>
+ </div>
+
+<span id="dynamic-menu-container"></span>
+<div id="menu-cities" class="menu menu-list add-interest-menu">
+ <div class="menu-head-lt">
+ <div class="menu-head-rt">
+ <div class="menu-head"></div>
+ </div>
+ </div>
+ <!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+ <ul class="menu-items">
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577">Shanghai, China</a></li>
+ <li><a href="http://www.accuweather.com/en/us/new-york-ny/10017/weather-forecast/349727">New York, NY</a></li>
+ <li><a href="http://www.accuweather.com/en/us/miami-fl/33128/weather-forecast/347936">Miami, FL</a></li>
+ <li><a href="http://www.accuweather.com/en/us/los-angeles-ca/90012/weather-forecast/347625">Los Angeles, CA</a></li>
+ <li><a href="http://www.accuweather.com/en/browse-locations">Browse for your location</a></li>
+ </ul>
+ <span class="arrow"></span><span class="arrow-border"></span>
+ </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+ <div class="menu-foot-lt">
+ <div class="menu-foot-rt">
+ <div class="menu-foot"></div>
+ </div>
+ </div>
+ <!-- /.menu-foot-lt -->
+</div>
+
+<!-- NEW! menu -->
+<div id="current-city-menu" class="menu menu-list add-interest-menu">
+ <div class="menu-head-lt"><div class="menu-head-rt"><div class="menu-head"></div></div></div><!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+ <ul>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577">Today's Weather</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/hourly-weather-forecast/106577">Hourly Forecast</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577">Extended</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/weekend-weather/106577">Weekend</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/may-weather/106577">Month Outlook</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/shanghai/106577/current-weather/106577">Current Weather</a></li>
+ </ul>
+ <span class="arrow"></span>
+ <span class="arrow-border"></span>
+ </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+ <div class="menu-foot-lt"><div class="menu-foot-rt"><div class="menu-foot"></div></div></div><!-- /.menu-foot-lt -->
+
+</div>
+<!-- #/current-city-menu --> <div id="current-country-menu" class="menu menu-list add-interest-menu">
+ <div class="menu-head-lt">
+ <div class="menu-head-rt">
+ <div class="menu-head"></div>
+ </div>
+ </div>
+ <!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/cn/china-weather">Home</a></li>
+ </ul>
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/cn/national/satellite">Maps</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/national/satellite">Satellite</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/national/weather-forecast-maps">Weather Forecast Maps</a></li>
+ </ul>
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/weather-news">News & Video</a></li>
+ <li><a href="http://www.accuweather.com/en/weather-news">Weather News</a></li>
+ <li><a href="http://www.accuweather.com/en/weather-video">Weather Video</a></li>
+ <li><a href="http://www.accuweather.com/en/weather-blogs">Weather Blogs</a></li>
+ <li><a href="http://www.accuweather.com/en/personalities">Personalities</a></li>
+ </ul>
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/climate-change">Extreme Weather</a></li>
+ <li><a href="http://www.accuweather.com/en/climate-change">Climate Change</a></li>
+ </ul>
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/social">Social</a></li>
+ <li><a href="http://www.accuweather.com/en/social">Social Media</a></li>
+ <li><a href="http://www.accuweather.com/en/downloads">Apps & Downloads</a></li>
+ <li><a href="http://photo.accuweather.com">Weather Photos</a></li>
+ <li><a href="http://forums.accuweather.com">Weather Forums</a></li>
+ </ul>
+ <div class="clearfix"></div>
+ <span class="arrow"></span> <span class="arrow-border"></span> </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+ <div class="menu-foot-lt">
+ <div class="menu-foot-rt">
+ <div class="menu-foot"></div>
+ </div>
+ </div>
+ <!-- /.menu-foot-lt -->
+</div>
+<!-- #/current-country-menu --> <div id="menu-premium" class="menu menu-with-title">
+ <h3 class="menu-title"><span>Login</span></h3>
+ <div class="menu-head-lt">
+ <div class="menu-head-rt">
+ <div class="menu-head"></div>
+ </div>
+ </div>
+ <!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+ <ul class="menu-items">
+ <li><a href="https://wwwl.AccuWeather.com/premium_login.php" target="_blank">AccuWeather.com Premium</a></li>
+
+ <li><a href="https://wwwl.AccuWeather.com/pro_login.php" target="_blank">AccuWeather.com Professional</a></li>
+ <li><a href="http://radarplus.accuweather.com/" target="_blank">AccuWeather.com RadarPlus</a></li>
+ <li><a href="http://www.accuweather.com/adcbin/public/LightningPlus_Benefits.asp" target="_blank">AccuWeather.com LightningPlus</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+ <div class="menu-foot-lt">
+ <div class="menu-foot-rt">
+ <div class="menu-foot"></div>
+ </div>
+ </div>
+ <!-- /.menu-foot-lt -->
+</div>
+
+
+<div id="menu-settings" class="menu menu-with-title">
+
+ <h3 class="menu-title"><span></span></h3>
+
+ <div class="menu-head-lt">
+ <div class="menu-head-rt">
+ <div class="menu-head"></div>
+ </div>
+ </div>
+ <!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+
+ <h4>My Settings</h4>
+
+ <div class="control-wrap">
+
+ <form action="" method="post" autocomplete="false">
+
+ <label for="settings-language"></label>
+ <select id="settings-language" name="language" class="match-toggle" onchange="acm_updateLanguage(this.options[this.selectedIndex].value, (this.selectedIndex+1));">
+ <option value="en-us">English (US)</option>
+<option value="es">Espa&#241;ol</option>
+<option value="fr">Fran&#231;ais</option>
+<option value="da">Dansk</option>
+<option value="pt">Portugu&#234;s</option>
+<option value="nl">Nederlands</option>
+<option value="no">Norsk</option>
+<option value="it">Italiano</option>
+<option value="de">Deutsch</option>
+<option value="sv">Svenska</option>
+<option value="fi">Suomi</option>
+<option value="zh-hk">中文 (HK)</option>
+<option value="zh-cn">中文 (SIM)</option>
+<option value="zh-tw">中文 (Taiwan)</option>
+<option value="es-ar">Espa&#241;ol (Argentina)</option>
+<option value="es-mx">Espa&#241;ol (Latin America)</option>
+<option value="sk">Slovenčinu</option>
+<option value="ro">Romana</option>
+<option value="cs">Čeština</option>
+<option value="hu">Magyar</option>
+<option value="pl">Polski</option>
+<option value="ca">Catal&#224;</option>
+<option value="pt-br">Portugu&#234;s (Brazil)</option>
+<option value="hi">हिन्दी</option>
+<option value="ru">русский</option>
+<option value="ar">عربي</option>
+<option value="el">Ελληνικά</option>
+<option value="en-gb">English (UK)</option>
+<option value="ja">日本語</option>
+<option value="ko">한국어</option>
+<option value="tr">T&#220;RK&#199;E</option>
+<option value="fr-ca">Fran&#231;ais (Canada)</option>
+<option value="he">עברית</option>
+<option value="sl">Slovenski</option>
+<option value="uk">Українське</option>
+<option value="id">Bahasa Indonesia</option>
+<option value="bg">български</option>
+<option value="et">Eesti keeles</option>
+<option value="hr">Hrvatski</option>
+<option value="kk">Қазақша</option>
+<option value="lt">Lietuvių</option>
+<option value="lv">Latviski</option>
+<option value="mk">Македонски</option>
+<option value="ms">Bahasa Melayu</option>
+<option value="tl">Tagalog</option>
+<option value="sr">Srpski</option>
+<option value="th">ไทย</option>
+<option value="vi">Tiếng Việt</option>
+
+ </select>
+
+ </div>
+ <!-- /.control-wrap -->
+
+ <div id="radio-toggle-temp-unit" class="radio-toggle">
+ <label for="settings-temp-unit-farenheit" class="first">
+ <span>&deg;F</span>
+ <input id="settings-temp-unit-farenheit" name="temp_unit" type="radio" value="farenheit" onclick="acm_updateUnits('0');"/>
+ </label>
+
+ <label for="settings-temp-unit-celsius" class="last">
+ <span>&deg;C</span>
+ <input id="settings-temp-unit-celsius" name="temp_unit" type="radio" checked="checked" value="celsius" onclick="acm_updateUnits('1');"/>
+ </label>
+ </div>
+ <!-- /.radio-toggle -->
+
+ </form>
+
+ </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+
+ <div class="menu-foot-lt">
+ <div class="menu-foot-rt">
+ <div class="menu-foot"></div>
+ </div>
+ </div>
+ <!-- /.menu-foot-lt -->
+
+</div>
+<!-- /#settings-menu --> <div id="menu-country" class="menu menu-with-title">
+
+ <h3 class="menu-title"><span><span class="flag-CN">China</span></span></h3>
+
+ <div class="menu-head-lt">
+ <div class="menu-head-rt">
+ <div class="menu-head"></div>
+ </div>
+ </div>
+ <!-- /.menu-head-lt -->
+ <div class="menu-body-lt">
+ <div class="menu-body-rt">
+ <div class="menu-body">
+
+ <h4>My Recent Countries</h4>
+
+ <ul class="menu-items">
+ <li><a href="http://www.accuweather.com/en/cn/china-weather" class="flag-CN">China</a></li>
+ <li><a href="http://www.accuweather.com/en/us/united-states-weather" class="flag-US">United States</a></li>
+ <li><a href="http://www.accuweather.com/en/gb/united-kingdom-weather" class="flag-GB">United Kingdom</a></li>
+ </ul>
+
+ <a href="#country-selector" id="bt-more-countries">More Countries</a>
+
+ </div>
+ </div>
+ </div>
+ <!-- /.menu-body-lt -->
+
+ <div class="menu-foot-lt">
+ <div class="menu-foot-rt">
+ <div class="menu-foot"></div>
+ </div>
+ </div>
+ <!-- /.menu-foot-lt -->
+
+</div>
+<!-- /#menu-country -->
+<!-- add interest dropdown -->
+<div id="add-interest-dropdown" class="clearfix">
+
+ <div id="inner-content" class="clearfix">
+ </div><!-- end add-interest-inner-content -->
+
+ <!-- icons -->
+ <span class="arrow"></span>
+ <span class="arrow-border"></span>
+ <!-- end icons -->
+
+</div><!-- end id="add-interest-dropdown" -->
+
+<div id="wrap" class="spring h-f">
+ <div id="wrap-header-nav" class="day">
+ <div id="header-nav" class="i-11-header">
+
+
+<div id="header">
+
+ <div id="header-davek">
+ <div id="header-davek-ps"></div>
+ <script type="text/javascript">
+ acm.loadAd(aadTags, 'tile1', '#header-davek-ps', '90px');
+ </script>
+ </div>
+
+ <!-- /#header-ad -->
+ <style type="text/css">
+ #header-nav{overflow:visible;position:static;height:auto;}
+ #header-davek{margin-top:0px;padding-top:4px;}
+ </style>
+
+<div id="wrap-country-settings">
+ <div id="country-settings">
+ <a href="#menu-country" id="bt-menu-country" class="menu-arrow tmenu { el:'#menu-country', affix: { from: 'nw', to: 'nw', offset: [ -6, -8 ] } }"><strong><span class="ir flag-CN">China</span></strong></a>
+ <ul id="country-breadcrumbs">
+
+ <li class="first"><a href="http://www.accuweather.com/en/world-weather">World</a></li>
+ <li><a href="http://www.accuweather.com/en/asia-weather">Asia</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/china-weather">China</a></li>
+ <li><a href="http://www.accuweather.com/en/cn/31/shanghai-weather">Shanghai</a></li>
+ <li class="last"><a href="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577">Shanghai</a></li>
+ </ul>
+ <!-- /#country-breadcrumbs -->
+ </div>
+ <!-- /#nav-country -->
+</div>
+<!-- /#wrap-nav-country -->
+
+<div id="country-selector" class="strong panel">
+
+ <div class="panel-head-lt"><div class="panel-head-rt"><div class="panel-head"></div></div></div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="title">
+ <button class="bt bt-panel-close">Close</button>
+ <div id="country-selector-recent">
+ <h3>My Recent Countries</h3>
+ <ul>
+ <li class="first"><a href="http://www.accuweather.com/en/cn/china-weather" class="flag-CN">China</a></li>
+ <li class=""><a href="http://www.accuweather.com/en/us/united-states-weather" class="flag-US">United States</a></li>
+ <li class=""><a href="http://www.accuweather.com/en/gb/united-kingdom-weather" class="flag-GB">United Kingdom</a></li>
+ </ul>
+ </div>
+ <!-- /#country-selector-recent -->
+ </div>
+ <!-- /.title -->
+
+ <div id="country-selector-region" class="panel-content">
+
+ <div class="title">
+ <h3>Select a Region</h3>
+ </div>
+
+ <div class="content">
+
+ <ul id="country-selector-region-list" class="menu-items">
+ <li><a class="link-region" id="link-region-afr" href="#region-afr">Africa</a></li>
+ <li><a class="link-region" id="link-region-ant" href="#region-ant">Antarctica</a></li>
+ <li><a class="link-region" id="link-region-arc" href="#region-arc">Arctic</a></li>
+ <li><a class="link-region" id="link-region-asi" href="#region-asi">Asia</a></li>
+ <li><a class="link-region" id="link-region-cac" href="#region-cac">Central America</a></li>
+ <li><a class="link-region" id="link-region-eur" href="#region-eur">Europe</a></li>
+ <li><a class="link-region" id="link-region-mea" href="#region-mea">Middle East</a></li>
+ <li><a class="link-region" id="link-region-nam" href="#region-nam">North America</a></li>
+ <li><a class="link-region" id="link-region-ocn" href="#region-ocn">Oceania</a></li>
+ <li><a class="link-region" id="link-region-sam" href="#region-sam">South America</a></li>
+ </ul>
+ <!-- /#country-selector-region-list -->
+
+ <div id="country-selector-region-map">
+ </div>
+ <!-- /#country-selector-region-map -->
+ </div>
+ <!-- /.content -->
+ </div>
+ <!-- /#country-selector-region -->
+
+
+ <div id="country-selector-country" class="panel-content">
+ <div id="region-afr" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /africa-->
+ <div id="region-eur" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /europe-->
+ <div id="region-nam" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /north america-->
+ <div id="region-sam" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /south america-->
+ <div id="region-cac" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /central america-->
+ <div id="region-ocn" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /oceania-->
+ <div id="region-mea" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /middle east-->
+ <div id="region-ant" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /antarctica-->
+ <div id="region-arc" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /arctic-->
+ <div id="region-asi" class="region">
+ <div class="title"> <a href="#country-selector-region" class="world"><span>World</span></a>
+ <h3></h3>
+ </div>
+ <div class="items"> </div>
+ </div>
+ <!-- /asia-->
+ </div>
+ <!-- /#country-selector-country -->
+
+
+ <div id="country-selector-notes">
+ <p class="first">
+ Note: Select a region before finding a country.
+ </p>
+
+ <p></p>
+
+ </div>
+ <!-- /#country-selector-notes -->
+
+
+ </div>
+ </div>
+ </div>
+ <!-- /.panel-body-lt -->
+
+ <div class="panel-foot-lt"><div class="panel-foot-rt"><div class="panel-foot"></div></div></div>
+
+</div>
+<!-- / #country-selector -->
+
+
+ <div id="header-logo-search" class="clearfix">
+ <div id="header-logo" class="ir huafeng"><span>Shanghai Current Weather<span class="huafeng"></span></span></div>
+ <label for="s">for</label>
+
+ <div id="wrap-s-rt">
+ <div id="wrap-s-lt">
+ <div id="wrap-s" class="tmenu { affix: {offset: [ 0, 7 ], to: 'sw', from: 'nw'},el: '#menu-cities' }">
+ <form id="findcity" action="http://www.accuweather.com/en/search-locations" method="post">
+ <input onkeypress="acmCheckEnter(event);" id="s" name="s" type="text" autocomplete="off"
+ class="text hint { help: 'Shanghai, China',className:'hintedLoc' }" />
+ <input type="hidden" name="rn" value="3day" />
+ <button onclick="acmCitySubmit()" type="button" class="bt bt-go">
+ <div></div>
+ </button>
+ </form>
+ <script type="text/javascript">
+ (function ($) {
+ $('input.hint').hint();
+ })(jQuery);
+ </script>
+ </div>
+ </div>
+ </div>
+ <!-- /#wrap-s-rt -->
+
+ <!-- NEW! Removed widgets to accommodate login -->
+ <!-- NEW! Login menu -->
+ <a id="bt-menu-login" class="tmenu { el:'#menu-premium', affix: { to: 'ne', from: 'ne', offset: [ 0,-6 ] } }"><span class="menu-arrow"><span>Login</span></span></a>
+ <!-- NEW! moving menu settings here, which affects css -->
+ <a id="bt-menu-settings" class="tmenu { el:'#menu-settings', affix: { from: 'ne', to: 'ne', offset: [ 0,-6 ] } }"><span class="menu-arrow"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>, &deg;C</span></a>
+
+
+ </div>
+ <!-- /#header-logo-search -->
+</div>
+<!-- /#header -->
+
+ </div>
+ <!-- /#header-nav -->
+ </div>
+ <!-- /#wrap-header-nav -->
+
+
+ <div id="wrap-content">
+ <div id="content">
+
+<!-- NEW! adding add-interest tab -->
+<div id="nav-main-add-interests" class="clearfix">
+
+ <div id="nav-main-background"></div>
+
+ <ul id="nav-current-location" class="sub-nav">
+ <li id="current-country-tab" class=" tmenu { affix: {offset: [ 0, 5 ], to: 'sw', from: 'nw' }, el: '#current-country-menu' }">
+ <a href="http://www.accuweather.com/en/cn/china-weather" class="tab">
+ <span class="current-country">China</span>
+ <span class="title">Weather</span>
+ </a>
+ <span class="bottom-line"></span>
+ </li>
+ <li id="current-city-tab" class="selected tmenu { affix: {offset: [ 0, 5 ], to: 'sw', from: 'nw'}, el: '#current-city-menu' }">
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577" class="tab">
+ <span class="current-city"><h1>Shanghai, CN</h1></span>
+ <span class="title"><h2>Local Weather</h2></span>
+ <span class="divider"></span>
+ <span class="more-info-arrow"></span>
+ <div class="more-info-content">
+ </div><!-- end more-info-content -->
+ </a>
+ </li>
+ <li id="locations-dropdown-tab" class="location-menu { el: '#locations-dropdown-menu' }">
+ <a href="#" class="tab">
+ <span class="arrow"></span>
+ <span class="divider"></span>
+ </a>
+ <span class="cover-line"></span>
+ </li>
+ </ul><!-- end nav-current-location -->
+
+
+ <!-- New! locations dropdown menu -->
+ <div id="locations-dropdown-menu" class="menu">
+ <div class="outer-border">
+ <div id="locations-carousel" class="locations-carousel">
+ <button class="carousel-button carousel-left disabled">
+ <span class="inner-button">
+ <span class="arrow"></span>
+ </span><!-- end inner-button-->
+ </button>
+ <button class="carousel-button carousel-right">
+ <span class="inner-button">
+ <span class="arrow"></span>
+ </span><!-- end inner-button-->
+ </button>
+ <div class="outer-carousel">
+ <div class="inner-carousel clearfix">
+
+ <div class="my-recent-locations clearfix">
+ <h3>My Recent Locations</h3>
+ <ul>
+
+ </ul>
+ </div><!-- end my recent locations -->
+
+ </div><!-- end inner-carousel-->
+ </div><!-- end outer-carousel -->
+ </div><!-- end carousel -->
+ </div><!-- outer-border -->
+ </div><!-- end locations-dropdown-menu -->
+
+</div><!-- end nav-main-add-interests-->
+
+<script type="text/javascript">
+ acm.setupMenus();
+</script>
+
+
+
+
+<div class="subnav-head-tabs-rt clearfix">
+ <div class="subnav-head-tabs-lt clearfix">
+ <ul class="subnav-tab-buttons">
+
+
+ <li ><a href="http://www.accuweather.com/en/cn/shanghai/106577/weather-forecast/106577"><span>Now</span></a></li>
+ <li ><a href="http://www.accuweather.com/en/cn/shanghai/106577/weekend-weather/106577"><span>Weekend</span></a></li>
+ <li class="current"><a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577"><span><strong>Extended</strong></span></a><div class="nub"></div></li>
+ <li ><a href="http://www.accuweather.com/en/cn/shanghai/106577/may-weather/106577"><span>Month</span></a></li>
+ <li class="last"><a href="http://www.accuweather.com/en/cn/shanghai/106577/satellite/106577"><span>Satellite</span></a></li>
+
+
+ </ul>
+ </div>
+</div>
+<!-- /.panel-head-rt -->
+
+<div class="column-1 clearfix">
+ <div id="panel-main" class="strong panel">
+ <!-- NOTE: The left and right ordering is swapped for this one, since it's a two element stretch! -->
+ <div class="panel-head-rt">
+ <div class="panel-head-lt">
+ </div>
+ </div>
+ <!-- /.panel-head-rt -->
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+
+
+<div class="feed-controls clearfix">
+ <span class="lt">1 - 5 of 45 days | <a href="http://www.accuweather.com/en/cn/shanghai/106577/month/106577?view=table">All 45 days</a></span>
+ <ul class="g g-nav rt">
+ <li class="first"><a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=6">Next 5 &gt;</a></li>
+ </ul>
+</div>
+<!-- /.feed-controls -->
+
+<div id="feed-tabs">
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=6" class="arrow-right">Next 5 Days<span></span></a>
+
+ <ul>
+ <li class="day current first cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=1' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Today</a></h3>
+ <h4>May 10</h4>
+ <div class="icon i-12-s "></div>
+ <div class="info">
+ <span class="cond">Rain and drizzle this morning</span>
+ <strong class="temp">22<span>&deg;</span></strong><span class="low"><span>Lo</span> 19<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=2' }">
+ <div class="frame"></div>
+ <div class="bg bg-r">
+ <h3><a href="#">Sun</a></h3>
+ <h4>May 11</h4>
+ <div class="icon i-18-s "></div>
+ <div class="info">
+ <span class="cond">Humid with heavy rain</span>
+ <strong class="temp">23<span>&deg;</span></strong><span class="low"><span>Lo</span> 17<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=2" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=3' }">
+ <div class="frame"></div>
+ <div class="bg bg-su">
+ <h3><a href="#">Mon</a></h3>
+ <h4>May 12</h4>
+ <div class="icon i-1-s "></div>
+ <div class="info">
+ <span class="cond">Nice and warm with sunshine</span>
+ <strong class="temp">26<span>&deg;</span></strong><span class="low"><span>Lo</span> 16<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=3" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=4' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Tue</a></h3>
+ <h4>May 13</h4>
+ <div class="icon i-6-s "></div>
+ <div class="info">
+ <span class="cond">Rather cloudy and warm</span>
+ <strong class="temp">26<span>&deg;</span></strong><span class="low"><span>Lo</span> 18<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=4" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv last cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=5' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Wed</a></h3>
+ <h4>May 14</h4>
+ <div class="icon i-12-s "></div>
+ <div class="info">
+ <span class="cond">Showers around in the morning</span>
+ <strong class="temp">25<span>&deg;</span></strong><span class="low"><span>Lo</span> 18<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=5" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ </ul>
+</div>
+<!-- /.feed-tabs -->
+
+
+
+ <div id="details">
+ <ul id="detail-tab-buttons" class="detail-tab-buttons">
+ <li class="first current { target: '#detail-now' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/current-weather/106577" class=""><span>Now</span></a>
+ <div class="nub"></div>
+ </li>
+ <li class="{ target: '#detail-day-night' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577"><span>Daily</span></a></li>
+ <li class="last { target: '#detail-hourly' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/hourly-weather-forecast/106577"><span>Hourly</span></a></li>
+ <li class="{ target: '#detail-morning' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/morning-weather-forecast/106577"><span>Morning</span></a></li>
+ <li class="{ target: '#detail-afternoon' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/afternoon-weather-forecast/106577"><span>Afternoon</span></a></li>
+ <li class="{ target: '#detail-evening' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/evening-weather-forecast/106577"><span>Evening</span></a></li>
+ <li class="last { target: '#detail-overnight' }"><a href="http://www.accuweather.com/en/cn/shanghai/106577/overnight-weather-forecast/106577"><span>Overnight</span></a></li>
+ </ul>
+ <!-- /#detail-tab-buttons.detail-tab-buttons -->
+ <div id="detail-now" class="detail-tab-panel day">
+ <div class="bg bg-f">
+ <div class="forecast">
+ <div class="icon i-11-xl"></div>
+ <div class="info"> <span class="cond">Light fog</span> <span class="temp">19<span>&deg;</span></span> <span class="realfeel">RealFeel&#174; 20<span>&deg;</span></span> </div>
+ <!-- /.info -->
+ </div>
+ <!-- /.forecast -->
+ <div class="more-info">
+ <!--
+ <img src="http://vortex.accuweather.com/adc2010/images/icons-wind/SE.gif" width="260" height="138" alt="" />
+ -->
+ <div class="wind-box-lg">
+ <div id="wind-arm-day" class="wind-arm"></div>
+ <p class="n">N</p>
+ <p class="e">E</p>
+ <p class="s">S</p>
+ <p class="w">W</p>
+ <script type="text/javascript">
+ (function () {
+ var d = 'SE';
+ var s = '17km/h';
+ $('#wind-arm-day').flash({ 'wmode': 'transparent', 'allowScriptAccess': 'always', 'src': 'http://vortex.accuweather.com/adc2010/flash/wind-arm-large.swf?speed=' + s + '&direction=' + d.toLowerCase() + '&units=km/h', 'width': '260', 'height': '138' });
+ if (typeof (acm_hasFlash) != 'undefined' && !acm_hasFlash) {
+ $('#wind-arm-day').html('<img src="http://vortex.accuweather.com/adc2010/images/icons-wind/arrow-lg-' + d + '.png" />');
+ }
+ })();
+ </script>
+ </div>
+
+
+ <ul class="stats">
+ <li>Humidity: <strong>88%</strong></li>
+ <li>Pressure: <strong>1014.00 mb </strong></li>
+ <li>UV Index: <strong>4</strong></li>
+ <li>Cloud Cover: <strong>20%</strong></li>
+ <li>Ceiling: <strong>549 m</strong></li>
+ <li>Dew Point: <strong>17&#176;&nbsp;C</strong></li>
+ <li>Visibility: <strong>3 km</strong></li>
+ </ul>
+ <!-- /.stats -->
+ </div>
+ <!-- /.more-info -->
+
+ <div style="position:absolute;top:124px;left:427px;height:20px;font-weight:bold;font-size:10px;text-align:center;">17 km/h</div>
+
+ </div>
+ <!-- /.bg -->
+ </div>
+ <!-- /.detail-tab-panel -->
+ </div>
+ <!-- /#details -->
+
+ <script>acm.setupLifestylePromoLinks(jQuery);</script>
+
+ <div id="feature-sun" class="feature feature-first">
+ <div class="feature-title">
+ <h3 class="lt">Sunrise/Sunset</h3>
+ </div>
+ <!-- /.feature-title -->
+
+ <img src="http://vortex.accuweather.com/adc2010/images/features/sun.jpg" width="289" height="108" alt="Sunrise / Sunset Illustration" />
+
+ <p class="time-period">
+ <span class="ac">Rises at</span>
+ <span class="start">5:03 AM</span>
+ <span class="ac">with</span>
+
+ <span class="time">13:36</span>
+
+ <span class="ac">of sunlight, then sets at</span>
+ <span class="finish">6:39 PM</span>
+ </p>
+ <!-- /.content -->
+ </div>
+ <!-- /.feature -->
+
+ <div id="feature-moon" class="feature">
+ <div class="feature-title">
+ <h3 class="lt">Moonrise/Moonset</h3>
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/astronomy-weather/106577" class="more rt">Astronomy &gt;</a>
+ </div>
+ <!-- /.feature-title -->
+
+ <img src="http://vortex.accuweather.com/adc2010/images/features/moon.jpg" width="289" height="108" alt="Moonrise / Moonset Illustration" />
+
+ <p class="time-period">
+ <span class="ac">Rises at</span>
+ <span class="start">2:18 PM</span>
+ <span class="ac">with</span>
+ <span class="time">12:14</span>
+ <span class="ac">of moolight, then sets at</span>
+ <span class="finish">2:32 AM</span>
+ </p>
+ <!-- /.content -->
+ </div>
+
+ <!-- /.feature -->
+
+ <div class="panel-body-content">
+ <div class="feature-stats">
+ <h3>Temperature Summary - 10:58 AM</h3>
+ <div class="clearfix">
+ <div class="lt" style="width:290px;">
+ <table cellspacing="0" class="stats">
+ <thead>
+ <tr>
+ <th>&nbsp;</th>
+ <th>Temp (&deg;C)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="pre">
+ <th scope="row">Now</th>
+ <td>19&deg;</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Yesterday</th>
+ <td>21&deg;</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">RealFeel&#174;</th>
+ <td>20&deg;</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">RealFeel&#174; Shade</th>
+ <td>18&deg;</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Wind Chill</th>
+ <td>19&deg;</td>
+ </tr>
+ <tr class="last pre">
+ <th scope="row">Dew Point</th>
+ <td>17&deg;</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="rt" style="width:290px;">
+ <table cellspacing="0" class="stats">
+ <thead>
+ <tr>
+ <th>&nbsp;</th>
+ <th>Hi / Lo</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="hi">
+ <th scope="row" style="border-bottom:2px solid transparent;">Previous 6 Hours</th>
+ <td>20&deg;</td>
+ </tr>
+ <tr class="lo">
+ <th scope="row">&nbsp;</th>
+ <td>18&deg;</td>
+ </tr>
+ <tr class="hi">
+ <th scope="row" style="border-bottom:2px solid transparent;">Previous 12 Hours</th>
+ <td>20&deg;</td>
+ </tr>
+ <tr class="lo">
+ <th scope="row">&nbsp;</th>
+ <td>17&deg;</td>
+ </tr>
+ <tr class="hi">
+ <th scope="row" style="border-bottom:2px solid transparent;">Previous 24 Hours</th>
+ <td>22&deg;</td>
+ </tr>
+ <tr class="lo">
+ <th scope="row">&nbsp;</th>
+ <td>17&deg;</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ </div>
+
+ <div id="feature-history">
+ <div class="clearfix">
+ <h3 class="lt">Temperature History - May 10</h3>
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/month/106577?view=table" class="more rt">more Historical Weather Data &gt;</a>
+ <!-- /.rt -->
+ </div>
+
+ <table cellspacing="0" class="stats">
+ <thead>
+ <tr>
+ <th>&nbsp;</th>
+ <th>Today</th>
+ <th>Normal</th>
+ <th>Record</th>
+ <th>5/10/2013</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="hi">
+ <th scope="row">High</th>
+ <td>22&#176;</td>
+
+ <td class="high">23&#176;</td>
+
+ <td>N/A</td>
+
+ <td>24&#176;</td>
+ </tr>
+
+ <tr class="last lo">
+ <th scope="row">Low</th>
+ <td>19&#176;</td>
+
+ <td class="high">16&#176;</td>
+
+ <td>N/A</td>
+
+ <td>18&#176;</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <!-- /#feature-history -->
+
+ <div class="panel-body-content">
+ <div class="feature-stats">
+ <h3>Precipitation Summary - 10:58 AM</h3>
+ <table cellspacing="0" class="stats">
+ <thead>
+ <tr>
+ <th>&nbsp;</th>
+ <th>Amount (mm)</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr class="pre">
+ <th scope="row">Previous 1 Hour</th>
+ <td>0</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Previous 3 Hours</th>
+ <td>0</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Previous 6 Hours</th>
+ <td>1</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Previous 9 Hours</th>
+ <td>1</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Previous 12 Hours</th>
+ <td>1</td>
+ </tr>
+ <tr class="pre">
+ <th scope="row">Previous 18 Hours</th>
+ <td>1</td>
+ </tr>
+ <tr class="last pre">
+ <th scope="row">Previous 24 Hours</th>
+ <td>1</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+
+ </div>
+ </div>
+ </div>
+ <!-- /.panel-body-lt -->
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+ </div>
+
+ <!-- /#panel-main -->
+
+ <div class="panel panel-top-story">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="article-wrap">
+ <span>Top Story</span>
+ <h3>Shanghai Weather Report</h3>
+ <div id="article" class="article">
+ <a href="http://www.accuweather.com/en/weather-news/hong-kong-flooding-rain/26703868" class="wrap">
+ <img src="http://vortex.accuweather.com/adc2004/pub/includes/columns/newsstory/2014/237x145_05091356_weekendthumb.jpg" width="237" height="145" alt="" />
+ </a>
+ <div class="info">
+ <h4><a href="http://www.accuweather.com/en/weather-news/hong-kong-flooding-rain/26703868">Rainfall Tops 400 mm Near Hong Kong, More to Come</a></h4>
+ <h5>May 9, 2014; 10:05 PM ET</h5>
+ <p>Hong Kong has already endured flooding rain, and more is on the way for this weekend. <a href="http://www.accuweather.com/en/weather-news/hong-kong-flooding-rain/26703868" class="more">more &gt;</a></p>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ <!-- /.column-1 -->
+
+
+
+<div class="column-2 clearfix">
+
+
+
+<div id="aadTop300" class="panel">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div id="top-panel-body-rt-body" class="ad-lr panel-body">
+ <div id="top-panel-body-rt-body-ps" ></div>
+ <script type="text/javascript">
+ acm.loadAd(aadTags, 'tile2', '#top-panel-body-rt-body-ps', '250px');
+ </script>
+ </div>
+ </div>
+ </div>
+
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+</div><div class="panel">
+ <div class="panel-head-rt">
+ <div class="panel-head-lt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="panel-body-content">
+ <a href="http://www.accuweatherglobal.com/demo.php" target="_blank"><img src="http://vortex.accuweather.com/adc2010/images/misc/Ad_Weather_Data_Portal_Final.png" /></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+</div>
+<div id="ad-links" class="panel">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="panel-body-content" id="ad-links-content">
+ <div id="ad-links-content-x">
+ <div id="ad-links-content-x-ps"></div>
+ <script>
+ acm.loadTextAd("#ad-links-content-x");
+ </script>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+</div>
+
+
+<div id="aadBot300" class="panel panel-ad-mr">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div id="bottom-panel-body" class="panel-body">
+ <div id="bottom-panel-body-ps" ></div>
+ <script type="text/javascript">
+ acm.loadAd(aadTags, 'tile3', '#bottom-panel-body-ps', '250px');
+ </script>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"> </div>
+ </div>
+ </div>
+</div>
+
+ </div>
+
+ <!-- /.column-2 -->
+
+
+
+<div id="offers" class="offers-extras">
+ <div class="panel">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="panel-body-content">
+ <a class="{type:'Image',label:'AccuWeather Premium'}" href="https://wwwl.accuweather.com/premium_login.php?&amp;utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=MoreWeather" target="_blank"><img src="http://vortex.accuweather.com/adc2010/images/features/en/extra_adc_premium.png" width="300" height="140" alt="AccuWeather Premium" /></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+ </div>
+ <!-- /extra 1 -->
+ <div class="panel">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="panel-body-content">
+ <a class="{type:'Image',label:'Weather Data Portal'}" href="http://www.accuweatherglobal.com/default.php" target="_blank"><img src="http://vortex.accuweather.com/adc2004/pub/includes/columns/monthlyfeature/2013/300x140_08141931_ad_weather-data-portal_final.png" width="300" height="140" alt="Weather Data Portal" /></a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+ </div>
+ <!-- /extra 2 -->
+
+ <div class="panel scroll-panel">
+ <div class="panel-head-lt">
+ <div class="panel-head-rt">
+ <div class="panel-head"></div>
+ </div>
+ </div>
+ <div class="panel-body-lt">
+ <div class="panel-body-rt">
+ <div class="panel-body">
+ <div class="panel-body-content">
+ <h3></h3>
+ <ul class="scroll-area scrollbar">
+ <li><a class="{type:'Text',label:'AccuWeather Shines on U'}" href="http://getu.com/accuweather/?srl=1000668" target="_blank">AccuWeather Shines on U</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather&#39;s Superior Accuracy'}" href="http://enterprisesolutions.accuweather.com/success-stories?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_content=accuweatheradvantage&amp;utm_campaign=SuccessStories" target="_blank">AccuWeather&#39;s Superior Accuracy</a></li>
+ <li><a class="{type:'Text',label:'Free Weather For Your Site'}" href="http://www.accuweather.com/en/free-weather-widgets?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=FreeWidget" target="_blank">Free Weather For Your Site</a></li>
+ <li><a class="{type:'Text',label:'Forensic Weather'}" href="http://enterprisesolutions.accuweather.com/legal-forensics?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=forensics" target="_blank">Forensic Weather</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather Premium'}" href="https://wwwl.accuweather.com/premium_login.php?&amp;utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=MoreWeather" target="_blank">AccuWeather Premium</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather for iPad'}" href="http://itunes.apple.com/us/app/accu-weather-free-for-ipad/id364616869?mt=8" target="_blank">AccuWeather for iPad</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather Professional'}" href="https://wwwl.accuweather.com/pro_login.php#&amp;panel1-2?&amp;utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=Professional" target="_blank">AccuWeather Professional</a></li>
+ <li><a class="{type:'Text',label:'SkyGuard Warnings'}" href="http://enterprisesolutions.accuweather.com/skyguard?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_campaign=SkyGuard" target="_blank">SkyGuard Warnings</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather for iPhone'}" href="http://itunes.apple.com/us/app/accuweather-for-iphone/id300048137?mt=8" target="_blank">AccuWeather for iPhone</a></li>
+ <li><a class="{type:'Text',label:'SkyGuard Online'}" href="http://enterprisesolutions.accuweather.com/skyguard-online?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_content=skyguardonline&amp;utm_campaign=SkyGuard" target="_blank">SkyGuard Online</a></li>
+ <li><a class="{type:'Text',label:'SkyGuard Long-Range'}" href="http://enterprisesolutions.accuweather.com/forecasts?utm_source=adc&amp;utm_medium=ExtraAd&amp;utm_content=longrangeforecasts&amp;utm_campaign=SkyGuard" target="_blank">SkyGuard Long-Range</a></li>
+ <li><a class="{type:'Text',label:'AccuWeather Toolbar'}" href="http://downloadmytoolbar.com/Accuweather/" target="_blank">AccuWeather Toolbar</a></li>
+ <li><a class="{type:'Text',label:'Weather Data Portal'}" href="http://www.accuweatherglobal.com/default.php" target="_blank">Weather Data Portal</a></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-foot-lt">
+ <div class="panel-foot-rt">
+ <div class="panel-foot"></div>
+ </div>
+ </div>
+ </div>
+ <!-- /everything else -->
+</div>
+<script>
+ (function ($) {
+ $('#offers.offers-extras a').click(function () {
+ var l = $(this).metadata().label;
+ var t = $(this).metadata().type;
+ if (l && t) {
+ _gaq.push(['_trackEvent', 'AccuWeatherExtras2012', t, l]);
+ }
+ });
+ })(jQuery);
+</script>
+ </div>
+ <!-- /#content -->
+ </div>
+ <!-- /#wrap-content -->
+
+ <div id="footer">
+ <div id="footer-content-wrapper">
+ <div class="logo-ad">
+ <h5 class="logo">AccuWeather.com</h5>
+ <div id="footer-stevem">
+ <div id="footer-stevem-ps" ></div>
+ <script type="text/javascript">
+ acm.loadAd(aadTags, 'tile4', '#footer-stevem-ps', '90px');
+ </script>
+ </div>
+ </div>
+
+ <div id="custom-goog-search">
+ <style type="text/css">
+ @import url(http://www.google.com/cse/api/branding.css);
+ </style>
+ <div class="cse-branding-right" style="color:#000000">
+ <div class="cse-branding-form">
+ <form action="http://www.google.com" id="cse-search-box" target="_blank">
+ <div>
+ <input type="hidden" name="cx" value="partner-pub-5771594739411148:7839492073" />
+ <input type="hidden" name="ie" value="UTF-8" />
+ <input id="goog-cse-input" type="text" name="q" size="100" />
+ <input id="goog-cse-submit" type="submit" name="sa" value="" />
+ </div>
+ </form>
+ </div>
+ <div class="cse-branding-logo">
+ <img src="http://vortex.accuweather.com/adc2010/images/misc/googlelogo.png" alt="Google" />
+ </div>
+ <div class="cse-branding-text">
+ Custom Search
+ </div>
+ </div>
+
+ </div>
+ <div id="footer-nav-main" class="clearfix">
+ <div class="first">
+ <ul class="footer-nav-cols">
+ <li class="head">Company</li>
+ <li><a href="http://www.accuweather.com/en/about">About Us</a></li>
+ <li><a href="http://www.accuweather.com/media-kit">Advertise With Us</a></li>
+ <li><a href="http://www.accuweather.com/en/self-service-advertising">Self-Serve Advertising</a></li>
+ <li><a href="http://accuweathercareers.silkroad.com/" target="_blank">Careers</a></li>
+ <li><a href="http://www.accuweather.com/en/press">Press</a></li>
+
+ <li><a href="http://www.accuweather.com/en/contact">Contact Us</a></li>
+ </ul>
+ </div>
+ <div>
+ <ul class="footer-nav-cols">
+ <li class="head">Enterprise Solutions</li>
+ <li><a href="http://www.accuweather.com/adc2004/pub/products_services/media.asp" target="_blank">Media</a></li>
+ <li><a href="http://enterprisesolutions.accuweather.com/manufacturing" target="_blank">Manufacturing</a></li>
+ <li><a href="http://enterprisesolutions.accuweather.com/retail" target="_blank">Retail</a></li>
+ <li><a href="http://enterprisesolutions.accuweather.com/finance-banking" target="_blank">Finance &amp; Banking</a></li>
+ <li><a href="http://enterprisesolutions.accuweather.com/energy" target="_blank">Energy</a></li>
+ <li><a href="http://enterprisesolutions.accuweather.com" target="_blank">All Enterprise Solutions</a></li>
+ </ul>
+ </div>
+ <div>
+ <ul class="footer-nav-cols">
+ <li class="head">Subscription Services</li>
+ <li><a href="https://wwwl.accuweather.com/premium_login.php" target="_blank">AccuWeather Premium</a></li>
+ <li><a href="https://wwwl.accuweather.com/pro_login.php" target="_blank">AccuWeather Professional</a></li>
+ <li><a href="http://radarplus.accuweather.com/" target="_blank">AccuWeather RadarPlus</a></li>
+ <li><a href="http://www.accuweather.com/adcbin/public/LightningPlus_Benefits.asp" target="_blank">Lightning Plus</a></li>
+ </ul>
+ </div>
+ <div class="last">
+ <ul class="footer-nav-cols">
+ <li class="head">Partners</li>
+ <li class="img"><a href="http://www.adci.com/html/worldmap/adc_worldmap_digital_atlas.php" target="_blank" class="adci-world-map"></a></li>
+ <!--<li><a href="" target="_blank">Mobium GPS / GeoMicro</a></li>-->
+ </ul>
+ </div>
+ </div>
+ <div id="footer-tm"> &copy; 2014 AccuWeather, Inc. All Rights Reserved.<br />
+ AccuWeather.com is a registered trademark of AccuWeather, Inc.<br />
+ <a href="http://www.accuweather.com/en/legal">Terms of usage</a> under which this service is provided<br />
+ <a href="http://www.accuweather.com/en/privacy">Privacy Statement</a> | <a href="http://www.accuweather.com/en/privacy#adChoices">Ad Choices</a> </div>
+ <div id="footer-social">
+ <ul>
+ <li class="apps"><a href="http://www.accuweather.com/en/downloads">Apps &amp; Downloads</a></li>
+ <li class="fb"><a href="http://www.facebook.com/AccuWeather" target="_blank">Like Us</a></li>
+ <li class="twt"><a href="http://twitter.com/BreakingWeather" target="_blank">Follow Us</a></li>
+ <li class="utube"><a href="http://www.youtube.com/accuweather" target="_blank">Watch Us</a></li>
+ </ul>
+ </div>
+ <!-- /#footer-info -->
+ </div>
+ <!-- /#footer-content-wrapper -->
+ </div>
+<!-- /#footer -->
+
+ <script>
+ if (acm && acm.isUsePostscribe() === false) {
+ // Only make this call if we are not using postscribe
+ // (otherwise the call was already made in PostScribe's done event)
+ if (typeof (aad_getCustomSponsors) == 'function') {
+ aadTags.tile1Done = true;
+ aadTags.tile2Done = true;
+ aadTags.tile3Done = true;
+ aadTags.tile4Done = true;
+ aad_getCustomSponsors(aadTags);
+ }
+ }
+ </script>
+ <script>
+ if (typeof (aadSponsoredLinksObj) != 'undefined' && aadSponsoredLinksObj.type == 'google' && aadSponsoredLinksObj.show_links == true) {
+ document.write('<scr' + 'ipt src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></scr' + 'ipt>');
+ } else if (typeof (aadSponsoredLinksObj) == 'undefined') {
+ jQuery('#ad-links').remove();
+ }
+ </script>
+<div id="tracking-pixels"></div>
+
+</div>
+<!-- /#wrap -->
+
+ <div class="vcard">
+ <span class="adr">
+ <span class="locality">
+ <span class="value-title" title="Shanghai" ></span>
+ </span>
+ <abbr class="region" title="Shanghai">
+ <span class="value-title" title="31" ></span>
+ </abbr>
+ <abbr class="country-name" title="China">
+ <span class="value-title" title="CN" ></span>
+ </abbr>
+ </span>
+ <span class="geo">
+ <span class="latitude">
+ <span class="value-title" title="31.23" ></span>
+ </span>
+ <span class="longitude">
+ <span class="value-title" title="121.44"></span>
+ </span>
+ </span>
+ </div>
+
+ <script type="text/javascript">
+ var _qoptions = { qacct: 'p-4b4gl_1fWISuU' };
+ if (typeof (apgPageInfoObj) != 'undefined' && apgPageInfoObj.crumb_trail) {
+ _qoptions.labels = apgPageInfoObj.crumb_trail.join('.');
+ }
+ </script>
+ <script type="text/javascript" src="http://edge.quantserve.com/quant.js"></script>
+ <noscript>
+ <a href="http://www.quantcast.com/p-4b4gl_1fWISuU" target="_blank"><img src="http://pixel.quantserve.com/pixel/p-4b4gl_1fWISuU.gif" style="display: none" border="0" height="1" width="1" alt="Quantcast"/></a>
+ </noscript> <script type="text/javascript">
+ (function () {
+ var d = new Image(1, 1);
+ d.onerror = d.onload = function () {
+ d.onerror = d.onload = null;
+ };
+ d.src = ["//secure-us.imrworldwide.com/cgi-bin/m?ci=us-accuweather&cg=0&cc=1&si=", escape(window.location.href), "&rp=", escape(document.referrer), "&ts=compact&rnd=", (new Date()).getTime()].join('');
+ })();
+ </script>
+ <noscript>
+ <img style="display:none;" src="//secure-us.imrworldwide.com/cgi-bin/m?ci=us-accuweather&amp;cg=0&amp;cc=1&amp;ts=noscript" width="1" height="1" alt="" />
+ </noscript>
+ <noscript>
+ <img src="http://b.scorecardresearch.com/p?c1=2&c2=6005068&cv=2.0&cj=1" />
+ </noscript>
+ <!-- Migraine/migraine -->
+
+
+</body>
+</html>
diff --git a/.conky/cronograph/accuweather/last_days b/.conky/cronograph/accuweather/last_days
new file mode 100644
index 0000000..75a56d9
--- /dev/null
+++ b/.conky/cronograph/accuweather/last_days
@@ -0,0 +1,25 @@
+WED
+12
+Showers around in the morning
+25
+17
+THU
+d
+Mostly cloudy
+26
+18
+FRI
+b
+Partly sunny
+23
+15
+SAT
+i
+Cooler with rain
+17
+16
+SUN
+i
+Periods of rain
+21
+17
diff --git a/.conky/cronograph/accuweather/last_days_raw b/.conky/cronograph/accuweather/last_days_raw
new file mode 100644
index 0000000..6ac7def
--- /dev/null
+++ b/.conky/cronograph/accuweather/last_days_raw
@@ -0,0 +1,82 @@
+<div id="feed-tabs">
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577" class="arrow-left">Previous 5 Days<span></span></a>
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=11" class="arrow-right">Next 5 Days<span></span></a>
+
+ <ul>
+ <li class="day current first cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=6' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Wed</a></h3>
+ <h4>May 14</h4>
+ <div class="icon i-12-s "></div>
+ <div class="info">
+ <span class="cond">Showers around in the morning</span>
+ <strong class="temp">25<span>&deg;</span></strong><span class="low"><span>Lo</span> 17<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=7' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Thu</a></h3>
+ <h4>May 15</h4>
+ <div class="icon i-6-s "></div>
+ <div class="info">
+ <span class="cond">Mostly cloudy</span>
+ <strong class="temp">26<span>&deg;</span></strong><span class="low"><span>Lo</span> 18<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=7" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=8' }">
+ <div class="frame"></div>
+ <div class="bg bg-su">
+ <h3><a href="#">Fri</a></h3>
+ <h4>May 16</h4>
+ <div class="icon i-3-s "></div>
+ <div class="info">
+ <span class="cond">Partly sunny</span>
+ <strong class="temp">23<span>&deg;</span></strong><span class="low"><span>Lo</span> 15<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=8" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=9' }">
+ <div class="frame"></div>
+ <div class="bg bg-r">
+ <h3><a href="#">Sat</a></h3>
+ <h4>May 17</h4>
+ <div class="icon i-18-s "></div>
+ <div class="info">
+ <span class="cond">Cooler with rain</span>
+ <strong class="temp">17<span>&deg;</span></strong><span class="low"><span>Lo</span> 16<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=9" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv last cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=10' }">
+ <div class="frame"></div>
+ <div class="bg bg-r">
+ <h3><a href="#">Sun</a></h3>
+ <h4>May 18</h4>
+ <div class="icon i-18-s "></div>
+ <div class="info">
+ <span class="cond">Periods of rain</span>
+ <strong class="temp">21<span>&deg;</span></strong><span class="low"><span>Lo</span> 17<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=10" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ </ul>
+</div>
+<!-- /.feed-tabs -->
diff --git a/.conky/cronograph/accuweather/tod_ton b/.conky/cronograph/accuweather/tod_ton
new file mode 100644
index 0000000..a839d7e
--- /dev/null
+++ b/.conky/cronograph/accuweather/tod_ton
@@ -0,0 +1,25 @@
+TONIGHT
+h
+Rain and drizzle late
+-
+17
+SAT
+e
+Cloudy and breezy
+21
+18
+SUN
+i
+Humid with heavy rain
+23
+16
+MON
+a
+Nice and warm with sunshine
+26
+16
+TUE
+d
+Rather cloudy and warm
+26
+17
diff --git a/.conky/cronograph/accuweather/tod_ton_raw b/.conky/cronograph/accuweather/tod_ton_raw
new file mode 100644
index 0000000..2976b86
--- /dev/null
+++ b/.conky/cronograph/accuweather/tod_ton_raw
@@ -0,0 +1,81 @@
+<div id="feed-tabs">
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=6" class="arrow-right">Next 5 Days<span></span></a>
+
+ <ul>
+ <li class="night current first cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=1' }">
+ <div class="frame"></div>
+ <div class="bg bg-s">
+ <h3><a href="#">Tonight</a></h3>
+ <h4>May 9</h4>
+ <div class="icon i-12-s "></div>
+ <div class="info">
+ <span class="cond">Rain and drizzle late</span>
+ <span class="low" style="color:#ffffff;">Lo </span><strong class="temp">17<span>&deg;</span></strong>
+ </div>
+ <!-- /.info -->
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=2' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Sat</a></h3>
+ <h4>May 10</h4>
+ <div class="icon i-7-s "></div>
+ <div class="info">
+ <span class="cond">Cloudy and breezy</span>
+ <strong class="temp">21<span>&deg;</span></strong><span class="low"><span>Lo</span> 18<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=2" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=3' }">
+ <div class="frame"></div>
+ <div class="bg bg-r">
+ <h3><a href="#">Sun</a></h3>
+ <h4>May 11</h4>
+ <div class="icon i-18-s "></div>
+ <div class="info">
+ <span class="cond">Humid with heavy rain</span>
+ <strong class="temp">23<span>&deg;</span></strong><span class="low"><span>Lo</span> 16<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=3" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=4' }">
+ <div class="frame"></div>
+ <div class="bg bg-su">
+ <h3><a href="#">Mon</a></h3>
+ <h4>May 12</h4>
+ <div class="icon i-1-s "></div>
+ <div class="info">
+ <span class="cond">Nice and warm with sunshine</span>
+ <strong class="temp">26<span>&deg;</span></strong><span class="low"><span>Lo</span> 16<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=4" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ <li class="day hv last cl { href: 'http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=5' }">
+ <div class="frame"></div>
+ <div class="bg bg-c">
+ <h3><a href="#">Tue</a></h3>
+ <h4>May 13</h4>
+ <div class="icon i-6-s "></div>
+ <div class="info">
+ <span class="cond">Rather cloudy and warm</span>
+ <strong class="temp">26<span>&deg;</span></strong><span class="low"><span>Lo</span> 17<span>&deg;</span></span>
+ </div>
+ <!-- /.info -->
+ <a href="http://www.accuweather.com/en/cn/shanghai/106577/daily-weather-forecast/106577?day=5" class="bt-more">more</a>
+ </div>
+ <!-- /.bg -->
+ </li>
+ </ul>
+</div>
+<!-- /.feed-tabs -->
diff --git a/.conky/cronograph/conky_start.sh b/.conky/cronograph/conky_start.sh
new file mode 100755
index 0000000..98dbb27
--- /dev/null
+++ b/.conky/cronograph/conky_start.sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+CONKYRC="$HOME/.conky/cronograph/conkyrc"
+
+sleep 5
+
+conky -d -c ${CONKYRC} "$@"
+
+exit 0
+
diff --git a/.conky/cronograph/conkyrc b/.conky/cronograph/conkyrc
new file mode 100644
index 0000000..3a54030
--- /dev/null
+++ b/.conky/cronograph/conkyrc
@@ -0,0 +1,89 @@
+# — Conky settings — #
+
+background yes
+
+update_interval 1
+total_run_times 0
+net_avg_samples 2
+
+override_utf8_locale yes
+
+double_buffer yes
+no_buffers yes
+
+text_buffer_size 2048
+imlib_cache_size 0
+
+temperature_unit celsius
+
+# — Window specifications — #
+
+own_window_class Conky
+own_window yes
+own_window_type desktop
+own_window_transparent yes
+own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
+
+border_inner_margin 0
+border_outer_margin 0
+
+minimum_size 300 330
+maximum_width 300
+
+alignment top_right
+
+gap_x 30
+gap_y 75
+
+
+# — Graphics settings — #
+draw_shades no
+draw_outline no
+draw_borders no
+draw_graph_borders no
+
+# — Text settings — #
+use_xft yes
+xftfont hooge 05_53:size=6
+xftalpha 0.5
+
+default_color FFFFFF
+
+uppercase no
+use_spacer right
+
+color0 white
+color1 orange
+color2 green
+
+# — Lua Load — #
+
+lua_load $HOME/.conky/cronograph/scripts/clock_rings.lua
+lua_draw_hook_pre clock_rings
+lua_load $HOME/.conky/cronograph/scripts/multi_rings.lua
+lua_draw_hook_post main
+
+TEXT
+${execi 600 sh $HOME/.conky/cronograph/accuweather/accuweather.sh}
+#${voffset 29}${offset 120}BAT:
+${voffset 29}${goto 109}GENTOO${goto 157}Linux
+${voffset 17}${goto 65}${font hooge 05_53:size=12}${time %H:%M}${font}${goto 185}UPTIME:
+${voffset 2}${goto 65}${time %a %d %b}${goto 185}${uptime}
+${voffset 2}${goto 65}${time %Y}
+${voffset -6}${goto 145}HD
+${voffset 12}${alignc}${fs_free}/${fs_size}
+${voffset 36}${goto 91}${cpu cpu0}%${goto 221}${memperc}%
+${voffset 10}${goto 76}CPU${goto 205}MEM
+${voffset 16}${goto 82}${font hooge 05_53:size=12}${execpi 600 sed -n '4p' $HOME/.conky/cronograph/accuweather/curr_cond}°C${font}${voffset -30}${goto 125}${font ConkyWeather:size=40}${execpi 600 sed -n '2p' $HOME/.conky/cronograph/accuweather/curr_cond}${font}${voffset -16}${goto 185}${execpi 600 sed -n '3p' $HOME/.conky/cronograph/accuweather/curr_cond}${voffset 12}${goto 185}${font ConkyWeather:size=20}${voffset 1}${goto 80}${execpi 600 sed -n '7p' $HOME/.conky/cronograph/accuweather/tod_ton}${goto 135}${execpi 600 sed -n '12p' $HOME/.conky/cronograph/accuweather/tod_ton}${goto 185}${execpi 600 sed -n '17p' $HOME/.conky/cronograph/accuweather/tod_ton}${font}${voffset 6}${goto 84}${execpi 600 sed -n '9p' $HOME/.conky/cronograph/accuweather/tod_ton}°/${execpi 600 sed -n '10p' $HOME/.conky/cronograph/accuweather/tod_ton}°${goto 140}${execpi 600 sed -n '14p' $HOME/.conky/cronograph/accuweather/tod_ton}°/${execpi 600 sed -n '15p' $HOME/.conky/cronograph/accuweather/tod_ton}°${goto 190}${execpi 600 sed -n '19p' $HOME/.conky/cronograph/accuweather/tod_ton}°/${execpi 600 sed -n '20p' $HOME/.conky/cronograph/accuweather/tod_ton}°${voffset 7}${goto 85}${execpi 600 sed -n '6p' $HOME/.conky/cronograph/accuweather/tod_ton}${goto 140}${execpi 600 sed -n '11p' $HOME/.conky/cronograph/accuweather/tod_ton}${goto 190}${execpi 600 sed -n '16p' $HOME/.conky/cronograph/accuweather/tod_ton}
+${if_match ${battery_percent BAT0}>0}${if_match ${battery_percent BAT0}<=15}${image $HOME/.conky/cronograph/images/Red.png -p 129,18 -s 40x40}${endif}${endif}
+${if_match ${battery_percent BAT0}>15}${if_match ${battery_percent BAT0}<=20}${image $HOME/.conky/cronograph/images/Orange.png -p 129,18 -s 40x40}${endif}${endif}
+${if_match ${battery_percent BAT0}>20}${if_match ${battery_percent BAT0}<=35}${image $HOME/.conky/cronograph/images/Yellow.png -p 129,18 -s 40x40}${endif}${endif}
+${if_match ${battery_percent BAT0}>35}${if_match ${battery_percent BAT0}<=100}${image $HOME/.conky/cronograph/images/Dark_Green.png -p 129,18 -s 40x40}${endif}${endif}
+${execpi 30 cat $HOME/.conky/cronograph/scripts/blinkingLED}
+## mpd ##
+${if_mpd_playing}${voffset 6}${goto 10}${font Sans:size=8:bold}${mpd_artist}${font}${voffset -5}${font Sans:size=8} - ${mpd_title}${font}
+${voffset 4}${goto 10}${mpd_bar 5,220}${alignr 10}${mpd_elapsed}/${mpd_length}
+${else}${voffset 6}${goto 10}${font hooge 05_53:size=8}MPD: stopped${font}
+${endif}
+
+# vim: set ts=8 sw=4 tw=0 fenc=utf-8 ft=conkyrc: #
diff --git a/.conky/cronograph/images/Blank.png b/.conky/cronograph/images/Blank.png
new file mode 100644
index 0000000..a8adf65
--- /dev/null
+++ b/.conky/cronograph/images/Blank.png
Binary files differ
diff --git a/.conky/cronograph/images/Blue.png b/.conky/cronograph/images/Blue.png
new file mode 100644
index 0000000..2407cbe
--- /dev/null
+++ b/.conky/cronograph/images/Blue.png
Binary files differ
diff --git a/.conky/cronograph/images/Dark_Green.png b/.conky/cronograph/images/Dark_Green.png
new file mode 100644
index 0000000..d40bcc4
--- /dev/null
+++ b/.conky/cronograph/images/Dark_Green.png
Binary files differ
diff --git a/.conky/cronograph/images/Dark_Purple.png b/.conky/cronograph/images/Dark_Purple.png
new file mode 100644
index 0000000..bb5da19
--- /dev/null
+++ b/.conky/cronograph/images/Dark_Purple.png
Binary files differ
diff --git a/.conky/cronograph/images/Green.png b/.conky/cronograph/images/Green.png
new file mode 100644
index 0000000..602ad43
--- /dev/null
+++ b/.conky/cronograph/images/Green.png
Binary files differ
diff --git a/.conky/cronograph/images/Orange.png b/.conky/cronograph/images/Orange.png
new file mode 100644
index 0000000..7574f9c
--- /dev/null
+++ b/.conky/cronograph/images/Orange.png
Binary files differ
diff --git a/.conky/cronograph/images/Pink.png b/.conky/cronograph/images/Pink.png
new file mode 100644
index 0000000..6d2d973
--- /dev/null
+++ b/.conky/cronograph/images/Pink.png
Binary files differ
diff --git a/.conky/cronograph/images/Purple.png b/.conky/cronograph/images/Purple.png
new file mode 100644
index 0000000..e8c58e7
--- /dev/null
+++ b/.conky/cronograph/images/Purple.png
Binary files differ
diff --git a/.conky/cronograph/images/Red.png b/.conky/cronograph/images/Red.png
new file mode 100644
index 0000000..d2673e6
--- /dev/null
+++ b/.conky/cronograph/images/Red.png
Binary files differ
diff --git a/.conky/cronograph/images/Yellow.png b/.conky/cronograph/images/Yellow.png
new file mode 100644
index 0000000..8e2f62c
--- /dev/null
+++ b/.conky/cronograph/images/Yellow.png
Binary files differ
diff --git a/.conky/cronograph/scripts/blinkingLED b/.conky/cronograph/scripts/blinkingLED
new file mode 100755
index 0000000..3f4c814
--- /dev/null
+++ b/.conky/cronograph/scripts/blinkingLED
@@ -0,0 +1,3 @@
+${image $HOME/.conky/cronograph/images/Blank.png -p 129, 241 -s 40x40}${if_match ${execi 1 num=$(date +%-S);rem=$(( num % 2 ));if [ $rem -eq 0 ] ; then echo 0 ; else echo 1 ; fi}==0}${image $HOME/.conky/cronograph/images/Blue.png -p 129, 241 -s 40x40}${endif}
+${image $HOME/.conky/cronograph/images/Blank.png -p 19, 129 -s 40x40}${if_match ${execi 1 num=$(date +%-S);rem=$(( num % 2 ));if [ $rem -eq 0 ] ; then echo 0 ; else echo 1 ; fi}==0}${image $HOME/.conky/cronograph/images/Blue.png -p 19, 129 -s 40x40}${endif}
+${image $HOME/.conky/cronograph/images/Blank.png -p 240, 129 -s 40x40}${if_match ${execi 1 num=$(date +%-S);rem=$(( num % 2 ));if [ $rem -eq 0 ] ; then echo 0 ; else echo 1 ; fi}==0}${image $HOME/.conky/cronograph/images/Blue.png -p 240, 129 -s 40x40}${endif}
diff --git a/.conky/cronograph/scripts/clock_rings.lua b/.conky/cronograph/scripts/clock_rings.lua
new file mode 100755
index 0000000..fb6a838
--- /dev/null
+++ b/.conky/cronograph/scripts/clock_rings.lua
@@ -0,0 +1,358 @@
+--[[
+Clock Rings by londonali1010 (2009)
+
+This script draws percentage meters as rings, and also draws clock hands if you want! It is fully customisable; all options are described in the script. This script is based off a combination of my clock.lua script and my rings.lua script.
+
+IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement near the end of the script uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
+
+To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
+ lua_load ~/scripts/clock_rings-v1.1.1.lua
+ lua_draw_hook_pre clock_rings
+
+Changelog:
++ v1.1.1 -- Fixed minor bug that caused the script to crash if conky_parse() returns a nil value (20.10.2009)
++ v1.1 -- Added colour option for clock hands (07.10.2009)
++ v1.0 -- Original release (30.09.2009)
+]]
+
+settings_table = {
+ {
+ -- Edit this table to customise your rings.
+ -- You can create more rings simply by adding more elements to settings_table.
+ -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
+ name='time',
+ -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
+ arg='%I.%M',
+ -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
+ max=12,
+ -- "bg_colour" is the colour of the base ring.
+ bg_colour=0xFFFFFF,
+ -- "bg_alpha" is the alpha value of the base ring.
+ bg_alpha=0.1,
+ -- "fg_colour" is the colour of the indicator part of the ring.
+ fg_colour=0xFFFFFF,
+ -- "fg_alpha" is the alpha value of the indicator part of the ring.
+ fg_alpha=0.5,
+ -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
+ x=150, y=150,
+ -- "radius" is the radius of the ring.
+ radius=135,
+ -- "thickness" is the thickness of the ring, centred around the radius.
+ thickness=4,
+ -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
+ start_angle=0,
+ -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger than start_angle.
+ end_angle=360
+ },
+ {
+ name='time',
+ arg='%M.%S',
+ max=60,
+ bg_colour=0xFFFFFF,
+ bg_alpha=0.1,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.5,
+ x=150, y=150,
+ radius=140,
+ thickness=4,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='time',
+ arg='%S',
+ max=60,
+ bg_colour=0xFFFFFF,
+ bg_alpha=0.1,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.5,
+ x=150, y=150,
+ radius=145,
+ thickness=4,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0x000000,
+ bg_alpha=0.1,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=150, y=150,
+ radius=66,
+ thickness=130,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=150, y=150,
+ radius=1,
+ thickness=10,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=85, y=150,
+ radius=30,
+ thickness=1,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0x000000,
+ bg_alpha=0.3,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=85, y=150,
+ radius=15,
+ thickness=27,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=85, y=150,
+ radius=1,
+ thickness=2,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=215, y=150,
+ radius=30,
+ thickness=1,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0x000000,
+ bg_alpha=0.3,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=215, y=150,
+ radius=15,
+ thickness=27,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=215, y=150,
+ radius=1,
+ thickness=2,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=150, y=75,
+ radius=25,
+ thickness=1,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0x000000,
+ bg_alpha=0.3,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=150, y=75,
+ radius=13,
+ thickness=22,
+ start_angle=0,
+ end_angle=360
+ },
+ {
+ name='',
+ arg='',
+ max=100,
+ bg_colour=0xFFFFFF,
+ bg_alpha=1.0,
+ fg_colour=0xFFFFFF,
+ fg_alpha=0.0,
+ x=150, y=75,
+ radius=1,
+ thickness=2,
+ start_angle=0,
+ end_angle=360
+ },
+ }
+
+-- Use these settings to define the origin and extent of your clock.
+
+clock_r=127
+
+-- "clock_x" and "clock_y" are the coordinates of the centre of the clock, in pixels, from the top left of the Conky window.
+
+clock_x=150
+clock_y=150
+
+-- Colour & alpha of the clock hands
+
+clock_colour=0xFFFFFF
+clock_alpha=1
+
+-- Do you want to show the seconds hand?
+
+show_seconds=true
+
+require 'cairo'
+
+function rgb_to_r_g_b(colour,alpha)
+ return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
+end
+
+function draw_ring(cr,t,pt)
+ local w,h=conky_window.width,conky_window.height
+
+ local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
+ local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
+
+ local angle_0=sa*(2*math.pi/360)-math.pi/2
+ local angle_f=ea*(2*math.pi/360)-math.pi/2
+ local t_arc=t*(angle_f-angle_0)
+
+ -- Draw background ring
+
+ cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
+ cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
+ cairo_set_line_width(cr,ring_w)
+ cairo_stroke(cr)
+
+ -- Draw indicator ring
+
+ cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
+ cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
+ cairo_stroke(cr)
+end
+
+function draw_clock_hands(cr,xc,yc)
+ local secs,mins,hours,secs_arc,mins_arc,hours_arc
+ local xh,yh,xm,ym,xs,ys
+
+ secs=os.date("%S")
+ mins=os.date("%M")
+ hours=os.date("%I")
+
+ secs_arc=(2*math.pi/60)*secs
+ mins_arc=(2*math.pi/60)*mins+secs_arc/60
+ hours_arc=(2*math.pi/12)*hours+mins_arc/12
+
+ -- Draw hour hand
+
+ xh=xc+0.7*clock_r*math.sin(hours_arc)
+ yh=yc-0.7*clock_r*math.cos(hours_arc)
+ cairo_move_to(cr,xc,yc)
+ cairo_line_to(cr,xh,yh)
+
+ cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
+ cairo_set_line_width(cr,5)
+ cairo_set_source_rgba(cr,rgb_to_r_g_b(clock_colour,clock_alpha))
+ cairo_stroke(cr)
+
+ -- Draw minute hand
+
+ xm=xc+clock_r*math.sin(mins_arc)
+ ym=yc-clock_r*math.cos(mins_arc)
+ cairo_move_to(cr,xc,yc)
+ cairo_line_to(cr,xm,ym)
+
+ cairo_set_line_width(cr,3)
+ cairo_stroke(cr)
+
+ -- Draw seconds hand
+
+ if show_seconds then
+ xs=xc+clock_r*math.sin(secs_arc)
+ ys=yc-clock_r*math.cos(secs_arc)
+ cairo_move_to(cr,xc,yc)
+ cairo_line_to(cr,xs,ys)
+
+ cairo_set_line_width(cr,1)
+ cairo_stroke(cr)
+ end
+end
+
+function conky_clock_rings()
+ local function setup_rings(cr,pt)
+ local str=''
+ local value=0
+
+ str=string.format('${%s %s}',pt['name'],pt['arg'])
+ str=conky_parse(str)
+
+ value=tonumber(str)
+ if value == nil then value = 0 end
+ pct=value/pt['max']
+
+ draw_ring(cr,pct,pt)
+ end
+
+ -- Check that Conky has been running for at least 5s
+
+ if conky_window==nil then return end
+ local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
+
+ local cr=cairo_create(cs)
+
+ local updates=conky_parse('${updates}')
+ update_num=tonumber(updates)
+
+ if update_num>5 then
+ for i in pairs(settings_table) do
+ setup_rings(cr,settings_table[i])
+ end
+ end
+
+ draw_clock_hands(cr,clock_x,clock_y)
+end
diff --git a/.conky/cronograph/scripts/multi_rings.lua b/.conky/cronograph/scripts/multi_rings.lua
new file mode 100755
index 0000000..b9735b2
--- /dev/null
+++ b/.conky/cronograph/scripts/multi_rings.lua
@@ -0,0 +1,375 @@
+--==============================================================================
+-- multi_rings.lua
+--
+-- author : SLK
+-- version : v2011011601
+-- license : Distributed under the terms of GNU GPL version 2 or later
+--
+--==============================================================================
+
+require 'cairo'
+
+--------------------------------------------------------------------------------
+-- clock DATA
+-- HOURS
+clock_h = {
+ {
+ name='time', arg='%H', max_value=12,
+ x=150, y=150,
+ graph_radius=140,
+ graph_thickness=3,
+ graph_unit_angle=30, graph_unit_thickness=5,
+ graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ txt_radius=100,
+ txt_weight=1, txt_size=10.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=125,
+ graduation_thickness=10, graduation_mark_thickness=2,
+ graduation_unit_angle=30,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
+ },
+}
+-- MINUTES
+clock_m = {
+ {
+ name='time', arg='%M', max_value=60,
+ x=150, y=150,
+ graph_radius=100,
+ graph_thickness=3,
+ graph_unit_angle=6, graph_unit_thickness=3,
+ graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ txt_radius=100,
+ txt_weight=0, txt_size=9.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=57,
+ graduation_thickness=0, graduation_mark_thickness=2,
+ graduation_unit_angle=30,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
+ },
+}
+-- SECONDS
+clock_s = {
+ {
+ name='time', arg='%S', max_value=60,
+ x=150, y=150,
+ graph_radius=50,
+ graph_thickness=3,
+ graph_unit_angle=6, graph_unit_thickness=3,
+ graph_bg_colour=0xffffff, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ txt_radius=100,
+ txt_weight=0, txt_size=12.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=0,
+ graduation_thickness=0, graduation_mark_thickness=0,
+ graduation_unit_angle=0,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=0.0,
+ },
+}
+
+--------------------------------------------------------------------------------
+-- gauge DATA
+gauge = {
+{
+ name='cpu', arg='cpu0', max_value=100,
+ x=85, y=150,
+ graph_radius=14,
+ graph_thickness=27,
+ graph_start_angle=0,
+ graph_unit_angle=3.5, graph_unit_thickness=3.0,
+ graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
+ txt_radius=1,
+ txt_weight=0, txt_size=8.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=27,
+ graduation_thickness=4, graduation_mark_thickness=4,
+ graduation_unit_angle=30,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
+ caption='',
+ caption_weight=1, caption_size=8.0,
+ caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
+},
+{
+ name='memperc', arg='', max_value=100,
+ x=215, y=150,
+ graph_radius=14,
+ graph_thickness=27,
+ graph_start_angle=0,
+ graph_unit_angle=3.5, graph_unit_thickness=3.0,
+ graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
+ txt_radius=1,
+ txt_weight=0, txt_size=8.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=27,
+ graduation_thickness=4, graduation_mark_thickness=4,
+ graduation_unit_angle=30,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
+ caption='',
+ caption_weight=1, caption_size=8.0,
+ caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
+},
+{
+ name='fs_used_perc', arg='/', max_value=100,
+ x=150, y=75,
+ graph_radius=10,
+ graph_thickness=23,
+ graph_start_angle=0,
+ graph_unit_angle=3.5, graph_unit_thickness=3.0,
+ graph_bg_colour=0xFFFFFF, graph_bg_alpha=0.0,
+ graph_fg_colour=0xFFFFFF, graph_fg_alpha=0.0,
+ hand_fg_colour=0xFFFFFF, hand_fg_alpha=1.0,
+ txt_radius=1,
+ txt_weight=0, txt_size=8.0,
+ txt_fg_colour=0xFFFFFF, txt_fg_alpha=0.0,
+ graduation_radius=22,
+ graduation_thickness=4, graduation_mark_thickness=4,
+ graduation_unit_angle=30,
+ graduation_fg_colour=0xFFFFFF, graduation_fg_alpha=1.0,
+ caption='',
+ caption_weight=1, caption_size=8.0,
+ caption_fg_colour=0xFFFFFF, caption_fg_alpha=0.0,
+},
+}
+
+-------------------------------------------------------------------------------
+-- rgb_to_r_g_b
+-- converts color in hexa to decimal
+--
+function rgb_to_r_g_b(colour, alpha)
+ return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
+end
+
+-------------------------------------------------------------------------------
+-- angle_to_position
+-- convert degree to rad and rotate (0 degree is top/north)
+--
+function angle_to_position(start_angle, current_angle)
+ local pos = current_angle + start_angle
+ return ( ( pos * (2 * math.pi / 360) ) - (math.pi / 2) )
+end
+
+-------------------------------------------------------------------------------
+-- draw_clock_ring
+-- displays clock
+--
+function draw_clock_ring(display, data, value)
+ local max_value = data['max_value']
+ local x, y = data['x'], data['y']
+ local graph_radius = data['graph_radius']
+ local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
+ local graph_unit_angle = data['graph_unit_angle']
+ local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
+ local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
+
+ -- background ring
+ cairo_arc(display, x, y, graph_radius, 0, 2 * math.pi)
+ cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
+ cairo_set_line_width(display, graph_thickness)
+ cairo_stroke(display)
+
+ -- arc of value
+ local val = (value % max_value)
+ local i = 1
+ while i <= val do
+ cairo_arc(display, x, y, graph_radius,( ((graph_unit_angle * i) - graph_unit_thickness)*(2*math.pi/360) )-(math.pi/2),((graph_unit_angle * i) * (2*math.pi/360))-(math.pi/2))
+ cairo_set_source_rgba(display,rgb_to_r_g_b(graph_fg_colour,graph_fg_alpha))
+ cairo_stroke(display)
+ i = i + 1
+ end
+ local angle = (graph_unit_angle * i) - graph_unit_thickness
+
+ -- graduations marks
+ local graduation_radius = data['graduation_radius']
+ local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
+ local graduation_unit_angle = data['graduation_unit_angle']
+ local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
+ if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
+ local nb_graduation = 360 / graduation_unit_angle
+ local i = 1
+ while i <= nb_graduation do
+ cairo_set_line_width(display, graduation_thickness)
+ cairo_arc(display, x, y, graduation_radius, (((graduation_unit_angle * i)-(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2),(((graduation_unit_angle * i)+(graduation_mark_thickness/2))*(2*math.pi/360))-(math.pi/2))
+ cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
+ cairo_stroke(display)
+ cairo_set_line_width(display, graph_thickness)
+ i = i + 1
+ end
+ end
+
+ -- text
+ local txt_radius = data['txt_radius']
+ local txt_weight, txt_size = data['txt_weight'], data['txt_size']
+ local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
+ local movex = txt_radius * (math.cos((angle * 2 * math.pi / 360)-(math.pi/2)))
+ local movey = txt_radius * (math.sin((angle * 2 * math.pi / 360)-(math.pi/2)))
+ cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight);
+ cairo_set_font_size (display, txt_size);
+ cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha));
+ cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3);
+ cairo_show_text (display, value);
+ cairo_stroke (display);
+end
+
+-------------------------------------------------------------------------------
+-- draw_gauge_ring
+-- displays gauges
+--
+function draw_gauge_ring(display, data, value)
+ local max_value = data['max_value']
+ local x, y = data['x'], data['y']
+ local graph_radius = data['graph_radius']
+ local graph_thickness, graph_unit_thickness = data['graph_thickness'], data['graph_unit_thickness']
+ local graph_start_angle = data['graph_start_angle']
+ local graph_unit_angle = data['graph_unit_angle']
+ local graph_bg_colour, graph_bg_alpha = data['graph_bg_colour'], data['graph_bg_alpha']
+ local graph_fg_colour, graph_fg_alpha = data['graph_fg_colour'], data['graph_fg_alpha']
+ local hand_fg_colour, hand_fg_alpha = data['hand_fg_colour'], data['hand_fg_alpha']
+ local graph_end_angle = (max_value * graph_unit_angle) % 360
+
+ -- background ring
+ cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, 0), angle_to_position(graph_start_angle, graph_end_angle))
+ cairo_set_source_rgba(display, rgb_to_r_g_b(graph_bg_colour, graph_bg_alpha))
+ cairo_set_line_width(display, graph_thickness)
+ cairo_stroke(display)
+
+ -- arc of value
+ local val = value % (max_value + 1)
+ local start_arc = 0
+ local stop_arc = 0
+ local i = 1
+ while i <= val do
+ start_arc = (graph_unit_angle * i) - graph_unit_thickness
+ stop_arc = (graph_unit_angle * i)
+ cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
+ cairo_set_source_rgba(display, rgb_to_r_g_b(graph_fg_colour, graph_fg_alpha))
+ cairo_stroke(display)
+ i = i + 1
+ end
+ local angle = start_arc
+
+ -- hand
+ start_arc = (graph_unit_angle * val) - (graph_unit_thickness * 2)
+ stop_arc = (graph_unit_angle * val)
+ cairo_arc(display, x, y, graph_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
+ cairo_set_source_rgba(display, rgb_to_r_g_b(hand_fg_colour, hand_fg_alpha))
+ cairo_stroke(display)
+
+ -- graduations marks
+ local graduation_radius = data['graduation_radius']
+ local graduation_thickness, graduation_mark_thickness = data['graduation_thickness'], data['graduation_mark_thickness']
+ local graduation_unit_angle = data['graduation_unit_angle']
+ local graduation_fg_colour, graduation_fg_alpha = data['graduation_fg_colour'], data['graduation_fg_alpha']
+ if graduation_radius > 0 and graduation_thickness > 0 and graduation_unit_angle > 0 then
+ local nb_graduation = graph_end_angle / graduation_unit_angle
+ local i = 0
+ while i < nb_graduation do
+ cairo_set_line_width(display, graduation_thickness)
+ start_arc = (graduation_unit_angle * i) - (graduation_mark_thickness / 2)
+ stop_arc = (graduation_unit_angle * i) + (graduation_mark_thickness / 2)
+ cairo_arc(display, x, y, graduation_radius, angle_to_position(graph_start_angle, start_arc), angle_to_position(graph_start_angle, stop_arc))
+ cairo_set_source_rgba(display,rgb_to_r_g_b(graduation_fg_colour,graduation_fg_alpha))
+ cairo_stroke(display)
+ cairo_set_line_width(display, graph_thickness)
+ i = i + 1
+ end
+ end
+
+ -- text
+ local txt_radius = data['txt_radius']
+ local txt_weight, txt_size = data['txt_weight'], data['txt_size']
+ local txt_fg_colour, txt_fg_alpha = data['txt_fg_colour'], data['txt_fg_alpha']
+ local movex = txt_radius * math.cos(angle_to_position(graph_start_angle, angle))
+ local movey = txt_radius * math.sin(angle_to_position(graph_start_angle, angle))
+ cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, txt_weight)
+ cairo_set_font_size (display, txt_size)
+ cairo_set_source_rgba (display, rgb_to_r_g_b(txt_fg_colour, txt_fg_alpha))
+ cairo_move_to (display, x + movex - (txt_size / 2), y + movey + 3)
+ cairo_show_text (display, value)
+ cairo_stroke (display)
+
+ -- caption
+ local caption = data['caption']
+ local caption_weight, caption_size = data['caption_weight'], data['caption_size']
+ local caption_fg_colour, caption_fg_alpha = data['caption_fg_colour'], data['caption_fg_alpha']
+ local tox = graph_radius * (math.cos((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
+ local toy = graph_radius * (math.sin((graph_start_angle * 2 * math.pi / 360)-(math.pi/2)))
+ cairo_select_font_face (display, "ubuntu", CAIRO_FONT_SLANT_NORMAL, caption_weight);
+ cairo_set_font_size (display, caption_size)
+ cairo_set_source_rgba (display, rgb_to_r_g_b(caption_fg_colour, caption_fg_alpha))
+ cairo_move_to (display, x + tox + 5, y + toy + 1)
+ -- bad hack but not enough time !
+ if graph_start_angle < 105 then
+ cairo_move_to (display, x + tox - 30, y + toy + 1)
+ end
+ cairo_show_text (display, caption)
+ cairo_stroke (display)
+end
+
+-------------------------------------------------------------------------------
+-- go_clock_rings
+-- loads data and displays clock
+--
+function go_clock_rings(display)
+ local function load_clock_rings(display, data)
+ local str, value = '', 0
+ str = string.format('${%s %s}',data['name'], data['arg'])
+ str = conky_parse(str)
+ value = tonumber(str)
+ draw_clock_ring(display, data, value)
+ end
+
+ for i in pairs(clock_h) do
+ load_clock_rings(display, clock_h[i])
+ end
+ for i in pairs(clock_m) do
+ load_clock_rings(display, clock_m[i])
+ end
+ for i in pairs(clock_s) do
+ load_clock_rings(display, clock_s[i])
+ end
+end
+
+-------------------------------------------------------------------------------
+-- go_gauge_rings
+-- loads data and displays gauges
+--
+function go_gauge_rings(display)
+ local function load_gauge_rings(display, data)
+ local str, value = '', 0
+ str = string.format('${%s %s}',data['name'], data['arg'])
+ str = conky_parse(str)
+ value = tonumber(str)
+ draw_gauge_ring(display, data, value)
+ end
+
+ for i in pairs(gauge) do
+ load_gauge_rings(display, gauge[i])
+ end
+end
+
+-------------------------------------------------------------------------------
+-- MAIN
+function conky_main()
+ if conky_window == nil then
+ return
+ end
+
+ local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
+ local display = cairo_create(cs)
+
+ local updates = conky_parse('${updates}')
+ update_num = tonumber(updates)
+
+ if update_num > 5 then
+ go_clock_rings(display)
+ go_gauge_rings(display)
+ end
+
+end
+