iobroker.imap 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +69 -0
- package/admin/blockly.js +878 -0
- package/admin/i18n/de/translations.json +54 -0
- package/admin/i18n/en/translations.json +54 -0
- package/admin/i18n/es/translations.json +54 -0
- package/admin/i18n/fr/translations.json +54 -0
- package/admin/i18n/it/translations.json +54 -0
- package/admin/i18n/nl/translations.json +54 -0
- package/admin/i18n/pl/translations.json +54 -0
- package/admin/i18n/pt/translations.json +54 -0
- package/admin/i18n/ru/translations.json +54 -0
- package/admin/i18n/uk/translations.json +54 -0
- package/admin/i18n/zh-cn/translations.json +54 -0
- package/admin/imap.png +0 -0
- package/admin/img/email.png +0 -0
- package/admin/img/fernbedienung.png +0 -0
- package/admin/img/html.png +0 -0
- package/admin/index_m.html +40 -0
- package/admin/jsonConfig.json +283 -0
- package/io-package.json +169 -0
- package/lib/adapter-config.d.ts +19 -0
- package/lib/helper.js +980 -0
- package/lib/listener.js +424 -0
- package/lib/translator.js +1926 -0
- package/main.js +1148 -0
- package/package.json +84 -0
package/admin/blockly.js
ADDED
|
@@ -0,0 +1,878 @@
|
|
|
1
|
+
/* eslint-disable no-var */
|
|
2
|
+
/* eslint-disable no-undef */
|
|
3
|
+
// @ts-nocheck
|
|
4
|
+
"use strict";
|
|
5
|
+
|
|
6
|
+
if (typeof goog !== "undefined") {
|
|
7
|
+
goog.provide("Blockly.JavaScript.Sendto");
|
|
8
|
+
goog.require("Blockly.JavaScript");
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
Blockly.Translate =
|
|
12
|
+
Blockly.Translate ||
|
|
13
|
+
function (word, lang) {
|
|
14
|
+
lang = lang || systemLang;
|
|
15
|
+
if (Blockly.Words && Blockly.Words[word]) {
|
|
16
|
+
return Blockly.Words[word][lang] || Blockly.Words[word].en;
|
|
17
|
+
} else {
|
|
18
|
+
return word;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
/// --- SendTo imap --------------------------------------------------
|
|
23
|
+
Blockly.Words["imap"] = {
|
|
24
|
+
en: "IMAP",
|
|
25
|
+
de: "IMAP",
|
|
26
|
+
ru: "ИМАП",
|
|
27
|
+
pt: "IMAPEL",
|
|
28
|
+
nl: "IMAP",
|
|
29
|
+
fr: "IMAP",
|
|
30
|
+
it: "IMAP",
|
|
31
|
+
es: "IMAP",
|
|
32
|
+
pl: "IMAP",
|
|
33
|
+
uk: "ІМ'Я",
|
|
34
|
+
"zh-cn": "IMAP",
|
|
35
|
+
};
|
|
36
|
+
Blockly.Words["imap_search"] = {
|
|
37
|
+
en: "Search",
|
|
38
|
+
de: "Suche",
|
|
39
|
+
ru: "Поиск",
|
|
40
|
+
pt: "Pesquisar",
|
|
41
|
+
nl: "Zoek",
|
|
42
|
+
fr: "Recherche",
|
|
43
|
+
it: "Ricerca",
|
|
44
|
+
es: "Buscar",
|
|
45
|
+
pl: "Search Search",
|
|
46
|
+
uk: "Пошук",
|
|
47
|
+
"zh-cn": "建 议",
|
|
48
|
+
};
|
|
49
|
+
Blockly.Words["imap_fetch"] = {
|
|
50
|
+
en: "Use FETCH direct (without search)",
|
|
51
|
+
de: "Verwende FETCH direkt (ohne Suche)",
|
|
52
|
+
ru: "Используйте FETCH прямой (без поиска)",
|
|
53
|
+
pt: "Use FETCH direto (sem pesquisa)",
|
|
54
|
+
nl: "Gebruik FETCH direct",
|
|
55
|
+
fr: "Utilisez FETCH direct (sans recherche)",
|
|
56
|
+
it: "Utilizzare FETCH direttamente (senza ricerca)",
|
|
57
|
+
es: "Use FETCH directo (sin búsqueda)",
|
|
58
|
+
pl: "Wykorzystywanie FETCH (bez wyszukiwania)",
|
|
59
|
+
uk: "Використовуйте FETCH прямо (без пошуку)",
|
|
60
|
+
"zh-cn": "FETCH 直接用途(未经查询)",
|
|
61
|
+
};
|
|
62
|
+
Blockly.Words["imap_bodies"] = {
|
|
63
|
+
en: "BODIES:",
|
|
64
|
+
de: "BODIES:",
|
|
65
|
+
ru: "ТЕЛА:",
|
|
66
|
+
pt: "ÓRGÃOS:",
|
|
67
|
+
nl: "BODIES:",
|
|
68
|
+
fr: "ORGANES :",
|
|
69
|
+
it: "BODIES:",
|
|
70
|
+
es: "ÓRGANOS:",
|
|
71
|
+
pl: "BODIES:",
|
|
72
|
+
uk: "БОДИ:",
|
|
73
|
+
"zh-cn": "BODIES:",
|
|
74
|
+
};
|
|
75
|
+
Blockly.Words["imap_flags"] = {
|
|
76
|
+
en: "Flag action (addFlags, delFlags or setFlags).",
|
|
77
|
+
de: "Flaggenaktion (addFlags, delFlags oder setFlags.).",
|
|
78
|
+
ru: "Флаг действия (addFlags, delFlags или setFlags.).",
|
|
79
|
+
pt: "Ação da bandeira (addFlags, delFlags ou setFlags.).",
|
|
80
|
+
nl: "Flag actie (addFlags, delFlags of setFlags).",
|
|
81
|
+
fr: "Action du drapeau (addFlags, delFlags ou setFlags.).",
|
|
82
|
+
it: "Azione della bandiera (addFlags, delFlags o setFlags.).",
|
|
83
|
+
es: "Acción de bandera (addFlags, delFlags o setFlags.).",
|
|
84
|
+
pl: "Flaga (addFlags, delFlags lub setFlags).",
|
|
85
|
+
uk: "Прапор дії (addFlags, delFlags або setFlags.).",
|
|
86
|
+
"zh-cn": "滞后行动(滞后、冲绳或四国).",
|
|
87
|
+
};
|
|
88
|
+
Blockly.Words["imap_flagtype"] = {
|
|
89
|
+
en: "Set Flags",
|
|
90
|
+
de: "Flaggen festlegen",
|
|
91
|
+
ru: "Установите флаги",
|
|
92
|
+
pt: "Conjunto de bandeiras",
|
|
93
|
+
nl: "Set Flags",
|
|
94
|
+
fr: "Set Drapeaux",
|
|
95
|
+
it: "Set Bandiere",
|
|
96
|
+
es: "Set Flags",
|
|
97
|
+
pl: "Flaga",
|
|
98
|
+
uk: "Комплект Прапорів",
|
|
99
|
+
"zh-cn": "A. 排减量",
|
|
100
|
+
};
|
|
101
|
+
Blockly.Words["imap_tooltip_flags"] = {
|
|
102
|
+
en: "Flags available (Seen,Answered,Flagged,Deleted or Draft)",
|
|
103
|
+
de: "Flaggen verfügbar (Seen,Answered,Flagged,Deleted oder Draft)",
|
|
104
|
+
ru: "Имеющиеся флаги (Seen,Answered,Flagged,Deleted или Draft)",
|
|
105
|
+
pt: "Bandeiras disponíveis (Seen,Answered,Flagged,Deleted ou Draft)",
|
|
106
|
+
nl: "Vlaggen beschikbaar (Seen,Answered,Flagged,Deleted of Draft)",
|
|
107
|
+
fr: "Drapeaux disponibles (Envoyé,Réponse,Draps ou Draft)",
|
|
108
|
+
it: "Bandiere disponibili (Vendita,Risposta,Flagged,Deleted o Draft)",
|
|
109
|
+
es: "Banderas disponibles (ver,Respuesta,Flagged,Deleted o Draft)",
|
|
110
|
+
pl: "Flagi dostępne (Seen,Answered,Flagged,Deleted lub Draft)",
|
|
111
|
+
uk: "Прапори доступні (Seen,Answered,Flagged,Deleted або Draft)",
|
|
112
|
+
"zh-cn": "可用的滞留(见、Answered、Flag、注释、手或空洞无见)",
|
|
113
|
+
};
|
|
114
|
+
Blockly.Words["imap_seqno"] = {
|
|
115
|
+
en: "Sequence number",
|
|
116
|
+
de: "Sequenznummer",
|
|
117
|
+
ru: "Номер последовательности",
|
|
118
|
+
pt: "Número de sequência",
|
|
119
|
+
nl: "Vertaling:",
|
|
120
|
+
fr: "Numéro de séquence",
|
|
121
|
+
it: "Numero di sequenza",
|
|
122
|
+
es: "Número de secuencia",
|
|
123
|
+
pl: "Liczba sekwencjonacyjna",
|
|
124
|
+
uk: "Кількість місць",
|
|
125
|
+
"zh-cn": "离职人数",
|
|
126
|
+
};
|
|
127
|
+
Blockly.Words["imap_choose"] = {
|
|
128
|
+
en: "select mailbox",
|
|
129
|
+
de: "Postfach auswählen",
|
|
130
|
+
ru: "выбрать почтовый ящик",
|
|
131
|
+
pt: "selecionar caixa de correio",
|
|
132
|
+
nl: "kies postbus",
|
|
133
|
+
fr: "sélectionner la boîte aux lettres",
|
|
134
|
+
it: "selezionare casella postale",
|
|
135
|
+
es: "selecto buzón de correo",
|
|
136
|
+
pl: "mailbox",
|
|
137
|
+
uk: "виберіть поштову скриньку",
|
|
138
|
+
"zh-cn": "选择邮件箱",
|
|
139
|
+
};
|
|
140
|
+
Blockly.Words["imap_max"] = {
|
|
141
|
+
en: "max. emails",
|
|
142
|
+
de: "max. e-mails",
|
|
143
|
+
ru: "макс. email",
|
|
144
|
+
pt: "max. e-mails",
|
|
145
|
+
nl: "max. e-mails",
|
|
146
|
+
fr: "max. e-mails",
|
|
147
|
+
it: "max. e-mail",
|
|
148
|
+
es: "max. correos electrónicos",
|
|
149
|
+
pl: "max. e-mail",
|
|
150
|
+
uk: "макс. новини",
|
|
151
|
+
"zh-cn": "页: 1 电子邮件",
|
|
152
|
+
};
|
|
153
|
+
Blockly.Words["imap_all"] = {
|
|
154
|
+
en: "All",
|
|
155
|
+
de: "Alle",
|
|
156
|
+
ru: "Все",
|
|
157
|
+
pt: "Todos",
|
|
158
|
+
nl: "Allen",
|
|
159
|
+
fr: "Tout",
|
|
160
|
+
it: "Tutti",
|
|
161
|
+
es: "Todos",
|
|
162
|
+
pl: "Cały",
|
|
163
|
+
uk: "Всі",
|
|
164
|
+
"zh-cn": "一. 导言",
|
|
165
|
+
};
|
|
166
|
+
Blockly.Words["imap_name"] = {
|
|
167
|
+
en: "IMAP mailbox",
|
|
168
|
+
de: "IMAP Mailbox",
|
|
169
|
+
ru: "IMAP почтовый ящик",
|
|
170
|
+
pt: "Caixa de correio IMAP",
|
|
171
|
+
nl: "IMAP mailbox",
|
|
172
|
+
fr: "Boîte aux lettres IMAP",
|
|
173
|
+
it: "IMAP mailbox",
|
|
174
|
+
es: "Buzón de correo IMAP",
|
|
175
|
+
pl: "IMAP mailbox",
|
|
176
|
+
uk: "Поштова скринька IMAP",
|
|
177
|
+
"zh-cn": "IMAP 邮件箱",
|
|
178
|
+
};
|
|
179
|
+
Blockly.Words["imap_mailparser"] = {
|
|
180
|
+
en: "Use Mailparser",
|
|
181
|
+
de: "Mailparser verwenden",
|
|
182
|
+
ru: "Используйте Mailparser",
|
|
183
|
+
pt: "Use o Mailparser",
|
|
184
|
+
nl: "Gebruik Mailparser",
|
|
185
|
+
fr: "Utiliser Mailparser",
|
|
186
|
+
it: "Utilizzare Mailparser",
|
|
187
|
+
es: "Use Mailparser",
|
|
188
|
+
pl: "Mailparser",
|
|
189
|
+
uk: "Використовуйте підписку",
|
|
190
|
+
"zh-cn": "使用邮件",
|
|
191
|
+
};
|
|
192
|
+
Blockly.Words["imap_log"] = {
|
|
193
|
+
en: "Loglevel",
|
|
194
|
+
de: "Loglevel",
|
|
195
|
+
ru: "Войти",
|
|
196
|
+
pt: "Nível de log",
|
|
197
|
+
nl: "Loglevel",
|
|
198
|
+
fr: "Loglevel",
|
|
199
|
+
it: "Livello di registro",
|
|
200
|
+
es: "Nivel de estudios",
|
|
201
|
+
pl: "Logos",
|
|
202
|
+
uk: "Увійти",
|
|
203
|
+
"zh-cn": "后勤问题",
|
|
204
|
+
};
|
|
205
|
+
Blockly.Words["imap_log_none"] = {
|
|
206
|
+
en: "none",
|
|
207
|
+
de: "kein",
|
|
208
|
+
ru: "нет",
|
|
209
|
+
pt: "nenhum",
|
|
210
|
+
nl: "niemand",
|
|
211
|
+
fr: "aucun",
|
|
212
|
+
it: "nessuno",
|
|
213
|
+
es: "ninguno",
|
|
214
|
+
pl: "żaden",
|
|
215
|
+
uk: "немає",
|
|
216
|
+
"zh-cn": "无",
|
|
217
|
+
};
|
|
218
|
+
Blockly.Words["imap_log_info"] = {
|
|
219
|
+
en: "info",
|
|
220
|
+
de: "info",
|
|
221
|
+
ru: "инфо",
|
|
222
|
+
pt: "info",
|
|
223
|
+
nl: "info",
|
|
224
|
+
fr: "info",
|
|
225
|
+
it: "info",
|
|
226
|
+
es: "info",
|
|
227
|
+
pl: "info",
|
|
228
|
+
uk: "контакти",
|
|
229
|
+
"zh-cn": "导 言",
|
|
230
|
+
};
|
|
231
|
+
Blockly.Words["imap_log_debug"] = {
|
|
232
|
+
en: "debug",
|
|
233
|
+
de: "debug",
|
|
234
|
+
ru: "дебаг",
|
|
235
|
+
pt: "depuração",
|
|
236
|
+
nl: "debug",
|
|
237
|
+
fr: "debug",
|
|
238
|
+
it: "debug",
|
|
239
|
+
es: "debug",
|
|
240
|
+
pl: "debug",
|
|
241
|
+
uk: "напляскване",
|
|
242
|
+
"zh-cn": "黑暗",
|
|
243
|
+
};
|
|
244
|
+
Blockly.Words["imap_log_warn"] = {
|
|
245
|
+
en: "warn",
|
|
246
|
+
de: "warnen",
|
|
247
|
+
ru: "предупреждение",
|
|
248
|
+
pt: "avisem",
|
|
249
|
+
nl: "waarschuwing",
|
|
250
|
+
fr: "prévenir",
|
|
251
|
+
it: "avvertire avvertire",
|
|
252
|
+
es: "warn",
|
|
253
|
+
pl: "ostrzegać",
|
|
254
|
+
uk: "про нас",
|
|
255
|
+
"zh-cn": "战争",
|
|
256
|
+
};
|
|
257
|
+
Blockly.Words["imap_log_error"] = {
|
|
258
|
+
en: "error",
|
|
259
|
+
de: "fehler",
|
|
260
|
+
ru: "ошибка",
|
|
261
|
+
pt: "erro",
|
|
262
|
+
nl: "error",
|
|
263
|
+
fr: "erreur",
|
|
264
|
+
it: "errore",
|
|
265
|
+
es: "error",
|
|
266
|
+
pl: "błąd",
|
|
267
|
+
uk: "про нас",
|
|
268
|
+
"zh-cn": "错误",
|
|
269
|
+
};
|
|
270
|
+
Blockly.Words["imap_anyInstance"] = {
|
|
271
|
+
en: "All Instances",
|
|
272
|
+
de: "Alle Instanzen",
|
|
273
|
+
ru: "Все Instances",
|
|
274
|
+
pt: "Todas as instâncias",
|
|
275
|
+
nl: "Alle instanties",
|
|
276
|
+
fr: "All Instances",
|
|
277
|
+
it: "Tutti i ricorsi",
|
|
278
|
+
es: "All Instances",
|
|
279
|
+
pl: "All Instances (ang.)",
|
|
280
|
+
uk: "Всі Інстанції",
|
|
281
|
+
"zh-cn": "所有案件",
|
|
282
|
+
};
|
|
283
|
+
Blockly.Words["imap_tooltip"] = {
|
|
284
|
+
en: "Change search query",
|
|
285
|
+
de: "Suchanfrage ändern",
|
|
286
|
+
ru: "Изменить запрос поиска",
|
|
287
|
+
pt: "Alterar consulta de pesquisa",
|
|
288
|
+
nl: "Verander de zoektocht",
|
|
289
|
+
fr: "Changer de recherche query",
|
|
290
|
+
it: "Cambia query di ricerca",
|
|
291
|
+
es: "Cambiar la consulta de búsqueda",
|
|
292
|
+
pl: "Wyszukiwanie",
|
|
293
|
+
uk: "Зміна запиту запиту",
|
|
294
|
+
"zh-cn": "改变搜寻",
|
|
295
|
+
};
|
|
296
|
+
Blockly.Words["imap_tooltip_request"] = {
|
|
297
|
+
en: "Own search query",
|
|
298
|
+
de: "Eigene Suchanfrage",
|
|
299
|
+
ru: "Собственный поисковый запрос",
|
|
300
|
+
pt: "Própria consulta de pesquisa",
|
|
301
|
+
nl: "Eigen zoektocht",
|
|
302
|
+
fr: "Own search query",
|
|
303
|
+
it: "Ricerca propria query",
|
|
304
|
+
es: "Own search query",
|
|
305
|
+
pl: "Wyszukiwarka",
|
|
306
|
+
uk: "Власний пошуковий запит",
|
|
307
|
+
"zh-cn": "查询",
|
|
308
|
+
};
|
|
309
|
+
Blockly.Words["imap_help"] = {
|
|
310
|
+
en: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
311
|
+
de: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
312
|
+
ru: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
313
|
+
pt: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
314
|
+
nl: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
315
|
+
fr: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
316
|
+
it: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
317
|
+
es: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
318
|
+
pl: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
319
|
+
uk: "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
320
|
+
"zh-cn": "https://github.com/Lucky-ESA/ioBroker.imap/blob/master/README.md",
|
|
321
|
+
};
|
|
322
|
+
Blockly.Words["imap_with_result"] = {
|
|
323
|
+
en: "with result",
|
|
324
|
+
de: "mit ergebnis",
|
|
325
|
+
ru: "с результатом",
|
|
326
|
+
pt: "com resultado",
|
|
327
|
+
nl: "met resultaat",
|
|
328
|
+
fr: "avec résultat",
|
|
329
|
+
it: "con risultato",
|
|
330
|
+
es: "con resultado",
|
|
331
|
+
pl: "wynik",
|
|
332
|
+
uk: "з результатом",
|
|
333
|
+
"zh-cn": "结果",
|
|
334
|
+
};
|
|
335
|
+
Blockly.Words["imap_data"] = {
|
|
336
|
+
en: "Emails data",
|
|
337
|
+
de: "E-Mail-Daten",
|
|
338
|
+
ru: "Данные по электронной почте",
|
|
339
|
+
pt: "Dados de e-mail",
|
|
340
|
+
nl: "E-mails",
|
|
341
|
+
fr: "Emails data",
|
|
342
|
+
it: "Dati e-mail",
|
|
343
|
+
es: "Datos de correo electrónico",
|
|
344
|
+
pl: "Data emaili",
|
|
345
|
+
uk: "Дані електронної пошти",
|
|
346
|
+
"zh-cn": "电子邮件数据",
|
|
347
|
+
};
|
|
348
|
+
Blockly.Words["imap_data_json"] = {
|
|
349
|
+
en: "Emails as JSON",
|
|
350
|
+
de: "E-Mails als JSON",
|
|
351
|
+
ru: "Email как JSON",
|
|
352
|
+
pt: "Emails como JSON",
|
|
353
|
+
nl: "E-mails als JSON",
|
|
354
|
+
fr: "Courriels comme JSON",
|
|
355
|
+
it: "E-mail come JSON",
|
|
356
|
+
es: "Correos electrónicos como JSON",
|
|
357
|
+
pl: "Email jako JSON",
|
|
358
|
+
uk: "Електронна пошта: json",
|
|
359
|
+
"zh-cn": "Email as JSON",
|
|
360
|
+
};
|
|
361
|
+
Blockly.Words["imap_data_seqno"] = {
|
|
362
|
+
en: "Last sequence numbers",
|
|
363
|
+
de: "Letzte Sequenznummern",
|
|
364
|
+
ru: "Последние номера последовательности",
|
|
365
|
+
pt: "Últimos números de sequência",
|
|
366
|
+
nl: "Laatste sequenties",
|
|
367
|
+
fr: "Derniers numéros de séquence",
|
|
368
|
+
it: "Ultimo numero di sequenza",
|
|
369
|
+
es: "Últimos números de secuencia",
|
|
370
|
+
pl: "Liczba ostatnia",
|
|
371
|
+
uk: "Останні номери послідовності",
|
|
372
|
+
"zh-cn": "最后一组",
|
|
373
|
+
};
|
|
374
|
+
Blockly.Sendto.blocks["imap"] =
|
|
375
|
+
'<block type="imap">' +
|
|
376
|
+
' <value name="INSTANCE">' +
|
|
377
|
+
" </value>" +
|
|
378
|
+
' <value name="IMAPNAME">' +
|
|
379
|
+
" </value>" +
|
|
380
|
+
' <value name="SEARCH">' +
|
|
381
|
+
' <shadow type="text">' +
|
|
382
|
+
' <field name="TEXT">["UNSEEN"]</field>' +
|
|
383
|
+
" </shadow>" +
|
|
384
|
+
" </value>" +
|
|
385
|
+
' <value name="MAX">' +
|
|
386
|
+
' <shadow type="math_number">' +
|
|
387
|
+
' <field name="NUM">20</field>' +
|
|
388
|
+
" </shadow>" +
|
|
389
|
+
" </value>" +
|
|
390
|
+
' <value name="LOG">' +
|
|
391
|
+
" </value>" +
|
|
392
|
+
"</block>";
|
|
393
|
+
|
|
394
|
+
Blockly.Blocks["imap"] = {
|
|
395
|
+
init: function () {
|
|
396
|
+
var options_user = [];
|
|
397
|
+
var options_instance = [];
|
|
398
|
+
options_user.push([Blockly.Translate("imap_all"), "all"]);
|
|
399
|
+
if (typeof main !== "undefined" && main.instances) {
|
|
400
|
+
for (var i = 0; i < main.instances.length; i++) {
|
|
401
|
+
var m = main.instances[i].match(/^system.adapter.imap.(\d+)$/);
|
|
402
|
+
if (m) {
|
|
403
|
+
var n = parseInt(m[1], 10);
|
|
404
|
+
options_instance.push(["imap." + n, "." + n]);
|
|
405
|
+
if (main.objects[main.instances[i]].native.hosts) {
|
|
406
|
+
for (var a = 0; a < main.objects[main.instances[i]].native.hosts.length; a++) {
|
|
407
|
+
//Checking active in the main.js.
|
|
408
|
+
var id = main.objects[main.instances[i]].native.hosts[a].user;
|
|
409
|
+
options_user.push([n + "." + id, id]);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
this.appendDummyInput("INSTANCE")
|
|
417
|
+
.appendField(Blockly.Translate("imap"))
|
|
418
|
+
.appendField(new Blockly.FieldDropdown(options_instance), "INSTANCE");
|
|
419
|
+
this.appendDummyInput("IMAPNAME")
|
|
420
|
+
.appendField(Blockly.Translate("imap_name"))
|
|
421
|
+
.appendField(new Blockly.FieldDropdown(options_user), "IMAPNAME");
|
|
422
|
+
|
|
423
|
+
this.appendValueInput("SEARCH").appendField(Blockly.Translate("imap_search"));
|
|
424
|
+
|
|
425
|
+
this.appendValueInput("MAX").appendField(Blockly.Translate("imap_max"));
|
|
426
|
+
|
|
427
|
+
this.appendDummyInput("LOG")
|
|
428
|
+
.appendField(Blockly.Translate("imap_log"))
|
|
429
|
+
.appendField(
|
|
430
|
+
new Blockly.FieldDropdown([
|
|
431
|
+
[Blockly.Translate("imap_log_none"), ""],
|
|
432
|
+
[Blockly.Translate("imap_log_info"), "log"],
|
|
433
|
+
[Blockly.Translate("imap_log_debug"), "debug"],
|
|
434
|
+
[Blockly.Translate("imap_log_warn"), "warn"],
|
|
435
|
+
[Blockly.Translate("imap_log_error"), "error"],
|
|
436
|
+
]),
|
|
437
|
+
"LOG",
|
|
438
|
+
);
|
|
439
|
+
|
|
440
|
+
this.setInputsInline(false);
|
|
441
|
+
this.setPreviousStatement(true, null);
|
|
442
|
+
this.setNextStatement(true, null);
|
|
443
|
+
|
|
444
|
+
this.setColour(Blockly.Sendto.HUE);
|
|
445
|
+
this.setTooltip(Blockly.Translate("imap_tooltip"));
|
|
446
|
+
this.setHelpUrl(Blockly.Translate("imap_help"));
|
|
447
|
+
},
|
|
448
|
+
};
|
|
449
|
+
|
|
450
|
+
Blockly.JavaScript["imap"] = function (block) {
|
|
451
|
+
var dropdown_instance = block.getFieldValue("INSTANCE");
|
|
452
|
+
var logLevel = block.getFieldValue("LOG");
|
|
453
|
+
var value_name = block.getFieldValue("IMAPNAME");
|
|
454
|
+
var value_search = Blockly.JavaScript.valueToCode(block, "SEARCH", Blockly.JavaScript.ORDER_ATOMIC);
|
|
455
|
+
var value_max = Blockly.JavaScript.valueToCode(block, "MAX", Blockly.JavaScript.ORDER_ATOMIC);
|
|
456
|
+
|
|
457
|
+
var logText;
|
|
458
|
+
if (logLevel) {
|
|
459
|
+
logText =
|
|
460
|
+
"console." + logLevel + '("imap: " + ' + value_search + " + " + value_max + " + " + value_name + ");\n";
|
|
461
|
+
} else {
|
|
462
|
+
logText = "";
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
return (
|
|
466
|
+
'sendTo("imap' +
|
|
467
|
+
dropdown_instance +
|
|
468
|
+
'", "getBlockly", {search: ' +
|
|
469
|
+
value_search +
|
|
470
|
+
", max: " +
|
|
471
|
+
value_max +
|
|
472
|
+
", device: '" +
|
|
473
|
+
value_name +
|
|
474
|
+
"'});\n" +
|
|
475
|
+
logText
|
|
476
|
+
);
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
Blockly.Sendto.blocks["imap_request"] =
|
|
480
|
+
'<block type="imap_request">' +
|
|
481
|
+
' <value name="INSTANCE">' +
|
|
482
|
+
" </value>" +
|
|
483
|
+
' <value name="IMAPNAME">' +
|
|
484
|
+
" </value>" +
|
|
485
|
+
' <value name="SEARCH">' +
|
|
486
|
+
' <shadow type="text">' +
|
|
487
|
+
' <field name="TEXT">["ALL", ["SINCE", "May 20, 2022"]]</field>' +
|
|
488
|
+
" </shadow>" +
|
|
489
|
+
" </value>" +
|
|
490
|
+
' <value name="FETCH">' +
|
|
491
|
+
' <shadow type="text">' +
|
|
492
|
+
' <field name="TEXT">{"fetch": false, "seqno": [1,2,3,4]}</field>' +
|
|
493
|
+
" </shadow>" +
|
|
494
|
+
" </value>" +
|
|
495
|
+
' <value name="BODIES">' +
|
|
496
|
+
' <shadow type="text">' +
|
|
497
|
+
' <field name="TEXT">{bodies: "", markSeen: false}</field>' +
|
|
498
|
+
" </shadow>" +
|
|
499
|
+
" </value>" +
|
|
500
|
+
' <value name="MAX">' +
|
|
501
|
+
' <shadow type="math_number">' +
|
|
502
|
+
' <field name="NUM">20</field>' +
|
|
503
|
+
" </shadow>" +
|
|
504
|
+
" </value>" +
|
|
505
|
+
' <value name="MAILPARSER">' +
|
|
506
|
+
" </value>" +
|
|
507
|
+
' <value name="LOG">' +
|
|
508
|
+
" </value>" +
|
|
509
|
+
' <value name="STATEMENT">' +
|
|
510
|
+
" </value>" +
|
|
511
|
+
"</block>";
|
|
512
|
+
|
|
513
|
+
Blockly.Blocks["imap_request"] = {
|
|
514
|
+
init: function () {
|
|
515
|
+
var options_user = [];
|
|
516
|
+
var options_instance = [];
|
|
517
|
+
options_user.push([Blockly.Translate("imap_choose"), "all"]);
|
|
518
|
+
if (typeof main !== "undefined" && main.instances) {
|
|
519
|
+
for (var i = 0; i < main.instances.length; i++) {
|
|
520
|
+
var m = main.instances[i].match(/^system.adapter.imap.(\d+)$/);
|
|
521
|
+
if (m) {
|
|
522
|
+
var n = parseInt(m[1], 10);
|
|
523
|
+
options_instance.push(["imap." + n, "." + n]);
|
|
524
|
+
if (main.objects[main.instances[i]].native.hosts) {
|
|
525
|
+
for (var a = 0; a < main.objects[main.instances[i]].native.hosts.length; a++) {
|
|
526
|
+
//Checking active in the main.js.
|
|
527
|
+
var id = main.objects[main.instances[i]].native.hosts[a].user;
|
|
528
|
+
options_user.push([n + "." + id, id]);
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
this.appendDummyInput("INSTANCE")
|
|
536
|
+
.appendField(Blockly.Translate("imap"))
|
|
537
|
+
.appendField(new Blockly.FieldDropdown(options_instance), "INSTANCE");
|
|
538
|
+
|
|
539
|
+
this.appendDummyInput("IMAPNAME")
|
|
540
|
+
.appendField(Blockly.Translate("imap_name"))
|
|
541
|
+
.appendField(new Blockly.FieldDropdown(options_user), "IMAPNAME");
|
|
542
|
+
|
|
543
|
+
this.appendValueInput("SEARCH").appendField(Blockly.Translate("imap_search"));
|
|
544
|
+
|
|
545
|
+
this.appendValueInput("FETCH").appendField(Blockly.Translate("imap_fetch"));
|
|
546
|
+
|
|
547
|
+
this.appendValueInput("BODIES").appendField(Blockly.Translate("imap_bodies"));
|
|
548
|
+
|
|
549
|
+
this.appendValueInput("MAX").appendField(Blockly.Translate("imap_max"));
|
|
550
|
+
|
|
551
|
+
this.appendDummyInput("MAILPARSER")
|
|
552
|
+
.appendField(Blockly.Translate("imap_mailparser"))
|
|
553
|
+
.appendField(new Blockly.FieldCheckbox("TRUE"), "MAILPARSER");
|
|
554
|
+
|
|
555
|
+
this.appendDummyInput("LOG")
|
|
556
|
+
.appendField(Blockly.Translate("imap_log"))
|
|
557
|
+
.appendField(
|
|
558
|
+
new Blockly.FieldDropdown([
|
|
559
|
+
[Blockly.Translate("imap_log_none"), ""],
|
|
560
|
+
[Blockly.Translate("imap_log_info"), "log"],
|
|
561
|
+
[Blockly.Translate("imap_log_debug"), "debug"],
|
|
562
|
+
[Blockly.Translate("imap_log_warn"), "warn"],
|
|
563
|
+
[Blockly.Translate("imap_log_error"), "error"],
|
|
564
|
+
]),
|
|
565
|
+
"LOG",
|
|
566
|
+
);
|
|
567
|
+
this.appendStatementInput("STATEMENT").setCheck(null);
|
|
568
|
+
|
|
569
|
+
this.setInputsInline(false);
|
|
570
|
+
this.setPreviousStatement(true, null);
|
|
571
|
+
this.setNextStatement(true, null);
|
|
572
|
+
|
|
573
|
+
this.setColour(Blockly.Sendto.HUE);
|
|
574
|
+
this.setTooltip(Blockly.Translate("imap_tooltip_request"));
|
|
575
|
+
this.setHelpUrl(Blockly.Translate("imap_help"));
|
|
576
|
+
},
|
|
577
|
+
};
|
|
578
|
+
|
|
579
|
+
Blockly.JavaScript["imap_request"] = function (block) {
|
|
580
|
+
var dropdown_instance = block.getFieldValue("INSTANCE");
|
|
581
|
+
var logLevel = block.getFieldValue("LOG");
|
|
582
|
+
var value_name = block.getFieldValue("IMAPNAME");
|
|
583
|
+
var value_search = Blockly.JavaScript.valueToCode(block, "SEARCH", Blockly.JavaScript.ORDER_ATOMIC);
|
|
584
|
+
var value_fetch = Blockly.JavaScript.valueToCode(block, "FETCH", Blockly.JavaScript.ORDER_ATOMIC);
|
|
585
|
+
var value_bodie = Blockly.JavaScript.valueToCode(block, "BODIES", Blockly.JavaScript.ORDER_ATOMIC);
|
|
586
|
+
var value_max = Blockly.JavaScript.valueToCode(block, "MAX", Blockly.JavaScript.ORDER_ATOMIC);
|
|
587
|
+
var value_parse = block.getFieldValue("MAILPARSER");
|
|
588
|
+
value_parse = value_parse === "TRUE" || value_parse === "true" || value_parse === true;
|
|
589
|
+
|
|
590
|
+
var para_fetch = "";
|
|
591
|
+
if (value_fetch !== null && value_fetch !== "") {
|
|
592
|
+
if (typeof value_fetch === "object") {
|
|
593
|
+
para_fetch = " JSON.parse(" + JSON.stringify(value_fetch) + ")";
|
|
594
|
+
} else {
|
|
595
|
+
para_fetch = " JSON.parse(" + value_fetch + ")";
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
var text = "{\n";
|
|
600
|
+
text += ' name: "' + value_name + '",\n';
|
|
601
|
+
text += " max: " + value_max + ",\n";
|
|
602
|
+
text += " search: " + value_search + ",\n";
|
|
603
|
+
text += " fetch: " + para_fetch + ",\n";
|
|
604
|
+
text += " bodie: " + value_bodie + ",\n";
|
|
605
|
+
text += " parse: " + value_parse + ",\n";
|
|
606
|
+
text += "}";
|
|
607
|
+
|
|
608
|
+
var args = [];
|
|
609
|
+
args.push('\n "name": "' + value_name + '"');
|
|
610
|
+
args.push('\n "max": ' + value_max);
|
|
611
|
+
args.push('\n "search": ' + value_search);
|
|
612
|
+
args.push('\n "fetch": ' + value_fetch);
|
|
613
|
+
args.push('\n "bodie": ' + value_bodie);
|
|
614
|
+
args.push('\n "parse": ' + value_parse);
|
|
615
|
+
var logText;
|
|
616
|
+
if (logLevel) {
|
|
617
|
+
logText =
|
|
618
|
+
"console." +
|
|
619
|
+
logLevel +
|
|
620
|
+
'("' +
|
|
621
|
+
dropdown_instance +
|
|
622
|
+
': " + "' +
|
|
623
|
+
(args.length ? args.join(",") + "\n" : "") +
|
|
624
|
+
'");\n';
|
|
625
|
+
} else {
|
|
626
|
+
logText = "";
|
|
627
|
+
}
|
|
628
|
+
var statement;
|
|
629
|
+
statement = Blockly.JavaScript.statementToCode(block, "STATEMENT");
|
|
630
|
+
var command = "getIMAPRequest";
|
|
631
|
+
return (
|
|
632
|
+
'sendTo("imap' +
|
|
633
|
+
dropdown_instance +
|
|
634
|
+
'", "' +
|
|
635
|
+
command +
|
|
636
|
+
'", ' +
|
|
637
|
+
text +
|
|
638
|
+
", async function (result) {\n " +
|
|
639
|
+
statement +
|
|
640
|
+
" });\n" +
|
|
641
|
+
logText
|
|
642
|
+
);
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
Blockly.Sendto.blocks["imap_data"] =
|
|
646
|
+
'<block type="imap_data">' +
|
|
647
|
+
' <value name="INSTANCE">' +
|
|
648
|
+
" </value>" +
|
|
649
|
+
' <value name="IMAPNAME">' +
|
|
650
|
+
" </value>" +
|
|
651
|
+
' <value name="IMAPVALUE">' +
|
|
652
|
+
" </value>" +
|
|
653
|
+
' <value name="LOG">' +
|
|
654
|
+
" </value>" +
|
|
655
|
+
' <value name="STATEMENT">' +
|
|
656
|
+
" </value>" +
|
|
657
|
+
"</block>";
|
|
658
|
+
|
|
659
|
+
Blockly.Blocks["imap_data"] = {
|
|
660
|
+
init: function () {
|
|
661
|
+
var options_user = [];
|
|
662
|
+
var options_instance = [];
|
|
663
|
+
options_user.push([Blockly.Translate("imap_choose"), "all"]);
|
|
664
|
+
if (typeof main !== "undefined" && main.instances) {
|
|
665
|
+
for (var i = 0; i < main.instances.length; i++) {
|
|
666
|
+
var m = main.instances[i].match(/^system.adapter.imap.(\d+)$/);
|
|
667
|
+
if (m) {
|
|
668
|
+
var n = parseInt(m[1], 10);
|
|
669
|
+
options_instance.push(["imap." + n, "." + n]);
|
|
670
|
+
if (main.objects[main.instances[i]].native.hosts) {
|
|
671
|
+
for (var a = 0; a < main.objects[main.instances[i]].native.hosts.length; a++) {
|
|
672
|
+
//Checking active in the main.js.
|
|
673
|
+
var id = main.objects[main.instances[i]].native.hosts[a].user;
|
|
674
|
+
options_user.push([n + "." + id, id]);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
}
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
this.appendDummyInput("INSTANCE")
|
|
682
|
+
.appendField(Blockly.Translate("imap"))
|
|
683
|
+
.appendField(new Blockly.FieldDropdown(options_instance), "INSTANCE");
|
|
684
|
+
|
|
685
|
+
this.appendDummyInput("IMAPNAME")
|
|
686
|
+
.appendField(Blockly.Translate("imap_name"))
|
|
687
|
+
.appendField(new Blockly.FieldDropdown(options_user), "IMAPNAME");
|
|
688
|
+
|
|
689
|
+
this.appendDummyInput("IMAPVALUE")
|
|
690
|
+
.appendField(Blockly.Translate("imap_data"))
|
|
691
|
+
.appendField(
|
|
692
|
+
new Blockly.FieldDropdown([
|
|
693
|
+
[Blockly.Translate("imap_data_json"), "data"],
|
|
694
|
+
[Blockly.Translate("imap_data_seqno"), "seqno"],
|
|
695
|
+
]),
|
|
696
|
+
"IMAPVALUE",
|
|
697
|
+
);
|
|
698
|
+
|
|
699
|
+
this.appendDummyInput("LOG")
|
|
700
|
+
.appendField(Blockly.Translate("imap_log"))
|
|
701
|
+
.appendField(
|
|
702
|
+
new Blockly.FieldDropdown([
|
|
703
|
+
[Blockly.Translate("imap_log_none"), ""],
|
|
704
|
+
[Blockly.Translate("imap_log_info"), "log"],
|
|
705
|
+
[Blockly.Translate("imap_log_debug"), "debug"],
|
|
706
|
+
[Blockly.Translate("imap_log_warn"), "warn"],
|
|
707
|
+
[Blockly.Translate("imap_log_error"), "error"],
|
|
708
|
+
]),
|
|
709
|
+
"LOG",
|
|
710
|
+
);
|
|
711
|
+
this.appendStatementInput("STATEMENT").setCheck(null);
|
|
712
|
+
|
|
713
|
+
this.setInputsInline(false);
|
|
714
|
+
this.setPreviousStatement(true, null);
|
|
715
|
+
this.setNextStatement(true, null);
|
|
716
|
+
|
|
717
|
+
this.setColour(Blockly.Sendto.HUE);
|
|
718
|
+
this.setTooltip(Blockly.Translate("imap_tooltip"));
|
|
719
|
+
this.setHelpUrl(Blockly.Translate("imap_help"));
|
|
720
|
+
},
|
|
721
|
+
};
|
|
722
|
+
|
|
723
|
+
Blockly.JavaScript["imap_data"] = function (block) {
|
|
724
|
+
var dropdown_instance = block.getFieldValue("INSTANCE");
|
|
725
|
+
var logLevel = block.getFieldValue("LOG");
|
|
726
|
+
var value_name = block.getFieldValue("IMAPNAME");
|
|
727
|
+
var value_value = block.getFieldValue("IMAPVALUE");
|
|
728
|
+
|
|
729
|
+
var text = "{\n";
|
|
730
|
+
text += ' name: "' + value_name + '",\n';
|
|
731
|
+
text += ' value: "' + value_value + '",\n';
|
|
732
|
+
text += "}";
|
|
733
|
+
|
|
734
|
+
var args = [];
|
|
735
|
+
args.push('\n "name": "' + value_name + '"');
|
|
736
|
+
args.push('\n "value": "' + value_value + '"');
|
|
737
|
+
var logText;
|
|
738
|
+
if (logLevel) {
|
|
739
|
+
logText =
|
|
740
|
+
"console." +
|
|
741
|
+
logLevel +
|
|
742
|
+
'("' +
|
|
743
|
+
dropdown_instance +
|
|
744
|
+
': " + "' +
|
|
745
|
+
(args.length ? args.join(",") + "\n" : "") +
|
|
746
|
+
'");\n';
|
|
747
|
+
} else {
|
|
748
|
+
logText = "";
|
|
749
|
+
}
|
|
750
|
+
var statement;
|
|
751
|
+
statement = Blockly.JavaScript.statementToCode(block, "STATEMENT");
|
|
752
|
+
var command = "getIMAPData";
|
|
753
|
+
return (
|
|
754
|
+
'sendTo("imap' +
|
|
755
|
+
dropdown_instance +
|
|
756
|
+
'", "' +
|
|
757
|
+
command +
|
|
758
|
+
'", ' +
|
|
759
|
+
text +
|
|
760
|
+
", async function (result) {\n " +
|
|
761
|
+
statement +
|
|
762
|
+
" });\n" +
|
|
763
|
+
logText
|
|
764
|
+
);
|
|
765
|
+
};
|
|
766
|
+
Blockly.Sendto.blocks["imap_flag"] =
|
|
767
|
+
'<block type="imap_flag">' +
|
|
768
|
+
' <value name="INSTANCE">' +
|
|
769
|
+
" </value>" +
|
|
770
|
+
' <value name="IMAPNAME">' +
|
|
771
|
+
" </value>" +
|
|
772
|
+
' <value name="FLAG">' +
|
|
773
|
+
' <shadow type="text">' +
|
|
774
|
+
' <field name="TEXT">setFlags</field>' +
|
|
775
|
+
" </shadow>" +
|
|
776
|
+
" </value>" +
|
|
777
|
+
' <value name="FLAGTYPE">' +
|
|
778
|
+
' <shadow type="text">' +
|
|
779
|
+
' <field name="TEXT">["\\Seen"]</field>' +
|
|
780
|
+
" </shadow>" +
|
|
781
|
+
" </value>" +
|
|
782
|
+
' <value name="SEQNO">' +
|
|
783
|
+
' <shadow type="math_number">' +
|
|
784
|
+
' <field name="NUM">0</field>' +
|
|
785
|
+
" </shadow>" +
|
|
786
|
+
" </value>" +
|
|
787
|
+
' <value name="LOG">' +
|
|
788
|
+
" </value>" +
|
|
789
|
+
"</block>";
|
|
790
|
+
|
|
791
|
+
Blockly.Blocks["imap_flag"] = {
|
|
792
|
+
init: function () {
|
|
793
|
+
var options_user = [];
|
|
794
|
+
var options_instance = [];
|
|
795
|
+
options_user.push([Blockly.Translate("imap_choose"), "all"]);
|
|
796
|
+
if (typeof main !== "undefined" && main.instances) {
|
|
797
|
+
for (var i = 0; i < main.instances.length; i++) {
|
|
798
|
+
var m = main.instances[i].match(/^system.adapter.imap.(\d+)$/);
|
|
799
|
+
if (m) {
|
|
800
|
+
var n = parseInt(m[1], 10);
|
|
801
|
+
options_instance.push(["imap." + n, "." + n]);
|
|
802
|
+
if (main.objects[main.instances[i]].native.hosts) {
|
|
803
|
+
for (var a = 0; a < main.objects[main.instances[i]].native.hosts.length; a++) {
|
|
804
|
+
//Checking active in the main.js.
|
|
805
|
+
var id = main.objects[main.instances[i]].native.hosts[a].user;
|
|
806
|
+
options_user.push([n + "." + id, id]);
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
|
|
813
|
+
this.appendDummyInput("INSTANCE")
|
|
814
|
+
.appendField(Blockly.Translate("imap"))
|
|
815
|
+
.appendField(new Blockly.FieldDropdown(options_instance), "INSTANCE");
|
|
816
|
+
|
|
817
|
+
this.appendDummyInput("IMAPNAME")
|
|
818
|
+
.appendField(Blockly.Translate("imap_name"))
|
|
819
|
+
.appendField(new Blockly.FieldDropdown(options_user), "IMAPNAME");
|
|
820
|
+
|
|
821
|
+
this.appendValueInput("FLAG").appendField(Blockly.Translate("imap_flags"));
|
|
822
|
+
this.appendValueInput("FLAGTYPE").appendField(Blockly.Translate("imap_flagtype"));
|
|
823
|
+
this.appendValueInput("SEQNO").appendField(Blockly.Translate("imap_seqno"));
|
|
824
|
+
|
|
825
|
+
this.appendDummyInput("LOG")
|
|
826
|
+
.appendField(Blockly.Translate("imap_log"))
|
|
827
|
+
.appendField(
|
|
828
|
+
new Blockly.FieldDropdown([
|
|
829
|
+
[Blockly.Translate("imap_log_none"), ""],
|
|
830
|
+
[Blockly.Translate("imap_log_info"), "log"],
|
|
831
|
+
[Blockly.Translate("imap_log_debug"), "debug"],
|
|
832
|
+
[Blockly.Translate("imap_log_warn"), "warn"],
|
|
833
|
+
[Blockly.Translate("imap_log_error"), "error"],
|
|
834
|
+
]),
|
|
835
|
+
"LOG",
|
|
836
|
+
);
|
|
837
|
+
|
|
838
|
+
this.setInputsInline(false);
|
|
839
|
+
this.setPreviousStatement(true, null);
|
|
840
|
+
this.setNextStatement(true, null);
|
|
841
|
+
|
|
842
|
+
this.setColour(Blockly.Sendto.HUE);
|
|
843
|
+
this.setTooltip(Blockly.Translate("imap_tooltip_flags"));
|
|
844
|
+
this.setHelpUrl(Blockly.Translate("imap_help"));
|
|
845
|
+
},
|
|
846
|
+
};
|
|
847
|
+
|
|
848
|
+
Blockly.JavaScript["imap_flag"] = function (block) {
|
|
849
|
+
var dropdown_instance = block.getFieldValue("INSTANCE");
|
|
850
|
+
var logLevel = block.getFieldValue("LOG");
|
|
851
|
+
var value_name = block.getFieldValue("IMAPNAME");
|
|
852
|
+
var value_flag = Blockly.JavaScript.valueToCode(block, "FLAG", Blockly.JavaScript.ORDER_ATOMIC);
|
|
853
|
+
var value_flagtype = Blockly.JavaScript.valueToCode(block, "FLAGTYPE", Blockly.JavaScript.ORDER_ATOMIC);
|
|
854
|
+
var value_seqno = Blockly.JavaScript.valueToCode(block, "SEQNO", Blockly.JavaScript.ORDER_ATOMIC);
|
|
855
|
+
|
|
856
|
+
var logText;
|
|
857
|
+
if (logLevel) {
|
|
858
|
+
logText =
|
|
859
|
+
"console." + logLevel + '("imap: " + ' + value_flag + " + " + value_seqno + " + " + value_name + ");\n";
|
|
860
|
+
} else {
|
|
861
|
+
logText = "";
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
return (
|
|
865
|
+
'sendTo("imap' +
|
|
866
|
+
dropdown_instance +
|
|
867
|
+
'", "getFlags", {flag: ' +
|
|
868
|
+
value_flag +
|
|
869
|
+
", seqno: " +
|
|
870
|
+
value_seqno +
|
|
871
|
+
", flagtype: " +
|
|
872
|
+
value_flagtype +
|
|
873
|
+
", name: '" +
|
|
874
|
+
value_name +
|
|
875
|
+
"'});\n" +
|
|
876
|
+
logText
|
|
877
|
+
);
|
|
878
|
+
};
|