LINUX.ORG.RU
ФорумTalks

Френд-лента ЖЖ через RSS


0

0

Всем привет!

Народ, не подскажете, как можно легко и непринужденно перетащить ЖЖ френдленту в какую-нибудь RSS читалку, типа агрегатора, а еще лучше Bloglines? Причем с аутенфикацией.

В идеале хотелось бы вообще всю френд ленту одним потоком вытащить, чтобы руками в последствие ничего не трогать при изменении списка френдов.

★★★★★
Ответ на: комментарий от lester_dev

а почему не в толках? Разговор не совсем технический, про линукс (агрегатор ведь). народу тут до ***, вобщем много. так что вполне подходящее место :)

svyatogor ★★★★★
() автор топика
Ответ на: комментарий от svyatogor

ну не я так понял, вопрос касается функциональности ЖЖ "как перетащить ленту в РСС", я не думаю что сдесь много специалистов в этой области :)

lester_dev ★★★★★
()

написать скрипт, который сгенерит часть конфига агрегатора, содержащую список потоков, основываясь на списке френдов - в урлы можно и авторизацию запихать

anonymous
()
Ответ на: комментарий от anonymous

> написать скрипт, который сгенерит часть конфига агрегатора

+1

ключевое слово OPML

anonymous
()

Я тоже недавно задался этим вопросом. Нагуглил такую идею: feed получается применением

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">;
    <xsl:output  method="xml" version="1.0" encoding="UTF-8" 
indent="yes" omit-xml-declaration="no" media-type="text/xml" />
    <xsl:template match="/">
        <rss version="2.0">
            <channel>
                <title>Title</title>
                <description>Description</description>
                <language>en-us</language>
                <link>http://your-username.livejournal.com/friends</link>;
                <xsl:for-each select="feeds/link/@href">
                    <xsl:copy-of select="document(.)/rss/channel/item"/>
                </xsl:for-each>
            </channel>
        </rss>
    </xsl:template>
</xsl:stylesheet>

к зюмелю вида 

<?xml-stylesheet type="text/xsl" href="merge-rss.xsl"?>
<feeds>
    <link href="blah1"/>
    <link href="blah1"/>
</feeds>

К сожалению, агрегаторы сами не применяют stylesheet к нему, поэтому я 
решил делать это на стороне сервера, на котором нашелся ruby с биндингами к libxml2/libxslt.

Поскольку ruby я до этого только видел на презентациях, в итоге получился следующий кошмар, который черезж*, но работает.

#!/usr/bin/ruby1.8 -w

require 'digest/md5'
require 'xmlrpc/client'
require 'xml/libxml'
require 'xml/libxslt'
ljrpc = XMLRPC::Client.new2("http://www.livejournal.com/interface/xmlrpc";)
challenge = ljrpc.call("LJ.XMLRPC.getchallenge")["challenge"]
md5hash = Digest::MD5.new
md5hash.update(challenge + "my_password_md5_here")
friendlist = ljrpc.call("LJ.XMLRPC.getfriends", Hash["username","my_username_here","auth_method",&
quot;
challenge","auth_challenge", challenge, "auth_response", md5hash.hexdigest])["friends"]
feedlist = XML::Document.new()
feedlist.root = XML::Node.new('feeds')
friendlist.each {|x| feedlist.root << newlink = XML::Node.new('link'); newlink["href"] = "
http://" + x["username"] + ".livejournal.com/data/rss"}
xslt = XML::XSLT.file('merge-rss.xsl')
xslt.doc = feedlist
rss = xslt.parse
rss.apply
print "Content-type: text/xml\n\n"
rss.print

grob ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.