2009-06-25 6 views
0

피드를 통해 루프를 돌리고 데이터베이스에 ActiveRecord 객체로 추가하는 데몬을 작성하려고합니다.레일즈 애플리케이션에서 피드 집계

첫 번째로, 내가 직면하는 한 가지 문제는 피드 정규화 주옥을 사용하여 스토리의 저자/사용자를 안정적으로 검색 할 수 없다는 것입니다. 때때로, 태그를 인식하지 못하는 것 같습니다 (나는이 문제에 직면 한 다른 사람이 있는지 모르겠습니다).

둘째, RSS 피드를 데이터베이스 항목으로 다시 변환하지 못했습니다. 나는 각 엔트리가 다른 ActiveRecord 객체들과의 연관을 가질 때 이것을 수행 할 필요가있다. 이 일을 특별히 할 수있는 보석을 찾을 수는 없지만 어떻게해야 act_as_feed 같은 것을 해킹 할 수 있습니까?

+0

RSS와 다른 피드를 데이터베이스 항목으로 변환하는 것이 일반적입니다. 프로그래밍 방식의 액세스는 XML 피드의 핵심입니다! 피드를 분석 할 때 적절한 모델을 만들고 업데이트하고 저장해야합니다. 그게 당신이 요구하는 것입니까? – Swanand

+0

아, 그래, 그게 내가 묻고있는거야. 그러나, 나는 그것을하는 보석을 발견 할 수 없다. 어떤 방법으로 피드 노멀 라이저보다 나은 rfeedpaser를 찾았지만 엔트리를 데이터베이스에 저장하지 않습니다. 그러나 코드를 살펴보면 피드에 넣을 수있는 정보가 너무 많아서 그런 보석을 찾지 못할 것이라고 생각합니다. – Jaryl

답변

0

SimpleRSS를 사용하지 마십시오. HTML 엔티티를 디코딩하지 않으며 가끔 피드의 구조를 무시합니다.

피드를 XMLSimple으로 XML로 구문 분석하는 것이 가장 쉬운 것으로 밝혀졌지만 모든 XML 구문 분석기를 사용할 수 있습니다.

0

SimpleRSS는 매우 간단한 API를 제공하며 대부분의 피드에서 잘 작동합니다. 그것의 "파서"(많은 수준에서 너무 잘못) regexes의 잔뜩로 구현을보고하지 않는 것이 좋습니다,하지만 잘 작동합니다.

데몬은 백그라운드에서 실행하기에 좋은 보석입니다.

활성 레코드를 사용하는 경우 레일 외부의 AR 사용에 대한 지침을 따른 후 모델 클래스를 인라인으로 정의해야합니다. 이것은 부 풀리는 것을 조금 줄입니다.

RSS 피드 우리는 당신이 모든 구조 (및 대기 시간은 정상 구조에 의해 체포하지 않는 것을 기억)을 시도해야합니다, 경험,

date = i[:pubDate] || i[:published] || i[:updated] 
    body = i[:description] || i[:content] || i[:summary] || "" 
    url = i[:guid] || i[:link] 

또한 사용을 통해이 가을이다, 꽤 일치하지 않습니다. 나쁜 데이터를받는 RSS 데몬을 끊임없이 반송해야합니다.

0

가장 좋은 방법은 레일 엔진Feed API like Superfeedr's에 연결하는 것입니다. RSS 피드 폴링은 비동기 작업자 및/또는 초과 작업 시간을 유지 관리하기 위해 상당히 복잡한 대기열 시스템을 실행해야 함을 의미합니다. 또한 수백 가지 형식과 불일치를 처리해야합니다. 여기에 how to consume RSS feeds in a Rails application을 보여주는 블로그 게시물이 있습니다.

관련 문제