decidim-spam_signal 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +661 -0
  3. data/README.md +277 -0
  4. data/Rakefile +93 -0
  5. data/app/commands/decidim/comments/create_comment.rb +75 -0
  6. data/app/commands/decidim/spam_signal/admin/add_rule_command.rb +48 -0
  7. data/app/commands/decidim/spam_signal/admin/add_scanner_command.rb +46 -0
  8. data/app/commands/decidim/spam_signal/admin/remove_cop_command.rb +31 -0
  9. data/app/commands/decidim/spam_signal/admin/remove_rule_command.rb +31 -0
  10. data/app/commands/decidim/spam_signal/admin/remove_scanner_command.rb +31 -0
  11. data/app/commands/decidim/spam_signal/admin/update_cop_command.rb +41 -0
  12. data/app/commands/decidim/spam_signal/admin/update_rule_command.rb +47 -0
  13. data/app/commands/decidim/spam_signal/admin/update_scanner_command.rb +47 -0
  14. data/app/commands/decidim/spam_signal/application_handler.rb +27 -0
  15. data/app/commands/decidim/spam_signal/command.rb +14 -0
  16. data/app/commands/decidim/spam_signal/cops/cop_handler.rb +72 -0
  17. data/app/commands/decidim/spam_signal/cops/lock_cop_command.rb +58 -0
  18. data/app/commands/decidim/spam_signal/cops/sinalize_cop_command.rb +25 -0
  19. data/app/commands/decidim/spam_signal/scans/allowed_tlds_scan_command.rb +50 -0
  20. data/app/commands/decidim/spam_signal/scans/forbidden_tlds_scan_command.rb +49 -0
  21. data/app/commands/decidim/spam_signal/scans/scan_handler.rb +24 -0
  22. data/app/commands/decidim/spam_signal/scans/word_scan_command.rb +40 -0
  23. data/app/controllers/concerns/decidim/user_blocked_checker.rb +48 -0
  24. data/app/controllers/decidim/spam_signal/admin/application_controller.rb +18 -0
  25. data/app/controllers/decidim/spam_signal/admin/application_cops_controller.rb +122 -0
  26. data/app/controllers/decidim/spam_signal/admin/application_rules_controller.rb +136 -0
  27. data/app/controllers/decidim/spam_signal/admin/application_scans_controller.rb +110 -0
  28. data/app/controllers/decidim/spam_signal/admin/comment_cops_controller.rb +13 -0
  29. data/app/controllers/decidim/spam_signal/admin/comment_rules_controller.rb +13 -0
  30. data/app/controllers/decidim/spam_signal/admin/comment_scans_controller.rb +13 -0
  31. data/app/controllers/decidim/spam_signal/admin/profile_cops_controller.rb +13 -0
  32. data/app/controllers/decidim/spam_signal/admin/profile_rules_controller.rb +13 -0
  33. data/app/controllers/decidim/spam_signal/admin/profile_scans_controller.rb +13 -0
  34. data/app/controllers/decidim/spam_signal/admin/spam_filter_reports_controller.rb +41 -0
  35. data/app/forms/decidim/spam_signal/cops/lock_settings_form.rb +14 -0
  36. data/app/forms/decidim/spam_signal/cops/no_settings_form.rb +11 -0
  37. data/app/forms/decidim/spam_signal/cops/sinalize_settings_form.rb +13 -0
  38. data/app/forms/decidim/spam_signal/no_settings_form.rb +9 -0
  39. data/app/forms/decidim/spam_signal/rule_form.rb +10 -0
  40. data/app/forms/decidim/spam_signal/scans/allowed_tlds_form.rb +13 -0
  41. data/app/forms/decidim/spam_signal/scans/forbidden_tlds_form.rb +13 -0
  42. data/app/forms/decidim/spam_signal/scans/word_settings_form.rb +13 -0
  43. data/app/forms/decidim/spam_signal/settings_form.rb +27 -0
  44. data/app/helpers/decidim/spam_signal/admin/spam_signal_helper.rb +22 -0
  45. data/app/helpers/decidim/spam_signal/application_helper.rb +10 -0
  46. data/app/models/decidim/spam_signal/config.rb +48 -0
  47. data/app/overrides/profiles_noindex.rb +17 -0
  48. data/app/packs/images/decidim/spam_signal/entrypoints/spam_signal.js +1 -0
  49. data/app/packs/images/decidim/spam_signal/icon.svg +1 -0
  50. data/app/repositories/decidim/spam_signal/spam_config_repo.rb +160 -0
  51. data/app/views/decidim/admin/moderated_users/_report.html.erb +15 -0
  52. data/app/views/decidim/admin/moderated_users/index.html.erb +82 -0
  53. data/app/views/decidim/comments/comments/error.js.erb +4 -0
  54. data/app/views/decidim/spam_signal/admin/comment_cops/edit.html.erb +9 -0
  55. data/app/views/decidim/spam_signal/admin/comment_rules/edit.html.erb +8 -0
  56. data/app/views/decidim/spam_signal/admin/comment_rules/new.html.erb +9 -0
  57. data/app/views/decidim/spam_signal/admin/comment_scans/edit.html.erb +8 -0
  58. data/app/views/decidim/spam_signal/admin/comment_scans/new.html.erb +8 -0
  59. data/app/views/decidim/spam_signal/admin/profile_cops/edit.html.erb +9 -0
  60. data/app/views/decidim/spam_signal/admin/profile_rules/edit.html.erb +8 -0
  61. data/app/views/decidim/spam_signal/admin/profile_rules/new.html.erb +9 -0
  62. data/app/views/decidim/spam_signal/admin/profile_scans/edit.html.erb +7 -0
  63. data/app/views/decidim/spam_signal/admin/profile_scans/new.html.erb +8 -0
  64. data/app/views/decidim/spam_signal/admin/shared/cops/_edit.html.erb +48 -0
  65. data/app/views/decidim/spam_signal/admin/shared/rules/_edit.html.erb +27 -0
  66. data/app/views/decidim/spam_signal/admin/shared/rules/_new.html.erb +28 -0
  67. data/app/views/decidim/spam_signal/admin/shared/scans/_edit.html.erb +25 -0
  68. data/app/views/decidim/spam_signal/admin/shared/scans/_new.html.erb +39 -0
  69. data/app/views/decidim/spam_signal/admin/spam_filter_reports/index.html.erb +282 -0
  70. data/config/assets.rb +8 -0
  71. data/config/i18n-tasks.yml +9 -0
  72. data/config/initializers/spam_signal.rb +7 -0
  73. data/config/locales/en.yml +114 -0
  74. data/config/locales/fr.yml +115 -0
  75. data/config/routes.rb +3 -0
  76. data/lib/decidim/spam_signal/admin.rb +10 -0
  77. data/lib/decidim/spam_signal/admin_engine.rb +42 -0
  78. data/lib/decidim/spam_signal/cop_bot.rb +41 -0
  79. data/lib/decidim/spam_signal/cops/cops_repository.rb +37 -0
  80. data/lib/decidim/spam_signal/engine.rb +23 -0
  81. data/lib/decidim/spam_signal/extractors/comment_extractor.rb +15 -0
  82. data/lib/decidim/spam_signal/extractors/extractor.rb +13 -0
  83. data/lib/decidim/spam_signal/extractors/profile_extractor.rb +15 -0
  84. data/lib/decidim/spam_signal/scans/scans_repository.rb +44 -0
  85. data/lib/decidim/spam_signal/spam_settings_form_builder.rb +22 -0
  86. data/lib/decidim/spam_signal/test/factories.rb +24 -0
  87. data/lib/decidim/spam_signal/test/scan_factories.rb +17 -0
  88. data/lib/decidim/spam_signal/validators/comment_spam_validator.rb +119 -0
  89. data/lib/decidim/spam_signal/validators/profile_spam_validator.rb +133 -0
  90. data/lib/decidim/spam_signal/version.rb +14 -0
  91. data/lib/decidim/spam_signal.rb +31 -0
  92. data/lib/tasks/antispam.rb +23 -0
  93. metadata +210 -0
