Version Description
May 14 2020 = * Fix: Scan users fixed. * Fix: Notice fixed (Creating default object from empty value). * Fix: Creating table for SFW data for child blogs on WPMS. * Upd: SFW query optimized. * Fix: Adding cleantalk_spamscan_logs table for each blog when updating from 5.137.2. * New: White Lists for SFW implemented. * Fix: correct comments checking status text. * Fix: Users scan. Reducing memory load. * Fix: "Capture Buffer" settings. The issue with YoastSEO. * Fix: SFW query fixed. * Fix: SFW die page fixed. * Fix: Membermouse API false positives. * Fix: gz*() functions calling from global namespace for now.
Download this release
Release Info
Developer | glomberg |
Plugin | Spam protection, AntiSpam, FireWall by CleanTalk |
Version | 5.138 |
Comparing to | |
See all releases |
Code changes from version 5.137.1 to 5.138
- cleantalk.php +30 -7
- i18n/cleantalk-ru_RU.po +1536 -1536
- i18n/cleantalk.pot +1388 -1388
- inc/cleantalk-common.php +1006 -1006
- inc/cleantalk-public.php +4 -2
- inc/cleantalk-settings.php +6 -6
- inc/cleantalk-updater.php +92 -12
- inc/find-spam/ClassCleantalkFindSpamUsersChecker.php +72 -98
- js/cleantalk-comments-checkspam.min.js +1 -2
- js/cleantalk-comments-checkspam.min.js.map +1 -1
- js/cleantalk-users-checkspam.min.js +2 -2
- js/cleantalk-users-checkspam.min.js.map +1 -1
- lib/Cleantalk.php +540 -540
- lib/Cleantalk/Antispam/SFW.php +44 -27
- lib/CleantalkSFW.php +2 -2
- readme.txt +19 -4
cleantalk.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: https://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
-
Version: 5.
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: https://cleantalk.org
|
9 |
Text Domain: cleantalk
|
@@ -644,6 +644,7 @@ function apbct_activation( $network = false ) {
|
|
644 |
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw` (
|
645 |
`network` int(11) unsigned NOT NULL,
|
646 |
`mask` int(11) unsigned NOT NULL,
|
|
|
647 |
INDEX ( `network` , `mask` )
|
648 |
);';
|
649 |
|
@@ -662,6 +663,16 @@ function apbct_activation( $network = false ) {
|
|
662 |
`value` TEXT NULL DEFAULT NULL,
|
663 |
`last_update` DATETIME NULL DEFAULT NULL,
|
664 |
PRIMARY KEY (`name`(40), `id`(64)));';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
665 |
|
666 |
if($network && !defined('CLEANTALK_ACCESS_KEY')){
|
667 |
$initial_blog = get_current_blog_id();
|
@@ -744,6 +755,16 @@ function apbct_activation__new_blog($blog_id, $user_id, $domain, $path, $site_id
|
|
744 |
`value` TEXT NULL DEFAULT NULL,
|
745 |
`last_update` DATETIME NULL DEFAULT NULL,
|
746 |
PRIMARY KEY (`id`(64), `name`(64)));';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
747 |
|
748 |
// Cron tasks
|
749 |
CleantalkCron::addTask('check_account_status', 'ct_account_status_check', 3600, time()+1800); // Checks account status
|
@@ -830,16 +851,18 @@ function apbct_deactivation__delete_all_options__in_network(){
|
|
830 |
|
831 |
function apbct_deactivation__delete_common_tables() {
|
832 |
global $wpdb;
|
833 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sfw`;');
|
834 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sfw_logs`;');
|
835 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sessions`;');
|
|
|
836 |
}
|
837 |
|
838 |
function apbct_deactivation__delete_blog_tables() {
|
839 |
global $wpdb;
|
840 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sfw`;');
|
841 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sfw_logs`;');
|
842 |
-
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sessions`;');
|
|
|
843 |
}
|
844 |
|
845 |
/**
|
3 |
Plugin Name: Anti-Spam by CleanTalk
|
4 |
Plugin URI: https://cleantalk.org
|
5 |
Description: Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam, no registration spam, no contact spam, protects any WordPress forms.
|
6 |
+
Version: 5.138
|
7 |
Author: СleanTalk <welcome@cleantalk.org>
|
8 |
Author URI: https://cleantalk.org
|
9 |
Text Domain: cleantalk
|
644 |
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw` (
|
645 |
`network` int(11) unsigned NOT NULL,
|
646 |
`mask` int(11) unsigned NOT NULL,
|
647 |
+
`status` TINYINT(1) NOT NULL DEFAULT 0,
|
648 |
INDEX ( `network` , `mask` )
|
649 |
);';
|
650 |
|
663 |
`value` TEXT NULL DEFAULT NULL,
|
664 |
`last_update` DATETIME NULL DEFAULT NULL,
|
665 |
PRIMARY KEY (`name`(40), `id`(64)));';
|
666 |
+
|
667 |
+
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_spamscan_logs` (
|
668 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
669 |
+
`scan_type` varchar(11) NOT NULL,
|
670 |
+
`start_time` datetime NOT NULL,
|
671 |
+
`finish_time` datetime NOT NULL,
|
672 |
+
`count_to_scan` int(11) DEFAULT NULL,
|
673 |
+
`found_spam` int(11) DEFAULT NULL,
|
674 |
+
`found_bad` int(11) DEFAULT NULL,
|
675 |
+
PRIMARY KEY (`id`));';
|
676 |
|
677 |
if($network && !defined('CLEANTALK_ACCESS_KEY')){
|
678 |
$initial_blog = get_current_blog_id();
|
755 |
`value` TEXT NULL DEFAULT NULL,
|
756 |
`last_update` DATETIME NULL DEFAULT NULL,
|
757 |
PRIMARY KEY (`id`(64), `name`(64)));';
|
758 |
+
|
759 |
+
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_spamscan_logs` (
|
760 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
761 |
+
`scan_type` varchar(11) NOT NULL,
|
762 |
+
`start_time` datetime NOT NULL,
|
763 |
+
`finish_time` datetime NOT NULL,
|
764 |
+
`count_to_scan` int(11) DEFAULT NULL,
|
765 |
+
`found_spam` int(11) DEFAULT NULL,
|
766 |
+
`found_bad` int(11) DEFAULT NULL,
|
767 |
+
PRIMARY KEY (`id`));';
|
768 |
|
769 |
// Cron tasks
|
770 |
CleantalkCron::addTask('check_account_status', 'ct_account_status_check', 3600, time()+1800); // Checks account status
|
851 |
|
852 |
function apbct_deactivation__delete_common_tables() {
|
853 |
global $wpdb;
|
854 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sfw`;'); // Deleting SFW data
|
855 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sfw_logs`;'); // Deleting SFW logs
|
856 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_sessions`;'); // Deleting session table
|
857 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_spamscan_logs`;'); // Deleting user/comments scan result table
|
858 |
}
|
859 |
|
860 |
function apbct_deactivation__delete_blog_tables() {
|
861 |
global $wpdb;
|
862 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sfw`;'); // Deleting SFW data
|
863 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sfw_logs`;'); // Deleting SFW logs
|
864 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->prefix.'cleantalk_sessions`;'); // Deleting session table
|
865 |
+
$wpdb->query('DROP TABLE IF EXISTS `'. $wpdb->base_prefix.'cleantalk_spamscan_logs`;'); // Deleting user/comments scan result table
|
866 |
}
|
867 |
|
868 |
/**
|
i18n/cleantalk-ru_RU.po
CHANGED
@@ -1,1536 +1,1536 @@
|
|
1 |
-
msgid ""
|
2 |
-
msgstr ""
|
3 |
-
"Project-Id-Version: Anti-Spam by CleanTalk\n"
|
4 |
-
"POT-Creation-Date: 2019-10-27 16:02+0000\n"
|
5 |
-
"PO-Revision-Date: 2020-01-20 15:11+0000\n"
|
6 |
-
"Last-Translator: admin <ievlev@cleantalk.org>\n"
|
7 |
-
"Language-Team: Русский\n"
|
8 |
-
"Language: ru_RU\n"
|
9 |
-
"MIME-Version: 1.0\n"
|
10 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
-
"Content-Transfer-Encoding: 8bit\n"
|
12 |
-
"X-Generator: Loco https://localise.biz/\n"
|
13 |
-
"X-Poedit-Basepath: ..\n"
|
14 |
-
"X-Poedit-WPHeader: cleantalk.php\n"
|
15 |
-
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
16 |
-
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
17 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
19 |
-
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
20 |
-
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
21 |
-
"Report-Msgid-Bugs-To: \n"
|
22 |
-
"X-Loco-Version: 2.3.1; wp-5.3.2\n"
|
23 |
-
"X-Poedit-SearchPath-0: .\n"
|
24 |
-
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
25 |
-
|
26 |
-
#: inc/classCleantalkComments.php:32 inc/cleantalk-comments.php:16
|
27 |
-
#: inc/cleantalk-users.php:15
|
28 |
-
msgid "Check for spam"
|
29 |
-
msgstr "Проверить на спам"
|
30 |
-
|
31 |
-
#: inc/classCleantalkComments.php:33 inc/cleantalk-admin.php:350
|
32 |
-
#: inc/cleantalk-comments.php:16
|
33 |
-
msgid "Find spam comments"
|
34 |
-
msgstr "Найти спам в комментариях"
|
35 |
-
|
36 |
-
#: inc/classCleantalkComments.php:66 inc/cleantalk-comments.php:26
|
37 |
-
#: inc/cleantalk-users.php:25
|
38 |
-
msgid "Plugin Settings"
|
39 |
-
msgstr "Настройки плагина"
|
40 |
-
|
41 |
-
#: inc/classCleantalkComments.php:76 inc/cleantalk-comments.php:35
|
42 |
-
#: inc/cleantalk-users.php:34
|
43 |
-
#, php-format
|
44 |
-
msgid ""
|
45 |
-
"Antispam hosting tariff does not allow you to use this feature. To do so, "
|
46 |
-
"you need to enter an Access Key in the %splugin settings%s."
|
47 |
-
msgstr ""
|
48 |
-
"Тариф на антиспам хостинг не позволяет использовать эту функцию. Для этого "
|
49 |
-
"вам необходимо ввести ключ доступа в %sнастройках плагина%s."
|
50 |
-
|
51 |
-
#: inc/classCleantalkComments.php:101 inc/cleantalk-comments.php:60
|
52 |
-
#: inc/cleantalk-users.php:60
|
53 |
-
msgid ""
|
54 |
-
"Ajax error. Process will be automatically restarted in 3 seconds. Status: "
|
55 |
-
msgstr ""
|
56 |
-
"Ajax ошибка. Процесс проверки будет автоматически возобновлен через 3 "
|
57 |
-
"секунды. Статус:"
|
58 |
-
|
59 |
-
#: inc/classCleantalkComments.php:108 inc/cleantalk-comments.php:67
|
60 |
-
msgid ""
|
61 |
-
"Please wait for a while. CleanTalk is deleting spam comments. Comments left: "
|
62 |
-
msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-комментарии. Осталось:"
|
63 |
-
|
64 |
-
#: inc/classCleantalkComments.php:118 inc/cleantalk-comments.php:77
|
65 |
-
#: inc/cleantalk-users.php:77
|
66 |
-
msgid "Start check"
|
67 |
-
msgstr "Начать проверку"
|
68 |
-
|
69 |
-
#: inc/classCleantalkComments.php:119 inc/cleantalk-comments.php:78
|
70 |
-
#: inc/cleantalk-users.php:78
|
71 |
-
msgid "Continue check"
|
72 |
-
msgstr "Продолжить проверку"
|
73 |
-
|
74 |
-
#: inc/classCleantalkComments.php:120 inc/cleantalk-comments.php:79
|
75 |
-
msgid ""
|
76 |
-
"The plugin will check all comments against blacklists database and show you "
|
77 |
-
"senders that have spam activity on other websites."
|
78 |
-
msgstr ""
|
79 |
-
"Пожалуйста, подождите. CleanTalk проверяет комментарии по черным спискам на "
|
80 |
-
"cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
|
81 |
-
"работы."
|
82 |
-
|
83 |
-
#: inc/classCleantalkComments.php:123 inc/cleantalk-comments.php:82
|
84 |
-
#: inc/cleantalk-users.php:82
|
85 |
-
msgid "Accurate check"
|
86 |
-
msgstr "Точная проверка"
|
87 |
-
|
88 |
-
#: inc/classCleantalkComments.php:125 inc/cleantalk-comments.php:84
|
89 |
-
msgid ""
|
90 |
-
"Allows to use comment's dates to perform more accurate check. Could "
|
91 |
-
"seriously slow down the check."
|
92 |
-
msgstr ""
|
93 |
-
"Позволяет использовать даты комментариев для выполения более тщательной "
|
94 |
-
"проверки. Может серьезно замедлить проверку."
|
95 |
-
|
96 |
-
#: inc/classCleantalkComments.php:128 inc/cleantalk-comments.php:87
|
97 |
-
#: inc/cleantalk-users.php:87
|
98 |
-
msgid "Specify date range"
|
99 |
-
msgstr "Указать диапазон дат"
|
100 |
-
|
101 |
-
#: inc/classCleantalkComments.php:149 inc/cleantalk-comments.php:108
|
102 |
-
msgid ""
|
103 |
-
"Please wait! CleanTalk is checking all approved and pending comments via "
|
104 |
-
"blacklist database at cleantalk.org. You will have option to delete found "
|
105 |
-
"spam comments after plugin finish."
|
106 |
-
msgstr ""
|
107 |
-
"Пожалуйста, подождите! CleanTalk проверяет комментарии по черным спискам на "
|
108 |
-
"cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
|
109 |
-
"работы."
|
110 |
-
|
111 |
-
#: inc/classCleantalkCommentsListTable.php:24
|
112 |
-
msgid "Author"
|
113 |
-
msgstr "Автор"
|
114 |
-
|
115 |
-
#: inc/classCleantalkCommentsListTable.php:25 inc/cleantalk-comments.php:158
|
116 |
-
msgid "Comment"
|
117 |
-
msgstr "Комментарий"
|
118 |
-
|
119 |
-
#: inc/classCleantalkCommentsListTable.php:26 inc/cleantalk-comments.php:159
|
120 |
-
msgid "In Response To"
|
121 |
-
msgstr "В ответ на"
|
122 |
-
|
123 |
-
#: inc/classCleantalkCommentsListTable.php:33
|
124 |
-
msgid "No spam comments."
|
125 |
-
msgstr "Нет спам комментариев."
|
126 |
-
|
127 |
-
#: inc/cleantalk-admin.php:27
|
128 |
-
#, php-format
|
129 |
-
msgid "Find spam %s"
|
130 |
-
msgstr "Найти спам %s"
|
131 |
-
|
132 |
-
#: inc/cleantalk-admin.php:31
|
133 |
-
msgid "CleanTalk Anti-Spam Log"
|
134 |
-
msgstr "CleanTalk Anti-Spam лог"
|
135 |
-
|
136 |
-
#: inc/cleantalk-admin.php:50
|
137 |
-
#, php-format
|
138 |
-
msgid "%sRefresh%s"
|
139 |
-
msgstr "%sОбновить%s"
|
140 |
-
|
141 |
-
#: inc/cleantalk-admin.php:51
|
142 |
-
#, php-format
|
143 |
-
msgid "%sConfigure%s"
|
144 |
-
msgstr "%sКонфигурация%s"
|
145 |
-
|
146 |
-
#: inc/cleantalk-admin.php:68
|
147 |
-
msgid "7 days anti-spam stats"
|
148 |
-
msgstr "Статистика атак за 7 дней"
|
149 |
-
|
150 |
-
#: inc/cleantalk-admin.php:72
|
151 |
-
msgid "Top 5 spam IPs blocked"
|
152 |
-
msgstr "Топ 5 cамых заблокированных IP"
|
153 |
-
|
154 |
-
#: inc/cleantalk-admin.php:78
|
155 |
-
msgid "Get Access key to activate Anti-Spam protection!"
|
156 |
-
msgstr "Получите ключ доступа для активации спам защиты!"
|
157 |
-
|
158 |
-
#: inc/cleantalk-admin.php:86
|
159 |
-
#, php-format
|
160 |
-
msgid "Something went wrong! Error: \"%s\"."
|
161 |
-
msgstr "Что-то пошло не так: Ошибка: \"%s\"."
|
162 |
-
|
163 |
-
#: inc/cleantalk-admin.php:90
|
164 |
-
msgid "Please, visit your dashboard."
|
165 |
-
msgstr "Пожалуйста, посетите панель управления."
|
166 |
-
|
167 |
-
#: inc/cleantalk-admin.php:104
|
168 |
-
msgid "IP"
|
169 |
-
msgstr "IP"
|
170 |
-
|
171 |
-
#: inc/cleantalk-admin.php:105
|
172 |
-
msgid "Country"
|
173 |
-
msgstr "Страна"
|
174 |
-
|
175 |
-
#: inc/cleantalk-admin.php:106
|
176 |
-
msgid "Block Count"
|
177 |
-
msgstr "Заблкирован раз"
|
178 |
-
|
179 |
-
#: inc/cleantalk-admin.php:134
|
180 |
-
#, php-format
|
181 |
-
msgid ""
|
182 |
-
"This is the count from the %s's cloud and could be different to admin bar "
|
183 |
-
"counters"
|
184 |
-
msgstr ""
|
185 |
-
"Это счетчик из %s облака, эти данные могут отличаться от данных счетчика в "
|
186 |
-
"админ-баре."
|
187 |
-
|
188 |
-
#. %s: Number of spam messages
|
189 |
-
#: inc/cleantalk-admin.php:137
|
190 |
-
#, php-format
|
191 |
-
msgid ""
|
192 |
-
"%s%s%s has blocked %s spam for all time. The statistics are automatically "
|
193 |
-
"updated every 24 hours."
|
194 |
-
msgstr ""
|
195 |
-
"%s%s%s заблокировал %s спама за все время. Статистика автоматически "
|
196 |
-
"обновляется каждый 24 часа."
|
197 |
-
|
198 |
-
#: inc/cleantalk-admin.php:148 inc/cleantalk-settings.php:544
|
199 |
-
#, php-format
|
200 |
-
msgid "Do you like CleanTalk? %sPost your feedback here%s."
|
201 |
-
msgstr "Вам понравился CleanTalk?%s Напишите свой отзыв здесь%s."
|
202 |
-
|
203 |
-
#: inc/cleantalk-admin.php:234
|
204 |
-
msgid "Translate"
|
205 |
-
msgstr "Перевести"
|
206 |
-
|
207 |
-
#: inc/cleantalk-admin.php:237
|
208 |
-
msgid "Start here"
|
209 |
-
msgstr "Начать здесь"
|
210 |
-
|
211 |
-
#: inc/cleantalk-admin.php:238
|
212 |
-
msgid "FAQ"
|
213 |
-
msgstr "FAQ"
|
214 |
-
|
215 |
-
#: inc/cleantalk-admin.php:239 inc/cleantalk-admin.php:644
|
216 |
-
#: inc/cleantalk-settings.php:575
|
217 |
-
msgid "Support"
|
218 |
-
msgstr "Поддержка"
|
219 |
-
|
220 |
-
#: inc/cleantalk-admin.php:306 inc/cleantalk-settings.php:523
|
221 |
-
msgid "Hosting AntiSpam"
|
222 |
-
msgstr "Hosting AntiSpam"
|
223 |
-
|
224 |
-
#: inc/cleantalk-admin.php:333
|
225 |
-
msgid "Failed from timeout. Going to check comments again."
|
226 |
-
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
227 |
-
|
228 |
-
#: inc/cleantalk-admin.php:334
|
229 |
-
msgid "Added"
|
230 |
-
msgstr "Добавлены"
|
231 |
-
|
232 |
-
#: inc/cleantalk-admin.php:335 inc/cleantalk-admin.php:386
|
233 |
-
msgid "Deleted"
|
234 |
-
msgstr "Удалено"
|
235 |
-
|
236 |
-
#: inc/cleantalk-admin.php:336
|
237 |
-
msgid "comments"
|
238 |
-
msgstr "комментарии"
|
239 |
-
|
240 |
-
#: inc/cleantalk-admin.php:337
|
241 |
-
msgid "Delete all spam comments?"
|
242 |
-
msgstr "Удалить ВСЕ найденные спам-комментарии?"
|
243 |
-
|
244 |
-
#: inc/cleantalk-admin.php:338
|
245 |
-
msgid "Delete checked comments?"
|
246 |
-
msgstr "Удалить отмеченые спам-комментарии?"
|
247 |
-
|
248 |
-
#: inc/cleantalk-admin.php:339
|
249 |
-
#, php-format
|
250 |
-
msgid ""
|
251 |
-
"Total comments %s. Checked %s. Found %s spam comments. %s bad comments "
|
252 |
-
"(without IP or email)."
|
253 |
-
msgstr ""
|
254 |
-
"Всего комментариев %s. Проверено %s. Найдено %s спам комментариев. %s плохих "
|
255 |
-
"комментариев (без IP и Email'а)."
|
256 |
-
|
257 |
-
#: inc/cleantalk-admin.php:340 inc/cleantalk-admin.php:393
|
258 |
-
#: inc/cleantalk-users.php:531
|
259 |
-
msgid "Please do backup of WordPress database before delete any accounts!"
|
260 |
-
msgstr ""
|
261 |
-
"Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
|
262 |
-
"аккаунтов."
|
263 |
-
|
264 |
-
#: inc/cleantalk-admin.php:351
|
265 |
-
msgid "The sender has been whitelisted."
|
266 |
-
msgstr "Отправитель был добавлен в белый список."
|
267 |
-
|
268 |
-
#: inc/cleantalk-admin.php:352
|
269 |
-
msgid "The sender has been blacklisted."
|
270 |
-
msgstr "Отправитель был добавлен в черный список."
|
271 |
-
|
272 |
-
#: inc/cleantalk-admin.php:353 inc/cleantalk-public.php:3321
|
273 |
-
#, php-format
|
274 |
-
msgid "Feedback has been sent to %sCleanTalk Dashboard%s."
|
275 |
-
msgstr "Обратная связь отправлена в панель управления %sCleanTalk%s."
|
276 |
-
|
277 |
-
#: inc/cleantalk-admin.php:383
|
278 |
-
msgid "Failed from timeout. Going to check users again."
|
279 |
-
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
280 |
-
|
281 |
-
#: inc/cleantalk-admin.php:384
|
282 |
-
msgid "Failed from timeout. Going to run a new attempt to delete spam users."
|
283 |
-
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
284 |
-
|
285 |
-
#: inc/cleantalk-admin.php:385
|
286 |
-
msgid "Inserted"
|
287 |
-
msgstr "Добавлено"
|
288 |
-
|
289 |
-
#: inc/cleantalk-admin.php:387
|
290 |
-
msgid "users."
|
291 |
-
msgstr "пользователей."
|
292 |
-
|
293 |
-
#: inc/cleantalk-admin.php:388
|
294 |
-
msgid "Delete all spam users?"
|
295 |
-
msgstr "Удалить ВСЕХ найденых спам-пользователей?"
|
296 |
-
|
297 |
-
#: inc/cleantalk-admin.php:389
|
298 |
-
msgid "Delete checked users?"
|
299 |
-
msgstr "Удалить отмеченых спам-пользователей?"
|
300 |
-
|
301 |
-
#: inc/cleantalk-admin.php:392
|
302 |
-
#, php-format
|
303 |
-
msgid ""
|
304 |
-
"Total users %s, checked %s, found %s spam users and %s bad users (without IP "
|
305 |
-
"or email)"
|
306 |
-
msgstr ""
|
307 |
-
"Всего пользователей %s, проверено %s, найдено %s спам пользователей и %s "
|
308 |
-
"плохих пользователей (без IP и Email'а)"
|
309 |
-
|
310 |
-
#: inc/cleantalk-admin.php:401
|
311 |
-
msgid "Find spam-users"
|
312 |
-
msgstr "Найти спам-пользователей"
|
313 |
-
|
314 |
-
#: inc/cleantalk-admin.php:449
|
315 |
-
#, php-format
|
316 |
-
msgid "Unable to get Access key automatically: %s"
|
317 |
-
msgstr "Невозможно получить ключ автоматически: %s"
|
318 |
-
|
319 |
-
#: inc/cleantalk-admin.php:450
|
320 |
-
msgid "Get the Access key"
|
321 |
-
msgstr "Получить ключ вручную"
|
322 |
-
|
323 |
-
#: inc/cleantalk-admin.php:459
|
324 |
-
#, php-format
|
325 |
-
msgid "Please enter Access Key in %s settings to enable anti spam protection!"
|
326 |
-
msgstr ""
|
327 |
-
"Пожалуйста, укажите Ключ доступа в настройках %s для активации защиты от "
|
328 |
-
"спама!"
|
329 |
-
|
330 |
-
#: inc/cleantalk-admin.php:469
|
331 |
-
#, php-format
|
332 |
-
msgid "%s trial period ends, please upgrade to %s!"
|
333 |
-
msgstr ""
|
334 |
-
"%s заканчивается ознакомительный срок пользования антиспам плагином "
|
335 |
-
"CleanTalk, пожалуйста продлите подключение %s."
|
336 |
-
|
337 |
-
#: inc/cleantalk-admin.php:481
|
338 |
-
msgid "RENEW ANTI-SPAM"
|
339 |
-
msgstr "ПРОДЛИТЬ АНТИСПАМ"
|
340 |
-
|
341 |
-
#: inc/cleantalk-admin.php:482
|
342 |
-
msgid "next year"
|
343 |
-
msgstr "следующий год"
|
344 |
-
|
345 |
-
#: inc/cleantalk-admin.php:486
|
346 |
-
#, php-format
|
347 |
-
msgid "Please renew your anti-spam license for %s."
|
348 |
-
msgstr "Пожалуйста, продлите свою антиспам-лицензию на %s."
|
349 |
-
|
350 |
-
#: inc/cleantalk-admin.php:511
|
351 |
-
msgid "Make it right!"
|
352 |
-
msgstr "Сделай все правильно!"
|
353 |
-
|
354 |
-
#: inc/cleantalk-admin.php:513
|
355 |
-
#, php-format
|
356 |
-
msgid "%sGet premium%s"
|
357 |
-
msgstr "%sПолучить премиум%s"
|
358 |
-
|
359 |
-
#: inc/cleantalk-admin.php:552
|
360 |
-
msgid "Since"
|
361 |
-
msgstr "От"
|
362 |
-
|
363 |
-
#: inc/cleantalk-admin.php:558
|
364 |
-
msgid ""
|
365 |
-
"All / Allowed / Blocked submissions. The number of submissions is being "
|
366 |
-
"counted since CleanTalk plugin installation."
|
367 |
-
msgstr "Все / Разрешенные / Запрещенные запросы с момента установки CleanTalk."
|
368 |
-
|
369 |
-
#: inc/cleantalk-admin.php:558
|
370 |
-
msgid "All"
|
371 |
-
msgstr "Все"
|
372 |
-
|
373 |
-
#: inc/cleantalk-admin.php:566
|
374 |
-
msgid ""
|
375 |
-
"Allowed / Blocked submissions. The number of submissions for past 24 hours. "
|
376 |
-
msgstr "Разрешенные / Запрещенные запросы за последние 24 часа."
|
377 |
-
|
378 |
-
#: inc/cleantalk-admin.php:566
|
379 |
-
msgid "Day"
|
380 |
-
msgstr "За день"
|
381 |
-
|
382 |
-
#: inc/cleantalk-admin.php:572
|
383 |
-
msgid ""
|
384 |
-
"All / Blocked events. Access attempts regitred by SpamFireWall counted since "
|
385 |
-
"the last plugin activation."
|
386 |
-
msgstr ""
|
387 |
-
"Все / Запрещенные попытки просмотра сайта. Отображет попытки с момента "
|
388 |
-
"последней активации плагина."
|
389 |
-
|
390 |
-
#: inc/cleantalk-admin.php:582
|
391 |
-
msgid ""
|
392 |
-
"Allowed / Blocked submissions. The number of submissions is being counted "
|
393 |
-
"since "
|
394 |
-
msgstr "Разрешенные / Запрещенные попытки."
|
395 |
-
|
396 |
-
#: inc/cleantalk-admin.php:593
|
397 |
-
msgid "dashboard"
|
398 |
-
msgstr "панель управления"
|
399 |
-
|
400 |
-
#: inc/cleantalk-admin.php:600
|
401 |
-
msgid "Settings"
|
402 |
-
msgstr "Настройки"
|
403 |
-
|
404 |
-
#: inc/cleantalk-admin.php:608
|
405 |
-
msgid "Bulk spam comments removal tool."
|
406 |
-
msgstr "Инструмент массового удаления пользователей."
|
407 |
-
|
408 |
-
#: inc/cleantalk-admin.php:608 inc/cleantalk-settings.php:882
|
409 |
-
msgid "Check comments for spam"
|
410 |
-
msgstr "Проверка комментариев"
|
411 |
-
|
412 |
-
#: inc/cleantalk-admin.php:618 inc/cleantalk-settings.php:885
|
413 |
-
msgid "Check users for spam"
|
414 |
-
msgstr "Проверить пользователей на спам"
|
415 |
-
|
416 |
-
#: inc/cleantalk-admin.php:627
|
417 |
-
msgid "Reset first counter"
|
418 |
-
msgstr "Сбросить первый счетчик"
|
419 |
-
|
420 |
-
#: inc/cleantalk-admin.php:635
|
421 |
-
msgid "Reset all counters"
|
422 |
-
msgstr "Сбросить все счетчики"
|
423 |
-
|
424 |
-
#: inc/cleantalk-comments.php:221 inc/cleantalk-users.php:220
|
425 |
-
msgid "Approve"
|
426 |
-
msgstr "Одобрить"
|
427 |
-
|
428 |
-
#: inc/cleantalk-comments.php:223 inc/cleantalk-users.php:222
|
429 |
-
msgid "Delete"
|
430 |
-
msgstr "Удалить"
|
431 |
-
|
432 |
-
#: inc/cleantalk-comments.php:265
|
433 |
-
msgid "Delete all comments from the list"
|
434 |
-
msgstr "Удалить все сообщения в списке"
|
435 |
-
|
436 |
-
#: inc/cleantalk-comments.php:266 inc/cleantalk-users.php:268
|
437 |
-
msgid "Delete selected"
|
438 |
-
msgstr "Удалить отмеченные"
|
439 |
-
|
440 |
-
#: inc/cleantalk-comments.php:270
|
441 |
-
msgid "Insert comments"
|
442 |
-
msgstr "Добавить комментарии"
|
443 |
-
|
444 |
-
#: inc/cleantalk-comments.php:271
|
445 |
-
msgid "Delete comments"
|
446 |
-
msgstr "Удалить тестовые спам-комментарии?"
|
447 |
-
|
448 |
-
#: inc/cleantalk-comments.php:276 inc/cleantalk-users.php:279
|
449 |
-
msgid ""
|
450 |
-
"There is some differencies between blacklists database and our API "
|
451 |
-
"mechanisms. Blacklists shows all history of spam activity, but our API (that "
|
452 |
-
"used in spam checking) used another parameters, too: last day of activity, "
|
453 |
-
"number of spam attacks during last days etc. This mechanisms help us to "
|
454 |
-
"reduce number of false positivitie. So, there is nothing strange, if some "
|
455 |
-
"emails/IPs will be not found by this checking."
|
456 |
-
msgstr ""
|
457 |
-
"Есть некоторые отличия между проверкой через базу данных черных списков и "
|
458 |
-
"через механизм API. В черных списках отображается вся история о спам-"
|
459 |
-
"активности, но наш API используетс другие механизмы: последний день "
|
460 |
-
"активности, количество спам-атак в течение последних дней и т. д. Эти "
|
461 |
-
"механизмы помогают нам сократить количество ложных обнаружений. Поэтому, нет "
|
462 |
-
"ничего странного, если некоторые письма/IP не будут обнаружены при этой "
|
463 |
-
"проверке."
|
464 |
-
|
465 |
-
#: inc/cleantalk-comments.php:281 inc/cleantalk-users.php:284
|
466 |
-
msgid "Stop deletion"
|
467 |
-
msgstr "Остановить удаление"
|
468 |
-
|
469 |
-
#: inc/cleantalk-comments.php:495
|
470 |
-
#, php-format
|
471 |
-
msgid ""
|
472 |
-
"Total comments %s. Checked %s. Last check %s. Found %s spam comments. %s bad "
|
473 |
-
"comments (without IP or email)."
|
474 |
-
msgstr ""
|
475 |
-
"Всего комментариев %s. Проверено %s. Последняя проверка %s. Найдено %s спам-"
|
476 |
-
"комментариев. %s плохие комментарии (без IP или электронной почты)."
|
477 |
-
|
478 |
-
#: inc/cleantalk-comments.php:499
|
479 |
-
msgid "Please do backup of WordPress database before delete any comments!"
|
480 |
-
msgstr ""
|
481 |
-
"Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
|
482 |
-
"комментариев."
|
483 |
-
|
484 |
-
#: inc/cleantalk-public.php:500 inc/cleantalk-public.php:641
|
485 |
-
#: inc/cleantalk-public.php:743 inc/cleantalk-public.php:2363
|
486 |
-
#: inc/cleantalk-public.php:3052
|
487 |
-
msgid "Spam protection by CleanTalk"
|
488 |
-
msgstr "Спам защита CleanTalk"
|
489 |
-
|
490 |
-
#: inc/cleantalk-public.php:1233 inc/cleantalk-public.php:1361
|
491 |
-
#: inc/cleantalk-public.php:1379
|
492 |
-
msgid "Spam protection"
|
493 |
-
msgstr "Защита от спама"
|
494 |
-
|
495 |
-
#: inc/cleantalk-public.php:1332
|
496 |
-
msgid "CleanTalk AntiSpam: This message is possible spam."
|
497 |
-
msgstr "CleanTalk AntiSpam: Это сообщение, возможно, является спамом."
|
498 |
-
|
499 |
-
#: inc/cleantalk-public.php:1333
|
500 |
-
msgid "You could check it in CleanTalk's anti-spam database:"
|
501 |
-
msgstr "Вы можете проверить это по антиспам-базе CleanTalk:"
|
502 |
-
|
503 |
-
#: inc/cleantalk-public.php:1569
|
504 |
-
#, php-format
|
505 |
-
msgid "Registration approved by %s."
|
506 |
-
msgstr "Регистрация одобрена %s."
|
507 |
-
|
508 |
-
#: inc/cleantalk-public.php:1849
|
509 |
-
msgid "CleanTalk AntiSpam: This registration is spam."
|
510 |
-
msgstr "CleanTalk AntiSpam: Эта регистрация - спам."
|
511 |
-
|
512 |
-
#: inc/cleantalk-public.php:1850 inc/cleantalk-public.php:2219
|
513 |
-
#: inc/cleantalk-public.php:2387 inc/cleantalk-public.php:2542
|
514 |
-
msgid "CleanTalk's anti-spam database:"
|
515 |
-
msgstr "Антиспам-база CleanTalk:"
|
516 |
-
|
517 |
-
#: inc/cleantalk-public.php:2218 inc/cleantalk-public.php:2386
|
518 |
-
#: inc/cleantalk-public.php:2541
|
519 |
-
msgid "CleanTalk AntiSpam: This message is spam."
|
520 |
-
msgstr "CleanTalk AntiSpam: Это сообщение - спам."
|
521 |
-
|
522 |
-
#: inc/cleantalk-public.php:2666
|
523 |
-
msgid "Comment approved. Anti-spam by CleanTalk."
|
524 |
-
msgstr "Комментарий одобрен. Антиспам от CleanTalk."
|
525 |
-
|
526 |
-
#: inc/cleantalk-public.php:3219
|
527 |
-
msgid "Attention, please!"
|
528 |
-
msgstr "Внимание!"
|
529 |
-
|
530 |
-
#: inc/cleantalk-public.php:3220
|
531 |
-
#, php-format
|
532 |
-
msgid "\"%s\" plugin error on your site \"%s\":"
|
533 |
-
msgstr "\"%s\" ошибка плагина на сайте \"%s\":"
|
534 |
-
|
535 |
-
#: inc/cleantalk-public.php:3222
|
536 |
-
#, php-format
|
537 |
-
msgid "[%s] \"%s\" error!"
|
538 |
-
msgstr "[%s] \"%s\" ошибка!"
|
539 |
-
|
540 |
-
#: inc/cleantalk-public.php:3271
|
541 |
-
msgid ""
|
542 |
-
"By using this form you agree with the storage and processing of your data by "
|
543 |
-
"using the Privacy Policy on this website."
|
544 |
-
msgstr ""
|
545 |
-
"Используя эту форму, вы соглашаетесь с хранением и обработкой ваших данных, "
|
546 |
-
"в соответствии с Политикой конфиденциальности на этом сайте."
|
547 |
-
|
548 |
-
#: inc/cleantalk-public.php:3319
|
549 |
-
msgid "Error
|
550 |
-
msgstr "Случилась ошибка при отправке обратной связи."
|
551 |
-
|
552 |
-
#: inc/cleantalk-public.php:3320
|
553 |
-
msgid "Feedback wasn't sent. There is no associated request."
|
554 |
-
msgstr "Обратная связь не была отправлена. Нет связанного запроса."
|
555 |
-
|
556 |
-
#: inc/cleantalk-public.php:3364
|
557 |
-
msgid "Sender info"
|
558 |
-
msgstr "Информация об отправителе"
|
559 |
-
|
560 |
-
#: inc/cleantalk-public.php:3367
|
561 |
-
msgid "by"
|
562 |
-
msgstr " от"
|
563 |
-
|
564 |
-
#: inc/cleantalk-public.php:3378
|
565 |
-
msgid "No email"
|
566 |
-
msgstr "Email отсутствует"
|
567 |
-
|
568 |
-
#: inc/cleantalk-public.php:3388
|
569 |
-
msgid "No IP"
|
570 |
-
msgstr "IP отсутствует"
|
571 |
-
|
572 |
-
#: inc/cleantalk-public.php:3391
|
573 |
-
msgid "Mark as spam"
|
574 |
-
msgstr "Отметить как спам"
|
575 |
-
|
576 |
-
#: inc/cleantalk-public.php:3392
|
577 |
-
msgid "Unspam"
|
578 |
-
msgstr "Вернуть из спама"
|
579 |
-
|
580 |
-
#: inc/cleantalk-public.php:3394
|
581 |
-
msgid "Marked as spam."
|
582 |
-
msgstr "Отмечено как спам."
|
583 |
-
|
584 |
-
#: inc/cleantalk-public.php:3395
|
585 |
-
msgid "Marked as not spam."
|
586 |
-
msgstr "Отмечено как не спам."
|
587 |
-
|
588 |
-
#: inc/cleantalk-settings.php:96
|
589 |
-
msgid "SpamFireWall"
|
590 |
-
msgstr "SpamFireWall"
|
591 |
-
|
592 |
-
#: inc/cleantalk-settings.php:97
|
593 |
-
msgid ""
|
594 |
-
"This option allows to filter spam bots before they access website. Also "
|
595 |
-
"reduces CPU usage on hosting server and accelerates pages load time."
|
596 |
-
msgstr ""
|
597 |
-
"Эта опция позволяет фильтровать спам-ботов прежде, чем они войдут на сайт. "
|
598 |
-
"Также уменьшает загрузку процессора на хостинге и ускоряет время загрузки "
|
599 |
-
"страниц."
|
600 |
-
|
601 |
-
#: inc/cleantalk-settings.php:104
|
602 |
-
msgid "Forms to protect"
|
603 |
-
msgstr "Защищаемые формы"
|
604 |
-
|
605 |
-
#: inc/cleantalk-settings.php:110
|
606 |
-
msgid "Advanced settings"
|
607 |
-
msgstr "Продвинутые настройки"
|
608 |
-
|
609 |
-
#: inc/cleantalk-settings.php:117
|
610 |
-
msgid "Registration Forms"
|
611 |
-
msgstr "Формы регистрации"
|
612 |
-
|
613 |
-
#: inc/cleantalk-settings.php:118
|
614 |
-
msgid "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
615 |
-
msgstr "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
616 |
-
|
617 |
-
#: inc/cleantalk-settings.php:121
|
618 |
-
msgid "Comments form"
|
619 |
-
msgstr "Комментарии в блоге"
|
620 |
-
|
621 |
-
#: inc/cleantalk-settings.php:122
|
622 |
-
msgid "WordPress, JetPack, WooCommerce."
|
623 |
-
msgstr "WordPress, JetPack, WooCommerce."
|
624 |
-
|
625 |
-
#: inc/cleantalk-settings.php:125 inc/cleantalk-settings.php:761
|
626 |
-
msgid "Contact forms"
|
627 |
-
msgstr "Контактные формы"
|
628 |
-
|
629 |
-
#: inc/cleantalk-settings.php:126
|
630 |
-
msgid ""
|
631 |
-
"Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, "
|
632 |
-
"WordPress Landing Pages, Gravity Forms."
|
633 |
-
msgstr ""
|
634 |
-
"Contact Form 7, Formidable Forms, Jetpack, Fast Secure Contact Form, "
|
635 |
-
"WordPress Landing Pages, Gravity Forms."
|
636 |
-
|
637 |
-
#: inc/cleantalk-settings.php:129 inc/cleantalk-settings.php:762
|
638 |
-
msgid "Custom contact forms"
|
639 |
-
msgstr "Произвольные контактные формы"
|
640 |
-
|
641 |
-
#: inc/cleantalk-settings.php:130
|
642 |
-
msgid "Anti spam test for any WordPress themes or contacts forms."
|
643 |
-
msgstr "Защита от спама любой контактной формы или темы."
|
644 |
-
|
645 |
-
#: inc/cleantalk-settings.php:133 inc/cleantalk-settings.php:775
|
646 |
-
msgid "WooCommerce checkout form"
|
647 |
-
msgstr "Форма заказа WooCommerce"
|
648 |
-
|
649 |
-
#: inc/cleantalk-settings.php:134
|
650 |
-
msgid "Anti spam test for WooCommerce checkout form."
|
651 |
-
msgstr "Спам тест для формы заказа WooCommerce"
|
652 |
-
|
653 |
-
#: inc/cleantalk-settings.php:138
|
654 |
-
msgid "Spam test for registration during checkout"
|
655 |
-
msgstr "Регистрация на странице заказа"
|
656 |
-
|
657 |
-
#: inc/cleantalk-settings.php:139
|
658 |
-
msgid ""
|
659 |
-
"Enable anti spam test for registration process which during woocommerce's "
|
660 |
-
"checkout."
|
661 |
-
msgstr ""
|
662 |
-
"Включить защиту от спама в регистрациях, которые проходят во время "
|
663 |
-
"оформления заказа."
|
664 |
-
|
665 |
-
#: inc/cleantalk-settings.php:145
|
666 |
-
msgid "Test default Wordpress search form for spam"
|
667 |
-
msgstr "Стандартная форма поиска Wordpress"
|
668 |
-
|
669 |
-
#: inc/cleantalk-settings.php:146
|
670 |
-
msgid "Spam protection for Search form."
|
671 |
-
msgstr "Защита от спама для Форм поиска."
|
672 |
-
|
673 |
-
#: inc/cleantalk-settings.php:148
|
674 |
-
#, php-format
|
675 |
-
msgid "Read more about %sspam protection for Search form%s on our blog."
|
676 |
-
msgstr "Прочтите о %sспам-защите для Форм поиска%s на нашем блоге."
|
677 |
-
|
678 |
-
#: inc/cleantalk-settings.php:156
|
679 |
-
msgid "Protect external forms"
|
680 |
-
msgstr "Защита внешних форм"
|
681 |
-
|
682 |
-
#: inc/cleantalk-settings.php:157
|
683 |
-
msgid ""
|
684 |
-
"Turn this option on to protect forms on your WordPress that send data to "
|
685 |
-
"third-part servers (like MailChimp)."
|
686 |
-
msgstr ""
|
687 |
-
"Включите эту опцию, что бы защитить формы, которые отсылают данные на "
|
688 |
-
"сторонние ресурсы, например MailChimp."
|
689 |
-
|
690 |
-
#: inc/cleantalk-settings.php:161
|
691 |
-
msgid "Capture buffer"
|
692 |
-
msgstr "Захват буфера"
|
693 |
-
|
694 |
-
#: inc/cleantalk-settings.php:162
|
695 |
-
msgid ""
|
696 |
-
"This setting gives you more sophisticated and strengthened protection for "
|
697 |
-
"external forms. But it could break plugins which use a buffer like Ninja "
|
698 |
-
"Forms."
|
699 |
-
msgstr ""
|
700 |
-
"Этот параметр дает вам более сложную и усиленную защиту для внешних форм. Но "
|
701 |
-
"это может сломать плагины, которые используют буфер, такой как Ninja Forms."
|
702 |
-
|
703 |
-
#: inc/cleantalk-settings.php:167
|
704 |
-
msgid "Protect internal forms"
|
705 |
-
msgstr "Защита внутренних форм"
|
706 |
-
|
707 |
-
#: inc/cleantalk-settings.php:168
|
708 |
-
msgid ""
|
709 |
-
"This option will enable protection for custom (hand-made) AJAX forms with "
|
710 |
-
"PHP scripts handlers on your WordPress."
|
711 |
-
msgstr "Эта опция обеспечит защиту созданных вручную форм, использующих AJAX."
|
712 |
-
|
713 |
-
#: inc/cleantalk-settings.php:175
|
714 |
-
msgid "Comments and Messages"
|
715 |
-
msgstr "Комментарии и сообщения"
|
716 |
-
|
717 |
-
#: inc/cleantalk-settings.php:178
|
718 |
-
msgid "BuddyPress Private Messages"
|
719 |
-
msgstr "Личные сообщения buddyPress"
|
720 |
-
|
721 |
-
#: inc/cleantalk-settings.php:179
|
722 |
-
msgid "Check buddyPress private messages."
|
723 |
-
msgstr "Проверять личные сообщения buddyPress "
|
724 |
-
|
725 |
-
#: inc/cleantalk-settings.php:182
|
726 |
-
msgid "Don't check trusted user's comments"
|
727 |
-
msgstr "Не проверять доверенных пользователей"
|
728 |
-
|
729 |
-
#: inc/cleantalk-settings.php:183
|
730 |
-
#, php-format
|
731 |
-
msgid "Don't check comments for users with above %d comments."
|
732 |
-
msgstr "Не проверять комментарии пользователей с более %d комментариями."
|
733 |
-
|
734 |
-
#: inc/cleantalk-settings.php:186
|
735 |
-
msgid "Automatically delete spam comments"
|
736 |
-
msgstr "Автоматически удалять спам-комментарии"
|
737 |
-
|
738 |
-
#: inc/cleantalk-settings.php:187
|
739 |
-
#, php-format
|
740 |
-
msgid "Delete spam comments older than %d days."
|
741 |
-
msgstr "Удалять комментарии старше %d дней."
|
742 |
-
|
743 |
-
#: inc/cleantalk-settings.php:190
|
744 |
-
msgid "Remove links from approved comments"
|
745 |
-
msgstr "Удалять ссылки из одобреных комментариев"
|
746 |
-
|
747 |
-
#: inc/cleantalk-settings.php:191
|
748 |
-
msgid "Remove links from approved comments. Replace it with \"[Link deleted]\""
|
749 |
-
msgstr "Удалять ссылки из одобренных сообщений"
|
750 |
-
|
751 |
-
#: inc/cleantalk-settings.php:194
|
752 |
-
msgid "Show links to check Emails, IPs for spam."
|
753 |
-
msgstr "Отобразить ссылки для проверки Email'ов и IP адресов."
|
754 |
-
|
755 |
-
#: inc/cleantalk-settings.php:195
|
756 |
-
msgid ""
|
757 |
-
"Shows little icon near IP addresses and Emails allowing you to check it via "
|
758 |
-
"CleanTalk's database. Also allowing you to manage comments from the public "
|
759 |
-
"post's page."
|
760 |
-
msgstr ""
|
761 |
-
"Показывает маленькую иконку около IP и Email'a позволяющую проверить их "
|
762 |
-
"через базу данных. Так же позволяет управлять комментариями с публичной "
|
763 |
-
"страницы записи."
|
764 |
-
|
765 |
-
#: inc/cleantalk-settings.php:203
|
766 |
-
msgid "Data Processing"
|
767 |
-
msgstr "Обработка данных"
|
768 |
-
|
769 |
-
#: inc/cleantalk-settings.php:206
|
770 |
-
msgid "Protect logged in Users"
|
771 |
-
msgstr "Проверять залогиненых пользователей"
|
772 |
-
|
773 |
-
#: inc/cleantalk-settings.php:207
|
774 |
-
msgid ""
|
775 |
-
"Turn this option on to check for spam any submissions (comments, contact "
|
776 |
-
"forms and etc.) from registered Users."
|
777 |
-
msgstr "Включите, чтобы проверять зарегистрированных пользователей."
|
778 |
-
|
779 |
-
#: inc/cleantalk-settings.php:210
|
780 |
-
msgid "Use AJAX for JavaScript check"
|
781 |
-
msgstr "Использовать AJAX для проверки JavaScript"
|
782 |
-
|
783 |
-
#: inc/cleantalk-settings.php:211
|
784 |
-
msgid ""
|
785 |
-
"Options helps protect WordPress against spam with any caching plugins. Turn "
|
786 |
-
"this option on to avoid issues with caching plugins."
|
787 |
-
msgstr "Данная настройка помогает избежать конфликтов с кеширующими плагинами."
|
788 |
-
|
789 |
-
#: inc/cleantalk-settings.php:214
|
790 |
-
msgid "Use static keys for JS check."
|
791 |
-
msgstr "Использовать постоянный (статичный) ключ для проверки JS."
|
792 |
-
|
793 |
-
#: inc/cleantalk-settings.php:215
|
794 |
-
msgid ""
|
795 |
-
"Could help if you have cache for AJAX requests and you are dealing with "
|
796 |
-
"false positives. Slightly decreases protection quality. Auto - Static key "
|
797 |
-
"will be used if caching plugin is spotted."
|
798 |
-
msgstr ""
|
799 |
-
"Может помочь, если у вас кешируются запросы AJAX и вы имеете дело с ложными "
|
800 |
-
"срабатываниями. Немного снижает качество защиты. Статический ключ будет "
|
801 |
-
"использоваться автоматически, если обнаружен плагин кэширования."
|
802 |
-
|
803 |
-
#: inc/cleantalk-settings.php:223
|
804 |
-
msgid "Check all post data"
|
805 |
-
msgstr "Проверять все POST-данные"
|
806 |
-
|
807 |
-
#: inc/cleantalk-settings.php:224
|
808 |
-
msgid ""
|
809 |
-
"Check all POST submissions from website visitors. Enable this option if you "
|
810 |
-
"have spam misses on website."
|
811 |
-
msgstr ""
|
812 |
-
"Проверять все POST-данные, отправляемые посетителями. Активируйте, если у "
|
813 |
-
"вас есть спам на сайте."
|
814 |
-
|
815 |
-
#: inc/cleantalk-settings.php:226
|
816 |
-
msgid " Or you don`t have records about missed spam here:"
|
817 |
-
msgstr " Или у вас нет записей о спаме здесь:"
|
818 |
-
|
819 |
-
#: inc/cleantalk-settings.php:226
|
820 |
-
msgid "CleanTalk dashboard"
|
821 |
-
msgstr "панель управления CleanTalk"
|
822 |
-
|
823 |
-
#: inc/cleantalk-settings.php:229
|
824 |
-
msgid "СAUTION! Option can catch POST requests in WordPress backend"
|
825 |
-
msgstr ""
|
826 |
-
"ВНИМАНИЕ! Опция может перехватывать все POST запросы в панели управления "
|
827 |
-
"Wordpress. Отключите, если возникают проблемы/ошибки."
|
828 |
-
|
829 |
-
#: inc/cleantalk-settings.php:232
|
830 |
-
msgid "Set cookies"
|
831 |
-
msgstr "Устанавливать куки"
|
832 |
-
|
833 |
-
#: inc/cleantalk-settings.php:233
|
834 |
-
msgid ""
|
835 |
-
"Turn this option off to deny plugin generates any cookies on website front-"
|
836 |
-
"end. This option is helpful if you use Varnish. But most of contact forms "
|
837 |
-
"will not be protected if the option is turned off! <b>Warning: We strongly "
|
838 |
-
"recommend you to enable this otherwise it could cause false positives spam "
|
839 |
-
"detection.</b>"
|
840 |
-
msgstr ""
|
841 |
-
"Отключите эту опцию, чтобы запретить плагину создавать любые файлы cookies "
|
842 |
-
"на веб-сайте. Эта опция полезна, если вы используете Varnish. Но большинство "
|
843 |
-
"контактных форм не будут защищены, если опция отключена! <b>ВНИМАНИЕ! Мы "
|
844 |
-
"настоятельно рекомендуем не отключать опцию, иначе это может привести к "
|
845 |
-
"ложному обнаружению спама.</b>"
|
846 |
-
|
847 |
-
#: inc/cleantalk-settings.php:237
|
848 |
-
msgid "Use alternative mechanism for cookies"
|
849 |
-
msgstr "Использовать альтернативный механизм хранения файлов cookie"
|
850 |
-
|
851 |
-
#: inc/cleantalk-settings.php:238 inc/cleantalk-settings.php:360
|
852 |
-
msgid "Doesn't use cookie or PHP sessions. Collect data for all types of bots."
|
853 |
-
msgstr ""
|
854 |
-
"Не использовать файлы cookies или PHP-сессии. Собирать данные обо всех типах "
|
855 |
-
"ботов."
|
856 |
-
|
857 |
-
#: inc/cleantalk-settings.php:243
|
858 |
-
msgid "Use SSL"
|
859 |
-
msgstr "Использовать SSL"
|
860 |
-
|
861 |
-
#: inc/cleantalk-settings.php:244
|
862 |
-
msgid "Turn this option on to use encrypted (SSL) connection with servers."
|
863 |
-
msgstr ""
|
864 |
-
"Включите эту опцию для использования защищенного (SSL) соединения между "
|
865 |
-
"серверами."
|
866 |
-
|
867 |
-
#: inc/cleantalk-settings.php:247
|
868 |
-
msgid "Use Wordpress HTTP API"
|
869 |
-
msgstr "Использовать стандартное Wordpress HTTP API"
|
870 |
-
|
871 |
-
#: inc/cleantalk-settings.php:248
|
872 |
-
msgid ""
|
873 |
-
"Alternative way to connect the Cloud. Use this if you have connection "
|
874 |
-
"problems."
|
875 |
-
msgstr ""
|
876 |
-
"Альтернативный способ подключения к CleanTalk Cloud. Используйте, если вы "
|
877 |
-
"имеете проблемы с подключением."
|
878 |
-
|
879 |
-
#: inc/cleantalk-settings.php:255
|
880 |
-
msgid "Exclusions"
|
881 |
-
msgstr "Исключения"
|
882 |
-
|
883 |
-
#: inc/cleantalk-settings.php:259
|
884 |
-
msgid "URL exclusions"
|
885 |
-
msgstr "Исключения по URL"
|
886 |
-
|
887 |
-
#: inc/cleantalk-settings.php:260
|
888 |
-
msgid "You could type here URL you want to exclude. Use comma as separator."
|
889 |
-
msgstr ""
|
890 |
-
"Вы можете ввести здесь URL, который вы хотите исключить. Используйте запятую "
|
891 |
-
"в качестве разделителя."
|
892 |
-
|
893 |
-
#: inc/cleantalk-settings.php:264
|
894 |
-
msgid "Use Regular Expression in URL Exclusions"
|
895 |
-
msgstr "Использовать регулярное выражение в исключении по URL"
|
896 |
-
|
897 |
-
#: inc/cleantalk-settings.php:268
|
898 |
-
msgid "Field name exclusions"
|
899 |
-
msgstr "Исключение по имени поля"
|
900 |
-
|
901 |
-
#: inc/cleantalk-settings.php:269
|
902 |
-
msgid ""
|
903 |
-
"You could type here fields names you want to exclude. Use comma as separator."
|
904 |
-
msgstr ""
|
905 |
-
"Вы можете ввести здесь имена полей, которые вы хотите исключить. Используйте "
|
906 |
-
"запятую в качестве разделителя."
|
907 |
-
|
908 |
-
#: inc/cleantalk-settings.php:273
|
909 |
-
msgid "Use Regular Expression in Field Exclusions"
|
910 |
-
msgstr "Использовать регулярное выражение в исключении по полю формы."
|
911 |
-
|
912 |
-
#: inc/cleantalk-settings.php:280
|
913 |
-
msgid "Roles which bypass spam test. Hold CTRL to select multiple roles."
|
914 |
-
msgstr ""
|
915 |
-
"Роли, которые обходят проверку на спам. Удерживайте CTRL, чтобы выбрать "
|
916 |
-
"несколько ролей."
|
917 |
-
|
918 |
-
#: inc/cleantalk-settings.php:287
|
919 |
-
msgid "Admin bar"
|
920 |
-
msgstr "Админ-бар"
|
921 |
-
|
922 |
-
#: inc/cleantalk-settings.php:294
|
923 |
-
msgid "Show statistics in admin bar"
|
924 |
-
msgstr "Показывать статистику в админбаре"
|
925 |
-
|
926 |
-
#: inc/cleantalk-settings.php:295
|
927 |
-
msgid ""
|
928 |
-
"Show/hide icon in top level menu in WordPress backend. The number of "
|
929 |
-
"submissions is being counted for past 24 hours."
|
930 |
-
msgstr ""
|
931 |
-
"Показать/скрыть иконку в админ-баре WordPress. Статистика подсчитывается за "
|
932 |
-
"последние 24 часа."
|
933 |
-
|
934 |
-
#: inc/cleantalk-settings.php:299
|
935 |
-
msgid "Show All-time counter"
|
936 |
-
msgstr "Счетчик за все время"
|
937 |
-
|
938 |
-
#: inc/cleantalk-settings.php:300
|
939 |
-
msgid ""
|
940 |
-
"Display all-time requests counter in the admin bar. Counter displays number "
|
941 |
-
"of requests since plugin installation."
|
942 |
-
msgstr ""
|
943 |
-
"Отображать счетчик запросов за все время в админ-баре. Счетчик показывает "
|
944 |
-
"записи с момента установки."
|
945 |
-
|
946 |
-
#: inc/cleantalk-settings.php:305
|
947 |
-
msgid "Show 24 hours counter"
|
948 |
-
msgstr "24-х часовой счетчик"
|
949 |
-
|
950 |
-
#: inc/cleantalk-settings.php:306
|
951 |
-
msgid ""
|
952 |
-
"Display daily requests counter in the admin bar. Counter displays number of "
|
953 |
-
"requests of the past 24 hours."
|
954 |
-
msgstr ""
|
955 |
-
"Отображать 24-х часовой счетчик запросов в админ-баре. Отображает запросы за "
|
956 |
-
"последние 24 часа."
|
957 |
-
|
958 |
-
#: inc/cleantalk-settings.php:311
|
959 |
-
msgid "SpamFireWall counter"
|
960 |
-
msgstr "Счетчик SpamFireWall"
|
961 |
-
|
962 |
-
#: inc/cleantalk-settings.php:312
|
963 |
-
msgid ""
|
964 |
-
"Display SpamFireWall requests in the admin bar. Counter displays number of "
|
965 |
-
"requests since plugin installation."
|
966 |
-
msgstr ""
|
967 |
-
"Отображать счетчик SpamFireWall запросов в админ-баре. Отображает количество "
|
968 |
-
"запросов с момента установки плагина."
|
969 |
-
|
970 |
-
#: inc/cleantalk-settings.php:325
|
971 |
-
msgid "Collect details about browsers"
|
972 |
-
msgstr "Собирать данные браузера"
|
973 |
-
|
974 |
-
#: inc/cleantalk-settings.php:326
|
975 |
-
msgid ""
|
976 |
-
"Checking this box you allow plugin store information about screen size and "
|
977 |
-
"browser plugins of website visitors. The option in a beta state."
|
978 |
-
msgstr ""
|
979 |
-
"Включая эту опцию, Вы разрешаете плагину хранить информацию о размере экрана "
|
980 |
-
"и плагинах браузера посетителей. Бета опция."
|
981 |
-
|
982 |
-
#: inc/cleantalk-settings.php:330
|
983 |
-
msgid "Send connection reports"
|
984 |
-
msgstr "Отправлять отчеты о соединении"
|
985 |
-
|
986 |
-
#: inc/cleantalk-settings.php:331
|
987 |
-
msgid ""
|
988 |
-
"Checking this box you allow plugin to send the information about your "
|
989 |
-
"connection. The option in a beta state."
|
990 |
-
msgstr ""
|
991 |
-
"Ставя эту галочку вы разрешаете плагину отрпавлять информацию о интернет-"
|
992 |
-
"соединении. Опция находится на бета-тестировании."
|
993 |
-
|
994 |
-
#: inc/cleantalk-settings.php:335
|
995 |
-
msgid "Async JavaScript loading"
|
996 |
-
msgstr "Асинхронная загрузка JavaScript"
|
997 |
-
|
998 |
-
#: inc/cleantalk-settings.php:336
|
999 |
-
msgid ""
|
1000 |
-
"Use async loading for scripts. Warning: This could reduce filtration quality."
|
1001 |
-
msgstr ""
|
1002 |
-
"Использовать асинхронную загрузку JS-скриптов. ВНИМАНИЕ! это может понизить "
|
1003 |
-
"качество спам-фильтра."
|
1004 |
-
|
1005 |
-
#: inc/cleantalk-settings.php:340
|
1006 |
-
msgid "Allow to add GDPR notice via shortcode"
|
1007 |
-
msgstr "Разрешить добавление GDPR-уведомления с помощью шордкода"
|
1008 |
-
|
1009 |
-
#: inc/cleantalk-settings.php:341
|
1010 |
-
msgid ""
|
1011 |
-
" Adds small checkbox under your website form. To add it you should use the "
|
1012 |
-
"shortcode on the form's page: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
1013 |
-
msgstr ""
|
1014 |
-
"Добавить не большой чекбокс в форму. Для добавления уведомления вставьте на "
|
1015 |
-
"странице с формой этот шорткод: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
1016 |
-
|
1017 |
-
#: inc/cleantalk-settings.php:346
|
1018 |
-
msgid "GDPR text notice"
|
1019 |
-
msgstr "Текст GDPR-уведомления"
|
1020 |
-
|
1021 |
-
#: inc/cleantalk-settings.php:347
|
1022 |
-
msgid "This text will be added as a description to the GDPR checkbox."
|
1023 |
-
msgstr "Этот текст будет добавлен к чекбоксу как описание."
|
1024 |
-
|
1025 |
-
#: inc/cleantalk-settings.php:353
|
1026 |
-
msgid "Store visited URLs"
|
1027 |
-
msgstr "Хранить посещенные URL-ы"
|
1028 |
-
|
1029 |
-
#: inc/cleantalk-settings.php:354
|
1030 |
-
msgid ""
|
1031 |
-
"Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits "
|
1032 |
-
"form on the site. You can see stored visited URLS for each visitor in your "
|
1033 |
-
"Dashboard. Turn the option on to improve Anti-Spam protection."
|
1034 |
-
msgstr ""
|
1035 |
-
"Плагин хранит последние 10 посещенных URL (HTTP REFFERERS) до того, как "
|
1036 |
-
"посетитель отправит форму на сайт. Вы можете видеть сохраненные посещенные "
|
1037 |
-
"URL-адреса для каждого посетителя на своей панели инструментов. Включите эту "
|
1038 |
-
"опцию, чтобы улучшить защиту от спама."
|
1039 |
-
|
1040 |
-
#: inc/cleantalk-settings.php:359
|
1041 |
-
msgid "Use cookies less sessions"
|
1042 |
-
msgstr "Использовать сеансы без cookies"
|
1043 |
-
|
1044 |
-
#: inc/cleantalk-settings.php:366
|
1045 |
-
msgid ""
|
1046 |
-
"Notify users with selected roles about new approved comments. Hold CTRL to "
|
1047 |
-
"select multiple roles."
|
1048 |
-
msgstr ""
|
1049 |
-
"Уведомлять пользователей с выбранными ролями о новых одобренных комментариях."
|
1050 |
-
" Удерживайте CTRL для выбора нескольких ролей."
|
1051 |
-
|
1052 |
-
#: inc/cleantalk-settings.php:367
|
1053 |
-
#, php-format
|
1054 |
-
msgid "If enabled, overrides similar Wordpress %sdiscussion settings%s."
|
1055 |
-
msgstr "Если включено, переопределяет аналогичные %sнастройки Wordpress%s."
|
1056 |
-
|
1057 |
-
#: inc/cleantalk-settings.php:380
|
1058 |
-
msgid "Complete deactivation"
|
1059 |
-
msgstr "Полная деактивация"
|
1060 |
-
|
1061 |
-
#: inc/cleantalk-settings.php:381
|
1062 |
-
msgid "Leave no trace in the system after deactivation."
|
1063 |
-
msgstr "Не оставлять следов в системе после деактивации."
|
1064 |
-
|
1065 |
-
#: inc/cleantalk-settings.php:398
|
1066 |
-
msgid "Enable White Label Mode"
|
1067 |
-
msgstr "Активировать White Label Mode."
|
1068 |
-
|
1069 |
-
#: inc/cleantalk-settings.php:399
|
1070 |
-
#, php-format
|
1071 |
-
msgid "Learn more information %shere%s."
|
1072 |
-
msgstr "Узнать больше информации %sздесь%s"
|
1073 |
-
|
1074 |
-
#: inc/cleantalk-settings.php:404
|
1075 |
-
msgid "Hoster API Key"
|
1076 |
-
msgstr "Хостинг API ключ"
|
1077 |
-
|
1078 |
-
#: inc/cleantalk-settings.php:405
|
1079 |
-
#, php-format
|
1080 |
-
msgid "You can get it in %sCleantalk's Control Panel%s"
|
1081 |
-
msgstr "Вы можете получить ключ в вашей %sпанели управления CleanTalk%s"
|
1082 |
-
|
1083 |
-
#: inc/cleantalk-settings.php:413
|
1084 |
-
msgid "Plugin name"
|
1085 |
-
msgstr "Наименование плагина"
|
1086 |
-
|
1087 |
-
#: inc/cleantalk-settings.php:414
|
1088 |
-
#, php-format
|
1089 |
-
msgid "Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s"
|
1090 |
-
msgstr ""
|
1091 |
-
"Укажите название плагина. Оставьте пустым для названия по умолчанию "
|
1092 |
-
"%sAntispam by Cleantalk%s"
|
1093 |
-
|
1094 |
-
#: inc/cleantalk-settings.php:423
|
1095 |
-
msgid "Allow users to use other key"
|
1096 |
-
msgstr "Позволяет пользователям использовать другой ключ."
|
1097 |
-
|
1098 |
-
#: inc/cleantalk-settings.php:424
|
1099 |
-
msgid ""
|
1100 |
-
"Allow users to use different Access key in their plugin settings on child "
|
1101 |
-
"blogs. They could use different CleanTalk account."
|
1102 |
-
msgstr ""
|
1103 |
-
"Позволяет пользователям использовать разные Ключи доступа в настройках "
|
1104 |
-
"плагина на их дочерних блогах. Они могут использовать разные аккаунты "
|
1105 |
-
"CleanTalk."
|
1106 |
-
|
1107 |
-
#: inc/cleantalk-settings.php:427
|
1108 |
-
msgid ""
|
1109 |
-
"Constant <b>CLEANTALK_ACCESS_KEY</b> is set. All websites will use API key "
|
1110 |
-
"from this constant. Look into wp-config.php"
|
1111 |
-
msgstr ""
|
1112 |
-
"Константа <b>CLEANTALK_ACCESS_KEY</b> установлена. Все дочерние сайты будут "
|
1113 |
-
"использовать ключ доступа из этой контсанты. Смотри в wp-config.php"
|
1114 |
-
|
1115 |
-
#: inc/cleantalk-settings.php:533
|
1116 |
-
msgid "CleanTalk's tech support:"
|
1117 |
-
msgstr "Техническия поддержка CleanTalk: "
|
1118 |
-
|
1119 |
-
#: inc/cleantalk-settings.php:539
|
1120 |
-
msgid "Plugin Homepage at"
|
1121 |
-
msgstr "Домашняя страница плагина на"
|
1122 |
-
|
1123 |
-
#: inc/cleantalk-settings.php:540
|
1124 |
-
msgid "GDPR compliance"
|
1125 |
-
msgstr "Соответствие GDPR"
|
1126 |
-
|
1127 |
-
#: inc/cleantalk-settings.php:541
|
1128 |
-
msgid "Use s@cleantalk.org to test plugin in any WordPress form."
|
1129 |
-
msgstr ""
|
1130 |
-
"Используйте s@cleantalk.org чтобы проверить плагин в любой форме в WordPress."
|
1131 |
-
|
1132 |
-
#: inc/cleantalk-settings.php:542
|
1133 |
-
msgid "CleanTalk is registered Trademark. All rights reserved."
|
1134 |
-
msgstr "CleanTalk - это зарегистрированая торговая марка. Все права защищены."
|
1135 |
-
|
1136 |
-
#: inc/cleantalk-settings.php:559
|
1137 |
-
#, php-format
|
1138 |
-
msgid "%s has blocked <b>%s</b> spam."
|
1139 |
-
msgstr "%s заблокировал <b>%s</b> спама."
|
1140 |
-
|
1141 |
-
#: inc/cleantalk-settings.php:571
|
1142 |
-
msgid "Click here to get anti-spam statistics"
|
1143 |
-
msgstr "Щелкните, чтобы получить статистику"
|
1144 |
-
|
1145 |
-
#: inc/cleantalk-settings.php:614
|
1146 |
-
#, php-format
|
1147 |
-
msgid "Please, enter the %splugin settings%s in main site dashboard."
|
1148 |
-
msgstr ""
|
1149 |
-
"Пожалуйста, перейдите в %sнастройки плагина%s в панели управления на главном "
|
1150 |
-
"сайте."
|
1151 |
-
|
1152 |
-
#: inc/cleantalk-settings.php:633
|
1153 |
-
msgid "Error
|
1154 |
-
msgstr "Произошла ошибка при проверке ключа API. Ошибка: "
|
1155 |
-
|
1156 |
-
#: inc/cleantalk-settings.php:634
|
1157 |
-
msgid "Error
|
1158 |
-
msgstr "Произошла ошибка при автоматическом получении ключа доступа. Ошибка: "
|
1159 |
-
|
1160 |
-
#: inc/cleantalk-settings.php:635
|
1161 |
-
msgid "Error
|
1162 |
-
msgstr "Произошла ошибка при отправке логов Spam FireWall. Ошибка: "
|
1163 |
-
|
1164 |
-
#: inc/cleantalk-settings.php:636
|
1165 |
-
msgid "Error
|
1166 |
-
msgstr "Произошла ошибка при обновлении локальной базы Spam FireWall. Ошибка: "
|
1167 |
-
|
1168 |
-
#: inc/cleantalk-settings.php:637
|
1169 |
-
msgid "Error
|
1170 |
-
msgstr "Произошла ошибка при проверке статуса аккаунта. Ошибка: "
|
1171 |
-
|
1172 |
-
#: inc/cleantalk-settings.php:638
|
1173 |
-
msgid "Error
|
1174 |
-
msgstr "Произошла ошибка при выполнении вызова API. Ошибка: "
|
1175 |
-
|
1176 |
-
#: inc/cleantalk-settings.php:646
|
1177 |
-
msgid "Unknown error. Error: "
|
1178 |
-
msgstr "Неизвестная ошибка. Ошибка: "
|
1179 |
-
|
1180 |
-
#: inc/cleantalk-settings.php:677
|
1181 |
-
msgid "Errors:"
|
1182 |
-
msgstr "Ошибки: "
|
1183 |
-
|
1184 |
-
#: inc/cleantalk-settings.php:682
|
1185 |
-
#, php-format
|
1186 |
-
msgid "You can get support any time here: %s."
|
1187 |
-
msgstr "Вы всегда можете получить техническую поддержку здесь: %s."
|
1188 |
-
|
1189 |
-
#: inc/cleantalk-settings.php:757
|
1190 |
-
msgid "Protection is active"
|
1191 |
-
msgstr "Защита включена"
|
1192 |
-
|
1193 |
-
#: inc/cleantalk-settings.php:759
|
1194 |
-
msgid "Registration forms"
|
1195 |
-
msgstr "Регистрации пользователей"
|
1196 |
-
|
1197 |
-
#: inc/cleantalk-settings.php:760
|
1198 |
-
msgid "Comments forms"
|
1199 |
-
msgstr "Формы комментариев"
|
1200 |
-
|
1201 |
-
#: inc/cleantalk-settings.php:765
|
1202 |
-
msgid "Validate email for existence"
|
1203 |
-
msgstr "Проверка e-mail на существование"
|
1204 |
-
|
1205 |
-
#: inc/cleantalk-settings.php:769
|
1206 |
-
msgid "Auto update"
|
1207 |
-
msgstr "Автообновлние"
|
1208 |
-
|
1209 |
-
#: inc/cleantalk-settings.php:793
|
1210 |
-
msgid "<h3>Key is provided by Super Admin.</h3>"
|
1211 |
-
msgstr "<h3>Ключ доступа предоставлен Супер Администратором.</h3>"
|
1212 |
-
|
1213 |
-
#: inc/cleantalk-settings.php:797
|
1214 |
-
msgid "Access key"
|
1215 |
-
msgstr "Ключ доступа"
|
1216 |
-
|
1217 |
-
#: inc/cleantalk-settings.php:812
|
1218 |
-
msgid "Enter the key"
|
1219 |
-
msgstr "Введите ключ"
|
1220 |
-
|
1221 |
-
#: inc/cleantalk-settings.php:818
|
1222 |
-
#, php-format
|
1223 |
-
msgid "Account at cleantalk.org is %s."
|
1224 |
-
msgstr "Аккаунт на cleantalk.org %s."
|
1225 |
-
|
1226 |
-
#: inc/cleantalk-settings.php:827
|
1227 |
-
msgid "Show the access key"
|
1228 |
-
msgstr "Показать ключ доступа"
|
1229 |
-
|
1230 |
-
#: inc/cleantalk-settings.php:838
|
1231 |
-
msgid "Get Access Key Automatically"
|
1232 |
-
msgstr "Получить ключ доступа автоматически"
|
1233 |
-
|
1234 |
-
#: inc/cleantalk-settings.php:846
|
1235 |
-
#, php-format
|
1236 |
-
msgid ""
|
1237 |
-
"Admin e-mail (%s) will be used for registration, if you want to use other "
|
1238 |
-
"email please %sGet Access Key Manually%s."
|
1239 |
-
msgstr ""
|
1240 |
-
"E-mail администратора (%s) будет использован для регистрации. Если вы хотите "
|
1241 |
-
"использовать другой e-mail, пожлуйста, %sполучите ключ доступа "
|
1242 |
-
"самостоятельно%s."
|
1243 |
-
|
1244 |
-
#: inc/cleantalk-settings.php:862
|
1245 |
-
#, php-format
|
1246 |
-
msgid "I accept %sLicense Agreement%s."
|
1247 |
-
msgstr "Я принимаю %sЛицензионно Соглашение%s."
|
1248 |
-
|
1249 |
-
#: inc/cleantalk-settings.php:888
|
1250 |
-
msgid "Statistics & Reports"
|
1251 |
-
msgstr "Статистика и отчеты"
|
1252 |
-
|
1253 |
-
#: inc/cleantalk-settings.php:904
|
1254 |
-
#, php-format
|
1255 |
-
msgid "Last spam check request to %s server was at %s."
|
1256 |
-
msgstr "Последний запрос проверки спама на сервере %s был произведен %s."
|
1257 |
-
|
1258 |
-
#: inc/cleantalk-settings.php:905 inc/cleantalk-settings.php:906
|
1259 |
-
#: inc/cleantalk-settings.php:915 inc/cleantalk-settings.php:922
|
1260 |
-
#: inc/cleantalk-settings.php:923 inc/cleantalk-settings.php:931
|
1261 |
-
#: inc/cleantalk-settings.php:932 inc/cleantalk-settings.php:939
|
1262 |
-
#: inc/cleantalk-settings.php:940
|
1263 |
-
msgid "unknown"
|
1264 |
-
msgstr "неизвестно"
|
1265 |
-
|
1266 |
-
#: inc/cleantalk-settings.php:912
|
1267 |
-
#, php-format
|
1268 |
-
msgid "Average request time for past 7 days: %s seconds."
|
1269 |
-
msgstr "Среднее время запроса за последние 7 дней: %s секунд."
|
1270 |
-
|
1271 |
-
#: inc/cleantalk-settings.php:921
|
1272 |
-
#, php-format
|
1273 |
-
msgid "Last time SpamFireWall was triggered for %s IP at %s"
|
1274 |
-
msgstr "В последний раз SpamFireWall сработал на %s IP %s"
|
1275 |
-
|
1276 |
-
#: inc/cleantalk-settings.php:930
|
1277 |
-
#, php-format
|
1278 |
-
msgid "SpamFireWall was updated %s. Now contains %s entries."
|
1279 |
-
msgstr "SpamFireWall был обновлен %s. Содержится %s записей."
|
1280 |
-
|
1281 |
-
#: inc/cleantalk-settings.php:938
|
1282 |
-
#, php-format
|
1283 |
-
msgid "SpamFireWall sent %s events at %s."
|
1284 |
-
msgstr "SpamFireWall отправил %s событий %s."
|
1285 |
-
|
1286 |
-
#: inc/cleantalk-settings.php:948
|
1287 |
-
msgid "There are no failed connections to server."
|
1288 |
-
msgstr "Проблем с подключением к серверу нет."
|
1289 |
-
|
1290 |
-
#: inc/cleantalk-settings.php:975
|
1291 |
-
msgid "Send report"
|
1292 |
-
msgstr "Отправить отчет"
|
1293 |
-
|
1294 |
-
#: inc/cleantalk-settings.php:979
|
1295 |
-
msgid ""
|
1296 |
-
"Please, enable \"Send connection reports\" setting to be able to send reports"
|
1297 |
-
msgstr ""
|
1298 |
-
"Пожалуйста, активируйте опцию \"Отправлять отчеты о соединении\" для "
|
1299 |
-
"возможности отправлять отчеты."
|
1300 |
-
|
1301 |
-
#: inc/cleantalk-settings.php:1327
|
1302 |
-
msgid "Testing is failed. Please check the Access key."
|
1303 |
-
msgstr "Ошибка тестирования. Пожалуйста, проверьте ключ доступа."
|
1304 |
-
|
1305 |
-
#: inc/cleantalk-settings.php:1442
|
1306 |
-
msgid "XSS check"
|
1307 |
-
msgstr "Проверка XSS уязвимости"
|
1308 |
-
|
1309 |
-
#: inc/cleantalk-settings.php:1443
|
1310 |
-
msgid ""
|
1311 |
-
"Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to "
|
1312 |
-
"any user. As a result malicious scripts can not get access to the cookie "
|
1313 |
-
"files, session tokens and any other confidential information browsers use "
|
1314 |
-
"and store. Such scripts can even overwrite content of HTML pages. CleanTalk "
|
1315 |
-
"WAF monitors for patterns of these parameters and block them."
|
1316 |
-
msgstr ""
|
1317 |
-
"Межсайтовый скриптинг (XSS) - предотвращает выполнение / отправку "
|
1318 |
-
"вредоносного кода любому пользователю. В результате вредоносные сценарии не "
|
1319 |
-
"могут получить доступ к файлам cookie, токенам сеансов и любой другой "
|
1320 |
-
"конфиденциальной информации, которую используют и хранят браузеры. Такие "
|
1321 |
-
"сценарии могут даже перезаписывать содержимое HTML-страниц. CleanTalk WAF "
|
1322 |
-
"отслеживает шаблоны этих параметров и блокирует их."
|
1323 |
-
|
1324 |
-
#: inc/cleantalk-settings.php:1446
|
1325 |
-
msgid "SQL-injection check"
|
1326 |
-
msgstr "Проверка на наличие SQL-injection"
|
1327 |
-
|
1328 |
-
#: inc/cleantalk-settings.php:1447
|
1329 |
-
msgid ""
|
1330 |
-
"SQL Injection — one of the most popular ways to hack websites and programs "
|
1331 |
-
"that work with databases. It is based on injection of a custom SQL code into "
|
1332 |
-
"database queries. It could transmit data through GET, POST requests or "
|
1333 |
-
"cookie files in an SQL code. If a website is vulnerable and execute such "
|
1334 |
-
"injections then it would allow attackers to apply changes to the website's "
|
1335 |
-
"MySQL database."
|
1336 |
-
msgstr ""
|
1337 |
-
"SQL-инъекция - один из самых популярных способов взлома сайтов и программ, "
|
1338 |
-
"работающих с базами данных. Он основан на внедрении пользовательского кода "
|
1339 |
-
"SQL в запросы к базе данных. Он может передавать данные через запросы GET, "
|
1340 |
-
"POST или файлы cookie в коде SQL. Если веб-сайт уязвим и выполняет такие "
|
1341 |
-
"инъекции, это позволит злоумышленникам применить изменения к базе данных "
|
1342 |
-
"MySQL веб-сайта."
|
1343 |
-
|
1344 |
-
#: inc/cleantalk-settings.php:1450
|
1345 |
-
msgid "Check uploaded files"
|
1346 |
-
msgstr "Проверка загруженных файлов"
|
1347 |
-
|
1348 |
-
#: inc/cleantalk-settings.php:1451
|
1349 |
-
msgid ""
|
1350 |
-
"The option checks each uploaded file to a website for malicious code. If "
|
1351 |
-
"it's possible for visitors to upload files to a website, for instance a work "
|
1352 |
-
"resume, then attackers could abuse it and upload an infected file to execute "
|
1353 |
-
"it later and get access to your website."
|
1354 |
-
msgstr ""
|
1355 |
-
"Опция проверяет каждый загруженный файл на веб-сайт на наличие вредоносного "
|
1356 |
-
"кода. Если посетители могут загружать на сайт файлы, например, резюме, то "
|
1357 |
-
"злоумышленники могут злоупотреблять им и загружать зараженный файл, чтобы "
|
1358 |
-
"выполнить его позднее и получить доступ к вашему сайту."
|
1359 |
-
|
1360 |
-
#: inc/cleantalk-users.php:15
|
1361 |
-
msgid "Find spam users"
|
1362 |
-
msgstr "Найти спам-пользователей"
|
1363 |
-
|
1364 |
-
#: inc/cleantalk-users.php:67
|
1365 |
-
msgid "Please wait for a while. CleanTalk is deleting spam users. Users left: "
|
1366 |
-
msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-пользователей. Осталось:"
|
1367 |
-
|
1368 |
-
#: inc/cleantalk-users.php:79
|
1369 |
-
msgid ""
|
1370 |
-
"The plugin will check all users against blacklists database and show you "
|
1371 |
-
"senders that have spam activity on other websites."
|
1372 |
-
msgstr ""
|
1373 |
-
"Плагин проверит всех пользователей по базе данных чёрных списков и покажет "
|
1374 |
-
"отправителей, которые занимаются спамом на других сайтах."
|
1375 |
-
|
1376 |
-
#: inc/cleantalk-users.php:84
|
1377 |
-
msgid ""
|
1378 |
-
"Allows to use user's dates to perform more accurate check. Could seriously "
|
1379 |
-
"slow down the check."
|
1380 |
-
msgstr ""
|
1381 |
-
"Позволяет использовать даты пользователей для выполения более тщательной "
|
1382 |
-
"проверки. Может серьезно замедлить проверку."
|
1383 |
-
|
1384 |
-
#: inc/cleantalk-users.php:108
|
1385 |
-
msgid ""
|
1386 |
-
"Please wait for a while. CleanTalk is checking all users via blacklist "
|
1387 |
-
"database at cleantalk.org. You will have option to delete found spam users "
|
1388 |
-
"after plugin finish."
|
1389 |
-
msgstr ""
|
1390 |
-
"Пожалуйста, подождите. ClenTalk проверяет всех пользователей по чёрным "
|
1391 |
-
"спискам на cleantalk.org. У вас появится возможность удалить обнаруженных "
|
1392 |
-
"спам-пользователей как только плагин закончит."
|
1393 |
-
|
1394 |
-
#: inc/cleantalk-users.php:267
|
1395 |
-
msgid "Delete all users from list"
|
1396 |
-
msgstr "Удалить всех пользователей в списке"
|
1397 |
-
|
1398 |
-
#: inc/cleantalk-users.php:269
|
1399 |
-
msgid "Download results in CSV"
|
1400 |
-
msgstr "Загрузить результаты (CSV)"
|
1401 |
-
|
1402 |
-
#: inc/cleantalk-users.php:273
|
1403 |
-
msgid "Insert accounts"
|
1404 |
-
msgstr "Добавить аккаунты"
|
1405 |
-
|
1406 |
-
#: inc/cleantalk-users.php:274
|
1407 |
-
msgid "Delete accounts"
|
1408 |
-
msgstr "Удалить тестовые спам-аккаунты"
|
1409 |
-
|
1410 |
-
#: inc/cleantalk-users.php:527
|
1411 |
-
#, php-format
|
1412 |
-
msgid ""
|
1413 |
-
"Total users %s, checked %s, last check %s, found %s spam users and %s bad "
|
1414 |
-
"users (without IP or email)"
|
1415 |
-
msgstr ""
|
1416 |
-
"Всего пользователей %s, проверено %s, последняя проверка %s, найдено %s спам-"
|
1417 |
-
"пользователей и %s плохих пользователей (без IP или электронной почты)"
|
1418 |
-
|
1419 |
-
#: inc/cleantalk-widget.php:22
|
1420 |
-
msgid "CleanTalk Widget"
|
1421 |
-
msgstr "Виджет CleanTalk"
|
1422 |
-
|
1423 |
-
#: inc/cleantalk-widget.php:25
|
1424 |
-
msgid "CleanTalk widget"
|
1425 |
-
msgstr "виджет CleanTalk"
|
1426 |
-
|
1427 |
-
#: inc/cleantalk-widget.php:72
|
1428 |
-
msgid "CleanTalk's main page"
|
1429 |
-
msgstr "Главная страница CleanTalk"
|
1430 |
-
|
1431 |
-
#: inc/cleantalk-widget.php:73
|
1432 |
-
msgid "spam"
|
1433 |
-
msgstr "спама"
|
1434 |
-
|
1435 |
-
#: inc/cleantalk-widget.php:73
|
1436 |
-
msgid "blocked by"
|
1437 |
-
msgstr "заблокировано"
|
1438 |
-
|
1439 |
-
#: inc/cleantalk-widget.php:85
|
1440 |
-
msgid "Spam blocked"
|
1441 |
-
msgstr "Спама заблокировано"
|
1442 |
-
|
1443 |
-
#: inc/cleantalk-widget.php:90
|
1444 |
-
msgid "Title:"
|
1445 |
-
msgstr "Заголовок:"
|
1446 |
-
|
1447 |
-
#: inc/cleantalk-widget.php:95
|
1448 |
-
msgid "Style:"
|
1449 |
-
msgstr "Стиль:"
|
1450 |
-
|
1451 |
-
#: inc/cleantalk-widget.php:97
|
1452 |
-
msgid "CleanTalk's Style"
|
1453 |
-
msgstr "Фирменный стиль CleanTalk"
|
1454 |
-
|
1455 |
-
#: inc/cleantalk-widget.php:98
|
1456 |
-
msgid "Light"
|
1457 |
-
msgstr "Лёгкий"
|
1458 |
-
|
1459 |
-
#: inc/cleantalk-widget.php:99
|
1460 |
-
msgid "Extremely Light"
|
1461 |
-
msgstr "Очень легкий"
|
1462 |
-
|
1463 |
-
#: inc/cleantalk-widget.php:100
|
1464 |
-
msgid "Dark"
|
1465 |
-
msgstr "Темный"
|
1466 |
-
|
1467 |
-
#: inc/cleantalk-widget.php:105
|
1468 |
-
msgid "Referal link ID:"
|
1469 |
-
msgstr "ID партнера:"
|
1470 |
-
|
1471 |
-
#: lib/CleantalkSFW.php:71
|
1472 |
-
msgid "SpamFireWall is activated for your IP "
|
1473 |
-
msgstr "Спам Фаервол заблокировал ваш IP"
|
1474 |
-
|
1475 |
-
#: lib/CleantalkSFW.php:72
|
1476 |
-
msgid ""
|
1477 |
-
"To continue working with web site, please make sure that you have enabled "
|
1478 |
-
"JavaScript."
|
1479 |
-
msgstr ""
|
1480 |
-
"Что бы продолжить работу с сайтом, пожалуйста, убедитесь что у вас включен "
|
1481 |
-
"JavaScript."
|
1482 |
-
|
1483 |
-
#: lib/CleantalkSFW.php:73
|
1484 |
-
msgid "Please click below to pass protection,"
|
1485 |
-
msgstr "Пожалуйста, нажмите, чтобы пройти защиту,"
|
1486 |
-
|
1487 |
-
#: lib/CleantalkSFW.php:74
|
1488 |
-
#, php-format
|
1489 |
-
msgid ""
|
1490 |
-
"Or you will be automatically redirected to the requested page after %d "
|
1491 |
-
"seconds."
|
1492 |
-
msgstr ""
|
1493 |
-
"Или вы будете автоматически переадресованы на запрашиваемую страницу через "
|
1494 |
-
"%d секунд."
|
1495 |
-
|
1496 |
-
#: lib/CleantalkSFW.php:75
|
1497 |
-
msgid "Antispam by CleanTalk"
|
1498 |
-
msgstr "Антиспам от CleanTalk"
|
1499 |
-
|
1500 |
-
#: lib/CleantalkSFW.php:76
|
1501 |
-
msgid "This is the testing page for SpamFireWall"
|
1502 |
-
msgstr "Это тестовая страница SpamFireWall"
|
1503 |
-
|
1504 |
-
#: templates/translate_banner.php:6
|
1505 |
-
msgid "Help others use the plugin in your language."
|
1506 |
-
msgstr "Помогите другим пользователям использовать плагин на их языке."
|
1507 |
-
|
1508 |
-
#: templates/translate_banner.php:7
|
1509 |
-
msgid ""
|
1510 |
-
"We ask you to help with the translation of the plugin in your language. "
|
1511 |
-
"Please take a few minutes to make the plugin more comfortable."
|
1512 |
-
msgstr ""
|
1513 |
-
"Мы просим Вас помочь с переводом плагина на ваш язык. Пожалуйста, потратьте "
|
1514 |
-
"несколько минут, чтобы сделать плагин более удобным."
|
1515 |
-
|
1516 |
-
#: templates/translate_banner.php:10
|
1517 |
-
msgid "TRANSLATE"
|
1518 |
-
msgstr "ПЕРЕВЕСТИ"
|
1519 |
-
|
1520 |
-
#. Description of the plugin/theme
|
1521 |
-
msgid ""
|
1522 |
-
"Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam,"
|
1523 |
-
" no registration spam, no contact spam, protects any WordPress forms."
|
1524 |
-
msgstr ""
|
1525 |
-
"Максимальная эффективность, проверка всех форм, без Сaptcha, премиум "
|
1526 |
-
"антиспам плагин. Нет спаму в комментариях, нет спаму в регистрациях, нету "
|
1527 |
-
"спаму в контактных формах, защита любых форм в WordPress."
|
1528 |
-
|
1529 |
-
#. Plugin URI of the plugin/theme
|
1530 |
-
#. Author URI of the plugin/theme
|
1531 |
-
msgid "http://cleantalk.org"
|
1532 |
-
msgstr "http://cleantalk.org"
|
1533 |
-
|
1534 |
-
#. Author of the plugin/theme
|
1535 |
-
msgid "СleanTalk <welcome@cleantalk.org>"
|
1536 |
-
msgstr "СleanTalk <welcome@cleantalk.org>"
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: Anti-Spam by CleanTalk\n"
|
4 |
+
"POT-Creation-Date: 2019-10-27 16:02+0000\n"
|
5 |
+
"PO-Revision-Date: 2020-01-20 15:11+0000\n"
|
6 |
+
"Last-Translator: admin <ievlev@cleantalk.org>\n"
|
7 |
+
"Language-Team: Русский\n"
|
8 |
+
"Language: ru_RU\n"
|
9 |
+
"MIME-Version: 1.0\n"
|
10 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
11 |
+
"Content-Transfer-Encoding: 8bit\n"
|
12 |
+
"X-Generator: Loco https://localise.biz/\n"
|
13 |
+
"X-Poedit-Basepath: ..\n"
|
14 |
+
"X-Poedit-WPHeader: cleantalk.php\n"
|
15 |
+
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
|
16 |
+
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
17 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
18 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
19 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
20 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
21 |
+
"Report-Msgid-Bugs-To: \n"
|
22 |
+
"X-Loco-Version: 2.3.1; wp-5.3.2\n"
|
23 |
+
"X-Poedit-SearchPath-0: .\n"
|
24 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
25 |
+
|
26 |
+
#: inc/classCleantalkComments.php:32 inc/cleantalk-comments.php:16
|
27 |
+
#: inc/cleantalk-users.php:15
|
28 |
+
msgid "Check for spam"
|
29 |
+
msgstr "Проверить на спам"
|
30 |
+
|
31 |
+
#: inc/classCleantalkComments.php:33 inc/cleantalk-admin.php:350
|
32 |
+
#: inc/cleantalk-comments.php:16
|
33 |
+
msgid "Find spam comments"
|
34 |
+
msgstr "Найти спам в комментариях"
|
35 |
+
|
36 |
+
#: inc/classCleantalkComments.php:66 inc/cleantalk-comments.php:26
|
37 |
+
#: inc/cleantalk-users.php:25
|
38 |
+
msgid "Plugin Settings"
|
39 |
+
msgstr "Настройки плагина"
|
40 |
+
|
41 |
+
#: inc/classCleantalkComments.php:76 inc/cleantalk-comments.php:35
|
42 |
+
#: inc/cleantalk-users.php:34
|
43 |
+
#, php-format
|
44 |
+
msgid ""
|
45 |
+
"Antispam hosting tariff does not allow you to use this feature. To do so, "
|
46 |
+
"you need to enter an Access Key in the %splugin settings%s."
|
47 |
+
msgstr ""
|
48 |
+
"Тариф на антиспам хостинг не позволяет использовать эту функцию. Для этого "
|
49 |
+
"вам необходимо ввести ключ доступа в %sнастройках плагина%s."
|
50 |
+
|
51 |
+
#: inc/classCleantalkComments.php:101 inc/cleantalk-comments.php:60
|
52 |
+
#: inc/cleantalk-users.php:60
|
53 |
+
msgid ""
|
54 |
+
"Ajax error. Process will be automatically restarted in 3 seconds. Status: "
|
55 |
+
msgstr ""
|
56 |
+
"Ajax ошибка. Процесс проверки будет автоматически возобновлен через 3 "
|
57 |
+
"секунды. Статус:"
|
58 |
+
|
59 |
+
#: inc/classCleantalkComments.php:108 inc/cleantalk-comments.php:67
|
60 |
+
msgid ""
|
61 |
+
"Please wait for a while. CleanTalk is deleting spam comments. Comments left: "
|
62 |
+
msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-комментарии. Осталось:"
|
63 |
+
|
64 |
+
#: inc/classCleantalkComments.php:118 inc/cleantalk-comments.php:77
|
65 |
+
#: inc/cleantalk-users.php:77
|
66 |
+
msgid "Start check"
|
67 |
+
msgstr "Начать проверку"
|
68 |
+
|
69 |
+
#: inc/classCleantalkComments.php:119 inc/cleantalk-comments.php:78
|
70 |
+
#: inc/cleantalk-users.php:78
|
71 |
+
msgid "Continue check"
|
72 |
+
msgstr "Продолжить проверку"
|
73 |
+
|
74 |
+
#: inc/classCleantalkComments.php:120 inc/cleantalk-comments.php:79
|
75 |
+
msgid ""
|
76 |
+
"The plugin will check all comments against blacklists database and show you "
|
77 |
+
"senders that have spam activity on other websites."
|
78 |
+
msgstr ""
|
79 |
+
"Пожалуйста, подождите. CleanTalk проверяет комментарии по черным спискам на "
|
80 |
+
"cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
|
81 |
+
"работы."
|
82 |
+
|
83 |
+
#: inc/classCleantalkComments.php:123 inc/cleantalk-comments.php:82
|
84 |
+
#: inc/cleantalk-users.php:82
|
85 |
+
msgid "Accurate check"
|
86 |
+
msgstr "Точная проверка"
|
87 |
+
|
88 |
+
#: inc/classCleantalkComments.php:125 inc/cleantalk-comments.php:84
|
89 |
+
msgid ""
|
90 |
+
"Allows to use comment's dates to perform more accurate check. Could "
|
91 |
+
"seriously slow down the check."
|
92 |
+
msgstr ""
|
93 |
+
"Позволяет использовать даты комментариев для выполения более тщательной "
|
94 |
+
"проверки. Может серьезно замедлить проверку."
|
95 |
+
|
96 |
+
#: inc/classCleantalkComments.php:128 inc/cleantalk-comments.php:87
|
97 |
+
#: inc/cleantalk-users.php:87
|
98 |
+
msgid "Specify date range"
|
99 |
+
msgstr "Указать диапазон дат"
|
100 |
+
|
101 |
+
#: inc/classCleantalkComments.php:149 inc/cleantalk-comments.php:108
|
102 |
+
msgid ""
|
103 |
+
"Please wait! CleanTalk is checking all approved and pending comments via "
|
104 |
+
"blacklist database at cleantalk.org. You will have option to delete found "
|
105 |
+
"spam comments after plugin finish."
|
106 |
+
msgstr ""
|
107 |
+
"Пожалуйста, подождите! CleanTalk проверяет комментарии по черным спискам на "
|
108 |
+
"cleantalk.org. Вы сможете удалить комментарии со спамом после окончания "
|
109 |
+
"работы."
|
110 |
+
|
111 |
+
#: inc/classCleantalkCommentsListTable.php:24
|
112 |
+
msgid "Author"
|
113 |
+
msgstr "Автор"
|
114 |
+
|
115 |
+
#: inc/classCleantalkCommentsListTable.php:25 inc/cleantalk-comments.php:158
|
116 |
+
msgid "Comment"
|
117 |
+
msgstr "Комментарий"
|
118 |
+
|
119 |
+
#: inc/classCleantalkCommentsListTable.php:26 inc/cleantalk-comments.php:159
|
120 |
+
msgid "In Response To"
|
121 |
+
msgstr "В ответ на"
|
122 |
+
|
123 |
+
#: inc/classCleantalkCommentsListTable.php:33
|
124 |
+
msgid "No spam comments."
|
125 |
+
msgstr "Нет спам комментариев."
|
126 |
+
|
127 |
+
#: inc/cleantalk-admin.php:27
|
128 |
+
#, php-format
|
129 |
+
msgid "Find spam %s"
|
130 |
+
msgstr "Найти спам %s"
|
131 |
+
|
132 |
+
#: inc/cleantalk-admin.php:31
|
133 |
+
msgid "CleanTalk Anti-Spam Log"
|
134 |
+
msgstr "CleanTalk Anti-Spam лог"
|
135 |
+
|
136 |
+
#: inc/cleantalk-admin.php:50
|
137 |
+
#, php-format
|
138 |
+
msgid "%sRefresh%s"
|
139 |
+
msgstr "%sОбновить%s"
|
140 |
+
|
141 |
+
#: inc/cleantalk-admin.php:51
|
142 |
+
#, php-format
|
143 |
+
msgid "%sConfigure%s"
|
144 |
+
msgstr "%sКонфигурация%s"
|
145 |
+
|
146 |
+
#: inc/cleantalk-admin.php:68
|
147 |
+
msgid "7 days anti-spam stats"
|
148 |
+
msgstr "Статистика атак за 7 дней"
|
149 |
+
|
150 |
+
#: inc/cleantalk-admin.php:72
|
151 |
+
msgid "Top 5 spam IPs blocked"
|
152 |
+
msgstr "Топ 5 cамых заблокированных IP"
|
153 |
+
|
154 |
+
#: inc/cleantalk-admin.php:78
|
155 |
+
msgid "Get Access key to activate Anti-Spam protection!"
|
156 |
+
msgstr "Получите ключ доступа для активации спам защиты!"
|
157 |
+
|
158 |
+
#: inc/cleantalk-admin.php:86
|
159 |
+
#, php-format
|
160 |
+
msgid "Something went wrong! Error: \"%s\"."
|
161 |
+
msgstr "Что-то пошло не так: Ошибка: \"%s\"."
|
162 |
+
|
163 |
+
#: inc/cleantalk-admin.php:90
|
164 |
+
msgid "Please, visit your dashboard."
|
165 |
+
msgstr "Пожалуйста, посетите панель управления."
|
166 |
+
|
167 |
+
#: inc/cleantalk-admin.php:104
|
168 |
+
msgid "IP"
|
169 |
+
msgstr "IP"
|
170 |
+
|
171 |
+
#: inc/cleantalk-admin.php:105
|
172 |
+
msgid "Country"
|
173 |
+
msgstr "Страна"
|
174 |
+
|
175 |
+
#: inc/cleantalk-admin.php:106
|
176 |
+
msgid "Block Count"
|
177 |
+
msgstr "Заблкирован раз"
|
178 |
+
|
179 |
+
#: inc/cleantalk-admin.php:134
|
180 |
+
#, php-format
|
181 |
+
msgid ""
|
182 |
+
"This is the count from the %s's cloud and could be different to admin bar "
|
183 |
+
"counters"
|
184 |
+
msgstr ""
|
185 |
+
"Это счетчик из %s облака, эти данные могут отличаться от данных счетчика в "
|
186 |
+
"админ-баре."
|
187 |
+
|
188 |
+
#. %s: Number of spam messages
|
189 |
+
#: inc/cleantalk-admin.php:137
|
190 |
+
#, php-format
|
191 |
+
msgid ""
|
192 |
+
"%s%s%s has blocked %s spam for all time. The statistics are automatically "
|
193 |
+
"updated every 24 hours."
|
194 |
+
msgstr ""
|
195 |
+
"%s%s%s заблокировал %s спама за все время. Статистика автоматически "
|
196 |
+
"обновляется каждый 24 часа."
|
197 |
+
|
198 |
+
#: inc/cleantalk-admin.php:148 inc/cleantalk-settings.php:544
|
199 |
+
#, php-format
|
200 |
+
msgid "Do you like CleanTalk? %sPost your feedback here%s."
|
201 |
+
msgstr "Вам понравился CleanTalk?%s Напишите свой отзыв здесь%s."
|
202 |
+
|
203 |
+
#: inc/cleantalk-admin.php:234
|
204 |
+
msgid "Translate"
|
205 |
+
msgstr "Перевести"
|
206 |
+
|
207 |
+
#: inc/cleantalk-admin.php:237
|
208 |
+
msgid "Start here"
|
209 |
+
msgstr "Начать здесь"
|
210 |
+
|
211 |
+
#: inc/cleantalk-admin.php:238
|
212 |
+
msgid "FAQ"
|
213 |
+
msgstr "FAQ"
|
214 |
+
|
215 |
+
#: inc/cleantalk-admin.php:239 inc/cleantalk-admin.php:644
|
216 |
+
#: inc/cleantalk-settings.php:575
|
217 |
+
msgid "Support"
|
218 |
+
msgstr "Поддержка"
|
219 |
+
|
220 |
+
#: inc/cleantalk-admin.php:306 inc/cleantalk-settings.php:523
|
221 |
+
msgid "Hosting AntiSpam"
|
222 |
+
msgstr "Hosting AntiSpam"
|
223 |
+
|
224 |
+
#: inc/cleantalk-admin.php:333
|
225 |
+
msgid "Failed from timeout. Going to check comments again."
|
226 |
+
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
227 |
+
|
228 |
+
#: inc/cleantalk-admin.php:334
|
229 |
+
msgid "Added"
|
230 |
+
msgstr "Добавлены"
|
231 |
+
|
232 |
+
#: inc/cleantalk-admin.php:335 inc/cleantalk-admin.php:386
|
233 |
+
msgid "Deleted"
|
234 |
+
msgstr "Удалено"
|
235 |
+
|
236 |
+
#: inc/cleantalk-admin.php:336
|
237 |
+
msgid "comments"
|
238 |
+
msgstr "комментарии"
|
239 |
+
|
240 |
+
#: inc/cleantalk-admin.php:337
|
241 |
+
msgid "Delete all spam comments?"
|
242 |
+
msgstr "Удалить ВСЕ найденные спам-комментарии?"
|
243 |
+
|
244 |
+
#: inc/cleantalk-admin.php:338
|
245 |
+
msgid "Delete checked comments?"
|
246 |
+
msgstr "Удалить отмеченые спам-комментарии?"
|
247 |
+
|
248 |
+
#: inc/cleantalk-admin.php:339
|
249 |
+
#, php-format
|
250 |
+
msgid ""
|
251 |
+
"Total comments %s. Checked %s. Found %s spam comments. %s bad comments "
|
252 |
+
"(without IP or email)."
|
253 |
+
msgstr ""
|
254 |
+
"Всего комментариев %s. Проверено %s. Найдено %s спам комментариев. %s плохих "
|
255 |
+
"комментариев (без IP и Email'а)."
|
256 |
+
|
257 |
+
#: inc/cleantalk-admin.php:340 inc/cleantalk-admin.php:393
|
258 |
+
#: inc/cleantalk-users.php:531
|
259 |
+
msgid "Please do backup of WordPress database before delete any accounts!"
|
260 |
+
msgstr ""
|
261 |
+
"Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
|
262 |
+
"аккаунтов."
|
263 |
+
|
264 |
+
#: inc/cleantalk-admin.php:351
|
265 |
+
msgid "The sender has been whitelisted."
|
266 |
+
msgstr "Отправитель был добавлен в белый список."
|
267 |
+
|
268 |
+
#: inc/cleantalk-admin.php:352
|
269 |
+
msgid "The sender has been blacklisted."
|
270 |
+
msgstr "Отправитель был добавлен в черный список."
|
271 |
+
|
272 |
+
#: inc/cleantalk-admin.php:353 inc/cleantalk-public.php:3321
|
273 |
+
#, php-format
|
274 |
+
msgid "Feedback has been sent to %sCleanTalk Dashboard%s."
|
275 |
+
msgstr "Обратная связь отправлена в панель управления %sCleanTalk%s."
|
276 |
+
|
277 |
+
#: inc/cleantalk-admin.php:383
|
278 |
+
msgid "Failed from timeout. Going to check users again."
|
279 |
+
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
280 |
+
|
281 |
+
#: inc/cleantalk-admin.php:384
|
282 |
+
msgid "Failed from timeout. Going to run a new attempt to delete spam users."
|
283 |
+
msgstr "Ошибка по таймауту. Попробовать еще раз?"
|
284 |
+
|
285 |
+
#: inc/cleantalk-admin.php:385
|
286 |
+
msgid "Inserted"
|
287 |
+
msgstr "Добавлено"
|
288 |
+
|
289 |
+
#: inc/cleantalk-admin.php:387
|
290 |
+
msgid "users."
|
291 |
+
msgstr "пользователей."
|
292 |
+
|
293 |
+
#: inc/cleantalk-admin.php:388
|
294 |
+
msgid "Delete all spam users?"
|
295 |
+
msgstr "Удалить ВСЕХ найденых спам-пользователей?"
|
296 |
+
|
297 |
+
#: inc/cleantalk-admin.php:389
|
298 |
+
msgid "Delete checked users?"
|
299 |
+
msgstr "Удалить отмеченых спам-пользователей?"
|
300 |
+
|
301 |
+
#: inc/cleantalk-admin.php:392
|
302 |
+
#, php-format
|
303 |
+
msgid ""
|
304 |
+
"Total users %s, checked %s, found %s spam users and %s bad users (without IP "
|
305 |
+
"or email)"
|
306 |
+
msgstr ""
|
307 |
+
"Всего пользователей %s, проверено %s, найдено %s спам пользователей и %s "
|
308 |
+
"плохих пользователей (без IP и Email'а)"
|
309 |
+
|
310 |
+
#: inc/cleantalk-admin.php:401
|
311 |
+
msgid "Find spam-users"
|
312 |
+
msgstr "Найти спам-пользователей"
|
313 |
+
|
314 |
+
#: inc/cleantalk-admin.php:449
|
315 |
+
#, php-format
|
316 |
+
msgid "Unable to get Access key automatically: %s"
|
317 |
+
msgstr "Невозможно получить ключ автоматически: %s"
|
318 |
+
|
319 |
+
#: inc/cleantalk-admin.php:450
|
320 |
+
msgid "Get the Access key"
|
321 |
+
msgstr "Получить ключ вручную"
|
322 |
+
|
323 |
+
#: inc/cleantalk-admin.php:459
|
324 |
+
#, php-format
|
325 |
+
msgid "Please enter Access Key in %s settings to enable anti spam protection!"
|
326 |
+
msgstr ""
|
327 |
+
"Пожалуйста, укажите Ключ доступа в настройках %s для активации защиты от "
|
328 |
+
"спама!"
|
329 |
+
|
330 |
+
#: inc/cleantalk-admin.php:469
|
331 |
+
#, php-format
|
332 |
+
msgid "%s trial period ends, please upgrade to %s!"
|
333 |
+
msgstr ""
|
334 |
+
"%s заканчивается ознакомительный срок пользования антиспам плагином "
|
335 |
+
"CleanTalk, пожалуйста продлите подключение %s."
|
336 |
+
|
337 |
+
#: inc/cleantalk-admin.php:481
|
338 |
+
msgid "RENEW ANTI-SPAM"
|
339 |
+
msgstr "ПРОДЛИТЬ АНТИСПАМ"
|
340 |
+
|
341 |
+
#: inc/cleantalk-admin.php:482
|
342 |
+
msgid "next year"
|
343 |
+
msgstr "следующий год"
|
344 |
+
|
345 |
+
#: inc/cleantalk-admin.php:486
|
346 |
+
#, php-format
|
347 |
+
msgid "Please renew your anti-spam license for %s."
|
348 |
+
msgstr "Пожалуйста, продлите свою антиспам-лицензию на %s."
|
349 |
+
|
350 |
+
#: inc/cleantalk-admin.php:511
|
351 |
+
msgid "Make it right!"
|
352 |
+
msgstr "Сделай все правильно!"
|
353 |
+
|
354 |
+
#: inc/cleantalk-admin.php:513
|
355 |
+
#, php-format
|
356 |
+
msgid "%sGet premium%s"
|
357 |
+
msgstr "%sПолучить премиум%s"
|
358 |
+
|
359 |
+
#: inc/cleantalk-admin.php:552
|
360 |
+
msgid "Since"
|
361 |
+
msgstr "От"
|
362 |
+
|
363 |
+
#: inc/cleantalk-admin.php:558
|
364 |
+
msgid ""
|
365 |
+
"All / Allowed / Blocked submissions. The number of submissions is being "
|
366 |
+
"counted since CleanTalk plugin installation."
|
367 |
+
msgstr "Все / Разрешенные / Запрещенные запросы с момента установки CleanTalk."
|
368 |
+
|
369 |
+
#: inc/cleantalk-admin.php:558
|
370 |
+
msgid "All"
|
371 |
+
msgstr "Все"
|
372 |
+
|
373 |
+
#: inc/cleantalk-admin.php:566
|
374 |
+
msgid ""
|
375 |
+
"Allowed / Blocked submissions. The number of submissions for past 24 hours. "
|
376 |
+
msgstr "Разрешенные / Запрещенные запросы за последние 24 часа."
|
377 |
+
|
378 |
+
#: inc/cleantalk-admin.php:566
|
379 |
+
msgid "Day"
|
380 |
+
msgstr "За день"
|
381 |
+
|
382 |
+
#: inc/cleantalk-admin.php:572
|
383 |
+
msgid ""
|
384 |
+
"All / Blocked events. Access attempts regitred by SpamFireWall counted since "
|
385 |
+
"the last plugin activation."
|
386 |
+
msgstr ""
|
387 |
+
"Все / Запрещенные попытки просмотра сайта. Отображет попытки с момента "
|
388 |
+
"последней активации плагина."
|
389 |
+
|
390 |
+
#: inc/cleantalk-admin.php:582
|
391 |
+
msgid ""
|
392 |
+
"Allowed / Blocked submissions. The number of submissions is being counted "
|
393 |
+
"since "
|
394 |
+
msgstr "Разрешенные / Запрещенные попытки."
|
395 |
+
|
396 |
+
#: inc/cleantalk-admin.php:593
|
397 |
+
msgid "dashboard"
|
398 |
+
msgstr "панель управления"
|
399 |
+
|
400 |
+
#: inc/cleantalk-admin.php:600
|
401 |
+
msgid "Settings"
|
402 |
+
msgstr "Настройки"
|
403 |
+
|
404 |
+
#: inc/cleantalk-admin.php:608
|
405 |
+
msgid "Bulk spam comments removal tool."
|
406 |
+
msgstr "Инструмент массового удаления пользователей."
|
407 |
+
|
408 |
+
#: inc/cleantalk-admin.php:608 inc/cleantalk-settings.php:882
|
409 |
+
msgid "Check comments for spam"
|
410 |
+
msgstr "Проверка комментариев"
|
411 |
+
|
412 |
+
#: inc/cleantalk-admin.php:618 inc/cleantalk-settings.php:885
|
413 |
+
msgid "Check users for spam"
|
414 |
+
msgstr "Проверить пользователей на спам"
|
415 |
+
|
416 |
+
#: inc/cleantalk-admin.php:627
|
417 |
+
msgid "Reset first counter"
|
418 |
+
msgstr "Сбросить первый счетчик"
|
419 |
+
|
420 |
+
#: inc/cleantalk-admin.php:635
|
421 |
+
msgid "Reset all counters"
|
422 |
+
msgstr "Сбросить все счетчики"
|
423 |
+
|
424 |
+
#: inc/cleantalk-comments.php:221 inc/cleantalk-users.php:220
|
425 |
+
msgid "Approve"
|
426 |
+
msgstr "Одобрить"
|
427 |
+
|
428 |
+
#: inc/cleantalk-comments.php:223 inc/cleantalk-users.php:222
|
429 |
+
msgid "Delete"
|
430 |
+
msgstr "Удалить"
|
431 |
+
|
432 |
+
#: inc/cleantalk-comments.php:265
|
433 |
+
msgid "Delete all comments from the list"
|
434 |
+
msgstr "Удалить все сообщения в списке"
|
435 |
+
|
436 |
+
#: inc/cleantalk-comments.php:266 inc/cleantalk-users.php:268
|
437 |
+
msgid "Delete selected"
|
438 |
+
msgstr "Удалить отмеченные"
|
439 |
+
|
440 |
+
#: inc/cleantalk-comments.php:270
|
441 |
+
msgid "Insert comments"
|
442 |
+
msgstr "Добавить комментарии"
|
443 |
+
|
444 |
+
#: inc/cleantalk-comments.php:271
|
445 |
+
msgid "Delete comments"
|
446 |
+
msgstr "Удалить тестовые спам-комментарии?"
|
447 |
+
|
448 |
+
#: inc/cleantalk-comments.php:276 inc/cleantalk-users.php:279
|
449 |
+
msgid ""
|
450 |
+
"There is some differencies between blacklists database and our API "
|
451 |
+
"mechanisms. Blacklists shows all history of spam activity, but our API (that "
|
452 |
+
"used in spam checking) used another parameters, too: last day of activity, "
|
453 |
+
"number of spam attacks during last days etc. This mechanisms help us to "
|
454 |
+
"reduce number of false positivitie. So, there is nothing strange, if some "
|
455 |
+
"emails/IPs will be not found by this checking."
|
456 |
+
msgstr ""
|
457 |
+
"Есть некоторые отличия между проверкой через базу данных черных списков и "
|
458 |
+
"через механизм API. В черных списках отображается вся история о спам-"
|
459 |
+
"активности, но наш API используетс другие механизмы: последний день "
|
460 |
+
"активности, количество спам-атак в течение последних дней и т. д. Эти "
|
461 |
+
"механизмы помогают нам сократить количество ложных обнаружений. Поэтому, нет "
|
462 |
+
"ничего странного, если некоторые письма/IP не будут обнаружены при этой "
|
463 |
+
"проверке."
|
464 |
+
|
465 |
+
#: inc/cleantalk-comments.php:281 inc/cleantalk-users.php:284
|
466 |
+
msgid "Stop deletion"
|
467 |
+
msgstr "Остановить удаление"
|
468 |
+
|
469 |
+
#: inc/cleantalk-comments.php:495
|
470 |
+
#, php-format
|
471 |
+
msgid ""
|
472 |
+
"Total comments %s. Checked %s. Last check %s. Found %s spam comments. %s bad "
|
473 |
+
"comments (without IP or email)."
|
474 |
+
msgstr ""
|
475 |
+
"Всего комментариев %s. Проверено %s. Последняя проверка %s. Найдено %s спам-"
|
476 |
+
"комментариев. %s плохие комментарии (без IP или электронной почты)."
|
477 |
+
|
478 |
+
#: inc/cleantalk-comments.php:499
|
479 |
+
msgid "Please do backup of WordPress database before delete any comments!"
|
480 |
+
msgstr ""
|
481 |
+
"Пожалуйста, сделайте резервную копию базы данных Wordpress перед удалением "
|
482 |
+
"комментариев."
|
483 |
+
|
484 |
+
#: inc/cleantalk-public.php:500 inc/cleantalk-public.php:641
|
485 |
+
#: inc/cleantalk-public.php:743 inc/cleantalk-public.php:2363
|
486 |
+
#: inc/cleantalk-public.php:3052
|
487 |
+
msgid "Spam protection by CleanTalk"
|
488 |
+
msgstr "Спам защита CleanTalk"
|
489 |
+
|
490 |
+
#: inc/cleantalk-public.php:1233 inc/cleantalk-public.php:1361
|
491 |
+
#: inc/cleantalk-public.php:1379
|
492 |
+
msgid "Spam protection"
|
493 |
+
msgstr "Защита от спама"
|
494 |
+
|
495 |
+
#: inc/cleantalk-public.php:1332
|
496 |
+
msgid "CleanTalk AntiSpam: This message is possible spam."
|
497 |
+
msgstr "CleanTalk AntiSpam: Это сообщение, возможно, является спамом."
|
498 |
+
|
499 |
+
#: inc/cleantalk-public.php:1333
|
500 |
+
msgid "You could check it in CleanTalk's anti-spam database:"
|
501 |
+
msgstr "Вы можете проверить это по антиспам-базе CleanTalk:"
|
502 |
+
|
503 |
+
#: inc/cleantalk-public.php:1569
|
504 |
+
#, php-format
|
505 |
+
msgid "Registration approved by %s."
|
506 |
+
msgstr "Регистрация одобрена %s."
|
507 |
+
|
508 |
+
#: inc/cleantalk-public.php:1849
|
509 |
+
msgid "CleanTalk AntiSpam: This registration is spam."
|
510 |
+
msgstr "CleanTalk AntiSpam: Эта регистрация - спам."
|
511 |
+
|
512 |
+
#: inc/cleantalk-public.php:1850 inc/cleantalk-public.php:2219
|
513 |
+
#: inc/cleantalk-public.php:2387 inc/cleantalk-public.php:2542
|
514 |
+
msgid "CleanTalk's anti-spam database:"
|
515 |
+
msgstr "Антиспам-база CleanTalk:"
|
516 |
+
|
517 |
+
#: inc/cleantalk-public.php:2218 inc/cleantalk-public.php:2386
|
518 |
+
#: inc/cleantalk-public.php:2541
|
519 |
+
msgid "CleanTalk AntiSpam: This message is spam."
|
520 |
+
msgstr "CleanTalk AntiSpam: Это сообщение - спам."
|
521 |
+
|
522 |
+
#: inc/cleantalk-public.php:2666
|
523 |
+
msgid "Comment approved. Anti-spam by CleanTalk."
|
524 |
+
msgstr "Комментарий одобрен. Антиспам от CleanTalk."
|
525 |
+
|
526 |
+
#: inc/cleantalk-public.php:3219
|
527 |
+
msgid "Attention, please!"
|
528 |
+
msgstr "Внимание!"
|
529 |
+
|
530 |
+
#: inc/cleantalk-public.php:3220
|
531 |
+
#, php-format
|
532 |
+
msgid "\"%s\" plugin error on your site \"%s\":"
|
533 |
+
msgstr "\"%s\" ошибка плагина на сайте \"%s\":"
|
534 |
+
|
535 |
+
#: inc/cleantalk-public.php:3222
|
536 |
+
#, php-format
|
537 |
+
msgid "[%s] \"%s\" error!"
|
538 |
+
msgstr "[%s] \"%s\" ошибка!"
|
539 |
+
|
540 |
+
#: inc/cleantalk-public.php:3271
|
541 |
+
msgid ""
|
542 |
+
"By using this form you agree with the storage and processing of your data by "
|
543 |
+
"using the Privacy Policy on this website."
|
544 |
+
msgstr ""
|
545 |
+
"Используя эту форму, вы соглашаетесь с хранением и обработкой ваших данных, "
|
546 |
+
"в соответствии с Политикой конфиденциальности на этом сайте."
|
547 |
+
|
548 |
+
#: inc/cleantalk-public.php:3319
|
549 |
+
msgid "Error occurred while sending feedback."
|
550 |
+
msgstr "Случилась ошибка при отправке обратной связи."
|
551 |
+
|
552 |
+
#: inc/cleantalk-public.php:3320
|
553 |
+
msgid "Feedback wasn't sent. There is no associated request."
|
554 |
+
msgstr "Обратная связь не была отправлена. Нет связанного запроса."
|
555 |
+
|
556 |
+
#: inc/cleantalk-public.php:3364
|
557 |
+
msgid "Sender info"
|
558 |
+
msgstr "Информация об отправителе"
|
559 |
+
|
560 |
+
#: inc/cleantalk-public.php:3367
|
561 |
+
msgid "by"
|
562 |
+
msgstr " от"
|
563 |
+
|
564 |
+
#: inc/cleantalk-public.php:3378
|
565 |
+
msgid "No email"
|
566 |
+
msgstr "Email отсутствует"
|
567 |
+
|
568 |
+
#: inc/cleantalk-public.php:3388
|
569 |
+
msgid "No IP"
|
570 |
+
msgstr "IP отсутствует"
|
571 |
+
|
572 |
+
#: inc/cleantalk-public.php:3391
|
573 |
+
msgid "Mark as spam"
|
574 |
+
msgstr "Отметить как спам"
|
575 |
+
|
576 |
+
#: inc/cleantalk-public.php:3392
|
577 |
+
msgid "Unspam"
|
578 |
+
msgstr "Вернуть из спама"
|
579 |
+
|
580 |
+
#: inc/cleantalk-public.php:3394
|
581 |
+
msgid "Marked as spam."
|
582 |
+
msgstr "Отмечено как спам."
|
583 |
+
|
584 |
+
#: inc/cleantalk-public.php:3395
|
585 |
+
msgid "Marked as not spam."
|
586 |
+
msgstr "Отмечено как не спам."
|
587 |
+
|
588 |
+
#: inc/cleantalk-settings.php:96
|
589 |
+
msgid "SpamFireWall"
|
590 |
+
msgstr "SpamFireWall"
|
591 |
+
|
592 |
+
#: inc/cleantalk-settings.php:97
|
593 |
+
msgid ""
|
594 |
+
"This option allows to filter spam bots before they access website. Also "
|
595 |
+
"reduces CPU usage on hosting server and accelerates pages load time."
|
596 |
+
msgstr ""
|
597 |
+
"Эта опция позволяет фильтровать спам-ботов прежде, чем они войдут на сайт. "
|
598 |
+
"Также уменьшает загрузку процессора на хостинге и ускоряет время загрузки "
|
599 |
+
"страниц."
|
600 |
+
|
601 |
+
#: inc/cleantalk-settings.php:104
|
602 |
+
msgid "Forms to protect"
|
603 |
+
msgstr "Защищаемые формы"
|
604 |
+
|
605 |
+
#: inc/cleantalk-settings.php:110
|
606 |
+
msgid "Advanced settings"
|
607 |
+
msgstr "Продвинутые настройки"
|
608 |
+
|
609 |
+
#: inc/cleantalk-settings.php:117
|
610 |
+
msgid "Registration Forms"
|
611 |
+
msgstr "Формы регистрации"
|
612 |
+
|
613 |
+
#: inc/cleantalk-settings.php:118
|
614 |
+
msgid "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
615 |
+
msgstr "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
616 |
+
|
617 |
+
#: inc/cleantalk-settings.php:121
|
618 |
+
msgid "Comments form"
|
619 |
+
msgstr "Комментарии в блоге"
|
620 |
+
|
621 |
+
#: inc/cleantalk-settings.php:122
|
622 |
+
msgid "WordPress, JetPack, WooCommerce."
|
623 |
+
msgstr "WordPress, JetPack, WooCommerce."
|
624 |
+
|
625 |
+
#: inc/cleantalk-settings.php:125 inc/cleantalk-settings.php:761
|
626 |
+
msgid "Contact forms"
|
627 |
+
msgstr "Контактные формы"
|
628 |
+
|
629 |
+
#: inc/cleantalk-settings.php:126
|
630 |
+
msgid ""
|
631 |
+
"Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, "
|
632 |
+
"WordPress Landing Pages, Gravity Forms."
|
633 |
+
msgstr ""
|
634 |
+
"Contact Form 7, Formidable Forms, Jetpack, Fast Secure Contact Form, "
|
635 |
+
"WordPress Landing Pages, Gravity Forms."
|
636 |
+
|
637 |
+
#: inc/cleantalk-settings.php:129 inc/cleantalk-settings.php:762
|
638 |
+
msgid "Custom contact forms"
|
639 |
+
msgstr "Произвольные контактные формы"
|
640 |
+
|
641 |
+
#: inc/cleantalk-settings.php:130
|
642 |
+
msgid "Anti spam test for any WordPress themes or contacts forms."
|
643 |
+
msgstr "Защита от спама любой контактной формы или темы."
|
644 |
+
|
645 |
+
#: inc/cleantalk-settings.php:133 inc/cleantalk-settings.php:775
|
646 |
+
msgid "WooCommerce checkout form"
|
647 |
+
msgstr "Форма заказа WooCommerce"
|
648 |
+
|
649 |
+
#: inc/cleantalk-settings.php:134
|
650 |
+
msgid "Anti spam test for WooCommerce checkout form."
|
651 |
+
msgstr "Спам тест для формы заказа WooCommerce"
|
652 |
+
|
653 |
+
#: inc/cleantalk-settings.php:138
|
654 |
+
msgid "Spam test for registration during checkout"
|
655 |
+
msgstr "Регистрация на странице заказа"
|
656 |
+
|
657 |
+
#: inc/cleantalk-settings.php:139
|
658 |
+
msgid ""
|
659 |
+
"Enable anti spam test for registration process which during woocommerce's "
|
660 |
+
"checkout."
|
661 |
+
msgstr ""
|
662 |
+
"Включить защиту от спама в регистрациях, которые проходят во время "
|
663 |
+
"оформления заказа."
|
664 |
+
|
665 |
+
#: inc/cleantalk-settings.php:145
|
666 |
+
msgid "Test default Wordpress search form for spam"
|
667 |
+
msgstr "Стандартная форма поиска Wordpress"
|
668 |
+
|
669 |
+
#: inc/cleantalk-settings.php:146
|
670 |
+
msgid "Spam protection for Search form."
|
671 |
+
msgstr "Защита от спама для Форм поиска."
|
672 |
+
|
673 |
+
#: inc/cleantalk-settings.php:148
|
674 |
+
#, php-format
|
675 |
+
msgid "Read more about %sspam protection for Search form%s on our blog."
|
676 |
+
msgstr "Прочтите о %sспам-защите для Форм поиска%s на нашем блоге."
|
677 |
+
|
678 |
+
#: inc/cleantalk-settings.php:156
|
679 |
+
msgid "Protect external forms"
|
680 |
+
msgstr "Защита внешних форм"
|
681 |
+
|
682 |
+
#: inc/cleantalk-settings.php:157
|
683 |
+
msgid ""
|
684 |
+
"Turn this option on to protect forms on your WordPress that send data to "
|
685 |
+
"third-part servers (like MailChimp)."
|
686 |
+
msgstr ""
|
687 |
+
"Включите эту опцию, что бы защитить формы, которые отсылают данные на "
|
688 |
+
"сторонние ресурсы, например MailChimp."
|
689 |
+
|
690 |
+
#: inc/cleantalk-settings.php:161
|
691 |
+
msgid "Capture buffer"
|
692 |
+
msgstr "Захват буфера"
|
693 |
+
|
694 |
+
#: inc/cleantalk-settings.php:162
|
695 |
+
msgid ""
|
696 |
+
"This setting gives you more sophisticated and strengthened protection for "
|
697 |
+
"external forms. But it could break plugins which use a buffer like Ninja "
|
698 |
+
"Forms."
|
699 |
+
msgstr ""
|
700 |
+
"Этот параметр дает вам более сложную и усиленную защиту для внешних форм. Но "
|
701 |
+
"это может сломать плагины, которые используют буфер, такой как Ninja Forms."
|
702 |
+
|
703 |
+
#: inc/cleantalk-settings.php:167
|
704 |
+
msgid "Protect internal forms"
|
705 |
+
msgstr "Защита внутренних форм"
|
706 |
+
|
707 |
+
#: inc/cleantalk-settings.php:168
|
708 |
+
msgid ""
|
709 |
+
"This option will enable protection for custom (hand-made) AJAX forms with "
|
710 |
+
"PHP scripts handlers on your WordPress."
|
711 |
+
msgstr "Эта опция обеспечит защиту созданных вручную форм, использующих AJAX."
|
712 |
+
|
713 |
+
#: inc/cleantalk-settings.php:175
|
714 |
+
msgid "Comments and Messages"
|
715 |
+
msgstr "Комментарии и сообщения"
|
716 |
+
|
717 |
+
#: inc/cleantalk-settings.php:178
|
718 |
+
msgid "BuddyPress Private Messages"
|
719 |
+
msgstr "Личные сообщения buddyPress"
|
720 |
+
|
721 |
+
#: inc/cleantalk-settings.php:179
|
722 |
+
msgid "Check buddyPress private messages."
|
723 |
+
msgstr "Проверять личные сообщения buddyPress "
|
724 |
+
|
725 |
+
#: inc/cleantalk-settings.php:182
|
726 |
+
msgid "Don't check trusted user's comments"
|
727 |
+
msgstr "Не проверять доверенных пользователей"
|
728 |
+
|
729 |
+
#: inc/cleantalk-settings.php:183
|
730 |
+
#, php-format
|
731 |
+
msgid "Don't check comments for users with above %d comments."
|
732 |
+
msgstr "Не проверять комментарии пользователей с более %d комментариями."
|
733 |
+
|
734 |
+
#: inc/cleantalk-settings.php:186
|
735 |
+
msgid "Automatically delete spam comments"
|
736 |
+
msgstr "Автоматически удалять спам-комментарии"
|
737 |
+
|
738 |
+
#: inc/cleantalk-settings.php:187
|
739 |
+
#, php-format
|
740 |
+
msgid "Delete spam comments older than %d days."
|
741 |
+
msgstr "Удалять комментарии старше %d дней."
|
742 |
+
|
743 |
+
#: inc/cleantalk-settings.php:190
|
744 |
+
msgid "Remove links from approved comments"
|
745 |
+
msgstr "Удалять ссылки из одобреных комментариев"
|
746 |
+
|
747 |
+
#: inc/cleantalk-settings.php:191
|
748 |
+
msgid "Remove links from approved comments. Replace it with \"[Link deleted]\""
|
749 |
+
msgstr "Удалять ссылки из одобренных сообщений"
|
750 |
+
|
751 |
+
#: inc/cleantalk-settings.php:194
|
752 |
+
msgid "Show links to check Emails, IPs for spam."
|
753 |
+
msgstr "Отобразить ссылки для проверки Email'ов и IP адресов."
|
754 |
+
|
755 |
+
#: inc/cleantalk-settings.php:195
|
756 |
+
msgid ""
|
757 |
+
"Shows little icon near IP addresses and Emails allowing you to check it via "
|
758 |
+
"CleanTalk's database. Also allowing you to manage comments from the public "
|
759 |
+
"post's page."
|
760 |
+
msgstr ""
|
761 |
+
"Показывает маленькую иконку около IP и Email'a позволяющую проверить их "
|
762 |
+
"через базу данных. Так же позволяет управлять комментариями с публичной "
|
763 |
+
"страницы записи."
|
764 |
+
|
765 |
+
#: inc/cleantalk-settings.php:203
|
766 |
+
msgid "Data Processing"
|
767 |
+
msgstr "Обработка данных"
|
768 |
+
|
769 |
+
#: inc/cleantalk-settings.php:206
|
770 |
+
msgid "Protect logged in Users"
|
771 |
+
msgstr "Проверять залогиненых пользователей"
|
772 |
+
|
773 |
+
#: inc/cleantalk-settings.php:207
|
774 |
+
msgid ""
|
775 |
+
"Turn this option on to check for spam any submissions (comments, contact "
|
776 |
+
"forms and etc.) from registered Users."
|
777 |
+
msgstr "Включите, чтобы проверять зарегистрированных пользователей."
|
778 |
+
|
779 |
+
#: inc/cleantalk-settings.php:210
|
780 |
+
msgid "Use AJAX for JavaScript check"
|
781 |
+
msgstr "Использовать AJAX для проверки JavaScript"
|
782 |
+
|
783 |
+
#: inc/cleantalk-settings.php:211
|
784 |
+
msgid ""
|
785 |
+
"Options helps protect WordPress against spam with any caching plugins. Turn "
|
786 |
+
"this option on to avoid issues with caching plugins."
|
787 |
+
msgstr "Данная настройка помогает избежать конфликтов с кеширующими плагинами."
|
788 |
+
|
789 |
+
#: inc/cleantalk-settings.php:214
|
790 |
+
msgid "Use static keys for JS check."
|
791 |
+
msgstr "Использовать постоянный (статичный) ключ для проверки JS."
|
792 |
+
|
793 |
+
#: inc/cleantalk-settings.php:215
|
794 |
+
msgid ""
|
795 |
+
"Could help if you have cache for AJAX requests and you are dealing with "
|
796 |
+
"false positives. Slightly decreases protection quality. Auto - Static key "
|
797 |
+
"will be used if caching plugin is spotted."
|
798 |
+
msgstr ""
|
799 |
+
"Может помочь, если у вас кешируются запросы AJAX и вы имеете дело с ложными "
|
800 |
+
"срабатываниями. Немного снижает качество защиты. Статический ключ будет "
|
801 |
+
"использоваться автоматически, если обнаружен плагин кэширования."
|
802 |
+
|
803 |
+
#: inc/cleantalk-settings.php:223
|
804 |
+
msgid "Check all post data"
|
805 |
+
msgstr "Проверять все POST-данные"
|
806 |
+
|
807 |
+
#: inc/cleantalk-settings.php:224
|
808 |
+
msgid ""
|
809 |
+
"Check all POST submissions from website visitors. Enable this option if you "
|
810 |
+
"have spam misses on website."
|
811 |
+
msgstr ""
|
812 |
+
"Проверять все POST-данные, отправляемые посетителями. Активируйте, если у "
|
813 |
+
"вас есть спам на сайте."
|
814 |
+
|
815 |
+
#: inc/cleantalk-settings.php:226
|
816 |
+
msgid " Or you don`t have records about missed spam here:"
|
817 |
+
msgstr " Или у вас нет записей о спаме здесь:"
|
818 |
+
|
819 |
+
#: inc/cleantalk-settings.php:226
|
820 |
+
msgid "CleanTalk dashboard"
|
821 |
+
msgstr "панель управления CleanTalk"
|
822 |
+
|
823 |
+
#: inc/cleantalk-settings.php:229
|
824 |
+
msgid "СAUTION! Option can catch POST requests in WordPress backend"
|
825 |
+
msgstr ""
|
826 |
+
"ВНИМАНИЕ! Опция может перехватывать все POST запросы в панели управления "
|
827 |
+
"Wordpress. Отключите, если возникают проблемы/ошибки."
|
828 |
+
|
829 |
+
#: inc/cleantalk-settings.php:232
|
830 |
+
msgid "Set cookies"
|
831 |
+
msgstr "Устанавливать куки"
|
832 |
+
|
833 |
+
#: inc/cleantalk-settings.php:233
|
834 |
+
msgid ""
|
835 |
+
"Turn this option off to deny plugin generates any cookies on website front-"
|
836 |
+
"end. This option is helpful if you use Varnish. But most of contact forms "
|
837 |
+
"will not be protected if the option is turned off! <b>Warning: We strongly "
|
838 |
+
"recommend you to enable this otherwise it could cause false positives spam "
|
839 |
+
"detection.</b>"
|
840 |
+
msgstr ""
|
841 |
+
"Отключите эту опцию, чтобы запретить плагину создавать любые файлы cookies "
|
842 |
+
"на веб-сайте. Эта опция полезна, если вы используете Varnish. Но большинство "
|
843 |
+
"контактных форм не будут защищены, если опция отключена! <b>ВНИМАНИЕ! Мы "
|
844 |
+
"настоятельно рекомендуем не отключать опцию, иначе это может привести к "
|
845 |
+
"ложному обнаружению спама.</b>"
|
846 |
+
|
847 |
+
#: inc/cleantalk-settings.php:237
|
848 |
+
msgid "Use alternative mechanism for cookies"
|
849 |
+
msgstr "Использовать альтернативный механизм хранения файлов cookie"
|
850 |
+
|
851 |
+
#: inc/cleantalk-settings.php:238 inc/cleantalk-settings.php:360
|
852 |
+
msgid "Doesn't use cookie or PHP sessions. Collect data for all types of bots."
|
853 |
+
msgstr ""
|
854 |
+
"Не использовать файлы cookies или PHP-сессии. Собирать данные обо всех типах "
|
855 |
+
"ботов."
|
856 |
+
|
857 |
+
#: inc/cleantalk-settings.php:243
|
858 |
+
msgid "Use SSL"
|
859 |
+
msgstr "Использовать SSL"
|
860 |
+
|
861 |
+
#: inc/cleantalk-settings.php:244
|
862 |
+
msgid "Turn this option on to use encrypted (SSL) connection with servers."
|
863 |
+
msgstr ""
|
864 |
+
"Включите эту опцию для использования защищенного (SSL) соединения между "
|
865 |
+
"серверами."
|
866 |
+
|
867 |
+
#: inc/cleantalk-settings.php:247
|
868 |
+
msgid "Use Wordpress HTTP API"
|
869 |
+
msgstr "Использовать стандартное Wordpress HTTP API"
|
870 |
+
|
871 |
+
#: inc/cleantalk-settings.php:248
|
872 |
+
msgid ""
|
873 |
+
"Alternative way to connect the Cloud. Use this if you have connection "
|
874 |
+
"problems."
|
875 |
+
msgstr ""
|
876 |
+
"Альтернативный способ подключения к CleanTalk Cloud. Используйте, если вы "
|
877 |
+
"имеете проблемы с подключением."
|
878 |
+
|
879 |
+
#: inc/cleantalk-settings.php:255
|
880 |
+
msgid "Exclusions"
|
881 |
+
msgstr "Исключения"
|
882 |
+
|
883 |
+
#: inc/cleantalk-settings.php:259
|
884 |
+
msgid "URL exclusions"
|
885 |
+
msgstr "Исключения по URL"
|
886 |
+
|
887 |
+
#: inc/cleantalk-settings.php:260
|
888 |
+
msgid "You could type here URL you want to exclude. Use comma as separator."
|
889 |
+
msgstr ""
|
890 |
+
"Вы можете ввести здесь URL, который вы хотите исключить. Используйте запятую "
|
891 |
+
"в качестве разделителя."
|
892 |
+
|
893 |
+
#: inc/cleantalk-settings.php:264
|
894 |
+
msgid "Use Regular Expression in URL Exclusions"
|
895 |
+
msgstr "Использовать регулярное выражение в исключении по URL"
|
896 |
+
|
897 |
+
#: inc/cleantalk-settings.php:268
|
898 |
+
msgid "Field name exclusions"
|
899 |
+
msgstr "Исключение по имени поля"
|
900 |
+
|
901 |
+
#: inc/cleantalk-settings.php:269
|
902 |
+
msgid ""
|
903 |
+
"You could type here fields names you want to exclude. Use comma as separator."
|
904 |
+
msgstr ""
|
905 |
+
"Вы можете ввести здесь имена полей, которые вы хотите исключить. Используйте "
|
906 |
+
"запятую в качестве разделителя."
|
907 |
+
|
908 |
+
#: inc/cleantalk-settings.php:273
|
909 |
+
msgid "Use Regular Expression in Field Exclusions"
|
910 |
+
msgstr "Использовать регулярное выражение в исключении по полю формы."
|
911 |
+
|
912 |
+
#: inc/cleantalk-settings.php:280
|
913 |
+
msgid "Roles which bypass spam test. Hold CTRL to select multiple roles."
|
914 |
+
msgstr ""
|
915 |
+
"Роли, которые обходят проверку на спам. Удерживайте CTRL, чтобы выбрать "
|
916 |
+
"несколько ролей."
|
917 |
+
|
918 |
+
#: inc/cleantalk-settings.php:287
|
919 |
+
msgid "Admin bar"
|
920 |
+
msgstr "Админ-бар"
|
921 |
+
|
922 |
+
#: inc/cleantalk-settings.php:294
|
923 |
+
msgid "Show statistics in admin bar"
|
924 |
+
msgstr "Показывать статистику в админбаре"
|
925 |
+
|
926 |
+
#: inc/cleantalk-settings.php:295
|
927 |
+
msgid ""
|
928 |
+
"Show/hide icon in top level menu in WordPress backend. The number of "
|
929 |
+
"submissions is being counted for past 24 hours."
|
930 |
+
msgstr ""
|
931 |
+
"Показать/скрыть иконку в админ-баре WordPress. Статистика подсчитывается за "
|
932 |
+
"последние 24 часа."
|
933 |
+
|
934 |
+
#: inc/cleantalk-settings.php:299
|
935 |
+
msgid "Show All-time counter"
|
936 |
+
msgstr "Счетчик за все время"
|
937 |
+
|
938 |
+
#: inc/cleantalk-settings.php:300
|
939 |
+
msgid ""
|
940 |
+
"Display all-time requests counter in the admin bar. Counter displays number "
|
941 |
+
"of requests since plugin installation."
|
942 |
+
msgstr ""
|
943 |
+
"Отображать счетчик запросов за все время в админ-баре. Счетчик показывает "
|
944 |
+
"записи с момента установки."
|
945 |
+
|
946 |
+
#: inc/cleantalk-settings.php:305
|
947 |
+
msgid "Show 24 hours counter"
|
948 |
+
msgstr "24-х часовой счетчик"
|
949 |
+
|
950 |
+
#: inc/cleantalk-settings.php:306
|
951 |
+
msgid ""
|
952 |
+
"Display daily requests counter in the admin bar. Counter displays number of "
|
953 |
+
"requests of the past 24 hours."
|
954 |
+
msgstr ""
|
955 |
+
"Отображать 24-х часовой счетчик запросов в админ-баре. Отображает запросы за "
|
956 |
+
"последние 24 часа."
|
957 |
+
|
958 |
+
#: inc/cleantalk-settings.php:311
|
959 |
+
msgid "SpamFireWall counter"
|
960 |
+
msgstr "Счетчик SpamFireWall"
|
961 |
+
|
962 |
+
#: inc/cleantalk-settings.php:312
|
963 |
+
msgid ""
|
964 |
+
"Display SpamFireWall requests in the admin bar. Counter displays number of "
|
965 |
+
"requests since plugin installation."
|
966 |
+
msgstr ""
|
967 |
+
"Отображать счетчик SpamFireWall запросов в админ-баре. Отображает количество "
|
968 |
+
"запросов с момента установки плагина."
|
969 |
+
|
970 |
+
#: inc/cleantalk-settings.php:325
|
971 |
+
msgid "Collect details about browsers"
|
972 |
+
msgstr "Собирать данные браузера"
|
973 |
+
|
974 |
+
#: inc/cleantalk-settings.php:326
|
975 |
+
msgid ""
|
976 |
+
"Checking this box you allow plugin store information about screen size and "
|
977 |
+
"browser plugins of website visitors. The option in a beta state."
|
978 |
+
msgstr ""
|
979 |
+
"Включая эту опцию, Вы разрешаете плагину хранить информацию о размере экрана "
|
980 |
+
"и плагинах браузера посетителей. Бета опция."
|
981 |
+
|
982 |
+
#: inc/cleantalk-settings.php:330
|
983 |
+
msgid "Send connection reports"
|
984 |
+
msgstr "Отправлять отчеты о соединении"
|
985 |
+
|
986 |
+
#: inc/cleantalk-settings.php:331
|
987 |
+
msgid ""
|
988 |
+
"Checking this box you allow plugin to send the information about your "
|
989 |
+
"connection. The option in a beta state."
|
990 |
+
msgstr ""
|
991 |
+
"Ставя эту галочку вы разрешаете плагину отрпавлять информацию о интернет-"
|
992 |
+
"соединении. Опция находится на бета-тестировании."
|
993 |
+
|
994 |
+
#: inc/cleantalk-settings.php:335
|
995 |
+
msgid "Async JavaScript loading"
|
996 |
+
msgstr "Асинхронная загрузка JavaScript"
|
997 |
+
|
998 |
+
#: inc/cleantalk-settings.php:336
|
999 |
+
msgid ""
|
1000 |
+
"Use async loading for scripts. Warning: This could reduce filtration quality."
|
1001 |
+
msgstr ""
|
1002 |
+
"Использовать асинхронную загрузку JS-скриптов. ВНИМАНИЕ! это может понизить "
|
1003 |
+
"качество спам-фильтра."
|
1004 |
+
|
1005 |
+
#: inc/cleantalk-settings.php:340
|
1006 |
+
msgid "Allow to add GDPR notice via shortcode"
|
1007 |
+
msgstr "Разрешить добавление GDPR-уведомления с помощью шордкода"
|
1008 |
+
|
1009 |
+
#: inc/cleantalk-settings.php:341
|
1010 |
+
msgid ""
|
1011 |
+
" Adds small checkbox under your website form. To add it you should use the "
|
1012 |
+
"shortcode on the form's page: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
1013 |
+
msgstr ""
|
1014 |
+
"Добавить не большой чекбокс в форму. Для добавления уведомления вставьте на "
|
1015 |
+
"странице с формой этот шорткод: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
1016 |
+
|
1017 |
+
#: inc/cleantalk-settings.php:346
|
1018 |
+
msgid "GDPR text notice"
|
1019 |
+
msgstr "Текст GDPR-уведомления"
|
1020 |
+
|
1021 |
+
#: inc/cleantalk-settings.php:347
|
1022 |
+
msgid "This text will be added as a description to the GDPR checkbox."
|
1023 |
+
msgstr "Этот текст будет добавлен к чекбоксу как описание."
|
1024 |
+
|
1025 |
+
#: inc/cleantalk-settings.php:353
|
1026 |
+
msgid "Store visited URLs"
|
1027 |
+
msgstr "Хранить посещенные URL-ы"
|
1028 |
+
|
1029 |
+
#: inc/cleantalk-settings.php:354
|
1030 |
+
msgid ""
|
1031 |
+
"Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits "
|
1032 |
+
"form on the site. You can see stored visited URLS for each visitor in your "
|
1033 |
+
"Dashboard. Turn the option on to improve Anti-Spam protection."
|
1034 |
+
msgstr ""
|
1035 |
+
"Плагин хранит последние 10 посещенных URL (HTTP REFFERERS) до того, как "
|
1036 |
+
"посетитель отправит форму на сайт. Вы можете видеть сохраненные посещенные "
|
1037 |
+
"URL-адреса для каждого посетителя на своей панели инструментов. Включите эту "
|
1038 |
+
"опцию, чтобы улучшить защиту от спама."
|
1039 |
+
|
1040 |
+
#: inc/cleantalk-settings.php:359
|
1041 |
+
msgid "Use cookies less sessions"
|
1042 |
+
msgstr "Использовать сеансы без cookies"
|
1043 |
+
|
1044 |
+
#: inc/cleantalk-settings.php:366
|
1045 |
+
msgid ""
|
1046 |
+
"Notify users with selected roles about new approved comments. Hold CTRL to "
|
1047 |
+
"select multiple roles."
|
1048 |
+
msgstr ""
|
1049 |
+
"Уведомлять пользователей с выбранными ролями о новых одобренных комментариях."
|
1050 |
+
" Удерживайте CTRL для выбора нескольких ролей."
|
1051 |
+
|
1052 |
+
#: inc/cleantalk-settings.php:367
|
1053 |
+
#, php-format
|
1054 |
+
msgid "If enabled, overrides similar Wordpress %sdiscussion settings%s."
|
1055 |
+
msgstr "Если включено, переопределяет аналогичные %sнастройки Wordpress%s."
|
1056 |
+
|
1057 |
+
#: inc/cleantalk-settings.php:380
|
1058 |
+
msgid "Complete deactivation"
|
1059 |
+
msgstr "Полная деактивация"
|
1060 |
+
|
1061 |
+
#: inc/cleantalk-settings.php:381
|
1062 |
+
msgid "Leave no trace in the system after deactivation."
|
1063 |
+
msgstr "Не оставлять следов в системе после деактивации."
|
1064 |
+
|
1065 |
+
#: inc/cleantalk-settings.php:398
|
1066 |
+
msgid "Enable White Label Mode"
|
1067 |
+
msgstr "Активировать White Label Mode."
|
1068 |
+
|
1069 |
+
#: inc/cleantalk-settings.php:399
|
1070 |
+
#, php-format
|
1071 |
+
msgid "Learn more information %shere%s."
|
1072 |
+
msgstr "Узнать больше информации %sздесь%s"
|
1073 |
+
|
1074 |
+
#: inc/cleantalk-settings.php:404
|
1075 |
+
msgid "Hoster API Key"
|
1076 |
+
msgstr "Хостинг API ключ"
|
1077 |
+
|
1078 |
+
#: inc/cleantalk-settings.php:405
|
1079 |
+
#, php-format
|
1080 |
+
msgid "You can get it in %sCleantalk's Control Panel%s"
|
1081 |
+
msgstr "Вы можете получить ключ в вашей %sпанели управления CleanTalk%s"
|
1082 |
+
|
1083 |
+
#: inc/cleantalk-settings.php:413
|
1084 |
+
msgid "Plugin name"
|
1085 |
+
msgstr "Наименование плагина"
|
1086 |
+
|
1087 |
+
#: inc/cleantalk-settings.php:414
|
1088 |
+
#, php-format
|
1089 |
+
msgid "Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s"
|
1090 |
+
msgstr ""
|
1091 |
+
"Укажите название плагина. Оставьте пустым для названия по умолчанию "
|
1092 |
+
"%sAntispam by Cleantalk%s"
|
1093 |
+
|
1094 |
+
#: inc/cleantalk-settings.php:423
|
1095 |
+
msgid "Allow users to use other key"
|
1096 |
+
msgstr "Позволяет пользователям использовать другой ключ."
|
1097 |
+
|
1098 |
+
#: inc/cleantalk-settings.php:424
|
1099 |
+
msgid ""
|
1100 |
+
"Allow users to use different Access key in their plugin settings on child "
|
1101 |
+
"blogs. They could use different CleanTalk account."
|
1102 |
+
msgstr ""
|
1103 |
+
"Позволяет пользователям использовать разные Ключи доступа в настройках "
|
1104 |
+
"плагина на их дочерних блогах. Они могут использовать разные аккаунты "
|
1105 |
+
"CleanTalk."
|
1106 |
+
|
1107 |
+
#: inc/cleantalk-settings.php:427
|
1108 |
+
msgid ""
|
1109 |
+
"Constant <b>CLEANTALK_ACCESS_KEY</b> is set. All websites will use API key "
|
1110 |
+
"from this constant. Look into wp-config.php"
|
1111 |
+
msgstr ""
|
1112 |
+
"Константа <b>CLEANTALK_ACCESS_KEY</b> установлена. Все дочерние сайты будут "
|
1113 |
+
"использовать ключ доступа из этой контсанты. Смотри в wp-config.php"
|
1114 |
+
|
1115 |
+
#: inc/cleantalk-settings.php:533
|
1116 |
+
msgid "CleanTalk's tech support:"
|
1117 |
+
msgstr "Техническия поддержка CleanTalk: "
|
1118 |
+
|
1119 |
+
#: inc/cleantalk-settings.php:539
|
1120 |
+
msgid "Plugin Homepage at"
|
1121 |
+
msgstr "Домашняя страница плагина на"
|
1122 |
+
|
1123 |
+
#: inc/cleantalk-settings.php:540
|
1124 |
+
msgid "GDPR compliance"
|
1125 |
+
msgstr "Соответствие GDPR"
|
1126 |
+
|
1127 |
+
#: inc/cleantalk-settings.php:541
|
1128 |
+
msgid "Use s@cleantalk.org to test plugin in any WordPress form."
|
1129 |
+
msgstr ""
|
1130 |
+
"Используйте s@cleantalk.org чтобы проверить плагин в любой форме в WordPress."
|
1131 |
+
|
1132 |
+
#: inc/cleantalk-settings.php:542
|
1133 |
+
msgid "CleanTalk is registered Trademark. All rights reserved."
|
1134 |
+
msgstr "CleanTalk - это зарегистрированая торговая марка. Все права защищены."
|
1135 |
+
|
1136 |
+
#: inc/cleantalk-settings.php:559
|
1137 |
+
#, php-format
|
1138 |
+
msgid "%s has blocked <b>%s</b> spam."
|
1139 |
+
msgstr "%s заблокировал <b>%s</b> спама."
|
1140 |
+
|
1141 |
+
#: inc/cleantalk-settings.php:571
|
1142 |
+
msgid "Click here to get anti-spam statistics"
|
1143 |
+
msgstr "Щелкните, чтобы получить статистику"
|
1144 |
+
|
1145 |
+
#: inc/cleantalk-settings.php:614
|
1146 |
+
#, php-format
|
1147 |
+
msgid "Please, enter the %splugin settings%s in main site dashboard."
|
1148 |
+
msgstr ""
|
1149 |
+
"Пожалуйста, перейдите в %sнастройки плагина%s в панели управления на главном "
|
1150 |
+
"сайте."
|
1151 |
+
|
1152 |
+
#: inc/cleantalk-settings.php:633
|
1153 |
+
msgid "Error occurred while API key validating. Error: "
|
1154 |
+
msgstr "Произошла ошибка при проверке ключа API. Ошибка: "
|
1155 |
+
|
1156 |
+
#: inc/cleantalk-settings.php:634
|
1157 |
+
msgid "Error occurred while automatically gettings access key. Error: "
|
1158 |
+
msgstr "Произошла ошибка при автоматическом получении ключа доступа. Ошибка: "
|
1159 |
+
|
1160 |
+
#: inc/cleantalk-settings.php:635
|
1161 |
+
msgid "Error occurred while sending sending SpamFireWall logs. Error: "
|
1162 |
+
msgstr "Произошла ошибка при отправке логов Spam FireWall. Ошибка: "
|
1163 |
+
|
1164 |
+
#: inc/cleantalk-settings.php:636
|
1165 |
+
msgid "Error occurred while updating SpamFireWall local base. Error: "
|
1166 |
+
msgstr "Произошла ошибка при обновлении локальной базы Spam FireWall. Ошибка: "
|
1167 |
+
|
1168 |
+
#: inc/cleantalk-settings.php:637
|
1169 |
+
msgid "Error occurred while checking account status. Error: "
|
1170 |
+
msgstr "Произошла ошибка при проверке статуса аккаунта. Ошибка: "
|
1171 |
+
|
1172 |
+
#: inc/cleantalk-settings.php:638
|
1173 |
+
msgid "Error occurred while excuting API call. Error: "
|
1174 |
+
msgstr "Произошла ошибка при выполнении вызова API. Ошибка: "
|
1175 |
+
|
1176 |
+
#: inc/cleantalk-settings.php:646
|
1177 |
+
msgid "Unknown error. Error: "
|
1178 |
+
msgstr "Неизвестная ошибка. Ошибка: "
|
1179 |
+
|
1180 |
+
#: inc/cleantalk-settings.php:677
|
1181 |
+
msgid "Errors:"
|
1182 |
+
msgstr "Ошибки: "
|
1183 |
+
|
1184 |
+
#: inc/cleantalk-settings.php:682
|
1185 |
+
#, php-format
|
1186 |
+
msgid "You can get support any time here: %s."
|
1187 |
+
msgstr "Вы всегда можете получить техническую поддержку здесь: %s."
|
1188 |
+
|
1189 |
+
#: inc/cleantalk-settings.php:757
|
1190 |
+
msgid "Protection is active"
|
1191 |
+
msgstr "Защита включена"
|
1192 |
+
|
1193 |
+
#: inc/cleantalk-settings.php:759
|
1194 |
+
msgid "Registration forms"
|
1195 |
+
msgstr "Регистрации пользователей"
|
1196 |
+
|
1197 |
+
#: inc/cleantalk-settings.php:760
|
1198 |
+
msgid "Comments forms"
|
1199 |
+
msgstr "Формы комментариев"
|
1200 |
+
|
1201 |
+
#: inc/cleantalk-settings.php:765
|
1202 |
+
msgid "Validate email for existence"
|
1203 |
+
msgstr "Проверка e-mail на существование"
|
1204 |
+
|
1205 |
+
#: inc/cleantalk-settings.php:769
|
1206 |
+
msgid "Auto update"
|
1207 |
+
msgstr "Автообновлние"
|
1208 |
+
|
1209 |
+
#: inc/cleantalk-settings.php:793
|
1210 |
+
msgid "<h3>Key is provided by Super Admin.</h3>"
|
1211 |
+
msgstr "<h3>Ключ доступа предоставлен Супер Администратором.</h3>"
|
1212 |
+
|
1213 |
+
#: inc/cleantalk-settings.php:797
|
1214 |
+
msgid "Access key"
|
1215 |
+
msgstr "Ключ доступа"
|
1216 |
+
|
1217 |
+
#: inc/cleantalk-settings.php:812
|
1218 |
+
msgid "Enter the key"
|
1219 |
+
msgstr "Введите ключ"
|
1220 |
+
|
1221 |
+
#: inc/cleantalk-settings.php:818
|
1222 |
+
#, php-format
|
1223 |
+
msgid "Account at cleantalk.org is %s."
|
1224 |
+
msgstr "Аккаунт на cleantalk.org %s."
|
1225 |
+
|
1226 |
+
#: inc/cleantalk-settings.php:827
|
1227 |
+
msgid "Show the access key"
|
1228 |
+
msgstr "Показать ключ доступа"
|
1229 |
+
|
1230 |
+
#: inc/cleantalk-settings.php:838
|
1231 |
+
msgid "Get Access Key Automatically"
|
1232 |
+
msgstr "Получить ключ доступа автоматически"
|
1233 |
+
|
1234 |
+
#: inc/cleantalk-settings.php:846
|
1235 |
+
#, php-format
|
1236 |
+
msgid ""
|
1237 |
+
"Admin e-mail (%s) will be used for registration, if you want to use other "
|
1238 |
+
"email please %sGet Access Key Manually%s."
|
1239 |
+
msgstr ""
|
1240 |
+
"E-mail администратора (%s) будет использован для регистрации. Если вы хотите "
|
1241 |
+
"использовать другой e-mail, пожлуйста, %sполучите ключ доступа "
|
1242 |
+
"самостоятельно%s."
|
1243 |
+
|
1244 |
+
#: inc/cleantalk-settings.php:862
|
1245 |
+
#, php-format
|
1246 |
+
msgid "I accept %sLicense Agreement%s."
|
1247 |
+
msgstr "Я принимаю %sЛицензионно Соглашение%s."
|
1248 |
+
|
1249 |
+
#: inc/cleantalk-settings.php:888
|
1250 |
+
msgid "Statistics & Reports"
|
1251 |
+
msgstr "Статистика и отчеты"
|
1252 |
+
|
1253 |
+
#: inc/cleantalk-settings.php:904
|
1254 |
+
#, php-format
|
1255 |
+
msgid "Last spam check request to %s server was at %s."
|
1256 |
+
msgstr "Последний запрос проверки спама на сервере %s был произведен %s."
|
1257 |
+
|
1258 |
+
#: inc/cleantalk-settings.php:905 inc/cleantalk-settings.php:906
|
1259 |
+
#: inc/cleantalk-settings.php:915 inc/cleantalk-settings.php:922
|
1260 |
+
#: inc/cleantalk-settings.php:923 inc/cleantalk-settings.php:931
|
1261 |
+
#: inc/cleantalk-settings.php:932 inc/cleantalk-settings.php:939
|
1262 |
+
#: inc/cleantalk-settings.php:940
|
1263 |
+
msgid "unknown"
|
1264 |
+
msgstr "неизвестно"
|
1265 |
+
|
1266 |
+
#: inc/cleantalk-settings.php:912
|
1267 |
+
#, php-format
|
1268 |
+
msgid "Average request time for past 7 days: %s seconds."
|
1269 |
+
msgstr "Среднее время запроса за последние 7 дней: %s секунд."
|
1270 |
+
|
1271 |
+
#: inc/cleantalk-settings.php:921
|
1272 |
+
#, php-format
|
1273 |
+
msgid "Last time SpamFireWall was triggered for %s IP at %s"
|
1274 |
+
msgstr "В последний раз SpamFireWall сработал на %s IP %s"
|
1275 |
+
|
1276 |
+
#: inc/cleantalk-settings.php:930
|
1277 |
+
#, php-format
|
1278 |
+
msgid "SpamFireWall was updated %s. Now contains %s entries."
|
1279 |
+
msgstr "SpamFireWall был обновлен %s. Содержится %s записей."
|
1280 |
+
|
1281 |
+
#: inc/cleantalk-settings.php:938
|
1282 |
+
#, php-format
|
1283 |
+
msgid "SpamFireWall sent %s events at %s."
|
1284 |
+
msgstr "SpamFireWall отправил %s событий %s."
|
1285 |
+
|
1286 |
+
#: inc/cleantalk-settings.php:948
|
1287 |
+
msgid "There are no failed connections to server."
|
1288 |
+
msgstr "Проблем с подключением к серверу нет."
|
1289 |
+
|
1290 |
+
#: inc/cleantalk-settings.php:975
|
1291 |
+
msgid "Send report"
|
1292 |
+
msgstr "Отправить отчет"
|
1293 |
+
|
1294 |
+
#: inc/cleantalk-settings.php:979
|
1295 |
+
msgid ""
|
1296 |
+
"Please, enable \"Send connection reports\" setting to be able to send reports"
|
1297 |
+
msgstr ""
|
1298 |
+
"Пожалуйста, активируйте опцию \"Отправлять отчеты о соединении\" для "
|
1299 |
+
"возможности отправлять отчеты."
|
1300 |
+
|
1301 |
+
#: inc/cleantalk-settings.php:1327
|
1302 |
+
msgid "Testing is failed. Please check the Access key."
|
1303 |
+
msgstr "Ошибка тестирования. Пожалуйста, проверьте ключ доступа."
|
1304 |
+
|
1305 |
+
#: inc/cleantalk-settings.php:1442
|
1306 |
+
msgid "XSS check"
|
1307 |
+
msgstr "Проверка XSS уязвимости"
|
1308 |
+
|
1309 |
+
#: inc/cleantalk-settings.php:1443
|
1310 |
+
msgid ""
|
1311 |
+
"Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to "
|
1312 |
+
"any user. As a result malicious scripts can not get access to the cookie "
|
1313 |
+
"files, session tokens and any other confidential information browsers use "
|
1314 |
+
"and store. Such scripts can even overwrite content of HTML pages. CleanTalk "
|
1315 |
+
"WAF monitors for patterns of these parameters and block them."
|
1316 |
+
msgstr ""
|
1317 |
+
"Межсайтовый скриптинг (XSS) - предотвращает выполнение / отправку "
|
1318 |
+
"вредоносного кода любому пользователю. В результате вредоносные сценарии не "
|
1319 |
+
"могут получить доступ к файлам cookie, токенам сеансов и любой другой "
|
1320 |
+
"конфиденциальной информации, которую используют и хранят браузеры. Такие "
|
1321 |
+
"сценарии могут даже перезаписывать содержимое HTML-страниц. CleanTalk WAF "
|
1322 |
+
"отслеживает шаблоны этих параметров и блокирует их."
|
1323 |
+
|
1324 |
+
#: inc/cleantalk-settings.php:1446
|
1325 |
+
msgid "SQL-injection check"
|
1326 |
+
msgstr "Проверка на наличие SQL-injection"
|
1327 |
+
|
1328 |
+
#: inc/cleantalk-settings.php:1447
|
1329 |
+
msgid ""
|
1330 |
+
"SQL Injection — one of the most popular ways to hack websites and programs "
|
1331 |
+
"that work with databases. It is based on injection of a custom SQL code into "
|
1332 |
+
"database queries. It could transmit data through GET, POST requests or "
|
1333 |
+
"cookie files in an SQL code. If a website is vulnerable and execute such "
|
1334 |
+
"injections then it would allow attackers to apply changes to the website's "
|
1335 |
+
"MySQL database."
|
1336 |
+
msgstr ""
|
1337 |
+
"SQL-инъекция - один из самых популярных способов взлома сайтов и программ, "
|
1338 |
+
"работающих с базами данных. Он основан на внедрении пользовательского кода "
|
1339 |
+
"SQL в запросы к базе данных. Он может передавать данные через запросы GET, "
|
1340 |
+
"POST или файлы cookie в коде SQL. Если веб-сайт уязвим и выполняет такие "
|
1341 |
+
"инъекции, это позволит злоумышленникам применить изменения к базе данных "
|
1342 |
+
"MySQL веб-сайта."
|
1343 |
+
|
1344 |
+
#: inc/cleantalk-settings.php:1450
|
1345 |
+
msgid "Check uploaded files"
|
1346 |
+
msgstr "Проверка загруженных файлов"
|
1347 |
+
|
1348 |
+
#: inc/cleantalk-settings.php:1451
|
1349 |
+
msgid ""
|
1350 |
+
"The option checks each uploaded file to a website for malicious code. If "
|
1351 |
+
"it's possible for visitors to upload files to a website, for instance a work "
|
1352 |
+
"resume, then attackers could abuse it and upload an infected file to execute "
|
1353 |
+
"it later and get access to your website."
|
1354 |
+
msgstr ""
|
1355 |
+
"Опция проверяет каждый загруженный файл на веб-сайт на наличие вредоносного "
|
1356 |
+
"кода. Если посетители могут загружать на сайт файлы, например, резюме, то "
|
1357 |
+
"злоумышленники могут злоупотреблять им и загружать зараженный файл, чтобы "
|
1358 |
+
"выполнить его позднее и получить доступ к вашему сайту."
|
1359 |
+
|
1360 |
+
#: inc/cleantalk-users.php:15
|
1361 |
+
msgid "Find spam users"
|
1362 |
+
msgstr "Найти спам-пользователей"
|
1363 |
+
|
1364 |
+
#: inc/cleantalk-users.php:67
|
1365 |
+
msgid "Please wait for a while. CleanTalk is deleting spam users. Users left: "
|
1366 |
+
msgstr "Пожалуйста, подождите. CleanTalk удаляет спам-пользователей. Осталось:"
|
1367 |
+
|
1368 |
+
#: inc/cleantalk-users.php:79
|
1369 |
+
msgid ""
|
1370 |
+
"The plugin will check all users against blacklists database and show you "
|
1371 |
+
"senders that have spam activity on other websites."
|
1372 |
+
msgstr ""
|
1373 |
+
"Плагин проверит всех пользователей по базе данных чёрных списков и покажет "
|
1374 |
+
"отправителей, которые занимаются спамом на других сайтах."
|
1375 |
+
|
1376 |
+
#: inc/cleantalk-users.php:84
|
1377 |
+
msgid ""
|
1378 |
+
"Allows to use user's dates to perform more accurate check. Could seriously "
|
1379 |
+
"slow down the check."
|
1380 |
+
msgstr ""
|
1381 |
+
"Позволяет использовать даты пользователей для выполения более тщательной "
|
1382 |
+
"проверки. Может серьезно замедлить проверку."
|
1383 |
+
|
1384 |
+
#: inc/cleantalk-users.php:108
|
1385 |
+
msgid ""
|
1386 |
+
"Please wait for a while. CleanTalk is checking all users via blacklist "
|
1387 |
+
"database at cleantalk.org. You will have option to delete found spam users "
|
1388 |
+
"after plugin finish."
|
1389 |
+
msgstr ""
|
1390 |
+
"Пожалуйста, подождите. ClenTalk проверяет всех пользователей по чёрным "
|
1391 |
+
"спискам на cleantalk.org. У вас появится возможность удалить обнаруженных "
|
1392 |
+
"спам-пользователей как только плагин закончит."
|
1393 |
+
|
1394 |
+
#: inc/cleantalk-users.php:267
|
1395 |
+
msgid "Delete all users from list"
|
1396 |
+
msgstr "Удалить всех пользователей в списке"
|
1397 |
+
|
1398 |
+
#: inc/cleantalk-users.php:269
|
1399 |
+
msgid "Download results in CSV"
|
1400 |
+
msgstr "Загрузить результаты (CSV)"
|
1401 |
+
|
1402 |
+
#: inc/cleantalk-users.php:273
|
1403 |
+
msgid "Insert accounts"
|
1404 |
+
msgstr "Добавить аккаунты"
|
1405 |
+
|
1406 |
+
#: inc/cleantalk-users.php:274
|
1407 |
+
msgid "Delete accounts"
|
1408 |
+
msgstr "Удалить тестовые спам-аккаунты"
|
1409 |
+
|
1410 |
+
#: inc/cleantalk-users.php:527
|
1411 |
+
#, php-format
|
1412 |
+
msgid ""
|
1413 |
+
"Total users %s, checked %s, last check %s, found %s spam users and %s bad "
|
1414 |
+
"users (without IP or email)"
|
1415 |
+
msgstr ""
|
1416 |
+
"Всего пользователей %s, проверено %s, последняя проверка %s, найдено %s спам-"
|
1417 |
+
"пользователей и %s плохих пользователей (без IP или электронной почты)"
|
1418 |
+
|
1419 |
+
#: inc/cleantalk-widget.php:22
|
1420 |
+
msgid "CleanTalk Widget"
|
1421 |
+
msgstr "Виджет CleanTalk"
|
1422 |
+
|
1423 |
+
#: inc/cleantalk-widget.php:25
|
1424 |
+
msgid "CleanTalk widget"
|
1425 |
+
msgstr "виджет CleanTalk"
|
1426 |
+
|
1427 |
+
#: inc/cleantalk-widget.php:72
|
1428 |
+
msgid "CleanTalk's main page"
|
1429 |
+
msgstr "Главная страница CleanTalk"
|
1430 |
+
|
1431 |
+
#: inc/cleantalk-widget.php:73
|
1432 |
+
msgid "spam"
|
1433 |
+
msgstr "спама"
|
1434 |
+
|
1435 |
+
#: inc/cleantalk-widget.php:73
|
1436 |
+
msgid "blocked by"
|
1437 |
+
msgstr "заблокировано"
|
1438 |
+
|
1439 |
+
#: inc/cleantalk-widget.php:85
|
1440 |
+
msgid "Spam blocked"
|
1441 |
+
msgstr "Спама заблокировано"
|
1442 |
+
|
1443 |
+
#: inc/cleantalk-widget.php:90
|
1444 |
+
msgid "Title:"
|
1445 |
+
msgstr "Заголовок:"
|
1446 |
+
|
1447 |
+
#: inc/cleantalk-widget.php:95
|
1448 |
+
msgid "Style:"
|
1449 |
+
msgstr "Стиль:"
|
1450 |
+
|
1451 |
+
#: inc/cleantalk-widget.php:97
|
1452 |
+
msgid "CleanTalk's Style"
|
1453 |
+
msgstr "Фирменный стиль CleanTalk"
|
1454 |
+
|
1455 |
+
#: inc/cleantalk-widget.php:98
|
1456 |
+
msgid "Light"
|
1457 |
+
msgstr "Лёгкий"
|
1458 |
+
|
1459 |
+
#: inc/cleantalk-widget.php:99
|
1460 |
+
msgid "Extremely Light"
|
1461 |
+
msgstr "Очень легкий"
|
1462 |
+
|
1463 |
+
#: inc/cleantalk-widget.php:100
|
1464 |
+
msgid "Dark"
|
1465 |
+
msgstr "Темный"
|
1466 |
+
|
1467 |
+
#: inc/cleantalk-widget.php:105
|
1468 |
+
msgid "Referal link ID:"
|
1469 |
+
msgstr "ID партнера:"
|
1470 |
+
|
1471 |
+
#: lib/CleantalkSFW.php:71
|
1472 |
+
msgid "SpamFireWall is activated for your IP "
|
1473 |
+
msgstr "Спам Фаервол заблокировал ваш IP"
|
1474 |
+
|
1475 |
+
#: lib/CleantalkSFW.php:72
|
1476 |
+
msgid ""
|
1477 |
+
"To continue working with web site, please make sure that you have enabled "
|
1478 |
+
"JavaScript."
|
1479 |
+
msgstr ""
|
1480 |
+
"Что бы продолжить работу с сайтом, пожалуйста, убедитесь что у вас включен "
|
1481 |
+
"JavaScript."
|
1482 |
+
|
1483 |
+
#: lib/CleantalkSFW.php:73
|
1484 |
+
msgid "Please click below to pass protection,"
|
1485 |
+
msgstr "Пожалуйста, нажмите, чтобы пройти защиту,"
|
1486 |
+
|
1487 |
+
#: lib/CleantalkSFW.php:74
|
1488 |
+
#, php-format
|
1489 |
+
msgid ""
|
1490 |
+
"Or you will be automatically redirected to the requested page after %d "
|
1491 |
+
"seconds."
|
1492 |
+
msgstr ""
|
1493 |
+
"Или вы будете автоматически переадресованы на запрашиваемую страницу через "
|
1494 |
+
"%d секунд."
|
1495 |
+
|
1496 |
+
#: lib/CleantalkSFW.php:75
|
1497 |
+
msgid "Antispam by CleanTalk"
|
1498 |
+
msgstr "Антиспам от CleanTalk"
|
1499 |
+
|
1500 |
+
#: lib/CleantalkSFW.php:76
|
1501 |
+
msgid "This is the testing page for SpamFireWall"
|
1502 |
+
msgstr "Это тестовая страница SpamFireWall"
|
1503 |
+
|
1504 |
+
#: templates/translate_banner.php:6
|
1505 |
+
msgid "Help others use the plugin in your language."
|
1506 |
+
msgstr "Помогите другим пользователям использовать плагин на их языке."
|
1507 |
+
|
1508 |
+
#: templates/translate_banner.php:7
|
1509 |
+
msgid ""
|
1510 |
+
"We ask you to help with the translation of the plugin in your language. "
|
1511 |
+
"Please take a few minutes to make the plugin more comfortable."
|
1512 |
+
msgstr ""
|
1513 |
+
"Мы просим Вас помочь с переводом плагина на ваш язык. Пожалуйста, потратьте "
|
1514 |
+
"несколько минут, чтобы сделать плагин более удобным."
|
1515 |
+
|
1516 |
+
#: templates/translate_banner.php:10
|
1517 |
+
msgid "TRANSLATE"
|
1518 |
+
msgstr "ПЕРЕВЕСТИ"
|
1519 |
+
|
1520 |
+
#. Description of the plugin/theme
|
1521 |
+
msgid ""
|
1522 |
+
"Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam,"
|
1523 |
+
" no registration spam, no contact spam, protects any WordPress forms."
|
1524 |
+
msgstr ""
|
1525 |
+
"Максимальная эффективность, проверка всех форм, без Сaptcha, премиум "
|
1526 |
+
"антиспам плагин. Нет спаму в комментариях, нет спаму в регистрациях, нету "
|
1527 |
+
"спаму в контактных формах, защита любых форм в WordPress."
|
1528 |
+
|
1529 |
+
#. Plugin URI of the plugin/theme
|
1530 |
+
#. Author URI of the plugin/theme
|
1531 |
+
msgid "http://cleantalk.org"
|
1532 |
+
msgstr "http://cleantalk.org"
|
1533 |
+
|
1534 |
+
#. Author of the plugin/theme
|
1535 |
+
msgid "СleanTalk <welcome@cleantalk.org>"
|
1536 |
+
msgstr "СleanTalk <welcome@cleantalk.org>"
|
i18n/cleantalk.pot
CHANGED
@@ -1,1388 +1,1388 @@
|
|
1 |
-
#, fuzzy
|
2 |
-
msgid ""
|
3 |
-
msgstr ""
|
4 |
-
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
-
"Project-Id-Version: Anti-Spam by CleanTalk\n"
|
6 |
-
"POT-Creation-Date: 2019-10-27 16:02+0000\n"
|
7 |
-
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
-
"Last-Translator: \n"
|
9 |
-
"Language-Team: \n"
|
10 |
-
"MIME-Version: 1.0\n"
|
11 |
-
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
-
"Content-Transfer-Encoding: 8bit\n"
|
13 |
-
"X-Generator: Loco https://localise.biz/\n"
|
14 |
-
"X-Poedit-Basepath: ..\n"
|
15 |
-
"X-Poedit-WPHeader: cleantalk.php\n"
|
16 |
-
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
-
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
18 |
-
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
19 |
-
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
20 |
-
"X-Poedit-SearchPath-0: .\n"
|
21 |
-
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
22 |
-
"Language: "
|
23 |
-
|
24 |
-
#: inc/classCleantalkComments.php:32 inc/cleantalk-comments.php:16
|
25 |
-
#: inc/cleantalk-users.php:15
|
26 |
-
msgid "Check for spam"
|
27 |
-
msgstr ""
|
28 |
-
|
29 |
-
#: inc/classCleantalkComments.php:33 inc/cleantalk-admin.php:350
|
30 |
-
#: inc/cleantalk-comments.php:16
|
31 |
-
msgid "Find spam comments"
|
32 |
-
msgstr ""
|
33 |
-
|
34 |
-
#: inc/classCleantalkComments.php:66 inc/cleantalk-comments.php:26
|
35 |
-
#: inc/cleantalk-users.php:25
|
36 |
-
msgid "Plugin Settings"
|
37 |
-
msgstr ""
|
38 |
-
|
39 |
-
#: inc/classCleantalkComments.php:76 inc/cleantalk-comments.php:35
|
40 |
-
#: inc/cleantalk-users.php:34
|
41 |
-
#, php-format
|
42 |
-
msgid ""
|
43 |
-
"Antispam hosting tariff does not allow you to use this feature. To do so, "
|
44 |
-
"you need to enter an Access Key in the %splugin settings%s."
|
45 |
-
msgstr ""
|
46 |
-
|
47 |
-
#: inc/classCleantalkComments.php:101 inc/cleantalk-comments.php:60
|
48 |
-
#: inc/cleantalk-users.php:60
|
49 |
-
msgid ""
|
50 |
-
"Ajax error. Process will be automatically restarted in 3 seconds. Status: "
|
51 |
-
msgstr ""
|
52 |
-
|
53 |
-
#: inc/classCleantalkComments.php:108 inc/cleantalk-comments.php:67
|
54 |
-
msgid ""
|
55 |
-
"Please wait for a while. CleanTalk is deleting spam comments. Comments left: "
|
56 |
-
msgstr ""
|
57 |
-
|
58 |
-
#: inc/classCleantalkComments.php:118 inc/cleantalk-comments.php:77
|
59 |
-
#: inc/cleantalk-users.php:77
|
60 |
-
msgid "Start check"
|
61 |
-
msgstr ""
|
62 |
-
|
63 |
-
#: inc/classCleantalkComments.php:119 inc/cleantalk-comments.php:78
|
64 |
-
#: inc/cleantalk-users.php:78
|
65 |
-
msgid "Continue check"
|
66 |
-
msgstr ""
|
67 |
-
|
68 |
-
#: inc/classCleantalkComments.php:120 inc/cleantalk-comments.php:79
|
69 |
-
msgid ""
|
70 |
-
"The plugin will check all comments against blacklists database and show you "
|
71 |
-
"senders that have spam activity on other websites."
|
72 |
-
msgstr ""
|
73 |
-
|
74 |
-
#: inc/classCleantalkComments.php:123 inc/cleantalk-comments.php:82
|
75 |
-
#: inc/cleantalk-users.php:82
|
76 |
-
msgid "Accurate check"
|
77 |
-
msgstr ""
|
78 |
-
|
79 |
-
#: inc/classCleantalkComments.php:125 inc/cleantalk-comments.php:84
|
80 |
-
msgid ""
|
81 |
-
"Allows to use comment's dates to perform more accurate check. Could "
|
82 |
-
"seriously slow down the check."
|
83 |
-
msgstr ""
|
84 |
-
|
85 |
-
#: inc/classCleantalkComments.php:128 inc/cleantalk-comments.php:87
|
86 |
-
#: inc/cleantalk-users.php:87
|
87 |
-
msgid "Specify date range"
|
88 |
-
msgstr ""
|
89 |
-
|
90 |
-
#: inc/classCleantalkComments.php:149 inc/cleantalk-comments.php:108
|
91 |
-
msgid ""
|
92 |
-
"Please wait! CleanTalk is checking all approved and pending comments via "
|
93 |
-
"blacklist database at cleantalk.org. You will have option to delete found "
|
94 |
-
"spam comments after plugin finish."
|
95 |
-
msgstr ""
|
96 |
-
|
97 |
-
#: inc/classCleantalkCommentsListTable.php:24
|
98 |
-
msgid "Author"
|
99 |
-
msgstr ""
|
100 |
-
|
101 |
-
#: inc/classCleantalkCommentsListTable.php:25 inc/cleantalk-comments.php:158
|
102 |
-
msgid "Comment"
|
103 |
-
msgstr ""
|
104 |
-
|
105 |
-
#: inc/classCleantalkCommentsListTable.php:26 inc/cleantalk-comments.php:159
|
106 |
-
msgid "In Response To"
|
107 |
-
msgstr ""
|
108 |
-
|
109 |
-
#: inc/classCleantalkCommentsListTable.php:33
|
110 |
-
msgid "No spam comments."
|
111 |
-
msgstr ""
|
112 |
-
|
113 |
-
#: inc/cleantalk-admin.php:27
|
114 |
-
#, php-format
|
115 |
-
msgid "Find spam %s"
|
116 |
-
msgstr ""
|
117 |
-
|
118 |
-
#: inc/cleantalk-admin.php:31
|
119 |
-
msgid "CleanTalk Anti-Spam Log"
|
120 |
-
msgstr ""
|
121 |
-
|
122 |
-
#: inc/cleantalk-admin.php:50
|
123 |
-
#, php-format
|
124 |
-
msgid "%sRefresh%s"
|
125 |
-
msgstr ""
|
126 |
-
|
127 |
-
#: inc/cleantalk-admin.php:51
|
128 |
-
#, php-format
|
129 |
-
msgid "%sConfigure%s"
|
130 |
-
msgstr ""
|
131 |
-
|
132 |
-
#: inc/cleantalk-admin.php:68
|
133 |
-
msgid "7 days anti-spam stats"
|
134 |
-
msgstr ""
|
135 |
-
|
136 |
-
#: inc/cleantalk-admin.php:72
|
137 |
-
msgid "Top 5 spam IPs blocked"
|
138 |
-
msgstr ""
|
139 |
-
|
140 |
-
#: inc/cleantalk-admin.php:78
|
141 |
-
msgid "Get Access key to activate Anti-Spam protection!"
|
142 |
-
msgstr ""
|
143 |
-
|
144 |
-
#: inc/cleantalk-admin.php:86
|
145 |
-
#, php-format
|
146 |
-
msgid "Something went wrong! Error: \"%s\"."
|
147 |
-
msgstr ""
|
148 |
-
|
149 |
-
#: inc/cleantalk-admin.php:90
|
150 |
-
msgid "Please, visit your dashboard."
|
151 |
-
msgstr ""
|
152 |
-
|
153 |
-
#: inc/cleantalk-admin.php:104
|
154 |
-
msgid "IP"
|
155 |
-
msgstr ""
|
156 |
-
|
157 |
-
#: inc/cleantalk-admin.php:105
|
158 |
-
msgid "Country"
|
159 |
-
msgstr ""
|
160 |
-
|
161 |
-
#: inc/cleantalk-admin.php:106
|
162 |
-
msgid "Block Count"
|
163 |
-
msgstr ""
|
164 |
-
|
165 |
-
#: inc/cleantalk-admin.php:134
|
166 |
-
#, php-format
|
167 |
-
msgid ""
|
168 |
-
"This is the count from the %s's cloud and could be different to admin bar "
|
169 |
-
"counters"
|
170 |
-
msgstr ""
|
171 |
-
|
172 |
-
#. %s: Number of spam messages
|
173 |
-
#: inc/cleantalk-admin.php:137
|
174 |
-
#, php-format
|
175 |
-
msgid ""
|
176 |
-
"%s%s%s has blocked %s spam for all time. The statistics are automatically "
|
177 |
-
"updated every 24 hours."
|
178 |
-
msgstr ""
|
179 |
-
|
180 |
-
#: inc/cleantalk-admin.php:148 inc/cleantalk-settings.php:544
|
181 |
-
#, php-format
|
182 |
-
msgid "Do you like CleanTalk? %sPost your feedback here%s."
|
183 |
-
msgstr ""
|
184 |
-
|
185 |
-
#: inc/cleantalk-admin.php:234
|
186 |
-
msgid "Translate"
|
187 |
-
msgstr ""
|
188 |
-
|
189 |
-
#: inc/cleantalk-admin.php:237
|
190 |
-
msgid "Start here"
|
191 |
-
msgstr ""
|
192 |
-
|
193 |
-
#: inc/cleantalk-admin.php:238
|
194 |
-
msgid "FAQ"
|
195 |
-
msgstr ""
|
196 |
-
|
197 |
-
#: inc/cleantalk-admin.php:239 inc/cleantalk-admin.php:644
|
198 |
-
#: inc/cleantalk-settings.php:575
|
199 |
-
msgid "Support"
|
200 |
-
msgstr ""
|
201 |
-
|
202 |
-
#: inc/cleantalk-admin.php:306 inc/cleantalk-settings.php:523
|
203 |
-
msgid "Hosting AntiSpam"
|
204 |
-
msgstr ""
|
205 |
-
|
206 |
-
#: inc/cleantalk-admin.php:333
|
207 |
-
msgid "Failed from timeout. Going to check comments again."
|
208 |
-
msgstr ""
|
209 |
-
|
210 |
-
#: inc/cleantalk-admin.php:334
|
211 |
-
msgid "Added"
|
212 |
-
msgstr ""
|
213 |
-
|
214 |
-
#: inc/cleantalk-admin.php:335 inc/cleantalk-admin.php:386
|
215 |
-
msgid "Deleted"
|
216 |
-
msgstr ""
|
217 |
-
|
218 |
-
#: inc/cleantalk-admin.php:336
|
219 |
-
msgid "comments"
|
220 |
-
msgstr ""
|
221 |
-
|
222 |
-
#: inc/cleantalk-admin.php:337
|
223 |
-
msgid "Delete all spam comments?"
|
224 |
-
msgstr ""
|
225 |
-
|
226 |
-
#: inc/cleantalk-admin.php:338
|
227 |
-
msgid "Delete checked comments?"
|
228 |
-
msgstr ""
|
229 |
-
|
230 |
-
#: inc/cleantalk-admin.php:339
|
231 |
-
#, php-format
|
232 |
-
msgid ""
|
233 |
-
"Total comments %s. Checked %s. Found %s spam comments. %s bad comments "
|
234 |
-
"(without IP or email)."
|
235 |
-
msgstr ""
|
236 |
-
|
237 |
-
#: inc/cleantalk-admin.php:340 inc/cleantalk-admin.php:393
|
238 |
-
#: inc/cleantalk-users.php:531
|
239 |
-
msgid "Please do backup of WordPress database before delete any accounts!"
|
240 |
-
msgstr ""
|
241 |
-
|
242 |
-
#: inc/cleantalk-admin.php:351
|
243 |
-
msgid "The sender has been whitelisted."
|
244 |
-
msgstr ""
|
245 |
-
|
246 |
-
#: inc/cleantalk-admin.php:352
|
247 |
-
msgid "The sender has been blacklisted."
|
248 |
-
msgstr ""
|
249 |
-
|
250 |
-
#: inc/cleantalk-admin.php:353 inc/cleantalk-public.php:3321
|
251 |
-
#, php-format
|
252 |
-
msgid "Feedback has been sent to %sCleanTalk Dashboard%s."
|
253 |
-
msgstr ""
|
254 |
-
|
255 |
-
#: inc/cleantalk-admin.php:383
|
256 |
-
msgid "Failed from timeout. Going to check users again."
|
257 |
-
msgstr ""
|
258 |
-
|
259 |
-
#: inc/cleantalk-admin.php:384
|
260 |
-
msgid "Failed from timeout. Going to run a new attempt to delete spam users."
|
261 |
-
msgstr ""
|
262 |
-
|
263 |
-
#: inc/cleantalk-admin.php:385
|
264 |
-
msgid "Inserted"
|
265 |
-
msgstr ""
|
266 |
-
|
267 |
-
#: inc/cleantalk-admin.php:387
|
268 |
-
msgid "users."
|
269 |
-
msgstr ""
|
270 |
-
|
271 |
-
#: inc/cleantalk-admin.php:388
|
272 |
-
msgid "Delete all spam users?"
|
273 |
-
msgstr ""
|
274 |
-
|
275 |
-
#: inc/cleantalk-admin.php:389
|
276 |
-
msgid "Delete checked users?"
|
277 |
-
msgstr ""
|
278 |
-
|
279 |
-
#: inc/cleantalk-admin.php:392
|
280 |
-
#, php-format
|
281 |
-
msgid ""
|
282 |
-
"Total users %s, checked %s, found %s spam users and %s bad users (without IP "
|
283 |
-
"or email)"
|
284 |
-
msgstr ""
|
285 |
-
|
286 |
-
#: inc/cleantalk-admin.php:401
|
287 |
-
msgid "Find spam-users"
|
288 |
-
msgstr ""
|
289 |
-
|
290 |
-
#: inc/cleantalk-admin.php:449
|
291 |
-
#, php-format
|
292 |
-
msgid "Unable to get Access key automatically: %s"
|
293 |
-
msgstr ""
|
294 |
-
|
295 |
-
#: inc/cleantalk-admin.php:450
|
296 |
-
msgid "Get the Access key"
|
297 |
-
msgstr ""
|
298 |
-
|
299 |
-
#: inc/cleantalk-admin.php:459
|
300 |
-
#, php-format
|
301 |
-
msgid "Please enter Access Key in %s settings to enable anti spam protection!"
|
302 |
-
msgstr ""
|
303 |
-
|
304 |
-
#: inc/cleantalk-admin.php:469
|
305 |
-
#, php-format
|
306 |
-
msgid "%s trial period ends, please upgrade to %s!"
|
307 |
-
msgstr ""
|
308 |
-
|
309 |
-
#: inc/cleantalk-admin.php:481
|
310 |
-
msgid "RENEW ANTI-SPAM"
|
311 |
-
msgstr ""
|
312 |
-
|
313 |
-
#: inc/cleantalk-admin.php:482
|
314 |
-
msgid "next year"
|
315 |
-
msgstr ""
|
316 |
-
|
317 |
-
#: inc/cleantalk-admin.php:486
|
318 |
-
#, php-format
|
319 |
-
msgid "Please renew your anti-spam license for %s."
|
320 |
-
msgstr ""
|
321 |
-
|
322 |
-
#: inc/cleantalk-admin.php:511
|
323 |
-
msgid "Make it right!"
|
324 |
-
msgstr ""
|
325 |
-
|
326 |
-
#: inc/cleantalk-admin.php:513
|
327 |
-
#, php-format
|
328 |
-
msgid "%sGet premium%s"
|
329 |
-
msgstr ""
|
330 |
-
|
331 |
-
#: inc/cleantalk-admin.php:552
|
332 |
-
msgid "Since"
|
333 |
-
msgstr ""
|
334 |
-
|
335 |
-
#: inc/cleantalk-admin.php:558
|
336 |
-
msgid ""
|
337 |
-
"All / Allowed / Blocked submissions. The number of submissions is being "
|
338 |
-
"counted since CleanTalk plugin installation."
|
339 |
-
msgstr ""
|
340 |
-
|
341 |
-
#: inc/cleantalk-admin.php:558
|
342 |
-
msgid "All"
|
343 |
-
msgstr ""
|
344 |
-
|
345 |
-
#: inc/cleantalk-admin.php:566
|
346 |
-
msgid ""
|
347 |
-
"Allowed / Blocked submissions. The number of submissions for past 24 hours. "
|
348 |
-
msgstr ""
|
349 |
-
|
350 |
-
#: inc/cleantalk-admin.php:566
|
351 |
-
msgid "Day"
|
352 |
-
msgstr ""
|
353 |
-
|
354 |
-
#: inc/cleantalk-admin.php:572
|
355 |
-
msgid ""
|
356 |
-
"All / Blocked events. Access attempts regitred by SpamFireWall counted since "
|
357 |
-
"the last plugin activation."
|
358 |
-
msgstr ""
|
359 |
-
|
360 |
-
#: inc/cleantalk-admin.php:582
|
361 |
-
msgid ""
|
362 |
-
"Allowed / Blocked submissions. The number of submissions is being counted "
|
363 |
-
"since "
|
364 |
-
msgstr ""
|
365 |
-
|
366 |
-
#: inc/cleantalk-admin.php:593
|
367 |
-
msgid "dashboard"
|
368 |
-
msgstr ""
|
369 |
-
|
370 |
-
#: inc/cleantalk-admin.php:600
|
371 |
-
msgid "Settings"
|
372 |
-
msgstr ""
|
373 |
-
|
374 |
-
#: inc/cleantalk-admin.php:608
|
375 |
-
msgid "Bulk spam comments removal tool."
|
376 |
-
msgstr ""
|
377 |
-
|
378 |
-
#: inc/cleantalk-admin.php:608 inc/cleantalk-settings.php:882
|
379 |
-
msgid "Check comments for spam"
|
380 |
-
msgstr ""
|
381 |
-
|
382 |
-
#: inc/cleantalk-admin.php:618 inc/cleantalk-settings.php:885
|
383 |
-
msgid "Check users for spam"
|
384 |
-
msgstr ""
|
385 |
-
|
386 |
-
#: inc/cleantalk-admin.php:627
|
387 |
-
msgid "Reset first counter"
|
388 |
-
msgstr ""
|
389 |
-
|
390 |
-
#: inc/cleantalk-admin.php:635
|
391 |
-
msgid "Reset all counters"
|
392 |
-
msgstr ""
|
393 |
-
|
394 |
-
#: inc/cleantalk-comments.php:221 inc/cleantalk-users.php:220
|
395 |
-
msgid "Approve"
|
396 |
-
msgstr ""
|
397 |
-
|
398 |
-
#: inc/cleantalk-comments.php:223 inc/cleantalk-users.php:222
|
399 |
-
msgid "Delete"
|
400 |
-
msgstr ""
|
401 |
-
|
402 |
-
#: inc/cleantalk-comments.php:265
|
403 |
-
msgid "Delete all comments from the list"
|
404 |
-
msgstr ""
|
405 |
-
|
406 |
-
#: inc/cleantalk-comments.php:266 inc/cleantalk-users.php:268
|
407 |
-
msgid "Delete selected"
|
408 |
-
msgstr ""
|
409 |
-
|
410 |
-
#: inc/cleantalk-comments.php:270
|
411 |
-
msgid "Insert comments"
|
412 |
-
msgstr ""
|
413 |
-
|
414 |
-
#: inc/cleantalk-comments.php:271
|
415 |
-
msgid "Delete comments"
|
416 |
-
msgstr ""
|
417 |
-
|
418 |
-
#: inc/cleantalk-comments.php:276 inc/cleantalk-users.php:279
|
419 |
-
msgid ""
|
420 |
-
"There is some differencies between blacklists database and our API "
|
421 |
-
"mechanisms. Blacklists shows all history of spam activity, but our API (that "
|
422 |
-
"used in spam checking) used another parameters, too: last day of activity, "
|
423 |
-
"number of spam attacks during last days etc. This mechanisms help us to "
|
424 |
-
"reduce number of false positivitie. So, there is nothing strange, if some "
|
425 |
-
"emails/IPs will be not found by this checking."
|
426 |
-
msgstr ""
|
427 |
-
|
428 |
-
#: inc/cleantalk-comments.php:281 inc/cleantalk-users.php:284
|
429 |
-
msgid "Stop deletion"
|
430 |
-
msgstr ""
|
431 |
-
|
432 |
-
#: inc/cleantalk-comments.php:495
|
433 |
-
#, php-format
|
434 |
-
msgid ""
|
435 |
-
"Total comments %s. Checked %s. Last check %s. Found %s spam comments. %s bad "
|
436 |
-
"comments (without IP or email)."
|
437 |
-
msgstr ""
|
438 |
-
|
439 |
-
#: inc/cleantalk-comments.php:499
|
440 |
-
msgid "Please do backup of WordPress database before delete any comments!"
|
441 |
-
msgstr ""
|
442 |
-
|
443 |
-
#: inc/cleantalk-public.php:500 inc/cleantalk-public.php:641
|
444 |
-
#: inc/cleantalk-public.php:743 inc/cleantalk-public.php:2363
|
445 |
-
#: inc/cleantalk-public.php:3052
|
446 |
-
msgid "Spam protection by CleanTalk"
|
447 |
-
msgstr ""
|
448 |
-
|
449 |
-
#: inc/cleantalk-public.php:1233 inc/cleantalk-public.php:1361
|
450 |
-
#: inc/cleantalk-public.php:1379
|
451 |
-
msgid "Spam protection"
|
452 |
-
msgstr ""
|
453 |
-
|
454 |
-
#: inc/cleantalk-public.php:1332
|
455 |
-
msgid "CleanTalk AntiSpam: This message is possible spam."
|
456 |
-
msgstr ""
|
457 |
-
|
458 |
-
#: inc/cleantalk-public.php:1333
|
459 |
-
msgid "You could check it in CleanTalk's anti-spam database:"
|
460 |
-
msgstr ""
|
461 |
-
|
462 |
-
#: inc/cleantalk-public.php:1569
|
463 |
-
#, php-format
|
464 |
-
msgid "Registration approved by %s."
|
465 |
-
msgstr ""
|
466 |
-
|
467 |
-
#: inc/cleantalk-public.php:1849
|
468 |
-
msgid "CleanTalk AntiSpam: This registration is spam."
|
469 |
-
msgstr ""
|
470 |
-
|
471 |
-
#: inc/cleantalk-public.php:1850 inc/cleantalk-public.php:2219
|
472 |
-
#: inc/cleantalk-public.php:2387 inc/cleantalk-public.php:2542
|
473 |
-
msgid "CleanTalk's anti-spam database:"
|
474 |
-
msgstr ""
|
475 |
-
|
476 |
-
#: inc/cleantalk-public.php:2218 inc/cleantalk-public.php:2386
|
477 |
-
#: inc/cleantalk-public.php:2541
|
478 |
-
msgid "CleanTalk AntiSpam: This message is spam."
|
479 |
-
msgstr ""
|
480 |
-
|
481 |
-
#: inc/cleantalk-public.php:2666
|
482 |
-
msgid "Comment approved. Anti-spam by CleanTalk."
|
483 |
-
msgstr ""
|
484 |
-
|
485 |
-
#: inc/cleantalk-public.php:3219
|
486 |
-
msgid "Attention, please!"
|
487 |
-
msgstr ""
|
488 |
-
|
489 |
-
#: inc/cleantalk-public.php:3220
|
490 |
-
#, php-format
|
491 |
-
msgid "\"%s\" plugin error on your site \"%s\":"
|
492 |
-
msgstr ""
|
493 |
-
|
494 |
-
#: inc/cleantalk-public.php:3222
|
495 |
-
#, php-format
|
496 |
-
msgid "[%s] \"%s\" error!"
|
497 |
-
msgstr ""
|
498 |
-
|
499 |
-
#: inc/cleantalk-public.php:3271
|
500 |
-
msgid ""
|
501 |
-
"By using this form you agree with the storage and processing of your data by "
|
502 |
-
"using the Privacy Policy on this website."
|
503 |
-
msgstr ""
|
504 |
-
|
505 |
-
#: inc/cleantalk-public.php:3319
|
506 |
-
msgid "Error
|
507 |
-
msgstr ""
|
508 |
-
|
509 |
-
#: inc/cleantalk-public.php:3320
|
510 |
-
msgid "Feedback wasn't sent. There is no associated request."
|
511 |
-
msgstr ""
|
512 |
-
|
513 |
-
#: inc/cleantalk-public.php:3364
|
514 |
-
msgid "Sender info"
|
515 |
-
msgstr ""
|
516 |
-
|
517 |
-
#: inc/cleantalk-public.php:3367
|
518 |
-
msgid "by"
|
519 |
-
msgstr ""
|
520 |
-
|
521 |
-
#: inc/cleantalk-public.php:3378
|
522 |
-
msgid "No email"
|
523 |
-
msgstr ""
|
524 |
-
|
525 |
-
#: inc/cleantalk-public.php:3388
|
526 |
-
msgid "No IP"
|
527 |
-
msgstr ""
|
528 |
-
|
529 |
-
#: inc/cleantalk-public.php:3391
|
530 |
-
msgid "Mark as spam"
|
531 |
-
msgstr ""
|
532 |
-
|
533 |
-
#: inc/cleantalk-public.php:3392
|
534 |
-
msgid "Unspam"
|
535 |
-
msgstr ""
|
536 |
-
|
537 |
-
#: inc/cleantalk-public.php:3394
|
538 |
-
msgid "Marked as spam."
|
539 |
-
msgstr ""
|
540 |
-
|
541 |
-
#: inc/cleantalk-public.php:3395
|
542 |
-
msgid "Marked as not spam."
|
543 |
-
msgstr ""
|
544 |
-
|
545 |
-
#: inc/cleantalk-settings.php:96
|
546 |
-
msgid "SpamFireWall"
|
547 |
-
msgstr ""
|
548 |
-
|
549 |
-
#: inc/cleantalk-settings.php:97
|
550 |
-
msgid ""
|
551 |
-
"This option allows to filter spam bots before they access website. Also "
|
552 |
-
"reduces CPU usage on hosting server and accelerates pages load time."
|
553 |
-
msgstr ""
|
554 |
-
|
555 |
-
#: inc/cleantalk-settings.php:104
|
556 |
-
msgid "Forms to protect"
|
557 |
-
msgstr ""
|
558 |
-
|
559 |
-
#: inc/cleantalk-settings.php:110
|
560 |
-
msgid "Advanced settings"
|
561 |
-
msgstr ""
|
562 |
-
|
563 |
-
#: inc/cleantalk-settings.php:117
|
564 |
-
msgid "Registration Forms"
|
565 |
-
msgstr ""
|
566 |
-
|
567 |
-
#: inc/cleantalk-settings.php:118
|
568 |
-
msgid "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
569 |
-
msgstr ""
|
570 |
-
|
571 |
-
#: inc/cleantalk-settings.php:121
|
572 |
-
msgid "Comments form"
|
573 |
-
msgstr ""
|
574 |
-
|
575 |
-
#: inc/cleantalk-settings.php:122
|
576 |
-
msgid "WordPress, JetPack, WooCommerce."
|
577 |
-
msgstr ""
|
578 |
-
|
579 |
-
#: inc/cleantalk-settings.php:125 inc/cleantalk-settings.php:761
|
580 |
-
msgid "Contact forms"
|
581 |
-
msgstr ""
|
582 |
-
|
583 |
-
#: inc/cleantalk-settings.php:126
|
584 |
-
msgid ""
|
585 |
-
"Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, "
|
586 |
-
"WordPress Landing Pages, Gravity Forms."
|
587 |
-
msgstr ""
|
588 |
-
|
589 |
-
#: inc/cleantalk-settings.php:129 inc/cleantalk-settings.php:762
|
590 |
-
msgid "Custom contact forms"
|
591 |
-
msgstr ""
|
592 |
-
|
593 |
-
#: inc/cleantalk-settings.php:130
|
594 |
-
msgid "Anti spam test for any WordPress themes or contacts forms."
|
595 |
-
msgstr ""
|
596 |
-
|
597 |
-
#: inc/cleantalk-settings.php:133 inc/cleantalk-settings.php:775
|
598 |
-
msgid "WooCommerce checkout form"
|
599 |
-
msgstr ""
|
600 |
-
|
601 |
-
#: inc/cleantalk-settings.php:134
|
602 |
-
msgid "Anti spam test for WooCommerce checkout form."
|
603 |
-
msgstr ""
|
604 |
-
|
605 |
-
#: inc/cleantalk-settings.php:138
|
606 |
-
msgid "Spam test for registration during checkout"
|
607 |
-
msgstr ""
|
608 |
-
|
609 |
-
#: inc/cleantalk-settings.php:139
|
610 |
-
msgid ""
|
611 |
-
"Enable anti spam test for registration process which during woocommerce's "
|
612 |
-
"checkout."
|
613 |
-
msgstr ""
|
614 |
-
|
615 |
-
#: inc/cleantalk-settings.php:145
|
616 |
-
msgid "Test default Wordpress search form for spam"
|
617 |
-
msgstr ""
|
618 |
-
|
619 |
-
#: inc/cleantalk-settings.php:146
|
620 |
-
msgid "Spam protection for Search form."
|
621 |
-
msgstr ""
|
622 |
-
|
623 |
-
#: inc/cleantalk-settings.php:148
|
624 |
-
#, php-format
|
625 |
-
msgid "Read more about %sspam protection for Search form%s on our blog."
|
626 |
-
msgstr ""
|
627 |
-
|
628 |
-
#: inc/cleantalk-settings.php:156
|
629 |
-
msgid "Protect external forms"
|
630 |
-
msgstr ""
|
631 |
-
|
632 |
-
#: inc/cleantalk-settings.php:157
|
633 |
-
msgid ""
|
634 |
-
"Turn this option on to protect forms on your WordPress that send data to "
|
635 |
-
"third-part servers (like MailChimp)."
|
636 |
-
msgstr ""
|
637 |
-
|
638 |
-
#: inc/cleantalk-settings.php:161
|
639 |
-
msgid "Capture buffer"
|
640 |
-
msgstr ""
|
641 |
-
|
642 |
-
#: inc/cleantalk-settings.php:162
|
643 |
-
msgid ""
|
644 |
-
"This setting gives you more sophisticated and strengthened protection for "
|
645 |
-
"external forms. But it could break plugins which use a buffer like Ninja "
|
646 |
-
"Forms."
|
647 |
-
msgstr ""
|
648 |
-
|
649 |
-
#: inc/cleantalk-settings.php:167
|
650 |
-
msgid "Protect internal forms"
|
651 |
-
msgstr ""
|
652 |
-
|
653 |
-
#: inc/cleantalk-settings.php:168
|
654 |
-
msgid ""
|
655 |
-
"This option will enable protection for custom (hand-made) AJAX forms with "
|
656 |
-
"PHP scripts handlers on your WordPress."
|
657 |
-
msgstr ""
|
658 |
-
|
659 |
-
#: inc/cleantalk-settings.php:175
|
660 |
-
msgid "Comments and Messages"
|
661 |
-
msgstr ""
|
662 |
-
|
663 |
-
#: inc/cleantalk-settings.php:178
|
664 |
-
msgid "BuddyPress Private Messages"
|
665 |
-
msgstr ""
|
666 |
-
|
667 |
-
#: inc/cleantalk-settings.php:179
|
668 |
-
msgid "Check buddyPress private messages."
|
669 |
-
msgstr ""
|
670 |
-
|
671 |
-
#: inc/cleantalk-settings.php:182
|
672 |
-
msgid "Don't check trusted user's comments"
|
673 |
-
msgstr ""
|
674 |
-
|
675 |
-
#: inc/cleantalk-settings.php:183
|
676 |
-
#, php-format
|
677 |
-
msgid "Don't check comments for users with above %d comments."
|
678 |
-
msgstr ""
|
679 |
-
|
680 |
-
#: inc/cleantalk-settings.php:186
|
681 |
-
msgid "Automatically delete spam comments"
|
682 |
-
msgstr ""
|
683 |
-
|
684 |
-
#: inc/cleantalk-settings.php:187
|
685 |
-
#, php-format
|
686 |
-
msgid "Delete spam comments older than %d days."
|
687 |
-
msgstr ""
|
688 |
-
|
689 |
-
#: inc/cleantalk-settings.php:190
|
690 |
-
msgid "Remove links from approved comments"
|
691 |
-
msgstr ""
|
692 |
-
|
693 |
-
#: inc/cleantalk-settings.php:191
|
694 |
-
msgid "Remove links from approved comments. Replace it with \"[Link deleted]\""
|
695 |
-
msgstr ""
|
696 |
-
|
697 |
-
#: inc/cleantalk-settings.php:194
|
698 |
-
msgid "Show links to check Emails, IPs for spam."
|
699 |
-
msgstr ""
|
700 |
-
|
701 |
-
#: inc/cleantalk-settings.php:195
|
702 |
-
msgid ""
|
703 |
-
"Shows little icon near IP addresses and Emails allowing you to check it via "
|
704 |
-
"CleanTalk's database. Also allowing you to manage comments from the public "
|
705 |
-
"post's page."
|
706 |
-
msgstr ""
|
707 |
-
|
708 |
-
#: inc/cleantalk-settings.php:203
|
709 |
-
msgid "Data Processing"
|
710 |
-
msgstr ""
|
711 |
-
|
712 |
-
#: inc/cleantalk-settings.php:206
|
713 |
-
msgid "Protect logged in Users"
|
714 |
-
msgstr ""
|
715 |
-
|
716 |
-
#: inc/cleantalk-settings.php:207
|
717 |
-
msgid ""
|
718 |
-
"Turn this option on to check for spam any submissions (comments, contact "
|
719 |
-
"forms and etc.) from registered Users."
|
720 |
-
msgstr ""
|
721 |
-
|
722 |
-
#: inc/cleantalk-settings.php:210
|
723 |
-
msgid "Use AJAX for JavaScript check"
|
724 |
-
msgstr ""
|
725 |
-
|
726 |
-
#: inc/cleantalk-settings.php:211
|
727 |
-
msgid ""
|
728 |
-
"Options helps protect WordPress against spam with any caching plugins. Turn "
|
729 |
-
"this option on to avoid issues with caching plugins."
|
730 |
-
msgstr ""
|
731 |
-
|
732 |
-
#: inc/cleantalk-settings.php:214
|
733 |
-
msgid "Use static keys for JS check."
|
734 |
-
msgstr ""
|
735 |
-
|
736 |
-
#: inc/cleantalk-settings.php:215
|
737 |
-
msgid ""
|
738 |
-
"Could help if you have cache for AJAX requests and you are dealing with "
|
739 |
-
"false positives. Slightly decreases protection quality. Auto - Static key "
|
740 |
-
"will be used if caching plugin is spotted."
|
741 |
-
msgstr ""
|
742 |
-
|
743 |
-
#: inc/cleantalk-settings.php:223
|
744 |
-
msgid "Check all post data"
|
745 |
-
msgstr ""
|
746 |
-
|
747 |
-
#: inc/cleantalk-settings.php:224
|
748 |
-
msgid ""
|
749 |
-
"Check all POST submissions from website visitors. Enable this option if you "
|
750 |
-
"have spam misses on website."
|
751 |
-
msgstr ""
|
752 |
-
|
753 |
-
#: inc/cleantalk-settings.php:226
|
754 |
-
msgid " Or you don`t have records about missed spam here:"
|
755 |
-
msgstr ""
|
756 |
-
|
757 |
-
#: inc/cleantalk-settings.php:226
|
758 |
-
msgid "CleanTalk dashboard"
|
759 |
-
msgstr ""
|
760 |
-
|
761 |
-
#: inc/cleantalk-settings.php:229
|
762 |
-
msgid "СAUTION! Option can catch POST requests in WordPress backend"
|
763 |
-
msgstr ""
|
764 |
-
|
765 |
-
#: inc/cleantalk-settings.php:232
|
766 |
-
msgid "Set cookies"
|
767 |
-
msgstr ""
|
768 |
-
|
769 |
-
#: inc/cleantalk-settings.php:233
|
770 |
-
msgid ""
|
771 |
-
"Turn this option off to deny plugin generates any cookies on website front-"
|
772 |
-
"end. This option is helpful if you use Varnish. But most of contact forms "
|
773 |
-
"will not be protected if the option is turned off! <b>Warning: We strongly "
|
774 |
-
"recommend you to enable this otherwise it could cause false positives spam "
|
775 |
-
"detection.</b>"
|
776 |
-
msgstr ""
|
777 |
-
|
778 |
-
#: inc/cleantalk-settings.php:237
|
779 |
-
msgid "Use alternative mechanism for cookies"
|
780 |
-
msgstr ""
|
781 |
-
|
782 |
-
#: inc/cleantalk-settings.php:238 inc/cleantalk-settings.php:360
|
783 |
-
msgid "Doesn't use cookie or PHP sessions. Collect data for all types of bots."
|
784 |
-
msgstr ""
|
785 |
-
|
786 |
-
#: inc/cleantalk-settings.php:243
|
787 |
-
msgid "Use SSL"
|
788 |
-
msgstr ""
|
789 |
-
|
790 |
-
#: inc/cleantalk-settings.php:244
|
791 |
-
msgid "Turn this option on to use encrypted (SSL) connection with servers."
|
792 |
-
msgstr ""
|
793 |
-
|
794 |
-
#: inc/cleantalk-settings.php:247
|
795 |
-
msgid "Use Wordpress HTTP API"
|
796 |
-
msgstr ""
|
797 |
-
|
798 |
-
#: inc/cleantalk-settings.php:248
|
799 |
-
msgid ""
|
800 |
-
"Alternative way to connect the Cloud. Use this if you have connection "
|
801 |
-
"problems."
|
802 |
-
msgstr ""
|
803 |
-
|
804 |
-
#: inc/cleantalk-settings.php:255
|
805 |
-
msgid "Exclusions"
|
806 |
-
msgstr ""
|
807 |
-
|
808 |
-
#: inc/cleantalk-settings.php:259
|
809 |
-
msgid "URL exclusions"
|
810 |
-
msgstr ""
|
811 |
-
|
812 |
-
#: inc/cleantalk-settings.php:260
|
813 |
-
msgid "You could type here URL you want to exclude. Use comma as separator."
|
814 |
-
msgstr ""
|
815 |
-
|
816 |
-
#: inc/cleantalk-settings.php:264
|
817 |
-
msgid "Use Regular Expression in URL Exclusions"
|
818 |
-
msgstr ""
|
819 |
-
|
820 |
-
#: inc/cleantalk-settings.php:268
|
821 |
-
msgid "Field name exclusions"
|
822 |
-
msgstr ""
|
823 |
-
|
824 |
-
#: inc/cleantalk-settings.php:269
|
825 |
-
msgid ""
|
826 |
-
"You could type here fields names you want to exclude. Use comma as separator."
|
827 |
-
msgstr ""
|
828 |
-
|
829 |
-
#: inc/cleantalk-settings.php:273
|
830 |
-
msgid "Use Regular Expression in Field Exclusions"
|
831 |
-
msgstr ""
|
832 |
-
|
833 |
-
#: inc/cleantalk-settings.php:280
|
834 |
-
msgid "Roles which bypass spam test. Hold CTRL to select multiple roles."
|
835 |
-
msgstr ""
|
836 |
-
|
837 |
-
#: inc/cleantalk-settings.php:287
|
838 |
-
msgid "Admin bar"
|
839 |
-
msgstr ""
|
840 |
-
|
841 |
-
#: inc/cleantalk-settings.php:294
|
842 |
-
msgid "Show statistics in admin bar"
|
843 |
-
msgstr ""
|
844 |
-
|
845 |
-
#: inc/cleantalk-settings.php:295
|
846 |
-
msgid ""
|
847 |
-
"Show/hide icon in top level menu in WordPress backend. The number of "
|
848 |
-
"submissions is being counted for past 24 hours."
|
849 |
-
msgstr ""
|
850 |
-
|
851 |
-
#: inc/cleantalk-settings.php:299
|
852 |
-
msgid "Show All-time counter"
|
853 |
-
msgstr ""
|
854 |
-
|
855 |
-
#: inc/cleantalk-settings.php:300
|
856 |
-
msgid ""
|
857 |
-
"Display all-time requests counter in the admin bar. Counter displays number "
|
858 |
-
"of requests since plugin installation."
|
859 |
-
msgstr ""
|
860 |
-
|
861 |
-
#: inc/cleantalk-settings.php:305
|
862 |
-
msgid "Show 24 hours counter"
|
863 |
-
msgstr ""
|
864 |
-
|
865 |
-
#: inc/cleantalk-settings.php:306
|
866 |
-
msgid ""
|
867 |
-
"Display daily requests counter in the admin bar. Counter displays number of "
|
868 |
-
"requests of the past 24 hours."
|
869 |
-
msgstr ""
|
870 |
-
|
871 |
-
#: inc/cleantalk-settings.php:311
|
872 |
-
msgid "SpamFireWall counter"
|
873 |
-
msgstr ""
|
874 |
-
|
875 |
-
#: inc/cleantalk-settings.php:312
|
876 |
-
msgid ""
|
877 |
-
"Display SpamFireWall requests in the admin bar. Counter displays number of "
|
878 |
-
"requests since plugin installation."
|
879 |
-
msgstr ""
|
880 |
-
|
881 |
-
#: inc/cleantalk-settings.php:325
|
882 |
-
msgid "Collect details about browsers"
|
883 |
-
msgstr ""
|
884 |
-
|
885 |
-
#: inc/cleantalk-settings.php:326
|
886 |
-
msgid ""
|
887 |
-
"Checking this box you allow plugin store information about screen size and "
|
888 |
-
"browser plugins of website visitors. The option in a beta state."
|
889 |
-
msgstr ""
|
890 |
-
|
891 |
-
#: inc/cleantalk-settings.php:330
|
892 |
-
msgid "Send connection reports"
|
893 |
-
msgstr ""
|
894 |
-
|
895 |
-
#: inc/cleantalk-settings.php:331
|
896 |
-
msgid ""
|
897 |
-
"Checking this box you allow plugin to send the information about your "
|
898 |
-
"connection. The option in a beta state."
|
899 |
-
msgstr ""
|
900 |
-
|
901 |
-
#: inc/cleantalk-settings.php:335
|
902 |
-
msgid "Async JavaScript loading"
|
903 |
-
msgstr ""
|
904 |
-
|
905 |
-
#: inc/cleantalk-settings.php:336
|
906 |
-
msgid ""
|
907 |
-
"Use async loading for scripts. Warning: This could reduce filtration quality."
|
908 |
-
msgstr ""
|
909 |
-
|
910 |
-
#: inc/cleantalk-settings.php:340
|
911 |
-
msgid "Allow to add GDPR notice via shortcode"
|
912 |
-
msgstr ""
|
913 |
-
|
914 |
-
#: inc/cleantalk-settings.php:341
|
915 |
-
msgid ""
|
916 |
-
" Adds small checkbox under your website form. To add it you should use the "
|
917 |
-
"shortcode on the form's page: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
918 |
-
msgstr ""
|
919 |
-
|
920 |
-
#: inc/cleantalk-settings.php:346
|
921 |
-
msgid "GDPR text notice"
|
922 |
-
msgstr ""
|
923 |
-
|
924 |
-
#: inc/cleantalk-settings.php:347
|
925 |
-
msgid "This text will be added as a description to the GDPR checkbox."
|
926 |
-
msgstr ""
|
927 |
-
|
928 |
-
#: inc/cleantalk-settings.php:353
|
929 |
-
msgid "Store visited URLs"
|
930 |
-
msgstr ""
|
931 |
-
|
932 |
-
#: inc/cleantalk-settings.php:354
|
933 |
-
msgid ""
|
934 |
-
"Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits "
|
935 |
-
"form on the site. You can see stored visited URLS for each visitor in your "
|
936 |
-
"Dashboard. Turn the option on to improve Anti-Spam protection."
|
937 |
-
msgstr ""
|
938 |
-
|
939 |
-
#: inc/cleantalk-settings.php:359
|
940 |
-
msgid "Use cookies less sessions"
|
941 |
-
msgstr ""
|
942 |
-
|
943 |
-
#: inc/cleantalk-settings.php:366
|
944 |
-
msgid ""
|
945 |
-
"Notify users with selected roles about new approved comments. Hold CTRL to "
|
946 |
-
"select multiple roles."
|
947 |
-
msgstr ""
|
948 |
-
|
949 |
-
#: inc/cleantalk-settings.php:367
|
950 |
-
#, php-format
|
951 |
-
msgid "If enabled, overrides similar Wordpress %sdiscussion settings%s."
|
952 |
-
msgstr ""
|
953 |
-
|
954 |
-
#: inc/cleantalk-settings.php:380
|
955 |
-
msgid "Complete deactivation"
|
956 |
-
msgstr ""
|
957 |
-
|
958 |
-
#: inc/cleantalk-settings.php:381
|
959 |
-
msgid "Leave no trace in the system after deactivation."
|
960 |
-
msgstr ""
|
961 |
-
|
962 |
-
#: inc/cleantalk-settings.php:398
|
963 |
-
msgid "Enable White Label Mode"
|
964 |
-
msgstr ""
|
965 |
-
|
966 |
-
#: inc/cleantalk-settings.php:399
|
967 |
-
#, php-format
|
968 |
-
msgid "Learn more information %shere%s."
|
969 |
-
msgstr ""
|
970 |
-
|
971 |
-
#: inc/cleantalk-settings.php:404
|
972 |
-
msgid "Hoster API Key"
|
973 |
-
msgstr ""
|
974 |
-
|
975 |
-
#: inc/cleantalk-settings.php:405
|
976 |
-
#, php-format
|
977 |
-
msgid "You can get it in %sCleantalk's Control Panel%s"
|
978 |
-
msgstr ""
|
979 |
-
|
980 |
-
#: inc/cleantalk-settings.php:413
|
981 |
-
msgid "Plugin name"
|
982 |
-
msgstr ""
|
983 |
-
|
984 |
-
#: inc/cleantalk-settings.php:414
|
985 |
-
#, php-format
|
986 |
-
msgid "Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s"
|
987 |
-
msgstr ""
|
988 |
-
|
989 |
-
#: inc/cleantalk-settings.php:423
|
990 |
-
msgid "Allow users to use other key"
|
991 |
-
msgstr ""
|
992 |
-
|
993 |
-
#: inc/cleantalk-settings.php:424
|
994 |
-
msgid ""
|
995 |
-
"Allow users to use different Access key in their plugin settings on child "
|
996 |
-
"blogs. They could use different CleanTalk account."
|
997 |
-
msgstr ""
|
998 |
-
|
999 |
-
#: inc/cleantalk-settings.php:427
|
1000 |
-
msgid ""
|
1001 |
-
"Constant <b>CLEANTALK_ACCESS_KEY</b> is set. All websites will use API key "
|
1002 |
-
"from this constant. Look into wp-config.php"
|
1003 |
-
msgstr ""
|
1004 |
-
|
1005 |
-
#: inc/cleantalk-settings.php:533
|
1006 |
-
msgid "CleanTalk's tech support:"
|
1007 |
-
msgstr ""
|
1008 |
-
|
1009 |
-
#: inc/cleantalk-settings.php:539
|
1010 |
-
msgid "Plugin Homepage at"
|
1011 |
-
msgstr ""
|
1012 |
-
|
1013 |
-
#: inc/cleantalk-settings.php:540
|
1014 |
-
msgid "GDPR compliance"
|
1015 |
-
msgstr ""
|
1016 |
-
|
1017 |
-
#: inc/cleantalk-settings.php:541
|
1018 |
-
msgid "Use s@cleantalk.org to test plugin in any WordPress form."
|
1019 |
-
msgstr ""
|
1020 |
-
|
1021 |
-
#: inc/cleantalk-settings.php:542
|
1022 |
-
msgid "CleanTalk is registered Trademark. All rights reserved."
|
1023 |
-
msgstr ""
|
1024 |
-
|
1025 |
-
#: inc/cleantalk-settings.php:559
|
1026 |
-
#, php-format
|
1027 |
-
msgid "%s has blocked <b>%s</b> spam."
|
1028 |
-
msgstr ""
|
1029 |
-
|
1030 |
-
#: inc/cleantalk-settings.php:571
|
1031 |
-
msgid "Click here to get anti-spam statistics"
|
1032 |
-
msgstr ""
|
1033 |
-
|
1034 |
-
#: inc/cleantalk-settings.php:614
|
1035 |
-
#, php-format
|
1036 |
-
msgid "Please, enter the %splugin settings%s in main site dashboard."
|
1037 |
-
msgstr ""
|
1038 |
-
|
1039 |
-
#: inc/cleantalk-settings.php:633
|
1040 |
-
msgid "Error
|
1041 |
-
msgstr ""
|
1042 |
-
|
1043 |
-
#: inc/cleantalk-settings.php:634
|
1044 |
-
msgid "Error
|
1045 |
-
msgstr ""
|
1046 |
-
|
1047 |
-
#: inc/cleantalk-settings.php:635
|
1048 |
-
msgid "Error
|
1049 |
-
msgstr ""
|
1050 |
-
|
1051 |
-
#: inc/cleantalk-settings.php:636
|
1052 |
-
msgid "Error
|
1053 |
-
msgstr ""
|
1054 |
-
|
1055 |
-
#: inc/cleantalk-settings.php:637
|
1056 |
-
msgid "Error
|
1057 |
-
msgstr ""
|
1058 |
-
|
1059 |
-
#: inc/cleantalk-settings.php:638
|
1060 |
-
msgid "Error
|
1061 |
-
msgstr ""
|
1062 |
-
|
1063 |
-
#: inc/cleantalk-settings.php:646
|
1064 |
-
msgid "Unknown error. Error: "
|
1065 |
-
msgstr ""
|
1066 |
-
|
1067 |
-
#: inc/cleantalk-settings.php:677
|
1068 |
-
msgid "Errors:"
|
1069 |
-
msgstr ""
|
1070 |
-
|
1071 |
-
#: inc/cleantalk-settings.php:682
|
1072 |
-
#, php-format
|
1073 |
-
msgid "You can get support any time here: %s."
|
1074 |
-
msgstr ""
|
1075 |
-
|
1076 |
-
#: inc/cleantalk-settings.php:757
|
1077 |
-
msgid "Protection is active"
|
1078 |
-
msgstr ""
|
1079 |
-
|
1080 |
-
#: inc/cleantalk-settings.php:759
|
1081 |
-
msgid "Registration forms"
|
1082 |
-
msgstr ""
|
1083 |
-
|
1084 |
-
#: inc/cleantalk-settings.php:760
|
1085 |
-
msgid "Comments forms"
|
1086 |
-
msgstr ""
|
1087 |
-
|
1088 |
-
#: inc/cleantalk-settings.php:765
|
1089 |
-
msgid "Validate email for existence"
|
1090 |
-
msgstr ""
|
1091 |
-
|
1092 |
-
#: inc/cleantalk-settings.php:769
|
1093 |
-
msgid "Auto update"
|
1094 |
-
msgstr ""
|
1095 |
-
|
1096 |
-
#: inc/cleantalk-settings.php:793
|
1097 |
-
msgid "<h3>Key is provided by Super Admin.</h3>"
|
1098 |
-
msgstr ""
|
1099 |
-
|
1100 |
-
#: inc/cleantalk-settings.php:797
|
1101 |
-
msgid "Access key"
|
1102 |
-
msgstr ""
|
1103 |
-
|
1104 |
-
#: inc/cleantalk-settings.php:812
|
1105 |
-
msgid "Enter the key"
|
1106 |
-
msgstr ""
|
1107 |
-
|
1108 |
-
#: inc/cleantalk-settings.php:818
|
1109 |
-
#, php-format
|
1110 |
-
msgid "Account at cleantalk.org is %s."
|
1111 |
-
msgstr ""
|
1112 |
-
|
1113 |
-
#: inc/cleantalk-settings.php:827
|
1114 |
-
msgid "Show the access key"
|
1115 |
-
msgstr ""
|
1116 |
-
|
1117 |
-
#: inc/cleantalk-settings.php:838
|
1118 |
-
msgid "Get Access Key Automatically"
|
1119 |
-
msgstr ""
|
1120 |
-
|
1121 |
-
#: inc/cleantalk-settings.php:846
|
1122 |
-
#, php-format
|
1123 |
-
msgid ""
|
1124 |
-
"Admin e-mail (%s) will be used for registration, if you want to use other "
|
1125 |
-
"email please %sGet Access Key Manually%s."
|
1126 |
-
msgstr ""
|
1127 |
-
|
1128 |
-
#: inc/cleantalk-settings.php:862
|
1129 |
-
#, php-format
|
1130 |
-
msgid "I accept %sLicense Agreement%s."
|
1131 |
-
msgstr ""
|
1132 |
-
|
1133 |
-
#: inc/cleantalk-settings.php:888
|
1134 |
-
msgid "Statistics & Reports"
|
1135 |
-
msgstr ""
|
1136 |
-
|
1137 |
-
#: inc/cleantalk-settings.php:904
|
1138 |
-
#, php-format
|
1139 |
-
msgid "Last spam check request to %s server was at %s."
|
1140 |
-
msgstr ""
|
1141 |
-
|
1142 |
-
#: inc/cleantalk-settings.php:905 inc/cleantalk-settings.php:906
|
1143 |
-
#: inc/cleantalk-settings.php:915 inc/cleantalk-settings.php:922
|
1144 |
-
#: inc/cleantalk-settings.php:923 inc/cleantalk-settings.php:931
|
1145 |
-
#: inc/cleantalk-settings.php:932 inc/cleantalk-settings.php:939
|
1146 |
-
#: inc/cleantalk-settings.php:940
|
1147 |
-
msgid "unknown"
|
1148 |
-
msgstr ""
|
1149 |
-
|
1150 |
-
#: inc/cleantalk-settings.php:912
|
1151 |
-
#, php-format
|
1152 |
-
msgid "Average request time for past 7 days: %s seconds."
|
1153 |
-
msgstr ""
|
1154 |
-
|
1155 |
-
#: inc/cleantalk-settings.php:921
|
1156 |
-
#, php-format
|
1157 |
-
msgid "Last time SpamFireWall was triggered for %s IP at %s"
|
1158 |
-
msgstr ""
|
1159 |
-
|
1160 |
-
#: inc/cleantalk-settings.php:930
|
1161 |
-
#, php-format
|
1162 |
-
msgid "SpamFireWall was updated %s. Now contains %s entries."
|
1163 |
-
msgstr ""
|
1164 |
-
|
1165 |
-
#: inc/cleantalk-settings.php:938
|
1166 |
-
#, php-format
|
1167 |
-
msgid "SpamFireWall sent %s events at %s."
|
1168 |
-
msgstr ""
|
1169 |
-
|
1170 |
-
#: inc/cleantalk-settings.php:948
|
1171 |
-
msgid "There are no failed connections to server."
|
1172 |
-
msgstr ""
|
1173 |
-
|
1174 |
-
#: inc/cleantalk-settings.php:975
|
1175 |
-
msgid "Send report"
|
1176 |
-
msgstr ""
|
1177 |
-
|
1178 |
-
#: inc/cleantalk-settings.php:979
|
1179 |
-
msgid ""
|
1180 |
-
"Please, enable \"Send connection reports\" setting to be able to send reports"
|
1181 |
-
msgstr ""
|
1182 |
-
|
1183 |
-
#: inc/cleantalk-settings.php:1327
|
1184 |
-
msgid "Testing is failed. Please check the Access key."
|
1185 |
-
msgstr ""
|
1186 |
-
|
1187 |
-
#: inc/cleantalk-settings.php:1442
|
1188 |
-
msgid "XSS check"
|
1189 |
-
msgstr ""
|
1190 |
-
|
1191 |
-
#: inc/cleantalk-settings.php:1443
|
1192 |
-
msgid ""
|
1193 |
-
"Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to "
|
1194 |
-
"any user. As a result malicious scripts can not get access to the cookie "
|
1195 |
-
"files, session tokens and any other confidential information browsers use "
|
1196 |
-
"and store. Such scripts can even overwrite content of HTML pages. CleanTalk "
|
1197 |
-
"WAF monitors for patterns of these parameters and block them."
|
1198 |
-
msgstr ""
|
1199 |
-
|
1200 |
-
#: inc/cleantalk-settings.php:1446
|
1201 |
-
msgid "SQL-injection check"
|
1202 |
-
msgstr ""
|
1203 |
-
|
1204 |
-
#: inc/cleantalk-settings.php:1447
|
1205 |
-
msgid ""
|
1206 |
-
"SQL Injection — one of the most popular ways to hack websites and programs "
|
1207 |
-
"that work with databases. It is based on injection of a custom SQL code into "
|
1208 |
-
"database queries. It could transmit data through GET, POST requests or "
|
1209 |
-
"cookie files in an SQL code. If a website is vulnerable and execute such "
|
1210 |
-
"injections then it would allow attackers to apply changes to the website's "
|
1211 |
-
"MySQL database."
|
1212 |
-
msgstr ""
|
1213 |
-
|
1214 |
-
#: inc/cleantalk-settings.php:1450
|
1215 |
-
msgid "Check uploaded files"
|
1216 |
-
msgstr ""
|
1217 |
-
|
1218 |
-
#: inc/cleantalk-settings.php:1451
|
1219 |
-
msgid ""
|
1220 |
-
"The option checks each uploaded file to a website for malicious code. If "
|
1221 |
-
"it's possible for visitors to upload files to a website, for instance a work "
|
1222 |
-
"resume, then attackers could abuse it and upload an infected file to execute "
|
1223 |
-
"it later and get access to your website."
|
1224 |
-
msgstr ""
|
1225 |
-
|
1226 |
-
#: inc/cleantalk-users.php:15
|
1227 |
-
msgid "Find spam users"
|
1228 |
-
msgstr ""
|
1229 |
-
|
1230 |
-
#: inc/cleantalk-users.php:67
|
1231 |
-
msgid "Please wait for a while. CleanTalk is deleting spam users. Users left: "
|
1232 |
-
msgstr ""
|
1233 |
-
|
1234 |
-
#: inc/cleantalk-users.php:79
|
1235 |
-
msgid ""
|
1236 |
-
"The plugin will check all users against blacklists database and show you "
|
1237 |
-
"senders that have spam activity on other websites."
|
1238 |
-
msgstr ""
|
1239 |
-
|
1240 |
-
#: inc/cleantalk-users.php:84
|
1241 |
-
msgid ""
|
1242 |
-
"Allows to use user's dates to perform more accurate check. Could seriously "
|
1243 |
-
"slow down the check."
|
1244 |
-
msgstr ""
|
1245 |
-
|
1246 |
-
#: inc/cleantalk-users.php:108
|
1247 |
-
msgid ""
|
1248 |
-
"Please wait for a while. CleanTalk is checking all users via blacklist "
|
1249 |
-
"database at cleantalk.org. You will have option to delete found spam users "
|
1250 |
-
"after plugin finish."
|
1251 |
-
msgstr ""
|
1252 |
-
|
1253 |
-
#: inc/cleantalk-users.php:267
|
1254 |
-
msgid "Delete all users from list"
|
1255 |
-
msgstr ""
|
1256 |
-
|
1257 |
-
#: inc/cleantalk-users.php:269
|
1258 |
-
msgid "Download results in CSV"
|
1259 |
-
msgstr ""
|
1260 |
-
|
1261 |
-
#: inc/cleantalk-users.php:273
|
1262 |
-
msgid "Insert accounts"
|
1263 |
-
msgstr ""
|
1264 |
-
|
1265 |
-
#: inc/cleantalk-users.php:274
|
1266 |
-
msgid "Delete accounts"
|
1267 |
-
msgstr ""
|
1268 |
-
|
1269 |
-
#: inc/cleantalk-users.php:527
|
1270 |
-
#, php-format
|
1271 |
-
msgid ""
|
1272 |
-
"Total users %s, checked %s, last check %s, found %s spam users and %s bad "
|
1273 |
-
"users (without IP or email)"
|
1274 |
-
msgstr ""
|
1275 |
-
|
1276 |
-
#: inc/cleantalk-widget.php:22
|
1277 |
-
msgid "CleanTalk Widget"
|
1278 |
-
msgstr ""
|
1279 |
-
|
1280 |
-
#: inc/cleantalk-widget.php:25
|
1281 |
-
msgid "CleanTalk widget"
|
1282 |
-
msgstr ""
|
1283 |
-
|
1284 |
-
#: inc/cleantalk-widget.php:72
|
1285 |
-
msgid "CleanTalk's main page"
|
1286 |
-
msgstr ""
|
1287 |
-
|
1288 |
-
#: inc/cleantalk-widget.php:73
|
1289 |
-
msgid "spam"
|
1290 |
-
msgstr ""
|
1291 |
-
|
1292 |
-
#: inc/cleantalk-widget.php:73
|
1293 |
-
msgid "blocked by"
|
1294 |
-
msgstr ""
|
1295 |
-
|
1296 |
-
#: inc/cleantalk-widget.php:85
|
1297 |
-
msgid "Spam blocked"
|
1298 |
-
msgstr ""
|
1299 |
-
|
1300 |
-
#: inc/cleantalk-widget.php:90
|
1301 |
-
msgid "Title:"
|
1302 |
-
msgstr ""
|
1303 |
-
|
1304 |
-
#: inc/cleantalk-widget.php:95
|
1305 |
-
msgid "Style:"
|
1306 |
-
msgstr ""
|
1307 |
-
|
1308 |
-
#: inc/cleantalk-widget.php:97
|
1309 |
-
msgid "CleanTalk's Style"
|
1310 |
-
msgstr ""
|
1311 |
-
|
1312 |
-
#: inc/cleantalk-widget.php:98
|
1313 |
-
msgid "Light"
|
1314 |
-
msgstr ""
|
1315 |
-
|
1316 |
-
#: inc/cleantalk-widget.php:99
|
1317 |
-
msgid "Extremely Light"
|
1318 |
-
msgstr ""
|
1319 |
-
|
1320 |
-
#: inc/cleantalk-widget.php:100
|
1321 |
-
msgid "Dark"
|
1322 |
-
msgstr ""
|
1323 |
-
|
1324 |
-
#: inc/cleantalk-widget.php:105
|
1325 |
-
msgid "Referal link ID:"
|
1326 |
-
msgstr ""
|
1327 |
-
|
1328 |
-
#: lib/CleantalkSFW.php:71
|
1329 |
-
msgid "SpamFireWall is activated for your IP "
|
1330 |
-
msgstr ""
|
1331 |
-
|
1332 |
-
#: lib/CleantalkSFW.php:72
|
1333 |
-
msgid ""
|
1334 |
-
"To continue working with web site, please make sure that you have enabled "
|
1335 |
-
"JavaScript."
|
1336 |
-
msgstr ""
|
1337 |
-
|
1338 |
-
#: lib/CleantalkSFW.php:73
|
1339 |
-
msgid "Please click below to pass protection,"
|
1340 |
-
msgstr ""
|
1341 |
-
|
1342 |
-
#: lib/CleantalkSFW.php:74
|
1343 |
-
#, php-format
|
1344 |
-
msgid ""
|
1345 |
-
"Or you will be automatically redirected to the requested page after %d "
|
1346 |
-
"seconds."
|
1347 |
-
msgstr ""
|
1348 |
-
|
1349 |
-
#: lib/CleantalkSFW.php:75
|
1350 |
-
msgid "Antispam by CleanTalk"
|
1351 |
-
msgstr ""
|
1352 |
-
|
1353 |
-
#: lib/CleantalkSFW.php:76
|
1354 |
-
msgid "This is the testing page for SpamFireWall"
|
1355 |
-
msgstr ""
|
1356 |
-
|
1357 |
-
#: templates/translate_banner.php:6
|
1358 |
-
msgid "Help others use the plugin in your language."
|
1359 |
-
msgstr ""
|
1360 |
-
|
1361 |
-
#: templates/translate_banner.php:7
|
1362 |
-
msgid ""
|
1363 |
-
"We ask you to help with the translation of the plugin in your language. "
|
1364 |
-
"Please take a few minutes to make the plugin more comfortable."
|
1365 |
-
msgstr ""
|
1366 |
-
|
1367 |
-
#: templates/translate_banner.php:10
|
1368 |
-
msgid "TRANSLATE"
|
1369 |
-
msgstr ""
|
1370 |
-
|
1371 |
-
#. Plugin Name of the plugin/theme
|
1372 |
-
msgid "Anti-Spam by CleanTalk"
|
1373 |
-
msgstr ""
|
1374 |
-
|
1375 |
-
#. Description of the plugin/theme
|
1376 |
-
msgid ""
|
1377 |
-
"Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam,"
|
1378 |
-
" no registration spam, no contact spam, protects any WordPress forms."
|
1379 |
-
msgstr ""
|
1380 |
-
|
1381 |
-
#. Plugin URI of the plugin/theme
|
1382 |
-
#. Author URI of the plugin/theme
|
1383 |
-
msgid "http://cleantalk.org"
|
1384 |
-
msgstr ""
|
1385 |
-
|
1386 |
-
#. Author of the plugin/theme
|
1387 |
-
msgid "СleanTalk <welcome@cleantalk.org>"
|
1388 |
-
msgstr ""
|
1 |
+
#, fuzzy
|
2 |
+
msgid ""
|
3 |
+
msgstr ""
|
4 |
+
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
5 |
+
"Project-Id-Version: Anti-Spam by CleanTalk\n"
|
6 |
+
"POT-Creation-Date: 2019-10-27 16:02+0000\n"
|
7 |
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
8 |
+
"Last-Translator: \n"
|
9 |
+
"Language-Team: \n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Generator: Loco https://localise.biz/\n"
|
14 |
+
"X-Poedit-Basepath: ..\n"
|
15 |
+
"X-Poedit-WPHeader: cleantalk.php\n"
|
16 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
17 |
+
"X-Poedit-KeywordsList: __;_e;_n:1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;esc_attr__;"
|
18 |
+
"esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c;_n_noop:1,2;"
|
19 |
+
"_nx_noop:3c,1,2;__ngettext_noop:1,2\n"
|
20 |
+
"X-Poedit-SearchPath-0: .\n"
|
21 |
+
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
22 |
+
"Language: "
|
23 |
+
|
24 |
+
#: inc/classCleantalkComments.php:32 inc/cleantalk-comments.php:16
|
25 |
+
#: inc/cleantalk-users.php:15
|
26 |
+
msgid "Check for spam"
|
27 |
+
msgstr ""
|
28 |
+
|
29 |
+
#: inc/classCleantalkComments.php:33 inc/cleantalk-admin.php:350
|
30 |
+
#: inc/cleantalk-comments.php:16
|
31 |
+
msgid "Find spam comments"
|
32 |
+
msgstr ""
|
33 |
+
|
34 |
+
#: inc/classCleantalkComments.php:66 inc/cleantalk-comments.php:26
|
35 |
+
#: inc/cleantalk-users.php:25
|
36 |
+
msgid "Plugin Settings"
|
37 |
+
msgstr ""
|
38 |
+
|
39 |
+
#: inc/classCleantalkComments.php:76 inc/cleantalk-comments.php:35
|
40 |
+
#: inc/cleantalk-users.php:34
|
41 |
+
#, php-format
|
42 |
+
msgid ""
|
43 |
+
"Antispam hosting tariff does not allow you to use this feature. To do so, "
|
44 |
+
"you need to enter an Access Key in the %splugin settings%s."
|
45 |
+
msgstr ""
|
46 |
+
|
47 |
+
#: inc/classCleantalkComments.php:101 inc/cleantalk-comments.php:60
|
48 |
+
#: inc/cleantalk-users.php:60
|
49 |
+
msgid ""
|
50 |
+
"Ajax error. Process will be automatically restarted in 3 seconds. Status: "
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: inc/classCleantalkComments.php:108 inc/cleantalk-comments.php:67
|
54 |
+
msgid ""
|
55 |
+
"Please wait for a while. CleanTalk is deleting spam comments. Comments left: "
|
56 |
+
msgstr ""
|
57 |
+
|
58 |
+
#: inc/classCleantalkComments.php:118 inc/cleantalk-comments.php:77
|
59 |
+
#: inc/cleantalk-users.php:77
|
60 |
+
msgid "Start check"
|
61 |
+
msgstr ""
|
62 |
+
|
63 |
+
#: inc/classCleantalkComments.php:119 inc/cleantalk-comments.php:78
|
64 |
+
#: inc/cleantalk-users.php:78
|
65 |
+
msgid "Continue check"
|
66 |
+
msgstr ""
|
67 |
+
|
68 |
+
#: inc/classCleantalkComments.php:120 inc/cleantalk-comments.php:79
|
69 |
+
msgid ""
|
70 |
+
"The plugin will check all comments against blacklists database and show you "
|
71 |
+
"senders that have spam activity on other websites."
|
72 |
+
msgstr ""
|
73 |
+
|
74 |
+
#: inc/classCleantalkComments.php:123 inc/cleantalk-comments.php:82
|
75 |
+
#: inc/cleantalk-users.php:82
|
76 |
+
msgid "Accurate check"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: inc/classCleantalkComments.php:125 inc/cleantalk-comments.php:84
|
80 |
+
msgid ""
|
81 |
+
"Allows to use comment's dates to perform more accurate check. Could "
|
82 |
+
"seriously slow down the check."
|
83 |
+
msgstr ""
|
84 |
+
|
85 |
+
#: inc/classCleantalkComments.php:128 inc/cleantalk-comments.php:87
|
86 |
+
#: inc/cleantalk-users.php:87
|
87 |
+
msgid "Specify date range"
|
88 |
+
msgstr ""
|
89 |
+
|
90 |
+
#: inc/classCleantalkComments.php:149 inc/cleantalk-comments.php:108
|
91 |
+
msgid ""
|
92 |
+
"Please wait! CleanTalk is checking all approved and pending comments via "
|
93 |
+
"blacklist database at cleantalk.org. You will have option to delete found "
|
94 |
+
"spam comments after plugin finish."
|
95 |
+
msgstr ""
|
96 |
+
|
97 |
+
#: inc/classCleantalkCommentsListTable.php:24
|
98 |
+
msgid "Author"
|
99 |
+
msgstr ""
|
100 |
+
|
101 |
+
#: inc/classCleantalkCommentsListTable.php:25 inc/cleantalk-comments.php:158
|
102 |
+
msgid "Comment"
|
103 |
+
msgstr ""
|
104 |
+
|
105 |
+
#: inc/classCleantalkCommentsListTable.php:26 inc/cleantalk-comments.php:159
|
106 |
+
msgid "In Response To"
|
107 |
+
msgstr ""
|
108 |
+
|
109 |
+
#: inc/classCleantalkCommentsListTable.php:33
|
110 |
+
msgid "No spam comments."
|
111 |
+
msgstr ""
|
112 |
+
|
113 |
+
#: inc/cleantalk-admin.php:27
|
114 |
+
#, php-format
|
115 |
+
msgid "Find spam %s"
|
116 |
+
msgstr ""
|
117 |
+
|
118 |
+
#: inc/cleantalk-admin.php:31
|
119 |
+
msgid "CleanTalk Anti-Spam Log"
|
120 |
+
msgstr ""
|
121 |
+
|
122 |
+
#: inc/cleantalk-admin.php:50
|
123 |
+
#, php-format
|
124 |
+
msgid "%sRefresh%s"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: inc/cleantalk-admin.php:51
|
128 |
+
#, php-format
|
129 |
+
msgid "%sConfigure%s"
|
130 |
+
msgstr ""
|
131 |
+
|
132 |
+
#: inc/cleantalk-admin.php:68
|
133 |
+
msgid "7 days anti-spam stats"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: inc/cleantalk-admin.php:72
|
137 |
+
msgid "Top 5 spam IPs blocked"
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: inc/cleantalk-admin.php:78
|
141 |
+
msgid "Get Access key to activate Anti-Spam protection!"
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: inc/cleantalk-admin.php:86
|
145 |
+
#, php-format
|
146 |
+
msgid "Something went wrong! Error: \"%s\"."
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: inc/cleantalk-admin.php:90
|
150 |
+
msgid "Please, visit your dashboard."
|
151 |
+
msgstr ""
|
152 |
+
|
153 |
+
#: inc/cleantalk-admin.php:104
|
154 |
+
msgid "IP"
|
155 |
+
msgstr ""
|
156 |
+
|
157 |
+
#: inc/cleantalk-admin.php:105
|
158 |
+
msgid "Country"
|
159 |
+
msgstr ""
|
160 |
+
|
161 |
+
#: inc/cleantalk-admin.php:106
|
162 |
+
msgid "Block Count"
|
163 |
+
msgstr ""
|
164 |
+
|
165 |
+
#: inc/cleantalk-admin.php:134
|
166 |
+
#, php-format
|
167 |
+
msgid ""
|
168 |
+
"This is the count from the %s's cloud and could be different to admin bar "
|
169 |
+
"counters"
|
170 |
+
msgstr ""
|
171 |
+
|
172 |
+
#. %s: Number of spam messages
|
173 |
+
#: inc/cleantalk-admin.php:137
|
174 |
+
#, php-format
|
175 |
+
msgid ""
|
176 |
+
"%s%s%s has blocked %s spam for all time. The statistics are automatically "
|
177 |
+
"updated every 24 hours."
|
178 |
+
msgstr ""
|
179 |
+
|
180 |
+
#: inc/cleantalk-admin.php:148 inc/cleantalk-settings.php:544
|
181 |
+
#, php-format
|
182 |
+
msgid "Do you like CleanTalk? %sPost your feedback here%s."
|
183 |
+
msgstr ""
|
184 |
+
|
185 |
+
#: inc/cleantalk-admin.php:234
|
186 |
+
msgid "Translate"
|
187 |
+
msgstr ""
|
188 |
+
|
189 |
+
#: inc/cleantalk-admin.php:237
|
190 |
+
msgid "Start here"
|
191 |
+
msgstr ""
|
192 |
+
|
193 |
+
#: inc/cleantalk-admin.php:238
|
194 |
+
msgid "FAQ"
|
195 |
+
msgstr ""
|
196 |
+
|
197 |
+
#: inc/cleantalk-admin.php:239 inc/cleantalk-admin.php:644
|
198 |
+
#: inc/cleantalk-settings.php:575
|
199 |
+
msgid "Support"
|
200 |
+
msgstr ""
|
201 |
+
|
202 |
+
#: inc/cleantalk-admin.php:306 inc/cleantalk-settings.php:523
|
203 |
+
msgid "Hosting AntiSpam"
|
204 |
+
msgstr ""
|
205 |
+
|
206 |
+
#: inc/cleantalk-admin.php:333
|
207 |
+
msgid "Failed from timeout. Going to check comments again."
|
208 |
+
msgstr ""
|
209 |
+
|
210 |
+
#: inc/cleantalk-admin.php:334
|
211 |
+
msgid "Added"
|
212 |
+
msgstr ""
|
213 |
+
|
214 |
+
#: inc/cleantalk-admin.php:335 inc/cleantalk-admin.php:386
|
215 |
+
msgid "Deleted"
|
216 |
+
msgstr ""
|
217 |
+
|
218 |
+
#: inc/cleantalk-admin.php:336
|
219 |
+
msgid "comments"
|
220 |
+
msgstr ""
|
221 |
+
|
222 |
+
#: inc/cleantalk-admin.php:337
|
223 |
+
msgid "Delete all spam comments?"
|
224 |
+
msgstr ""
|
225 |
+
|
226 |
+
#: inc/cleantalk-admin.php:338
|
227 |
+
msgid "Delete checked comments?"
|
228 |
+
msgstr ""
|
229 |
+
|
230 |
+
#: inc/cleantalk-admin.php:339
|
231 |
+
#, php-format
|
232 |
+
msgid ""
|
233 |
+
"Total comments %s. Checked %s. Found %s spam comments. %s bad comments "
|
234 |
+
"(without IP or email)."
|
235 |
+
msgstr ""
|
236 |
+
|
237 |
+
#: inc/cleantalk-admin.php:340 inc/cleantalk-admin.php:393
|
238 |
+
#: inc/cleantalk-users.php:531
|
239 |
+
msgid "Please do backup of WordPress database before delete any accounts!"
|
240 |
+
msgstr ""
|
241 |
+
|
242 |
+
#: inc/cleantalk-admin.php:351
|
243 |
+
msgid "The sender has been whitelisted."
|
244 |
+
msgstr ""
|
245 |
+
|
246 |
+
#: inc/cleantalk-admin.php:352
|
247 |
+
msgid "The sender has been blacklisted."
|
248 |
+
msgstr ""
|
249 |
+
|
250 |
+
#: inc/cleantalk-admin.php:353 inc/cleantalk-public.php:3321
|
251 |
+
#, php-format
|
252 |
+
msgid "Feedback has been sent to %sCleanTalk Dashboard%s."
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: inc/cleantalk-admin.php:383
|
256 |
+
msgid "Failed from timeout. Going to check users again."
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: inc/cleantalk-admin.php:384
|
260 |
+
msgid "Failed from timeout. Going to run a new attempt to delete spam users."
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: inc/cleantalk-admin.php:385
|
264 |
+
msgid "Inserted"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: inc/cleantalk-admin.php:387
|
268 |
+
msgid "users."
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: inc/cleantalk-admin.php:388
|
272 |
+
msgid "Delete all spam users?"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: inc/cleantalk-admin.php:389
|
276 |
+
msgid "Delete checked users?"
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: inc/cleantalk-admin.php:392
|
280 |
+
#, php-format
|
281 |
+
msgid ""
|
282 |
+
"Total users %s, checked %s, found %s spam users and %s bad users (without IP "
|
283 |
+
"or email)"
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: inc/cleantalk-admin.php:401
|
287 |
+
msgid "Find spam-users"
|
288 |
+
msgstr ""
|
289 |
+
|
290 |
+
#: inc/cleantalk-admin.php:449
|
291 |
+
#, php-format
|
292 |
+
msgid "Unable to get Access key automatically: %s"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: inc/cleantalk-admin.php:450
|
296 |
+
msgid "Get the Access key"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: inc/cleantalk-admin.php:459
|
300 |
+
#, php-format
|
301 |
+
msgid "Please enter Access Key in %s settings to enable anti spam protection!"
|
302 |
+
msgstr ""
|
303 |
+
|
304 |
+
#: inc/cleantalk-admin.php:469
|
305 |
+
#, php-format
|
306 |
+
msgid "%s trial period ends, please upgrade to %s!"
|
307 |
+
msgstr ""
|
308 |
+
|
309 |
+
#: inc/cleantalk-admin.php:481
|
310 |
+
msgid "RENEW ANTI-SPAM"
|
311 |
+
msgstr ""
|
312 |
+
|
313 |
+
#: inc/cleantalk-admin.php:482
|
314 |
+
msgid "next year"
|
315 |
+
msgstr ""
|
316 |
+
|
317 |
+
#: inc/cleantalk-admin.php:486
|
318 |
+
#, php-format
|
319 |
+
msgid "Please renew your anti-spam license for %s."
|
320 |
+
msgstr ""
|
321 |
+
|
322 |
+
#: inc/cleantalk-admin.php:511
|
323 |
+
msgid "Make it right!"
|
324 |
+
msgstr ""
|
325 |
+
|
326 |
+
#: inc/cleantalk-admin.php:513
|
327 |
+
#, php-format
|
328 |
+
msgid "%sGet premium%s"
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: inc/cleantalk-admin.php:552
|
332 |
+
msgid "Since"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: inc/cleantalk-admin.php:558
|
336 |
+
msgid ""
|
337 |
+
"All / Allowed / Blocked submissions. The number of submissions is being "
|
338 |
+
"counted since CleanTalk plugin installation."
|
339 |
+
msgstr ""
|
340 |
+
|
341 |
+
#: inc/cleantalk-admin.php:558
|
342 |
+
msgid "All"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: inc/cleantalk-admin.php:566
|
346 |
+
msgid ""
|
347 |
+
"Allowed / Blocked submissions. The number of submissions for past 24 hours. "
|
348 |
+
msgstr ""
|
349 |
+
|
350 |
+
#: inc/cleantalk-admin.php:566
|
351 |
+
msgid "Day"
|
352 |
+
msgstr ""
|
353 |
+
|
354 |
+
#: inc/cleantalk-admin.php:572
|
355 |
+
msgid ""
|
356 |
+
"All / Blocked events. Access attempts regitred by SpamFireWall counted since "
|
357 |
+
"the last plugin activation."
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: inc/cleantalk-admin.php:582
|
361 |
+
msgid ""
|
362 |
+
"Allowed / Blocked submissions. The number of submissions is being counted "
|
363 |
+
"since "
|
364 |
+
msgstr ""
|
365 |
+
|
366 |
+
#: inc/cleantalk-admin.php:593
|
367 |
+
msgid "dashboard"
|
368 |
+
msgstr ""
|
369 |
+
|
370 |
+
#: inc/cleantalk-admin.php:600
|
371 |
+
msgid "Settings"
|
372 |
+
msgstr ""
|
373 |
+
|
374 |
+
#: inc/cleantalk-admin.php:608
|
375 |
+
msgid "Bulk spam comments removal tool."
|
376 |
+
msgstr ""
|
377 |
+
|
378 |
+
#: inc/cleantalk-admin.php:608 inc/cleantalk-settings.php:882
|
379 |
+
msgid "Check comments for spam"
|
380 |
+
msgstr ""
|
381 |
+
|
382 |
+
#: inc/cleantalk-admin.php:618 inc/cleantalk-settings.php:885
|
383 |
+
msgid "Check users for spam"
|
384 |
+
msgstr ""
|
385 |
+
|
386 |
+
#: inc/cleantalk-admin.php:627
|
387 |
+
msgid "Reset first counter"
|
388 |
+
msgstr ""
|
389 |
+
|
390 |
+
#: inc/cleantalk-admin.php:635
|
391 |
+
msgid "Reset all counters"
|
392 |
+
msgstr ""
|
393 |
+
|
394 |
+
#: inc/cleantalk-comments.php:221 inc/cleantalk-users.php:220
|
395 |
+
msgid "Approve"
|
396 |
+
msgstr ""
|
397 |
+
|
398 |
+
#: inc/cleantalk-comments.php:223 inc/cleantalk-users.php:222
|
399 |
+
msgid "Delete"
|
400 |
+
msgstr ""
|
401 |
+
|
402 |
+
#: inc/cleantalk-comments.php:265
|
403 |
+
msgid "Delete all comments from the list"
|
404 |
+
msgstr ""
|
405 |
+
|
406 |
+
#: inc/cleantalk-comments.php:266 inc/cleantalk-users.php:268
|
407 |
+
msgid "Delete selected"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: inc/cleantalk-comments.php:270
|
411 |
+
msgid "Insert comments"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: inc/cleantalk-comments.php:271
|
415 |
+
msgid "Delete comments"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: inc/cleantalk-comments.php:276 inc/cleantalk-users.php:279
|
419 |
+
msgid ""
|
420 |
+
"There is some differencies between blacklists database and our API "
|
421 |
+
"mechanisms. Blacklists shows all history of spam activity, but our API (that "
|
422 |
+
"used in spam checking) used another parameters, too: last day of activity, "
|
423 |
+
"number of spam attacks during last days etc. This mechanisms help us to "
|
424 |
+
"reduce number of false positivitie. So, there is nothing strange, if some "
|
425 |
+
"emails/IPs will be not found by this checking."
|
426 |
+
msgstr ""
|
427 |
+
|
428 |
+
#: inc/cleantalk-comments.php:281 inc/cleantalk-users.php:284
|
429 |
+
msgid "Stop deletion"
|
430 |
+
msgstr ""
|
431 |
+
|
432 |
+
#: inc/cleantalk-comments.php:495
|
433 |
+
#, php-format
|
434 |
+
msgid ""
|
435 |
+
"Total comments %s. Checked %s. Last check %s. Found %s spam comments. %s bad "
|
436 |
+
"comments (without IP or email)."
|
437 |
+
msgstr ""
|
438 |
+
|
439 |
+
#: inc/cleantalk-comments.php:499
|
440 |
+
msgid "Please do backup of WordPress database before delete any comments!"
|
441 |
+
msgstr ""
|
442 |
+
|
443 |
+
#: inc/cleantalk-public.php:500 inc/cleantalk-public.php:641
|
444 |
+
#: inc/cleantalk-public.php:743 inc/cleantalk-public.php:2363
|
445 |
+
#: inc/cleantalk-public.php:3052
|
446 |
+
msgid "Spam protection by CleanTalk"
|
447 |
+
msgstr ""
|
448 |
+
|
449 |
+
#: inc/cleantalk-public.php:1233 inc/cleantalk-public.php:1361
|
450 |
+
#: inc/cleantalk-public.php:1379
|
451 |
+
msgid "Spam protection"
|
452 |
+
msgstr ""
|
453 |
+
|
454 |
+
#: inc/cleantalk-public.php:1332
|
455 |
+
msgid "CleanTalk AntiSpam: This message is possible spam."
|
456 |
+
msgstr ""
|
457 |
+
|
458 |
+
#: inc/cleantalk-public.php:1333
|
459 |
+
msgid "You could check it in CleanTalk's anti-spam database:"
|
460 |
+
msgstr ""
|
461 |
+
|
462 |
+
#: inc/cleantalk-public.php:1569
|
463 |
+
#, php-format
|
464 |
+
msgid "Registration approved by %s."
|
465 |
+
msgstr ""
|
466 |
+
|
467 |
+
#: inc/cleantalk-public.php:1849
|
468 |
+
msgid "CleanTalk AntiSpam: This registration is spam."
|
469 |
+
msgstr ""
|
470 |
+
|
471 |
+
#: inc/cleantalk-public.php:1850 inc/cleantalk-public.php:2219
|
472 |
+
#: inc/cleantalk-public.php:2387 inc/cleantalk-public.php:2542
|
473 |
+
msgid "CleanTalk's anti-spam database:"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: inc/cleantalk-public.php:2218 inc/cleantalk-public.php:2386
|
477 |
+
#: inc/cleantalk-public.php:2541
|
478 |
+
msgid "CleanTalk AntiSpam: This message is spam."
|
479 |
+
msgstr ""
|
480 |
+
|
481 |
+
#: inc/cleantalk-public.php:2666
|
482 |
+
msgid "Comment approved. Anti-spam by CleanTalk."
|
483 |
+
msgstr ""
|
484 |
+
|
485 |
+
#: inc/cleantalk-public.php:3219
|
486 |
+
msgid "Attention, please!"
|
487 |
+
msgstr ""
|
488 |
+
|
489 |
+
#: inc/cleantalk-public.php:3220
|
490 |
+
#, php-format
|
491 |
+
msgid "\"%s\" plugin error on your site \"%s\":"
|
492 |
+
msgstr ""
|
493 |
+
|
494 |
+
#: inc/cleantalk-public.php:3222
|
495 |
+
#, php-format
|
496 |
+
msgid "[%s] \"%s\" error!"
|
497 |
+
msgstr ""
|
498 |
+
|
499 |
+
#: inc/cleantalk-public.php:3271
|
500 |
+
msgid ""
|
501 |
+
"By using this form you agree with the storage and processing of your data by "
|
502 |
+
"using the Privacy Policy on this website."
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: inc/cleantalk-public.php:3319
|
506 |
+
msgid "Error occurred while sending feedback."
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: inc/cleantalk-public.php:3320
|
510 |
+
msgid "Feedback wasn't sent. There is no associated request."
|
511 |
+
msgstr ""
|
512 |
+
|
513 |
+
#: inc/cleantalk-public.php:3364
|
514 |
+
msgid "Sender info"
|
515 |
+
msgstr ""
|
516 |
+
|
517 |
+
#: inc/cleantalk-public.php:3367
|
518 |
+
msgid "by"
|
519 |
+
msgstr ""
|
520 |
+
|
521 |
+
#: inc/cleantalk-public.php:3378
|
522 |
+
msgid "No email"
|
523 |
+
msgstr ""
|
524 |
+
|
525 |
+
#: inc/cleantalk-public.php:3388
|
526 |
+
msgid "No IP"
|
527 |
+
msgstr ""
|
528 |
+
|
529 |
+
#: inc/cleantalk-public.php:3391
|
530 |
+
msgid "Mark as spam"
|
531 |
+
msgstr ""
|
532 |
+
|
533 |
+
#: inc/cleantalk-public.php:3392
|
534 |
+
msgid "Unspam"
|
535 |
+
msgstr ""
|
536 |
+
|
537 |
+
#: inc/cleantalk-public.php:3394
|
538 |
+
msgid "Marked as spam."
|
539 |
+
msgstr ""
|
540 |
+
|
541 |
+
#: inc/cleantalk-public.php:3395
|
542 |
+
msgid "Marked as not spam."
|
543 |
+
msgstr ""
|
544 |
+
|
545 |
+
#: inc/cleantalk-settings.php:96
|
546 |
+
msgid "SpamFireWall"
|
547 |
+
msgstr ""
|
548 |
+
|
549 |
+
#: inc/cleantalk-settings.php:97
|
550 |
+
msgid ""
|
551 |
+
"This option allows to filter spam bots before they access website. Also "
|
552 |
+
"reduces CPU usage on hosting server and accelerates pages load time."
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: inc/cleantalk-settings.php:104
|
556 |
+
msgid "Forms to protect"
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: inc/cleantalk-settings.php:110
|
560 |
+
msgid "Advanced settings"
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: inc/cleantalk-settings.php:117
|
564 |
+
msgid "Registration Forms"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: inc/cleantalk-settings.php:118
|
568 |
+
msgid "WordPress, BuddyPress, bbPress, S2Member, WooCommerce."
|
569 |
+
msgstr ""
|
570 |
+
|
571 |
+
#: inc/cleantalk-settings.php:121
|
572 |
+
msgid "Comments form"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
+
#: inc/cleantalk-settings.php:122
|
576 |
+
msgid "WordPress, JetPack, WooCommerce."
|
577 |
+
msgstr ""
|
578 |
+
|
579 |
+
#: inc/cleantalk-settings.php:125 inc/cleantalk-settings.php:761
|
580 |
+
msgid "Contact forms"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: inc/cleantalk-settings.php:126
|
584 |
+
msgid ""
|
585 |
+
"Contact Form 7, Formidable forms, JetPack, Fast Secure Contact Form, "
|
586 |
+
"WordPress Landing Pages, Gravity Forms."
|
587 |
+
msgstr ""
|
588 |
+
|
589 |
+
#: inc/cleantalk-settings.php:129 inc/cleantalk-settings.php:762
|
590 |
+
msgid "Custom contact forms"
|
591 |
+
msgstr ""
|
592 |
+
|
593 |
+
#: inc/cleantalk-settings.php:130
|
594 |
+
msgid "Anti spam test for any WordPress themes or contacts forms."
|
595 |
+
msgstr ""
|
596 |
+
|
597 |
+
#: inc/cleantalk-settings.php:133 inc/cleantalk-settings.php:775
|
598 |
+
msgid "WooCommerce checkout form"
|
599 |
+
msgstr ""
|
600 |
+
|
601 |
+
#: inc/cleantalk-settings.php:134
|
602 |
+
msgid "Anti spam test for WooCommerce checkout form."
|
603 |
+
msgstr ""
|
604 |
+
|
605 |
+
#: inc/cleantalk-settings.php:138
|
606 |
+
msgid "Spam test for registration during checkout"
|
607 |
+
msgstr ""
|
608 |
+
|
609 |
+
#: inc/cleantalk-settings.php:139
|
610 |
+
msgid ""
|
611 |
+
"Enable anti spam test for registration process which during woocommerce's "
|
612 |
+
"checkout."
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: inc/cleantalk-settings.php:145
|
616 |
+
msgid "Test default Wordpress search form for spam"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: inc/cleantalk-settings.php:146
|
620 |
+
msgid "Spam protection for Search form."
|
621 |
+
msgstr ""
|
622 |
+
|
623 |
+
#: inc/cleantalk-settings.php:148
|
624 |
+
#, php-format
|
625 |
+
msgid "Read more about %sspam protection for Search form%s on our blog."
|
626 |
+
msgstr ""
|
627 |
+
|
628 |
+
#: inc/cleantalk-settings.php:156
|
629 |
+
msgid "Protect external forms"
|
630 |
+
msgstr ""
|
631 |
+
|
632 |
+
#: inc/cleantalk-settings.php:157
|
633 |
+
msgid ""
|
634 |
+
"Turn this option on to protect forms on your WordPress that send data to "
|
635 |
+
"third-part servers (like MailChimp)."
|
636 |
+
msgstr ""
|
637 |
+
|
638 |
+
#: inc/cleantalk-settings.php:161
|
639 |
+
msgid "Capture buffer"
|
640 |
+
msgstr ""
|
641 |
+
|
642 |
+
#: inc/cleantalk-settings.php:162
|
643 |
+
msgid ""
|
644 |
+
"This setting gives you more sophisticated and strengthened protection for "
|
645 |
+
"external forms. But it could break plugins which use a buffer like Ninja "
|
646 |
+
"Forms."
|
647 |
+
msgstr ""
|
648 |
+
|
649 |
+
#: inc/cleantalk-settings.php:167
|
650 |
+
msgid "Protect internal forms"
|
651 |
+
msgstr ""
|
652 |
+
|
653 |
+
#: inc/cleantalk-settings.php:168
|
654 |
+
msgid ""
|
655 |
+
"This option will enable protection for custom (hand-made) AJAX forms with "
|
656 |
+
"PHP scripts handlers on your WordPress."
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: inc/cleantalk-settings.php:175
|
660 |
+
msgid "Comments and Messages"
|
661 |
+
msgstr ""
|
662 |
+
|
663 |
+
#: inc/cleantalk-settings.php:178
|
664 |
+
msgid "BuddyPress Private Messages"
|
665 |
+
msgstr ""
|
666 |
+
|
667 |
+
#: inc/cleantalk-settings.php:179
|
668 |
+
msgid "Check buddyPress private messages."
|
669 |
+
msgstr ""
|
670 |
+
|
671 |
+
#: inc/cleantalk-settings.php:182
|
672 |
+
msgid "Don't check trusted user's comments"
|
673 |
+
msgstr ""
|
674 |
+
|
675 |
+
#: inc/cleantalk-settings.php:183
|
676 |
+
#, php-format
|
677 |
+
msgid "Don't check comments for users with above %d comments."
|
678 |
+
msgstr ""
|
679 |
+
|
680 |
+
#: inc/cleantalk-settings.php:186
|
681 |
+
msgid "Automatically delete spam comments"
|
682 |
+
msgstr ""
|
683 |
+
|
684 |
+
#: inc/cleantalk-settings.php:187
|
685 |
+
#, php-format
|
686 |
+
msgid "Delete spam comments older than %d days."
|
687 |
+
msgstr ""
|
688 |
+
|
689 |
+
#: inc/cleantalk-settings.php:190
|
690 |
+
msgid "Remove links from approved comments"
|
691 |
+
msgstr ""
|
692 |
+
|
693 |
+
#: inc/cleantalk-settings.php:191
|
694 |
+
msgid "Remove links from approved comments. Replace it with \"[Link deleted]\""
|
695 |
+
msgstr ""
|
696 |
+
|
697 |
+
#: inc/cleantalk-settings.php:194
|
698 |
+
msgid "Show links to check Emails, IPs for spam."
|
699 |
+
msgstr ""
|
700 |
+
|
701 |
+
#: inc/cleantalk-settings.php:195
|
702 |
+
msgid ""
|
703 |
+
"Shows little icon near IP addresses and Emails allowing you to check it via "
|
704 |
+
"CleanTalk's database. Also allowing you to manage comments from the public "
|
705 |
+
"post's page."
|
706 |
+
msgstr ""
|
707 |
+
|
708 |
+
#: inc/cleantalk-settings.php:203
|
709 |
+
msgid "Data Processing"
|
710 |
+
msgstr ""
|
711 |
+
|
712 |
+
#: inc/cleantalk-settings.php:206
|
713 |
+
msgid "Protect logged in Users"
|
714 |
+
msgstr ""
|
715 |
+
|
716 |
+
#: inc/cleantalk-settings.php:207
|
717 |
+
msgid ""
|
718 |
+
"Turn this option on to check for spam any submissions (comments, contact "
|
719 |
+
"forms and etc.) from registered Users."
|
720 |
+
msgstr ""
|
721 |
+
|
722 |
+
#: inc/cleantalk-settings.php:210
|
723 |
+
msgid "Use AJAX for JavaScript check"
|
724 |
+
msgstr ""
|
725 |
+
|
726 |
+
#: inc/cleantalk-settings.php:211
|
727 |
+
msgid ""
|
728 |
+
"Options helps protect WordPress against spam with any caching plugins. Turn "
|
729 |
+
"this option on to avoid issues with caching plugins."
|
730 |
+
msgstr ""
|
731 |
+
|
732 |
+
#: inc/cleantalk-settings.php:214
|
733 |
+
msgid "Use static keys for JS check."
|
734 |
+
msgstr ""
|
735 |
+
|
736 |
+
#: inc/cleantalk-settings.php:215
|
737 |
+
msgid ""
|
738 |
+
"Could help if you have cache for AJAX requests and you are dealing with "
|
739 |
+
"false positives. Slightly decreases protection quality. Auto - Static key "
|
740 |
+
"will be used if caching plugin is spotted."
|
741 |
+
msgstr ""
|
742 |
+
|
743 |
+
#: inc/cleantalk-settings.php:223
|
744 |
+
msgid "Check all post data"
|
745 |
+
msgstr ""
|
746 |
+
|
747 |
+
#: inc/cleantalk-settings.php:224
|
748 |
+
msgid ""
|
749 |
+
"Check all POST submissions from website visitors. Enable this option if you "
|
750 |
+
"have spam misses on website."
|
751 |
+
msgstr ""
|
752 |
+
|
753 |
+
#: inc/cleantalk-settings.php:226
|
754 |
+
msgid " Or you don`t have records about missed spam here:"
|
755 |
+
msgstr ""
|
756 |
+
|
757 |
+
#: inc/cleantalk-settings.php:226
|
758 |
+
msgid "CleanTalk dashboard"
|
759 |
+
msgstr ""
|
760 |
+
|
761 |
+
#: inc/cleantalk-settings.php:229
|
762 |
+
msgid "СAUTION! Option can catch POST requests in WordPress backend"
|
763 |
+
msgstr ""
|
764 |
+
|
765 |
+
#: inc/cleantalk-settings.php:232
|
766 |
+
msgid "Set cookies"
|
767 |
+
msgstr ""
|
768 |
+
|
769 |
+
#: inc/cleantalk-settings.php:233
|
770 |
+
msgid ""
|
771 |
+
"Turn this option off to deny plugin generates any cookies on website front-"
|
772 |
+
"end. This option is helpful if you use Varnish. But most of contact forms "
|
773 |
+
"will not be protected if the option is turned off! <b>Warning: We strongly "
|
774 |
+
"recommend you to enable this otherwise it could cause false positives spam "
|
775 |
+
"detection.</b>"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: inc/cleantalk-settings.php:237
|
779 |
+
msgid "Use alternative mechanism for cookies"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: inc/cleantalk-settings.php:238 inc/cleantalk-settings.php:360
|
783 |
+
msgid "Doesn't use cookie or PHP sessions. Collect data for all types of bots."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: inc/cleantalk-settings.php:243
|
787 |
+
msgid "Use SSL"
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: inc/cleantalk-settings.php:244
|
791 |
+
msgid "Turn this option on to use encrypted (SSL) connection with servers."
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: inc/cleantalk-settings.php:247
|
795 |
+
msgid "Use Wordpress HTTP API"
|
796 |
+
msgstr ""
|
797 |
+
|
798 |
+
#: inc/cleantalk-settings.php:248
|
799 |
+
msgid ""
|
800 |
+
"Alternative way to connect the Cloud. Use this if you have connection "
|
801 |
+
"problems."
|
802 |
+
msgstr ""
|
803 |
+
|
804 |
+
#: inc/cleantalk-settings.php:255
|
805 |
+
msgid "Exclusions"
|
806 |
+
msgstr ""
|
807 |
+
|
808 |
+
#: inc/cleantalk-settings.php:259
|
809 |
+
msgid "URL exclusions"
|
810 |
+
msgstr ""
|
811 |
+
|
812 |
+
#: inc/cleantalk-settings.php:260
|
813 |
+
msgid "You could type here URL you want to exclude. Use comma as separator."
|
814 |
+
msgstr ""
|
815 |
+
|
816 |
+
#: inc/cleantalk-settings.php:264
|
817 |
+
msgid "Use Regular Expression in URL Exclusions"
|
818 |
+
msgstr ""
|
819 |
+
|
820 |
+
#: inc/cleantalk-settings.php:268
|
821 |
+
msgid "Field name exclusions"
|
822 |
+
msgstr ""
|
823 |
+
|
824 |
+
#: inc/cleantalk-settings.php:269
|
825 |
+
msgid ""
|
826 |
+
"You could type here fields names you want to exclude. Use comma as separator."
|
827 |
+
msgstr ""
|
828 |
+
|
829 |
+
#: inc/cleantalk-settings.php:273
|
830 |
+
msgid "Use Regular Expression in Field Exclusions"
|
831 |
+
msgstr ""
|
832 |
+
|
833 |
+
#: inc/cleantalk-settings.php:280
|
834 |
+
msgid "Roles which bypass spam test. Hold CTRL to select multiple roles."
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: inc/cleantalk-settings.php:287
|
838 |
+
msgid "Admin bar"
|
839 |
+
msgstr ""
|
840 |
+
|
841 |
+
#: inc/cleantalk-settings.php:294
|
842 |
+
msgid "Show statistics in admin bar"
|
843 |
+
msgstr ""
|
844 |
+
|
845 |
+
#: inc/cleantalk-settings.php:295
|
846 |
+
msgid ""
|
847 |
+
"Show/hide icon in top level menu in WordPress backend. The number of "
|
848 |
+
"submissions is being counted for past 24 hours."
|
849 |
+
msgstr ""
|
850 |
+
|
851 |
+
#: inc/cleantalk-settings.php:299
|
852 |
+
msgid "Show All-time counter"
|
853 |
+
msgstr ""
|
854 |
+
|
855 |
+
#: inc/cleantalk-settings.php:300
|
856 |
+
msgid ""
|
857 |
+
"Display all-time requests counter in the admin bar. Counter displays number "
|
858 |
+
"of requests since plugin installation."
|
859 |
+
msgstr ""
|
860 |
+
|
861 |
+
#: inc/cleantalk-settings.php:305
|
862 |
+
msgid "Show 24 hours counter"
|
863 |
+
msgstr ""
|
864 |
+
|
865 |
+
#: inc/cleantalk-settings.php:306
|
866 |
+
msgid ""
|
867 |
+
"Display daily requests counter in the admin bar. Counter displays number of "
|
868 |
+
"requests of the past 24 hours."
|
869 |
+
msgstr ""
|
870 |
+
|
871 |
+
#: inc/cleantalk-settings.php:311
|
872 |
+
msgid "SpamFireWall counter"
|
873 |
+
msgstr ""
|
874 |
+
|
875 |
+
#: inc/cleantalk-settings.php:312
|
876 |
+
msgid ""
|
877 |
+
"Display SpamFireWall requests in the admin bar. Counter displays number of "
|
878 |
+
"requests since plugin installation."
|
879 |
+
msgstr ""
|
880 |
+
|
881 |
+
#: inc/cleantalk-settings.php:325
|
882 |
+
msgid "Collect details about browsers"
|
883 |
+
msgstr ""
|
884 |
+
|
885 |
+
#: inc/cleantalk-settings.php:326
|
886 |
+
msgid ""
|
887 |
+
"Checking this box you allow plugin store information about screen size and "
|
888 |
+
"browser plugins of website visitors. The option in a beta state."
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: inc/cleantalk-settings.php:330
|
892 |
+
msgid "Send connection reports"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: inc/cleantalk-settings.php:331
|
896 |
+
msgid ""
|
897 |
+
"Checking this box you allow plugin to send the information about your "
|
898 |
+
"connection. The option in a beta state."
|
899 |
+
msgstr ""
|
900 |
+
|
901 |
+
#: inc/cleantalk-settings.php:335
|
902 |
+
msgid "Async JavaScript loading"
|
903 |
+
msgstr ""
|
904 |
+
|
905 |
+
#: inc/cleantalk-settings.php:336
|
906 |
+
msgid ""
|
907 |
+
"Use async loading for scripts. Warning: This could reduce filtration quality."
|
908 |
+
msgstr ""
|
909 |
+
|
910 |
+
#: inc/cleantalk-settings.php:340
|
911 |
+
msgid "Allow to add GDPR notice via shortcode"
|
912 |
+
msgstr ""
|
913 |
+
|
914 |
+
#: inc/cleantalk-settings.php:341
|
915 |
+
msgid ""
|
916 |
+
" Adds small checkbox under your website form. To add it you should use the "
|
917 |
+
"shortcode on the form's page: [cleantalk_gdpr_form id=\"FORM_ID\"]"
|
918 |
+
msgstr ""
|
919 |
+
|
920 |
+
#: inc/cleantalk-settings.php:346
|
921 |
+
msgid "GDPR text notice"
|
922 |
+
msgstr ""
|
923 |
+
|
924 |
+
#: inc/cleantalk-settings.php:347
|
925 |
+
msgid "This text will be added as a description to the GDPR checkbox."
|
926 |
+
msgstr ""
|
927 |
+
|
928 |
+
#: inc/cleantalk-settings.php:353
|
929 |
+
msgid "Store visited URLs"
|
930 |
+
msgstr ""
|
931 |
+
|
932 |
+
#: inc/cleantalk-settings.php:354
|
933 |
+
msgid ""
|
934 |
+
"Plugin stores last 10 visited URLs (HTTP REFFERERS) before visitor submits "
|
935 |
+
"form on the site. You can see stored visited URLS for each visitor in your "
|
936 |
+
"Dashboard. Turn the option on to improve Anti-Spam protection."
|
937 |
+
msgstr ""
|
938 |
+
|
939 |
+
#: inc/cleantalk-settings.php:359
|
940 |
+
msgid "Use cookies less sessions"
|
941 |
+
msgstr ""
|
942 |
+
|
943 |
+
#: inc/cleantalk-settings.php:366
|
944 |
+
msgid ""
|
945 |
+
"Notify users with selected roles about new approved comments. Hold CTRL to "
|
946 |
+
"select multiple roles."
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: inc/cleantalk-settings.php:367
|
950 |
+
#, php-format
|
951 |
+
msgid "If enabled, overrides similar Wordpress %sdiscussion settings%s."
|
952 |
+
msgstr ""
|
953 |
+
|
954 |
+
#: inc/cleantalk-settings.php:380
|
955 |
+
msgid "Complete deactivation"
|
956 |
+
msgstr ""
|
957 |
+
|
958 |
+
#: inc/cleantalk-settings.php:381
|
959 |
+
msgid "Leave no trace in the system after deactivation."
|
960 |
+
msgstr ""
|
961 |
+
|
962 |
+
#: inc/cleantalk-settings.php:398
|
963 |
+
msgid "Enable White Label Mode"
|
964 |
+
msgstr ""
|
965 |
+
|
966 |
+
#: inc/cleantalk-settings.php:399
|
967 |
+
#, php-format
|
968 |
+
msgid "Learn more information %shere%s."
|
969 |
+
msgstr ""
|
970 |
+
|
971 |
+
#: inc/cleantalk-settings.php:404
|
972 |
+
msgid "Hoster API Key"
|
973 |
+
msgstr ""
|
974 |
+
|
975 |
+
#: inc/cleantalk-settings.php:405
|
976 |
+
#, php-format
|
977 |
+
msgid "You can get it in %sCleantalk's Control Panel%s"
|
978 |
+
msgstr ""
|
979 |
+
|
980 |
+
#: inc/cleantalk-settings.php:413
|
981 |
+
msgid "Plugin name"
|
982 |
+
msgstr ""
|
983 |
+
|
984 |
+
#: inc/cleantalk-settings.php:414
|
985 |
+
#, php-format
|
986 |
+
msgid "Specify plugin name. Leave empty for deafult %sAntispam by Cleantalk%s"
|
987 |
+
msgstr ""
|
988 |
+
|
989 |
+
#: inc/cleantalk-settings.php:423
|
990 |
+
msgid "Allow users to use other key"
|
991 |
+
msgstr ""
|
992 |
+
|
993 |
+
#: inc/cleantalk-settings.php:424
|
994 |
+
msgid ""
|
995 |
+
"Allow users to use different Access key in their plugin settings on child "
|
996 |
+
"blogs. They could use different CleanTalk account."
|
997 |
+
msgstr ""
|
998 |
+
|
999 |
+
#: inc/cleantalk-settings.php:427
|
1000 |
+
msgid ""
|
1001 |
+
"Constant <b>CLEANTALK_ACCESS_KEY</b> is set. All websites will use API key "
|
1002 |
+
"from this constant. Look into wp-config.php"
|
1003 |
+
msgstr ""
|
1004 |
+
|
1005 |
+
#: inc/cleantalk-settings.php:533
|
1006 |
+
msgid "CleanTalk's tech support:"
|
1007 |
+
msgstr ""
|
1008 |
+
|
1009 |
+
#: inc/cleantalk-settings.php:539
|
1010 |
+
msgid "Plugin Homepage at"
|
1011 |
+
msgstr ""
|
1012 |
+
|
1013 |
+
#: inc/cleantalk-settings.php:540
|
1014 |
+
msgid "GDPR compliance"
|
1015 |
+
msgstr ""
|
1016 |
+
|
1017 |
+
#: inc/cleantalk-settings.php:541
|
1018 |
+
msgid "Use s@cleantalk.org to test plugin in any WordPress form."
|
1019 |
+
msgstr ""
|
1020 |
+
|
1021 |
+
#: inc/cleantalk-settings.php:542
|
1022 |
+
msgid "CleanTalk is registered Trademark. All rights reserved."
|
1023 |
+
msgstr ""
|
1024 |
+
|
1025 |
+
#: inc/cleantalk-settings.php:559
|
1026 |
+
#, php-format
|
1027 |
+
msgid "%s has blocked <b>%s</b> spam."
|
1028 |
+
msgstr ""
|
1029 |
+
|
1030 |
+
#: inc/cleantalk-settings.php:571
|
1031 |
+
msgid "Click here to get anti-spam statistics"
|
1032 |
+
msgstr ""
|
1033 |
+
|
1034 |
+
#: inc/cleantalk-settings.php:614
|
1035 |
+
#, php-format
|
1036 |
+
msgid "Please, enter the %splugin settings%s in main site dashboard."
|
1037 |
+
msgstr ""
|
1038 |
+
|
1039 |
+
#: inc/cleantalk-settings.php:633
|
1040 |
+
msgid "Error occurred while API key validating. Error: "
|
1041 |
+
msgstr ""
|
1042 |
+
|
1043 |
+
#: inc/cleantalk-settings.php:634
|
1044 |
+
msgid "Error occurred while automatically gettings access key. Error: "
|
1045 |
+
msgstr ""
|
1046 |
+
|
1047 |
+
#: inc/cleantalk-settings.php:635
|
1048 |
+
msgid "Error occurred while sending sending SpamFireWall logs. Error: "
|
1049 |
+
msgstr ""
|
1050 |
+
|
1051 |
+
#: inc/cleantalk-settings.php:636
|
1052 |
+
msgid "Error occurred while updating SpamFireWall local base. Error: "
|
1053 |
+
msgstr ""
|
1054 |
+
|
1055 |
+
#: inc/cleantalk-settings.php:637
|
1056 |
+
msgid "Error occurred while checking account status. Error: "
|
1057 |
+
msgstr ""
|
1058 |
+
|
1059 |
+
#: inc/cleantalk-settings.php:638
|
1060 |
+
msgid "Error occurred while excuting API call. Error: "
|
1061 |
+
msgstr ""
|
1062 |
+
|
1063 |
+
#: inc/cleantalk-settings.php:646
|
1064 |
+
msgid "Unknown error. Error: "
|
1065 |
+
msgstr ""
|
1066 |
+
|
1067 |
+
#: inc/cleantalk-settings.php:677
|
1068 |
+
msgid "Errors:"
|
1069 |
+
msgstr ""
|
1070 |
+
|
1071 |
+
#: inc/cleantalk-settings.php:682
|
1072 |
+
#, php-format
|
1073 |
+
msgid "You can get support any time here: %s."
|
1074 |
+
msgstr ""
|
1075 |
+
|
1076 |
+
#: inc/cleantalk-settings.php:757
|
1077 |
+
msgid "Protection is active"
|
1078 |
+
msgstr ""
|
1079 |
+
|
1080 |
+
#: inc/cleantalk-settings.php:759
|
1081 |
+
msgid "Registration forms"
|
1082 |
+
msgstr ""
|
1083 |
+
|
1084 |
+
#: inc/cleantalk-settings.php:760
|
1085 |
+
msgid "Comments forms"
|
1086 |
+
msgstr ""
|
1087 |
+
|
1088 |
+
#: inc/cleantalk-settings.php:765
|
1089 |
+
msgid "Validate email for existence"
|
1090 |
+
msgstr ""
|
1091 |
+
|
1092 |
+
#: inc/cleantalk-settings.php:769
|
1093 |
+
msgid "Auto update"
|
1094 |
+
msgstr ""
|
1095 |
+
|
1096 |
+
#: inc/cleantalk-settings.php:793
|
1097 |
+
msgid "<h3>Key is provided by Super Admin.</h3>"
|
1098 |
+
msgstr ""
|
1099 |
+
|
1100 |
+
#: inc/cleantalk-settings.php:797
|
1101 |
+
msgid "Access key"
|
1102 |
+
msgstr ""
|
1103 |
+
|
1104 |
+
#: inc/cleantalk-settings.php:812
|
1105 |
+
msgid "Enter the key"
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: inc/cleantalk-settings.php:818
|
1109 |
+
#, php-format
|
1110 |
+
msgid "Account at cleantalk.org is %s."
|
1111 |
+
msgstr ""
|
1112 |
+
|
1113 |
+
#: inc/cleantalk-settings.php:827
|
1114 |
+
msgid "Show the access key"
|
1115 |
+
msgstr ""
|
1116 |
+
|
1117 |
+
#: inc/cleantalk-settings.php:838
|
1118 |
+
msgid "Get Access Key Automatically"
|
1119 |
+
msgstr ""
|
1120 |
+
|
1121 |
+
#: inc/cleantalk-settings.php:846
|
1122 |
+
#, php-format
|
1123 |
+
msgid ""
|
1124 |
+
"Admin e-mail (%s) will be used for registration, if you want to use other "
|
1125 |
+
"email please %sGet Access Key Manually%s."
|
1126 |
+
msgstr ""
|
1127 |
+
|
1128 |
+
#: inc/cleantalk-settings.php:862
|
1129 |
+
#, php-format
|
1130 |
+
msgid "I accept %sLicense Agreement%s."
|
1131 |
+
msgstr ""
|
1132 |
+
|
1133 |
+
#: inc/cleantalk-settings.php:888
|
1134 |
+
msgid "Statistics & Reports"
|
1135 |
+
msgstr ""
|
1136 |
+
|
1137 |
+
#: inc/cleantalk-settings.php:904
|
1138 |
+
#, php-format
|
1139 |
+
msgid "Last spam check request to %s server was at %s."
|
1140 |
+
msgstr ""
|
1141 |
+
|
1142 |
+
#: inc/cleantalk-settings.php:905 inc/cleantalk-settings.php:906
|
1143 |
+
#: inc/cleantalk-settings.php:915 inc/cleantalk-settings.php:922
|
1144 |
+
#: inc/cleantalk-settings.php:923 inc/cleantalk-settings.php:931
|
1145 |
+
#: inc/cleantalk-settings.php:932 inc/cleantalk-settings.php:939
|
1146 |
+
#: inc/cleantalk-settings.php:940
|
1147 |
+
msgid "unknown"
|
1148 |
+
msgstr ""
|
1149 |
+
|
1150 |
+
#: inc/cleantalk-settings.php:912
|
1151 |
+
#, php-format
|
1152 |
+
msgid "Average request time for past 7 days: %s seconds."
|
1153 |
+
msgstr ""
|
1154 |
+
|
1155 |
+
#: inc/cleantalk-settings.php:921
|
1156 |
+
#, php-format
|
1157 |
+
msgid "Last time SpamFireWall was triggered for %s IP at %s"
|
1158 |
+
msgstr ""
|
1159 |
+
|
1160 |
+
#: inc/cleantalk-settings.php:930
|
1161 |
+
#, php-format
|
1162 |
+
msgid "SpamFireWall was updated %s. Now contains %s entries."
|
1163 |
+
msgstr ""
|
1164 |
+
|
1165 |
+
#: inc/cleantalk-settings.php:938
|
1166 |
+
#, php-format
|
1167 |
+
msgid "SpamFireWall sent %s events at %s."
|
1168 |
+
msgstr ""
|
1169 |
+
|
1170 |
+
#: inc/cleantalk-settings.php:948
|
1171 |
+
msgid "There are no failed connections to server."
|
1172 |
+
msgstr ""
|
1173 |
+
|
1174 |
+
#: inc/cleantalk-settings.php:975
|
1175 |
+
msgid "Send report"
|
1176 |
+
msgstr ""
|
1177 |
+
|
1178 |
+
#: inc/cleantalk-settings.php:979
|
1179 |
+
msgid ""
|
1180 |
+
"Please, enable \"Send connection reports\" setting to be able to send reports"
|
1181 |
+
msgstr ""
|
1182 |
+
|
1183 |
+
#: inc/cleantalk-settings.php:1327
|
1184 |
+
msgid "Testing is failed. Please check the Access key."
|
1185 |
+
msgstr ""
|
1186 |
+
|
1187 |
+
#: inc/cleantalk-settings.php:1442
|
1188 |
+
msgid "XSS check"
|
1189 |
+
msgstr ""
|
1190 |
+
|
1191 |
+
#: inc/cleantalk-settings.php:1443
|
1192 |
+
msgid ""
|
1193 |
+
"Cross-Site Scripting (XSS) — prevents malicious code to be executed/sent to "
|
1194 |
+
"any user. As a result malicious scripts can not get access to the cookie "
|
1195 |
+
"files, session tokens and any other confidential information browsers use "
|
1196 |
+
"and store. Such scripts can even overwrite content of HTML pages. CleanTalk "
|
1197 |
+
"WAF monitors for patterns of these parameters and block them."
|
1198 |
+
msgstr ""
|
1199 |
+
|
1200 |
+
#: inc/cleantalk-settings.php:1446
|
1201 |
+
msgid "SQL-injection check"
|
1202 |
+
msgstr ""
|
1203 |
+
|
1204 |
+
#: inc/cleantalk-settings.php:1447
|
1205 |
+
msgid ""
|
1206 |
+
"SQL Injection — one of the most popular ways to hack websites and programs "
|
1207 |
+
"that work with databases. It is based on injection of a custom SQL code into "
|
1208 |
+
"database queries. It could transmit data through GET, POST requests or "
|
1209 |
+
"cookie files in an SQL code. If a website is vulnerable and execute such "
|
1210 |
+
"injections then it would allow attackers to apply changes to the website's "
|
1211 |
+
"MySQL database."
|
1212 |
+
msgstr ""
|
1213 |
+
|
1214 |
+
#: inc/cleantalk-settings.php:1450
|
1215 |
+
msgid "Check uploaded files"
|
1216 |
+
msgstr ""
|
1217 |
+
|
1218 |
+
#: inc/cleantalk-settings.php:1451
|
1219 |
+
msgid ""
|
1220 |
+
"The option checks each uploaded file to a website for malicious code. If "
|
1221 |
+
"it's possible for visitors to upload files to a website, for instance a work "
|
1222 |
+
"resume, then attackers could abuse it and upload an infected file to execute "
|
1223 |
+
"it later and get access to your website."
|
1224 |
+
msgstr ""
|
1225 |
+
|
1226 |
+
#: inc/cleantalk-users.php:15
|
1227 |
+
msgid "Find spam users"
|
1228 |
+
msgstr ""
|
1229 |
+
|
1230 |
+
#: inc/cleantalk-users.php:67
|
1231 |
+
msgid "Please wait for a while. CleanTalk is deleting spam users. Users left: "
|
1232 |
+
msgstr ""
|
1233 |
+
|
1234 |
+
#: inc/cleantalk-users.php:79
|
1235 |
+
msgid ""
|
1236 |
+
"The plugin will check all users against blacklists database and show you "
|
1237 |
+
"senders that have spam activity on other websites."
|
1238 |
+
msgstr ""
|
1239 |
+
|
1240 |
+
#: inc/cleantalk-users.php:84
|
1241 |
+
msgid ""
|
1242 |
+
"Allows to use user's dates to perform more accurate check. Could seriously "
|
1243 |
+
"slow down the check."
|
1244 |
+
msgstr ""
|
1245 |
+
|
1246 |
+
#: inc/cleantalk-users.php:108
|
1247 |
+
msgid ""
|
1248 |
+
"Please wait for a while. CleanTalk is checking all users via blacklist "
|
1249 |
+
"database at cleantalk.org. You will have option to delete found spam users "
|
1250 |
+
"after plugin finish."
|
1251 |
+
msgstr ""
|
1252 |
+
|
1253 |
+
#: inc/cleantalk-users.php:267
|
1254 |
+
msgid "Delete all users from list"
|
1255 |
+
msgstr ""
|
1256 |
+
|
1257 |
+
#: inc/cleantalk-users.php:269
|
1258 |
+
msgid "Download results in CSV"
|
1259 |
+
msgstr ""
|
1260 |
+
|
1261 |
+
#: inc/cleantalk-users.php:273
|
1262 |
+
msgid "Insert accounts"
|
1263 |
+
msgstr ""
|
1264 |
+
|
1265 |
+
#: inc/cleantalk-users.php:274
|
1266 |
+
msgid "Delete accounts"
|
1267 |
+
msgstr ""
|
1268 |
+
|
1269 |
+
#: inc/cleantalk-users.php:527
|
1270 |
+
#, php-format
|
1271 |
+
msgid ""
|
1272 |
+
"Total users %s, checked %s, last check %s, found %s spam users and %s bad "
|
1273 |
+
"users (without IP or email)"
|
1274 |
+
msgstr ""
|
1275 |
+
|
1276 |
+
#: inc/cleantalk-widget.php:22
|
1277 |
+
msgid "CleanTalk Widget"
|
1278 |
+
msgstr ""
|
1279 |
+
|
1280 |
+
#: inc/cleantalk-widget.php:25
|
1281 |
+
msgid "CleanTalk widget"
|
1282 |
+
msgstr ""
|
1283 |
+
|
1284 |
+
#: inc/cleantalk-widget.php:72
|
1285 |
+
msgid "CleanTalk's main page"
|
1286 |
+
msgstr ""
|
1287 |
+
|
1288 |
+
#: inc/cleantalk-widget.php:73
|
1289 |
+
msgid "spam"
|
1290 |
+
msgstr ""
|
1291 |
+
|
1292 |
+
#: inc/cleantalk-widget.php:73
|
1293 |
+
msgid "blocked by"
|
1294 |
+
msgstr ""
|
1295 |
+
|
1296 |
+
#: inc/cleantalk-widget.php:85
|
1297 |
+
msgid "Spam blocked"
|
1298 |
+
msgstr ""
|
1299 |
+
|
1300 |
+
#: inc/cleantalk-widget.php:90
|
1301 |
+
msgid "Title:"
|
1302 |
+
msgstr ""
|
1303 |
+
|
1304 |
+
#: inc/cleantalk-widget.php:95
|
1305 |
+
msgid "Style:"
|
1306 |
+
msgstr ""
|
1307 |
+
|
1308 |
+
#: inc/cleantalk-widget.php:97
|
1309 |
+
msgid "CleanTalk's Style"
|
1310 |
+
msgstr ""
|
1311 |
+
|
1312 |
+
#: inc/cleantalk-widget.php:98
|
1313 |
+
msgid "Light"
|
1314 |
+
msgstr ""
|
1315 |
+
|
1316 |
+
#: inc/cleantalk-widget.php:99
|
1317 |
+
msgid "Extremely Light"
|
1318 |
+
msgstr ""
|
1319 |
+
|
1320 |
+
#: inc/cleantalk-widget.php:100
|
1321 |
+
msgid "Dark"
|
1322 |
+
msgstr ""
|
1323 |
+
|
1324 |
+
#: inc/cleantalk-widget.php:105
|
1325 |
+
msgid "Referal link ID:"
|
1326 |
+
msgstr ""
|
1327 |
+
|
1328 |
+
#: lib/CleantalkSFW.php:71
|
1329 |
+
msgid "SpamFireWall is activated for your IP "
|
1330 |
+
msgstr ""
|
1331 |
+
|
1332 |
+
#: lib/CleantalkSFW.php:72
|
1333 |
+
msgid ""
|
1334 |
+
"To continue working with web site, please make sure that you have enabled "
|
1335 |
+
"JavaScript."
|
1336 |
+
msgstr ""
|
1337 |
+
|
1338 |
+
#: lib/CleantalkSFW.php:73
|
1339 |
+
msgid "Please click below to pass protection,"
|
1340 |
+
msgstr ""
|
1341 |
+
|
1342 |
+
#: lib/CleantalkSFW.php:74
|
1343 |
+
#, php-format
|
1344 |
+
msgid ""
|
1345 |
+
"Or you will be automatically redirected to the requested page after %d "
|
1346 |
+
"seconds."
|
1347 |
+
msgstr ""
|
1348 |
+
|
1349 |
+
#: lib/CleantalkSFW.php:75
|
1350 |
+
msgid "Antispam by CleanTalk"
|
1351 |
+
msgstr ""
|
1352 |
+
|
1353 |
+
#: lib/CleantalkSFW.php:76
|
1354 |
+
msgid "This is the testing page for SpamFireWall"
|
1355 |
+
msgstr ""
|
1356 |
+
|
1357 |
+
#: templates/translate_banner.php:6
|
1358 |
+
msgid "Help others use the plugin in your language."
|
1359 |
+
msgstr ""
|
1360 |
+
|
1361 |
+
#: templates/translate_banner.php:7
|
1362 |
+
msgid ""
|
1363 |
+
"We ask you to help with the translation of the plugin in your language. "
|
1364 |
+
"Please take a few minutes to make the plugin more comfortable."
|
1365 |
+
msgstr ""
|
1366 |
+
|
1367 |
+
#: templates/translate_banner.php:10
|
1368 |
+
msgid "TRANSLATE"
|
1369 |
+
msgstr ""
|
1370 |
+
|
1371 |
+
#. Plugin Name of the plugin/theme
|
1372 |
+
msgid "Anti-Spam by CleanTalk"
|
1373 |
+
msgstr ""
|
1374 |
+
|
1375 |
+
#. Description of the plugin/theme
|
1376 |
+
msgid ""
|
1377 |
+
"Max power, all-in-one, no Captcha, premium anti-spam plugin. No comment spam,"
|
1378 |
+
" no registration spam, no contact spam, protects any WordPress forms."
|
1379 |
+
msgstr ""
|
1380 |
+
|
1381 |
+
#. Plugin URI of the plugin/theme
|
1382 |
+
#. Author URI of the plugin/theme
|
1383 |
+
msgid "http://cleantalk.org"
|
1384 |
+
msgstr ""
|
1385 |
+
|
1386 |
+
#. Author of the plugin/theme
|
1387 |
+
msgid "СleanTalk <welcome@cleantalk.org>"
|
1388 |
+
msgstr ""
|
inc/cleantalk-common.php
CHANGED
@@ -1,1007 +1,1007 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
function apbct_array( $array ){
|
4 |
-
return new Cleantalk\Arr( $array );
|
5 |
-
}
|
6 |
-
|
7 |
-
$ct_checkjs_frm = 'ct_checkjs_frm';
|
8 |
-
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
9 |
-
|
10 |
-
$apbct_cookie_request_id_label = 'request_id';
|
11 |
-
$apbct_cookie_register_ok_label = 'register_ok';
|
12 |
-
|
13 |
-
$ct_checkjs_cf7 = 'ct_checkjs_cf7';
|
14 |
-
$ct_cf7_comment = '';
|
15 |
-
|
16 |
-
$ct_checkjs_jpcf = 'ct_checkjs_jpcf';
|
17 |
-
$ct_jpcf_patched = false;
|
18 |
-
$ct_jpcf_fields = array('name', 'email');
|
19 |
-
|
20 |
-
// Comment already proccessed
|
21 |
-
$ct_comment_done = false;
|
22 |
-
|
23 |
-
// Comment already proccessed
|
24 |
-
$ct_signup_done = false;
|
25 |
-
|
26 |
-
//Contains registration error
|
27 |
-
$ct_registration_error_comment = false;
|
28 |
-
|
29 |
-
// Default value for JS test
|
30 |
-
$ct_checkjs_def = 0;
|
31 |
-
|
32 |
-
// COOKIE label to store request id for last approved
|
33 |
-
$ct_approved_request_id_label = 'ct_approved_request_id';
|
34 |
-
|
35 |
-
// Last request id approved for publication
|
36 |
-
$ct_approved_request_id = null;
|
37 |
-
|
38 |
-
// Trial notice show time in minutes
|
39 |
-
$trial_notice_showtime = 10;
|
40 |
-
|
41 |
-
// Renew notice show time in minutes
|
42 |
-
$renew_notice_showtime = 10;
|
43 |
-
|
44 |
-
// COOKIE label for WP Landing Page proccessing result
|
45 |
-
$ct_wplp_result_label = 'ct_wplp_result';
|
46 |
-
|
47 |
-
// Flag indicates active JetPack comments
|
48 |
-
$ct_jp_comments = false;
|
49 |
-
|
50 |
-
// WP admin email notice interval in seconds
|
51 |
-
$ct_admin_notoice_period = 21600;
|
52 |
-
|
53 |
-
// Sevice negative comment to visitor.
|
54 |
-
// It uses for BuddyPress registrations to avoid double checks
|
55 |
-
$ct_negative_comment = null;
|
56 |
-
|
57 |
-
// Set globals to NULL to avoid massive DB requests. Globals will be set when needed only and by accessors only.
|
58 |
-
$ct_server = NULL;
|
59 |
-
$admin_email = NULL;
|
60 |
-
|
61 |
-
/**
|
62 |
-
* Public action 'plugins_loaded' - Loads locale, see http://codex.wordpress.org/Function_Reference/load_plugin_textdomain
|
63 |
-
*/
|
64 |
-
function apbct_plugin_loaded() {
|
65 |
-
$dir=plugin_basename( dirname( __FILE__ ) ) . '/../i18n';
|
66 |
-
$loaded=load_plugin_textdomain('cleantalk', false, $dir);
|
67 |
-
}
|
68 |
-
|
69 |
-
/**
|
70 |
-
* Inner function - Request's wrapper for anything
|
71 |
-
* @param array Array of parameters:
|
72 |
-
* 'message' - string
|
73 |
-
* 'example' - string
|
74 |
-
* 'checkjs' - int
|
75 |
-
* 'sender_email' - string
|
76 |
-
* 'sender_nickname' - string
|
77 |
-
* 'sender_info' - array
|
78 |
-
* 'post_info' - string
|
79 |
-
* @return array array('ct'=> Cleantalk, 'ct_result' => CleantalkResponse)
|
80 |
-
*/
|
81 |
-
function apbct_base_call($params = array(), $reg_flag = false){
|
82 |
-
|
83 |
-
global $apbct, $cleantalk_executed;
|
84 |
-
|
85 |
-
$cleantalk_executed = true;
|
86 |
-
|
87 |
-
$sender_info = !empty($params['sender_info'])
|
88 |
-
? CleantalkHelper::array_merge__save_numeric_keys__recursive(apbct_get_sender_info(), (array)$params['sender_info'])
|
89 |
-
: apbct_get_sender_info();
|
90 |
-
|
91 |
-
// Fields exclusions
|
92 |
-
if( ! empty( $params['message'] ) && is_array( $params['message'] ) ){
|
93 |
-
|
94 |
-
$params['message'] = apbct_array( $params['message'] )
|
95 |
-
->get_keys( $apbct->settings['exclusions__fields'], $apbct->settings['exclusions__fields__use_regexp'] )
|
96 |
-
->delete();
|
97 |
-
}
|
98 |
-
|
99 |
-
// Reversed url exclusions. Pass everything except one.
|
100 |
-
if( ! apbct_exclusions_check__url__reversed() ){
|
101 |
-
return array(
|
102 |
-
'ct' => false,
|
103 |
-
'ct_result' => new CleantalkResponse( null, null )
|
104 |
-
);
|
105 |
-
}
|
106 |
-
|
107 |
-
$default_params = array(
|
108 |
-
|
109 |
-
// IPs
|
110 |
-
'sender_ip' => defined('CT_TEST_IP') ? CT_TEST_IP : (isset($params['sender_ip']) ? $params['sender_ip'] : CleantalkHelper::ip__get(array('real'), false)),
|
111 |
-
'x_forwarded_for' => CleantalkHelper::ip__get(array('x_forwarded_for'), false),
|
112 |
-
'x_real_ip' => CleantalkHelper::ip__get(array('x_real_ip'), false),
|
113 |
-
|
114 |
-
// Misc
|
115 |
-
'auth_key' => $apbct->api_key,
|
116 |
-
'js_on' => apbct_js_test('ct_checkjs', $_COOKIE) ? 1 : apbct_js_test('ct_checkjs', $_POST),
|
117 |
-
|
118 |
-
'agent' => APBCT_AGENT,
|
119 |
-
'sender_info' => $sender_info,
|
120 |
-
'submit_time' => apbct_get_submit_time(),
|
121 |
-
);
|
122 |
-
|
123 |
-
// Send $_SERVER if couldn't find IP
|
124 |
-
if(empty($default_params['sender_ip']))
|
125 |
-
$default_params['sender_info']['server_info'] = $_SERVER;
|
126 |
-
|
127 |
-
$ct_request = new CleantalkRequest(
|
128 |
-
CleantalkHelper::array_merge__save_numeric_keys__recursive($default_params, $params)
|
129 |
-
);
|
130 |
-
|
131 |
-
$ct = new Cleantalk();
|
132 |
-
|
133 |
-
$ct->use_bultin_api = $apbct->settings['use_buitin_http_api'] ? true : false;
|
134 |
-
$ct->ssl_on = $apbct->settings['ssl_on'];
|
135 |
-
$ct->ssl_path = APBCT_CASERT_PATH;
|
136 |
-
|
137 |
-
// Options store url without shceme because of DB error with ''://'
|
138 |
-
$config = ct_get_server();
|
139 |
-
$ct->server_url = APBCT_MODERATE_URL;
|
140 |
-
$ct->work_url = preg_match('/http:\/\/.+/', $config['ct_work_url']) ? $config['ct_work_url'] : null;
|
141 |
-
$ct->server_ttl = $config['ct_server_ttl'];
|
142 |
-
$ct->server_changed = $config['ct_server_changed'];
|
143 |
-
|
144 |
-
$start = microtime(true);
|
145 |
-
$ct_result = $reg_flag
|
146 |
-
? @$ct->isAllowUser($ct_request)
|
147 |
-
: @$ct->isAllowMessage($ct_request);
|
148 |
-
$exec_time = microtime(true) - $start;
|
149 |
-
|
150 |
-
// Statistics
|
151 |
-
// Average request time
|
152 |
-
apbct_statistics__rotate($exec_time);
|
153 |
-
// Last request
|
154 |
-
$apbct->stats['last_request']['time'] = time();
|
155 |
-
$apbct->stats['last_request']['server'] = $ct->work_url;
|
156 |
-
$apbct->save('stats');
|
157 |
-
|
158 |
-
// Connection reports
|
159 |
-
if ($ct_result->errno === 0 && empty($ct_result->errstr))
|
160 |
-
$apbct->data['connection_reports']['success']++;
|
161 |
-
else
|
162 |
-
{
|
163 |
-
$apbct->data['connection_reports']['negative']++;
|
164 |
-
$apbct->data['connection_reports']['negative_report'][] = array(
|
165 |
-
'date' => date("Y-m-d H:i:s"),
|
166 |
-
'page_url' => apbct_get_server_variable( 'REQUEST_URI' ),
|
167 |
-
'lib_report' => $ct_result->errstr,
|
168 |
-
'work_url' => $ct->work_url,
|
169 |
-
);
|
170 |
-
|
171 |
-
if(count($apbct->data['connection_reports']['negative_report']) > 20)
|
172 |
-
$apbct->data['connection_reports']['negative_report'] = array_slice($apbct->data['connection_reports']['negative_report'], -20, 20);
|
173 |
-
|
174 |
-
}
|
175 |
-
|
176 |
-
if ($ct->server_change) {
|
177 |
-
update_option(
|
178 |
-
'cleantalk_server',
|
179 |
-
array(
|
180 |
-
'ct_work_url' => $ct->work_url,
|
181 |
-
'ct_server_ttl' => $ct->server_ttl,
|
182 |
-
'ct_server_changed' => time(),
|
183 |
-
)
|
184 |
-
);
|
185 |
-
}
|
186 |
-
|
187 |
-
$ct_result = ct_change_plugin_resonse($ct_result, $ct_request->js_on);
|
188 |
-
|
189 |
-
// Restart submit form counter for failed requests
|
190 |
-
if ($ct_result->allow == 0){
|
191 |
-
apbct_cookie(); // Setting page timer and cookies
|
192 |
-
ct_add_event('no');
|
193 |
-
}else{
|
194 |
-
ct_add_event('yes');
|
195 |
-
}
|
196 |
-
|
197 |
-
// Set cookies if it's not.
|
198 |
-
if(empty($apbct->flags__cookies_setuped))
|
199 |
-
apbct_cookie();
|
200 |
-
|
201 |
-
return array('ct' => $ct, 'ct_result' => $ct_result);
|
202 |
-
|
203 |
-
}
|
204 |
-
|
205 |
-
function apbct_exclusions_check($func = null){
|
206 |
-
|
207 |
-
global $apbct, $cleantalk_executed;
|
208 |
-
|
209 |
-
// Common exclusions
|
210 |
-
if(
|
211 |
-
apbct_exclusions_check__ip() ||
|
212 |
-
apbct_exclusions_check__url() ||
|
213 |
-
apbct_is_user_role_in( $apbct->settings['exclusions__roles'] ) ||
|
214 |
-
$cleantalk_executed
|
215 |
-
)
|
216 |
-
return true;
|
217 |
-
|
218 |
-
// Personal exclusions
|
219 |
-
switch ($func){
|
220 |
-
case 'ct_contact_form_validate_postdata':
|
221 |
-
if(
|
222 |
-
(defined( 'DOING_AJAX' ) && DOING_AJAX) ||
|
223 |
-
apbct_array( $_POST )->get_keys( 'members_search_submit' )->result()
|
224 |
-
)
|
225 |
-
return true;
|
226 |
-
break;
|
227 |
-
case 'ct_contact_form_validate':
|
228 |
-
if(
|
229 |
-
apbct_array( $_POST )->get_keys( 'members_search_submit' )->result()
|
230 |
-
)
|
231 |
-
return true;
|
232 |
-
break;
|
233 |
-
default:
|
234 |
-
return false;
|
235 |
-
break;
|
236 |
-
}
|
237 |
-
|
238 |
-
return false;
|
239 |
-
}
|
240 |
-
|
241 |
-
function apbct_exclusions_check__url__reversed(){
|
242 |
-
return defined( 'APBCT_URL_EXCLUSIONS__REVERSED' ) && ! \Cleantalk\Common\Server::has_string( 'REQUEST_URI', APBCT_URL_EXCLUSIONS__REVERSED )
|
243 |
-
? false
|
244 |
-
: true;
|
245 |
-
}
|
246 |
-
|
247 |
-
/**
|
248 |
-
* Checks if reuqest URI is in exclusion list
|
249 |
-
*
|
250 |
-
* @return bool
|
251 |
-
*/
|
252 |
-
function apbct_exclusions_check__url() {
|
253 |
-
|
254 |
-
global $apbct;
|
255 |
-
|
256 |
-
if ( ! empty( $apbct->settings['exclusions__urls'] ) ) {
|
257 |
-
|
258 |
-
$exclusions = explode( ',', $apbct->settings['exclusions__urls'] );
|
259 |
-
|
260 |
-
// Fix for AJAX forms
|
261 |
-
$haystack = apbct_get_server_variable( 'REQUEST_URI' ) == '/wp-admin/admin-ajax.php' && ! apbct_get_server_variable( 'HTTP_REFERER' )
|
262 |
-
? apbct_get_server_variable( 'HTTP_REFERER' )
|
263 |
-
: apbct_get_server_variable( 'REQUEST_URI' );
|
264 |
-
|
265 |
-
foreach ( $exclusions as $exclusion ) {
|
266 |
-
if (
|
267 |
-
($apbct->settings['exclusions__urls__use_regexp'] && preg_match( '/' . $exclusion . '/', $haystack ) === 1) ||
|
268 |
-
stripos( $haystack, $exclusion ) !== false
|
269 |
-
){
|
270 |
-
return true;
|
271 |
-
}
|
272 |
-
}
|
273 |
-
return false;
|
274 |
-
}
|
275 |
-
}
|
276 |
-
/**
|
277 |
-
* @deprecated 5.128 Using IP white-lists instead
|
278 |
-
* @deprecated since 18.09.2019
|
279 |
-
* Checks if sender_ip is in exclusion list
|
280 |
-
*
|
281 |
-
* @return bool
|
282 |
-
*/
|
283 |
-
function apbct_exclusions_check__ip(){
|
284 |
-
|
285 |
-
global $cleantalk_ip_exclusions;
|
286 |
-
|
287 |
-
if( apbct_get_server_variable( 'REMOTE_ADDR' ) ){
|
288 |
-
|
289 |
-
if( CleantalkHelper::ip__is_cleantalks( apbct_get_server_variable( 'REMOTE_ADDR' ) ) ){
|
290 |
-
return true;
|
291 |
-
}
|
292 |
-
|
293 |
-
if( ! empty( $cleantalk_ip_exclusions ) && is_array( $cleantalk_ip_exclusions ) ){
|
294 |
-
foreach ( $cleantalk_ip_exclusions as $exclusion ){
|
295 |
-
if( stripos( apbct_get_server_variable( 'REMOTE_ADDR' ), $exclusion ) !== false ){
|
296 |
-
return true;
|
297 |
-
}
|
298 |
-
}
|
299 |
-
}
|
300 |
-
}
|
301 |
-
|
302 |
-
return false;
|
303 |
-
}
|
304 |
-
|
305 |
-
/**
|
306 |
-
* Inner function - Default data array for senders
|
307 |
-
* @return array
|
308 |
-
*/
|
309 |
-
function apbct_get_sender_info() {
|
310 |
-
|
311 |
-
global $apbct;
|
312 |
-
|
313 |
-
// Validate cookie from the backend
|
314 |
-
$cookie_is_ok = apbct_cookies_test();
|
315 |
-
|
316 |
-
$referer_previous = $apbct->settings['set_cookies__sessions']
|
317 |
-
? apbct_alt_session__get('apbct_prev_referer')
|
318 |
-
: filter_input(INPUT_COOKIE, 'apbct_prev_referer');
|
319 |
-
|
320 |
-
$site_landing_ts = $apbct->settings['set_cookies__sessions']
|
321 |
-
? apbct_alt_session__get('apbct_site_landing_ts')
|
322 |
-
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
323 |
-
|
324 |
-
$page_hits = $apbct->settings['set_cookies__sessions']
|
325 |
-
? apbct_alt_session__get('apbct_page_hits')
|
326 |
-
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
327 |
-
|
328 |
-
if (count($_POST) > 0) {
|
329 |
-
foreach ($_POST as $k => $v) {
|
330 |
-
if (preg_match("/^(ct_check|checkjs).+/", $k)) {
|
331 |
-
$checkjs_data_post = $v;
|
332 |
-
}
|
333 |
-
}
|
334 |
-
}
|
335 |
-
|
336 |
-
// AMP check
|
337 |
-
$amp_detected = apbct_get_server_variable( 'HTTP_REFERER' )
|
338 |
-
? strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '/amp/') !== false || strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '?amp=1') !== false || strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '&=1') !== false
|
339 |
-
? 1
|
340 |
-
: 0
|
341 |
-
: null;
|
342 |
-
|
343 |
-
$site_referer = $apbct->settings['store_urls__sessions']
|
344 |
-
? apbct_alt_session__get('apbct_site_referer')
|
345 |
-
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
346 |
-
|
347 |
-
$urls = $apbct->settings['store_urls__sessions']
|
348 |
-
? (array)apbct_alt_session__get('apbct_urls')
|
349 |
-
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
350 |
-
|
351 |
-
return array(
|
352 |
-
'remote_addr' => CleantalkHelper::ip__get(array('remote_addr'), false),
|
353 |
-
'REFFERRER' => apbct_get_server_variable( 'HTTP_REFERER' ),
|
354 |
-
'USER_AGENT' => apbct_get_server_variable( 'HTTP_USER_AGENT' ),
|
355 |
-
'page_url' => apbct_get_server_variable( 'SERVER_NAME' ) . apbct_get_server_variable( 'REQUEST_URI' ),
|
356 |
-
'cms_lang' => substr(get_locale(), 0, 2),
|
357 |
-
'ct_options' => json_encode($apbct->settings),
|
358 |
-
'fields_number' => sizeof($_POST),
|
359 |
-
'direct_post' => $cookie_is_ok === null && apbct_is_post() ? 1 : 0,
|
360 |
-
// Raw data to validated JavaScript test in the cloud
|
361 |
-
'checkjs_data_cookies' => !empty($_COOKIE['ct_checkjs']) ? $_COOKIE['ct_checkjs'] : null,
|
362 |
-
'checkjs_data_post' => !empty($checkjs_data_post) ? $checkjs_data_post : null,
|
363 |
-
// PHP cookies
|
364 |
-
'cookies_enabled' => $cookie_is_ok,
|
365 |
-
'REFFERRER_PREVIOUS' => !empty($referer_previous) && $cookie_is_ok ? $referer_previous : null,
|
366 |
-
'site_landing_ts' => !empty($site_landing_ts) && $cookie_is_ok ? $site_landing_ts : null,
|
367 |
-
'page_hits' => !empty($page_hits) ? $page_hits : null,
|
368 |
-
// JS cookies
|
369 |
-
'js_info' => !empty($_COOKIE['ct_user_info']) ? json_decode(stripslashes($_COOKIE['ct_user_info']), true) : null,
|
370 |
-
'mouse_cursor_positions' => !empty($_COOKIE['ct_pointer_data']) ? json_decode(stripslashes($_COOKIE['ct_pointer_data']), true) : null,
|
371 |
-
'js_timezone' => !empty($_COOKIE['ct_timezone']) ? $_COOKIE['ct_timezone'] : null,
|
372 |
-
'key_press_timestamp' => !empty($_COOKIE['ct_fkp_timestamp']) ? $_COOKIE['ct_fkp_timestamp'] : null,
|
373 |
-
'page_set_timestamp' => !empty($_COOKIE['ct_ps_timestamp']) ? $_COOKIE['ct_ps_timestamp'] : null,
|
374 |
-
'form_visible_inputs' => !empty($_COOKIE['apbct_visible_fields_count']) ? $_COOKIE['apbct_visible_fields_count'] : null,
|
375 |
-
'apbct_visible_fields' => !empty($_COOKIE['apbct_visible_fields']) ? apbct_visibile_fields__process($_COOKIE['apbct_visible_fields']) : null,
|
376 |
-
// Misc
|
377 |
-
'site_referer' => !empty($site_referer) ? $site_referer : null,
|
378 |
-
'source_url' => !empty($urls) ? json_encode($urls) : null,
|
379 |
-
// Debug stuff
|
380 |
-
'amp_detected' => $amp_detected,
|
381 |
-
'hook' => current_action() ? current_action() : 'no_hook',
|
382 |
-
'headers_sent' => !empty($apbct->headers_sent) ? $apbct->headers_sent : false,
|
383 |
-
'headers_sent__hook' => !empty($apbct->headers_sent__hook) ? $apbct->headers_sent__hook : 'no_hook',
|
384 |
-
'headers_sent__where' => !empty($apbct->headers_sent__where) ? $apbct->headers_sent__where : false,
|
385 |
-
'request_type' => apbct_get_server_variable('REQUEST_METHOD') ? apbct_get_server_variable('REQUEST_METHOD') : 'UNKNOWN',
|
386 |
-
);
|
387 |
-
}
|
388 |
-
|
389 |
-
/**
|
390 |
-
* Process visible fields for specific form to match the fields from request
|
391 |
-
*
|
392 |
-
* @param string $visible_fields
|
393 |
-
*
|
394 |
-
* @return string
|
395 |
-
*/
|
396 |
-
function apbct_visibile_fields__process($visible_fields) {
|
397 |
-
if(strpos($visible_fields, 'wpforms') !== false){
|
398 |
-
$visible_fields = preg_replace(
|
399 |
-
array('/\[/', '/\]/'),
|
400 |
-
'',
|
401 |
-
str_replace(
|
402 |
-
'][',
|
403 |
-
'_',
|
404 |
-
str_replace(
|
405 |
-
'wpforms[fields]',
|
406 |
-
'',
|
407 |
-
$visible_fields
|
408 |
-
)
|
409 |
-
)
|
410 |
-
);
|
411 |
-
}
|
412 |
-
|
413 |
-
return $visible_fields;
|
414 |
-
}
|
415 |
-
|
416 |
-
/*
|
417 |
-
* Outputs JS key for AJAX-use only. Stops script.
|
418 |
-
*/
|
419 |
-
function apbct_js_keys__get__ajax($direct_call = false){
|
420 |
-
if(!$direct_call){
|
421 |
-
if(isset($_POST['_ajax_nonce'])){
|
422 |
-
if(!wp_verify_nonce($_POST['_ajax_nonce'], 'ct_secret_stuff')){
|
423 |
-
wp_doing_ajax()
|
424 |
-
? wp_die( -1, 403 )
|
425 |
-
: die( '-1' );
|
426 |
-
}
|
427 |
-
}else{
|
428 |
-
wp_doing_ajax()
|
429 |
-
? wp_die( -1, 403 )
|
430 |
-
: die( '-1' );
|
431 |
-
}
|
432 |
-
}
|
433 |
-
die(json_encode(array(
|
434 |
-
'js_key' => ct_get_checkjs_value()
|
435 |
-
)));
|
436 |
-
}
|
437 |
-
|
438 |
-
/**
|
439 |
-
* Get ct_get_checkjs_value
|
440 |
-
*
|
441 |
-
* @param bool $random_key
|
442 |
-
*
|
443 |
-
* @return int|string|null
|
444 |
-
*/
|
445 |
-
function ct_get_checkjs_value(){
|
446 |
-
|
447 |
-
global $apbct;
|
448 |
-
|
449 |
-
// Use static JS keys
|
450 |
-
if($apbct->settings['use_static_js_key'] == 1){
|
451 |
-
|
452 |
-
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
453 |
-
|
454 |
-
// Auto detecting. Detected.
|
455 |
-
}elseif(
|
456 |
-
$apbct->settings['use_static_js_key'] == - 1 &&
|
457 |
-
( apbct_is_cache_plugins_exists() ||
|
458 |
-
( apbct_is_post() && $apbct->data['cache_detected'] == 1 )
|
459 |
-
)
|
460 |
-
){
|
461 |
-
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
462 |
-
if( apbct_is_cache_plugins_exists() )
|
463 |
-
$apbct->data['cache_detected'] = 1;
|
464 |
-
|
465 |
-
// Using dynamic JS keys
|
466 |
-
}else{
|
467 |
-
|
468 |
-
$keys = $apbct->data['js_keys'];
|
469 |
-
$keys_checksum = md5(json_encode($keys));
|
470 |
-
|
471 |
-
$key = null;
|
472 |
-
$latest_key_time = 0;
|
473 |
-
|
474 |
-
foreach ($keys as $k => $t) {
|
475 |
-
|
476 |
-
// Removing key if it's to old
|
477 |
-
if (time() - $t > $apbct->data['js_keys_store_days'] * 86400 * 7) {
|
478 |
-
unset($keys[$k]);
|
479 |
-
continue;
|
480 |
-
}
|
481 |
-
|
482 |
-
if ($t > $latest_key_time) {
|
483 |
-
$latest_key_time = $t;
|
484 |
-
$key = $k;
|
485 |
-
}
|
486 |
-
}
|
487 |
-
|
488 |
-
// Set new key if the latest key is too old
|
489 |
-
if (time() - $latest_key_time > $apbct->data['js_key_lifetime']) {
|
490 |
-
$key = rand();
|
491 |
-
$keys[$key] = time();
|
492 |
-
}
|
493 |
-
|
494 |
-
// Save keys if they were changed
|
495 |
-
if (md5(json_encode($keys)) != $keys_checksum) {
|
496 |
-
$apbct->data['js_keys'] = $keys;
|
497 |
-
// $apbct->saveData();
|
498 |
-
}
|
499 |
-
|
500 |
-
$apbct->data['cache_detected'] = 0;
|
501 |
-
}
|
502 |
-
|
503 |
-
$apbct->saveData();
|
504 |
-
|
505 |
-
return $key;
|
506 |
-
}
|
507 |
-
|
508 |
-
function apbct_is_cache_plugins_exists(){
|
509 |
-
return
|
510 |
-
defined('WP_ROCKET_VERSION') || // WPRocket
|
511 |
-
defined('LSCWP_DIR') || // LiteSpeed Cache
|
512 |
-
defined('WPFC_WP_CONTENT_BASENAME') || // WP Fastest Cache
|
513 |
-
defined('W3TC') || // W3 Total Cache
|
514 |
-
defined('WPO_VERSION') || // WP-Optimize – Clean, Compress, Cache
|
515 |
-
defined('AUTOPTIMIZE_PLUGIN_VERSION') || // Autoptimize
|
516 |
-
defined('WPCACHEHOME') || // WP Super Cache
|
517 |
-
defined('WPHB_VERSION') || // Hummingbird – Speed up, Cache, Optimize Your CSS and JS
|
518 |
-
defined('CE_FILE') || // Cache Enabler – WordPress Cache
|
519 |
-
class_exists('RedisObjectCache') || // Redis Object Cache
|
520 |
-
defined('SiteGround_Optimizer\VERSION') || // SG Optimizer
|
521 |
-
class_exists('WP_Rest_Cache_Plugin\Includes\Plugin'); // WP REST Cache
|
522 |
-
}
|
523 |
-
|
524 |
-
/**
|
525 |
-
* Inner function - Current site admin e-mail
|
526 |
-
* @return string Admin e-mail
|
527 |
-
*/
|
528 |
-
function ct_get_admin_email() {
|
529 |
-
global $admin_email;
|
530 |
-
if(!isset($admin_email))
|
531 |
-
{
|
532 |
-
$admin_email = get_option('admin_email');
|
533 |
-
}
|
534 |
-
return $admin_email;
|
535 |
-
}
|
536 |
-
|
537 |
-
/**
|
538 |
-
* Inner function - Current Cleantalk working server info
|
539 |
-
* @return mixed[] Array of server data
|
540 |
-
*/
|
541 |
-
function ct_get_server($force=false) {
|
542 |
-
global $ct_server;
|
543 |
-
if(!$force && isset($ct_server) && isset($ct_server['ct_work_url']) && !empty($ct_server['ct_work_url'])){
|
544 |
-
|
545 |
-
return $ct_server;
|
546 |
-
|
547 |
-
}else{
|
548 |
-
|
549 |
-
$ct_server = get_option('cleantalk_server');
|
550 |
-
if (!is_array($ct_server)){
|
551 |
-
$ct_server = array(
|
552 |
-
'ct_work_url' => NULL,
|
553 |
-
'ct_server_ttl' => NULL,
|
554 |
-
'ct_server_changed' => NULL
|
555 |
-
);
|
556 |
-
}
|
557 |
-
return $ct_server;
|
558 |
-
}
|
559 |
-
}
|
560 |
-
|
561 |
-
/**
|
562 |
-
* Inner function - Stores ang returns cleantalk hash of current comment
|
563 |
-
* @param string New hash or NULL
|
564 |
-
* @return string New hash or current hash depending on parameter
|
565 |
-
*/
|
566 |
-
function ct_hash($new_hash = '') {
|
567 |
-
/**
|
568 |
-
* Current hash
|
569 |
-
*/
|
570 |
-
static $hash;
|
571 |
-
|
572 |
-
if (!empty($new_hash)) {
|
573 |
-
$hash = $new_hash;
|
574 |
-
}
|
575 |
-
return $hash;
|
576 |
-
}
|
577 |
-
|
578 |
-
/**
|
579 |
-
* Inner function - Write manual moderation results to PHP sessions
|
580 |
-
* @param string $hash Cleantalk comment hash
|
581 |
-
* @param string $message comment_content
|
582 |
-
* @param int $allow flag good comment (1) or bad (0)
|
583 |
-
* @return string comment_content w\o cleantalk resume
|
584 |
-
*/
|
585 |
-
function ct_feedback($hash, $allow) {
|
586 |
-
global $apbct;
|
587 |
-
|
588 |
-
$ct_feedback = $hash . ':' . $allow . ';';
|
589 |
-
if($apbct->data['feedback_request'])
|
590 |
-
$apbct->data['feedback_request'] = $ct_feedback;
|
591 |
-
else
|
592 |
-
$apbct->data['feedback_request'] .= $ct_feedback;
|
593 |
-
|
594 |
-
$apbct->saveData();
|
595 |
-
}
|
596 |
-
|
597 |
-
/**
|
598 |
-
* Inner function - Sends the results of moderation
|
599 |
-
* Scheduled in 3600 seconds!
|
600 |
-
* @param string $feedback_request
|
601 |
-
* @return bool
|
602 |
-
*/
|
603 |
-
function ct_send_feedback($feedback_request = null) {
|
604 |
-
|
605 |
-
global $apbct;
|
606 |
-
|
607 |
-
if (empty($feedback_request) && isset($apbct->data['feedback_request']) && preg_match("/^[a-z0-9\;\:]+$/", $apbct->data['feedback_request'])){
|
608 |
-
$feedback_request = $apbct->data['feedback_request'];
|
609 |
-
$apbct->data['feedback_request'] = '';
|
610 |
-
$apbct->saveData();
|
611 |
-
}
|
612 |
-
|
613 |
-
if ($feedback_request !== null) {
|
614 |
-
|
615 |
-
$ct_request = new CleantalkRequest(array(
|
616 |
-
// General
|
617 |
-
'auth_key' => $apbct->api_key,
|
618 |
-
// Additional
|
619 |
-
'feedback' => $feedback_request,
|
620 |
-
));
|
621 |
-
|
622 |
-
$ct = new Cleantalk();
|
623 |
-
|
624 |
-
// Server URL handling
|
625 |
-
$config = ct_get_server();
|
626 |
-
$ct->server_url = APBCT_MODERATE_URL;
|
627 |
-
$ct->work_url = preg_match('/http:\/\/.+/', $config['ct_work_url']) ? $config['ct_work_url'] : null;
|
628 |
-
$ct->server_ttl = $config['ct_server_ttl'];
|
629 |
-
$ct->server_changed = $config['ct_server_changed'];
|
630 |
-
|
631 |
-
$ct->sendFeedback($ct_request);
|
632 |
-
|
633 |
-
if ($ct->server_change) {
|
634 |
-
update_option(
|
635 |
-
'cleantalk_server',
|
636 |
-
array(
|
637 |
-
'ct_work_url' => $ct->work_url,
|
638 |
-
'ct_server_ttl' => $ct->server_ttl,
|
639 |
-
'ct_server_changed' => time(),
|
640 |
-
)
|
641 |
-
);
|
642 |
-
}
|
643 |
-
|
644 |
-
return true;
|
645 |
-
}
|
646 |
-
|
647 |
-
return false;
|
648 |
-
}
|
649 |
-
|
650 |
-
/**
|
651 |
-
* Delete old spam comments
|
652 |
-
* Scheduled in 3600 seconds!
|
653 |
-
* @return null
|
654 |
-
*/
|
655 |
-
function ct_delete_spam_comments() {
|
656 |
-
|
657 |
-
global $apbct;
|
658 |
-
|
659 |
-
if ($apbct->settings['remove_old_spam'] == 1) {
|
660 |
-
$last_comments = get_comments(array('status' => 'spam', 'number' => 1000, 'order' => 'ASC'));
|
661 |
-
foreach ($last_comments as $c) {
|
662 |
-
$comment_date_gmt = strtotime($c->comment_date_gmt);
|
663 |
-
if ($comment_date_gmt && is_numeric($comment_date_gmt)) {
|
664 |
-
if (time() - $comment_date_gmt > 86400 * $apbct->data['spam_store_days']) {
|
665 |
-
// Force deletion old spam comments
|
666 |
-
wp_delete_comment($c->comment_ID, true);
|
667 |
-
}
|
668 |
-
}
|
669 |
-
}
|
670 |
-
}
|
671 |
-
|
672 |
-
return null;
|
673 |
-
}
|
674 |
-
|
675 |
-
/*
|
676 |
-
* Get data from an ARRAY recursively
|
677 |
-
* @return array
|
678 |
-
*/
|
679 |
-
function ct_get_fields_any($arr, $message=array(), $email = null, $nickname = array('nick' => '', 'first' => '', 'last' => ''), $subject = null, $contact = true, $prev_name = ''){
|
680 |
-
|
681 |
-
//Skip request if fields exists
|
682 |
-
$skip_params = array(
|
683 |
-
'ipn_track_id', // PayPal IPN #
|
684 |
-
'txn_type', // PayPal transaction type
|
685 |
-
'payment_status', // PayPal payment status
|
686 |
-
'ccbill_ipn', // CCBill IPN
|
687 |
-
'ct_checkjs', // skip ct_checkjs field
|
688 |
-
'api_mode', // DigiStore-API
|
689 |
-
'loadLastCommentId' // Plugin: WP Discuz. ticket_id=5571
|
690 |
-
);
|
691 |
-
|
692 |
-
// Fields to replace with ****
|
693 |
-
$obfuscate_params = array(
|
694 |
-
'password',
|
695 |
-
'pass',
|
696 |
-
'pwd',
|
697 |
-
'pswd'
|
698 |
-
);
|
699 |
-
|
700 |
-
// Skip feilds with these strings and known service fields
|
701 |
-
$skip_fields_with_strings = array(
|
702 |
-
// Common
|
703 |
-
'ct_checkjs', //Do not send ct_checkjs
|
704 |
-
'nonce', //nonce for strings such as 'rsvp_nonce_name'
|
705 |
-
'security',
|
706 |
-
// 'action',
|
707 |
-
'http_referer',
|
708 |
-
'referer-page',
|
709 |
-
'timestamp',
|
710 |
-
'captcha',
|
711 |
-
// Formidable Form
|
712 |
-
'form_key',
|
713 |
-
'submit_entry',
|
714 |
-
// Custom Contact Forms
|
715 |
-
'form_id',
|
716 |
-
'ccf_form',
|
717 |
-
'form_page',
|
718 |
-
// Qu Forms
|
719 |
-
'iphorm_uid',
|
720 |
-
'form_url',
|
721 |
-
'post_id',
|
722 |
-
'iphorm_ajax',
|
723 |
-
'iphorm_id',
|
724 |
-
// Fast SecureContact Froms
|
725 |
-
'fs_postonce_1',
|
726 |
-
'fscf_submitted',
|
727 |
-
'mailto_id',
|
728 |
-
'si_contact_action',
|
729 |
-
// Ninja Forms
|
730 |
-
'formData_id',
|
731 |
-
'formData_settings',
|
732 |
-
'formData_fields_\d+_id',
|
733 |
-
'formData_fields_\d+_files.*',
|
734 |
-
// E_signature
|
735 |
-
'recipient_signature',
|
736 |
-
'output_\d+_\w{0,2}',
|
737 |
-
// Contact Form by Web-Settler protection
|
738 |
-
'_formId',
|
739 |
-
'_returnLink',
|
740 |
-
// Social login and more
|
741 |
-
'_save',
|
742 |
-
'_facebook',
|
743 |
-
'_social',
|
744 |
-
'user_login-',
|
745 |
-
// Contact Form 7
|
746 |
-
'_wpcf7',
|
747 |
-
'ebd_settings',
|
748 |
-
'ebd_downloads_',
|
749 |
-
'ecole_origine',
|
750 |
-
'signature',
|
751 |
-
);
|
752 |
-
|
753 |
-
// Reset $message if we have a sign-up data
|
754 |
-
$skip_message_post = array(
|
755 |
-
'edd_action', // Easy Digital Downloads
|
756 |
-
);
|
757 |
-
|
758 |
-
if( apbct_array( array( $_POST, $_GET ) )->get_keys( $skip_params )->result() )
|
759 |
-
$contact = false;
|
760 |
-
|
761 |
-
if(count($arr)){
|
762 |
-
|
763 |
-
foreach($arr as $key => $value){
|
764 |
-
|
765 |
-
if(gettype($value) == 'string'){
|
766 |
-
|
767 |
-
$tmp = strpos($value, '\\') !== false ? stripslashes($value) : $value;
|
768 |
-
$decoded_json_value = json_decode($tmp, true);
|
769 |
-
|
770 |
-
// Decoding JSON
|
771 |
-
if($decoded_json_value !== null){
|
772 |
-
$value = $decoded_json_value;
|
773 |
-
|
774 |
-
// Ajax Contact Forms. Get data from such strings:
|
775 |
-
// acfw30_name %% Blocked~acfw30_email %% s@cleantalk.org
|
776 |
-
// acfw30_textarea %% msg
|
777 |
-
}elseif(preg_match('/^\S+\s%%\s\S+.+$/', $value)){
|
778 |
-
$value = explode('~', $value);
|
779 |
-
foreach ($value as &$val){
|
780 |
-
$tmp = explode(' %% ', $val);
|
781 |
-
$val = array($tmp[0] => $tmp[1]);
|
782 |
-
}
|
783 |
-
}
|
784 |
-
}
|
785 |
-
|
786 |
-
if(!is_array($value) && !is_object($value)){
|
787 |
-
|
788 |
-
if (in_array($key, $skip_params, true) && $key != 0 && $key != '' || preg_match("/^ct_checkjs/", $key))
|
789 |
-
$contact = false;
|
790 |
-
|
791 |
-
if($value === '')
|
792 |
-
continue;
|
793 |
-
|
794 |
-
// Skipping fields names with strings from (array)skip_fields_with_strings
|
795 |
-
foreach($skip_fields_with_strings as $needle){
|
796 |
-
if (preg_match("/".$needle."/", $prev_name.$key) == 1){
|
797 |
-
continue(2);
|
798 |
-
}
|
799 |
-
}unset($needle);
|
800 |
-
|
801 |
-
// Obfuscating params
|
802 |
-
foreach($obfuscate_params as $needle){
|
803 |
-
if (strpos($key, $needle) !== false){
|
804 |
-
$value = ct_obfuscate_param($value);
|
805 |
-
continue(2);
|
806 |
-
}
|
807 |
-
}unset($needle);
|
808 |
-
|
809 |
-
$value_for_email = trim( strip_shortcodes( $value ) ); // Removes shortcodes to do better spam filtration on server side.
|
810 |
-
|
811 |
-
// Email
|
812 |
-
if ( ! $email && preg_match( "/^\S+@\S+\.\S+$/", $value_for_email ) ) {
|
813 |
-
$email = $value_for_email;
|
814 |
-
|
815 |
-
// Removes whitespaces
|
816 |
-
$value = urldecode( trim( strip_shortcodes( $value ) ) ); // Fully cleaned message
|
817 |
-
|
818 |
-
// Names
|
819 |
-
}elseif (preg_match("/name/i", $key)){
|
820 |
-
|
821 |
-
preg_match("/((name.?)?(your|first|for)(.?name)?)/", $key, $match_forename);
|
822 |
-
preg_match("/((name.?)?(last|family|second|sur)(.?name)?)/", $key, $match_surname);
|
823 |
-
preg_match("/(name.?)?(nick|user)(.?name)?/", $key, $match_nickname);
|
824 |
-
|
825 |
-
if(count($match_forename) > 1)
|
826 |
-
$nickname['first'] = $value;
|
827 |
-
elseif(count($match_surname) > 1)
|
828 |
-
$nickname['last'] = $value;
|
829 |
-
elseif(count($match_nickname) > 1)
|
830 |
-
$nickname['nick'] = $value;
|
831 |
-
else
|
832 |
-
$message[$prev_name.$key] = $value;
|
833 |
-
|
834 |
-
// Subject
|
835 |
-
}elseif ($subject === null && preg_match("/subject/i", $key)){
|
836 |
-
$subject = $value;
|
837 |
-
|
838 |
-
// Message
|
839 |
-
}else{
|
840 |
-
$message[$prev_name.$key] = $value;
|
841 |
-
}
|
842 |
-
|
843 |
-
}elseif(!is_object($value)){
|
844 |
-
|
845 |
-
$prev_name_original = $prev_name;
|
846 |
-
$prev_name = ($prev_name === '' ? $key.'_' : $prev_name.$key.'_');
|
847 |
-
|
848 |
-
$temp = ct_get_fields_any($value, $message, $email, $nickname, $subject, $contact, $prev_name);
|
849 |
-
|
850 |
-
$message = $temp['message'];
|
851 |
-
$email = ($temp['email'] ? $temp['email'] : null);
|
852 |
-
$nickname = ($temp['nickname'] ? $temp['nickname'] : null);
|
853 |
-
$subject = ($temp['subject'] ? $temp['subject'] : null);
|
854 |
-
if($contact === true)
|
855 |
-
$contact = ($temp['contact'] === false ? false : true);
|
856 |
-
$prev_name = $prev_name_original;
|
857 |
-
}
|
858 |
-
} unset($key, $value);
|
859 |
-
}
|
860 |
-
|
861 |
-
foreach ($skip_message_post as $v) {
|
862 |
-
if (isset($_POST[$v])) {
|
863 |
-
$message = null;
|
864 |
-
break;
|
865 |
-
}
|
866 |
-
} unset($v);
|
867 |
-
|
868 |
-
//If top iteration, returns compiled name field. Example: "Nickname Firtsname Lastname".
|
869 |
-
if($prev_name === ''){
|
870 |
-
if(!empty($nickname)){
|
871 |
-
$nickname_str = '';
|
872 |
-
foreach($nickname as $value){
|
873 |
-
$nickname_str .= ($value ? $value." " : "");
|
874 |
-
}unset($value);
|
875 |
-
}
|
876 |
-
$nickname = $nickname_str;
|
877 |
-
}
|
878 |
-
|
879 |
-
$return_param = array(
|
880 |
-
'email' => $email,
|
881 |
-
'nickname' => $nickname,
|
882 |
-
'subject' => $subject,
|
883 |
-
'contact' => $contact,
|
884 |
-
'message' => $message
|
885 |
-
);
|
886 |
-
return $return_param;
|
887 |
-
}
|
888 |
-
|
889 |
-
/**
|
890 |
-
* Masks a value with asterisks (*)
|
891 |
-
* @return string
|
892 |
-
*/
|
893 |
-
function ct_obfuscate_param($value = null) {
|
894 |
-
if ($value && (!is_object($value) || !is_array($value))) {
|
895 |
-
$length = strlen($value);
|
896 |
-
$value = str_repeat('*', $length);
|
897 |
-
}
|
898 |
-
|
899 |
-
return $value;
|
900 |
-
}
|
901 |
-
|
902 |
-
//New ct_get_fields_any_postdata
|
903 |
-
function ct_get_fields_any_postdata($arr, $message=array()){
|
904 |
-
$skip_params = array(
|
905 |
-
'ipn_track_id', // PayPal IPN #
|
906 |
-
'txn_type', // PayPal transaction type
|
907 |
-
'payment_status', // PayPal payment status
|
908 |
-
);
|
909 |
-
|
910 |
-
foreach($arr as $key => $value){
|
911 |
-
if(!is_array($value)){
|
912 |
-
if($value == '')
|
913 |
-
continue;
|
914 |
-
if (!(in_array($key, $skip_params) || preg_match("/^ct_checkjs/", $key)) && $value!='')
|
915 |
-
$message[$key] = $value;
|
916 |
-
}else{
|
917 |
-
$temp = ct_get_fields_any_postdata($value);
|
918 |
-
$message = (count($temp) == 0 ? $message : array_merge($message, $temp));
|
919 |
-
}
|
920 |
-
}
|
921 |
-
return $message;
|
922 |
-
}
|
923 |
-
|
924 |
-
/**
|
925 |
-
* Checks if given string is valid regular expression
|
926 |
-
*
|
927 |
-
* @param string $regexp
|
928 |
-
*
|
929 |
-
* @return bool
|
930 |
-
*/
|
931 |
-
function apbct_is_regexp($regexp){
|
932 |
-
return @preg_match('/' . $regexp . '/', null) !== false;
|
933 |
-
}
|
934 |
-
|
935 |
-
function cleantalk_debug($key,$value)
|
936 |
-
{
|
937 |
-
if(isset($_COOKIE) && isset($_COOKIE['cleantalk_debug']))
|
938 |
-
{
|
939 |
-
@header($key.": ".$value);
|
940 |
-
}
|
941 |
-
}
|
942 |
-
|
943 |
-
/**
|
944 |
-
* Function changes CleanTalk result object if an error
|
945 |
-
* @return object
|
946 |
-
*/
|
947 |
-
function ct_change_plugin_resonse($ct_result = null, $checkjs = null) {
|
948 |
-
|
949 |
-
global $apbct;
|
950 |
-
|
951 |
-
if (!$ct_result) {
|
952 |
-
return $ct_result;
|
953 |
-
}
|
954 |
-
|
955 |
-
if(@intval($ct_result->errno) != 0)
|
956 |
-
{
|
957 |
-
if($checkjs === null || $checkjs != 1)
|
958 |
-
{
|
959 |
-
$ct_result->allow = 0;
|
960 |
-
$ct_result->spam = 1;
|
961 |
-
$ct_result->comment = sprintf('We\'ve got an issue: %s. Forbidden. Please, enable Javascript. %s.',
|
962 |
-
$ct_result->comment,
|
963 |
-
$apbct->plugin_name
|
964 |
-
);
|
965 |
-
}
|
966 |
-
else
|
967 |
-
{
|
968 |
-
$ct_result->allow = 1;
|
969 |
-
$ct_result->comment = 'Allow';
|
970 |
-
}
|
971 |
-
}
|
972 |
-
|
973 |
-
return $ct_result;
|
974 |
-
}
|
975 |
-
|
976 |
-
/**
|
977 |
-
* Does key has correct symbols? Checks against regexp ^[a-z\d]{3,15}$
|
978 |
-
* @param api_key
|
979 |
-
* @return bool
|
980 |
-
*/
|
981 |
-
function apbct_api_key__is_correct($api_key = null)
|
982 |
-
{
|
983 |
-
global $apbct;
|
984 |
-
$api_key = $api_key !== null ? $api_key : $apbct->api_key;
|
985 |
-
return $api_key && preg_match('/^[a-z\d]{3,15}$/', $api_key) ? true : false;
|
986 |
-
}
|
987 |
-
|
988 |
-
function apbct_add_async_attribute($tag, $handle, $src) {
|
989 |
-
|
990 |
-
global $apbct;
|
991 |
-
|
992 |
-
if(
|
993 |
-
$apbct->settings['async_js'] &&
|
994 |
-
(
|
995 |
-
$handle === 'ct_public'
|
996 |
-
|| $handle === 'ct_public_gdpr'
|
997 |
-
|| $handle === 'ct_debug_js'
|
998 |
-
|| $handle === 'ct_public_admin_js'
|
999 |
-
|| $handle === 'ct_internal'
|
1000 |
-
|| $handle === 'ct_external'
|
1001 |
-
|| $handle === 'ct_nocache'
|
1002 |
-
)
|
1003 |
-
)
|
1004 |
-
return str_replace( ' src', ' async="async" src', $tag );
|
1005 |
-
else
|
1006 |
-
return $tag;
|
1007 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
function apbct_array( $array ){
|
4 |
+
return new Cleantalk\Arr( $array );
|
5 |
+
}
|
6 |
+
|
7 |
+
$ct_checkjs_frm = 'ct_checkjs_frm';
|
8 |
+
$ct_checkjs_register_form = 'ct_checkjs_register_form';
|
9 |
+
|
10 |
+
$apbct_cookie_request_id_label = 'request_id';
|
11 |
+
$apbct_cookie_register_ok_label = 'register_ok';
|
12 |
+
|
13 |
+
$ct_checkjs_cf7 = 'ct_checkjs_cf7';
|
14 |
+
$ct_cf7_comment = '';
|
15 |
+
|
16 |
+
$ct_checkjs_jpcf = 'ct_checkjs_jpcf';
|
17 |
+
$ct_jpcf_patched = false;
|
18 |
+
$ct_jpcf_fields = array('name', 'email');
|
19 |
+
|
20 |
+
// Comment already proccessed
|
21 |
+
$ct_comment_done = false;
|
22 |
+
|
23 |
+
// Comment already proccessed
|
24 |
+
$ct_signup_done = false;
|
25 |
+
|
26 |
+
//Contains registration error
|
27 |
+
$ct_registration_error_comment = false;
|
28 |
+
|
29 |
+
// Default value for JS test
|
30 |
+
$ct_checkjs_def = 0;
|
31 |
+
|
32 |
+
// COOKIE label to store request id for last approved
|
33 |
+
$ct_approved_request_id_label = 'ct_approved_request_id';
|
34 |
+
|
35 |
+
// Last request id approved for publication
|
36 |
+
$ct_approved_request_id = null;
|
37 |
+
|
38 |
+
// Trial notice show time in minutes
|
39 |
+
$trial_notice_showtime = 10;
|
40 |
+
|
41 |
+
// Renew notice show time in minutes
|
42 |
+
$renew_notice_showtime = 10;
|
43 |
+
|
44 |
+
// COOKIE label for WP Landing Page proccessing result
|
45 |
+
$ct_wplp_result_label = 'ct_wplp_result';
|
46 |
+
|
47 |
+
// Flag indicates active JetPack comments
|
48 |
+
$ct_jp_comments = false;
|
49 |
+
|
50 |
+
// WP admin email notice interval in seconds
|
51 |
+
$ct_admin_notoice_period = 21600;
|
52 |
+
|
53 |
+
// Sevice negative comment to visitor.
|
54 |
+
// It uses for BuddyPress registrations to avoid double checks
|
55 |
+
$ct_negative_comment = null;
|
56 |
+
|
57 |
+
// Set globals to NULL to avoid massive DB requests. Globals will be set when needed only and by accessors only.
|
58 |
+
$ct_server = NULL;
|
59 |
+
$admin_email = NULL;
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Public action 'plugins_loaded' - Loads locale, see http://codex.wordpress.org/Function_Reference/load_plugin_textdomain
|
63 |
+
*/
|
64 |
+
function apbct_plugin_loaded() {
|
65 |
+
$dir=plugin_basename( dirname( __FILE__ ) ) . '/../i18n';
|
66 |
+
$loaded=load_plugin_textdomain('cleantalk', false, $dir);
|
67 |
+
}
|
68 |
+
|
69 |
+
/**
|
70 |
+
* Inner function - Request's wrapper for anything
|
71 |
+
* @param array Array of parameters:
|
72 |
+
* 'message' - string
|
73 |
+
* 'example' - string
|
74 |
+
* 'checkjs' - int
|
75 |
+
* 'sender_email' - string
|
76 |
+
* 'sender_nickname' - string
|
77 |
+
* 'sender_info' - array
|
78 |
+
* 'post_info' - string
|
79 |
+
* @return array array('ct'=> Cleantalk, 'ct_result' => CleantalkResponse)
|
80 |
+
*/
|
81 |
+
function apbct_base_call($params = array(), $reg_flag = false){
|
82 |
+
|
83 |
+
global $apbct, $cleantalk_executed;
|
84 |
+
|
85 |
+
$cleantalk_executed = true;
|
86 |
+
|
87 |
+
$sender_info = !empty($params['sender_info'])
|
88 |
+
? CleantalkHelper::array_merge__save_numeric_keys__recursive(apbct_get_sender_info(), (array)$params['sender_info'])
|
89 |
+
: apbct_get_sender_info();
|
90 |
+
|
91 |
+
// Fields exclusions
|
92 |
+
if( ! empty( $params['message'] ) && is_array( $params['message'] ) ){
|
93 |
+
|
94 |
+
$params['message'] = apbct_array( $params['message'] )
|
95 |
+
->get_keys( $apbct->settings['exclusions__fields'], $apbct->settings['exclusions__fields__use_regexp'] )
|
96 |
+
->delete();
|
97 |
+
}
|
98 |
+
|
99 |
+
// Reversed url exclusions. Pass everything except one.
|
100 |
+
if( ! apbct_exclusions_check__url__reversed() ){
|
101 |
+
return array(
|
102 |
+
'ct' => false,
|
103 |
+
'ct_result' => new CleantalkResponse( null, null )
|
104 |
+
);
|
105 |
+
}
|
106 |
+
|
107 |
+
$default_params = array(
|
108 |
+
|
109 |
+
// IPs
|
110 |
+
'sender_ip' => defined('CT_TEST_IP') ? CT_TEST_IP : (isset($params['sender_ip']) ? $params['sender_ip'] : CleantalkHelper::ip__get(array('real'), false)),
|
111 |
+
'x_forwarded_for' => CleantalkHelper::ip__get(array('x_forwarded_for'), false),
|
112 |
+
'x_real_ip' => CleantalkHelper::ip__get(array('x_real_ip'), false),
|
113 |
+
|
114 |
+
// Misc
|
115 |
+
'auth_key' => $apbct->api_key,
|
116 |
+
'js_on' => apbct_js_test('ct_checkjs', $_COOKIE) ? 1 : apbct_js_test('ct_checkjs', $_POST),
|
117 |
+
|
118 |
+
'agent' => APBCT_AGENT,
|
119 |
+
'sender_info' => $sender_info,
|
120 |
+
'submit_time' => apbct_get_submit_time(),
|
121 |
+
);
|
122 |
+
|
123 |
+
// Send $_SERVER if couldn't find IP
|
124 |
+
if(empty($default_params['sender_ip']))
|
125 |
+
$default_params['sender_info']['server_info'] = $_SERVER;
|
126 |
+
|
127 |
+
$ct_request = new CleantalkRequest(
|
128 |
+
CleantalkHelper::array_merge__save_numeric_keys__recursive($default_params, $params)
|
129 |
+
);
|
130 |
+
|
131 |
+
$ct = new Cleantalk();
|
132 |
+
|
133 |
+
$ct->use_bultin_api = $apbct->settings['use_buitin_http_api'] ? true : false;
|
134 |
+
$ct->ssl_on = $apbct->settings['ssl_on'];
|
135 |
+
$ct->ssl_path = APBCT_CASERT_PATH;
|
136 |
+
|
137 |
+
// Options store url without shceme because of DB error with ''://'
|
138 |
+
$config = ct_get_server();
|
139 |
+
$ct->server_url = APBCT_MODERATE_URL;
|
140 |
+
$ct->work_url = preg_match('/http:\/\/.+/', $config['ct_work_url']) ? $config['ct_work_url'] : null;
|
141 |
+
$ct->server_ttl = $config['ct_server_ttl'];
|
142 |
+
$ct->server_changed = $config['ct_server_changed'];
|
143 |
+
|
144 |
+
$start = microtime(true);
|
145 |
+
$ct_result = $reg_flag
|
146 |
+
? @$ct->isAllowUser($ct_request)
|
147 |
+
: @$ct->isAllowMessage($ct_request);
|
148 |
+
$exec_time = microtime(true) - $start;
|
149 |
+
|
150 |
+
// Statistics
|
151 |
+
// Average request time
|
152 |
+
apbct_statistics__rotate($exec_time);
|
153 |
+
// Last request
|
154 |
+
$apbct->stats['last_request']['time'] = time();
|
155 |
+
$apbct->stats['last_request']['server'] = $ct->work_url;
|
156 |
+
$apbct->save('stats');
|
157 |
+
|
158 |
+
// Connection reports
|
159 |
+
if ($ct_result->errno === 0 && empty($ct_result->errstr))
|
160 |
+
$apbct->data['connection_reports']['success']++;
|
161 |
+
else
|
162 |
+
{
|
163 |
+
$apbct->data['connection_reports']['negative']++;
|
164 |
+
$apbct->data['connection_reports']['negative_report'][] = array(
|
165 |
+
'date' => date("Y-m-d H:i:s"),
|
166 |
+
'page_url' => apbct_get_server_variable( 'REQUEST_URI' ),
|
167 |
+
'lib_report' => $ct_result->errstr,
|
168 |
+
'work_url' => $ct->work_url,
|
169 |
+
);
|
170 |
+
|
171 |
+
if(count($apbct->data['connection_reports']['negative_report']) > 20)
|
172 |
+
$apbct->data['connection_reports']['negative_report'] = array_slice($apbct->data['connection_reports']['negative_report'], -20, 20);
|
173 |
+
|
174 |
+
}
|
175 |
+
|
176 |
+
if ($ct->server_change) {
|
177 |
+
update_option(
|
178 |
+
'cleantalk_server',
|
179 |
+
array(
|
180 |
+
'ct_work_url' => $ct->work_url,
|
181 |
+
'ct_server_ttl' => $ct->server_ttl,
|
182 |
+
'ct_server_changed' => time(),
|
183 |
+
)
|
184 |
+
);
|
185 |
+
}
|
186 |
+
|
187 |
+
$ct_result = ct_change_plugin_resonse($ct_result, $ct_request->js_on);
|
188 |
+
|
189 |
+
// Restart submit form counter for failed requests
|
190 |
+
if ($ct_result->allow == 0){
|
191 |
+
apbct_cookie(); // Setting page timer and cookies
|
192 |
+
ct_add_event('no');
|
193 |
+
}else{
|
194 |
+
ct_add_event('yes');
|
195 |
+
}
|
196 |
+
|
197 |
+
// Set cookies if it's not.
|
198 |
+
if(empty($apbct->flags__cookies_setuped))
|
199 |
+
apbct_cookie();
|
200 |
+
|
201 |
+
return array('ct' => $ct, 'ct_result' => $ct_result);
|
202 |
+
|
203 |
+
}
|
204 |
+
|
205 |
+
function apbct_exclusions_check($func = null){
|
206 |
+
|
207 |
+
global $apbct, $cleantalk_executed;
|
208 |
+
|
209 |
+
// Common exclusions
|
210 |
+
if(
|
211 |
+
apbct_exclusions_check__ip() ||
|
212 |
+
apbct_exclusions_check__url() ||
|
213 |
+
apbct_is_user_role_in( $apbct->settings['exclusions__roles'] ) ||
|
214 |
+
$cleantalk_executed
|
215 |
+
)
|
216 |
+
return true;
|
217 |
+
|
218 |
+
// Personal exclusions
|
219 |
+
switch ($func){
|
220 |
+
case 'ct_contact_form_validate_postdata':
|
221 |
+
if(
|
222 |
+
(defined( 'DOING_AJAX' ) && DOING_AJAX) ||
|
223 |
+
apbct_array( $_POST )->get_keys( 'members_search_submit' )->result()
|
224 |
+
)
|
225 |
+
return true;
|
226 |
+
break;
|
227 |
+
case 'ct_contact_form_validate':
|
228 |
+
if(
|
229 |
+
apbct_array( $_POST )->get_keys( 'members_search_submit' )->result()
|
230 |
+
)
|
231 |
+
return true;
|
232 |
+
break;
|
233 |
+
default:
|
234 |
+
return false;
|
235 |
+
break;
|
236 |
+
}
|
237 |
+
|
238 |
+
return false;
|
239 |
+
}
|
240 |
+
|
241 |
+
function apbct_exclusions_check__url__reversed(){
|
242 |
+
return defined( 'APBCT_URL_EXCLUSIONS__REVERSED' ) && ! \Cleantalk\Common\Server::has_string( 'REQUEST_URI', APBCT_URL_EXCLUSIONS__REVERSED )
|
243 |
+
? false
|
244 |
+
: true;
|
245 |
+
}
|
246 |
+
|
247 |
+
/**
|
248 |
+
* Checks if reuqest URI is in exclusion list
|
249 |
+
*
|
250 |
+
* @return bool
|
251 |
+
*/
|
252 |
+
function apbct_exclusions_check__url() {
|
253 |
+
|
254 |
+
global $apbct;
|
255 |
+
|
256 |
+
if ( ! empty( $apbct->settings['exclusions__urls'] ) ) {
|
257 |
+
|
258 |
+
$exclusions = explode( ',', $apbct->settings['exclusions__urls'] );
|
259 |
+
|
260 |
+
// Fix for AJAX forms
|
261 |
+
$haystack = apbct_get_server_variable( 'REQUEST_URI' ) == '/wp-admin/admin-ajax.php' && ! apbct_get_server_variable( 'HTTP_REFERER' )
|
262 |
+
? apbct_get_server_variable( 'HTTP_REFERER' )
|
263 |
+
: apbct_get_server_variable( 'REQUEST_URI' );
|
264 |
+
|
265 |
+
foreach ( $exclusions as $exclusion ) {
|
266 |
+
if (
|
267 |
+
($apbct->settings['exclusions__urls__use_regexp'] && preg_match( '/' . $exclusion . '/', $haystack ) === 1) ||
|
268 |
+
stripos( $haystack, $exclusion ) !== false
|
269 |
+
){
|
270 |
+
return true;
|
271 |
+
}
|
272 |
+
}
|
273 |
+
return false;
|
274 |
+
}
|
275 |
+
}
|
276 |
+
/**
|
277 |
+
* @deprecated 5.128 Using IP white-lists instead
|
278 |
+
* @deprecated since 18.09.2019
|
279 |
+
* Checks if sender_ip is in exclusion list
|
280 |
+
*
|
281 |
+
* @return bool
|
282 |
+
*/
|
283 |
+
function apbct_exclusions_check__ip(){
|
284 |
+
|
285 |
+
global $cleantalk_ip_exclusions;
|
286 |
+
|
287 |
+
if( apbct_get_server_variable( 'REMOTE_ADDR' ) ){
|
288 |
+
|
289 |
+
if( CleantalkHelper::ip__is_cleantalks( apbct_get_server_variable( 'REMOTE_ADDR' ) ) ){
|
290 |
+
return true;
|
291 |
+
}
|
292 |
+
|
293 |
+
if( ! empty( $cleantalk_ip_exclusions ) && is_array( $cleantalk_ip_exclusions ) ){
|
294 |
+
foreach ( $cleantalk_ip_exclusions as $exclusion ){
|
295 |
+
if( stripos( apbct_get_server_variable( 'REMOTE_ADDR' ), $exclusion ) !== false ){
|
296 |
+
return true;
|
297 |
+
}
|
298 |
+
}
|
299 |
+
}
|
300 |
+
}
|
301 |
+
|
302 |
+
return false;
|
303 |
+
}
|
304 |
+
|
305 |
+
/**
|
306 |
+
* Inner function - Default data array for senders
|
307 |
+
* @return array
|
308 |
+
*/
|
309 |
+
function apbct_get_sender_info() {
|
310 |
+
|
311 |
+
global $apbct;
|
312 |
+
|
313 |
+
// Validate cookie from the backend
|
314 |
+
$cookie_is_ok = apbct_cookies_test();
|
315 |
+
|
316 |
+
$referer_previous = $apbct->settings['set_cookies__sessions']
|
317 |
+
? apbct_alt_session__get('apbct_prev_referer')
|
318 |
+
: filter_input(INPUT_COOKIE, 'apbct_prev_referer');
|
319 |
+
|
320 |
+
$site_landing_ts = $apbct->settings['set_cookies__sessions']
|
321 |
+
? apbct_alt_session__get('apbct_site_landing_ts')
|
322 |
+
: filter_input(INPUT_COOKIE, 'apbct_site_landing_ts');
|
323 |
+
|
324 |
+
$page_hits = $apbct->settings['set_cookies__sessions']
|
325 |
+
? apbct_alt_session__get('apbct_page_hits')
|
326 |
+
: filter_input(INPUT_COOKIE, 'apbct_page_hits');
|
327 |
+
|
328 |
+
if (count($_POST) > 0) {
|
329 |
+
foreach ($_POST as $k => $v) {
|
330 |
+
if (preg_match("/^(ct_check|checkjs).+/", $k)) {
|
331 |
+
$checkjs_data_post = $v;
|
332 |
+
}
|
333 |
+
}
|
334 |
+
}
|
335 |
+
|
336 |
+
// AMP check
|
337 |
+
$amp_detected = apbct_get_server_variable( 'HTTP_REFERER' )
|
338 |
+
? strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '/amp/') !== false || strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '?amp=1') !== false || strpos(apbct_get_server_variable( 'HTTP_REFERER' ), '&=1') !== false
|
339 |
+
? 1
|
340 |
+
: 0
|
341 |
+
: null;
|
342 |
+
|
343 |
+
$site_referer = $apbct->settings['store_urls__sessions']
|
344 |
+
? apbct_alt_session__get('apbct_site_referer')
|
345 |
+
: filter_input(INPUT_COOKIE, 'apbct_site_referer');
|
346 |
+
|
347 |
+
$urls = $apbct->settings['store_urls__sessions']
|
348 |
+
? (array)apbct_alt_session__get('apbct_urls')
|
349 |
+
: (array)json_decode(filter_input(INPUT_COOKIE, 'apbct_urls'), true);
|
350 |
+
|
351 |
+
return array(
|
352 |
+
'remote_addr' => CleantalkHelper::ip__get(array('remote_addr'), false),
|
353 |
+
'REFFERRER' => apbct_get_server_variable( 'HTTP_REFERER' ),
|
354 |
+
'USER_AGENT' => apbct_get_server_variable( 'HTTP_USER_AGENT' ),
|
355 |
+
'page_url' => apbct_get_server_variable( 'SERVER_NAME' ) . apbct_get_server_variable( 'REQUEST_URI' ),
|
356 |
+
'cms_lang' => substr(get_locale(), 0, 2),
|
357 |
+
'ct_options' => json_encode($apbct->settings),
|
358 |
+
'fields_number' => sizeof($_POST),
|
359 |
+
'direct_post' => $cookie_is_ok === null && apbct_is_post() ? 1 : 0,
|
360 |
+
// Raw data to validated JavaScript test in the cloud
|
361 |
+
'checkjs_data_cookies' => !empty($_COOKIE['ct_checkjs']) ? $_COOKIE['ct_checkjs'] : null,
|
362 |
+
'checkjs_data_post' => !empty($checkjs_data_post) ? $checkjs_data_post : null,
|
363 |
+
// PHP cookies
|
364 |
+
'cookies_enabled' => $cookie_is_ok,
|
365 |
+
'REFFERRER_PREVIOUS' => !empty($referer_previous) && $cookie_is_ok ? $referer_previous : null,
|
366 |
+
'site_landing_ts' => !empty($site_landing_ts) && $cookie_is_ok ? $site_landing_ts : null,
|
367 |
+
'page_hits' => !empty($page_hits) ? $page_hits : null,
|
368 |
+
// JS cookies
|
369 |
+
'js_info' => !empty($_COOKIE['ct_user_info']) ? json_decode(stripslashes($_COOKIE['ct_user_info']), true) : null,
|
370 |
+
'mouse_cursor_positions' => !empty($_COOKIE['ct_pointer_data']) ? json_decode(stripslashes($_COOKIE['ct_pointer_data']), true) : null,
|
371 |
+
'js_timezone' => !empty($_COOKIE['ct_timezone']) ? $_COOKIE['ct_timezone'] : null,
|
372 |
+
'key_press_timestamp' => !empty($_COOKIE['ct_fkp_timestamp']) ? $_COOKIE['ct_fkp_timestamp'] : null,
|
373 |
+
'page_set_timestamp' => !empty($_COOKIE['ct_ps_timestamp']) ? $_COOKIE['ct_ps_timestamp'] : null,
|
374 |
+
'form_visible_inputs' => !empty($_COOKIE['apbct_visible_fields_count']) ? $_COOKIE['apbct_visible_fields_count'] : null,
|
375 |
+
'apbct_visible_fields' => !empty($_COOKIE['apbct_visible_fields']) ? apbct_visibile_fields__process($_COOKIE['apbct_visible_fields']) : null,
|
376 |
+
// Misc
|
377 |
+
'site_referer' => !empty($site_referer) ? $site_referer : null,
|
378 |
+
'source_url' => !empty($urls) ? json_encode($urls) : null,
|
379 |
+
// Debug stuff
|
380 |
+
'amp_detected' => $amp_detected,
|
381 |
+
'hook' => current_action() ? current_action() : 'no_hook',
|
382 |
+
'headers_sent' => !empty($apbct->headers_sent) ? $apbct->headers_sent : false,
|
383 |
+
'headers_sent__hook' => !empty($apbct->headers_sent__hook) ? $apbct->headers_sent__hook : 'no_hook',
|
384 |
+
'headers_sent__where' => !empty($apbct->headers_sent__where) ? $apbct->headers_sent__where : false,
|
385 |
+
'request_type' => apbct_get_server_variable('REQUEST_METHOD') ? apbct_get_server_variable('REQUEST_METHOD') : 'UNKNOWN',
|
386 |
+
);
|
387 |
+
}
|
388 |
+
|
389 |
+
/**
|
390 |
+
* Process visible fields for specific form to match the fields from request
|
391 |
+
*
|
392 |
+
* @param string $visible_fields
|
393 |
+
*
|
394 |
+
* @return string
|
395 |
+
*/
|
396 |
+
function apbct_visibile_fields__process($visible_fields) {
|
397 |
+
if(strpos($visible_fields, 'wpforms') !== false){
|
398 |
+
$visible_fields = preg_replace(
|
399 |
+
array('/\[/', '/\]/'),
|
400 |
+
'',
|
401 |
+
str_replace(
|
402 |
+
'][',
|
403 |
+
'_',
|
404 |
+
str_replace(
|
405 |
+
'wpforms[fields]',
|
406 |
+
'',
|
407 |
+
$visible_fields
|
408 |
+
)
|
409 |
+
)
|
410 |
+
);
|
411 |
+
}
|
412 |
+
|
413 |
+
return $visible_fields;
|
414 |
+
}
|
415 |
+
|
416 |
+
/*
|
417 |
+
* Outputs JS key for AJAX-use only. Stops script.
|
418 |
+
*/
|
419 |
+
function apbct_js_keys__get__ajax($direct_call = false){
|
420 |
+
if(!$direct_call){
|
421 |
+
if(isset($_POST['_ajax_nonce'])){
|
422 |
+
if(!wp_verify_nonce($_POST['_ajax_nonce'], 'ct_secret_stuff')){
|
423 |
+
wp_doing_ajax()
|
424 |
+
? wp_die( -1, 403 )
|
425 |
+
: die( '-1' );
|
426 |
+
}
|
427 |
+
}else{
|
428 |
+
wp_doing_ajax()
|
429 |
+
? wp_die( -1, 403 )
|
430 |
+
: die( '-1' );
|
431 |
+
}
|
432 |
+
}
|
433 |
+
die(json_encode(array(
|
434 |
+
'js_key' => ct_get_checkjs_value()
|
435 |
+
)));
|
436 |
+
}
|
437 |
+
|
438 |
+
/**
|
439 |
+
* Get ct_get_checkjs_value
|
440 |
+
*
|
441 |
+
* @param bool $random_key
|
442 |
+
*
|
443 |
+
* @return int|string|null
|
444 |
+
*/
|
445 |
+
function ct_get_checkjs_value(){
|
446 |
+
|
447 |
+
global $apbct;
|
448 |
+
|
449 |
+
// Use static JS keys
|
450 |
+
if($apbct->settings['use_static_js_key'] == 1){
|
451 |
+
|
452 |
+
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
453 |
+
|
454 |
+
// Auto detecting. Detected.
|
455 |
+
}elseif(
|
456 |
+
$apbct->settings['use_static_js_key'] == - 1 &&
|
457 |
+
( apbct_is_cache_plugins_exists() ||
|
458 |
+
( apbct_is_post() && $apbct->data['cache_detected'] == 1 )
|
459 |
+
)
|
460 |
+
){
|
461 |
+
$key = hash('sha256', $apbct->api_key.ct_get_admin_email().$apbct->salt);
|
462 |
+
if( apbct_is_cache_plugins_exists() )
|
463 |
+
$apbct->data['cache_detected'] = 1;
|
464 |
+
|
465 |
+
// Using dynamic JS keys
|
466 |
+
}else{
|
467 |
+
|
468 |
+
$keys = $apbct->data['js_keys'];
|
469 |
+
$keys_checksum = md5(json_encode($keys));
|
470 |
+
|
471 |
+
$key = null;
|
472 |
+
$latest_key_time = 0;
|
473 |
+
|
474 |
+
foreach ($keys as $k => $t) {
|
475 |
+
|
476 |
+
// Removing key if it's to old
|
477 |
+
if (time() - $t > $apbct->data['js_keys_store_days'] * 86400 * 7) {
|
478 |
+
unset($keys[$k]);
|
479 |
+
continue;
|
480 |
+
}
|
481 |
+
|
482 |
+
if ($t > $latest_key_time) {
|
483 |
+
$latest_key_time = $t;
|
484 |
+
$key = $k;
|
485 |
+
}
|
486 |
+
}
|
487 |
+
|
488 |
+
// Set new key if the latest key is too old
|
489 |
+
if (time() - $latest_key_time > $apbct->data['js_key_lifetime']) {
|
490 |
+
$key = rand();
|
491 |
+
$keys[$key] = time();
|
492 |
+
}
|
493 |
+
|
494 |
+
// Save keys if they were changed
|
495 |
+
if (md5(json_encode($keys)) != $keys_checksum) {
|
496 |
+
$apbct->data['js_keys'] = $keys;
|
497 |
+
// $apbct->saveData();
|
498 |
+
}
|
499 |
+
|
500 |
+
$apbct->data['cache_detected'] = 0;
|
501 |
+
}
|
502 |
+
|
503 |
+
$apbct->saveData();
|
504 |
+
|
505 |
+
return $key;
|
506 |
+
}
|
507 |
+
|
508 |
+
function apbct_is_cache_plugins_exists(){
|
509 |
+
return
|
510 |
+
defined('WP_ROCKET_VERSION') || // WPRocket
|
511 |
+
defined('LSCWP_DIR') || // LiteSpeed Cache
|
512 |
+
defined('WPFC_WP_CONTENT_BASENAME') || // WP Fastest Cache
|
513 |
+
defined('W3TC') || // W3 Total Cache
|
514 |
+
defined('WPO_VERSION') || // WP-Optimize – Clean, Compress, Cache
|
515 |
+
defined('AUTOPTIMIZE_PLUGIN_VERSION') || // Autoptimize
|
516 |
+
defined('WPCACHEHOME') || // WP Super Cache
|
517 |
+
defined('WPHB_VERSION') || // Hummingbird – Speed up, Cache, Optimize Your CSS and JS
|
518 |
+
defined('CE_FILE') || // Cache Enabler – WordPress Cache
|
519 |
+
class_exists('RedisObjectCache') || // Redis Object Cache
|
520 |
+
defined('SiteGround_Optimizer\VERSION') || // SG Optimizer
|
521 |
+
class_exists('WP_Rest_Cache_Plugin\Includes\Plugin'); // WP REST Cache
|
522 |
+
}
|
523 |
+
|
524 |
+
/**
|
525 |
+
* Inner function - Current site admin e-mail
|
526 |
+
* @return string Admin e-mail
|
527 |
+
*/
|
528 |
+
function ct_get_admin_email() {
|
529 |
+
global $admin_email;
|
530 |
+
if(!isset($admin_email))
|
531 |
+
{
|
532 |
+
$admin_email = get_option('admin_email');
|
533 |
+
}
|
534 |
+
return $admin_email;
|
535 |
+
}
|
536 |
+
|
537 |
+
/**
|
538 |
+
* Inner function - Current Cleantalk working server info
|
539 |
+
* @return mixed[] Array of server data
|
540 |
+
*/
|
541 |
+
function ct_get_server($force=false) {
|
542 |
+
global $ct_server;
|
543 |
+
if(!$force && isset($ct_server) && isset($ct_server['ct_work_url']) && !empty($ct_server['ct_work_url'])){
|
544 |
+
|
545 |
+
return $ct_server;
|
546 |
+
|
547 |
+
}else{
|
548 |
+
|
549 |
+
$ct_server = get_option('cleantalk_server');
|
550 |
+
if (!is_array($ct_server)){
|
551 |
+
$ct_server = array(
|
552 |
+
'ct_work_url' => NULL,
|
553 |
+
'ct_server_ttl' => NULL,
|
554 |
+
'ct_server_changed' => NULL
|
555 |
+
);
|
556 |
+
}
|
557 |
+
return $ct_server;
|
558 |
+
}
|
559 |
+
}
|
560 |
+
|
561 |
+
/**
|
562 |
+
* Inner function - Stores ang returns cleantalk hash of current comment
|
563 |
+
* @param string New hash or NULL
|
564 |
+
* @return string New hash or current hash depending on parameter
|
565 |
+
*/
|
566 |
+
function ct_hash($new_hash = '') {
|
567 |
+
/**
|
568 |
+
* Current hash
|
569 |
+
*/
|
570 |
+
static $hash;
|
571 |
+
|
572 |
+
if (!empty($new_hash)) {
|
573 |
+
$hash = $new_hash;
|
574 |
+
}
|
575 |
+
return $hash;
|
576 |
+
}
|
577 |
+
|
578 |
+
/**
|
579 |
+
* Inner function - Write manual moderation results to PHP sessions
|
580 |
+
* @param string $hash Cleantalk comment hash
|
581 |
+
* @param string $message comment_content
|
582 |
+
* @param int $allow flag good comment (1) or bad (0)
|
583 |
+
* @return string comment_content w\o cleantalk resume
|
584 |
+
*/
|
585 |
+
function ct_feedback($hash, $allow) {
|
586 |
+
global $apbct;
|
587 |
+
|
588 |
+
$ct_feedback = $hash . ':' . $allow . ';';
|
589 |
+
if($apbct->data['feedback_request'])
|
590 |
+
$apbct->data['feedback_request'] = $ct_feedback;
|
591 |
+
else
|
592 |
+
$apbct->data['feedback_request'] .= $ct_feedback;
|
593 |
+
|
594 |
+
$apbct->saveData();
|
595 |
+
}
|
596 |
+
|
597 |
+
/**
|
598 |
+
* Inner function - Sends the results of moderation
|
599 |
+
* Scheduled in 3600 seconds!
|
600 |
+
* @param string $feedback_request
|
601 |
+
* @return bool
|
602 |
+
*/
|
603 |
+
function ct_send_feedback($feedback_request = null) {
|
604 |
+
|
605 |
+
global $apbct;
|
606 |
+
|
607 |
+
if (empty($feedback_request) && isset($apbct->data['feedback_request']) && preg_match("/^[a-z0-9\;\:]+$/", $apbct->data['feedback_request'])){
|
608 |
+
$feedback_request = $apbct->data['feedback_request'];
|
609 |
+
$apbct->data['feedback_request'] = '';
|
610 |
+
$apbct->saveData();
|
611 |
+
}
|
612 |
+
|
613 |
+
if ($feedback_request !== null) {
|
614 |
+
|
615 |
+
$ct_request = new CleantalkRequest(array(
|
616 |
+
// General
|
617 |
+
'auth_key' => $apbct->api_key,
|
618 |
+
// Additional
|
619 |
+
'feedback' => $feedback_request,
|
620 |
+
));
|
621 |
+
|
622 |
+
$ct = new Cleantalk();
|
623 |
+
|
624 |
+
// Server URL handling
|
625 |
+
$config = ct_get_server();
|
626 |
+
$ct->server_url = APBCT_MODERATE_URL;
|
627 |
+
$ct->work_url = preg_match('/http:\/\/.+/', $config['ct_work_url']) ? $config['ct_work_url'] : null;
|
628 |
+
$ct->server_ttl = $config['ct_server_ttl'];
|
629 |
+
$ct->server_changed = $config['ct_server_changed'];
|
630 |
+
|
631 |
+
$ct->sendFeedback($ct_request);
|
632 |
+
|
633 |
+
if ($ct->server_change) {
|
634 |
+
update_option(
|
635 |
+
'cleantalk_server',
|
636 |
+
array(
|
637 |
+
'ct_work_url' => $ct->work_url,
|
638 |
+
'ct_server_ttl' => $ct->server_ttl,
|
639 |
+
'ct_server_changed' => time(),
|
640 |
+
)
|
641 |
+
);
|
642 |
+
}
|
643 |
+
|
644 |
+
return true;
|
645 |
+
}
|
646 |
+
|
647 |
+
return false;
|
648 |
+
}
|
649 |
+
|
650 |
+
/**
|
651 |
+
* Delete old spam comments
|
652 |
+
* Scheduled in 3600 seconds!
|
653 |
+
* @return null
|
654 |
+
*/
|
655 |
+
function ct_delete_spam_comments() {
|
656 |
+
|
657 |
+
global $apbct;
|
658 |
+
|
659 |
+
if ($apbct->settings['remove_old_spam'] == 1) {
|
660 |
+
$last_comments = get_comments(array('status' => 'spam', 'number' => 1000, 'order' => 'ASC'));
|
661 |
+
foreach ($last_comments as $c) {
|
662 |
+
$comment_date_gmt = strtotime($c->comment_date_gmt);
|
663 |
+
if ($comment_date_gmt && is_numeric($comment_date_gmt)) {
|
664 |
+
if (time() - $comment_date_gmt > 86400 * $apbct->data['spam_store_days']) {
|
665 |
+
// Force deletion old spam comments
|
666 |
+
wp_delete_comment($c->comment_ID, true);
|
667 |
+
}
|
668 |
+
}
|
669 |
+
}
|
670 |
+
}
|
671 |
+
|
672 |
+
return null;
|
673 |
+
}
|
674 |
+
|
675 |
+
/*
|
676 |
+
* Get data from an ARRAY recursively
|
677 |
+
* @return array
|
678 |
+
*/
|
679 |
+
function ct_get_fields_any($arr, $message=array(), $email = null, $nickname = array('nick' => '', 'first' => '', 'last' => ''), $subject = null, $contact = true, $prev_name = ''){
|
680 |
+
|
681 |
+
//Skip request if fields exists
|
682 |
+
$skip_params = array(
|
683 |
+
'ipn_track_id', // PayPal IPN #
|
684 |
+
'txn_type', // PayPal transaction type
|
685 |
+
'payment_status', // PayPal payment status
|
686 |
+
'ccbill_ipn', // CCBill IPN
|
687 |
+
'ct_checkjs', // skip ct_checkjs field
|
688 |
+
'api_mode', // DigiStore-API
|
689 |
+
'loadLastCommentId' // Plugin: WP Discuz. ticket_id=5571
|
690 |
+
);
|
691 |
+
|
692 |
+
// Fields to replace with ****
|
693 |
+
$obfuscate_params = array(
|
694 |
+
'password',
|
695 |
+
'pass',
|
696 |
+
'pwd',
|
697 |
+
'pswd'
|
698 |
+
);
|
699 |
+
|
700 |
+
// Skip feilds with these strings and known service fields
|
701 |
+
$skip_fields_with_strings = array(
|
702 |
+
// Common
|
703 |
+
'ct_checkjs', //Do not send ct_checkjs
|
704 |
+
'nonce', //nonce for strings such as 'rsvp_nonce_name'
|
705 |
+
'security',
|
706 |
+
// 'action',
|
707 |
+
'http_referer',
|
708 |
+
'referer-page',
|
709 |
+
'timestamp',
|
710 |
+
'captcha',
|
711 |
+
// Formidable Form
|
712 |
+
'form_key',
|
713 |
+
'submit_entry',
|
714 |
+
// Custom Contact Forms
|
715 |
+
'form_id',
|
716 |
+
'ccf_form',
|
717 |
+
'form_page',
|
718 |
+
// Qu Forms
|
719 |
+
'iphorm_uid',
|
720 |
+
'form_url',
|
721 |
+
'post_id',
|
722 |
+
'iphorm_ajax',
|
723 |
+
'iphorm_id',
|
724 |
+
// Fast SecureContact Froms
|
725 |
+
'fs_postonce_1',
|
726 |
+
'fscf_submitted',
|
727 |
+
'mailto_id',
|
728 |
+
'si_contact_action',
|
729 |
+
// Ninja Forms
|
730 |
+
'formData_id',
|
731 |
+
'formData_settings',
|
732 |
+
'formData_fields_\d+_id',
|
733 |
+
'formData_fields_\d+_files.*',
|
734 |
+
// E_signature
|
735 |
+
'recipient_signature',
|
736 |
+
'output_\d+_\w{0,2}',
|
737 |
+
// Contact Form by Web-Settler protection
|
738 |
+
'_formId',
|
739 |
+
'_returnLink',
|
740 |
+
// Social login and more
|
741 |
+
'_save',
|
742 |
+
'_facebook',
|
743 |
+
'_social',
|
744 |
+
'user_login-',
|
745 |
+
// Contact Form 7
|
746 |
+
'_wpcf7',
|
747 |
+
'ebd_settings',
|
748 |
+
'ebd_downloads_',
|
749 |
+
'ecole_origine',
|
750 |
+
'signature',
|
751 |
+
);
|
752 |
+
|
753 |
+
// Reset $message if we have a sign-up data
|
754 |
+
$skip_message_post = array(
|
755 |
+
'edd_action', // Easy Digital Downloads
|
756 |
+
);
|
757 |
+
|
758 |
+
if( apbct_array( array( $_POST, $_GET ) )->get_keys( $skip_params )->result() )
|
759 |
+
$contact = false;
|
760 |
+
|
761 |
+
if(count($arr)){
|
762 |
+
|
763 |
+
foreach($arr as $key => $value){
|
764 |
+
|
765 |
+
if(gettype($value) == 'string'){
|
766 |
+
|
767 |
+
$tmp = strpos($value, '\\') !== false ? stripslashes($value) : $value;
|
768 |
+
$decoded_json_value = json_decode($tmp, true);
|
769 |
+
|
770 |
+
// Decoding JSON
|
771 |
+
if($decoded_json_value !== null){
|
772 |
+
$value = $decoded_json_value;
|
773 |
+
|
774 |
+
// Ajax Contact Forms. Get data from such strings:
|
775 |
+
// acfw30_name %% Blocked~acfw30_email %% s@cleantalk.org
|
776 |
+
// acfw30_textarea %% msg
|
777 |
+
}elseif(preg_match('/^\S+\s%%\s\S+.+$/', $value)){
|
778 |
+
$value = explode('~', $value);
|
779 |
+
foreach ($value as &$val){
|
780 |
+
$tmp = explode(' %% ', $val);
|
781 |
+
$val = array($tmp[0] => $tmp[1]);
|
782 |
+
}
|
783 |
+
}
|
784 |
+
}
|
785 |
+
|
786 |
+
if(!is_array($value) && !is_object($value)){
|
787 |
+
|
788 |
+
if (in_array($key, $skip_params, true) && $key != 0 && $key != '' || preg_match("/^ct_checkjs/", $key))
|
789 |
+
$contact = false;
|
790 |
+
|
791 |
+
if($value === '')
|
792 |
+
continue;
|
793 |
+
|
794 |
+
// Skipping fields names with strings from (array)skip_fields_with_strings
|
795 |
+
foreach($skip_fields_with_strings as $needle){
|
796 |
+
if (preg_match("/".$needle."/", $prev_name.$key) == 1){
|
797 |
+
continue(2);
|
798 |
+
}
|
799 |
+
}unset($needle);
|
800 |
+
|
801 |
+
// Obfuscating params
|
802 |
+
foreach($obfuscate_params as $needle){
|
803 |
+
if (strpos($key, $needle) !== false){
|
804 |
+
$value = ct_obfuscate_param($value);
|
805 |
+
continue(2);
|
806 |
+
}
|
807 |
+
}unset($needle);
|
808 |
+
|
809 |
+
$value_for_email = trim( strip_shortcodes( $value ) ); // Removes shortcodes to do better spam filtration on server side.
|
810 |
+
|
811 |
+
// Email
|
812 |
+
if ( ! $email && preg_match( "/^\S+@\S+\.\S+$/", $value_for_email ) ) {
|
813 |
+
$email = $value_for_email;
|
814 |
+
|
815 |
+
// Removes whitespaces
|
816 |
+
$value = urldecode( trim( strip_shortcodes( $value ) ) ); // Fully cleaned message
|
817 |
+
|
818 |
+
// Names
|
819 |
+
}elseif (preg_match("/name/i", $key)){
|
820 |
+
|
821 |
+
preg_match("/((name.?)?(your|first|for)(.?name)?)/", $key, $match_forename);
|
822 |
+
preg_match("/((name.?)?(last|family|second|sur)(.?name)?)/", $key, $match_surname);
|
823 |
+
preg_match("/(name.?)?(nick|user)(.?name)?/", $key, $match_nickname);
|
824 |
+
|
825 |
+
if(count($match_forename) > 1)
|
826 |
+
$nickname['first'] = $value;
|
827 |
+
elseif(count($match_surname) > 1)
|
828 |
+
$nickname['last'] = $value;
|
829 |
+
elseif(count($match_nickname) > 1)
|
830 |
+
$nickname['nick'] = $value;
|
831 |
+
else
|
832 |
+
$message[$prev_name.$key] = $value;
|
833 |
+
|
834 |
+
// Subject
|
835 |
+
}elseif ($subject === null && preg_match("/subject/i", $key)){
|
836 |
+
$subject = $value;
|
837 |
+
|
838 |
+
// Message
|
839 |
+
}else{
|
840 |
+
$message[$prev_name.$key] = $value;
|
841 |
+
}
|
842 |
+
|
843 |
+
}elseif(!is_object($value)){
|
844 |
+
|
845 |
+
$prev_name_original = $prev_name;
|
846 |
+
$prev_name = ($prev_name === '' ? $key.'_' : $prev_name.$key.'_');
|
847 |
+
|
848 |
+
$temp = ct_get_fields_any($value, $message, $email, $nickname, $subject, $contact, $prev_name);
|
849 |
+
|
850 |
+
$message = $temp['message'];
|
851 |
+
$email = ($temp['email'] ? $temp['email'] : null);
|
852 |
+
$nickname = ($temp['nickname'] ? $temp['nickname'] : null);
|
853 |
+
$subject = ($temp['subject'] ? $temp['subject'] : null);
|
854 |
+
if($contact === true)
|
855 |
+
$contact = ($temp['contact'] === false ? false : true);
|
856 |
+
$prev_name = $prev_name_original;
|
857 |
+
}
|
858 |
+
} unset($key, $value);
|
859 |
+
}
|
860 |
+
|
861 |
+
foreach ($skip_message_post as $v) {
|
862 |
+
if (isset($_POST[$v])) {
|
863 |
+
$message = null;
|
864 |
+
break;
|
865 |
+
}
|
866 |
+
} unset($v);
|
867 |
+
|
868 |
+
//If top iteration, returns compiled name field. Example: "Nickname Firtsname Lastname".
|
869 |
+
if($prev_name === ''){
|
870 |
+
if(!empty($nickname)){
|
871 |
+
$nickname_str = '';
|
872 |
+
foreach($nickname as $value){
|
873 |
+
$nickname_str .= ($value ? $value." " : "");
|
874 |
+
}unset($value);
|
875 |
+
}
|
876 |
+
$nickname = $nickname_str;
|
877 |
+
}
|
878 |
+
|
879 |
+
$return_param = array(
|
880 |
+
'email' => $email,
|
881 |
+
'nickname' => $nickname,
|
882 |
+
'subject' => $subject,
|
883 |
+
'contact' => $contact,
|
884 |
+
'message' => $message
|
885 |
+
);
|
886 |
+
return $return_param;
|
887 |
+
}
|
888 |
+
|
889 |
+
/**
|
890 |
+
* Masks a value with asterisks (*)
|
891 |
+
* @return string
|
892 |
+
*/
|
893 |
+
function ct_obfuscate_param($value = null) {
|
894 |
+
if ($value && (!is_object($value) || !is_array($value))) {
|
895 |
+
$length = strlen($value);
|
896 |
+
$value = str_repeat('*', $length);
|
897 |
+
}
|
898 |
+
|
899 |
+
return $value;
|
900 |
+
}
|
901 |
+
|
902 |
+
//New ct_get_fields_any_postdata
|
903 |
+
function ct_get_fields_any_postdata($arr, $message=array()){
|
904 |
+
$skip_params = array(
|
905 |
+
'ipn_track_id', // PayPal IPN #
|
906 |
+
'txn_type', // PayPal transaction type
|
907 |
+
'payment_status', // PayPal payment status
|
908 |
+
);
|
909 |
+
|
910 |
+
foreach($arr as $key => $value){
|
911 |
+
if(!is_array($value)){
|
912 |
+
if($value == '')
|
913 |
+
continue;
|
914 |
+
if (!(in_array($key, $skip_params) || preg_match("/^ct_checkjs/", $key)) && $value!='')
|
915 |
+
$message[$key] = $value;
|
916 |
+
}else{
|
917 |
+
$temp = ct_get_fields_any_postdata($value);
|
918 |
+
$message = (count($temp) == 0 ? $message : array_merge($message, $temp));
|
919 |
+
}
|
920 |
+
}
|
921 |
+
return $message;
|
922 |
+
}
|
923 |
+
|
924 |
+
/**
|
925 |
+
* Checks if given string is valid regular expression
|
926 |
+
*
|
927 |
+
* @param string $regexp
|
928 |
+
*
|
929 |
+
* @return bool
|
930 |
+
*/
|
931 |
+
function apbct_is_regexp($regexp){
|
932 |
+
return @preg_match('/' . $regexp . '/', null) !== false;
|
933 |
+
}
|
934 |
+
|
935 |
+
function cleantalk_debug($key,$value)
|
936 |
+
{
|
937 |
+
if(isset($_COOKIE) && isset($_COOKIE['cleantalk_debug']))
|
938 |
+
{
|
939 |
+
@header($key.": ".$value);
|
940 |
+
}
|
941 |
+
}
|
942 |
+
|
943 |
+
/**
|
944 |
+
* Function changes CleanTalk result object if an error occurred.
|
945 |
+
* @return object
|
946 |
+
*/
|
947 |
+
function ct_change_plugin_resonse($ct_result = null, $checkjs = null) {
|
948 |
+
|
949 |
+
global $apbct;
|
950 |
+
|
951 |
+
if (!$ct_result) {
|
952 |
+
return $ct_result;
|
953 |
+
}
|
954 |
+
|
955 |
+
if(@intval($ct_result->errno) != 0)
|
956 |
+
{
|
957 |
+
if($checkjs === null || $checkjs != 1)
|
958 |
+
{
|
959 |
+
$ct_result->allow = 0;
|
960 |
+
$ct_result->spam = 1;
|
961 |
+
$ct_result->comment = sprintf('We\'ve got an issue: %s. Forbidden. Please, enable Javascript. %s.',
|
962 |
+
$ct_result->comment,
|
963 |
+
$apbct->plugin_name
|
964 |
+
);
|
965 |
+
}
|
966 |
+
else
|
967 |
+
{
|
968 |
+
$ct_result->allow = 1;
|
969 |
+
$ct_result->comment = 'Allow';
|
970 |
+
}
|
971 |
+
}
|
972 |
+
|
973 |
+
return $ct_result;
|
974 |
+
}
|
975 |
+
|
976 |
+
/**
|
977 |
+
* Does key has correct symbols? Checks against regexp ^[a-z\d]{3,15}$
|
978 |
+
* @param api_key
|
979 |
+
* @return bool
|
980 |
+
*/
|
981 |
+
function apbct_api_key__is_correct($api_key = null)
|
982 |
+
{
|
983 |
+
global $apbct;
|
984 |
+
$api_key = $api_key !== null ? $api_key : $apbct->api_key;
|
985 |
+
return $api_key && preg_match('/^[a-z\d]{3,15}$/', $api_key) ? true : false;
|
986 |
+
}
|
987 |
+
|
988 |
+
function apbct_add_async_attribute($tag, $handle, $src) {
|
989 |
+
|
990 |
+
global $apbct;
|
991 |
+
|
992 |
+
if(
|
993 |
+
$apbct->settings['async_js'] &&
|
994 |
+
(
|
995 |
+
$handle === 'ct_public'
|
996 |
+
|| $handle === 'ct_public_gdpr'
|
997 |
+
|| $handle === 'ct_debug_js'
|
998 |
+
|| $handle === 'ct_public_admin_js'
|
999 |
+
|| $handle === 'ct_internal'
|
1000 |
+
|| $handle === 'ct_external'
|
1001 |
+
|| $handle === 'ct_nocache'
|
1002 |
+
)
|
1003 |
+
)
|
1004 |
+
return str_replace( ' src', ' async="async" src', $tag );
|
1005 |
+
else
|
1006 |
+
return $tag;
|
1007 |
}
|
inc/cleantalk-public.php
CHANGED
@@ -393,6 +393,7 @@ function apbct_buffer__output(){
|
|
393 |
: $apbct->buffer;
|
394 |
|
395 |
echo $output;
|
|
|
396 |
}
|
397 |
|
398 |
// MailChimp Premium for Wordpress
|
@@ -3275,7 +3276,8 @@ function ct_contact_form_validate() {
|
|
3275 |
(isset($_POST['spl_action']) && $_POST['spl_action'] == 'register') || //Skip interal action with empty params
|
3276 |
(isset($_POST['action']) && $_POST['action'] == 'bwfan_insert_abandoned_cart' && apbct_is_in_uri( 'my-account/edit-address' )) || //Skip edit account
|
3277 |
apbct_is_in_uri('login-1') || //Skip login form
|
3278 |
-
apbct_is_in_uri('recuperacao-de-senha-2') //Skip form reset password
|
|
|
3279 |
) {
|
3280 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3281 |
return null;
|
@@ -3664,7 +3666,7 @@ function ct_enqueue_scripts_public($hook){
|
|
3664 |
wp_localize_script('ct_public_admin_js', 'ctPublicAdmin', array(
|
3665 |
'ct_ajax_nonce' => $ajax_nonce,
|
3666 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
3667 |
-
'ct_feedback_error' => __('Error
|
3668 |
'ct_feedback_no_hash' => __('Feedback wasn\'t sent. There is no associated request.', 'cleantalk'),
|
3669 |
'ct_feedback_msg' => sprintf(__("Feedback has been sent to %sCleanTalk Dashboard%s.", 'cleantalk'), $apbct->user_token ? "<a target='_blank' href=https://cleantalk.org/my/show_requests?user_token={$apbct->user_token}&cp_mode=antispam>" : '', $apbct->user_token ? "</a>" : ''),
|
3670 |
));
|
393 |
: $apbct->buffer;
|
394 |
|
395 |
echo $output;
|
396 |
+
die();
|
397 |
}
|
398 |
|
399 |
// MailChimp Premium for Wordpress
|
3276 |
(isset($_POST['spl_action']) && $_POST['spl_action'] == 'register') || //Skip interal action with empty params
|
3277 |
(isset($_POST['action']) && $_POST['action'] == 'bwfan_insert_abandoned_cart' && apbct_is_in_uri( 'my-account/edit-address' )) || //Skip edit account
|
3278 |
apbct_is_in_uri('login-1') || //Skip login form
|
3279 |
+
apbct_is_in_uri('recuperacao-de-senha-2') || //Skip form reset password
|
3280 |
+
apbct_is_in_uri('membermouse/api/request.php') && isset($_POST['membership_level_id'],$_POST['apikey'],$_POST['apisecret']) // Membermouse API
|
3281 |
) {
|
3282 |
do_action( 'apbct_skipped_request', __FILE__ . ' -> ' . __FUNCTION__ . '():' . __LINE__, $_POST );
|
3283 |
return null;
|
3666 |
wp_localize_script('ct_public_admin_js', 'ctPublicAdmin', array(
|
3667 |
'ct_ajax_nonce' => $ajax_nonce,
|
3668 |
'ajaxurl' => admin_url('admin-ajax.php'),
|
3669 |
+
'ct_feedback_error' => __('Error occurred while sending feedback.', 'cleantalk'),
|
3670 |
'ct_feedback_no_hash' => __('Feedback wasn\'t sent. There is no associated request.', 'cleantalk'),
|
3671 |
'ct_feedback_msg' => sprintf(__("Feedback has been sent to %sCleanTalk Dashboard%s.", 'cleantalk'), $apbct->user_token ? "<a target='_blank' href=https://cleantalk.org/my/show_requests?user_token={$apbct->user_token}&cp_mode=antispam>" : '', $apbct->user_token ? "</a>" : ''),
|
3672 |
));
|
inc/cleantalk-settings.php
CHANGED
@@ -682,12 +682,12 @@ function apbct_settings__error__output($return = false){
|
|
682 |
|
683 |
$error_texts = array(
|
684 |
// Misc
|
685 |
-
'key_invalid' => __('Error
|
686 |
-
'key_get' => __('Error
|
687 |
-
'sfw_send_logs' => __('Error
|
688 |
-
'sfw_update' => __('Error
|
689 |
-
'account_check' => __('Error
|
690 |
-
'api' => __('Error
|
691 |
|
692 |
// Validating settings
|
693 |
'settings_validate' => 'Validate Settings',
|
682 |
|
683 |
$error_texts = array(
|
684 |
// Misc
|
685 |
+
'key_invalid' => __('Error occurred while API key validating. Error: ', 'cleantalk'),
|
686 |
+
'key_get' => __('Error occurred while automatically gettings access key. Error: ', 'cleantalk'),
|
687 |
+
'sfw_send_logs' => __('Error occurred while sending sending SpamFireWall logs. Error: ', 'cleantalk'),
|
688 |
+
'sfw_update' => __('Error occurred while updating SpamFireWall local base. Error: ' , 'cleantalk'),
|
689 |
+
'account_check' => __('Error occurred while checking account status. Error: ', 'cleantalk'),
|
690 |
+
'api' => __('Error occurred while excuting API call. Error: ', 'cleantalk'),
|
691 |
|
692 |
// Validating settings
|
693 |
'settings_validate' => 'Validate Settings',
|
inc/cleantalk-updater.php
CHANGED
@@ -412,27 +412,107 @@ function apbct_update_to_5_133_0() {
|
|
412 |
|
413 |
}
|
414 |
|
415 |
-
function
|
416 |
|
417 |
-
global $
|
418 |
|
419 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
420 |
|
421 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
422 |
|
423 |
-
|
424 |
|
425 |
-
|
426 |
-
|
427 |
|
428 |
-
switch_to_blog(
|
429 |
-
|
430 |
-
|
|
|
431 |
|
432 |
-
|
|
|
|
|
|
|
433 |
|
434 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
435 |
|
436 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
437 |
}
|
|
|
438 |
}
|
412 |
|
413 |
}
|
414 |
|
415 |
+
function apbct_update_to_5_138_0() {
|
416 |
|
417 |
+
global $wpdb;
|
418 |
|
419 |
+
// SQL queries for each blog
|
420 |
+
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_spamscan_logs` (
|
421 |
+
`id` int(11) NOT NULL AUTO_INCREMENT,
|
422 |
+
`scan_type` varchar(11) NOT NULL,
|
423 |
+
`start_time` datetime NOT NULL,
|
424 |
+
`finish_time` datetime NOT NULL,
|
425 |
+
`count_to_scan` int(11) DEFAULT NULL,
|
426 |
+
`found_spam` int(11) DEFAULT NULL,
|
427 |
+
`found_bad` int(11) DEFAULT NULL,
|
428 |
+
PRIMARY KEY (`id`));';
|
429 |
+
$sqls[] = 'CREATE TABLE IF NOT EXISTS `%scleantalk_sfw` (
|
430 |
+
`network` int(11) unsigned NOT NULL,
|
431 |
+
`mask` int(11) unsigned NOT NULL,
|
432 |
+
INDEX ( `network` , `mask` )
|
433 |
+
);';
|
434 |
+
$sqls[] = 'ALTER TABLE `%scleantalk_sfw` ADD COLUMN status TINYINT(1) NOT NULL DEFAULT 0 AFTER mask;';
|
435 |
+
|
436 |
+
// Actions for WPMS
|
437 |
+
if( APBCT_WPMS ){
|
438 |
|
439 |
+
// Getting all blog ids
|
440 |
+
$initial_blog = get_current_blog_id();
|
441 |
+
$blogs = array_keys($wpdb->get_results('SELECT blog_id FROM '. $wpdb->blogs, OBJECT_K));
|
442 |
+
|
443 |
+
// Getting main blog setting
|
444 |
+
switch_to_blog( 1 );
|
445 |
+
$main_blog_settings = get_option( 'cleantalk_settings' );
|
446 |
+
switch_to_blog( $initial_blog );
|
447 |
+
|
448 |
+
// Getting network settings
|
449 |
+
$net_settings = get_site_option('cleantalk_network_settings');
|
450 |
|
451 |
+
foreach ($blogs as $blog) {
|
452 |
|
453 |
+
// Update time limit to prevent exec time error
|
454 |
+
set_time_limit(20);
|
455 |
|
456 |
+
switch_to_blog($blog);
|
457 |
+
|
458 |
+
// Update SQL structure
|
459 |
+
apbct_activation__create_tables($sqls);
|
460 |
|
461 |
+
// Getting key
|
462 |
+
$settings = $net_settings['allow_custom_key']
|
463 |
+
? get_option('cleantalk_settings')
|
464 |
+
: $main_blog_settings;
|
465 |
|
466 |
+
// Update plugin status
|
467 |
+
if( ! empty( $settings['apikey'] ) ){
|
468 |
+
|
469 |
+
$data = get_option( 'cleantalk_data', array() );
|
470 |
+
|
471 |
+
$result = CleantalkAPI::method__notice_paid_till(
|
472 |
+
$settings['api_key'],
|
473 |
+
preg_replace('/http[s]?:\/\//', '', get_option('siteurl'), 1),
|
474 |
+
! is_main_site() && $net_settings['white_label'] ? 'anti-spam-hosting' : 'antispam'
|
475 |
+
);
|
476 |
+
|
477 |
+
if( empty( $result['error'] ) || ! empty( $result['valid'] ) ){
|
478 |
+
|
479 |
+
// Notices
|
480 |
+
$data['notice_show'] = isset($result['show_notice']) ? (int)$result['show_notice'] : 0;
|
481 |
+
$data['notice_renew'] = isset($result['renew']) ? (int)$result['renew'] : 0;
|
482 |
+
$data['notice_trial'] = isset($result['trial']) ? (int)$result['trial'] : 0;
|
483 |
+
$data['notice_review'] = isset($result['show_review']) ? (int)$result['show_review'] : 0;
|
484 |
+
$data['notice_auto_update'] = isset($result['show_auto_update_notice']) ? (int)$result['show_auto_update_notice'] : 0;
|
485 |
+
|
486 |
+
// Other
|
487 |
+
$data['service_id'] = isset($result['service_id']) ? (int)$result['service_id'] : 0;
|
488 |
+
$data['valid'] = isset($result['valid']) ? (int)$result['valid'] : 0;
|
489 |
+
$data['moderate'] = isset($result['moderate']) ? (int)$result['moderate'] : 0;
|
490 |
+
$data['ip_license'] = isset($result['ip_license']) ? (int)$result['ip_license'] : 0;
|
491 |
+
$data['moderate_ip'] = isset($result['moderate_ip'], $result['ip_license']) ? (int)$result['moderate_ip'] : 0;
|
492 |
+
$data['spam_count'] = isset($result['spam_count']) ? (int)$result['spam_count'] : 0;
|
493 |
+
$data['auto_update'] = isset($result['auto_update_app']) ? (int)$result['auto_update_app'] : 0;
|
494 |
+
$data['user_token'] = isset($result['user_token']) ? (string)$result['user_token'] : '';
|
495 |
+
$data['license_trial'] = isset($result['license_trial']) ? (int)$result['license_trial'] : 0;
|
496 |
+
$data['account_name_ob'] = isset($result['account_name_ob']) ? (string)$result['account_name_ob'] : '';
|
497 |
+
|
498 |
+
}
|
499 |
+
|
500 |
+
$data['key_is_ok'] = ! empty( $result['valid'] )
|
501 |
+
? true
|
502 |
+
: false;
|
503 |
+
|
504 |
+
update_option( 'cleantalk_data', $data );
|
505 |
+
|
506 |
+
}
|
507 |
|
508 |
}
|
509 |
+
|
510 |
+
// Restoring initial blog
|
511 |
+
switch_to_blog($initial_blog);
|
512 |
+
|
513 |
+
// Actions for stand alone blog
|
514 |
+
}else{
|
515 |
+
apbct_activation__create_tables($sqls);
|
516 |
}
|
517 |
+
|
518 |
}
|
inc/find-spam/ClassCleantalkFindSpamUsersChecker.php
CHANGED
@@ -141,6 +141,11 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
141 |
);
|
142 |
|
143 |
$params = array(
|
|
|
|
|
|
|
|
|
|
|
144 |
'meta_query' => array(
|
145 |
'relation' => 'AND',
|
146 |
array(
|
@@ -210,7 +215,7 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
210 |
$user_meta = array_values( $user_meta );
|
211 |
|
212 |
$curr_ip = !empty( $user_meta[0]['ip' ]) ? trim( $user_meta[0]['ip'] ) : '';
|
213 |
-
$curr_email = !empty( $u[$i]->
|
214 |
|
215 |
// Check for identity
|
216 |
$curr_ip = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $curr_ip) === 1 ? $curr_ip : null;
|
@@ -227,6 +232,7 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
227 |
if( !empty( $curr_email ) )
|
228 |
$data[] = $curr_email;
|
229 |
// Patch for empty IP/Email
|
|
|
230 |
$u[$i]->data->user_ip = empty($curr_ip) ? 'none' : $curr_ip;
|
231 |
$u[$i]->data->user_email = empty($curr_email) ? 'none' : $curr_email;
|
232 |
}
|
@@ -255,7 +261,9 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
255 |
|
256 |
// Do not display forbidden roles.
|
257 |
foreach ( $skip_roles as $role ) {
|
258 |
-
|
|
|
|
|
259 |
delete_user_meta( $u[$i]->ID, 'ct_marked_as_spam' );
|
260 |
continue 2;
|
261 |
}
|
@@ -340,54 +348,37 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
340 |
|
341 |
if (!$direct_call)
|
342 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
$params_bad = array(
|
375 |
-
'fields' => 'ID',
|
376 |
-
'meta_query' => array(
|
377 |
-
'relation' => 'AND',
|
378 |
-
array(
|
379 |
-
'key' => 'ct_bad',
|
380 |
-
'compare' => 'EXISTS'
|
381 |
-
),
|
382 |
-
array(
|
383 |
-
'key' => 'ct_checked_now',
|
384 |
-
'compare' => 'EXISTS'
|
385 |
-
),
|
386 |
-
),
|
387 |
-
'count_total' => true,
|
388 |
-
);
|
389 |
-
$bad_users = new WP_User_Query($params_bad);
|
390 |
-
$cnt_bad = $bad_users->get_total();
|
391 |
|
392 |
$return = array(
|
393 |
'message' => '',
|
@@ -433,54 +424,37 @@ class ClassCleantalkFindSpamUsersChecker extends ClassCleantalkFindSpamChecker
|
|
433 |
|
434 |
private static function get_log_data() {
|
435 |
|
436 |
-
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
|
467 |
-
'fields' => 'ID',
|
468 |
-
'meta_query' => array(
|
469 |
-
'relation' => 'AND',
|
470 |
-
array(
|
471 |
-
'key' => 'ct_bad',
|
472 |
-
'compare' => 'EXISTS'
|
473 |
-
),
|
474 |
-
array(
|
475 |
-
'key' => 'ct_checked_now',
|
476 |
-
'compare' => 'EXISTS'
|
477 |
-
),
|
478 |
-
),
|
479 |
-
'count_total' => true,
|
480 |
-
);
|
481 |
-
$bad_users = new WP_User_Query($params_bad);
|
482 |
-
$cnt_bad = $bad_users->get_total();
|
483 |
-
|
484 |
return array(
|
485 |
'spam' => $cnt_spam,
|
486 |
'checked' => $cnt_checked,
|
141 |
);
|
142 |
|
143 |
$params = array(
|
144 |
+
'fields' => array(
|
145 |
+
'ID',
|
146 |
+
'user_email',
|
147 |
+
'user_registered',
|
148 |
+
),
|
149 |
'meta_query' => array(
|
150 |
'relation' => 'AND',
|
151 |
array(
|
215 |
$user_meta = array_values( $user_meta );
|
216 |
|
217 |
$curr_ip = !empty( $user_meta[0]['ip' ]) ? trim( $user_meta[0]['ip'] ) : '';
|
218 |
+
$curr_email = !empty( $u[$i]->user_email ) ? trim( $u[$i]->user_email ) : '';
|
219 |
|
220 |
// Check for identity
|
221 |
$curr_ip = preg_match('/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $curr_ip) === 1 ? $curr_ip : null;
|
232 |
if( !empty( $curr_email ) )
|
233 |
$data[] = $curr_email;
|
234 |
// Patch for empty IP/Email
|
235 |
+
$u[$i]->data = new \stdClass();
|
236 |
$u[$i]->data->user_ip = empty($curr_ip) ? 'none' : $curr_ip;
|
237 |
$u[$i]->data->user_email = empty($curr_email) ? 'none' : $curr_email;
|
238 |
}
|
261 |
|
262 |
// Do not display forbidden roles.
|
263 |
foreach ( $skip_roles as $role ) {
|
264 |
+
$user_meta = get_userdata($u[$i]->ID);
|
265 |
+
$user_roles = $user_meta->roles;
|
266 |
+
if ( in_array( $role, $user_roles ) ){
|
267 |
delete_user_meta( $u[$i]->ID, 'ct_marked_as_spam' );
|
268 |
continue 2;
|
269 |
}
|
348 |
|
349 |
if (!$direct_call)
|
350 |
check_ajax_referer( 'ct_secret_nonce', 'security' );
|
351 |
+
|
352 |
+
global $wpdb;
|
353 |
+
|
354 |
+
// Checked users
|
355 |
+
$cnt_checked = $wpdb->get_results("
|
356 |
+
SELECT COUNT(*) AS cnt
|
357 |
+
FROM {$wpdb->usermeta}
|
358 |
+
WHERE meta_key='ct_checked_now'"
|
359 |
+
)[0]->cnt;
|
360 |
+
|
361 |
+
// Spam users
|
362 |
+
$cnt_spam = $wpdb->get_results("
|
363 |
+
SELECT COUNT({$wpdb->users}.ID) AS cnt
|
364 |
+
FROM {$wpdb->users}
|
365 |
+
INNER JOIN {$wpdb->usermeta} AS meta1 ON ( {$wpdb->users}.ID = meta1.user_id )
|
366 |
+
INNER JOIN {$wpdb->usermeta} AS meta2 ON ( {$wpdb->users}.ID = meta2.user_id )
|
367 |
+
WHERE
|
368 |
+
meta1.meta_key = 'ct_marked_as_spam' AND
|
369 |
+
meta2.meta_key = 'ct_checked_now';"
|
370 |
+
)[0]->cnt;
|
371 |
+
|
372 |
+
// Bad users (without IP and Email)
|
373 |
+
$cnt_bad = $wpdb->get_results("
|
374 |
+
SELECT COUNT({$wpdb->users}.ID) AS cnt
|
375 |
+
FROM {$wpdb->users}
|
376 |
+
INNER JOIN {$wpdb->usermeta} AS meta1 ON ( {$wpdb->users}.ID = meta1.user_id )
|
377 |
+
INNER JOIN {$wpdb->usermeta} AS meta2 ON ( {$wpdb->users}.ID = meta2.user_id )
|
378 |
+
WHERE
|
379 |
+
meta1.meta_key = 'ct_bad' AND
|
380 |
+
meta2.meta_key = 'ct_checked_now';"
|
381 |
+
)[0]->cnt;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
382 |
|
383 |
$return = array(
|
384 |
'message' => '',
|
424 |
|
425 |
private static function get_log_data() {
|
426 |
|
427 |
+
global $wpdb;
|
428 |
+
|
429 |
+
// Checked users
|
430 |
+
$cnt_checked = $wpdb->get_results("
|
431 |
+
SELECT COUNT(*) AS cnt
|
432 |
+
FROM {$wpdb->usermeta}
|
433 |
+
WHERE meta_key='ct_checked_now'"
|
434 |
+
)[0]->cnt;
|
435 |
+
|
436 |
+
// Spam users
|
437 |
+
$cnt_spam = $wpdb->get_results("
|
438 |
+
SELECT COUNT({$wpdb->users}.ID) AS cnt
|
439 |
+
FROM {$wpdb->users}
|
440 |
+
INNER JOIN {$wpdb->usermeta} AS meta1 ON ( {$wpdb->users}.ID = meta1.user_id )
|
441 |
+
INNER JOIN {$wpdb->usermeta} AS meta2 ON ( {$wpdb->users}.ID = meta2.user_id )
|
442 |
+
WHERE
|
443 |
+
meta1.meta_key = 'ct_marked_as_spam' AND
|
444 |
+
meta2.meta_key = 'ct_checked_now';"
|
445 |
+
)[0]->cnt;
|
446 |
+
|
447 |
+
// Bad users (without IP and Email)
|
448 |
+
$cnt_bad = $wpdb->get_results("
|
449 |
+
SELECT COUNT({$wpdb->users}.ID) AS cnt
|
450 |
+
FROM {$wpdb->users}
|
451 |
+
INNER JOIN {$wpdb->usermeta} AS meta1 ON ( {$wpdb->users}.ID = meta1.user_id )
|
452 |
+
INNER JOIN {$wpdb->usermeta} AS meta2 ON ( {$wpdb->users}.ID = meta2.user_id )
|
453 |
+
WHERE
|
454 |
+
meta1.meta_key = 'ct_bad' AND
|
455 |
+
meta2.meta_key = 'ct_checked_now';"
|
456 |
+
)[0]->cnt;
|
457 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
458 |
return array(
|
459 |
'spam' => $cnt_spam,
|
460 |
'checked' => $cnt_checked,
|
js/cleantalk-comments-checkspam.min.js
CHANGED
@@ -1,2 +1 @@
|
|
1 |
-
var ct_working=!(String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e}),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctCommentsCheck.ct_prev_accurate,ct_prev_from=ctCommentsCheck.ct_prev_from,ct_prev_till=ctCommentsCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctCommentsCheck.ct_ajax_nonce,ct_comments_total=0,ct_comments_checked=0,ct_comments_spam=0,ct_comments_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_comments(){var e=0,t=0;jQuery("#ct_allow_date_range").is(":checked")&&(e=jQuery("#ct_date_range_from").val(),t=jQuery("#ct_date_range_till").val());var c={action:"ajax_clear_comments",security:ct_ajax_nonce,from:e,till:t};jQuery.ajax({type:"POST",url:ajaxurl,data:c,success:function(e){ct_show_info(),ct_send_comments()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_comments(),ct_show_info()}function ct_send_comments(){if(!0!==ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_comments",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_comments();else{var t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||!0===ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_comments_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_comments_checked+=e.checked,ct_comments_spam+=e.spam,ct_comments_bad+=e.bad,ct_unchecked=ct_comments_total-ct_comments_checked-ct_comments_bad;var c=(c=String(ctCommentsCheck.ct_status_string)).printf(
|
2 |
-
//# sourceMappingURL=cleantalk-comments-checkspam.min.js.map
|
1 |
+
var ct_working=!(String.prototype.printf=function(){var e=this;for(var t in arguments){var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length);e=c+arguments[t]+_}return e}),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctCommentsCheck.ct_prev_accurate,ct_prev_from=ctCommentsCheck.ct_prev_from,ct_prev_till=ctCommentsCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctCommentsCheck.ct_ajax_nonce,ct_comments_total=0,ct_comments_checked=0,ct_comments_spam=0,ct_comments_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function animate_comment(e,t){ct_close_animate?.3==e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_comments(){var e=0,t=0;jQuery("#ct_allow_date_range").is(":checked")&&(e=jQuery("#ct_date_range_from").val(),t=jQuery("#ct_date_range_till").val());var c={action:"ajax_clear_comments",security:ct_ajax_nonce,from:e,till:t};jQuery.ajax({type:"POST",url:ajaxurl,data:c,success:function(e){ct_show_info(),ct_send_comments()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_comments(),ct_show_info()}function ct_send_comments(){if(!0!==ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var e={action:"ajax_check_comments",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){if(e=jQuery.parseJSON(e),parseInt(e.error))if(ct_working=!1,confirm(e.error_message+". Do you want to proceed?"))ct_send_comments();else{var t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(ct_new_check=!1,1==parseInt(e.end)||!0===ct_pause){1==parseInt(e.end)&&(document.cookie="ct_paused_comments_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide();t="edit-comments.php?page=ct_check_spam";0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t}else if(0==parseInt(e.end)){ct_comments_checked+=e.checked,ct_comments_spam+=e.spam,ct_comments_bad+=e.bad,ct_unchecked=ct_comments_total-ct_comments_checked-ct_comments_bad;var c=(c=String(ctCommentsCheck.ct_status_string)).printf(ct_comments_checked,ct_comments_spam,ct_comments_bad);0<parseInt(ct_comments_spam)&&(c+=ctCommentsCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),+ct_comments_total<ct_comments_checked+ct_comments_bad&&(document.cookie="ct_comments_start_check=1; path=/",document.cookie="ct_comments_safe_check=1; path=/",location.href="edit-comments.php?page=ct_check_spam"),ct_send_comments()}},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_send_comments(),3e3)},timeout:25e3})}}function ct_show_info(){if(ct_working){if(1==ct_cooling_down_flag)return jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)"),void jQuery("#ct_cooling_notice").show();if(jQuery("#ct_cooling_notice").hide(),!ct_comments_total){var e={action:"ajax_info_comments",security:ct_ajax_nonce};ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_comments_total=e.total,ct_comments_spam=e.spam,ct_comments_checked=e.checked,ct_comments_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_show_info(),3e3)},timeout:15e3})}}}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}function ct_delete_all(_){var e={action:"ajax_delete_all",security:ct_ajax_nonce};jQuery("."+_.target.id).addClass("disabled"),jQuery(".spinner").css("visibility","visible"),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){0<e?(jQuery("#cleantalk_comments_left").html(e),ct_delete_all(_)):(jQuery("."+_.target.id).removeClass("disabled"),jQuery(".spinner").css("visibility","hidden"),location.href="edit-comments.php?page=ct_check_spam_total")},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check comments"),setTimeout(ct_delete_all(_),3e3)},timeout:25e3})}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))}),jQuery.datepicker.setDefaults(jQuery.datepicker.regional.en);var a=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"M d yy",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);a.not(this).datepicker("option",t,_)}});function e(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""==ct_date_from||""==ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_info(),ct_send_comments()):ct_clear_comments())}jQuery("#ct_check_spam_button").click(function(){e(!(document.cookie="ct_paused_comments_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){e(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_comments_check="+JSON.stringify(e)+"; path=/"}),"1"===ctCommentsCheck.start&&(document.cookie="ct_comments_start_check=0; expires="+new Date(0).toUTCString()+"; path=/",jQuery("#ct_check_spam_button").click()),jQuery(".ct_delete_all").click(function(e){if(!confirm(ctCommentsCheck.ct_confirm_deletion_all))return!1;ct_delete_all(e)})});
|
|
js/cleantalk-comments-checkspam.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["cleantalk-comments-checkspam.js"],"names":["ct_working","String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctCommentsCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_comments_total","ct_comments_checked","ct_comments_spam","ct_comments_bad","ct_unchecked","ct_date_from","ct_date_till","animate_comment","to","id","jQuery","fadeTo","ct_clear_comments","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_info","ct_send_comments","ct_cooling_down_toggle","setTimeout","new_check","unchecked","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","document","cookie","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","total","ct_toggle_depended","obj","secondary","depended","prop","removeProp","ct_delete_all","e","target","addClass","css","removeClass","ready","state","on","datepicker","setDefaults","regional","dates","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","alert","click","ct_check","accurate","JSON","stringify","start","Date","toUTCString","ct_confirm_deletion_all"],"mappings":"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","file":"cleantalk-comments-checkspam.min.js","sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctCommentsCheck.ct_prev_accurate,\r\n\tct_prev_from = ctCommentsCheck.ct_prev_from,\t\r\n\tct_prev_till = ctCommentsCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctCommentsCheck.ct_ajax_nonce,\r\n\tct_comments_total = 0,\r\n\tct_comments_checked = 0,\r\n\tct_comments_spam = 0,\r\n\tct_comments_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to==0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_comments(){\r\n\r\n\tvar from = 0, till = 0;\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\r\n\t\tfrom = jQuery('#ct_date_range_from').val();\r\n\t\ttill = jQuery('#ct_date_range_till').val();\r\n\t}\r\n\tvar data = {\r\n\t\t'action' : 'ajax_clear_comments',\r\n\t\t'security' : ct_ajax_nonce,\r\n\t\t'from' : from,\r\n\t\t'till' : till\r\n\t};\r\n\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}\r\n\t});\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_comments();\r\n\tct_show_info();\r\n}\r\n\r\nfunction ct_send_comments(){\r\n\t\r\n\tif(ct_cooling_down_flag === true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\t\r\n\tvar data = {\r\n\t\t'action': 'ajax_check_comments',\r\n\t\t'security': ct_ajax_nonce,\r\n\t\t'new_check': ct_new_check,\r\n\t\t'unchecked': ct_unchecked\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause === true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_comments_checked += msg.checked;\r\n\t\t\t\t\tct_comments_spam += msg.spam;\r\n\t\t\t\t\tct_comments_bad += msg.bad;\r\n\t\t\t\t\tct_unchecked = ct_comments_total - ct_comments_checked - ct_comments_bad;\r\n\t\t\t\t\tvar status_string = String(ctCommentsCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_comments_total, ct_comments_checked, ct_comments_spam, ct_comments_bad);\r\n\t\t\t\t\tif(parseInt(ct_comments_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctCommentsCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\t// If DB woks not properly\r\n\t\t\t\t\tif(+ct_comments_total < ct_comments_checked + ct_comments_bad){\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_start_check=1; path=/';\r\n\t\t\t\t\t\tdocument.cookie = 'ct_comments_safe_check=1; path=/';\r\n\t\t\t\t\t\tlocation.href = 'edit-comments.php?page=ct_check_spam';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tct_send_comments();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_send_comments(), 3000); \r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_info(){\r\n\t\r\n\tif(ct_working){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag == true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\r\n\t\t\tjQuery('#ct_cooling_notice').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\r\n\t\t\r\n\t\tif(!ct_comments_total){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_comments',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(ct_date_from && ct_date_till){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_comments_total = msg.total;\r\n\t\t\t\t\tct_comments_spam = msg.spam;\r\n\t\t\t\t\tct_comments_checked = msg.checked;\r\n\t\t\t\t\tct_comments_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\t\t\tsetTimeout(ct_show_info(), 3000); \r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\nfunction ct_delete_all( e ) {\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\r\n\tjQuery('.' + e.target.id).addClass('disabled');\r\n\tjQuery('.spinner').css('visibility', 'visible');\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function( msg ){\r\n\t\t\tif( msg > 0 ){\r\n\t\t\t\tjQuery('#cleantalk_comments_left').html(msg);\r\n\t\t\t\tct_delete_all( e );\r\n\t\t\t}else{\r\n\t\t\t\tjQuery('.' + e.target.id).removeClass('disabled');\r\n\t\t\t\tjQuery('.spinner').css('visibility', 'hidden');\r\n\t\t\t\tlocation.href='edit-comments.php?page=ct_check_spam_total';\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check comments');\r\n\t\t\tsetTimeout(ct_delete_all( e ), 3000);\r\n\t\t},\r\n\t\ttimeout: 25000\r\n\t});\r\n\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\r\n jQuery.datepicker.setDefaults(jQuery.datepicker.regional['en']);\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'M d yy',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\r\n\tfunction ct_start_check(continue_check){\r\n\r\n continue_check = continue_check || null;\r\n\r\n\t\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\t\t\t\r\n\t\t\tct_date_from = jQuery('#ct_date_range_from').val(),\r\n\t\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\t\t\t\t\t\t\r\n\t\t\tif(!(ct_date_from != '' && ct_date_till != '')){\r\n\t\t\t\talert('Please, specify a date range.');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\t\r\n\t\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\t\tct_accurate_check = true;\r\n\t\t}\r\n\t\t\r\n\t\tjQuery('.ct_to_hide').hide();\r\n\t\tjQuery('#ct_working_message').show();\r\n\t\tjQuery('#ct_preloader').show();\r\n\t\tjQuery('#ct_pause').show();\r\n\r\n\t\tct_working=true;\r\n\t\t\r\n\t\tif(continue_check){\r\n\t\t\tct_show_info();\r\n\t\t\tct_send_comments();\r\n\t\t}else\r\n\t\t\tct_clear_comments();\r\n\t\t\r\n\t}\r\n\t\r\n\t// Check comments\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_comments_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_comments_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\r\n\r\n\tif(ctCommentsCheck.start === '1'){\r\n\t\tdocument.cookie = 'ct_comments_start_check=0; expires=' + new Date(0).toUTCString() + '; path=/';\r\n\t\tjQuery('#ct_check_spam_button').click();\t\r\n\t}\r\n\r\n\t// Delete all spam comments\r\n\tjQuery(\".ct_delete_all\").click(function( e ){\r\n\r\n\t\tif (!confirm(ctCommentsCheck.ct_confirm_deletion_all))\r\n\t\t\treturn false;\r\n\r\n\t\tct_delete_all( e );\r\n\r\n\t});\r\n\r\n});"]}
|
1 |
+
{"version":3,"sources":["cleantalk-comments-checkspam.js"],"names":["ct_working","String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctCommentsCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_comments_total","ct_comments_checked","ct_comments_spam","ct_comments_bad","ct_unchecked","ct_date_from","ct_date_till","animate_comment","to","id","jQuery","fadeTo","ct_clear_comments","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_info","ct_send_comments","ct_cooling_down_toggle","setTimeout","new_check","unchecked","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","document","cookie","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","total","ct_toggle_depended","obj","secondary","depended","prop","removeProp","ct_delete_all","e","target","addClass","css","removeClass","ready","state","on","datepicker","setDefaults","regional","dates","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_start_check","continue_check","alert","click","ct_check","accurate","JSON","stringify","start","Date","toUTCString","ct_confirm_deletion_all"],"mappings":"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"}
|
js/cleantalk-users-checkspam.min.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
String.prototype.printf=function(){var e=this;for(var t in arguments)
|
2 |
-
//# sourceMappingURL=cleantalk-users-checkspam.min.js.map
|
1 |
+
String.prototype.printf=function(){var e=this;for(var t in arguments)var c=e.substring(0,e.indexOf("%s",0)),_=e.substring(e.indexOf("%s",0)+2,e.length),e=c+arguments[t]+_;return e};var ct_working=!(document.cookie="ct_check_users__amount=100; path=/"),ct_new_check=!0,ct_cooling_down_flag=!1,ct_close_animate=!0,ct_accurate_check=!1,ct_pause=!1,ct_prev_accurate=ctUsersCheck.ct_prev_accurate,ct_prev_from=ctUsersCheck.ct_prev_from,ct_prev_till=ctUsersCheck.ct_prev_till,ct_cool_down_time=9e4,ct_requests_counter=0,ct_max_requests=60,ct_ajax_nonce=ctUsersCheck.ct_ajax_nonce,ct_users_total=0,ct_users_checked=0,ct_users_spam=0,ct_users_bad=0,ct_unchecked="unset",ct_date_from=0,ct_date_till=0;function apbct_cookie__get(a,r){var s={};return"string"==typeof(a=a||null)&&(a=a.split()),"none"===(r=r||["apbct_","ct_"])&&(r=null),"string"==typeof r&&(r=r.split()),document.cookie.split(";").forEach(function(e,t,c){var _=e.trim().split("=");a&&a.forEach(function(e,t,c){_[0]===e&&(s[_[0]]=_[1])}),r&&r.forEach(function(e,t,c){0===_[0].indexOf(e)&&(s[_[0]]=_[1])})}),s}function apbct_get_cookie(e){var t=apbct_cookie__get(e,e);return"object"==typeof t&&void 0!==t[e]?t[e]:null}function animate_comment(e,t){ct_close_animate?.3===e?jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(1,t)}):jQuery("#comment-"+t).fadeTo(200,e,function(){animate_comment(.3,t)}):ct_close_animate=!0}function ct_clear_users(){var e=0,t=0;jQuery("#ct_allow_date_range").is(":checked")&&(e=jQuery("#ct_date_range_from").val(),t=jQuery("#ct_date_range_till").val());var c={action:"ajax_clear_users",security:ct_ajax_nonce,from:e,till:t};jQuery.ajax({type:"POST",url:ajaxurl,data:c,success:function(e){ct_show_users_info(),ct_send_users()}})}function ct_cooling_down_toggle(){ct_cooling_down_flag=!1,ct_send_users(),ct_show_users_info()}function ct_send_users(){if(!0!==ct_cooling_down_flag){if(ct_max_requests<=ct_requests_counter)return setTimeout(ct_cooling_down_toggle,ct_cool_down_time),void(ct_cooling_down_flag=!(ct_requests_counter=0));ct_requests_counter++;var _=apbct_get_cookie("ct_check_users__amount"),e={action:"ajax_check_users",security:ct_ajax_nonce,new_check:ct_new_check,unchecked:ct_unchecked,amount:_};ct_accurate_check&&(e.accurate_check=!0),ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){var t,c;e=jQuery.parseJSON(e),parseInt(e.error)?(ct_working=!1,confirm(e.error_message+". Do you want to proceed?")?ct_send_users():(t="users.php?page=ct_check_users",0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t)):(ct_new_check=!1,1==parseInt(e.end)||1==ct_pause?(1==parseInt(e.end)&&(document.cookie="ct_paused_users_check=0; path=/"),ct_working=!1,jQuery("#ct_working_message").hide(),t="users.php?page=ct_check_users&ct_worked=1",0!=ct_date_from&&0!=ct_date_till&&(t+="&from="+ct_date_from+"&till="+ct_date_till),location.href=t):0==parseInt(e.end)&&(ct_users_checked=parseInt(ct_users_checked)+parseInt(e.checked),ct_users_spam=parseInt(ct_users_spam)+parseInt(e.spam),ct_users_bad=parseInt(ct_users_bad)+parseInt(e.bad),ct_unchecked=ct_users_total-ct_users_checked-ct_users_bad,c=(c=String(ctUsersCheck.ct_status_string)).printf(ct_users_checked,ct_users_spam,ct_users_bad),0<parseInt(ct_users_spam)&&(c+=ctUsersCheck.ct_status_string_warning),jQuery("#ct_checking_status").html(c),jQuery("#ct_error_message").hide(),ct_send_users()))},error:function(e,t,c){20<_&&(_-=20,document.cookie="ct_check_users__amount="+_+"; path=/"),jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Check users"),setTimeout(ct_send_users(),3e3)},timeout:25e3})}}function ct_show_users_info(){if(ct_working){if(!0===ct_cooling_down_flag)return void jQuery("#ct_cooling_notice").html("Waiting for API to cool down. (About a minute)").show();var e;jQuery("#ct_cooling_notice").hide(),ct_users_total||(e={action:"ajax_info_users",security:ct_ajax_nonce},ct_date_from&&ct_date_till&&(e.from=ct_date_from,e.till=ct_date_till),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){e=jQuery.parseJSON(e),jQuery("#ct_checking_status").html(e.message),ct_users_spam=e.spam,ct_users_checked=e.checked,ct_users_bad=e.bad},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("Show users"),setTimeout(ct_show_users_info(),3e3)},timeout:15e3}))}}function ct_toggle_depended(e,t){t=t||null;var c=jQuery(e.data("depended"));e.data("state")||t?(e.data("state",!1),c.prop("disabled",!0),c.removeProp("checked"),c.data("depended")&&ct_toggle_depended(c,!0)):(e.data("state",!0),c.removeProp("disabled"))}function ct_start_check(e){e=e||null,jQuery("#ct_allow_date_range").is(":checked")&&(ct_date_from=jQuery("#ct_date_range_from").val(),ct_date_till=jQuery("#ct_date_range_till").val(),""===ct_date_from||""===ct_date_till)?alert("Please, specify a date range."):(jQuery("#ct_accurate_check").is(":checked")&&(ct_accurate_check=!0),jQuery(".ct_to_hide").hide(),jQuery("#ct_working_message").show(),jQuery("#ct_preloader").show(),jQuery("#ct_pause").show(),ct_working=!0,e?(ct_show_users_info(),ct_send_users()):ct_clear_users())}function ct_delete_all_users(_){var t={action:"ajax_delete_all_users",security:ct_ajax_nonce};jQuery("."+_.target.id).addClass("disabled"),jQuery(".spinner").css("visibility","visible"),jQuery.ajax({type:"POST",url:ajaxurl,data:t,success:function(e){0<e?(jQuery("#cleantalk_users_left").html(e),ct_delete_all_users(_,t)):(jQuery("."+_.target.id).removeClass("disabled"),jQuery(".spinner").css("visibility","hidden"),location.href="users.php?page=ct_check_users_total")},error:function(e,t,c){jQuery("#ct_error_message").show(),jQuery("#cleantalk_ajax_error").html(t),jQuery("#cleantalk_js_func").html("All users deleteion"),setTimeout(ct_delete_all_users(_),3e3)},timeout:25e3})}jQuery(document).ready(function(){jQuery("#ct_allow_date_range").data({depended:".ct_date",state:!1}),ct_prev_accurate&&jQuery("#ct_accurate_check").prop("checked",!0),ct_prev_from&&(jQuery("#ct_allow_date_range").prop("checked",!0).data("state",!0),jQuery("#ct_date_range_from").removeProp("disabled").val(ct_prev_from),jQuery("#ct_date_range_till").removeProp("disabled").val(ct_prev_till)),jQuery("#ct_allow_date_range, #ct_accurate_check").on("change",function(){ct_toggle_depended(jQuery(this))}),jQuery.datepicker.setDefaults(jQuery.datepicker.regional.en);var a=jQuery("#ct_date_range_from, #ct_date_range_till").datepicker({dateFormat:"M d yy",maxDate:"+0D",changeMonth:!0,changeYear:!0,showAnim:"slideDown",onSelect:function(e){var t="ct_date_range_from"==this.id?"minDate":"maxDate",c=jQuery(this).data("datepicker"),_=jQuery.datepicker.parseDate(c.settings.dateFormat||jQuery.datepicker._defaults.dateFormat,e,c.settings);a.not(this).datepicker("option",t,_)}});function t(t){var e={action:"ajax_insert_users",security:ct_ajax_nonce};(t=t||null)&&(e.delete=!0),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){t?alert("Deleted "+e+" users"):alert("Inserted "+e+" users")}})}jQuery("#ct_check_spam_button").click(function(){ct_start_check(!(document.cookie="ct_paused_users_check=0; path=/"))}),jQuery("#ct_proceed_check_button").click(function(){ct_start_check(!0)}),jQuery("#ct_pause").on("click",function(){ct_pause=!0;var e={accurate:ct_accurate_check,from:ct_date_from,till:ct_date_till};document.cookie="ct_paused_users_check="+JSON.stringify(e)+"; path=/"}),jQuery(".cleantalk_delete_from_list_button").click(function(){ct_id=jQuery(this).attr("data-id");var e={action:"ajax_ct_approve_user",security:ct_ajax_nonce,id:ct_id};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){jQuery("#comment-"+ct_id).fadeOut("slow",function(){jQuery("#comment-"+ct_id).remove()})}});e={action:"ct_feedback_user",security:ct_ajax_nonce,user_id:ct_id,status:"approve"};jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){},error:function(e,t,c){},timeout:5e3})}),jQuery(".ct_get_csv_file").click(function(_){var e={action:"ajax_ct_get_csv_file",security:ct_ajax_nonce,filename:ctUsersCheck.ct_csv_filename};jQuery("."+_.target.id).addClass("disabled"),jQuery(".spinner").css("visibility","visible"),jQuery.ajax({type:"POST",url:ajaxurl,data:e,success:function(e){var t,c;0===parseInt(e)?alert(ctUsersCheck.ct_bad_csv):(t=URL.createObjectURL(new Blob([e])),(c=document.createElement("a")).href=t,c.download=ctUsersCheck.ct_csv_filename+".csv",document.body.appendChild(c),c.click()),jQuery("."+_.target.id).removeClass("disabled"),jQuery(".spinner").css("visibility","hidden")}})}),jQuery(".ct_insert_users").click(function(e){t()}),jQuery(".ct_insert_users__delete").click(function(e){t(!0)}),jQuery(".ct_delete_all_users").click(function(e){return!!confirm(ctUsersCheck.ct_confirm_deletion_all)&&void ct_delete_all_users(e)})});
|
2 |
+
//# sourceMappingURL=cleantalk-users-checkspam.min.js.map
|
js/cleantalk-users-checkspam.min.js.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["cleantalk-users-checkspam.js"],"names":["String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_working","document","cookie","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctUsersCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_users_total","ct_users_checked","ct_users_spam","ct_users_bad","ct_unchecked","ct_date_from","ct_date_till","apbct_cookie__get","names","prefixes","split","forEach","item","i","arr","curr","trim","name","all","prefix","apbct_get_cookie","animate_comment","to","id","jQuery","fadeTo","ct_clear_users","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_users_info","ct_send_users","ct_cooling_down_toggle","setTimeout","check_amount","new_check","unchecked","amount","parseJSON","parseInt","error","confirm","error_message","new_href","location","href","end","hide","checked","spam","bad","status_string","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","ct_toggle_depended","obj","secondary","depended","prop","removeProp","ct_start_check","continue_check","alert","ct_delete_all_users","e","target","addClass","css","removeClass","ready","state","on","datepicker","setDefaults","regional","dates","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_insert_users","delete_accounts","click","ct_check","accurate","JSON","stringify","ct_id","attr","fadeOut","remove","user_id","status","filename","ct_csv_filename","ct_bad_csv","URL","createObjectURL","Blob","dummy","createElement","download","body","appendChild","ct_confirm_deletion_all"],"mappings":"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","file":"cleantalk-users-checkspam.min.js","sourcesContent":["// Printf for JS\nString.prototype.printf = function(){\n var formatted = this;\n for( var arg in arguments ) {\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\n }\n return formatted;\n};\n\n// Set deafult amount to check by request.\ndocument.cookie = \"ct_check_users__amount=\" + 100 + \"; path=/\";\n\n// Flags\nvar ct_working = false,\n\tct_new_check = true,\n\tct_cooling_down_flag = false,\n\tct_close_animate = true,\n\tct_accurate_check = false,\n\tct_pause = false,\n\tct_prev_accurate = ctUsersCheck.ct_prev_accurate,\n\tct_prev_from = ctUsersCheck.ct_prev_from,\t\n\tct_prev_till = ctUsersCheck.ct_prev_till;\n// Settings\nvar ct_cool_down_time = 90000,\n\tct_requests_counter = 0,\n\tct_max_requests = 60;\n// Variables\nvar ct_ajax_nonce = ctUsersCheck.ct_ajax_nonce,\n\tct_users_total = 0,\n\tct_users_checked = 0,\n\tct_users_spam = 0,\n\tct_users_bad = 0,\n\tct_unchecked = 'unset',\n\tct_date_from = 0,\n\tct_date_till = 0;\n\n/* Function: Reuturns cookie with prefix */\nfunction apbct_cookie__get(names, prefixes){\n\tvar cookie = {};\n\tnames = names || null;\n\tif(typeof names == 'string') names = names.split();\n\tprefixes = prefixes || ['apbct_', 'ct_'];\n\tif(prefixes === 'none') prefixes = null;\n\tif(typeof prefixes == 'string') prefixes = prefixes.split();\n\tdocument.cookie.split(';').forEach(function(item, i, arr){\n\t\tvar curr = item.trim().split('=');\n\t\t// Detect by full cookie name\n\t\tif(names){\n\t\t\tnames.forEach(function(name, i, all){\n\t\t\t\tif(curr[0] === name)\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\n\t\t\t});\n\t\t}\n\t\t// Detect by name prefix\n\t\tif(prefixes){\n\t\t\tprefixes.forEach(function(prefix, i, all){\n\t\t\t\tif(curr[0].indexOf(prefix) === 0)\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\n\t\t\t});\n\t\t}\n\t});\n\treturn cookie;\n}\n\nfunction apbct_get_cookie( name ){\n\tvar cookie = apbct_cookie__get( name, name );\n\tif(typeof cookie === 'object' && typeof cookie[name] != 'undefined'){\n\t\treturn cookie[name];\n\t}else\n\t\treturn null;\n}\n\nfunction animate_comment(to,id){\n\tif(ct_close_animate){\n\t\tif(to === 0.3){\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\n\t\t\t\tanimate_comment(1,id)\n\t\t\t});\n\t\t}else{\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\n\t\t\t\tanimate_comment(0.3,id)\n\t\t\t});\n\t\t}\n\t}else{\n\t\tct_close_animate=true;\n\t}\n}\n\nfunction ct_clear_users(){\n\n\tvar from = 0, till = 0;\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\n\t\tfrom = jQuery('#ct_date_range_from').val();\n\t\ttill = jQuery('#ct_date_range_till').val();\n\t}\n\tvar data = {\n\t\t'action' : 'ajax_clear_users',\n\t\t'security' : ct_ajax_nonce,\n\t\t'from' : from,\n\t\t'till' : till\n\t};\n\n\tjQuery.ajax({\n\t\ttype: \"POST\",\n\t\turl: ajaxurl,\n\t\tdata: data,\n\t\tsuccess: function(msg){\n\t\t\tct_show_users_info();\n\t\t\tct_send_users();\n\t\t}\n\t});\n\n}\n\n//Continues the check after cooldown time\n//Called by ct_send_users();\nfunction ct_cooling_down_toggle(){\n\tct_cooling_down_flag = false;\n\tct_send_users();\n\tct_show_users_info();\n}\n\nfunction ct_send_users(){\n\t\n\tif(ct_cooling_down_flag === true)\n\t\treturn;\n\t\n\tif(ct_requests_counter >= ct_max_requests){\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\n\t\tct_requests_counter = 0;\n\t\tct_cooling_down_flag = true;\n\t\treturn;\n\t}else{\n\t\tct_requests_counter++;\n\t}\n\n\tvar check_amount = apbct_get_cookie('ct_check_users__amount');\n\n\tvar data = {\n\t\taction: 'ajax_check_users',\n\t\tsecurity: ct_ajax_nonce,\n\t\tnew_check: ct_new_check,\n\t\tunchecked: ct_unchecked,\n\t\tamount: check_amount\n\t};\n\t\n\tif(ct_accurate_check)\n\t\tdata['accurate_check'] = true;\n\t\n\tif(ct_date_from && ct_date_till){\n\t\tdata['from'] = ct_date_from;\n\t\tdata['till'] = ct_date_till;\n\t}\n\t\n\tjQuery.ajax({\n\t\ttype: \"POST\",\n\t\turl: ajaxurl,\n\t\tdata: data,\n\t\tsuccess: function(msg){\n\t\t\t\n\t\t\tmsg = jQuery.parseJSON(msg);\n\t\t\t\n\t\t\tif(parseInt(msg.error)){\n\t\t\t\tct_working=false;\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users';\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\n\t\t\t\t\tlocation.href = new_href;\n\t\t\t\t}else\n\t\t\t\t\tct_send_users();\n\t\t\t}else{\n\t\t\t\tct_new_check = false;\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause == true){\n\t\t\t\t\tif(parseInt(msg.end) == 1)\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\n\t\t\t\t\tct_working=false;\n\t\t\t\t\tjQuery('#ct_working_message').hide();\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users&ct_worked=1';\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\n\t\t\t\t\tlocation.href = new_href;\n\t\t\t\t}else if(parseInt(msg.end) == 0){\n\t\t\t\t\tct_users_checked += msg.checked;\n\t\t\t\t\tct_users_spam += msg.spam;\n\t\t\t\t\tct_users_bad += msg.bad;\n\t\t\t\t\tct_unchecked = ct_users_total - ct_users_checked - ct_users_bad;\n\t\t\t\t\tvar status_string = String(ctUsersCheck.ct_status_string);\n\t\t\t\t\tvar status_string = status_string.printf(ct_users_checked, ct_users_spam, ct_users_bad);\n\t\t\t\t\tif(parseInt(ct_users_spam) > 0)\n\t\t\t\t\t\tstatus_string += ctUsersCheck.ct_status_string_warning;\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\n\t\t\t\t\tjQuery('#ct_error_message').hide();\n\t\t\t\t\tct_send_users();\n\t\t\t\t}\n\t\t\t}\n\t\t},\n error: function(jqXHR, textStatus, errorThrown) {\n\t\t\tif(check_amount > 20){\n\t\t\t\tcheck_amount -= 20;\n\t\t\t\tdocument.cookie = \"ct_check_users__amount=\" + check_amount + \"; path=/\";\n\t\t\t}\n\t\t\tjQuery('#ct_error_message').show();\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\n\t\t\tjQuery('#cleantalk_js_func').html('Check users');\n\t\t\tsetTimeout(ct_send_users(), 3000);\n },\n timeout: 25000\n\t});\n}\nfunction ct_show_users_info(){\n\t\n\tif( ct_working ){\n\t\t\n\t\tif(ct_cooling_down_flag == true){\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)');\n\t\t\tjQuery('#ct_cooling_notice').show();\n\t\t\treturn;\t\t\t\n\t\t}else{\n\t\t\tjQuery('#ct_cooling_notice').hide();\n\t\t}\n\t\t\n\t\tif( ! ct_users_total ){\n\t\t\t\n\t\t\tvar data = {\n\t\t\t\t'action': 'ajax_info_users',\n\t\t\t\t'security': ct_ajax_nonce\n\t\t\t};\n\t\t\t\n\t\t\tif( ct_date_from && ct_date_till ){\n\t\t\t\tdata['from'] = ct_date_from;\n\t\t\t\tdata['till'] = ct_date_till;\n\t\t\t}\n\t\t\t\n\t\t\tjQuery.ajax({\n\t\t\t\ttype: \"POST\",\n\t\t\t\turl: ajaxurl,\n\t\t\t\tdata: data,\n\t\t\t\tsuccess: function(msg){\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\n\t\t\t\t\tct_users_spam = msg.spam;\n\t\t\t\t\tct_users_checked = msg.checked;\n\t\t\t\t\tct_users_bad = msg.bad;\n\t\t\t\t},\n\t\t\t\terror: function (jqXHR, textStatus, errorThrown){\n\t\t\t\t\tjQuery('#ct_error_message').show();\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Show users');\n\t\t\t\t\tsetTimeout(ct_show_users_info(), 3000);\n\t\t\t\t},\n\t\t\t\ttimeout: 15000\n\t\t\t});\n\t\t}\n\t}\n}\n// Function to toggle dependences\nfunction ct_toggle_depended(obj, secondary){\n\n secondary = secondary || null;\n\n\tvar depended = jQuery(obj.data('depended')),\n\t\tstate = obj.data('state');\n\t\t\n\tif(!state && !secondary){\n\t\tobj.data('state', true);\n\t\tdepended.removeProp('disabled');\n\t}else{\n\t\tobj.data('state', false);\n\t\tdepended.prop('disabled', true);\n\t\tdepended.removeProp('checked');\n\t\tif(depended.data('depended'))\n\t\t\tct_toggle_depended(depended, true);\n\t}\n}\n\n// Main function of checking\nfunction ct_start_check( continue_check ){\n\n\tcontinue_check = continue_check || null;\n\n\tif(jQuery('#ct_allow_date_range').is(':checked')){\n\n\t\tct_date_from = jQuery('#ct_date_range_from').val();\n\t\tct_date_till = jQuery('#ct_date_range_till').val();\n\n\t\tif(!(ct_date_from !== '' && ct_date_till !== '')){\n\t\t\talert('Please, specify a date range.');\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif(jQuery('#ct_accurate_check').is(':checked')){\n\t\tct_accurate_check = true;\n\t}\n\n\tjQuery('.ct_to_hide').hide();\n\tjQuery('#ct_working_message').show();\n\tjQuery('#ct_preloader').show();\n\tjQuery('#ct_pause').show();\n\n\tct_working = true;\n\n\tif( continue_check ){\n\t\tct_show_users_info();\n\t\tct_send_users();\n\t} else {\n\t\tct_clear_users();\n\t}\n\n}\n\nfunction ct_delete_all_users( e ){\n\n\tvar data = {\n\t\t'action': 'ajax_delete_all_users',\n\t\t'security': ct_ajax_nonce\n\t};\n\n\tjQuery('.' + e.target.id).addClass('disabled');\n\tjQuery('.spinner').css('visibility', 'visible');\n\tjQuery.ajax({\n\t\ttype: \"POST\",\n\t\turl: ajaxurl,\n\t\tdata: data,\n\t\tsuccess: function( msg ){\n\t\t\tif( msg > 0 ){\n\t\t\t\tjQuery('#cleantalk_users_left').html(msg);\n\t\t\t\tct_delete_all_users( e, data );\n\t\t\t}else{\n\t\t\t\tjQuery('.' + e.target.id).removeClass('disabled');\n\t\t\t\tjQuery('.spinner').css('visibility', 'hidden');\n\t\t\t\tlocation.href='users.php?page=ct_check_users_total';\n\t\t\t}\n\t\t},\n\t\terror: function(jqXHR, textStatus, errorThrown) {\n\t\t\tjQuery('#ct_error_message').show();\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\n\t\t\tsetTimeout(ct_delete_all_users( e ), 3000);\n\t\t},\n\t\ttimeout: 25000\n\t});\n}\n\njQuery(document).ready(function(){\n\n\t// Setting dependences\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\n\t\n\t// Prev check parameters\n\tif(ct_prev_accurate){\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\n\t}\n\tif(ct_prev_from){\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\n\t}\n\t\n\t// Toggle dependences\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\n\t\tct_toggle_depended(jQuery(this));\n\t});\n\n\tjQuery.datepicker.setDefaults(jQuery.datepicker.regional['en']);\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\n\t\t{\n\t\t\tdateFormat: 'M d yy',\n\t\t\tmaxDate:\"+0D\",\n\t\t\tchangeMonth:true,\n\t\t\tchangeYear:true,\n\t\t\tshowAnim: 'slideDown',\n\t\t\tonSelect: function(selectedDate){\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\n\t\t\t\tdate = jQuery.datepicker.parseDate(\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\n\t\t\t\t\tselectedDate, instance.settings);\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\n\t\t\t}\n\t\t}\n\t);\n\t\n\t// Check users\n\tjQuery(\"#ct_check_spam_button\").click(function(){\n\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\n\t\tct_start_check(false);\n\t});\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\n\t\tct_start_check(true);\n\t});\n\t\n\t// Pause the check\n\tjQuery('#ct_pause').on('click', function(){\n\t\tct_pause = true;\n\t\tvar ct_check = {\n\t\t\t'accurate': ct_accurate_check,\n\t\t\t'from' : ct_date_from,\n\t\t\t'till' : ct_date_till\n\t\t};\n\t\tdocument.cookie = 'ct_paused_users_check=' + JSON.stringify(ct_check) + '; path=/';\n\t});\n\t\t\n\t//Approve button\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\n\t\tct_id = jQuery(this).attr(\"data-id\");\n\t\t\n\t\t// Approving\n\t\tvar data = {\n\t\t\t'action': 'ajax_ct_approve_user',\n\t\t\t'security': ct_ajax_nonce,\n\t\t\t'id': ct_id\n\t\t};\n\t\tjQuery.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: ajaxurl,\n\t\t\tdata: data,\n\t\t\tsuccess: function(msg){\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\n\t\t\t\t});\n\t\t\t},\n\t\t});\n\t\t\n\t\t// Positive feedback\n\t\tvar data = {\n\t\t\t'action': 'ct_feedback_user',\n\t\t\t'security': ct_ajax_nonce,\n\t\t\t'user_id': ct_id,\n\t\t\t'status': 'approve'\n\t\t};\n\t\tjQuery.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: ajaxurl,\n\t\t\tdata: data,\n\t\t\tsuccess: function(msg){\n\t\t\t\tif(msg == 1){\n\t\t\t\t\t// Success\n\t\t\t\t}\n\t\t\t\tif(msg == 0){\n\t\t\t\t\t// Error occurred\n\t\t\t\t}\n\t\t\t\tif(msg == 'no_hash'){\n\t\t\t\t\t// No hash\n\t\t\t\t}\n\t\t\t},\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\n\t\t\t\t\n\t\t\t},\n\t\t\ttimeout: 5000\n\t\t});\n\t\t\n\t});\n\t\n\t// Request to Download CSV file.\n\tjQuery(\".ct_get_csv_file\").click(function( e ){\n\t\tvar data = {\n\t\t\t'action': 'ajax_ct_get_csv_file',\n\t\t\t'security': ct_ajax_nonce,\n\t\t\t'filename': ctUsersCheck.ct_csv_filename\n\t\t};\n\t\tjQuery('.' + e.target.id).addClass('disabled');\n\t\tjQuery('.spinner').css('visibility', 'visible');\n\t\tjQuery.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: ajaxurl,\n\t\t\tdata: data,\n\t\t\tsuccess: function(msg){\n\t\t\t\tif( parseInt(msg) === 0 ) {\n\t\t\t\t\talert(ctUsersCheck.ct_bad_csv);\n\t\t\t\t} else {\n\t\t\t\t\tvar url = URL.createObjectURL(new Blob([msg]));\n\n\t\t\t\t\tvar dummy = document.createElement('a');\n\t\t\t\t\tdummy.href = url;\n\t\t\t\t\tdummy.download = ctUsersCheck.ct_csv_filename + '.csv';\n\n\t\t\t\t\tdocument.body.appendChild(dummy);\n\t\t\t\t\tdummy.click();\n\t\t\t\t}\n\t\t\t\tjQuery('.' + e.target.id).removeClass('disabled');\n\t\t\t\tjQuery('.spinner').css('visibility', 'hidden');\n\t\t\t}\n\t\t});\n\t});\n\n\t// Delete inserted users\n\tjQuery(\".ct_insert_users\").click(function( e ){\n\t\tct_insert_users();\n\t});\n\n\t// Insert users\n\tjQuery(\".ct_insert_users__delete\").click(function( e ){\n\t\tct_insert_users( true );\n\t});\n\n\t// Delete all spam users\n\tjQuery(\".ct_delete_all_users\").click(function( e ){\n\n\t\tif ( ! confirm( ctUsersCheck.ct_confirm_deletion_all ) )\n\t\t\treturn false;\n\n\t\tct_delete_all_users( e );\n\n\t});\n\n\tfunction ct_insert_users(delete_accounts){\n\n\t\tdelete_accounts = delete_accounts || null;\n\n\t\tvar data = {\n\t\t\t'action': 'ajax_insert_users',\n\t\t\t'security': ct_ajax_nonce\n\t\t};\n\n\t\tif(delete_accounts)\n\t\t\tdata['delete'] = true;\n\n\t\tjQuery.ajax({\n\t\t\ttype: \"POST\",\n\t\t\turl: ajaxurl,\n\t\t\tdata: data,\n\t\t\tsuccess: function(msg){\n\t\t\t\tif(delete_accounts)\n\t\t\t\t\talert('Deleted ' + msg + ' users');\n\t\t\t\telse\n\t\t\t\t\talert('Inserted ' + msg + ' users');\n\t\t\t}\n\t\t});\n\t}\n\n});"]}
|
1 |
+
{"version":3,"file":"cleantalk-users-checkspam.min.js","sources":["cleantalk-users-checkspam.js"],"sourcesContent":["// Printf for JS\r\nString.prototype.printf = function(){\r\n var formatted = this;\r\n for( var arg in arguments ) {\r\n\t\tvar before_formatted = formatted.substring(0, formatted.indexOf(\"%s\", 0));\r\n\t\tvar after_formatted = formatted.substring(formatted.indexOf(\"%s\", 0)+2, formatted.length);\r\n\t\tformatted = before_formatted + arguments[arg] + after_formatted;\r\n }\r\n return formatted;\r\n};\r\n\r\n// Set deafult amount to check by request.\r\ndocument.cookie = \"ct_check_users__amount=\" + 100 + \"; path=/\";\r\n\r\n// Flags\r\nvar ct_working = false,\r\n\tct_new_check = true,\r\n\tct_cooling_down_flag = false,\r\n\tct_close_animate = true,\r\n\tct_accurate_check = false,\r\n\tct_pause = false,\r\n\tct_prev_accurate = ctUsersCheck.ct_prev_accurate,\r\n\tct_prev_from = ctUsersCheck.ct_prev_from,\t\r\n\tct_prev_till = ctUsersCheck.ct_prev_till;\r\n// Settings\r\nvar ct_cool_down_time = 90000,\r\n\tct_requests_counter = 0,\r\n\tct_max_requests = 60;\r\n// Variables\r\nvar ct_ajax_nonce = ctUsersCheck.ct_ajax_nonce,\r\n\tct_users_total = 0,\r\n\tct_users_checked = 0,\r\n\tct_users_spam = 0,\r\n\tct_users_bad = 0,\r\n\tct_unchecked = 'unset',\r\n\tct_date_from = 0,\r\n\tct_date_till = 0;\r\n\r\n/* Function: Reuturns cookie with prefix */\r\nfunction apbct_cookie__get(names, prefixes){\r\n\tvar cookie = {};\r\n\tnames = names || null;\r\n\tif(typeof names == 'string') names = names.split();\r\n\tprefixes = prefixes || ['apbct_', 'ct_'];\r\n\tif(prefixes === 'none') prefixes = null;\r\n\tif(typeof prefixes == 'string') prefixes = prefixes.split();\r\n\tdocument.cookie.split(';').forEach(function(item, i, arr){\r\n\t\tvar curr = item.trim().split('=');\r\n\t\t// Detect by full cookie name\r\n\t\tif(names){\r\n\t\t\tnames.forEach(function(name, i, all){\r\n\t\t\t\tif(curr[0] === name)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t\t// Detect by name prefix\r\n\t\tif(prefixes){\r\n\t\t\tprefixes.forEach(function(prefix, i, all){\r\n\t\t\t\tif(curr[0].indexOf(prefix) === 0)\r\n\t\t\t\t\tcookie[curr[0]] = (curr[1]);\r\n\t\t\t});\r\n\t\t}\r\n\t});\r\n\treturn cookie;\r\n}\r\n\r\nfunction apbct_get_cookie( name ){\r\n\tvar cookie = apbct_cookie__get( name, name );\r\n\tif(typeof cookie === 'object' && typeof cookie[name] != 'undefined'){\r\n\t\treturn cookie[name];\r\n\t}else\r\n\t\treturn null;\r\n}\r\n\r\nfunction animate_comment(to,id){\r\n\tif(ct_close_animate){\r\n\t\tif(to === 0.3){\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(1,id)\r\n\t\t\t});\r\n\t\t}else{\r\n\t\t\tjQuery('#comment-'+id).fadeTo(200,to,function(){\r\n\t\t\t\tanimate_comment(0.3,id)\r\n\t\t\t});\r\n\t\t}\r\n\t}else{\r\n\t\tct_close_animate=true;\r\n\t}\r\n}\r\n\r\nfunction ct_clear_users(){\r\n\r\n\tvar from = 0, till = 0;\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')) {\r\n\t\tfrom = jQuery('#ct_date_range_from').val();\r\n\t\ttill = jQuery('#ct_date_range_till').val();\r\n\t}\r\n\tvar data = {\r\n\t\t'action' : 'ajax_clear_users',\r\n\t\t'security' : ct_ajax_nonce,\r\n\t\t'from' : from,\r\n\t\t'till' : till\r\n\t};\r\n\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\tct_show_users_info();\r\n\t\t\tct_send_users();\r\n\t\t}\r\n\t});\r\n\r\n}\r\n\r\n//Continues the check after cooldown time\r\n//Called by ct_send_users();\r\nfunction ct_cooling_down_toggle(){\r\n\tct_cooling_down_flag = false;\r\n\tct_send_users();\r\n\tct_show_users_info();\r\n}\r\n\r\nfunction ct_send_users(){\r\n\t\r\n\tif(ct_cooling_down_flag === true)\r\n\t\treturn;\r\n\t\r\n\tif(ct_requests_counter >= ct_max_requests){\r\n\t\tsetTimeout(ct_cooling_down_toggle, ct_cool_down_time);\r\n\t\tct_requests_counter = 0;\r\n\t\tct_cooling_down_flag = true;\r\n\t\treturn;\r\n\t}else{\r\n\t\tct_requests_counter++;\r\n\t}\r\n\r\n\tvar check_amount = apbct_get_cookie('ct_check_users__amount');\r\n\r\n\tvar data = {\r\n\t\taction: 'ajax_check_users',\r\n\t\tsecurity: ct_ajax_nonce,\r\n\t\tnew_check: ct_new_check,\r\n\t\tunchecked: ct_unchecked,\r\n\t\tamount: check_amount\r\n\t};\r\n\t\r\n\tif(ct_accurate_check)\r\n\t\tdata['accurate_check'] = true;\r\n\t\r\n\tif(ct_date_from && ct_date_till){\r\n\t\tdata['from'] = ct_date_from;\r\n\t\tdata['till'] = ct_date_till;\r\n\t}\r\n\t\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function(msg){\r\n\t\t\t\r\n\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\r\n\t\t\tif(parseInt(msg.error)){\r\n\t\t\t\tct_working=false;\r\n\t\t\t\tif(!confirm(msg.error_message+\". Do you want to proceed?\")){\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t}else{\r\n\t\t\t\tct_new_check = false;\r\n\t\t\t\tif(parseInt(msg.end) == 1 || ct_pause == true){\r\n\t\t\t\t\tif(parseInt(msg.end) == 1)\r\n\t\t\t\t\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\t\t\t\tct_working=false;\r\n\t\t\t\t\tjQuery('#ct_working_message').hide();\r\n\t\t\t\t\tvar new_href = 'users.php?page=ct_check_users&ct_worked=1';\r\n\t\t\t\t\tif(ct_date_from != 0 && ct_date_till != 0)\r\n\t\t\t\t\t\tnew_href+='&from='+ct_date_from+'&till='+ct_date_till;\r\n\t\t\t\t\tlocation.href = new_href;\r\n\t\t\t\t}else if(parseInt(msg.end) == 0){\r\n\t\t\t\t\tct_users_checked = parseInt( ct_users_checked ) + parseInt( msg.checked );\r\n\t\t\t\t\tct_users_spam = parseInt( ct_users_spam ) + parseInt (msg.spam );\r\n\t\t\t\t\tct_users_bad = parseInt( ct_users_bad ) + parseInt( msg.bad );\r\n\t\t\t\t\tct_unchecked = ct_users_total - ct_users_checked - ct_users_bad;\r\n\t\t\t\t\tvar status_string = String(ctUsersCheck.ct_status_string);\r\n\t\t\t\t\tvar status_string = status_string.printf(ct_users_checked, ct_users_spam, ct_users_bad);\r\n\t\t\t\t\tif(parseInt(ct_users_spam) > 0)\r\n\t\t\t\t\t\tstatus_string += ctUsersCheck.ct_status_string_warning;\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(status_string);\r\n\t\t\t\t\tjQuery('#ct_error_message').hide();\r\n\t\t\t\t\tct_send_users();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t},\r\n error: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tif(check_amount > 20){\r\n\t\t\t\tcheck_amount -= 20;\r\n\t\t\t\tdocument.cookie = \"ct_check_users__amount=\" + check_amount + \"; path=/\";\r\n\t\t\t}\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('Check users');\r\n\t\t\tsetTimeout(ct_send_users(), 3000);\r\n },\r\n timeout: 25000\r\n\t});\r\n}\r\nfunction ct_show_users_info(){\r\n\t\r\n\tif( ct_working ){\r\n\t\t\r\n\t\tif(ct_cooling_down_flag === true){\r\n\t\t\tjQuery('#ct_cooling_notice').html('Waiting for API to cool down. (About a minute)').show();\r\n\t\t\treturn;\t\t\t\r\n\t\t}else{\r\n\t\t\tjQuery('#ct_cooling_notice').hide();\r\n\t\t}\r\n\t\t\r\n\t\tif( ! ct_users_total ){\r\n\t\t\t\r\n\t\t\tvar data = {\r\n\t\t\t\t'action': 'ajax_info_users',\r\n\t\t\t\t'security': ct_ajax_nonce\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif( ct_date_from && ct_date_till ){\r\n\t\t\t\tdata['from'] = ct_date_from;\r\n\t\t\t\tdata['till'] = ct_date_till;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tjQuery.ajax({\r\n\t\t\t\ttype: \"POST\",\r\n\t\t\t\turl: ajaxurl,\r\n\t\t\t\tdata: data,\r\n\t\t\t\tsuccess: function(msg){\r\n\t\t\t\t\tmsg = jQuery.parseJSON(msg);\r\n\t\t\t\t\tjQuery('#ct_checking_status').html(msg.message);\r\n\t\t\t\t\tct_users_spam = msg.spam;\r\n\t\t\t\t\tct_users_checked = msg.checked;\r\n\t\t\t\t\tct_users_bad = msg.bad;\r\n\t\t\t\t},\r\n\t\t\t\terror: function (jqXHR, textStatus, errorThrown){\r\n\t\t\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\t\t\tjQuery('#cleantalk_js_func').html('Show users');\r\n\t\t\t\t\tsetTimeout(ct_show_users_info(), 3000);\r\n\t\t\t\t},\r\n\t\t\t\ttimeout: 15000\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n// Function to toggle dependences\r\nfunction ct_toggle_depended(obj, secondary){\r\n\r\n secondary = secondary || null;\r\n\r\n\tvar depended = jQuery(obj.data('depended')),\r\n\t\tstate = obj.data('state');\r\n\t\t\r\n\tif(!state && !secondary){\r\n\t\tobj.data('state', true);\r\n\t\tdepended.removeProp('disabled');\r\n\t}else{\r\n\t\tobj.data('state', false);\r\n\t\tdepended.prop('disabled', true);\r\n\t\tdepended.removeProp('checked');\r\n\t\tif(depended.data('depended'))\r\n\t\t\tct_toggle_depended(depended, true);\r\n\t}\r\n}\r\n\r\n// Main function of checking\r\nfunction ct_start_check( continue_check ){\r\n\r\n\tcontinue_check = continue_check || null;\r\n\r\n\tif(jQuery('#ct_allow_date_range').is(':checked')){\r\n\r\n\t\tct_date_from = jQuery('#ct_date_range_from').val();\r\n\t\tct_date_till = jQuery('#ct_date_range_till').val();\r\n\r\n\t\tif(!(ct_date_from !== '' && ct_date_till !== '')){\r\n\t\t\talert('Please, specify a date range.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t}\r\n\r\n\tif(jQuery('#ct_accurate_check').is(':checked')){\r\n\t\tct_accurate_check = true;\r\n\t}\r\n\r\n\tjQuery('.ct_to_hide').hide();\r\n\tjQuery('#ct_working_message').show();\r\n\tjQuery('#ct_preloader').show();\r\n\tjQuery('#ct_pause').show();\r\n\r\n\tct_working = true;\r\n\r\n\tif( continue_check ){\r\n\t\tct_show_users_info();\r\n\t\tct_send_users();\r\n\t} else {\r\n\t\tct_clear_users();\r\n\t}\r\n\r\n}\r\n\r\nfunction ct_delete_all_users( e ){\r\n\r\n\tvar data = {\r\n\t\t'action': 'ajax_delete_all_users',\r\n\t\t'security': ct_ajax_nonce\r\n\t};\r\n\r\n\tjQuery('.' + e.target.id).addClass('disabled');\r\n\tjQuery('.spinner').css('visibility', 'visible');\r\n\tjQuery.ajax({\r\n\t\ttype: \"POST\",\r\n\t\turl: ajaxurl,\r\n\t\tdata: data,\r\n\t\tsuccess: function( msg ){\r\n\t\t\tif( msg > 0 ){\r\n\t\t\t\tjQuery('#cleantalk_users_left').html(msg);\r\n\t\t\t\tct_delete_all_users( e, data );\r\n\t\t\t}else{\r\n\t\t\t\tjQuery('.' + e.target.id).removeClass('disabled');\r\n\t\t\t\tjQuery('.spinner').css('visibility', 'hidden');\r\n\t\t\t\tlocation.href='users.php?page=ct_check_users_total';\r\n\t\t\t}\r\n\t\t},\r\n\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\tjQuery('#ct_error_message').show();\r\n\t\t\tjQuery('#cleantalk_ajax_error').html(textStatus);\r\n\t\t\tjQuery('#cleantalk_js_func').html('All users deleteion');\r\n\t\t\tsetTimeout(ct_delete_all_users( e ), 3000);\r\n\t\t},\r\n\t\ttimeout: 25000\r\n\t});\r\n}\r\n\r\njQuery(document).ready(function(){\r\n\r\n\t// Setting dependences\r\n\t// jQuery('#ct_accurate_check') .data({'depended': '#ct_allow_date_range', 'state': false});\r\n\tjQuery('#ct_allow_date_range').data({'depended': '.ct_date', 'state': false});\r\n\t\r\n\t// Prev check parameters\r\n\tif(ct_prev_accurate){\r\n\t\tjQuery(\"#ct_accurate_check\").prop('checked', true);\r\n\t}\r\n\tif(ct_prev_from){\r\n\t\tjQuery(\"#ct_allow_date_range\").prop('checked', true).data('state', true);\r\n\t\tjQuery(\"#ct_date_range_from\").removeProp('disabled').val(ct_prev_from);\r\n\t\tjQuery(\"#ct_date_range_till\").removeProp('disabled').val(ct_prev_till);\r\n\t}\r\n\t\r\n\t// Toggle dependences\r\n\tjQuery(\"#ct_allow_date_range, #ct_accurate_check\").on('change', function(){\r\n\t\tct_toggle_depended(jQuery(this));\r\n\t});\r\n\r\n\tjQuery.datepicker.setDefaults(jQuery.datepicker.regional['en']);\r\n\tvar dates = jQuery('#ct_date_range_from, #ct_date_range_till').datepicker(\r\n\t\t{\r\n\t\t\tdateFormat: 'M d yy',\r\n\t\t\tmaxDate:\"+0D\",\r\n\t\t\tchangeMonth:true,\r\n\t\t\tchangeYear:true,\r\n\t\t\tshowAnim: 'slideDown',\r\n\t\t\tonSelect: function(selectedDate){\r\n\t\t\tvar option = this.id == \"ct_date_range_from\" ? \"minDate\" : \"maxDate\",\r\n\t\t\t\tinstance = jQuery( this ).data( \"datepicker\" ),\r\n\t\t\t\tdate = jQuery.datepicker.parseDate(\r\n\t\t\t\t\tinstance.settings.dateFormat || jQuery.datepicker._defaults.dateFormat,\r\n\t\t\t\t\tselectedDate, instance.settings);\r\n\t\t\t\tdates.not(this).datepicker(\"option\", option, date);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\t\r\n\t// Check users\r\n\tjQuery(\"#ct_check_spam_button\").click(function(){\r\n\t\tdocument.cookie = 'ct_paused_users_check=0; path=/';\r\n\t\tct_start_check(false);\r\n\t});\r\n\tjQuery(\"#ct_proceed_check_button\").click(function(){\r\n\t\tct_start_check(true);\r\n\t});\r\n\t\r\n\t// Pause the check\r\n\tjQuery('#ct_pause').on('click', function(){\r\n\t\tct_pause = true;\r\n\t\tvar ct_check = {\r\n\t\t\t'accurate': ct_accurate_check,\r\n\t\t\t'from' : ct_date_from,\r\n\t\t\t'till' : ct_date_till\r\n\t\t};\r\n\t\tdocument.cookie = 'ct_paused_users_check=' + JSON.stringify(ct_check) + '; path=/';\r\n\t});\r\n\t\t\r\n\t//Approve button\r\n\tjQuery(\".cleantalk_delete_from_list_button\").click(function(){\r\n\t\tct_id = jQuery(this).attr(\"data-id\");\r\n\t\t\r\n\t\t// Approving\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_approve_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'id': ct_id\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tjQuery(\"#comment-\"+ct_id).fadeOut('slow', function(){\r\n\t\t\t\t\tjQuery(\"#comment-\"+ct_id).remove();\r\n\t\t\t\t});\r\n\t\t\t},\r\n\t\t});\r\n\t\t\r\n\t\t// Positive feedback\r\n\t\tvar data = {\r\n\t\t\t'action': 'ct_feedback_user',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'user_id': ct_id,\r\n\t\t\t'status': 'approve'\r\n\t\t};\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(msg == 1){\r\n\t\t\t\t\t// Success\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 0){\r\n\t\t\t\t\t// Error occurred\r\n\t\t\t\t}\r\n\t\t\t\tif(msg == 'no_hash'){\r\n\t\t\t\t\t// No hash\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\terror: function(jqXHR, textStatus, errorThrown) {\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\ttimeout: 5000\r\n\t\t});\r\n\t\t\r\n\t});\r\n\t\r\n\t// Request to Download CSV file.\r\n\tjQuery(\".ct_get_csv_file\").click(function( e ){\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_ct_get_csv_file',\r\n\t\t\t'security': ct_ajax_nonce,\r\n\t\t\t'filename': ctUsersCheck.ct_csv_filename\r\n\t\t};\r\n\t\tjQuery('.' + e.target.id).addClass('disabled');\r\n\t\tjQuery('.spinner').css('visibility', 'visible');\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif( parseInt(msg) === 0 ) {\r\n\t\t\t\t\talert(ctUsersCheck.ct_bad_csv);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar url = URL.createObjectURL(new Blob([msg]));\r\n\r\n\t\t\t\t\tvar dummy = document.createElement('a');\r\n\t\t\t\t\tdummy.href = url;\r\n\t\t\t\t\tdummy.download = ctUsersCheck.ct_csv_filename + '.csv';\r\n\r\n\t\t\t\t\tdocument.body.appendChild(dummy);\r\n\t\t\t\t\tdummy.click();\r\n\t\t\t\t}\r\n\t\t\t\tjQuery('.' + e.target.id).removeClass('disabled');\r\n\t\t\t\tjQuery('.spinner').css('visibility', 'hidden');\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\t// Delete inserted users\r\n\tjQuery(\".ct_insert_users\").click(function( e ){\r\n\t\tct_insert_users();\r\n\t});\r\n\r\n\t// Insert users\r\n\tjQuery(\".ct_insert_users__delete\").click(function( e ){\r\n\t\tct_insert_users( true );\r\n\t});\r\n\r\n\t// Delete all spam users\r\n\tjQuery(\".ct_delete_all_users\").click(function( e ){\r\n\r\n\t\tif ( ! confirm( ctUsersCheck.ct_confirm_deletion_all ) )\r\n\t\t\treturn false;\r\n\r\n\t\tct_delete_all_users( e );\r\n\r\n\t});\r\n\r\n\tfunction ct_insert_users(delete_accounts){\r\n\r\n\t\tdelete_accounts = delete_accounts || null;\r\n\r\n\t\tvar data = {\r\n\t\t\t'action': 'ajax_insert_users',\r\n\t\t\t'security': ct_ajax_nonce\r\n\t\t};\r\n\r\n\t\tif(delete_accounts)\r\n\t\t\tdata['delete'] = true;\r\n\r\n\t\tjQuery.ajax({\r\n\t\t\ttype: \"POST\",\r\n\t\t\turl: ajaxurl,\r\n\t\t\tdata: data,\r\n\t\t\tsuccess: function(msg){\r\n\t\t\t\tif(delete_accounts)\r\n\t\t\t\t\talert('Deleted ' + msg + ' users');\r\n\t\t\t\telse\r\n\t\t\t\t\talert('Inserted ' + msg + ' users');\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n});"],"names":["String","prototype","printf","formatted","this","arg","arguments","before_formatted","substring","indexOf","after_formatted","length","ct_working","document","cookie","ct_new_check","ct_cooling_down_flag","ct_close_animate","ct_accurate_check","ct_pause","ct_prev_accurate","ctUsersCheck","ct_prev_from","ct_prev_till","ct_cool_down_time","ct_requests_counter","ct_max_requests","ct_ajax_nonce","ct_users_total","ct_users_checked","ct_users_spam","ct_users_bad","ct_unchecked","ct_date_from","ct_date_till","apbct_cookie__get","names","prefixes","split","forEach","item","i","arr","curr","trim","name","all","prefix","apbct_get_cookie","animate_comment","to","id","jQuery","fadeTo","ct_clear_users","from","till","is","val","data","action","security","ajax","type","url","ajaxurl","success","msg","ct_show_users_info","ct_send_users","ct_cooling_down_toggle","setTimeout","check_amount","new_check","unchecked","amount","new_href","status_string","parseJSON","parseInt","error","confirm","error_message","location","href","end","hide","checked","spam","bad","ct_status_string","ct_status_string_warning","html","jqXHR","textStatus","errorThrown","show","timeout","message","ct_toggle_depended","obj","secondary","depended","prop","removeProp","ct_start_check","continue_check","alert","ct_delete_all_users","e","target","addClass","css","removeClass","ready","state","on","datepicker","setDefaults","regional","dates","dateFormat","maxDate","changeMonth","changeYear","showAnim","onSelect","selectedDate","option","instance","date","parseDate","settings","_defaults","not","ct_insert_users","delete_accounts","click","ct_check","accurate","JSON","stringify","ct_id","attr","fadeOut","remove","user_id","status","filename","ct_csv_filename","dummy","ct_bad_csv","URL","createObjectURL","Blob","createElement","download","body","appendChild","ct_confirm_deletion_all"],"mappings":"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"}
|
lib/Cleantalk.php
CHANGED
@@ -1,540 +1,540 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Cleantalk base class
|
5 |
-
*
|
6 |
-
* @version 2.2
|
7 |
-
* @package Cleantalk
|
8 |
-
* @subpackage Base
|
9 |
-
* @author Cleantalk team (welcome@cleantalk.org)
|
10 |
-
* @copyright (C) 2014 CleanTalk team (http://cleantalk.org)
|
11 |
-
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
12 |
-
* @see https://github.com/CleanTalk/php-antispam
|
13 |
-
*
|
14 |
-
*/
|
15 |
-
class Cleantalk {
|
16 |
-
|
17 |
-
/*
|
18 |
-
* Use Wordpress built-in API
|
19 |
-
*/
|
20 |
-
public $use_bultin_api = false;
|
21 |
-
|
22 |
-
/**
|
23 |
-
* Maximum data size in bytes
|
24 |
-
* @var int
|
25 |
-
*/
|
26 |
-
private $dataMaxSise = 32768;
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Data compression rate
|
30 |
-
* @var int
|
31 |
-
*/
|
32 |
-
private $compressRate = 6;
|
33 |
-
|
34 |
-
/**
|
35 |
-
* Server connection timeout in seconds
|
36 |
-
* @var int
|
37 |
-
*/
|
38 |
-
private $server_timeout = 15;
|
39 |
-
|
40 |
-
/**
|
41 |
-
* Cleantalk server url
|
42 |
-
* @var string
|
43 |
-
*/
|
44 |
-
public $server_url = null;
|
45 |
-
|
46 |
-
/**
|
47 |
-
* Last work url
|
48 |
-
* @var string
|
49 |
-
*/
|
50 |
-
public $work_url = null;
|
51 |
-
|
52 |
-
/**
|
53 |
-
* WOrk url ttl
|
54 |
-
* @var int
|
55 |
-
*/
|
56 |
-
public $server_ttl = null;
|
57 |
-
|
58 |
-
/**
|
59 |
-
* Time wotk_url changer
|
60 |
-
* @var int
|
61 |
-
*/
|
62 |
-
public $server_changed = null;
|
63 |
-
|
64 |
-
/**
|
65 |
-
* Flag is change server url
|
66 |
-
* @var bool
|
67 |
-
*/
|
68 |
-
public $server_change = false;
|
69 |
-
|
70 |
-
/**
|
71 |
-
* Codepage of the data
|
72 |
-
* @var bool
|
73 |
-
*/
|
74 |
-
public $data_codepage = null;
|
75 |
-
|
76 |
-
/**
|
77 |
-
* API version to use
|
78 |
-
* @var string
|
79 |
-
*/
|
80 |
-
public $api_version = '/api2.0';
|
81 |
-
|
82 |
-
/**
|
83 |
-
* Use https connection to servers
|
84 |
-
* @var bool
|
85 |
-
*/
|
86 |
-
public $ssl_on = false;
|
87 |
-
|
88 |
-
/**
|
89 |
-
* Path to SSL certificate
|
90 |
-
* @var string
|
91 |
-
*/
|
92 |
-
public $ssl_path = '';
|
93 |
-
|
94 |
-
/**
|
95 |
-
* Minimal server response in miliseconds to catch the server
|
96 |
-
*
|
97 |
-
*/
|
98 |
-
public $min_server_timeout = 50;
|
99 |
-
|
100 |
-
/**
|
101 |
-
* Maximal server response in miliseconds to catch the server
|
102 |
-
*
|
103 |
-
*/
|
104 |
-
public $max_server_timeout = 1500;
|
105 |
-
|
106 |
-
/**
|
107 |
-
* Function checks whether it is possible to publish the message
|
108 |
-
*
|
109 |
-
* @param CleantalkRequest $request
|
110 |
-
*
|
111 |
-
* @return bool|CleantalkResponse
|
112 |
-
*/
|
113 |
-
public function isAllowMessage(CleantalkRequest $request) {
|
114 |
-
$msg = $this->createMsg('check_message', $request);
|
115 |
-
return $this->httpRequest($msg);
|
116 |
-
}
|
117 |
-
|
118 |
-
/**
|
119 |
-
* Function checks whether it is possible to publish the message
|
120 |
-
*
|
121 |
-
* @param CleantalkRequest $request
|
122 |
-
*
|
123 |
-
* @return bool|CleantalkResponse
|
124 |
-
*/
|
125 |
-
public function isAllowUser(CleantalkRequest $request) {
|
126 |
-
$msg = $this->createMsg('check_newuser', $request);
|
127 |
-
return $this->httpRequest($msg);
|
128 |
-
}
|
129 |
-
|
130 |
-
/**
|
131 |
-
* Function sends the results of manual moderation
|
132 |
-
*
|
133 |
-
* @param CleantalkRequest $request
|
134 |
-
*
|
135 |
-
* @return bool|CleantalkResponse
|
136 |
-
*/
|
137 |
-
public function sendFeedback(CleantalkRequest $request) {
|
138 |
-
$msg = $this->createMsg('send_feedback', $request);
|
139 |
-
return $this->httpRequest($msg);
|
140 |
-
}
|
141 |
-
|
142 |
-
/**
|
143 |
-
* Create msg for cleantalk server
|
144 |
-
* @param string $method
|
145 |
-
* @param CleantalkRequest $request
|
146 |
-
* @return CleantalkRequest
|
147 |
-
*/
|
148 |
-
private function createMsg($method, CleantalkRequest $request) {
|
149 |
-
|
150 |
-
switch ($method) {
|
151 |
-
case 'check_message':
|
152 |
-
// Convert strings to UTF8
|
153 |
-
$request->message = CleantalkHelper::toUTF8($request->message, $this->data_codepage);
|
154 |
-
$request->example = CleantalkHelper::toUTF8($request->example, $this->data_codepage);
|
155 |
-
$request->sender_email = CleantalkHelper::toUTF8($request->sender_email, $this->data_codepage);
|
156 |
-
$request->sender_nickname = CleantalkHelper::toUTF8($request->sender_nickname, $this->data_codepage);
|
157 |
-
$request->message = $this->compressData($request->message);
|
158 |
-
$request->example = $this->compressData($request->example);
|
159 |
-
break;
|
160 |
-
|
161 |
-
case 'check_newuser':
|
162 |
-
// Convert strings to UTF8
|
163 |
-
$request->sender_email = CleantalkHelper::toUTF8($request->sender_email, $this->data_codepage);
|
164 |
-
$request->sender_nickname = CleantalkHelper::toUTF8($request->sender_nickname, $this->data_codepage);
|
165 |
-
break;
|
166 |
-
|
167 |
-
case 'send_feedback':
|
168 |
-
if (is_array($request->feedback)) {
|
169 |
-
$request->feedback = implode(';', $request->feedback);
|
170 |
-
}
|
171 |
-
break;
|
172 |
-
}
|
173 |
-
|
174 |
-
// Removing non UTF8 characters from request, because non UTF8 or malformed characters break json_encode().
|
175 |
-
foreach ($request as $param => $value) {
|
176 |
-
if(is_array($request->$param) || is_string($request->$param))
|
177 |
-
$request->$param = CleantalkHelper::removeNonUTF8($value);
|
178 |
-
}
|
179 |
-
|
180 |
-
$request->method_name = $method;
|
181 |
-
$request->message = is_array($request->message) ? json_encode($request->message) : $request->message;
|
182 |
-
|
183 |
-
// Wiping cleantalk's headers but, not for send_feedback
|
184 |
-
if($request->method_name != 'send_feedback'){
|
185 |
-
|
186 |
-
$ct_tmp = apache_request_headers();
|
187 |
-
|
188 |
-
if(isset($ct_tmp['Cookie']))
|
189 |
-
$cookie_name = 'Cookie';
|
190 |
-
elseif(isset($ct_tmp['cookie']))
|
191 |
-
$cookie_name = 'cookie';
|
192 |
-
else
|
193 |
-
$cookie_name = 'COOKIE';
|
194 |
-
|
195 |
-
$ct_tmp[$cookie_name] = preg_replace(array(
|
196 |
-
'/\s?ct_checkjs=[a-z0-9]*[^;]*;?/',
|
197 |
-
'/\s?ct_timezone=.{0,1}\d{1,2}[^;]*;?/',
|
198 |
-
'/\s?ct_pointer_data=.*5D[^;]*;?/',
|
199 |
-
'/\s?apbct_timestamp=\d*[^;]*;?/',
|
200 |
-
'/\s?apbct_site_landing_ts=\d*[^;]*;?/',
|
201 |
-
'/\s?apbct_cookies_test=%7B.*%7D[^;]*;?/',
|
202 |
-
'/\s?apbct_prev_referer=http.*?[^;]*;?/',
|
203 |
-
'/\s?ct_cookies_test=.*?[^;]*;?/',
|
204 |
-
'/\s?ct_ps_timestamp=.*?[^;]*;?/',
|
205 |
-
'/\s?ct_fkp_timestamp=\d*?[^;]*;?/',
|
206 |
-
'/\s?ct_sfw_pass_key=\d*?[^;]*;?/',
|
207 |
-
'/\s?apbct_page_hits=\d*?[^;]*;?/',
|
208 |
-
'/\s?apbct_visible_fields_count=\d*?[^;]*;?/',
|
209 |
-
'/\s?apbct_visible_fields=%7B.*%7D[^;]*;?/',
|
210 |
-
), '', $ct_tmp[$cookie_name]);
|
211 |
-
$request->all_headers = json_encode($ct_tmp);
|
212 |
-
}
|
213 |
-
|
214 |
-
return $request;
|
215 |
-
}
|
216 |
-
|
217 |
-
/**
|
218 |
-
* Compress data and encode to base64
|
219 |
-
* @param type string
|
220 |
-
* @return string
|
221 |
-
*/
|
222 |
-
private function compressData($data = null){
|
223 |
-
|
224 |
-
if (strlen($data) > $this->dataMaxSise && function_exists('gzencode') && function_exists('base64_encode')){
|
225 |
-
|
226 |
-
$localData = gzencode($data, $this->compressRate, FORCE_GZIP);
|
227 |
-
|
228 |
-
if ($localData === false)
|
229 |
-
return $data;
|
230 |
-
|
231 |
-
$localData = base64_encode($localData);
|
232 |
-
|
233 |
-
if ($localData === false)
|
234 |
-
return $data;
|
235 |
-
|
236 |
-
return $localData;
|
237 |
-
}
|
238 |
-
|
239 |
-
return $data;
|
240 |
-
}
|
241 |
-
|
242 |
-
/**
|
243 |
-
* httpRequest
|
244 |
-
* @param $msg
|
245 |
-
* @return boolean|\CleantalkResponse
|
246 |
-
*/
|
247 |
-
private function httpRequest($msg) {
|
248 |
-
|
249 |
-
// Using current server without changing it
|
250 |
-
$result = !empty($this->work_url) && ($this->server_changed + $this->server_ttl > time())
|
251 |
-
? $this->sendRequest($msg, $this->work_url, $this->server_timeout)
|
252 |
-
: false;
|
253 |
-
|
254 |
-
// Changing server
|
255 |
-
if ($result === false || (is_object($result) && $result->errno != 0)) {
|
256 |
-
|
257 |
-
// Split server url to parts
|
258 |
-
preg_match("/^(https?:\/\/)([^\/:]+)(.*)/i", $this->server_url, $matches);
|
259 |
-
|
260 |
-
$url_protocol = isset($matches[1]) ? $matches[1] : '';
|
261 |
-
$url_host = isset($matches[2]) ? $matches[2] : '';
|
262 |
-
$url_suffix = isset($matches[3]) ? $matches[3] : '';
|
263 |
-
|
264 |
-
$servers = $this->get_servers_ip($url_host);
|
265 |
-
|
266 |
-
// Loop until find work server
|
267 |
-
foreach ($servers as $server) {
|
268 |
-
|
269 |
-
$dns = CleantalkHelper::ip__resolve__cleantalks($server['ip']);
|
270 |
-
if(!$dns)
|
271 |
-
continue;
|
272 |
-
|
273 |
-
$this->work_url = $url_protocol.$dns.$url_suffix;
|
274 |
-
$this->server_ttl = $server['ttl'];
|
275 |
-
|
276 |
-
$result = $this->sendRequest($msg, $this->work_url, $this->server_timeout);
|
277 |
-
|
278 |
-
if ($result !== false && $result->errno === 0) {
|
279 |
-
$this->server_change = true;
|
280 |
-
break;
|
281 |
-
}
|
282 |
-
}
|
283 |
-
}
|
284 |
-
|
285 |
-
$response = new CleantalkResponse(null, $result);
|
286 |
-
|
287 |
-
if (!empty($this->data_codepage) && $this->data_codepage !== 'UTF-8') {
|
288 |
-
if (!empty($response->comment))
|
289 |
-
$response->comment = $this->stringFromUTF8($response->comment, $this->data_codepage);
|
290 |
-
if (!empty($response->errstr))
|
291 |
-
$response->errstr = $this->stringFromUTF8($response->errstr, $this->data_codepage);
|
292 |
-
if (!empty($response->sms_error_text))
|
293 |
-
$response->sms_error_text = $this->stringFromUTF8($response->sms_error_text, $this->data_codepage);
|
294 |
-
}
|
295 |
-
|
296 |
-
return $response;
|
297 |
-
}
|
298 |
-
|
299 |
-
/**
|
300 |
-
* Function DNS request
|
301 |
-
* @param $host
|
302 |
-
* @return array
|
303 |
-
*/
|
304 |
-
public function get_servers_ip($host)
|
305 |
-
{
|
306 |
-
if (!isset($host))
|
307 |
-
return null;
|
308 |
-
|
309 |
-
$servers = array();
|
310 |
-
|
311 |
-
// Get DNS records about URL
|
312 |
-
if (function_exists('dns_get_record')) {
|
313 |
-
$records = dns_get_record($host, DNS_A);
|
314 |
-
if ($records !== FALSE) {
|
315 |
-
foreach ($records as $server) {
|
316 |
-
$servers[] = $server;
|
317 |
-
}
|
318 |
-
}
|
319 |
-
}
|
320 |
-
|
321 |
-
// Another try if first failed
|
322 |
-
if (count($servers) == 0 && function_exists('gethostbynamel')) {
|
323 |
-
$records = gethostbynamel($host);
|
324 |
-
if ($records !== FALSE) {
|
325 |
-
foreach ($records as $server) {
|
326 |
-
$servers[] = array(
|
327 |
-
"ip" => $server,
|
328 |
-
"host" => $host,
|
329 |
-
"ttl" => $this->server_ttl
|
330 |
-
);
|
331 |
-
}
|
332 |
-
}
|
333 |
-
}
|
334 |
-
|
335 |
-
// If couldn't get records
|
336 |
-
if (count($servers) == 0){
|
337 |
-
|
338 |
-
$servers[] = array(
|
339 |
-
"ip" => null,
|
340 |
-
"host" => $host,
|
341 |
-
"ttl" => $this->server_ttl
|
342 |
-
);
|
343 |
-
|
344 |
-
// If records recieved
|
345 |
-
} else {
|
346 |
-
|
347 |
-
$tmp = null;
|
348 |
-
$fast_server_found = false;
|
349 |
-
|
350 |
-
foreach ($servers as $server) {
|
351 |
-
|
352 |
-
if ($fast_server_found) {
|
353 |
-
$ping = $this->max_server_timeout;
|
354 |
-
} else {
|
355 |
-
$ping = $this->httpPing($server['ip']);
|
356 |
-
$ping = $ping * 1000;
|
357 |
-
}
|
358 |
-
|
359 |
-
$tmp[$ping] = $server;
|
360 |
-
|
361 |
-
$fast_server_found = $ping < $this->min_server_timeout ? true : false;
|
362 |
-
|
363 |
-
}
|
364 |
-
|
365 |
-
if (count($tmp)){
|
366 |
-
ksort($tmp);
|
367 |
-
$response = $tmp;
|
368 |
-
}
|
369 |
-
|
370 |
-
}
|
371 |
-
|
372 |
-
return empty($response) ? null : $response;
|
373 |
-
}
|
374 |
-
|
375 |
-
/**
|
376 |
-
* Function to check response time
|
377 |
-
* param string
|
378 |
-
* @return int
|
379 |
-
*/
|
380 |
-
function httpPing($host){
|
381 |
-
|
382 |
-
// Skip localhost ping cause it raise error at fsockopen.
|
383 |
-
// And return minimun value
|
384 |
-
if ($host == 'localhost')
|
385 |
-
return 0.001;
|
386 |
-
|
387 |
-
$starttime = microtime(true);
|
388 |
-
$file = @fsockopen ($host, 80, $errno, $errstr, $this->max_server_timeout/1000);
|
389 |
-
$stoptime = microtime(true);
|
390 |
-
|
391 |
-
if (!$file) {
|
392 |
-
$status = $this->max_server_timeout/1000; // Site is down
|
393 |
-
} else {
|
394 |
-
fclose($file);
|
395 |
-
$status = ($stoptime - $starttime);
|
396 |
-
$status = round($status, 4);
|
397 |
-
}
|
398 |
-
|
399 |
-
return $status;
|
400 |
-
}
|
401 |
-
|
402 |
-
/**
|
403 |
-
* Send JSON request to servers
|
404 |
-
* @param $msg
|
405 |
-
* @return boolean|\CleantalkResponse
|
406 |
-
*/
|
407 |
-
private function sendRequest($data = null, $url, $server_timeout = 3)
|
408 |
-
{
|
409 |
-
$original_args = func_get_args();
|
410 |
-
// Convert to array
|
411 |
-
$data = (array)json_decode(json_encode($data), true);
|
412 |
-
|
413 |
-
//Cleaning from 'null' values
|
414 |
-
$tmp_data = array();
|
415 |
-
foreach($data as $key => $value){
|
416 |
-
if($value !== null)
|
417 |
-
$tmp_data[$key] = $value;
|
418 |
-
}
|
419 |
-
$data = $tmp_data;
|
420 |
-
unset($key, $value, $tmp_data);
|
421 |
-
|
422 |
-
// Convert to JSON
|
423 |
-
$data = json_encode($data);
|
424 |
-
|
425 |
-
if (isset($this->api_version)) {
|
426 |
-
$url = $url . $this->api_version;
|
427 |
-
}
|
428 |
-
|
429 |
-
$result = false;
|
430 |
-
$curl_error = null;
|
431 |
-
|
432 |
-
// Switching to secure connection
|
433 |
-
if ($this->ssl_on && !preg_match("/^https:/", $url)){
|
434 |
-
$url = preg_replace("/^(http)/i", "$1s", $url);
|
435 |
-
}
|
436 |
-
|
437 |
-
if($this->use_bultin_api){
|
438 |
-
|
439 |
-
$args = array(
|
440 |
-
'body' => $data,
|
441 |
-
'timeout' => $server_timeout,
|
442 |
-
'user-agent' => APBCT_AGENT.' '.get_bloginfo( 'url' ),
|
443 |
-
);
|
444 |
-
|
445 |
-
$result = wp_remote_post($url, $args);
|
446 |
-
|
447 |
-
if( is_wp_error( $result ) ) {
|
448 |
-
$errors = $result->get_error_message();
|
449 |
-
$result = false;
|
450 |
-
}else{
|
451 |
-
$result = wp_remote_retrieve_body($result);
|
452 |
-
}
|
453 |
-
|
454 |
-
}else{
|
455 |
-
|
456 |
-
if(function_exists('curl_init')) {
|
457 |
-
|
458 |
-
$ch = curl_init();
|
459 |
-
|
460 |
-
curl_setopt($ch, CURLOPT_URL, $url);
|
461 |
-
curl_setopt($ch, CURLOPT_TIMEOUT, $server_timeout);
|
462 |
-
curl_setopt($ch, CURLOPT_POST, 1);
|
463 |
-
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
464 |
-
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // receive server response ...
|
465 |
-
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); // resolve 'Expect: 100-continue' issue
|
466 |
-
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // see http://stackoverflow.com/a/23322368
|
467 |
-
|
468 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Disabling CA cert verivication and
|
469 |
-
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Disabling common name verification
|
470 |
-
|
471 |
-
if ($this->ssl_on && $this->ssl_path != '') {
|
472 |
-
curl_setopt($ch, CURLOPT_CAINFO, $this->ssl_path);
|
473 |
-
}
|
474 |
-
|
475 |
-
$result = curl_exec($ch);
|
476 |
-
if (!$result) {
|
477 |
-
$curl_error = curl_error($ch);
|
478 |
-
// Use SSL next time, if error occurs.
|
479 |
-
if(!$this->ssl_on){
|
480 |
-
$this->ssl_on = true;
|
481 |
-
return $this->sendRequest($original_args[0], $original_args[1], $server_timeout);
|
482 |
-
}
|
483 |
-
}
|
484 |
-
|
485 |
-
curl_close($ch);
|
486 |
-
}
|
487 |
-
}
|
488 |
-
|
489 |
-
if (!$result) {
|
490 |
-
$allow_url_fopen = ini_get('allow_url_fopen');
|
491 |
-
if (function_exists('file_get_contents') && isset($allow_url_fopen) && $allow_url_fopen == '1') {
|
492 |
-
$opts = array('http' =>
|
493 |
-
array(
|
494 |
-
'method' => 'POST',
|
495 |
-
'header' => "Content-Type: text/html\r\n",
|
496 |
-
'content' => $data,
|
497 |
-
'timeout' => $server_timeout
|
498 |
-
)
|
499 |
-
);
|
500 |
-
|
501 |
-
$context = stream_context_create($opts);
|
502 |
-
$result = @file_get_contents($url, false, $context);
|
503 |
-
}
|
504 |
-
}
|
505 |
-
|
506 |
-
if (!$result) {
|
507 |
-
$response = null;
|
508 |
-
$response['errno'] = 2;
|
509 |
-
if (!CleantalkHelper::is_json($result)) {
|
510 |
-
$response['errstr'] = 'Wrong server response format: ' . substr( $result, 100 );
|
511 |
-
}
|
512 |
-
else {
|
513 |
-
$response['errstr'] = $curl_error
|
514 |
-
? sprintf( "CURL error: '%s'", $curl_error )
|
515 |
-
: 'No CURL support compiled in';
|
516 |
-
$response['errstr'] .= ' or disabled allow_url_fopen in php.ini.';
|
517 |
-
}
|
518 |
-
$response = json_decode( json_encode( $response ) );
|
519 |
-
|
520 |
-
return $response;
|
521 |
-
}
|
522 |
-
|
523 |
-
$errstr = null;
|
524 |
-
$response = json_decode($result);
|
525 |
-
if ($result !== false && is_object($response)) {
|
526 |
-
$response->errno = 0;
|
527 |
-
$response->errstr = $errstr;
|
528 |
-
} else {
|
529 |
-
$errstr = 'Unknown response from ' . $url . '.' . ' ' . $result;
|
530 |
-
|
531 |
-
$response = null;
|
532 |
-
$response['errno'] = 1;
|
533 |
-
$response['errstr'] = $errstr;
|
534 |
-
$response = json_decode(json_encode($response));
|
535 |
-
}
|
536 |
-
|
537 |
-
|
538 |
-
return $response;
|
539 |
-
}
|
540 |
-
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Cleantalk base class
|
5 |
+
*
|
6 |
+
* @version 2.2
|
7 |
+
* @package Cleantalk
|
8 |
+
* @subpackage Base
|
9 |
+
* @author Cleantalk team (welcome@cleantalk.org)
|
10 |
+
* @copyright (C) 2014 CleanTalk team (http://cleantalk.org)
|
11 |
+
* @license GNU/GPL: http://www.gnu.org/copyleft/gpl.html
|
12 |
+
* @see https://github.com/CleanTalk/php-antispam
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
class Cleantalk {
|
16 |
+
|
17 |
+
/*
|
18 |
+
* Use Wordpress built-in API
|
19 |
+
*/
|
20 |
+
public $use_bultin_api = false;
|
21 |
+
|
22 |
+
/**
|
23 |
+
* Maximum data size in bytes
|
24 |
+
* @var int
|
25 |
+
*/
|
26 |
+
private $dataMaxSise = 32768;
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Data compression rate
|
30 |
+
* @var int
|
31 |
+
*/
|
32 |
+
private $compressRate = 6;
|
33 |
+
|
34 |
+
/**
|
35 |
+
* Server connection timeout in seconds
|
36 |
+
* @var int
|
37 |
+
*/
|
38 |
+
private $server_timeout = 15;
|
39 |
+
|
40 |
+
/**
|
41 |
+
* Cleantalk server url
|
42 |
+
* @var string
|
43 |
+
*/
|
44 |
+
public $server_url = null;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* Last work url
|
48 |
+
* @var string
|
49 |
+
*/
|
50 |
+
public $work_url = null;
|
51 |
+
|
52 |
+
/**
|
53 |
+
* WOrk url ttl
|
54 |
+
* @var int
|
55 |
+
*/
|
56 |
+
public $server_ttl = null;
|
57 |
+
|
58 |
+
/**
|
59 |
+
* Time wotk_url changer
|
60 |
+
* @var int
|
61 |
+
*/
|
62 |
+
public $server_changed = null;
|
63 |
+
|
64 |
+
/**
|
65 |
+
* Flag is change server url
|
66 |
+
* @var bool
|
67 |
+
*/
|
68 |
+
public $server_change = false;
|
69 |
+
|
70 |
+
/**
|
71 |
+
* Codepage of the data
|
72 |
+
* @var bool
|
73 |
+
*/
|
74 |
+
public $data_codepage = null;
|
75 |
+
|
76 |
+
/**
|
77 |
+
* API version to use
|
78 |
+
* @var string
|
79 |
+
*/
|
80 |
+
public $api_version = '/api2.0';
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Use https connection to servers
|
84 |
+
* @var bool
|
85 |
+
*/
|
86 |
+
public $ssl_on = false;
|
87 |
+
|
88 |
+
/**
|
89 |
+
* Path to SSL certificate
|
90 |
+
* @var string
|
91 |
+
*/
|
92 |
+
public $ssl_path = '';
|
93 |
+
|
94 |
+
/**
|
95 |
+
* Minimal server response in miliseconds to catch the server
|
96 |
+
*
|
97 |
+
*/
|
98 |
+
public $min_server_timeout = 50;
|
99 |
+
|
100 |
+
/**
|
101 |
+
* Maximal server response in miliseconds to catch the server
|
102 |
+
*
|
103 |
+
*/
|
104 |
+
public $max_server_timeout = 1500;
|
105 |
+
|
106 |
+
/**
|
107 |
+
* Function checks whether it is possible to publish the message
|
108 |
+
*
|
109 |
+
* @param CleantalkRequest $request
|
110 |
+
*
|
111 |
+
* @return bool|CleantalkResponse
|
112 |
+
*/
|
113 |
+
public function isAllowMessage(CleantalkRequest $request) {
|
114 |
+
$msg = $this->createMsg('check_message', $request);
|
115 |
+
return $this->httpRequest($msg);
|
116 |
+
}
|
117 |
+
|
118 |
+
/**
|
119 |
+
* Function checks whether it is possible to publish the message
|
120 |
+
*
|
121 |
+
* @param CleantalkRequest $request
|
122 |
+
*
|
123 |
+
* @return bool|CleantalkResponse
|
124 |
+
*/
|
125 |
+
public function isAllowUser(CleantalkRequest $request) {
|
126 |
+
$msg = $this->createMsg('check_newuser', $request);
|
127 |
+
return $this->httpRequest($msg);
|
128 |
+
}
|
129 |
+
|
130 |
+
/**
|
131 |
+
* Function sends the results of manual moderation
|
132 |
+
*
|
133 |
+
* @param CleantalkRequest $request
|
134 |
+
*
|
135 |
+
* @return bool|CleantalkResponse
|
136 |
+
*/
|
137 |
+
public function sendFeedback(CleantalkRequest $request) {
|
138 |
+
$msg = $this->createMsg('send_feedback', $request);
|
139 |
+
return $this->httpRequest($msg);
|
140 |
+
}
|
141 |
+
|
142 |
+
/**
|
143 |
+
* Create msg for cleantalk server
|
144 |
+
* @param string $method
|
145 |
+
* @param CleantalkRequest $request
|
146 |
+
* @return CleantalkRequest
|
147 |
+
*/
|
148 |
+
private function createMsg($method, CleantalkRequest $request) {
|
149 |
+
|
150 |
+
switch ($method) {
|
151 |
+
case 'check_message':
|
152 |
+
// Convert strings to UTF8
|
153 |
+
$request->message = CleantalkHelper::toUTF8($request->message, $this->data_codepage);
|
154 |
+
$request->example = CleantalkHelper::toUTF8($request->example, $this->data_codepage);
|
155 |
+
$request->sender_email = CleantalkHelper::toUTF8($request->sender_email, $this->data_codepage);
|
156 |
+
$request->sender_nickname = CleantalkHelper::toUTF8($request->sender_nickname, $this->data_codepage);
|
157 |
+
$request->message = $this->compressData($request->message);
|
158 |
+
$request->example = $this->compressData($request->example);
|
159 |
+
break;
|
160 |
+
|
161 |
+
case 'check_newuser':
|
162 |
+
// Convert strings to UTF8
|
163 |
+
$request->sender_email = CleantalkHelper::toUTF8($request->sender_email, $this->data_codepage);
|
164 |
+
$request->sender_nickname = CleantalkHelper::toUTF8($request->sender_nickname, $this->data_codepage);
|
165 |
+
break;
|
166 |
+
|
167 |
+
case 'send_feedback':
|
168 |
+
if (is_array($request->feedback)) {
|
169 |
+
$request->feedback = implode(';', $request->feedback);
|
170 |
+
}
|
171 |
+
break;
|
172 |
+
}
|
173 |
+
|
174 |
+
// Removing non UTF8 characters from request, because non UTF8 or malformed characters break json_encode().
|
175 |
+
foreach ($request as $param => $value) {
|
176 |
+
if(is_array($request->$param) || is_string($request->$param))
|
177 |
+
$request->$param = CleantalkHelper::removeNonUTF8($value);
|
178 |
+
}
|
179 |
+
|
180 |
+
$request->method_name = $method;
|
181 |
+
$request->message = is_array($request->message) ? json_encode($request->message) : $request->message;
|
182 |
+
|
183 |
+
// Wiping cleantalk's headers but, not for send_feedback
|
184 |
+
if($request->method_name != 'send_feedback'){
|
185 |
+
|
186 |
+
$ct_tmp = apache_request_headers();
|
187 |
+
|
188 |
+
if(isset($ct_tmp['Cookie']))
|
189 |
+
$cookie_name = 'Cookie';
|
190 |
+
elseif(isset($ct_tmp['cookie']))
|
191 |
+
$cookie_name = 'cookie';
|
192 |
+
else
|
193 |
+
$cookie_name = 'COOKIE';
|
194 |
+
|
195 |
+
$ct_tmp[$cookie_name] = preg_replace(array(
|
196 |
+
'/\s?ct_checkjs=[a-z0-9]*[^;]*;?/',
|
197 |
+
'/\s?ct_timezone=.{0,1}\d{1,2}[^;]*;?/',
|
198 |
+
'/\s?ct_pointer_data=.*5D[^;]*;?/',
|
199 |
+
'/\s?apbct_timestamp=\d*[^;]*;?/',
|
200 |
+
'/\s?apbct_site_landing_ts=\d*[^;]*;?/',
|
201 |
+
'/\s?apbct_cookies_test=%7B.*%7D[^;]*;?/',
|
202 |
+
'/\s?apbct_prev_referer=http.*?[^;]*;?/',
|
203 |
+
'/\s?ct_cookies_test=.*?[^;]*;?/',
|
204 |
+
'/\s?ct_ps_timestamp=.*?[^;]*;?/',
|
205 |
+
'/\s?ct_fkp_timestamp=\d*?[^;]*;?/',
|
206 |
+
'/\s?ct_sfw_pass_key=\d*?[^;]*;?/',
|
207 |
+
'/\s?apbct_page_hits=\d*?[^;]*;?/',
|
208 |
+
'/\s?apbct_visible_fields_count=\d*?[^;]*;?/',
|
209 |
+
'/\s?apbct_visible_fields=%7B.*%7D[^;]*;?/',
|
210 |
+
), '', $ct_tmp[$cookie_name]);
|
211 |
+
$request->all_headers = json_encode($ct_tmp);
|
212 |
+
}
|
213 |
+
|
214 |
+
return $request;
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
* Compress data and encode to base64
|
219 |
+
* @param type string
|
220 |
+
* @return string
|
221 |
+
*/
|
222 |
+
private function compressData($data = null){
|
223 |
+
|
224 |
+
if (strlen($data) > $this->dataMaxSise && function_exists('\gzencode') && function_exists('base64_encode')){
|
225 |
+
|
226 |
+
$localData = \gzencode($data, $this->compressRate, FORCE_GZIP);
|
227 |
+
|
228 |
+
if ($localData === false)
|
229 |
+
return $data;
|
230 |
+
|
231 |
+
$localData = base64_encode($localData);
|
232 |
+
|
233 |
+
if ($localData === false)
|
234 |
+
return $data;
|
235 |
+
|
236 |
+
return $localData;
|
237 |
+
}
|
238 |
+
|
239 |
+
return $data;
|
240 |
+
}
|
241 |
+
|
242 |
+
/**
|
243 |
+
* httpRequest
|
244 |
+
* @param $msg
|
245 |
+
* @return boolean|\CleantalkResponse
|
246 |
+
*/
|
247 |
+
private function httpRequest($msg) {
|
248 |
+
|
249 |
+
// Using current server without changing it
|
250 |
+
$result = !empty($this->work_url) && ($this->server_changed + $this->server_ttl > time())
|
251 |
+
? $this->sendRequest($msg, $this->work_url, $this->server_timeout)
|
252 |
+
: false;
|
253 |
+
|
254 |
+
// Changing server
|
255 |
+
if ($result === false || (is_object($result) && $result->errno != 0)) {
|
256 |
+
|
257 |
+
// Split server url to parts
|
258 |
+
preg_match("/^(https?:\/\/)([^\/:]+)(.*)/i", $this->server_url, $matches);
|
259 |
+
|
260 |
+
$url_protocol = isset($matches[1]) ? $matches[1] : '';
|
261 |
+
$url_host = isset($matches[2]) ? $matches[2] : '';
|
262 |
+
$url_suffix = isset($matches[3]) ? $matches[3] : '';
|
263 |
+
|
264 |
+
$servers = $this->get_servers_ip($url_host);
|
265 |
+
|
266 |
+
// Loop until find work server
|
267 |
+
foreach ($servers as $server) {
|
268 |
+
|
269 |
+
$dns = CleantalkHelper::ip__resolve__cleantalks($server['ip']);
|
270 |
+
if(!$dns)
|
271 |
+
continue;
|
272 |
+
|
273 |
+
$this->work_url = $url_protocol.$dns.$url_suffix;
|
274 |
+
$this->server_ttl = $server['ttl'];
|
275 |
+
|
276 |
+
$result = $this->sendRequest($msg, $this->work_url, $this->server_timeout);
|
277 |
+
|
278 |
+
if ($result !== false && $result->errno === 0) {
|
279 |
+
$this->server_change = true;
|
280 |
+
break;
|
281 |
+
}
|
282 |
+
}
|
283 |
+
}
|
284 |
+
|
285 |
+
$response = new CleantalkResponse(null, $result);
|
286 |
+
|
287 |
+
if (!empty($this->data_codepage) && $this->data_codepage !== 'UTF-8') {
|
288 |
+
if (!empty($response->comment))
|
289 |
+
$response->comment = $this->stringFromUTF8($response->comment, $this->data_codepage);
|
290 |
+
if (!empty($response->errstr))
|
291 |
+
$response->errstr = $this->stringFromUTF8($response->errstr, $this->data_codepage);
|
292 |
+
if (!empty($response->sms_error_text))
|
293 |
+
$response->sms_error_text = $this->stringFromUTF8($response->sms_error_text, $this->data_codepage);
|
294 |
+
}
|
295 |
+
|
296 |
+
return $response;
|
297 |
+
}
|
298 |
+
|
299 |
+
/**
|
300 |
+
* Function DNS request
|
301 |
+
* @param $host
|
302 |
+
* @return array
|
303 |
+
*/
|
304 |
+
public function get_servers_ip($host)
|
305 |
+
{
|
306 |
+
if (!isset($host))
|
307 |
+
return null;
|
308 |
+
|
309 |
+
$servers = array();
|
310 |
+
|
311 |
+
// Get DNS records about URL
|
312 |
+
if (function_exists('dns_get_record')) {
|
313 |
+
$records = dns_get_record($host, DNS_A);
|
314 |
+
if ($records !== FALSE) {
|
315 |
+
foreach ($records as $server) {
|
316 |
+
$servers[] = $server;
|
317 |
+
}
|
318 |
+
}
|
319 |
+
}
|
320 |
+
|
321 |
+
// Another try if first failed
|
322 |
+
if (count($servers) == 0 && function_exists('gethostbynamel')) {
|
323 |
+
$records = gethostbynamel($host);
|
324 |
+
if ($records !== FALSE) {
|
325 |
+
foreach ($records as $server) {
|
326 |
+
$servers[] = array(
|
327 |
+
"ip" => $server,
|
328 |
+
"host" => $host,
|
329 |
+
"ttl" => $this->server_ttl
|
330 |
+
);
|
331 |
+
}
|
332 |
+
}
|
333 |
+
}
|
334 |
+
|
335 |
+
// If couldn't get records
|
336 |
+
if (count($servers) == 0){
|
337 |
+
|
338 |
+
$servers[] = array(
|
339 |
+
"ip" => null,
|
340 |
+
"host" => $host,
|
341 |
+
"ttl" => $this->server_ttl
|
342 |
+
);
|
343 |
+
|
344 |
+
// If records recieved
|
345 |
+
} else {
|
346 |
+
|
347 |
+
$tmp = null;
|
348 |
+
$fast_server_found = false;
|
349 |
+
|
350 |
+
foreach ($servers as $server) {
|
351 |
+
|
352 |
+
if ($fast_server_found) {
|
353 |
+
$ping = $this->max_server_timeout;
|
354 |
+
} else {
|
355 |
+
$ping = $this->httpPing($server['ip']);
|
356 |
+
$ping = $ping * 1000;
|
357 |
+
}
|
358 |
+
|
359 |
+
$tmp[$ping] = $server;
|
360 |
+
|
361 |
+
$fast_server_found = $ping < $this->min_server_timeout ? true : false;
|
362 |
+
|
363 |
+
}
|
364 |
+
|
365 |
+
if (count($tmp)){
|
366 |
+
ksort($tmp);
|
367 |
+
$response = $tmp;
|
368 |
+
}
|
369 |
+
|
370 |
+
}
|
371 |
+
|
372 |
+
return empty($response) ? null : $response;
|
373 |
+
}
|
374 |
+
|
375 |
+
/**
|
376 |
+
* Function to check response time
|
377 |
+
* param string
|
378 |
+
* @return int
|
379 |
+
*/
|
380 |
+
function httpPing($host){
|
381 |
+
|
382 |
+
// Skip localhost ping cause it raise error at fsockopen.
|
383 |
+
// And return minimun value
|
384 |
+
if ($host == 'localhost')
|
385 |
+
return 0.001;
|
386 |
+
|
387 |
+
$starttime = microtime(true);
|
388 |
+
$file = @fsockopen ($host, 80, $errno, $errstr, $this->max_server_timeout/1000);
|
389 |
+
$stoptime = microtime(true);
|
390 |
+
|
391 |
+
if (!$file) {
|
392 |
+
$status = $this->max_server_timeout/1000; // Site is down
|
393 |
+
} else {
|
394 |
+
fclose($file);
|
395 |
+
$status = ($stoptime - $starttime);
|
396 |
+
$status = round($status, 4);
|
397 |
+
}
|
398 |
+
|
399 |
+
return $status;
|
400 |
+
}
|
401 |
+
|
402 |
+
/**
|
403 |
+
* Send JSON request to servers
|
404 |
+
* @param $msg
|
405 |
+
* @return boolean|\CleantalkResponse
|
406 |
+
*/
|
407 |
+
private function sendRequest($data = null, $url, $server_timeout = 3)
|
408 |
+
{
|
409 |
+
$original_args = func_get_args();
|
410 |
+
// Convert to array
|
411 |
+
$data = (array)json_decode(json_encode($data), true);
|
412 |
+
|
413 |
+
//Cleaning from 'null' values
|
414 |
+
$tmp_data = array();
|
415 |
+
foreach($data as $key => $value){
|
416 |
+
if($value !== null)
|
417 |
+
$tmp_data[$key] = $value;
|
418 |
+
}
|
419 |
+
$data = $tmp_data;
|
420 |
+
unset($key, $value, $tmp_data);
|
421 |
+
|
422 |
+
// Convert to JSON
|
423 |
+
$data = json_encode($data);
|
424 |
+
|
425 |
+
if (isset($this->api_version)) {
|
426 |
+
$url = $url . $this->api_version;
|
427 |
+
}
|
428 |
+
|
429 |
+
$result = false;
|
430 |
+
$curl_error = null;
|
431 |
+
|
432 |
+
// Switching to secure connection
|
433 |
+
if ($this->ssl_on && !preg_match("/^https:/", $url)){
|
434 |
+
$url = preg_replace("/^(http)/i", "$1s", $url);
|
435 |
+
}
|
436 |
+
|
437 |
+
if($this->use_bultin_api){
|
438 |
+
|
439 |
+
$args = array(
|
440 |
+
'body' => $data,
|
441 |
+
'timeout' => $server_timeout,
|
442 |
+
'user-agent' => APBCT_AGENT.' '.get_bloginfo( 'url' ),
|
443 |
+
);
|
444 |
+
|
445 |
+
$result = wp_remote_post($url, $args);
|
446 |
+
|
447 |
+
if( is_wp_error( $result ) ) {
|
448 |
+
$errors = $result->get_error_message();
|
449 |
+
$result = false;
|
450 |
+
}else{
|
451 |
+
$result = wp_remote_retrieve_body($result);
|
452 |
+
}
|
453 |
+
|
454 |
+
}else{
|
455 |
+
|
456 |
+
if(function_exists('curl_init')) {
|
457 |
+
|
458 |
+
$ch = curl_init();
|
459 |
+
|
460 |
+
curl_setopt($ch, CURLOPT_URL, $url);
|
461 |
+
curl_setopt($ch, CURLOPT_TIMEOUT, $server_timeout);
|
462 |
+
curl_setopt($ch, CURLOPT_POST, 1);
|
463 |
+
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
|
464 |
+
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // receive server response ...
|
465 |
+
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); // resolve 'Expect: 100-continue' issue
|
466 |
+
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); // see http://stackoverflow.com/a/23322368
|
467 |
+
|
468 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Disabling CA cert verivication and
|
469 |
+
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // Disabling common name verification
|
470 |
+
|
471 |
+
if ($this->ssl_on && $this->ssl_path != '') {
|
472 |
+
curl_setopt($ch, CURLOPT_CAINFO, $this->ssl_path);
|
473 |
+
}
|
474 |
+
|
475 |
+
$result = curl_exec($ch);
|
476 |
+
if (!$result) {
|
477 |
+
$curl_error = curl_error($ch);
|
478 |
+
// Use SSL next time, if error occurs.
|
479 |
+
if(!$this->ssl_on){
|
480 |
+
$this->ssl_on = true;
|
481 |
+
return $this->sendRequest($original_args[0], $original_args[1], $server_timeout);
|
482 |
+
}
|
483 |
+
}
|
484 |
+
|
485 |
+
curl_close($ch);
|
486 |
+
}
|
487 |
+
}
|
488 |
+
|
489 |
+
if (!$result) {
|
490 |
+
$allow_url_fopen = ini_get('allow_url_fopen');
|
491 |
+
if (function_exists('file_get_contents') && isset($allow_url_fopen) && $allow_url_fopen == '1') {
|
492 |
+
$opts = array('http' =>
|
493 |
+
array(
|
494 |
+
'method' => 'POST',
|
495 |
+
'header' => "Content-Type: text/html\r\n",
|
496 |
+
'content' => $data,
|
497 |
+
'timeout' => $server_timeout
|
498 |
+
)
|
499 |
+
);
|
500 |
+
|
501 |
+
$context = stream_context_create($opts);
|
502 |
+
$result = @file_get_contents($url, false, $context);
|
503 |
+
}
|
504 |
+
}
|
505 |
+
|
506 |
+
if (!$result) {
|
507 |
+
$response = null;
|
508 |
+
$response['errno'] = 2;
|
509 |
+
if (!CleantalkHelper::is_json($result)) {
|
510 |
+
$response['errstr'] = 'Wrong server response format: ' . substr( $result, 100 );
|
511 |
+
}
|
512 |
+
else {
|
513 |
+
$response['errstr'] = $curl_error
|
514 |
+
? sprintf( "CURL error: '%s'", $curl_error )
|
515 |
+
: 'No CURL support compiled in';
|
516 |
+
$response['errstr'] .= ' or disabled allow_url_fopen in php.ini.';
|
517 |
+
}
|
518 |
+
$response = json_decode( json_encode( $response ) );
|
519 |
+
|
520 |
+
return $response;
|
521 |
+
}
|
522 |
+
|
523 |
+
$errstr = null;
|
524 |
+
$response = json_decode($result);
|
525 |
+
if ($result !== false && is_object($response)) {
|
526 |
+
$response->errno = 0;
|
527 |
+
$response->errstr = $errstr;
|
528 |
+
} else {
|
529 |
+
$errstr = 'Unknown response from ' . $url . '.' . ' ' . $result;
|
530 |
+
|
531 |
+
$response = null;
|
532 |
+
$response['errno'] = 1;
|
533 |
+
$response['errstr'] = $errstr;
|
534 |
+
$response = json_decode(json_encode($response));
|
535 |
+
}
|
536 |
+
|
537 |
+
|
538 |
+
return $response;
|
539 |
+
}
|
540 |
+
}
|
lib/Cleantalk/Antispam/SFW.php
CHANGED
@@ -122,24 +122,40 @@ class SFW
|
|
122 |
$needles = array_unique( $needles );
|
123 |
|
124 |
$query = "SELECT
|
125 |
-
|
126 |
-
FROM "
|
127 |
-
WHERE network IN (". implode( ',', $needles ) .")
|
|
|
|
|
128 |
$this->db->set_query($query)->fetch();
|
129 |
|
130 |
-
if($this->db->result
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
}else{
|
144 |
$this->passed_ips[$origin] = array(
|
145 |
'ip' => $current_ip,
|
@@ -259,16 +275,16 @@ class SFW
|
|
259 |
|
260 |
if (preg_match('/multifiles/', $result['file_url'])) {
|
261 |
|
262 |
-
$gf = gzopen($result['file_url'], 'rb');
|
263 |
|
264 |
if ($gf) {
|
265 |
|
266 |
$file_urls = array();
|
267 |
|
268 |
-
while(!gzeof($gf))
|
269 |
-
$file_urls[] = trim(gzgets($gf, 1024));
|
270 |
|
271 |
-
gzclose($gf);
|
272 |
|
273 |
return Helper::http__request(
|
274 |
get_option('siteurl'),
|
@@ -304,19 +320,19 @@ class SFW
|
|
304 |
|
305 |
if(Helper::http__request($file_url, array(), 'get_code') === 200){ // Check if it's there
|
306 |
|
307 |
-
$gf = gzopen($file_url, 'rb');
|
308 |
|
309 |
if($gf){
|
310 |
|
311 |
-
if(!gzeof($gf)){
|
312 |
|
313 |
-
for($count_result = 0; !gzeof($gf); ){
|
314 |
|
315 |
$query = "INSERT INTO ".$this->data_table." VALUES %s";
|
316 |
|
317 |
-
for($i=0, $values = array(); APBCT_WRITE_LIMIT !== $i && !gzeof($gf); $i++, $count_result++){
|
318 |
|
319 |
-
$entry = trim(gzgets($gf, 1024));
|
320 |
|
321 |
if(empty($entry)) continue;
|
322 |
|
@@ -325,10 +341,11 @@ class SFW
|
|
325 |
// Cast result to int
|
326 |
$ip = preg_replace('/[^\d]*/', '', $entry[0]);
|
327 |
$mask = preg_replace('/[^\d]*/', '', $entry[1]);
|
|
|
328 |
|
329 |
if(!$ip || !$mask) continue;
|
330 |
|
331 |
-
$values[] = '('. $ip .','. $mask .')';
|
332 |
|
333 |
}
|
334 |
|
@@ -339,7 +356,7 @@ class SFW
|
|
339 |
|
340 |
}
|
341 |
|
342 |
-
gzclose($gf);
|
343 |
return $count_result;
|
344 |
|
345 |
}else
|
122 |
$needles = array_unique( $needles );
|
123 |
|
124 |
$query = "SELECT
|
125 |
+
network, mask, status
|
126 |
+
FROM " . $this->data_table . "
|
127 |
+
WHERE network IN (". implode( ',', $needles ) .")
|
128 |
+
AND network = " . $current_ip_v4 . " & mask
|
129 |
+
ORDER BY status DESC LIMIT 1;";
|
130 |
$this->db->set_query($query)->fetch();
|
131 |
|
132 |
+
if( ! empty( $this->db->result ) ){
|
133 |
+
|
134 |
+
if ( 1 == $this->db->result['status'] ) {
|
135 |
+
// It is the White Listed network - will be passed.
|
136 |
+
$this->passed_ips[$origin] = array(
|
137 |
+
'ip' => $current_ip,
|
138 |
+
);
|
139 |
+
$this->all_ips[$origin] = array(
|
140 |
+
'ip' => $current_ip,
|
141 |
+
'status' => 1,
|
142 |
+
);
|
143 |
+
break;
|
144 |
+
} else {
|
145 |
+
$this->pass = false;
|
146 |
+
$this->blocked_ips[$origin] = array(
|
147 |
+
'ip' => $current_ip,
|
148 |
+
'network' => long2ip($this->db->result['network']),
|
149 |
+
'mask' => Helper::ip__mask__long_to_number($this->db->result['mask']),
|
150 |
+
);
|
151 |
+
$this->all_ips[$origin] = array(
|
152 |
+
'ip' => $current_ip,
|
153 |
+
'network' => long2ip($this->db->result['network']),
|
154 |
+
'mask' => Helper::ip__mask__long_to_number($this->db->result['mask']),
|
155 |
+
'status' => -1,
|
156 |
+
);
|
157 |
+
}
|
158 |
+
|
159 |
}else{
|
160 |
$this->passed_ips[$origin] = array(
|
161 |
'ip' => $current_ip,
|
275 |
|
276 |
if (preg_match('/multifiles/', $result['file_url'])) {
|
277 |
|
278 |
+
$gf = \gzopen($result['file_url'], 'rb');
|
279 |
|
280 |
if ($gf) {
|
281 |
|
282 |
$file_urls = array();
|
283 |
|
284 |
+
while( ! \gzeof($gf) )
|
285 |
+
$file_urls[] = trim( \gzgets($gf, 1024) );
|
286 |
|
287 |
+
\gzclose($gf);
|
288 |
|
289 |
return Helper::http__request(
|
290 |
get_option('siteurl'),
|
320 |
|
321 |
if(Helper::http__request($file_url, array(), 'get_code') === 200){ // Check if it's there
|
322 |
|
323 |
+
$gf = \gzopen($file_url, 'rb');
|
324 |
|
325 |
if($gf){
|
326 |
|
327 |
+
if( ! \gzeof($gf) ){
|
328 |
|
329 |
+
for( $count_result = 0; ! \gzeof($gf); ){
|
330 |
|
331 |
$query = "INSERT INTO ".$this->data_table." VALUES %s";
|
332 |
|
333 |
+
for($i=0, $values = array(); APBCT_WRITE_LIMIT !== $i && ! \gzeof($gf); $i++, $count_result++){
|
334 |
|
335 |
+
$entry = trim( \gzgets($gf, 1024) );
|
336 |
|
337 |
if(empty($entry)) continue;
|
338 |
|
341 |
// Cast result to int
|
342 |
$ip = preg_replace('/[^\d]*/', '', $entry[0]);
|
343 |
$mask = preg_replace('/[^\d]*/', '', $entry[1]);
|
344 |
+
$private = isset($entry[2]) ? $entry[2] : 0;
|
345 |
|
346 |
if(!$ip || !$mask) continue;
|
347 |
|
348 |
+
$values[] = '('. $ip .','. $mask .','. $private .')';
|
349 |
|
350 |
}
|
351 |
|
356 |
|
357 |
}
|
358 |
|
359 |
+
\gzclose($gf);
|
360 |
return $count_result;
|
361 |
|
362 |
}else
|
lib/CleantalkSFW.php
CHANGED
@@ -112,9 +112,9 @@ class CleantalkSFW extends Cleantalk\Antispam\SFW
|
|
112 |
$debug = '<h1>IP and Networks</h1>'
|
113 |
. var_export($this->all_ips, true)
|
114 |
.'<h1>Blocked IPs</h1>'
|
115 |
-
. var_export($this->passed_ips, true)
|
116 |
-
.'<h1>Passed IPs</h1>'
|
117 |
. var_export($this->blocked_ips, true)
|
|
|
|
|
118 |
. '<h1>Headers</h1>'
|
119 |
. var_export(apache_request_headers(), true)
|
120 |
. '<h1>REMOTE_ADDR</h1>'
|
112 |
$debug = '<h1>IP and Networks</h1>'
|
113 |
. var_export($this->all_ips, true)
|
114 |
.'<h1>Blocked IPs</h1>'
|
|
|
|
|
115 |
. var_export($this->blocked_ips, true)
|
116 |
+
.'<h1>Passed IPs</h1>'
|
117 |
+
. var_export($this->passed_ips, true)
|
118 |
. '<h1>Headers</h1>'
|
119 |
. var_export(apache_request_headers(), true)
|
120 |
. '<h1>REMOTE_ADDR</h1>'
|
readme.txt
CHANGED
@@ -4,14 +4,14 @@ Tags: spam, antispam, woocommerce, comments, firewall
|
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.4
|
6 |
Requires PHP: 5.4
|
7 |
-
Stable tag: 5.
|
8 |
License: GPLv2
|
9 |
|
10 |
Spam protection, anti-spam, firewall, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
-
**Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, any WordPress registrations & contact forms and themes. Just
|
15 |
|
16 |
No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
|
17 |
|
@@ -574,6 +574,21 @@ If your website has forms that send data to external sources, you can enable opt
|
|
574 |
|
575 |
== Changelog ==
|
576 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
577 |
= 5.137.1 April 29 2020 =
|
578 |
* Fix: Call to undefined function wp_get_current_user().
|
579 |
* Fix: "Capture buffer" setting, YOAST sitemap.
|
@@ -1600,7 +1615,7 @@ If your website has forms that send data to external sources, you can enable opt
|
|
1600 |
= 5.40.2 2016-05-11 =
|
1601 |
* Improved account status check logic.
|
1602 |
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
1603 |
-
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me
|
1604 |
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
1605 |
|
1606 |
= 5.40.1 2016-04-28 =
|
@@ -3081,7 +3096,7 @@ If your website has forms that send data to external sources, you can enable opt
|
|
3081 |
= 5.40.2 2016-05-11 =
|
3082 |
* Improved account status check logic.
|
3083 |
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
3084 |
-
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me
|
3085 |
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
3086 |
|
3087 |
= 5.40.1 2016-04-28 =
|
4 |
Requires at least: 3.0
|
5 |
Tested up to: 5.4
|
6 |
Requires PHP: 5.4
|
7 |
+
Stable tag: 5.138
|
8 |
License: GPLv2
|
9 |
|
10 |
Spam protection, anti-spam, firewall, premium plugin. No spam comments & users, no spam contact form & WooCommerce anti-spam.
|
11 |
|
12 |
== Description ==
|
13 |
|
14 |
+
**Supports: Contact Form 7, Contact Form by WPForms, Ninja Forms, Gravity Forms, MailChimp, Formidable forms, WooCommerce, JetPack comments and contact form, BuddyPress, bbPress, S2Member, MailPoet, wpDiscuz, any WordPress registrations & contact forms and themes. Just set up and forget the spam!**
|
15 |
|
16 |
No CAPTCHA, no questions, no animal counting, no puzzles, no math and no spam bots. Universal AntiSpam plugin.
|
17 |
|
574 |
|
575 |
== Changelog ==
|
576 |
|
577 |
+
= 5.138 May 14 2020 =
|
578 |
+
* Fix: Scan users fixed.
|
579 |
+
* Fix: Notice fixed (Creating default object from empty value).
|
580 |
+
* Fix: Creating table for SFW data for child blogs on WPMS.
|
581 |
+
* Upd: SFW query optimized.
|
582 |
+
* Fix: Adding cleantalk_spamscan_logs table for each blog when updating from 5.137.2.
|
583 |
+
* New: White Lists for SFW implemented.
|
584 |
+
* Fix: correct comments checking status text.
|
585 |
+
* Fix: Users scan. Reducing memory load.
|
586 |
+
* Fix: "Capture Buffer" settings. The issue with YoastSEO.
|
587 |
+
* Fix: SFW query fixed.
|
588 |
+
* Fix: SFW die page fixed.
|
589 |
+
* Fix: Membermouse API false positives.
|
590 |
+
* Fix: gz*() functions calling from global namespace for now.
|
591 |
+
|
592 |
= 5.137.1 April 29 2020 =
|
593 |
* Fix: Call to undefined function wp_get_current_user().
|
594 |
* Fix: "Capture buffer" setting, YOAST sitemap.
|
1615 |
= 5.40.2 2016-05-11 =
|
1616 |
* Improved account status check logic.
|
1617 |
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
1618 |
+
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
1619 |
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
1620 |
|
1621 |
= 5.40.1 2016-04-28 =
|
3096 |
= 5.40.2 2016-05-11 =
|
3097 |
* Improved account status check logic.
|
3098 |
* Fixed issue with double anti-spam tests for FastSecure contact forms.
|
3099 |
+
* Fixed issue with nulled JavaScript variables assigned from backend. This issue might me occurred on standart WordPress registration form and with failed JavaScript spam test.
|
3100 |
* Fixed issue with session_start() with PHP sessions stored in memcache.
|
3101 |
|
3102 |
= 5.40.1 2016-04-28 =
|