2011년 2월 16일 수요일

rss2metaweblog

관리하고 있는 4개의 블로그의 포스트를 중앙에 모을 수 있는 방법이 없을까 하고 생각하고 있었습니다. 네이버 블로그를 그렇게 좋아하진 않지만 네이버 블로그의 규모와 유저 베이스를 결코 앝볼 수 없기에 글을 모아놓는다면 거기가 가장 적당할 거라고 생각했습니다.

블로그에서 다른 블로그로 글을 실시간으로 보낼 수 있는 방법을 찾아보았지만 찾을 수 없었습니다. 글의 배급은 RSS나 Atom을 통해, 블로그에 글을 게시하는 통일된 인터페이스는 MetaWeblog API를 통해 제공되지만 이 둘을 합쳐서 실시간으로 피드를 받아와서 블로그에 글을 게시해 주는 서비스가 없는 것 같더군요.

그래서 임의의 RSS/Atom 피드를 크롤링하면서 MetaWeblog API를 통해 해당 피드들을 임의의 블로그에 게시해 주는 간단한 스크립트를 만들어 보았습니다. XMLRPC나 MetaWeblog API, JSON, RSS 피드 리더 전부 파이선에서 그냥 바로 가져다 쓸 수 있는 형태로 만들어져 있어서 어렵지 않게 작업이 가능했습니다. 테스트까지 합쳐서 1시간 반 정도 걸렸습니다.

혹시 필요하실 분이 계실까봐 공개합니다. https://github.com/segfault87/rss2metaweblog MIT 라이센스를 따르며 파이선 2.x, Universal Feed Parser 5.0가 필요합니다. 네이버 블로그에서 쓰려고 만들었지만 아마 MetaWeblog API를 지원하는 블로그 서비스라면 어디서든지 사용이 가능할 겁니다. 설정 파일의 형식은 JSON이며 대략적인 설정 방법은 제 설정 파일을 참고해 주세요.

{
"preferences": {
"update_interval": "5m"
},
"feeds": [
{
"id": "electroscape.en",
"url": "http://en.blog.influx.kr/feeds/posts/default"
},
{
"id": "electroscape.ko",
"url": "http://ko.blog.influx.kr/feeds/posts/default"
},
{
"id": "scrapranch",
"url": "http://scrapranch.influx.kr/rss"
},
{
"id": "tangibility",
"url": "http://tangibility.influx.kr/rss"
}
],
"target": [
{
"id": "naver",
"url": "https://api.blog.naver.com/xmlrpc",
"blogid": "segfault87",
"userid": "segfault87",
"password": "API 키"
}
],
"category_map": {
"naver": {
"electroscape.en": "electroscape.en",
"electroscape.ko": "electroscape.ko",
"scrapranch": "scrap ranch",
"tangibility": "tangibility"
}
}
}

1 개의 댓글:

  1. I를 통해 해당 피드들을 임의의 블로그에 게시해 주는 간단한 스크립트를 만들어 보았습니다. XMLRPdiscount dr dre beats
    Dr Dre Beats
    Beats By Dre
    monster beats

    답글삭제