[제안] RSS Collector V1.0.2 수집기
제가 모 회원님 홈페이지에도 올렸지만 또 올립니다.
그누보드의 무궁한 발전을 위해 우리 모두 무한 삽질 한번 해 봅시다.
이거 진짜 멋진건데 제로보드 전용이군요.
그누에도 이런거 빨랑 적용되어야 한다고 생각합니다.
제가 php의 p자도 모르지만 무한 삽질을 하려고 파일을 여기저기 뜯어보는데 도저히 답이 안나옵니다.
능력 되시는 분들은 한번 도전해 보는게 어떨까 싶습니다.
http://gyun4114.cafe24.com/blog/rss.php
위 주소는 현재 사용되고 있는 예시입니다.
컨텐츠 수집에 끝장입니다.
==================================================
ZeroBoard RSS Collector V1.0.2 배포합니다.
달팽이 ( HOMEPAGE ) 12-08 15:16
UPLOAD 1 ::RSSCollector1.02.zip (16.4 KB) | DOWN : 394
프로젝트: ZeroBoard RSS Collector 프로젝트 V1.0.2 설명서.
1. 개요
이 프로그램은 여러개의 RSS 주소에서 XML데이터를 주기적으로 불러와서
새로 생신된 글이 있는 경우 제로보드 DB에 자동으로 집어넣고,
제로보드의 인터페이스를 사용해서 조회할 수 있도록 지원하는 프로그램이다.
만든사람 : 임성욱 (likedy@nownuri.net)
출처 : http://woogi.apmsetup.org
프로젝트 : ZeroBoard RSS Collector 프로젝트 V1.0.2
최초 배포 : 2003.12.08
이 버전 배포 : 2004.02.02
2. 파일설명
./index.php : 관리용 프로그램
./cron.php : 실제로 무한루프를 돌며 모든 작업을 하는 프로그램
./functions.php : 이 프로젝트에서 사용되는 모든 함수가 정의되어있는 파일.
./config.php : 이 프로젝트에서 사용되는 환경을 정의한 파일
./rss_parser.php : Herman Veluwenkamp의 Rss parser.(필요에 의해 다소 수정한 파일임. 다른 버전으로 덮어쓰지 말것.)
./control.php : 프로세스를 시작하도록 촉발하거나 강제 종료시키는 명령을 내리는 파일
./auto_start_js.php : 운영하는 사이트의 아무곳에나 심어두면, 그 페이지를 여는 순간 프로세스 상태를 감지하여
프로세스가 죽어있는 경우 자동으로 살려준다. 관리자를 위한 인터페이스도 제공한다.
./data : 각종 플래그로 사용되는 파일들이 들어있는 경로. 반드시 읽기 쓰기가 가능하도록 chmod 777로 할 것.
./data/cron_status.txt : 현재 프로세스 상태 ACTIVATED/DEACTIVATED.
./data/last_runtime.txt : 프로세스가 마지막으로 동작한 시간.
./data/stop_forced.txt : 강제 종료 시그널 파일 TRUE/FALSE
./data/rss_url.txt : 데이터를 불러올 RSS 주소를 입력하는 파일.
./data/error_log.txt : 에러가 발생했을 때 기록을 남기는 파일
./readme.txt : 지금 읽고 있는 설명서
3. 설치방법
(1) 제로보드 설정
-. 제로보드에서 새로운 게시판을 하나 생성한다. 예를 들어 이름을 rss라고 정한다.
-. 제로보드의 스킨 중 적절한 것을 골라 사용하면 된다.(예를 들면 http://change.zotta.net/ 에서 배포하는 change_simpleguest2 방명록 스킨)
-. 게시판 생성 후에는 게시판 옵션에서 관련사이트#1을 사용가능하게 한다.
-. 권한 옵션에서 쓰기, 답글쓰기 기능은 모두 슈퍼관리자에게만 주도록 설정한다.
(2) 소스의 설치와 환경설정
-. 서버의 적당한 경로에 폴더를 만들고, 이 파일들을 업로드한다. 제로보드 경로와는 관계없다. 예를 들어 "/웹서버 홈/rss_collector/"아래에 올린다.
-. 업로드한 파일 중, "data/" 디렉토리와 그 하위 파일들을 모두 chmod 777 명령으로 읽기 쓰기가 가능하도록 한다.(윈도우 서버 사용자는 할 필요 없음)
-. config.php파일을 열어서 환경파일을 수정한다.
-. 설치 경로에 있는 index.php을 브라우저로 연다. (예: http://홈페이지 URL/rss_collector/index.php)
-. 이 화면은 관리자 화면으로서, 프로세스 상태를 제어할 수 있고, RSS URL을 추가, 수정, 삭제 가능하다.
(3) 프로세스 자동시작 설정
-. <script language="javascript" src="http://홈페이지주소/rss_collector설치경로/auto_start_js.php"></script>와 같은 스크립트를
홈페이지의 아무 곳에나 삽입한다.(보통 Footer에 넣으면 좋을것 같다.)
-. 이제 삽입한 스크립트가 있는 페이지를 방문자가 열면 자동으로 프로세스가 시작되고, 강제 종료하거나 웹서버가 죽지 않는한 영원히 동작한다.
-. 프로세스 동작상태에 대한 설명은 제로보드 수퍼관리자의 권한에서만 화면에 나타난다.
(4) 관리자 화면
4. 운영방법
-. 실행되고 있는 프로세스를 강제로 종료할 필요가 있다면
관리자 화면에서 RSS Collector 상태를 보면 현재 동작중인 경우 강제종료 링크가 있다.
이 링크를 클릭하면 강제로 프로세스가 종료된다.
종료는 명령 즉시 종료되는 것이 아니라, 현재 RSS를 받아오는 작업이 끝날때까지 기다렸다가 즉시 종료한다.
상대방 서버 응답이 늦어지면 최대 5분까지 걸리는 수가 있으므로, 참고 기다리자.. ;-)
그래도 종료되지 않는다면 아파치 서버를 restart하는 수밖에 없다. (그런 일은 거의 없다. 참을성있게 기다리자..)
->사실 강제종료할 일이 그렇게 많을까? 별로 없을듯하여 즉각적으로 종료하는기능은 안만들었다.
-. 강제 종료한 상태에서 프로세스를 다시 시작하려면
자동실행설정스크립트는 오류에 의한 종료상태에서만 동작한다. 강제 종료를 한 경우에는 자동으로 재시작되지 않는다.
관리자 화면에서 RSS Collector 상태를 보면 현재 정지상태인 경우 프로세스 시작 링크가 있다.
이 링크를 클릭하면 프로세스가 시작된다.
이미 프로세스가 동작중인 경우에는 중복해서 프로세스를 띄우지 않으므로 안심해도 좋다.
-. 관리자 화면 대신 사용할 수 있는 사용자 도구
설치방법에서 설명한대로 자동 시작 자바스크립트를 특정 페이지에 인클루드 한 경우에는
해당 화면마다 프로세스 상태와 제어 링크가 표시되므로 그것을 사용할 수도 있다.
-. URL을 잘못 입력한 경우에도 안되는 URL만 건너뛰면서 동작하기 때문에 문제는 없으며,
URL이나 XML에 이상이 있어서 실패하게 되면 ./data/error_log.txt에 기록된다.
-. URL을 새로 추가할 때에는 프로세스를 다시 시작할 필요가 없다.
하지만, config.php등의 설정값을 수정하거나, 프로그램 소스 수정후에는 반드시 재시작해주어야 적용된다.
5. 제작자의 변
이 프로젝트는 RSS에서 읽어와서 제로보드 DB에 집어넣는 것밖에 하지 않는다.
그러므로 출력해서 보는 방법은 제로보드를 써서 알아서 하면 된다.
자신이 좋아하는 스킨을 필요에 따라 사용하면 된다.
RSS에서 읽어온
"블로그명"은 게시판의 "작성자"인 "name"필드로,
"permanent link"는 게시판의 "관련사이트#1"인 "sitekink1"필드로,
"엔트리 타이틀"을 게시판의 "글 제목"인 "subject" 필드로,
"글 요약"과 "포스트 시각"을 합해서 "글 내용"인 "memo" 필드로 넣는다.
그렇기 때문에 각각의 필드가 한눈에 나타나는 인터페이스를 가진 스킨으로 보면 되는데,
change님의 방명록 스킨인 change_simpleguest2 시리즈 스킨을 약간 변형해서 사용하면 좋다.
참고로 이 배포와는 따로 배포할 것이지만, http://change.zotta.net/ 에 방문하여 스킨을 받은 뒤 적절히 수정하면 된다.
제작자가 "수정배포 금지"라고 해서 배포는 하지 않겠다. 대신 변경된 파일만을 함께 배포하겠다.
이 프로그램은 특성상 프로세스가 무한히 동작하면서 일정 시간에 한번씩 RSS데이터를 확인한다.
웹 프로그램에서 무한동작을 구현한 것은 좀 억지가 있어보이겠지만,
나의 철학은 제로보드의 애드온은 제로보드만 돌아가는 환경이라면 돌아가는 프로그램이어야 한다.
즉, 서버 환경에 따라 설치 가능 하고 아니기도 한, cron기술, php쉘 프로그램기술, perl 스크립트,
자바 기술, 기타 쉘 기술을 쓰지 않고 구현한 것은 이런 때문이다.
이 프로그램은 기존 서버 설정을 전혀 수정할 필요 없이 무한동작하도록 만들어져있다.
그리고, CPU도 점유율도 낮기 때문에 문제 없을것이다.
어떻게 구현했는지 궁금한 사람들은 소스를 분석해보기 바란다.
나혼자 생각해서 구현한 부분이라 어쩌면 최초로 시도된 엽기인지도 모른다.^^;
만약 제로보드가 아닌 다른 구조의 DB에 사용하고 싶은 사람들은
functions.php의 insert_rss_data 함수를 적절히 수정해서 사용하면 될 것이다.
5. update 변경사항.
V1.0.1 : 관리자 프로그램 파일명을 index.html에서 index.php로 변경. mime type에서 html을 php로 인식하지 않도록 되어있는 사용자를 위함
V1.0.2 : 서버 세팅에서 PHP에서 fopen함수를 사용하지 못하도록 되어있는 경우에도 사용 가능하도록 수정.
========================================
그누보드의 무궁한 발전을 위해 우리 모두 무한 삽질 한번 해 봅시다.
이거 진짜 멋진건데 제로보드 전용이군요.
그누에도 이런거 빨랑 적용되어야 한다고 생각합니다.
제가 php의 p자도 모르지만 무한 삽질을 하려고 파일을 여기저기 뜯어보는데 도저히 답이 안나옵니다.
능력 되시는 분들은 한번 도전해 보는게 어떨까 싶습니다.
http://gyun4114.cafe24.com/blog/rss.php
위 주소는 현재 사용되고 있는 예시입니다.
컨텐츠 수집에 끝장입니다.
==================================================
ZeroBoard RSS Collector V1.0.2 배포합니다.
달팽이 ( HOMEPAGE ) 12-08 15:16
UPLOAD 1 ::RSSCollector1.02.zip (16.4 KB) | DOWN : 394
프로젝트: ZeroBoard RSS Collector 프로젝트 V1.0.2 설명서.
1. 개요
이 프로그램은 여러개의 RSS 주소에서 XML데이터를 주기적으로 불러와서
새로 생신된 글이 있는 경우 제로보드 DB에 자동으로 집어넣고,
제로보드의 인터페이스를 사용해서 조회할 수 있도록 지원하는 프로그램이다.
만든사람 : 임성욱 (likedy@nownuri.net)
출처 : http://woogi.apmsetup.org
프로젝트 : ZeroBoard RSS Collector 프로젝트 V1.0.2
최초 배포 : 2003.12.08
이 버전 배포 : 2004.02.02
2. 파일설명
./index.php : 관리용 프로그램
./cron.php : 실제로 무한루프를 돌며 모든 작업을 하는 프로그램
./functions.php : 이 프로젝트에서 사용되는 모든 함수가 정의되어있는 파일.
./config.php : 이 프로젝트에서 사용되는 환경을 정의한 파일
./rss_parser.php : Herman Veluwenkamp의 Rss parser.(필요에 의해 다소 수정한 파일임. 다른 버전으로 덮어쓰지 말것.)
./control.php : 프로세스를 시작하도록 촉발하거나 강제 종료시키는 명령을 내리는 파일
./auto_start_js.php : 운영하는 사이트의 아무곳에나 심어두면, 그 페이지를 여는 순간 프로세스 상태를 감지하여
프로세스가 죽어있는 경우 자동으로 살려준다. 관리자를 위한 인터페이스도 제공한다.
./data : 각종 플래그로 사용되는 파일들이 들어있는 경로. 반드시 읽기 쓰기가 가능하도록 chmod 777로 할 것.
./data/cron_status.txt : 현재 프로세스 상태 ACTIVATED/DEACTIVATED.
./data/last_runtime.txt : 프로세스가 마지막으로 동작한 시간.
./data/stop_forced.txt : 강제 종료 시그널 파일 TRUE/FALSE
./data/rss_url.txt : 데이터를 불러올 RSS 주소를 입력하는 파일.
./data/error_log.txt : 에러가 발생했을 때 기록을 남기는 파일
./readme.txt : 지금 읽고 있는 설명서
3. 설치방법
(1) 제로보드 설정
-. 제로보드에서 새로운 게시판을 하나 생성한다. 예를 들어 이름을 rss라고 정한다.
-. 제로보드의 스킨 중 적절한 것을 골라 사용하면 된다.(예를 들면 http://change.zotta.net/ 에서 배포하는 change_simpleguest2 방명록 스킨)
-. 게시판 생성 후에는 게시판 옵션에서 관련사이트#1을 사용가능하게 한다.
-. 권한 옵션에서 쓰기, 답글쓰기 기능은 모두 슈퍼관리자에게만 주도록 설정한다.
(2) 소스의 설치와 환경설정
-. 서버의 적당한 경로에 폴더를 만들고, 이 파일들을 업로드한다. 제로보드 경로와는 관계없다. 예를 들어 "/웹서버 홈/rss_collector/"아래에 올린다.
-. 업로드한 파일 중, "data/" 디렉토리와 그 하위 파일들을 모두 chmod 777 명령으로 읽기 쓰기가 가능하도록 한다.(윈도우 서버 사용자는 할 필요 없음)
-. config.php파일을 열어서 환경파일을 수정한다.
-. 설치 경로에 있는 index.php을 브라우저로 연다. (예: http://홈페이지 URL/rss_collector/index.php)
-. 이 화면은 관리자 화면으로서, 프로세스 상태를 제어할 수 있고, RSS URL을 추가, 수정, 삭제 가능하다.
(3) 프로세스 자동시작 설정
-. <script language="javascript" src="http://홈페이지주소/rss_collector설치경로/auto_start_js.php"></script>와 같은 스크립트를
홈페이지의 아무 곳에나 삽입한다.(보통 Footer에 넣으면 좋을것 같다.)
-. 이제 삽입한 스크립트가 있는 페이지를 방문자가 열면 자동으로 프로세스가 시작되고, 강제 종료하거나 웹서버가 죽지 않는한 영원히 동작한다.
-. 프로세스 동작상태에 대한 설명은 제로보드 수퍼관리자의 권한에서만 화면에 나타난다.
(4) 관리자 화면
4. 운영방법
-. 실행되고 있는 프로세스를 강제로 종료할 필요가 있다면
관리자 화면에서 RSS Collector 상태를 보면 현재 동작중인 경우 강제종료 링크가 있다.
이 링크를 클릭하면 강제로 프로세스가 종료된다.
종료는 명령 즉시 종료되는 것이 아니라, 현재 RSS를 받아오는 작업이 끝날때까지 기다렸다가 즉시 종료한다.
상대방 서버 응답이 늦어지면 최대 5분까지 걸리는 수가 있으므로, 참고 기다리자.. ;-)
그래도 종료되지 않는다면 아파치 서버를 restart하는 수밖에 없다. (그런 일은 거의 없다. 참을성있게 기다리자..)
->사실 강제종료할 일이 그렇게 많을까? 별로 없을듯하여 즉각적으로 종료하는기능은 안만들었다.
-. 강제 종료한 상태에서 프로세스를 다시 시작하려면
자동실행설정스크립트는 오류에 의한 종료상태에서만 동작한다. 강제 종료를 한 경우에는 자동으로 재시작되지 않는다.
관리자 화면에서 RSS Collector 상태를 보면 현재 정지상태인 경우 프로세스 시작 링크가 있다.
이 링크를 클릭하면 프로세스가 시작된다.
이미 프로세스가 동작중인 경우에는 중복해서 프로세스를 띄우지 않으므로 안심해도 좋다.
-. 관리자 화면 대신 사용할 수 있는 사용자 도구
설치방법에서 설명한대로 자동 시작 자바스크립트를 특정 페이지에 인클루드 한 경우에는
해당 화면마다 프로세스 상태와 제어 링크가 표시되므로 그것을 사용할 수도 있다.
-. URL을 잘못 입력한 경우에도 안되는 URL만 건너뛰면서 동작하기 때문에 문제는 없으며,
URL이나 XML에 이상이 있어서 실패하게 되면 ./data/error_log.txt에 기록된다.
-. URL을 새로 추가할 때에는 프로세스를 다시 시작할 필요가 없다.
하지만, config.php등의 설정값을 수정하거나, 프로그램 소스 수정후에는 반드시 재시작해주어야 적용된다.
5. 제작자의 변
이 프로젝트는 RSS에서 읽어와서 제로보드 DB에 집어넣는 것밖에 하지 않는다.
그러므로 출력해서 보는 방법은 제로보드를 써서 알아서 하면 된다.
자신이 좋아하는 스킨을 필요에 따라 사용하면 된다.
RSS에서 읽어온
"블로그명"은 게시판의 "작성자"인 "name"필드로,
"permanent link"는 게시판의 "관련사이트#1"인 "sitekink1"필드로,
"엔트리 타이틀"을 게시판의 "글 제목"인 "subject" 필드로,
"글 요약"과 "포스트 시각"을 합해서 "글 내용"인 "memo" 필드로 넣는다.
그렇기 때문에 각각의 필드가 한눈에 나타나는 인터페이스를 가진 스킨으로 보면 되는데,
change님의 방명록 스킨인 change_simpleguest2 시리즈 스킨을 약간 변형해서 사용하면 좋다.
참고로 이 배포와는 따로 배포할 것이지만, http://change.zotta.net/ 에 방문하여 스킨을 받은 뒤 적절히 수정하면 된다.
제작자가 "수정배포 금지"라고 해서 배포는 하지 않겠다. 대신 변경된 파일만을 함께 배포하겠다.
이 프로그램은 특성상 프로세스가 무한히 동작하면서 일정 시간에 한번씩 RSS데이터를 확인한다.
웹 프로그램에서 무한동작을 구현한 것은 좀 억지가 있어보이겠지만,
나의 철학은 제로보드의 애드온은 제로보드만 돌아가는 환경이라면 돌아가는 프로그램이어야 한다.
즉, 서버 환경에 따라 설치 가능 하고 아니기도 한, cron기술, php쉘 프로그램기술, perl 스크립트,
자바 기술, 기타 쉘 기술을 쓰지 않고 구현한 것은 이런 때문이다.
이 프로그램은 기존 서버 설정을 전혀 수정할 필요 없이 무한동작하도록 만들어져있다.
그리고, CPU도 점유율도 낮기 때문에 문제 없을것이다.
어떻게 구현했는지 궁금한 사람들은 소스를 분석해보기 바란다.
나혼자 생각해서 구현한 부분이라 어쩌면 최초로 시도된 엽기인지도 모른다.^^;
만약 제로보드가 아닌 다른 구조의 DB에 사용하고 싶은 사람들은
functions.php의 insert_rss_data 함수를 적절히 수정해서 사용하면 될 것이다.
5. update 변경사항.
V1.0.1 : 관리자 프로그램 파일명을 index.html에서 index.php로 변경. mime type에서 html을 php로 인식하지 않도록 되어있는 사용자를 위함
V1.0.2 : 서버 세팅에서 PHP에서 fopen함수를 사용하지 못하도록 되어있는 경우에도 사용 가능하도록 수정.
========================================
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 3개
사이트 운영자라면 한번쯤은 생각해보는 제안이라 생각됩니다.
테스트를 위해 어제 제로보드(과거에 한번 설치한 적이 있었는데
개인적으로 불편해서 얼마후 삭제하였고 최근 그누보드를 접하게 되었음)
설치하고 오늘 오전에 테스트한 결과 정말 괜챦은 제안이다 생각되어
글 남깁니다. 저역시 PHP를 과거 몇년전에 책으로 어슬프게 공부한적이
있으나 현재에는 대부분 Modify에만 의존하다보니 변화의 추세를 따라가지
못합니다. 욕심이 나기에 한번 도전해 볼랍니다.
3월에 글올린 것으로 보아 지금쯤 많은 작업이 되었으라라 보는데, 현재까지
작업된 내용만이라도 공개해주시면 혹시 삽질하는데 도움이 될지도...
RSS 포맷을 모두 긁어 온다라 ......... 좋은 발상이네요.
그러나 RSS를 지원하는곳은 우리나라에도 몇군데 없는것으로...
외국의 경우와는 좀 다르다조..
아무튼 그누보드 버전 만들어서 ...
혼자써야쥐....음화홧...ㅋㅋ;;
농담이고요. 만일 만든다면 공개할게요..(장담못함..)
(아니 가능성 별로 없음..퍼버벅!!)