Lao động khổ sai

Vì đại đa số các đ/c thợ dạy đều bận bịu nên chả mấy người gửi cho chúng em cái lờ lờ ca hát (lí lịch khoa học) theo đúng mẫu mà chúng em đã mất cả nửa tháng ngâm cứu. Cực chẳng đã, em đành nhắm mắt chép lại bản cũ rích từ năm 2006. Tất nhiên là thông tin thiếu toe toét rồi. Nhưng thôi, méo mó có hơn không.

Đọc tiếp “Lao động khổ sai”

Trâu bò đi xem nhạc

Tự nhiên lại quan tâm đến âm nhạc Việt Nam. Nhưng vì đã quên mất Perl là gì, sed thì chả nhớ được bao nhiêu nên lại để cơ hội cho trâu bò ra tay…

#! /bin/sh
# Tải thông tin về các album trên vnmusic.com.vn

for AID in `seq 7 280`
do
	# Check for file existence
	if [ -f album_"$AID".html ]
	then
		rm -f album_"$AID".html
	fi
	
	# Download page
	wget http://www.vnmusic.com.vn/music/index.php?aid=album\&id=$AID -O album_"$AID".html
	
	# Get album title
	album=$(grep "title_big_chung" album_"$AID".html | sed -r "s/^.*<h1>Album \"(.*)\"<\/h1>.*$/\1/")

	if [ -n "$album" ]
	then
		# Get song title and id
		grep "onclick=\"playlistAdd(" album_"$AID".html |\
			sed -r "s/^.*onclick=\"playlistAdd\('([0-9]+)', '(.*)'\)\".*$/sid='\1' t='\2'/g" > tmp1.txt
		# Get composer's name and id
		grep -P "^\t{5}\(<a href=\"index.php\?aid=nhacsi\&amp;id=([0-9]+)?\">(.*)</a>\)" album_"$AID".html |\
			sed -r "s/^.*\&amp;id=([0-9]+)?\">(.*)?<\/a>.*$/cid='\1' c='\2'/g" > tmp2.txt
		# Get artist's name and id
		grep -P "^\t{5}<a href=\"index.php\?aid=nghesi\&id=([0-9]+)?\">" album_"$AID".html |\
			sed -r "s/^.*\&id=([0-9]+)?\">(.*)?<\/a>/aid='\1' a='\2'/g" > tmp3.txt

		# Merge informations
		paste tmp1.txt tmp2.txt tmp3.txt > tmp.txt

		# Create XML file
		sed = tmp.txt | sed "N;s/\n/\t/" > album_"$AID".txt
		sed -r "s/^([0-9]+)\t(.*)$/\t<song n='\1' \2 \/>/g" -i album_"$AID".txt
		echo "<album id='$AID' title='$album'>" > album_"$AID".xml
		cat album_"$AID".txt >> album_"$AID".xml
		echo '</album>' >> album_"$AID".xml

		sed 's/\&amp;/\&/g' -i album_"$AID".xml

		# Remove temporary files
		rm -f tmp*.txt album_"$AID".txt

		# Log
		echo "$AID - OK" >> logging.txt

	else
		echo '########## Invalid album ID ##########'
		rm -f album_"$AID".html
		echo "$AID - DIE" >> logging.txt
	fi
done

Đọc tiếp “Trâu bò đi xem nhạc”

Cào Đọc báo trực tuyến

Trông ngứa mắt, nghịch tí chơi. Tranh thủ ôn lại tí bài cào bới… 😛

#! /bin/sh
imgpage='http://docbao.dec.vn/show_image.aspx?pid='

echo 'New directory name:'
read newdir
if [ ! -d $newdir ]
then
	mkdir $newdir
else
	echo "'$newdir' already existed. Please try another name.";
	exit
fi

cd $newdir

wget $1 -O source.html

egrep 'selected="selected" value=".*">1<' source.html |\\
	sed -r 's#^.* selected="selected" value="([a-f0-9]+)">1</option>#\\1_1#g'> index.txt

length=`wc -l index.txt`
if [ "$length" == '0 index.txt' ]
then
	echo 'There is something wrong. Please try again.';
	rm -rf $newdir;
	exit
fi

egrep "<option value=\\"[a-f0-9]+\\">[0-9]" source.html |\\
	sed -r 's#^.*value="(.*)">(.*)</option>#\\1_\\2#g' >> index.txt

sed -r 's/\\x0D//g' -i index.txt

rm -f source.html

for i in `less index.txt`;
	do pid=`echo $i | sed -r 's/^(.*)_.*$/\\1/'`;
	page=`echo $i | sed -r 's/^.*_(.*)$/\\1/'`;
	wget $imgpage$pid\\&type=d -O $page.jpg;
done

echo -e "Do you want to make an HTML index file?\\nYes (y) - No (n)"
read mkindex

if [ "$mkindex" == 'y' ]
then
	sed -r 's#^.*_(.*)$#<li><a href="\\1.jpg">Trang \\1</a></li>#g' index.txt > index.html
fi

echo 'Done!'

Cào photoworld.com.vn

Cào theo trình tự thời gian gửi ảnh kiểu như thế này dễ bị trùng ảnh và phải bổ sung một số ảnh ở cuối nếu như danh sách “Last uploads” có thay đổi (chắc chắn sẽ có). Bù lại, nó sẽ nhanh hơn cách tải theo PID. Nhưng khi bổ sung sau lần tải đầu tiên này thì lại nên tải theo PID cho tiện.

Đọc tiếp “Cào photoworld.com.vn”

Cào WorldEbookFair

Bọn WorldEbookFair quảng cáo bằng cách bôi ra cái trò “Free Access to the public from July 4th to August 4th, in celebration of Project Gutenberg’s 35th Birthday”. Thôi thì, méo mó có hơn không, ta cứ lôi về, chả mất gì của bọ :p. Làm quả tập lệnh cho khoẻ.

Đọc tiếp “Cào WorldEbookFair”

Cào Color-Ring của Sfone

Oài, lâu lắm rồi không đổi cái nhạc chờ, tức là cái Color-Ring đó. Hôm nay đổi thử coi.

Mà sao bên Sfone họ không làm mấy chương trình (miễn phí hoặc có thu phí), kiểu như:

  • Cho người dùng chọn một danh sách rồi cho phát ngẫu nhiên mỗi lần có người gọi;
  • Đặt theo thời gian trong ngày (sáng, chiều, tối, đêm);
  • Đặt theo các ngày kỉ niệm (chung và riêng). Lễ, tết thì phát các bài truyền thống. (Cái này hơi phức tạp, có thể cần phải thực hiện qua giao diện web);

Đọc tiếp “Cào Color-Ring của Sfone”