censor_bear 0.1.17 → 0.1.18
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 +4 -4
- data/README.md +91 -37
- data/app/views/censor_bear/logs/_log.html.haml +2 -1
- data/app/views/censor_bear/mod_logs/_mod_log.html.haml +4 -1
- data/app/views/censor_bear/mod_logs/index.html.haml +2 -2
- data/lib/censor_bear/configuration.rb +1 -0
- data/lib/censor_bear/version.rb +1 -1
- data/lib/censor_bear.rb +1 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 718c2ec6b519d6148ea047125d8a756b3cdc982aba68b4c7ca6d62e73b71a606
|
4
|
+
data.tar.gz: af687db6053250f6da78e3eea1192c648725039158a236472f7e5bcc539226ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6f83eae4f76dca1658c2d585f36a2a5419dc49c4e3f3beaeec17fd856a7464035def3b347ecd6ae59b6e4fe31f9ce6d3bae52a9659bc0bbab7cff66219f4d5c6
|
7
|
+
data.tar.gz: 07b471f86713559334a67950d35483f22007005caad6c0aecc93b7cbaa01ecc5cfda3aac7d5d95f6cec37abf38218d67aa18f01965a82c5d9e39a3b6bedccbdb
|
data/README.md
CHANGED
@@ -1,8 +1,6 @@
|
|
1
|
-
# CensorBear
|
2
|
-
Short description and motivation.
|
1
|
+
# 🐻 CensorBear
|
3
2
|
|
4
|
-
|
5
|
-
How to use my plugin.
|
3
|
+
CensorBear 是一个可插拔的内容审核管理工具。
|
6
4
|
|
7
5
|
## Installation
|
8
6
|
Add this line to your application's Gemfile:
|
@@ -21,40 +19,84 @@ Or install it yourself as:
|
|
21
19
|
$ gem install censor_bear
|
22
20
|
```
|
23
21
|
|
24
|
-
|
25
|
-
|
26
|
-
```
|
27
|
-
|
28
|
-
mount Blazer::Engine, at: "censor_bear"
|
29
|
-
end
|
22
|
+
Then execute to copy migrations:
|
23
|
+
|
24
|
+
```bash
|
25
|
+
rails censor_bear:install:migrations
|
30
26
|
```
|
31
27
|
|
32
|
-
|
33
|
-
|
28
|
+
## 初始化配置
|
29
|
+
详细配置项可在`lib/censor_bear/configuration.rb`中查看。
|
30
|
+
|
31
|
+
### 待办
|
32
|
+
- [ ] 用户详情跳转路由
|
33
|
+
|
34
34
|
```ruby
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
35
|
+
CensorBear.configure do |config|
|
36
|
+
config.user_class = 'User'
|
37
|
+
config.user_name_method = 'nickname'
|
38
|
+
|
39
|
+
config.aliyun_green_access_key_id = 'access key id'
|
40
|
+
config.aliyun_green_access_key_secret = 'access key secret'
|
41
|
+
config.aliyun_green_enable_internal = false
|
42
|
+
|
43
|
+
config.main_app_root_path_method = 'root_path'
|
44
|
+
config.main_app_user_path_method = 'admins_user_path'
|
42
45
|
end
|
43
46
|
```
|
44
|
-
Be sure to render or redirect for unauthorized users.
|
45
47
|
|
46
|
-
##
|
47
|
-
|
48
|
-
|
48
|
+
## I18n 配置
|
49
|
+
复制i18n文件到`config/locales/censor_bear.yml`
|
50
|
+
```yml
|
51
|
+
"zh-CN":
|
52
|
+
censor_log:
|
53
|
+
action:
|
54
|
+
mod: 审核
|
55
|
+
banned: 禁用
|
56
|
+
ignore: 忽略
|
57
|
+
replace: 替换
|
58
|
+
block: 禁用
|
59
|
+
pass: 忽略
|
60
|
+
review: 审核
|
61
|
+
aasm_state:
|
62
|
+
pending: 待审
|
63
|
+
handled: 已处理
|
64
|
+
suspended: 暂缓处理
|
65
|
+
stage:
|
66
|
+
check_search: 搜索检查
|
67
|
+
aliyun_check: 阿里云检查
|
68
|
+
tencent_check: 腾讯云检查
|
69
|
+
local_check: 本地检查
|
70
|
+
qq_regex: QQ正则检查
|
71
|
+
wechat_regex: 微信正则检查
|
72
|
+
label:
|
73
|
+
normal: 正常文本
|
74
|
+
spam: 含垃圾信息
|
75
|
+
ad: 广告
|
76
|
+
politics: 涉政
|
77
|
+
terrorism: 暴恐
|
78
|
+
abuse: 辱骂
|
79
|
+
porn: 色情
|
80
|
+
flood: 灌水
|
81
|
+
contraband: 违禁
|
82
|
+
meaningless: 无意义
|
83
|
+
harmful: 不良场景
|
84
|
+
customized: 自定义
|
49
85
|
```
|
50
86
|
|
51
|
-
## 🦆
|
87
|
+
## 🦆 需要实现的钩子方法
|
52
88
|
```ruby
|
89
|
+
censor_show_path # 被审资源路由详情
|
90
|
+
censor_images # 被审资源图片关联资源
|
53
91
|
censor_remove # 删除内容
|
54
|
-
|
92
|
+
censor_undo_remove # 撤销删除内容
|
55
93
|
censor_approve # 通过审核
|
56
|
-
|
94
|
+
censor_undo_approve # 撤销通过审核
|
57
95
|
censor_ban_user # 封禁用户
|
96
|
+
```
|
97
|
+
|
98
|
+
## 用法
|
99
|
+
```ruby
|
58
100
|
|
59
101
|
```
|
60
102
|
|
@@ -65,21 +107,34 @@ censor_ban_user # 封禁用户
|
|
65
107
|
class NotPassedException < StandardError; end
|
66
108
|
```
|
67
109
|
|
68
|
-
## 初始化配置
|
69
|
-
详细配置项可在`lib/censor_bear/configuration.rb`中查看。
|
70
110
|
|
111
|
+
## Authentication
|
112
|
+
### Devise
|
71
113
|
```ruby
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
config.aliyun_green_access_key_id = 'access key id'
|
77
|
-
config.aliyun_green_access_key_secret = 'access key secret'
|
78
|
-
config.aliyun_green_enable_internal = false
|
114
|
+
authenticate :user, ->(user) { user.admin? } do
|
115
|
+
mount CensorBear::Engine => "/censor_bear", as: "censor_bear"
|
116
|
+
end
|
117
|
+
```
|
79
118
|
|
80
|
-
|
119
|
+
### Other(todo)
|
120
|
+
Specify a before_action method to run in `censor_bear.yml`.
|
121
|
+
```ruby
|
122
|
+
before_action_method: require_admin
|
123
|
+
```
|
124
|
+
You can define this method in your ApplicationController.
|
125
|
+
```
|
126
|
+
def require_admin
|
127
|
+
# depending on your auth, something like...
|
128
|
+
redirect_to root_path unless current_user && current_user.admin?
|
81
129
|
end
|
82
130
|
```
|
131
|
+
Be sure to render or redirect for unauthorized users.
|
132
|
+
|
133
|
+
|
134
|
+
## 数据库字段要求
|
135
|
+
- is_approved
|
136
|
+
- 支持软删
|
137
|
+
|
83
138
|
|
84
139
|
## 注意事项
|
85
140
|
1. 为 MOD 时,表示需要人工审核,需要被审查对象(UGC内容)支持`is_approved`字段(默认为`true`),此时内容自己能看到,别人暂时看不到,需审核通过后可见。
|
@@ -90,7 +145,6 @@ end
|
|
90
145
|
6. 被BAN掉的内容,无法创建,直接返回异常,速错。
|
91
146
|
|
92
147
|
|
93
|
-
|
94
148
|
## Contributing
|
95
149
|
Contribution directions go here.
|
96
150
|
|
@@ -16,7 +16,8 @@
|
|
16
16
|
- unless log.label.blank?
|
17
17
|
%span{class: "text-sm bg-green-100 text-green-600 py-1 px-2 rounded-lg"}=log.label.upcase
|
18
18
|
- unless log.user_id.blank?
|
19
|
-
|
19
|
+
= link_to main_app.send(CensorBear.config.main_app_user_path_method.to_sym, log.user_id), data: {turbo: false} do
|
20
|
+
%span{class: "text-sm bg-gray-100 text-gray-600 py-1 px-2 rounded-lg font-bold"}="✍️ ##{log.user_id}"
|
20
21
|
- unless log.ip.blank?
|
21
22
|
%span{class: "text-sm bg-gray-100 text-gray-600 py-1 px-2 rounded-lg"}=log.ip
|
22
23
|
- unless log.labels.blank?
|
@@ -19,7 +19,7 @@
|
|
19
19
|
%h3{class: "text-2xl text-red-600"} 对应条目已被永久删除,当前审核请求已无效,请删除
|
20
20
|
- else
|
21
21
|
%div
|
22
|
-
%span{class: "border border-
|
22
|
+
%span{class: "#{mod_log.record.is_private ? 'bg-black text-white' : 'border border-black text-black' } rounded-lg text-xs p-0.5 px-1"}=mod_log.record.is_private ? "🙈 隐私" : "🙉 公开"
|
23
23
|
%span{class: "border border-blue-600 text-blue-600 rounded-lg text-xs p-0.5"}=mod_log.record.is_approved ? "审核通过" : "审核中..."
|
24
24
|
- unless mod_log.labels.blank?
|
25
25
|
- mod_log.labels.each do |label|
|
@@ -27,6 +27,9 @@
|
|
27
27
|
- unless mod_log.mod_words.blank?
|
28
28
|
- mod_log.mod_words.each do |word|
|
29
29
|
%span{class: "border border-red-600 text-red-600 rounded-lg text-xs p-0.5"}="##{word}"
|
30
|
+
- unless mod_log&.record&.user_id&.blank?
|
31
|
+
= link_to main_app.send(CensorBear.config.main_app_user_path_method.to_sym, mod_log.record.user_id), data: {turbo: false} do
|
32
|
+
%span{class: "text-sm bg-gray-100 text-gray-600 py-1 px-2 rounded-lg font-bold"}="✍️ ##{mod_log.record.user_id}"
|
30
33
|
- if mod_log.record.discarded?
|
31
34
|
%div{class: "text-gray-900 leading-relaxed"}
|
32
35
|
%del= mod_log.record.content
|
@@ -8,8 +8,6 @@
|
|
8
8
|
= link_to "重置", mod_logs_path, class: "text-sm"
|
9
9
|
%div{class: "flex items-center space-x-2"}
|
10
10
|
%div{class: "text-sm text-gray-600"}="共 #{@pagy.count} 条"
|
11
|
-
%div{class: "bg-gray-200 rounded-full px-3 py-1 text-xs #{params[:filter] == "all" ? 'font-bold' : ''}"}
|
12
|
-
= link_to "全部", request.params.merge(filter: "all", state: "")
|
13
11
|
%div{class: "bg-gray-200 rounded-full px-3 py-1 text-xs #{params[:state].blank? && params[:filter].blank? ? 'font-bold' : ''}"}
|
14
12
|
= link_to "待处理", request.params.merge(state: "", filter: "")
|
15
13
|
%div{class: "bg-gray-200 rounded-full px-3 py-1 text-xs #{params[:state] == 'rejected' ? 'font-bold' : ''}"}
|
@@ -18,6 +16,8 @@
|
|
18
16
|
= link_to "通过", request.params.merge(state: "passed", filter: "")
|
19
17
|
%div{class: "bg-gray-200 rounded-full px-3 py-1 text-xs #{params[:state] == 'suspended' ? 'font-bold' : ''}"}
|
20
18
|
= link_to "暂缓处理", request.params.merge(state: "suspended", filter: "")
|
19
|
+
%div{class: "bg-gray-200 rounded-full px-3 py-1 text-xs #{params[:filter] == "all" ? 'font-bold' : ''}"}
|
20
|
+
= link_to "全部", request.params.merge(filter: "all", state: "")
|
21
21
|
%div
|
22
22
|
- if @mod_logs.blank?
|
23
23
|
%div{class: "flex justify-center text-gray-500 p-8 border rounded-md"} 空空如也
|
data/lib/censor_bear/version.rb
CHANGED
data/lib/censor_bear.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: censor_bear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- 42up
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-12-
|
11
|
+
date: 2021-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -114,7 +114,7 @@ dependencies:
|
|
114
114
|
- - ">="
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
|
-
description:
|
117
|
+
description: "\U0001F43B Watch your back! Young man."
|
118
118
|
email:
|
119
119
|
- foobar@v2up.com
|
120
120
|
executables: []
|
@@ -215,5 +215,5 @@ requirements: []
|
|
215
215
|
rubygems_version: 3.2.22
|
216
216
|
signing_key:
|
217
217
|
specification_version: 4
|
218
|
-
summary:
|
218
|
+
summary: "\U0001F43B Watch your back! Young man."
|
219
219
|
test_files: []
|