Create TOC

2006년 2월 1일

FeedReader

소개

FeedReader는 python과 php를 사용한 feed reader이다. feed(이후 채널로 표기) data는 python으로 제작한 프로그램을 cron을 통해 실행시켜 받아온 채널 data를 웹브라우저로 확인하게 된다.구글 리더가 쓸만해진 이후 개발 중단 상태입니다.

php로 작성된 RSS parser중 아직 python으로 작성된 parser 보다 좋은것을 발견하지 못했기 때문에 업데이트 프로그램을 별도로 작성했다(php 파서는 pubDate에 대헤서 python보다 처리가 미흡하다).

python용 feed parser 는 feed_parser를 사용했다.

설치가능한 환경

  • Apache
  • PHP
  • mysql
  • Python 2.3 이상. python-cjkcodes,libxml2-python, python-mysqldbdebian 경우 $ apt-get install python2.3 python2.3-cjkcodecs libxml2-python2.3 python-mysqldb 로 설치할 수 있다.

LICENSE

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

To read the license please visit http://www.gnu.org/copyleft/gpl.html

설치

파일 받기

feedreader-1.02.tar.gz

압축 풀기

주어진 파일을 임의의 폴더에 푼다(여기서는 홈 디렉토리 밑에 tmp에 푼것으로 한다).

$ tar xvfz feedreader-1.0.tar.gz ~/tmp

압축을 풀면 디렉토리가 2개 생긴다. feedreader 는 웹 인터페이스이고 feedupdater는 채널 업데이트 프로그램이다.

각 디렉토리를 적당한 위치에 이동시킨다.

feedupdater/schema 디렉토리에 있는 mysql.sql 을 database에 넣는다.

$ mysql 사용할database < mysql.sql

설정

관리자 설정

feedreader/setup 디렉토리에서 아래 명령을 수행한다.

$ mv htaccess .htaccess
htpasswd -c .htaccess 관리자id

설정파일 편집

feedreader 디렉토리에서 config.php파일을 편집한다.

$db_server = "mysql 서버주소. 보통은 localhost";
$db_user = "mysql 사용자 이름";
$db_pass = "비밀번호";
$db = "database이름";

feedupdater 디렉토리에서 fetch_feed.py 파일을 편집한다.

return MySQLdb.connect( host = "mysql 서버주소. 보통은 localhost",
                        user = "mysql 사용자 이름",
                        passwd = "비밀번호",
                        db = "database이름" )

사용자 추가

웹브라우저를 이용해서 feedreader/setup 에 접속한다. 접속하면 간단한 사용자 추가/삭제 화면이 나오며 원하는데로 사용자를 추가한다.

crontab에 업데이트 프로그램 등록

feedupdater/fetch_feed.py를 적당히 crontab에 등록한다. 주의할 점은 반드시 인자로 사용자 id를 주어야 한다.

사용자별 채널 등록

웹브라우저로 feedreader 에 접속하면 로그인 화면이 뜬다. 여기서 등록한 사용자로 로그인 한 후 좌측 하단 메뉴를 통해서 채널을 등록할 수 있다.

변경 내역

1.03 not release yet

2006-02-01 Yun-yong Choi

  • 속도 개선을 위해서 feed 목록을 기본으로 안보여줌.

2005-02-12 Yun-yong Choi

  • fetch_feed.py multithreaded 버전 완성. 테스트중

2005-01-28 Yun-yong Choi

  • ui 일부 수정.
  • channel 목록 정렬기능 추가. 서버에 설치된 mysql 에서 utf-8 문자열에 대해 정렬을 제대로 못하는 것으로 보인다.
  • log view 추가. fetch_feed.py 실행시 추가 작업 필요.

2005-01-21 Yun-yong Choi

  • lastRSS.php 제거. 웹상에서 채널 정보를 업데이트 못하게 수정. (lastRSS.php에서 allow_url_fopen 옵션을 필요로 하기 때문에 보안상 제거.)
  • fetch_feed.py 에서 업데이트하도록 수정.

2005-01-21 Yun-yong Choi

  • class 구조 변경
  • fetch_feed.py 개선. 설정파일 추가.

2005-01-16 Yun-yong Choi

  • 검색된 문자열을 표시

1.02 release 2005-01-16

2005-01-16 Yun-yong Choi

  • 채널이름을 잘라서 표시할때 utf8 문자열을 제대로 자르도록 수정.(http://phpschool.com 의 tip&tech 에서 가져옴)
  • lastRSS.php 업데이트. 0.6 -> 0.9.1

2005-01-15 Yun-yong Choi

  • Purge 기능 구현

2004-12-22 Yun-yong Choi

  • 검색기능 추가

2004-10-17 Yun-yong Choi

  • UTF-8 로 이전

2004-09-24 Yun-yong Choi

  • javascript 버그 수정
  • fetch_feed.py 수정 : pubdate가 변경되었을때 db에 반영하는 기능 추가.
  • feedparser.py 업데이트. 3.0 -> 3.3

2004-09-04 Yun-yong Choi

  • 안읽은 글만 확인할 수 있는 기능 추가
  • ui 일부 변경

1.01에서 1.02 업데이트

아직 업데이트 프로그램이 준비되지 않았습니다. 수동으로 table을 dump 해서 iconv로 utf-8로 바꾼뒤 복구해야 합니다.

1.01 release 2004-09-01

2004-09-01 Yun-yong Choi

  • 안 읽은 글이 있는 채널은 Bold로 표시
  • 안 읽은 채널 관련 javascript 수정
  • javascript를 별도 파일로 분리
  • 몇몇 css 수정

TODO

  • 보관함에 category를 추가?
  • 모든 사용자의 채널을 업데이트하는 프로그램 추가?
  • IE에서 layout 일부가 깨진다. mozilla에서는 이상없음.
  • 업데이트 프로그램의 multi-thread or multi-process 화. 채널 수가 많을 경우 single process로 처리하면 시간이 오래 걸린다.