Posted on 2012-03-09 18:52
Onway 閱讀(509)
評(píng)論(1) 編輯 收藏 引用 所屬分類(lèi):
碼兒快跑
/Files/Onway/free-rooms.bash.txt#!/bin/bash
# 查詢學(xué)校空閑的教室
# 原理:空閑的教室 = 整個(gè)學(xué)期開(kāi)課的課室 - 查詢時(shí)間開(kāi)課的課室
# 如果服務(wù)器查詢參數(shù)不變,一個(gè)學(xué)期只需更新一次
# good good study , day day up !
# Onway 2012-03-09 aluohuai@126.com
roomline=10
rooms="黃浩川教學(xué)樓101 黃浩川教學(xué)樓102 黃浩川教學(xué)樓103 黃浩川教學(xué)樓104 黃浩川教學(xué)樓201 黃浩川教學(xué)樓202 黃浩川教學(xué)樓203 黃浩川教學(xué)樓204 黃浩川教學(xué)樓301 黃浩川教學(xué)樓302 黃浩川教學(xué)樓303 黃浩川教學(xué)樓304 黃浩川教學(xué)樓401 黃浩川教學(xué)樓402 黃浩川教學(xué)樓403 黃浩川教學(xué)樓404 黃浩川教學(xué)樓501 黃浩川教學(xué)樓502 黃浩川教學(xué)樓503 黃浩川教學(xué)樓504 黃浩川樓101 黃浩川樓102 黃浩川樓104 黃浩川樓105 黃浩川樓209 黃浩川樓303 黃浩川樓304 黃浩川樓305 黃浩川樓402 黃浩川樓403 黃浩川樓404 黃浩川樓405 繼續(xù)教育學(xué)院101 繼續(xù)教育學(xué)院103 繼續(xù)教育學(xué)院201 繼續(xù)教育學(xué)院203 繼續(xù)教育學(xué)院205 繼續(xù)教育學(xué)院206 繼續(xù)教育學(xué)院301 繼續(xù)教育學(xué)院303 繼續(xù)教育學(xué)院306 繼續(xù)教育學(xué)院403 繼續(xù)教育學(xué)院405 繼續(xù)教育學(xué)院407 繼續(xù)教育學(xué)院505 黎耀華樓108 黎耀華樓212 黎耀華樓306 黎耀華樓313 黎耀華樓402 黎耀球樓301 陸佑圖書(shū)館301 陸佑圖書(shū)館302 馬蘭芳教學(xué)樓101 馬蘭芳教學(xué)樓102 馬蘭芳教學(xué)樓103 馬蘭芳教學(xué)樓104 馬蘭芳教學(xué)樓201 馬蘭芳教學(xué)樓202 馬蘭芳教學(xué)樓203 馬蘭芳教學(xué)樓204 馬蘭芳教學(xué)樓301 馬蘭芳教學(xué)樓302 馬蘭芳教學(xué)樓303 馬蘭芳教學(xué)樓304 馬蘭芳教學(xué)樓401 馬蘭芳教學(xué)樓402 馬蘭芳教學(xué)樓403 馬蘭芳教學(xué)樓404 馬蘭芳教學(xué)樓501 馬蘭芳教學(xué)樓502 馬蘭芳教學(xué)樓503 馬蘭芳教學(xué)樓504 體育館101 體育館102 體育館103 體育館104 體育館105 體育館106 體育館107 體育館108 體育館109 體育館110 體育館111 體育館131 體育館132 體育館133 體育館135 體育館136 體育館137 體育館138 體育館139 體育館140 新會(huì)樓404 主樓101 主樓201 主樓202 主樓212 主樓213 主樓239 主樓240 主樓249 主樓250 主樓356 主樓401 主樓402 主樓405 主樓406 主樓417 主樓418 主樓421 主樓422 主樓423 主樓427 主樓429 主樓439 主樓441 主樓445 主樓457 主樓458 主樓470 主樓473 主樓501 主樓505 主樓524 主樓525 主樓533 主樓539 主樓541 主樓543 主樓545 主樓549 主樓552 主樓554 主樓556 主樓559 主樓560 主樓562 主樓575 綜合實(shí)驗(yàn)大樓103 綜合實(shí)驗(yàn)大樓201 綜合實(shí)驗(yàn)大樓202 綜合實(shí)驗(yàn)大樓203 綜合實(shí)驗(yàn)大樓204 綜合實(shí)驗(yàn)大樓205 綜合實(shí)驗(yàn)大樓206 綜合實(shí)驗(yàn)大樓212 綜合實(shí)驗(yàn)大樓213 綜合實(shí)驗(yàn)大樓214 綜合實(shí)驗(yàn)大樓302 綜合實(shí)驗(yàn)大樓303 綜合實(shí)驗(yàn)大樓305 綜合實(shí)驗(yàn)大樓306 綜合實(shí)驗(yàn)大樓307 綜合實(shí)驗(yàn)大樓310 綜合實(shí)驗(yàn)大樓402 綜合實(shí)驗(yàn)大樓403 綜合實(shí)驗(yàn)大樓404 綜合實(shí)驗(yàn)大樓405 綜合實(shí)驗(yàn)大樓406 綜合實(shí)驗(yàn)大樓407 綜合實(shí)驗(yàn)大樓416 綜合實(shí)驗(yàn)大樓503 綜合實(shí)驗(yàn)大樓605 綜合實(shí)驗(yàn)樓605"
update() {
wget -O /tmp/query.asp http://jwc.wyu.cn/everyday/query/indeft/query.asp --post-data "cnt=1&wk=1&wk=2&wk=3&wk=4&wk=5&wk=0&cnt=2&pt=1&pt=2&pt=3&pt=4&pt=5&cc5=&cc6=&cc7=&cc8=&cc9=&Submit=+%CC%E1%BD%BB+"
iconv -f gb18030 -t utf8 /tmp/query-gb18030.tmp > /tmp/query-utf8.tmp
new="rooms=\"$(grep '.*<td align=\"left\">.*' /tmp/query-utf8.tmp | sed -n '0~4p' | grep -o '>.*<' | tr -d '><' | sort -ub | grep -v '^$')\""
new=$(echo $new)
rm /tmp/query-gb18030.tmp /tmp/query-utf8.tmp
sed "${roomline}c $new" $0 > "/tmp/$0"
chmod u+x "/tmp/$0"
mv "/tmp/$0" $0
}
query() {
arg=""
read -p "星期(0-5,0為周末,空格分開(kāi)):" day
if [ -n "$day" ] ; then
arg="cnt=1&"
for i in $day
do
arg=$arg"wk=$i&"
done
fi
read -p "節(jié)次(大節(jié),0-5,空格分開(kāi)):" class
if [ -n "$class" ] ; then
arg=$arg"cnt=2&"
for i in $class
do
arg=$arg"pt=$i&"
done
fi
read -p "周次(1-19,空格分開(kāi)):" week
if [ -n "$week" ] ; then
arg=$arg"cnt=3&"
for i in $class
do
arg=$arg"ew=$i&"
done
fi
if [ -z "$arg" ] ; then
echo "what are you doing!"
exit 0
fi
arg=$arg"cc5=&cc6=&cc7=&cc8=&cc9=&Submit=+%CC%E1%BD%BB+"
wget -O /tmp/query-gb18030.tmp http://jwc.wyu.cn/everyday/query/indeft/query.asp --post-data "$arg"
iconv -f gb18030 -t utf8 /tmp/query-gb18030.tmp > /tmp/query-utf8.tmp
used="$(grep '.*<td align=\"left\">.*' /tmp/query-utf8.tmp | sed -n '0~4p' | grep -o '>.*<' | tr -d '><' | sort -ub | grep -v '^$')"
used=$(echo $used)
rm /tmp/query-gb18030.tmp /tmp/query-utf8.tmp
for i in $rooms
do
sign=0
for j in $used
do
if [ "$i" == "$j" ] ; then
sign=1
break
fi
done
if [ "$sign" == "0" ] ; then
echo $i
fi
done
}
if [ $# == 0 ] ; then
query
elif [ "$1" == "--update" ] ; then
update
else
echo -e "Usage:\n\t$0 [--update]"
fi
exit 0