▶ T2B 서비스 종료 공지 보기
T2B는 크게 2가지로 구분됩니다.
회원가입 및 트위터 인증 및 블로그 정보를 등록하는 PHP로 구성된 웹 영역과
하루에 한번씩 실행되면서 등록된 트윗들을 모아서 각각의 블로그로 보내주는 파이썬으로 만들어진 엔진이 있습니다.
이 중 엔진을 공개합니다.(사실 엔진이라는 표현을 쓰긴 좀 부끄럽네요.ㅎㅎ)
웹 영역은 소스도 지저분하고 별로 도움이 안되기 때문에 진짜 T2B의 중심이라고 할 수 있는 엔진이 도움이 될 것 같아요.
파이썬으로 제작되었고, 소스코드는 단순한 편입니다.
프로그래밍을 처음 시작하시는 학생 분들이나 T2B 같은 서비스를 만들려는 분들에게 도움이 되었으면 합니다.
그럼 간단한 설명을 시작합니다.
1. 파이썬 프로그래밍 언어를 기본으로 알고 있어야 합니다.
2. OAuth 에 관한 기본지식이 있어야 합니다.
3. 트위터 API 문서를 볼 수 있어야 합니다.
4. BlogAPI에 관한 기본 지식이 있어야 합니다.
1. 파이썬
T2B는 파이썬이라는 스크립트 언어로 제작되었습니다.
파이썬에 관해서는 별도로 공부 하셔야 합니다.
국내 파이썬 커뮤니티 : http://www.python.or.kr/
2. T2B 엔진이 하는 일
T2B엔진은 트위터의 Search API를 이용합니다.
아래와 같은 형식입니다.
아래의 Request를 보내면 트위터는 해당 날짜의 트윗들을 ATOM으로 돌려줍니다.
http://search.twitter.com/search.atom?from=sadrove&since=2011-01-01&until=2011-10-10&rpp=100
이 ATOM문서에서 날짜에 맞는 트윗들을 뽑아내어 리스트에 담아둔 후 차례대로 해당 블로그에 BlogAPI를 이용해 포스팅 합니다.
3. 각 파일의 구성
1. t2b_delivery_list.sql
t2b.py 에서 해당 테이블의 정보를 불러다가 씁니다. 이 테이블 내용 중에 특별한 것은 아래와 같습니다.
member_idx : 멤버 테이블과 연결하기 위한 인덱스 번호입니다.(멤버테이블은 첨부파일에 없습니다. 알아서 구성하셔도 됩니다. 엔진만 단독 실행할 때는 아무 값이나 입력해도 됩니다.)
blog_type : 블로그 서비스별 타입입니다.
0 싸이월드블로그, 1 이글루스, 2 티스토리, 3 네이버블로그
2. info.py
DB 접속을 위한 정보가 들어있습니다.
3. blogpost.py
BlogAPI를 이용해 블로그에 글을 포스팅 하기 위한 코드입니다.
소스에 보시면 "#테스트용 블로그 정보"라고 주석 달린 부분이 있는데 해당 변수에 값만 입력하고 blogpost.py를 실행하시면 해당 블로그에 글이 포스팅 되는걸 테스트 해보실 수 있습니다.
4. t2b.py
이 부분이 실제 T2B입니다.
이 파일에서 거의 모든 일을 다합니다.
주석이 꽤 많이 달아놔서 자세히 들어다보시면 이해하실 듯 합니다.^^
몇가지 특별한 것만 설명드릴께요.
로그파일
실행되다가 블로그 하나가 오류가 나면 로그를 남기고 계속 진행합니다.
해당 로그는 t2b_history.log 라는 이름에 계속 이어서 기록됩니다.
카테고리 지정
카테고리에 맞게 포스팅 할 수 있는 건 티스토리와 이글루스만 가능합니다.(코드 186번째 줄 참고)
수동 실행
t2b.py 94 2011-08-30 같은 형태로 실행하면 t2b_delivery_list 테이블에서 94 idx 레코드의 데이터를 기반으로 2011년 8월 30일 트윗을 블로그로 보냅니다.
자동실행
crontab 기능을 이용합니다. crontab은 검색해 보세요.^^
history.log에 계속 찍히는 에러 내용
로그파일을 보시면 IndexError: list index out of range가 계속 찍혀 있습니다.
이건 왜냐면 144번째 줄에 보면 while 루프를 도는 부분이 있는데
while '' != getContent.entries[i].content[0].value:
while 루프를 종료시키는 부분이 없습니다. 즉, 리스트를 돌다가 끝을 만나면 에러를 내고, except로 루프 밖으로 나가게끔 되어 있습니다.
왜 이렇게 했냐면, 리스트를 끝을 어떻게 알아야 할지 방법을 못 찾아서입니다.^^;
코드 중간중간 주석처리 해 놓은 부분은 제가 동작 테스트를 할때 쓰던 것들입니다.
그냥 주석으로 남겨두었습니다. 테스트 하실 때 주석을 풀어서 사용하시면 됩니다.
잘짜여진 코드가 아니기 때문에 분석하기 어떨지 모르겠습니다.
그래도 그렇게 복잡한 코드는 아니니까 파이썬을 하시는 분들이라면 이해하긴 어렵지 않을꺼예요.^^;;
도움이 필요하시면 sadrove@gmail.com 이나 트위터 @sadrove로 말씀해 주시고요.
이것으로 소스 설명을 마칩니다.
다들 행복하세요!
'T2B 공지사항' 카테고리의 다른 글
T2B 서비스를 종료합니다. (6) | 2011.10.30 |
---|---|
T2B 서비스를 임시 중단합니다. (0) | 2011.10.18 |
티스토리 이용자분들은 비밀번호를 반드시 변경해 주세요. (1) | 2011.05.23 |
일부 사용자의 2월 7일/8일 트윗글 미배달을 사과드립니다. (0) | 2011.02.09 |
T2B 서비스를 정식 오픈 합니다! (2) | 2010.12.09 |