censor_bear 0.1.8 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a5519d5695908f0b7d3316070221bb2350da7d5869d7c6f8f202d1cb5d3a903
4
- data.tar.gz: aa507b18784d4472427dad1c694f1cf1a552b957c54ef89d66fd1e57faa73403
3
+ metadata.gz: 58d7a9f6214a5f560794d6bca513cf288d01e7444aa293e243a3cf3e33e8e8d8
4
+ data.tar.gz: c1385ce54281b8d764f191f262c7941b32c0590b304d57976ef8e661f24c49ec
5
5
  SHA512:
6
- metadata.gz: b1b68d93591c793a14c52d19c8fdbadf601adb5c2c24ce7575f3da001bf8922e6ee074e2ee5f3873005fdb8c620dfc50f5d6527f9b646573d190f8823470a592
7
- data.tar.gz: 5763a681a0dc9c7dcb813ccf6b8f997e8df5ea782fc64c928d6dd04d870ef5c46a5e662ad4de0e2b9f4b4da341b6f11be4fd7044c6c04afe1f69d0e542384e29
6
+ metadata.gz: 97924df8a0ab45a7afc36d483e20bba15ecd98c23134d629bb4c93e44c233eff45e935871579303b68f107ba3b555d5b595c7f5e0a129bf107b4b213b4827272
7
+ data.tar.gz: e964103ec3434614e1d7eea7829efebf1bc66b6ad2b8bec9c8e6b2c8868b637c13baa2aad85ccc7f3427437ba3e04eb5a8f649f4f8c85dc947246d50c1bd4494
@@ -7,7 +7,6 @@ module CensorBear
7
7
  # GET /mod_logs
8
8
  def index
9
9
  load_mod_logs
10
- @mod_logs = ModLog.pending.all
11
10
  end
12
11
 
13
12
  # GET /mod_logs/1
@@ -80,12 +79,12 @@ module CensorBear
80
79
  end
81
80
 
82
81
  def load_mod_logs
83
- builder ||= mod_log_scope
82
+ builder ||= mod_log_scope.includes(:record)
84
83
  builder = builder.where("content ilike ?", "%#{params[:q]}%") if params[:q].present?
85
84
 
86
85
  builder = builder.order(id: :desc)
87
86
 
88
- @pagy, @logs = pagy(builder)
87
+ @pagy, @mod_logs = pagy(builder)
89
88
  end
90
89
 
91
90
  private
@@ -10,6 +10,8 @@ module CensorBear
10
10
  end
11
11
 
12
12
  def delete(reason)
13
+ return if record.blank?
14
+ return if record.discarded?
13
15
  # ugc内容需要开软删,便于撤销&查看统计,可以定时删除统计并删除软删内容,类似回收站机制
14
16
  raise NoMethodError.new("undefined censor_delete for record") unless record.respond_to?(:censor_delete)
15
17
 
@@ -18,6 +20,7 @@ module CensorBear
18
20
  end
19
21
 
20
22
  def approve
23
+ return if record.blank?
21
24
  raise NoMethodError unless record.respond_to?(:censor_approve)
22
25
 
23
26
  ret = record.censor_approve
@@ -25,6 +28,7 @@ module CensorBear
25
28
  end
26
29
 
27
30
  def ban_user
31
+ return if record.blank?
28
32
  raise NoMethodError unless record.respond_to?(:censor_ban_user)
29
33
 
30
34
  ret = record.censor_ban_user
@@ -16,7 +16,6 @@
16
16
  - unless log.labels.blank?
17
17
  - log.labels.each do |label|
18
18
  %span{class: "text-sm bg-red-100 text-red-600 py-1 px-2 rounded-lg"}=t("censor_log.label.#{label}")
19
-
20
19
  %span{class: "text-sm bg-gray-100 text-gray-600 py-1 px-2 rounded-lg"}= log.created_at
21
20
  %div{class: "flex space-x-2 items-center"}
22
21
  %span
@@ -33,5 +32,5 @@
33
32
  %div{class: "text-yellow-500 font-meidum text-xl"}
34
33
  - log.mod_words.each do |word|
35
34
  %span [
36
- %span= link_to word, stop_words_path(q: word)
35
+ %span= link_to word, stop_words_path(q: word), data: { turbo: false }, target: "_blank"
37
36
  %span ]
@@ -1,11 +1,11 @@
1
1
  %div{class: "flex flex-col space-y-2 justify-center"}
2
2
  %div{class: "flex justify-between"}
3
3
  %div
4
- = form_with(url: mod_logs_path, method: :get, class: "flex items-center") do |f|
4
+ = form_with(url: logs_path, method: :get, class: "flex items-center") do |f|
5
5
  %div{class: "space-x-0.5"}
6
6
  = f.text_field :q, value: params[:q], placeholder: "关键词", class: "border rounded-md m py-0.5 px-1"
7
7
  = f.submit "检索", class: "rounded-md px-2 py-1 text-sm bg-black text-white cursor-pointer"
8
- = link_to "重置", mod_logs_path, class: "text-sm"
8
+ = link_to "重置", logs_path, class: "text-sm"
9
9
 
