지난달 개편된 스프링노트에는 읽기모드, 대쉬보드, 페이지 댓글 등의 기능들이 있다.
요새 블로그에 글을 쓸 때 스프링노트를 적극 활용중인데, 내 홈피의 글쓰기 편집창보다 스프링노트가 훨씬 나은데다 블로그로 보내기 기능을 갖고 있기 때문. 이미지 트래픽도 절감하고 -_- 이래저래 좋다. 그래서 블로그에 쓰는 내용은 대부분 그 원본이 스프링노트에 있다.
그러다보니 댓글이 분산되는 일을 겪게 된다. 얼마전에 쓴 생산성 2.0 이란 글의 경우 모든 댓글이 스프링노트에 달렸고 블로그에 발행된 글에는 댓글이 하나도 달리지 않았고, Firefox 3.1 beta 에 대해 리뷰한 글의 경우 대부분의 댓글이 스프링노트에 달리고 블로그에는 2개의 댓글만이 달려있다!
;ㅁ; 그래서 블로그 특정 포스트의 댓글을 출력할 때 그 글을 발행한 원본 스프링노트 페이지에 달린 댓글도 함께 출력하도록 수정하였다.
스프링노트 페이지의 댓글은 어떻게 가져오나
일단 페이지의 댓글을 가져와야 한다. 댓글은 GET http://rath.springnote.com/pages/1111/comments.xml 형태로 가져올 수 있다.
이번 기회에 getComments 메서드를 springnote-api for java에 추가하였으니 java 개발자들은 springnote-api svn 을 사용할 수 있을 것이다.
그 다음엔?
블로그의 댓글과 스프링노트의 댓글을 필요한만큼 정규화시킨다. 딱히 스프링노트 Comment 리소스에 댓글 작성자의 정보(오픈아이디나 스프링노트 페이지 주소)를 제공하지 않아 완벽하진 않겠지만 그래도 스프링노트 아이콘
![]()
과 스프링노트 안에서의 닉네임 정도는 표시해줄 수 있을 것이다. 작성자, 내용, 날짜. 이렇게 3개면 충분하다. 간단히 List 에 넣은 뒤 생성날짜 기준으로 오름차순 정렬을 해준다. (Collections.sort(List, Comparator)를 썼다)
그리고 출력!
포스트가 스프링노트에서 내보낸 것인지 어떻게 알지? pageId는 또 어떻게 알고?
그러게 말이다. 스프링노트에서 내보낸 것인지 아닌지 깔끔하게 알 수 있는 방법은 없다. 그저 스프링노트에서 내보낸 글일 경우 "이 글은 스프링노트에서 작성되었습니다." 라고 표시되는데 이것이 수정될 일은 거의 없다치고 (댓글 fetcher 코드는 블로그 주인장만 건드리는 것이고 포스트도 주인장만 다는 것이므로) 정규식을 써버리자.
블로그 내용에
Pattern p = Pattern.compile("http://[a-zA-Z0-9]\.springnote\.com/pages/([0-9])">스프링노트</a>에서 작성");
이 패턴이 있는지 조사한 뒤
Matcher matcher = p.matcher(HTML태그를포함한블로그내용); if( matcher.find() ) { String pageId = matcher.group(1); }
페이지 번호를 캡춰해온다. 그러면 pageId 를 얻어온 곳에서부터 SpringNote API를 콜하여 댓글을 얻어오고, 원 댓글과 merge 하는 작업 및 출력하는 루틴을 거치게 하면 된다.
스프링노트 API... 튼튼하겠지?
이 글은 스프링노트에서 작성되었습니다.
Comments
4 thoughts shared
Continue Reading
Discover more thoughts and insights
마인드 해킹 - 인상 깊었던 구절
다 읽은 후 인상 깊었던 구절들을 역순으로 적어본다. 카페인 중독자들이 사회적으로 용인된 이 갈색 액체 흥분제를 정기적으로 소비해야만 하는 강박을 통하여 과연 실제로 득을 보는지에 관한 논란은 아직도 끝나지
WebP polyfill 험난했다
Flutter 하면서 WebP 이미지 도배했었다. WebP가 좋아 보였기 때문이다. 요새 웹 버전 만들다 보니까 WebP 미지원 브라우저 때문에 CDN 마이그레이션 해야 해서 좀 귀찮았다. 그래서 WebP
구글 맵 vs 야후 맵
헤이님의 미투에서 본 소식, 구글맵 한국 서비스 시작! 을 보고 몇 자 남겨봅니다. 지난번 야후 맵 데이 참석 후, 국내 최고의 지도 서비스는 야후라고 생각하고 있었기에.. 이것저것