百度贴吧列表页号加入

针对特定网站的规则分享、讨论

Moderator: phoenix

ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

百度贴吧列表页号加入

Post by ddbb »

2010.01.08 更新: http://forum.proxomitron.cn/viewtopic.p ... 1538#p1538

考虑到一般中间的页都是不需要的...

要么就是从第一页开始看 要么就是直接到最后

另外如果把所有页都列出来的话 也太难看了一点

所以只有一个LINK 直接到最后一页 中间的都不要了.....

代码还是一样的难看 不过对应到了270个回复 应该能应付大多数情况了

对了 如果中间有删贴 并且回贴量正好在临界点的时候 可能会显示没有贴子 这个好像没办法.....

Code: Select all

[Patterns]
Name = "BaiDu TieBa: Add Last Page Link"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Bounds = "$NEST(<tr*>,</tr>)"
Limit = 800
Match = "\0<td>\1</td>*<td>\2</td>*<td class=$AV(s)><a  href=$AV(/f?kz=\3) \4>\5</a></td>\6($TST(\2=[#1-29]|[#270-99999])$SET(\9=)|"
        "$TST(\2=[#30-59])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=30">End</a>)|"
        "$TST(\2=[#60-89])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=60">End</a>)|"
        "$TST(\2=[#90-119])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=90">End</a>)|"
        "$TST(\2=[#120-149])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=120">End</a>)|"
        "$TST(\2=[#150-179])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=150">End</a>)|"
        "$TST(\2=[#180-209])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=180">End</a>)|"
        "$TST(\2=[#210-239])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=210">End</a>)|"
        "$TST(\2=[#240-269])$SET(\9= &bull; <a href="/f?z=\3&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn=240">End</a>)|"
        ")$SET(\#=\0<td>\1</td><td>\2</td><td class="s"><a  href="/f?kz=\3" \4>\5</a> \9</td>\6)"
Replace = "\@"

2009-12-23_161858.png
2009-12-23_161858.png (6.4 KiB) Viewed 18472 times
User avatar
phoenix
Site Admin
Posts: 526
Joined: Dec 29 2007, 16:27

Re: 百度贴吧列表页号加入

