Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] 反恶意灌水重复发帖20111124更新 (相似度基于编辑距离算法)

  [复制链接]
莪视妳茹掵♀ 发表于 2012-5-9 22:09:28 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

夠了ч! 发表于 2012-8-26 13:48:50 | 显示全部楼层
该插件非常不错,只是有点小遗憾,然后简单修改该插件非常不错,只是有点小遗憾,然后简单修改了程序代码,显得更完美了。
了程序代码,显得更完美了。



我想要的功能是:防止普通用户重复发帖,删除重复贴,但不禁言;防止广告机灌水,删除重复贴,并且禁言。
而上面几个功能没有一个满足我的要求,最后修改“nds_antirrepeatpost.class.php”文件
搜索:
  1. case 3:
  2. if ($_G ['adminid'] != 1 ){
  3. $modaction = 'WRN';
  4. $reason = $opmode = lang('plugin/nds_antirrepeatpost', 'lreason');
  5. my_post_log('warn', array('pid' => $_G['forum_firstpid'], 'uid' => $uid));
  6. $lanrpsystem = lang('plugin/nds_antirrepeatpost','lanrpsystem');
  7. DB::query("UPDATE ".DB::table($posttable)." SET status=status|2 WHERE pid=' $_G[forum_firstpid]'", 'UNBUFFERED');
  8. DB::query("INSERT INTO ".DB::table('forum_warning')." (pid, operatorid, operator, authorid, author, dateline, reason) VALUES (' $_G[forum_firstpid]', '1','$lanrpsystem','$_G[uid]', '$_G[username]', '$_G[timestamp]', '$reason')", 'UNBUFFERED');
  9. $authorwarnings = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_warning')." WHERE authorid='$uid' AND dateline>=$_G[timestamp]-".$_G[setting][warningexpiration]*86400);
  10. if($authorwarnings >= $_G['setting']['warninglimit']) {
  11. $bantime = $_G['setting']['warningexpiration'];
  12. banuser($uid,4,$bantime);
  13. }
  14. }
  15. $opmode = lang('plugin/nds_antirrepeatpost', 'lopck3');
  16. $url1 = 'forum.php?mod=viewthread&tid='.$_G['tid'];
  17. break;
复制代码
在其中添加一段审核代码,修改为:
  1. case 3:
  2. if ($_G ['adminid'] != 1 ){
  3. $modaction = 'WRN';
  4. $reason = $opmode = lang('plugin/nds_antirrepeatpost', 'lreason');
  5. my_post_log('warn', array('pid' => $_G['forum_firstpid'], 'uid' => $uid));
  6. $lanrpsystem = lang('plugin/nds_antirrepeatpost','lanrpsystem');
  7. DB::query("UPDATE ".DB::table('forum_thread')." SET displayorder = -2 WHERE tid='".$_G[tid]."'");
  8. updatemoderate('tid', $_G['tid']);
  9. DB::query("UPDATE ".DB::table($posttable)." SET status=status|2 WHERE pid=' $_G[forum_firstpid]'", 'UNBUFFERED');
  10. DB::query("INSERT INTO ".DB::table('forum_warning')." (pid, operatorid, operator, authorid, author, dateline, reason) VALUES (' $_G[forum_firstpid]', '1','$lanrpsystem','$_G[uid]', '$_G[username]', '$_G[timestamp]', '$reason')", 'UNBUFFERED');
  11. $authorwarnings = DB::result_first("SELECT COUNT(*) FROM ".DB::table('forum_warning')." WHERE authorid='$uid' AND dateline>=$_G[timestamp]-".$_G[setting][warningexpiration]*86400);
  12. if($authorwarnings >= $_G['setting']['warninglimit']) {
  13. $bantime = $_G['setting']['warningexpiration'];
  14. banuser($uid,4,$bantime);
  15. }
  16. }
  17. $opmode = lang('plugin/nds_antirrepeatpost', 'lopck3');
  18. $url1 = 'forum.php?mod=viewthread&tid='.$_G['tid'];
  19. break;
复制代码
然后配合修改自己所需要的文字,就实现了我需要的功能:用户发帖重复之后,帖子进入审核状态,并进行警告,配合自己后台的警告设置,警告N次后自动禁言。
这样,即保证了用户不小心发帖重复,被误杀,也保证准确杀死广告机重复发帖。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

夠了ч! 发表于 2012-8-26 13:51:11 | 显示全部楼层
具体给用户的提示文字可以自己看下discuz_plugin_nds_antirrepeatpost_SC_GBK.xml或discuz_plugin_nds_antirrepeatpost_SC_UTF8.xml文件进行修改;添加的代码为审核主题,大家可以自行修改为直接放入回收站。
就是把
  1.        DB::query("UPDATE ".DB::table('forum_thread')." SET displayorder = -2  WHERE tid='".$_G[tid]."'");
  2.        updatemoderate('tid', $_G['tid']);
复制代码
换成
  1.        DB::query("UPDATE ".DB::table('forum_thread')." SET displayorder = -1  WHERE tid='".$_G[tid]."'");
复制代码
回复

使用道具 举报

夠了ч! 发表于 2012-8-26 14:52:53 | 显示全部楼层
在反馈给用户短消息的时候,该插件将主题链接引导向了后台,因此在这里要做下优化。
URL伪静态优化,并消除了上述弊端:
文件:nds_antirrepeatpost.class.php
将所有的:url1替换为'thread-'.$_G['tid'].'-1-1.html'
  1. 'url1' => 'thread-'.$_G['tid'].'-1-1.html',
复制代码
将所有的url2替换为'thread-'.$tid.'-1-1.html'
  1. 'url2' => 'thread-'.$tid.'-1-1.html' ,
复制代码
回复

使用道具 举报

2547283998 发表于 2012-8-26 15:06:02 | 显示全部楼层
进来看看了
回复

使用道具 举报

小小太 发表于 2012-8-26 19:30:31 | 显示全部楼层
{:soso_e639:}           支持一个!
回复

使用道具 举报

大港人才网 发表于 2012-8-26 21:02:15 | 显示全部楼层
支持!!!!!!!!!!!!!!!!!11
回复

使用道具 举报

 楼主| singcee 发表于 2012-9-6 11:35:06 | 显示全部楼层
夠了ч! 发表于 2012-8-26 13:48
该插件非常不错,只是有点小遗憾,然后简单修改该插件非常不错,只是有点小遗憾,然后简单修改了程序代码, ...

这个插件不会主动删除任何数据
是将帖子放入回收站这也是为了防止误判情况下,给管理员一个挽救的机会,你可以定期清理回收站达到同样的效果。
回复

使用道具 举报

 楼主| singcee 发表于 2012-9-6 11:36:28 | 显示全部楼层
夠了ч! 发表于 2012-8-26 14:52
在反馈给用户短消息的时候,该插件将主题链接引导向了后台,因此在这里要做下优化。
URL伪静态优化,并消除 ...

如果我没记错 反馈给用户的链接和反馈给管理员的链接地址是不同的吧。 如果都是链接到了后台那应该是一个BUG,谢谢你的反馈,我回头看看。
回复

使用道具 举报

雨腾君 发表于 2012-9-7 09:10:58 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-15 10:10 , Processed in 0.039548 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表