10
10
  %div="共 #{@pagy.count} 条"
11
11
  %div
@@ -3,7 +3,7 @@
3
3
  %div{class: "border rounded-md mb-2 p-2 flex flex-col space-y-1"}
4
4
  %div{class: "flex justify-between"}
5
5
  %div{class: ""}
6
- = link_to mod_log.record_path do
6
+ = link_to mod_log.record_path, data: { turbo: false }, target: "_blank" do
7
7
  %span{class: "text-sm bg-indigo-100 text-indigo-600 py-1 px-2 rounded-lg"}="#{mod_log.record_type.upcase}##{mod_log.record_id}"
8
8
  - unless mod_log.labels.blank?
9
9
  - mod_log.labels.each do |label|
@@ -24,7 +24,7 @@
24
24
  - if mod_log.status == 2
25
25
  = "暂缓"
26
26
  %span
27
- = link_to "详情", mod_log
27
+ = link_to "详情", mod_log, data: { turbo: false }, target: "_blank"
28
28
  %span
29
29
  = button_to '删除', mod_log, method: :delete, data: { confirm: 'Are you sure?'}, class: "text-red-600 rounded-md px-2 py-0.5"
30
30
  %div{class: "flex justify-between items-center"}
@@ -1,18 +1,18 @@
1
1
  %div{class: "flex flex-col space-y-2 justify-center"}
2
2
  %div{class: "flex justify-between"}
3
3
  %div
4
- = form_with(url: logs_path, method: :get, class: "flex items-center") do |f|
4
+ = form_with(url: mod_logs_path, method: :get, class: "flex items-center") do |f|
5
5
  %div{class: "space-x-0.5"}
6
6
  = f.text_field :q, value: params[:q], placeholder: "关键词", class: "border rounded-md m py-0.5 px-1"
7
7
  = f.submit "检索", class: "rounded-md px-2 py-1 text-sm bg-black text-white cursor-pointer"
8
- = link_to "重置", logs_path, class: "text-sm"
8
+ = link_to "重置", mod_logs_path, class: "text-sm"
9
9
 
10
10
  %div="共 #{@pagy.count} 条"
11
11
  %div
12
- - if @logs.blank?
12
+ - if @mod_logs.blank?
13
13
  %div{class: "flex justify-center text-gray-500 p-8 border rounded-md"} 空空如也
14
14
  - else
15
- - @logs.each do |log|
15
+ - @mod_logs.each do |log|
16
16
  = render log
17
17
  %div{class: "flex justify-center"}
18
18
  = raw pagy_nav(@pagy)
@@ -9,11 +9,11 @@ en:
9
9
  pass: 忽略
10
10
  review: 审核
11
11
  stage:
12
- aliyun_check: "阿里云检查"
13
- tencent_check: "腾讯云检查"
14
- local_check: "本地检查"
15
- qq_regex: "QQ正则检查"
16
- wechat_regex: "微信正则检查"
12
+ aliyun_check: 阿里云检查
13
+ tencent_check: 腾讯云检查
14
+ local_check: 本地检查
15
+ qq_regex: QQ正则检查
16
+ wechat_regex: 微信正则检查
17
17
  label:
18
18
  normal: 正常文本
19
19
  spam: 含垃圾信息
@@ -30,15 +30,15 @@ module CensorBear
30
30
  return Result.new(@content) unless CensorBear::StopWord::FIELDS.include?(@type)
31
31
 
32
32
  # 正则过滤
33
- if @content.match(QQ_REG)
34
- CensorBear.info(@content, @type, 'BANNED', 'qq_regex', ip: @ip, user_id: @user_id)
35
- raise NotPassedException
36
- end
33
+ # if @content.match(QQ_REG)
34
+ # CensorBear.info(@content, @type, 'BANNED', 'qq_regex', ip: @ip, user_id: @user_id)
35
+ # raise NotPassedException
36
+ # end
37
37
 
38
- if @content.match(WX_REG)
39
- CensorBear.info(@content, @type, 'BANNED', 'wx_regex', ip: @ip, user_id: @user_id)
40
- raise NotPassedException
41
- end
38
+ # if @content.match(WX_REG)
39
+ # CensorBear.info(@content, @type, 'BANNED', 'wx_regex', ip: @ip, user_id: @user_id)
40
+ # raise NotPassedException
41
+ # end
42
42
 
43
43
  # 本地自定义词库粗查
44
44
  local_check
@@ -148,6 +148,7 @@ module CensorBear
148
148
  private
149
149
 
150
150
  def concat_labels(data)
151
+ return [] if data.blank?
151
152
  labels = []
152
153
  data.map do |d|
153
154
  next if d['label'].blank?
@@ -158,6 +159,7 @@ module CensorBear
158
159
  end
159
160
 
160
161
  def concat_words(data)
162
+ return [] if data.blank?
161
163
  words = []
162
164
  data.each do |d|
163
165
  next if d['contexts'].blank?
@@ -1,3 +1,3 @@
1
1
  module CensorBear
2
- VERSION = '0.1.8'.freeze
2
+ VERSION = '0.1.12'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: censor_bear
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - 42up