Post by phoenix »

  1. 你原来的 Bounds Match 太宽松,导致每个主题的代码都被匹配处理了一番,写成如下的形式,则只有回帖数在30以上的主题会被匹配,大大提高了效率。另外,将回帖数放进变量 \0 待后面处理

    Code: Select all

    <td>([#30:*])\0</td> <td class="s"><a*</td>
  2. 在替换部分,插入 script 代码,从回帖数计算出 pn ,然后用 document.write 插入 End 链接。
我不懂 javascript ,最后的工作由你来完成吧。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 百度贴吧列表页号加入

Post by ddbb »

根据PH的说法 写了两个规则 一个变化 一个加入JS....

Code: Select all

[Patterns]
Name = "BaiDu TieBa: Add Last Page Link"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Bounds = "$NEST(<tr*>,</tr>)"
Limit = 800
Match = "\0<td>\1</td>*<td>([#30:*])\2</td>*<td class=$AV(s)><a  href=$AV(/f?kz=\3) \4>\5</a></td>\6"
Replace = "\0<td>\1</td><td>\2</td><td class="s"><a  href="/f?kz=\3" _top>\5</a>  &bull; <a href="JavaScript:gotoTieBaList('\2', '\3')">End</a></td>\6"

Name = "BaiDu TieBa: Add Last Page Link JS"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Limit = 10
Match = "(^(^</body>))"
Replace = "\r\n"
          "<script type="text/javascript">\r\n"
          "  function gotoTieBaList(no, page) {\r\n"
          "    var n = parseInt((no/30));\r\n"
          "    n = (n*3)*10;\r\n"
          "    window.location.href= "/f?z="+page+"&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn="+n;\r\n"
          "  }\r\n"
          "</script>\r\n"
          "$STOP()"

:oops: 脑袋太笨了 忘了JS 光想着查PROX里有没有计算和判断的方法了
ttttaaaa
Posts: 31
Joined: Feb 03 2009, 18:47

Re: 百度贴吧列表页号加入

Post by ttttaaaa »

好像没考虑到置顶贴和精华贴的情况?
另,最后一页的样式难看了点,不容易分辨。。。
在写沙发提醒的规则时同样折腾过用proxo匹配帖子数
直到1020才发现30贴每页是没办法写全的。。。

proxo的Matching Command真是方便,改写成privoxy的规则后看起来就没这么清晰
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 百度贴吧列表页号加入

Post by ddbb »

:cry:

额........被发现了....我还以为没人用呢......

如果是自己用 用为那种贴子本来就很少 所以就懒了一下下..... :cry:

这个是修正后的......

Code: Select all

[Patterns]
Name = "BaiDu TieBa: Add Last Page Link"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Bounds = "$NEST(<tr*>,</tr>)"
Limit = 800
Match = "\0<td>\1</td>*<td>([#30:*])\2</td>*<td class=$AV(s)><a  href=$AV(/f?kz=\3) \4>\5</a>(\[\6|)</td>\7"
Replace = "\0<td>\1</td><td>\2</td><td class="s"><a  href="/f?kz=\3" _top>\5</a>\6  &bull; <a href="JavaScript:gotoTieBaList('\2', '\3')">End</a></td>\7"
P.S: 你所说的最后一页难看 是什么个意思???? :oops: 是指 End 的CSS么 这个....这个.....我的审美有问题的...加上我是色盲.....所以......要么你写个CSS出来我加进去???
ttttaaaa
Posts: 31
Joined: Feb 03 2009, 18:47

Re: 百度贴吧列表页号加入

Post by ttttaaaa »

难看是指不容易分辨,尤其是帖子多而且标题比较长的时候。。。

我是C+P到privoxy里的,就是把END改成了一张本地图片。
111.jpg
111.jpg (13.7 KiB) Viewed 18390 times

Code: Select all

s|\n\
<tr ([^>]*)>\s<td>(\d+)</td>\s<td>([0-9]{3,}\|[3-9][0-9])</td>\s<td class="s"><a  href="/f\?kz=(\d+)" target=_top >([^</a>]+)</a>(.*)</tr>|\n\
<tr $1>\n<td>$2</td>\n<td>$3</td>\n<td class="s"><a  href="/f\?kz=$4" _top >$5</a>  &bull; <a href="JavaScript:gotoTieBaList('$3', '$4')"><img src="http://p.p/user-manual/last.gif" alt="Jump to last page"></a>$6</tr>|\n\
sgU
JS完全不会,但是看起来好像全部用JS将跳转链接直接写到帖子末尾更好?因为现在这样是无法用鼠标手势直接拖拽在后台打开的。。。
ddbb
Moderator
Posts: 425
Joined: Jan 07 2008, 13:30

Re: 百度贴吧列表页号加入

Post by ddbb »

ttttaaaa wrote:JS完全不会,但是看起来好像全部用JS将跳转链接直接写到帖子末尾更好?因为现在这样是无法用鼠标手势直接拖拽在后台打开的。。。
这次应该可以了......

End上的LINK已经调整成真正URL 而不是JAVASCRIPT 可以在上面点中键和鼠标手势

CSS没有改 还是 End 这个每个人自己调试吧....

Code: Select all

[Patterns]
Name = "BaiDu TieBa: Add Last Page Link  2010.01.08 [ddandyy]"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Bounds = "$NEST(<tr*>,</tr>)"
Limit = 800
Match = "\0<td>\1</td>*<td>([#30:*])\2</td>*<td class=$AV(s)><a  href=$AV(/f?kz=\3) \4>\5</a>(\[\6|)</td>\7"
Replace = "\0<td>\1</td><td>\2</td><td class="s"><a  href="/f?kz=\3" _top>\5</a>\6  &bull; <a href="#" onmouseover="JavaScript:setTieBaList(this,'\2', '\3')">End</a></td>\7"

Name = "BaiDu TieBa: Add Last Page Link JS  2010.01.08 [ddandyy]"
Active = TRUE
URL = "$TYPE(htm)tieba.baidu.com/f?"
Limit = 10
Match = "(^(^</body>))"
Replace = "\r\n"
          "<script type="text/javascript">\r\n"
          "  function setTieBaList(vo, no, page) {\r\n"
          "    var n = parseInt((no/30));\r\n"
          "    n = (n*3)*10;\r\n"
          "    vo.href = "/f?z="+page+"&ct=335544320&lm=0&sc=0&rn=30&tn=baiduPostBrowser&pn="+n;\r\n"
          "  }\r\n"
          "</script>\r\n"
          "$STOP()"
Bonnie
Moderator
Posts: 165
Joined: Oct 05 2008, 01:27

Re: 百度贴吧列表页号加入

Post by Bonnie »

为什么不用一个规则直接插入一个a元素?
ttttaaaa
Posts: 31
Joined: Feb 03 2009, 18:47

Re: 百度贴吧列表页号加入

Post by ttttaaaa »

ddbb wrote: 这次应该可以了......

End上的LINK已经调整成真正URL 而不是JAVASCRIPT 可以在上面点中键和鼠标手势

CSS没有改 还是 End 这个每个人自己调试吧....
还是这个好,感谢。。。
ttttaaaa
Posts: 31
Joined: Feb 03 2009, 18:47

Re: 百度贴吧列表页号加入

Post by ttttaaaa »

Code: Select all

M:<a  href=$AV(/f?kz=\3) \4>\5</a>(\[\6|)
R:<a  href="/f?kz=\3" _top>\5</a>\6
这在有些精品上会丢失前面的 [
测试页 http://tieba.baidu.com/f?ct=&tn=&rn=&pn ... 6%AE%CE%EF
Post Reply