分享一个自己做的Chrome插件,V2EX Notifications - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
lackrp
V2EX    分享创造

分享一个自己做的Chrome插件,V2EX Notifications

  •  
  •   < href="/member/lackrp">lackrp 2012-05-21 14:58:29 +08:00 7083 次点击
    这是一个创建于 4895 天前的主题,其中的信息可能已经有所发展或是发生改变。
    传送门: https://chrome.google.com/webstore/detail/jfkgdiedphggdhbiaebblaccdenoiaaj

    小弟实力有限,希望各位多提意见 :)
    53 条回复    1970-01-01 08:00:00 +08:00
    romoo
        1
    romoo  
       2012-05-21 15:01:46 +08:00
    用过剧透版,很赞!
    qq286735628
        2
    qq286735628  
       2012-05-21 15:03:23 +08:00
    建议增加两种数据的显示~
    收藏节点中更新数据的显示~
    特别关注中更新数据的显示~
    sd4399340
        3
    sd4399340  
       2012-05-21 15:18:16 +08:00
    不错啊,好东西~
    jakobzheng
        4
    jakobzheng  
       2012-05-21 15:19:52 +08:00
    赞 同意二楼
    nodexy
        5
    nodexy  
       2012-05-21 15:20:06 +08:00
    刚发了一个求交流的帖子,就看到LZ的这个 。。。

    我先去看看源码,不懂的回头请教下 :)
    romoo
        6
    romoo  
       2012-05-21 15:25:24 +08:00
    @qq286735628 @jakobzheng 嗯,可以增加一个 tab 展示 /my/following
    lackrp
        7
    lackrp  
    OP
       2012-05-21 15:35:56 +08:00
    @qq286735628 @jakobzheng 嗯,多谢建议,我尝试一下哈
    jiajizhou
        8
    jiajizhou  
       2012-05-21 15:40:14 +08:00
    牛~
    lackrp
        9
    lackrp  
    OP
       2012-05-21 15:45:19 +08:00
    @jiajizhou 神牛,是你吗?
    jiajizhou
        10
    jiajizhou  
       2012-05-21 16:12:27 +08:00
    @lackrp 哈哈,我是搜Diablo3的代理搜到这个网站的...然后就看到了你的头像。这里貌似回复还要金币啊=.=
    0days
        11
    0days  
       2012-05-21 16:30:41 +08:00
    感觉不错,就觉得这东西会有人做
    lackrp
        12
    lackrp  
    OP
       2012-05-21 16:36:07 +08:00
    @jiajizhou 自从你不上Gtalk之后,找你真不容易啊。我明天来上海,待一周,找个时间一起吃个饭?
    jiajizhou
        13
    jiajizhou  
       2012-05-21 16:39:51 +08:00
    @lackrp 啊,找我可以用weibo~gtalk上的人太少了,我经常忘记开。好,随时有空,我电话没换过,打我电话吧:)
    lackrp
        14
    lackrp  
    OP
       2012-05-21 16:41:48 +08:00
    @jiajizhou 我微博帐号被封了。。。
    j1945
        15
    j1945  
       2012-05-21 19:16:50 +08:00
    好物~试用先
    zythum
        16
    zythum  
       2012-05-21 19:48:29 +08:00
    挺不错的。
    ui上可以再改改就更好了。

    话说什么时候pb3的具体的api列表可以公布啊..
    lackrp
        17
    lackrp  
    OP
       2012-05-21 20:40:56 +08:00
    @zythum +1 等PB3的API啊,等得花儿也谢了
    romoo
        18
    romoo  
       2012-05-21 22:06:11 +08:00
    好多人都在等 API 啊。
    gDD
        19
    gDD  
       2012-05-21 22:28:38 +08:00
    加个LICENSE吧,推荐MIT
    lackrp
        20
    lackrp  
    OP
       2012-05-21 22:57:58 +08:00
    @romoo 没有API,感觉做起来很别扭,比如我之前去掉了桌面提醒,有一大半的原因是因为没有API导致的
    lackrp
        21
    lackrp  
    OP
       2012-05-21 22:59:09 +08:00
    @gDD 请问,MIT比其他协议的优势在于?
    Livid
        22
    Livid  
    MOD
    PRO
       2012-05-22 03:35:27 +08:00
    Notification feed is deployed:

    http://www.v2ex.com/notifications
    gDD
        24
    gDD  
       2012-05-22 10:07:08 +08:00   1
    @lackrp http://bitcoin.stackexchange.com/a/1898 ,MIT基本是Javascript/CSS领域的标配License。不过不管选什么有总比没有好,没有表示保留所有权利,不适合放到GitHub上。
    yyfearth
        25
    yyfearth  
       2012-05-22 10:18:15 +08:00
    貌似还不错,G+主题
    放到GitHub上面开源还是加上一个License比较好,一半JS用MIT的多。
    MIT最宽松,基本上别人那你代码干什么都可以。
    colossuspeng
        26
    colossuspeng  
       2012-05-22 10:30:18 +08:00
    为什么不搞个background.html,所有内容全放在popup.html这样好像不能定时更新在badge上显示的提醒数,打开速度也很慢。
    lackrp
        27
    lackrp  
    OP
       2012-05-22 15:18:18 +08:00
    @Livid 我感觉这个notification feed同时包含了两个功能:1. 获取所有的notifications内容;2. 将所有的notifications标记为已读。这使得我使用这个API的时候有些蹩脚,也就是说,如果想得到notifications的内容就不得不将它们标记为已读,即使用户还没有看到这些notifications。如果将这两个功能分开成两个不同的API,你觉得如何呢?
    lackrp
        28
    lackrp  
    OP
       2012-05-22 15:20:42 +08:00
    @gDD @yyfearth @romoo 谢谢各位,原来不加License是保留所有权利啊。那是不是只需要在repo里面加个LICENSE文件就可以?还是说需要在每个文件开头都加上一段话?
    mkeith
        29
    mkeith  
       2012-05-22 15:22:58 +08:00
    @zythum 在学js 想试着做个chrome的插件,请问chrome的api文档在哪儿找啊?最好是离线版本的.
    lackrp
        30
    lackrp  
    OP
       2012-05-22 15:23:56 +08:00
    @colossuspeng 谢谢你的建议。这个想法我之前有考虑过,但感觉以目前的API实现起来有些问题。请先参考一下#27楼。如果将notifications缓存在background.html里,会造成一种可能的错误:用户在看到这些notifications之前,它们就被标记为已读了。这个状态的不一致会造成一些问题,比如多终端登陆的时候,可能会有一个终端的未读提醒数永远是零。
    rse43
        31
    rse43  
       2012-05-22 15:26:02 +08:00
    "2. 将所有的notifications标记为已读。" - @lackrp

    似乎没有这个功能,应该是只读的。
    romoo
        32
    romoo  
       2012-05-22 15:26:19 +08:00
    加个 LICENSE 就好了,Like this: https://github.com/livid/v2ex/blob/master/LICENSE
    zythum
        33
    zythum  
       2012-05-22 15:30:59 +08:00
    lackrp
        34
    lackrp  
    OP
       2012-05-22 15:51:37 +08:00
    @rse43 每次访问了 http://www.v2ex.com/notifications 之后,未读消息数就变成零了,不是么?
    rse43
        35
    rse43  
       2012-05-22 16:00:53 +08:00
    @lackrp 是的,但是访问rss feed似乎并没有这个效果。
    lackrp
        36
    lackrp  
    OP
       2012-05-22 16:06:01 +08:00
    @rse43 哦?那看来是我理解错了。怎么访问这个rss feed?
    lackrp
        37
    lackrp  
    OP
       2012-05-22 16:08:52 +08:00
    @rse43 找到了,原来是在notifications页面的最下面。多谢多谢。那么要怎么才能知道/n/{id}.xml里面这个id是多少呢。。
    romoo
        38
    romoo  
       2012-05-22 16:12:24 +08:00
    @lackrp 让用户自己去填 feed 地址吧。
    lackrp
        39
    lackrp  
    OP
       2012-05-22 16:35:47 +08:00
    @romoo 要求太高了,你看,我用了如此长的时间才发现了那个feed。。。如果还要复制粘贴。。。我觉得我的智商受到了极大的挑战。。。
    lackrp
        40
    lackrp  
    OP
       2012-05-22 16:37:15 +08:00
    @Livid 请帮忙看一下reply#37,多谢
    romoo
        41
    romoo  
       2012-05-22 16:41:07 +08:00
    @lackrp 可能刚到上海水土不服吧。。。
    zythum
        42
    zythum  
       2012-05-22 16:48:06 +08:00
    @lackrp 目前围脖也是这样的。很多地方的未读数的出来都是这样的。
    lackrp
        43
    lackrp  
    OP
       2012-05-22 17:28:27 +08:00
    @romoo 嗯,脑子掉在半路了
    lackrp
        44
    lackrp  
    OP
       2012-05-22 17:43:12 +08:00
    我觉得还有一点想不太明白。假设我们允许用户自己填feed地址,且这个用户有两个帐号A和B,这时,用户填写帐号A的feed地址,但是浏览器里登陆的是帐号B,那么当用户通过帐号A的feed打开 /notifications 时,看到的却是B的提醒。

    相比用id区分不同用户的notification feed,我更倾向于类似于log-in/cookies的做法,或者这两个方法都保留

    你觉得呢?cc @Livid
    Livid
        45
    Livid  
    MOD
    PRO
       2012-05-22 17:56:48 +08:00
    @lackrp 那个输入框应该是 readonly 的,并非是可以让用户输入。现在已经修正。

    另外,我考虑增加一个设置已读标记的接口。
    lackrp
        46
    lackrp  
    OP
       2012-05-22 18:03:31 +08:00
    @Livid Sorry,没表述清楚,我想说的输入是相对于这个插件而说的,换言之,用户将这个feed地址复制粘贴到插件的选项中。
    另外,从另一个thread /t/36919 中的讨论,是不是不打算支持通过cookies区分用户的方式?
    多谢
    Livid
        47
    Livid  
    MOD
    PRO
       2012-05-22 18:05:18 +08:00
    @lackrp 目前是每个用户对应一个属于自己的 /n/private_token.xml
    lackrp
        48
    lackrp  
    OP
       2012-05-22 18:26:09 +08:00
    @Livid 嗯,那么除了notifications,还有其他地方有用到这个private token吗?
    qq286735628
        49
    qq286735628  
       2012-06-09 10:34:45 +08:00   1
    @lackrp
    反馈个建议,现在的notifications,貌似不能后台打开页面。
    比如我看到几条感兴趣的话题,但我只能打开第一条,想打开第二条的话,又得重新打开notifications并找到那个地方
    lackrp
        50
    lackrp  
    OP
       2012-06-09 11:28:03 +08:00
    @qq286735628 谢谢,我不是很清楚这个要如何实现,让我思考一下
    qq286735628
        51
    qq286735628  
       2012-06-09 11:35:43 +08:00
    @lackrp 你可以参考一下fawave,在插件里面浏览微博信息的时候,鼠标左键点击连接,浏览器会后台打开新的页面,但插件的界面不会消失
    lackrp
        52
    lackrp  
    OP
       2012-06-10 02:15:19 +08:00
    @qq286735628 使用了一下fawave,好像点击链接之后,浏览器后台打开页面,但是插件popup还是会消失。不知道是不是我使用的方法不对。我们可以私下里交流,我的邮箱:[email protected]
    romoo
        53
    romoo  
       2012-10-11 16:38:05 +08:00
    @lackrp 用 chrome.tabs.create 方法,selected 的属性为 false 就可以后台打开新页面了,奇怪 http://developer.chrome.com/extensions/windows.html#current-window 里面居然没写。

    http://gist.github.com/3871009
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     876 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 21:13 PVG 05:13 LAX 14:13 JFK 17:13
    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