ความทรงจำกับ RSSThai.com

ย้อนไป 10 กว่าปีที่แล้วสมัย Internet กำลังได้รับความนิยมในบ้านเรา ยุคของ MSN Messenger ยุคของเว็บ portal ไทยหลายๆ เว็บ ช่วงปี 2005 บ้านเรายังไม่รู้จัก facebook ส่วน hi5 ก็ยังไม่มา ช่วงนั้นการรับข่าวสารจะต้องเข้าไปตามเว็บต่างๆ บ้านก็ค้นหาจาก Google, Yahoo (ซึ่งตอนนั้นข้อมูลก็ยังไม่มาก) รวมถึงเว็บบอร์ดสนทนา ก็เลยมีเว็บที่รวบรวมข่าวสารของเว็บต่างๆ เพื่อทำลิงค์แจกจ่ายไปติดในเว็บอื่น เรียกตัวเองว่า rssthai.com 

RSS คือหนึ่งในประเภทเว็บฟีด ซึ่งมีรูปแบบข้อมูลเอกซ์เอ็มแอล (XML) ซึ่งใช้สำหรับในการกระจายข้อมูลที่มีการเพิ่มเติม หรือเปลี่ยนแปลงบ่อยจากเว็บไซต์ (web syndication) และบล็อก

RSS นำมาใช้สำหรับการแบ่งปันหัวเรื่อง ข้อมูลบนเว็บระหว่างเว็บด้วยกัน หรือสำหรับดึงข่าวจากเว็บต่างๆ มาแสดงบนเว็บของคุณ ซึ่งแต่ก่อน อาจมีการสร้างหัวเรื่องของข่าวจากเว็บต้นแบบ จากนั้นนำลิงค์ไปติดที่หน้าเว็บของเรา การแก้ไขถ้าเว็บต้นแบบแก้ไข เว็บของเราจะต้องทำการแก้ไขตามด้วย

นอกจากนี้สำหรับนักท่องเน็ตทั่วไป สามารถนำประโยชน์ของ RSS นี้ไปใช้งานได้ โดยไม่จำเป็นต้องเข้าไปในเว็บไซต์นั้นบ่อยๆ (ทั้งนี้เนื่องจากหลายๆ เว็บอาจมีการ udpate ข้อมูลที่ไม่พร้อมกัน) โดยสามารถติดตั้งโปรแกรม RSS Reader ใช้สำหรับดึงหัวข้อข่าวสารที่มีบริการ RSS มาไว้ในเครื่องของเรา และถ้ามีการ udpate จากเว็บนั้นๆ เราก็สามารถคลิกลิงค์ไปยังเว็บที่ให้บริการได้โดยตรง ทำให้ประหยัดเวลาในการเข้าไปดูเว็บต่างๆ มากมาย

RSS สามารถย่อมาจากหลายรูปแบบด้วยกัน คือ :

  • Really Simple Syndication (RSS 2.0)
  • Rich Site Summary (RSS 0.91)
  • RDF Site Summary (RSS 0.9 และ 1.0)

Ref: http://www.trueplookpanya.com/learning/detail/23159


ซึ่งผมเองก็อยากได้ข่าวพวก IT มาติดในเว็บ ผมก็จะดึงจาก ARiP เวลามีข่าวใหม่ เว็บเราก็จะอัพเดทตามไปด้วย แต่ feed มันก็มีข้อเสียอยู่อย่างคือ เราจะเรียกดูย้อนหลังผ่านหน้าเว็บเราไม่ได้ ต้องไปที่ต้นทาง เพราะเขาจะ limit ไว้ ดังนั้นเราก็จะรับแต่ข่าวใหม่เท่านั้น

ก็เลยคิดวิธีจะเอาเนื้อหาข่าวมาเก็บไว้เอง แล้วเรียกค้นดูย้อนหลังจากเว็บเราไปเลย ไม่ต้องไปที่เว็บปลายทาง โดยใช้ PHP เขียนนี่แหละ อ่านไฟล์ feed XML จากนั้นก็เอามาเก็บลงฐานข้อมูล ช่วงนั้นสนุกมาก ซึ่งเวลาที่เราต้องการข่ายจากหลายๆ แหล่ง บางที่เขาจะใช้ xml format ไม่เหมือนกัน เช่น บางทีใช้ <link></link> บางที่ใช้ <url></url> บางที่ใช้ <subject> บางที่ใช้ <title> ทำให้เราต้องมาปรับ code ให้มันยืดหยุ่นขึ้น จากนั้นก็ใช้วิธีสั่งให้มันเก็บข้อมูลเอง โดยตั้งเงื่อนไขไว้ว่า ถ้าเปิดมาช่วงเวลาดังกล่าว ไม่ว่าใครก็ตาม มันจะเช็คข้อมูลใหม่ ก่อนจะเรียกข้อมูลจากฐานข้อมูลออกมา ซึ่งหน้าตาที่แสดงผลมันก็เป็นแบบนี้

