Recommanded Free YOUTUBE Lecture: <% selectedImage[1] %>

예전에 RSS 리더기를 직접 만들어볼까 생각을 했었는데, 귀차니즘으로 포기하고 걍 있는거 가져다 쓰기로 했다.

사용 목적은 팀블로그에 등록된 blog RSS를 가져오기 위함이다. 기존에 사용하던 planetplanet를 대체하기 위한 이유도 있다. 이거 너무 느린데다가 CPU를 무진장 잡아먹는다.

이왕이면 php로 작성된 걸 찾기를 원했는데, 이유는 다음과 같다.
  • 익숙한데다가
  • 스크립팅 언어라서 수정하기 쉽고
  • mysql 데이터베이스에 접근하기 좋다.
  • 덤으로 작성된 코드는 HTTP 프로토콜을 이용해서 실행시킬 수 있기 때문
  • php가 더러워서 안쓴다는 사람들도 봤는데, 해야될 일을 잘 해낼 수 있으면 끝.
구글님에게 php rss reader로 된 녀석을 찾아내놔라고 했더니, 첫 줄에 http://magpierss.source.net을 던져주더라. 구글(:12)을 믿고, 이걸 사용하기로 했다.

사용도 무지 간단하다. 그냥 압축풀고 HTTP호출했더니 끝이다. 다음은 핵심코드다. 필요없는 부분은 다 제거했다.
require_once('magpierss/rss_fetch.inc');

// $TeamUser 에는 팀블로그에 등록된 블로그 사이트의 정보들이 들어가 있다.
while(list($name, $url)=each($TeamUser))
{
  // fetch_rss 한번 호출로 끝
  $rss = fetch_rss($url);
  $ctime = time();

  // rss중에서 items의 정보를 가져오기로 했다.
  // title, id, desc, 작성일 등등을 가져왔다.
  foreach ($rss->items as $item)
  {
    $title = mysql_escape_string($item[title]);
    $id = $item[link];
    $desc = mysql_escape_string($item[description]);
    $pubdate = $item[pubdate];
    // 위에서 얻어온 정보를 이용해서 Query를 만들어서 
    // DB에 저장하면 끝이다.
  }
}

이제 wget을 이용해서 위 스크립트를 포함한 페이지를 호출하는 방식으로 테스트를 해보았다.
# wget http://teamblog.joinc.co.kr/reader.php -O /dev/null
오오. 잘되다.

마지막으로 crontab에 등록시키는 걸로 작업을 완료했다.
10 * * * * wget http://teamblog.joinc.co.kr/reader.php -O /dev/null
매시 10분마다 rss 데이터를 읽어오도록 했다.

RSS 정보를 DB까지 쌓는 과정은 대략 다음과 같다. 기록차원에서 정리했다.
                 |   JOINC               MYSQL(:12)
 +-------+  HTTP |  +------------+      +--------------------+
 | wget  |-------|->| reader.php |<-----| TeamBlog User Info |
 +-------+       |  |            |---+  +--------------------+
                 |  +------------+   |  +-----------+
                 |                   +->| RSS Data  |
                 |                      +-----------+