metadata ADDED
@@ -0,0 +1,210 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: decidim-spam_signal
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ platform: ruby
6
+ authors:
7
+ - Hadrien Froger
8
+ - Renato Silva
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2024-02-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: decidim-core
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0.26'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '0.28'
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ">="
29
+ - !ruby/object:Gem::Version
30
+ version: '0.26'
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.28'
34
+ - !ruby/object:Gem::Dependency
35
+ name: decidim-admin
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.26'
41
+ - - "<"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.28'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: '0.26'
51
+ - - "<"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.28'
54
+ - !ruby/object:Gem::Dependency
55
+ name: decidim-comments
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0.26'
61
+ - - "<"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.28'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0.26'
71
+ - - "<"
72
+ - !ruby/object:Gem::Version
73
+ version: '0.28'
74
+ - !ruby/object:Gem::Dependency
75
+ name: deface
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '1.8'
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '1.8'
88
+ description: Spam signal module for Decidim.
89
+ email:
90
+ - hadrien@octree.ch
91
+ - renato@octree.ch
92
+ executables: []
93
+ extensions: []
94
+ extra_rdoc_files: []
95
+ files:
96
+ - LICENSE.md
97
+ - README.md
98
+ - Rakefile
99
+ - app/commands/decidim/comments/create_comment.rb
100
+ - app/commands/decidim/spam_signal/admin/add_rule_command.rb
101
+ - app/commands/decidim/spam_signal/admin/add_scanner_command.rb
102
+ - app/commands/decidim/spam_signal/admin/remove_cop_command.rb
103
+ - app/commands/decidim/spam_signal/admin/remove_rule_command.rb
104
+ - app/commands/decidim/spam_signal/admin/remove_scanner_command.rb
105
+ - app/commands/decidim/spam_signal/admin/update_cop_command.rb
106
+ - app/commands/decidim/spam_signal/admin/update_rule_command.rb
107
+ - app/commands/decidim/spam_signal/admin/update_scanner_command.rb
108
+ - app/commands/decidim/spam_signal/application_handler.rb
109
+ - app/commands/decidim/spam_signal/command.rb
110
+ - app/commands/decidim/spam_signal/cops/cop_handler.rb
111
+ - app/commands/decidim/spam_signal/cops/lock_cop_command.rb
112
+ - app/commands/decidim/spam_signal/cops/sinalize_cop_command.rb
113
+ - app/commands/decidim/spam_signal/scans/allowed_tlds_scan_command.rb
114
+ - app/commands/decidim/spam_signal/scans/forbidden_tlds_scan_command.rb
115
+ - app/commands/decidim/spam_signal/scans/scan_handler.rb
116
+ - app/commands/decidim/spam_signal/scans/word_scan_command.rb
117
+ - app/controllers/concerns/decidim/user_blocked_checker.rb
118
+ - app/controllers/decidim/spam_signal/admin/application_controller.rb
119
+ - app/controllers/decidim/spam_signal/admin/application_cops_controller.rb
120
+ - app/controllers/decidim/spam_signal/admin/application_rules_controller.rb
121
+ - app/controllers/decidim/spam_signal/admin/application_scans_controller.rb
122
+ - app/controllers/decidim/spam_signal/admin/comment_cops_controller.rb
123
+ - app/controllers/decidim/spam_signal/admin/comment_rules_controller.rb
124
+ - app/controllers/decidim/spam_signal/admin/comment_scans_controller.rb
125
+ - app/controllers/decidim/spam_signal/admin/profile_cops_controller.rb
126
+ - app/controllers/decidim/spam_signal/admin/profile_rules_controller.rb
127
+ - app/controllers/decidim/spam_signal/admin/profile_scans_controller.rb
128
+ - app/controllers/decidim/spam_signal/admin/spam_filter_reports_controller.rb
129
+ - app/forms/decidim/spam_signal/cops/lock_settings_form.rb
130
+ - app/forms/decidim/spam_signal/cops/no_settings_form.rb
131
+ - app/forms/decidim/spam_signal/cops/sinalize_settings_form.rb
132
+ - app/forms/decidim/spam_signal/no_settings_form.rb
133
+ - app/forms/decidim/spam_signal/rule_form.rb
134
+ - app/forms/decidim/spam_signal/scans/allowed_tlds_form.rb
135
+ - app/forms/decidim/spam_signal/scans/forbidden_tlds_form.rb
136
+ - app/forms/decidim/spam_signal/scans/word_settings_form.rb
137
+ - app/forms/decidim/spam_signal/settings_form.rb
138
+ - app/helpers/decidim/spam_signal/admin/spam_signal_helper.rb
139
+ - app/helpers/decidim/spam_signal/application_helper.rb
140
+ - app/models/decidim/spam_signal/config.rb
141
+ - app/overrides/profiles_noindex.rb
142
+ - app/packs/images/decidim/spam_signal/entrypoints/spam_signal.js
143
+ - app/packs/images/decidim/spam_signal/icon.svg
144
+ - app/repositories/decidim/spam_signal/spam_config_repo.rb
145
+ - app/views/decidim/admin/moderated_users/_report.html.erb
146
+ - app/views/decidim/admin/moderated_users/index.html.erb
147
+ - app/views/decidim/comments/comments/error.js.erb
148
+ - app/views/decidim/spam_signal/admin/comment_cops/edit.html.erb
149
+ - app/views/decidim/spam_signal/admin/comment_rules/edit.html.erb
150
+ - app/views/decidim/spam_signal/admin/comment_rules/new.html.erb
151
+ - app/views/decidim/spam_signal/admin/comment_scans/edit.html.erb
152
+ - app/views/decidim/spam_signal/admin/comment_scans/new.html.erb
153
+ - app/views/decidim/spam_signal/admin/profile_cops/edit.html.erb
154
+ - app/views/decidim/spam_signal/admin/profile_rules/edit.html.erb
155
+ - app/views/decidim/spam_signal/admin/profile_rules/new.html.erb
156
+ - app/views/decidim/spam_signal/admin/profile_scans/edit.html.erb
157
+ - app/views/decidim/spam_signal/admin/profile_scans/new.html.erb
158
+ - app/views/decidim/spam_signal/admin/shared/cops/_edit.html.erb
159
+ - app/views/decidim/spam_signal/admin/shared/rules/_edit.html.erb
160
+ - app/views/decidim/spam_signal/admin/shared/rules/_new.html.erb
161
+ - app/views/decidim/spam_signal/admin/shared/scans/_edit.html.erb
162
+ - app/views/decidim/spam_signal/admin/shared/scans/_new.html.erb
163
+ - app/views/decidim/spam_signal/admin/spam_filter_reports/index.html.erb
164
+ - config/assets.rb
165
+ - config/i18n-tasks.yml
166
+ - config/initializers/spam_signal.rb
167
+ - config/locales/en.yml
168
+ - config/locales/fr.yml
169
+ - config/routes.rb
170
+ - lib/decidim/spam_signal.rb
171
+ - lib/decidim/spam_signal/admin.rb
172
+ - lib/decidim/spam_signal/admin_engine.rb
173
+ - lib/decidim/spam_signal/cop_bot.rb
174
+ - lib/decidim/spam_signal/cops/cops_repository.rb
175
+ - lib/decidim/spam_signal/engine.rb
176
+ - lib/decidim/spam_signal/extractors/comment_extractor.rb
177
+ - lib/decidim/spam_signal/extractors/extractor.rb
178
+ - lib/decidim/spam_signal/extractors/profile_extractor.rb
179
+ - lib/decidim/spam_signal/scans/scans_repository.rb
180
+ - lib/decidim/spam_signal/spam_settings_form_builder.rb
181
+ - lib/decidim/spam_signal/test/factories.rb
182
+ - lib/decidim/spam_signal/test/scan_factories.rb
183
+ - lib/decidim/spam_signal/validators/comment_spam_validator.rb
184
+ - lib/decidim/spam_signal/validators/profile_spam_validator.rb
185
+ - lib/decidim/spam_signal/version.rb
186
+ - lib/tasks/antispam.rb
187
+ homepage: https://github.com/octree-gva/decidim-module-spam_signal
188
+ licenses:
189
+ - AGPL-3.0
190
+ metadata: {}
191
+ post_install_message:
192
+ rdoc_options: []
193
+ require_paths:
194
+ - lib
195
+ required_ruby_version: !ruby/object:Gem::Requirement
196
+ requirements:
197
+ - - ">="
198
+ - !ruby/object:Gem::Version
199
+ version: '2.7'
200
+ required_rubygems_version: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ requirements: []
206
+ rubygems_version: 3.1.6
207
+ signing_key:
208
+ specification_version: 4
209
+ summary: A decidim spam_signal module
210
+ test_files: []