ซึ่งเนื้อหาส่วนมากก็จะนำมาจากเว็บ RSS Thai นั้นเอง ซึ่งตอนนี้ก็เปลี่ยนมือไปหลายมือแล้ว เท่าที่ดูประวัติจากใน Web Archive https://web.archive.org/web/20070907001016/http://www.rssthai.com:80/ ซึ่งห่างหายจากการใช้ RSS Reader ไปนานมากแล้ว เหมือนได้รื้อฟื้น ว่ามันก็ยังไม่ตายนะ มันยังพอมีคนใช้อยู่ แม้ปัจจุบันจะมี data format ใหม่ๆ เข้ามาแทนที่ และมีการใช้งานที่สะดวกรวดเร็วกว่าก็ตาม

โดยหน้าเว็บของ RSS Thai ก็จะมีหมวดของข่าว สำหรับให้เราเอาไปแปะไว้ในเว็บ โดยทาง RSS Thai จะมี code มาให้เสร็จสรรพ เราแค่เลือกหมวดที่ต้องการ และใส่จำนวนที่จะแสดงผล ผมจำได้ว่า มันเลือกรูปแบบการแสดงผลได้ด้วยนะ เพราะเขาทำเป็น php class เอาไว้ แต่น่าจะหา code ชุดนั้นไม่เจอแล้ว พอมาตอนหลัง จากที่เคยดึงมาแสดงผลเฉยๆ ก็เลยทำให้มันเก็บลงฐานข้อมูลไปเลย นี่เป็น code สมัยนั้นที่เขียนเอาไว้ดึง feed จากเว็บ arip

function my_fetch_rss($url) {
	require('./include/connect.inc.php');
	
	$res_max = mysql_query('SELECT MAX(nid) AS maxid FROM news_feeds',$conn) or die (mysql_error());
	$maxr = mysql_fetch_assoc($res_max);
	$max = (int)$maxr[maxid];

	$data = @file_get_contents($url);
	$content = explode("<item>",$data);
	$i = 1;
	while($i<count($content)){
		$title = eregi_replace("</title>.+","",$content[$i]);
		$title = eregi_replace("<title>","",$title);

		$link = eregi_replace(".+<guid>","",$content[$i]);
		$link = eregi_replace("</guid>.+","",$link);				

		$date = eregi_replace(".+<pubDate>","",$content[$i]);
		$date = eregi_replace("</pubDate>.+","",$date);
	
		$desc = eregi_replace(".+<description>","",$content[$i]);
		$desc = eregi_replace("</description>.+","",$desc);	
		
	$xx = split("=",$link);
	$aID = end($xx);
	$aID = (int) $aID;
	if ( $aID > $max) {
		$status = '<font color="red">*</font>';	
		@mysql_query("INSERT INTO news_feeds 
			VALUES( '".$aID."', '".iconv('TIS-620', 'UTF-8',$title)."','".$link."','".iconv('TIS-620', 'UTF-8',$desc)."','".$date."')", $conn);
	} else {
		$status = '<font color="green">*</font>';	
	}

print '
<div class="entry">
	<h2><a href="/go/?'.$link.'" target="_blank">'.$status.iconv('TIS-620', 'UTF-8',$title).'</a></h2>
	<span>'.$date.'</span>' .  "\r\n";
print '	<p>
		'.iconv('TIS-620', 'UTF-8',$desc).'	</p>
</div>' .  "\r\n";

		$i++;
	}
mysql_free_result($res_max);
mysql_close($conn);
}

my_fetch_rss('http://www.arip.co.th/feed/');

นอกจากนั้นแล้ว ยุคนั้นก็จะมีเครื่องมือสำหรับจัดการ feed ของเรา ที่เชื่อ Feedburner มันเอาไว้สำหรับใครที่ต้องการรับ feed ข่าวสารทางอีเมล ก็ให้มากด subscription ได้ที่นี่

ซึ่งก็ไม่ได้เข้าไปนานมากแล้ว จนลืมไปแล้วว่า เคยใช้อะไรมาบ้าง ซึ่งต่อมา ก็มี youtube และการเข้ามาของ twitter ที่สรรค์สร้าง API ให้เราเข้าไปใช้งาน ได้เรียนรู้การใช้ json การ get post เริ่มสนุกกับการอ่าน docs ของ twitter จนเล่นเป็นเรื่องเป็นราว จับเอา RSS เข้าไปส่งใน twitter ด้วย twitterfeed จนตอนนี้เขาก็ปิดตัวลงไปแล้ว และท้ายที่สุดคือ แต่ง theme ของ Hi5.com ด้วย ภาพที่ดึงจาก twitter เกือบ realtime โดยดึงผ่าน api มาสร้างภาพด้วย image gd จากนั้นก็เอามาทำเป็น background บน Hi5 ช่วงนั้นเล่นกันแบบสุดๆ จนกระทั่ง facebook เข้ามา โลกมันก็เปลี่ยนไป

สรุป

10 กว่าปี แค่ XML RSS มันก็มีเรื่องราวเยอะ ที่วันนึงทำให้เราฉุดคิดได้ว่า เราผ่านอะไรมาบ้าง