Nu-Reader:重新发明Reader,可以订阅的不只有RSS - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
chuck911
V2EX    分享创造

Nu-Reader:重新发明Reader,可以订阅的不只有RSS

  •  
  •   chuck911
    chuck911 2013-12-10 03:53:48 +08:00 6167 次点击
    这是一个创建于 4393 天前的主题,其中的信息可能已经有所发展或是发生改变。
    先上图吧:


    Google Reader退出后,各路RSS Reader混战,体验流畅,UI华丽。可是呢,没有RSS的信息流就是没法订阅。
    传统RSS Reader干的事情,就是(间隔地)抓取RSS源-解析RSS-更新内容-呈现内容,其实就是一种单调的采集程序(只能采RSS),为什么不把reader视野放大呢,现在有那么多api、语义化标签… 关键只是要把这些采集过程统一起来,统一调度,生成相似结构的数据。

    嗯,Nu-Reader是这样一个可扩展的可定制的订阅/采集程序。
    嫌我嗦的直接去github看吧 https://github.com/chuck911/Nu-Reader

    于是,知乎日报啊,赶集租房啊,Github Trending啊,都可以订阅了。(我比较懒,其实只写了这几个)


    每一个订阅类型都要去重新实现,会不会很麻烦呢?每一种订阅类型都是由一些小管道组成的,比如RSS订阅:RSS采集|去重|更新内容。这样有什么好处呢?去重|更新内容 这两个管道是可能会重用的。比如你可以做一个球赛订阅:最新球赛战况采集|去重|更新内容,你只需要写一个小函数。此外,这些管道是可以随意拼接的,例如我最近要找工作,可是v2ex的招聘RSS里面好多好乱,我只要看上海的,那我可以自己做一个 RSS采集|{filter 上海}|去重|更新内容。再或者,我想要有新招聘就收到邮件提醒,我可以定义一个 RSS采集|{filter 上海}|去重|更新内容|发邮件。(注意了,这段里的语法是伪代码,实际的管道名称是 模块.函数名 )。

    目前这个项目还是在试验阶段,目前只是“能把这个idea运行起来”的状态。用的是node和mongo,小弟我其实是php程序员,只是node业余爱好者,甚至是第一次用express,还请各位大牛们多多指点。目前的界面很渣,后台也不稳定,很多地方没有错误处理。
    如果大家觉得这个idea还算靠谱,我会把界面用js框架重写一遍,(反正是有API的)

    后续畅想:
    大家自定义的订阅类型(插件),应该有一个地方分享,类似addon store这样的
    既然订阅的内容丰富了,那么呈现的方式也应该可以自定义,例如dribbble的RSS应该用网格瀑布流显示。(本来准备先简单实现一下的,没想到jade的include不支持动态,还是等前端重写了再实现吧)

    Github repo: https://github.com/chuck911/Nu-Reader

    最后说句,为什么我不把产品做得足够完善再分享出来?其实我也是很没自信的,但是对我这样没有定力的家伙,独自做东西往往是三分钟热度...
    26 条回复    1970-01-01 08:00:00 +08:00
    tux
        1
    tux  
       2013-12-10 04:16:56 +08:00
    有类似的想法,比如关注的电视剧更新了,也可以变成一种订阅
    htedsv
        2
    htedsv  
       2013-12-10 04:26:50 +08:00
    类似的服务还是有一些的,比如 http://article.yeeyan.org/view/4314/3313 ,我用的Yahoo Pipe,希望楼主能做的更好。
    momo5269
        3
    momo5269  
       2013-12-10 04:40:05 +08:00
    类似的服务有见过一些,但都局限在自己的小圈子内,做成插件是个不错的想法
    zhangxiao
        4
    zhangxiao  
       2013-12-10 05:44:33 +08:00
    赞一个,想法和UI实现感觉都不错
    regmach
        5
    regmach  
       2013-12-10 05:56:33 +08:00
    突然找到一个有趣的主题,居然是你的
    arron
        6
    arron  
       2013-12-10 06:38:24 +08:00
    这样的问题就是订阅页面更新,脚本就得更新,如果做成一个服务提供用户选择那么就得维护一大堆脚本,然后就变成一个搜索引擎了!
    RSS是一个公共api,大家都一样,要维护的是网站自个儿。
    newtonisaac
        7
    newtonisaac  
       2013-12-10 08:38:57 +08:00 via iPad
    Geed试过么
    yelite
        8
    yelite  
       2013-12-10 08:57:02 +08:00
    nice
    其实我在用python写一个类似的东西

    我觉得这类东西最大的问题还是易用性,做的功能强大以后别人估计都不会用。。。
    coosir
        9
    coosir  
       2013-12-10 09:15:19 +08:00
    先把一些常用站点实现出来,用户直接去选择就好
    jybox
        10
    jybox  
       2013-12-10 09:20:29 +08:00
    看起来不错,关注一下
    heroicYang
        11
    heroicYang  
       2013-12-10 11:20:35 +08:00
    有点儿意思!同为 node 程序员支持一下楼主~
    binux
        12
    binux  
       2013-12-10 11:23:06 +08:00
    实际上,你做的这些事,最后把结果转成RSS输出,就是RSS用户在做的事。。
    JoyNeop
        13
    JoyNeop  
       2013-12-10 11:30:28 +08:00 via iPad
    最大的对手是各路 RSS 生成器。。。爬虫+生成器搭配传统 RSS 阅读器同样可以做到。。。
    inee
        14
    inee  
       2013-12-10 11:53:54 +08:00
    类似的服务有很多吗?
    关键是生成的方式简便不简便

    查看的界面赶紧么
    inee
        15
    inee  
       2013-12-10 11:54:56 +08:00
    @JoyNeop 有人把这个直接做成网站就好了
    JoyNeop
        16
    JoyNeop  
       2013-12-10 12:06:17 +08:00 via iPad
    @inee 使用体验确实不一样。。。不过订阅是一劳永逸的。。。
    chuck911
        17
    chuck911  
    OP
       2013-12-10 13:44:01 +08:00   1
    @htedsv @binux @JoyNeop
    把原本可能是多维化的信息转成RSS再用传统阅读器去订阅,这是个多么无奈妥协的方案,就好像是 [我要去同城的女友家玩,却叫来了快递,自己钻进了箱子,让快递送去女友家;傍晚女友郁闷地等我,却收到了快递,惊喜地打开快递,发现了已经变成正方体的我 ]

    原谅我的吐槽,我不得不承认,RSS是经典的!@arron 所言极是,确切地展现了统一接口与好莱坞原则的好处。

    但是RSS毕竟还是适合博客与新闻,很多内容不只有标题和正文,RSS生成器们只能把各种丰富属性拼接成文本塞进description标签,这大大地降低了数据以丰富形式展现的可能性!(也是我使用MongoDB存储数据的原因)。面对一个传统的RSS Reader,作为程序员的我深深地感觉它是一个只能看不能玩的东西。也许是我单调的示例限制了大家的想象力,Nu-Reader的管道式插件其实提供了很高的可玩性,你可以实现更新内容用邮件、微信提醒,可以实现一个微博客户端,你甚至可以把它当做一个内容聚合站的控制后台

    btw,我刚才写了十几行代码,让Nu-Reader可以再把数据生成RSS,反哺传统RSS阅读器了
    chuck911
        18
    chuck911  
    OP
       2013-12-10 13:46:48 +08:00
    @newtonisaac Geed?没用过哎,搜了下居然没找到

    @coosir “常用站点”比如说哪些呢?
    Semidio
        19
    Semidio  
       2013-12-10 14:03:09 +08:00
    这种服务最大的问题就是很容易目标网站数次更新之后就停止更新了
    binux
        20
    binux  
       2013-12-10 15:06:46 +08:00
    @chuck911 来,说说看,有什么你支持,RSS不支持的
    icedx
        21
    icedx  
       2013-12-10 15:11:48 +08:00 via Android
    有安卓客户端的计划么?
    meta
        22
    meta  
       2013-12-10 16:51:46 +08:00
    yahoo原来有一个叫pipe什么的,不知道现在还在不在。
    powerfj
        23
    powerfj  
       2013-12-10 17:37:04 +08:00
    是不是和ifttt想法有点类似
    hewigovens
        24
    hewigovens  
       2013-12-10 17:45:48 +08:00
    @meta yahoo pipes还在
    leohxj
        25
    leohxj  
       2013-12-10 22:55:05 +08:00
    我来监督你,好好做!
    hengzhang
        26
    hengzhang  
       2013-12-11 01:11:10 +08:00
    为什么每次点加入收藏都需要点击2次!!!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     912 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 18:59 PVG 02:59 LAX 10:59 JFK 13:59
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86