미투데이 글배달 기능 개조하기

2 min read

미투데이에는 글배달 기능이 있습니다. 하루동안 작성했던 내용들을.. 매일 새벽 4시경 (조정가능함) 블로그로 내보낼 수 있는 기능을 제공합니다. 그런데 얼마전부터! 선별적 글배달 기능이 제공되기 시작했습니다. 즉, 포스팅하고 싶은 글들을 아래와 같이 콕! 콕! 찍어서

블로그 API로 푸슝~ 쏩니다. -_-/~

블로그로 포스팅하는 데 쓰이는 API로 MetaWeblog가 있고, 지금은 구글이 인수하여 GData로 승천하여 deprecated된 Blogger api, MovableType 가 있습니다. 티스토리, 텍스트큐브, 이글루스 등이 이런 API들을 잘 지원합니다.

그러나 제 블로그는 사제-_- 블로그라.. API 가 있고 미투데이에서 그것을 지원하는지 안하는지 체크하는 방식이 아니라, 일단 /api/me2day 로 아무 처리도 하지 않는 서블릿을 만들어놓고 무슨 요청을 하는지 구경하여 --; 만들었는데요. 꼭 필요한 거 아니면 안만드는, 확장성은 확장할 때만 고려하는 개발자이기 때문에 -- 이런 류의 작업을 할 때도 리버스 엔지니어링을 합니다 -.-

하여간 미투데이는..

블로그 설정을 위해 Blogger.getUsersBlogs 로 블로그 API 주소의 유효성과 입력한 id/pw를 체크하고, 그 직후 metaWeblog.getRecentPosts 를 연이어 부릅니다.

metaWeblog.getRecentPosts 

metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs

Each struct represents a recent weblog post, containing the same information that a call to metaWeblog.getPost would return.

If numberOfPosts is 1, you get the most recent post. If it's 2 you also get the second most recent post, as the second array element. If numberOfPosts is greater than the number of posts in the weblog you get all the posts in the weblog.

그러나 getRecentPosts 의 데이터가 사용되는 곳은 없나봅니다. 저같은 경우 하드코딩된 fake entry 를 리턴하도록 해뒀는데 (코딩하기 귀찮으니 -_-) 아무런 문제가 없었습니다. 하드 코딩할 때는 ociweb 의 WAX를 써서 소스코드를 다음처럼 쵸큼 이쁘게 만들어 봤습니다.

마지막으로 글배달에 쓰이는.. metaWeblog.newPost만 처리하면 됩니다. newPost 로 보내준 xml 문서에서 description 부분을 unescape 하여 내용 부분에 떠억- 하니 넣으면 땡입니다.

그런데 어제 미투데이에서 보낸 글을 보면 댓글까지 export 되어 있는 것을 볼 수 있는데요. :$ 어떻게 한 것이냐하면- metaWeblog.newPost 의 description 부분을 받아 블로그 내용을 쓰기 전에 살짝 다음과 같은 filter을 만들어 걸었습니다. String 을 파라미터로 넘겨 댓글이 포함된 String 을 리턴하도록 하는 Me2dayTools 클래스의 소스코드는 아래에서 구하실 수 있습니다.

Me2dayTools.java.html (예쁘게 보기) Me2dayTools.java (다운로드 받기)

소스코드 내용을 보면 알겠지만 export된 미투 포스트의 퍼머링크를 정규식으로 찾고, 각 포스트의 고유 아이디를 가져오기 위해 getPosts를 불러 얻은 아이디를 다시 getComments에 넘겨 코멘트를 얻어오고 코멘트 내용을 마크업하여 기존 description 마크업에 꾸겨 넣는 것입니다.

개조하는 인생은 즐겁습니다. (H)

Comments

3 thoughts shared

01
J

jong10

세상에.. 들여쓰기가 대박인데요. -_-;

02
R

rath

왁스를 왁스답게 쓰려면 들여쓰기가 생명이요 ㅎㅎ

03

전군

들여쓰기 ㄷㄷㄷ

Continue Reading

Discover more thoughts and insights