From 458488c2a2691ed3c99865d241d4695a0bbeba6e Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Wed, 17 Jun 2020 14:01:01 +0200 Subject: [PATCH] update Mi 17. Jun 14:01:01 CEST 2020 --- server/broker.js | 120 +++++++++++++++++++++++++---------------------- 1 file changed, 63 insertions(+), 57 deletions(-) diff --git a/server/broker.js b/server/broker.js index 9b5de97..3c4b7ca 100755 --- a/server/broker.js +++ b/server/broker.js @@ -32,72 +32,78 @@ module.exports = function (app_cfg, sql, uuidv4) { if (vmtl_data) { - var T = new twit({ - consumer_key: vmtl_data.tw_consumer_key, - consumer_secret: vmtl_data.tw_consumer_secret, - access_token: vmtl_data.tw_access_token_key, - access_token_secret: vmtl_data.tw_access_token_secret - }) - - var params = { - screen_name: vmtl_data.tw_screen_name - }; - - // Twitter-Liste beschicken - T.get('lists/list', params, function (error, lists, response) { - if (!error) { - var list_obj = lists.filter(function (o) { - return o.name == vmtl_data.list; - }); - var member_params = { - list_id: list_obj[0].id_str, - count: 50 + sql.db_vmtl_check_history(vmtl_data, list_data, function (exists) { + if (!exists) { + var T = new twit({ + consumer_key: vmtl_data.tw_consumer_key, + consumer_secret: vmtl_data.tw_consumer_secret, + access_token: vmtl_data.tw_access_token_key, + access_token_secret: vmtl_data.tw_access_token_secret + }) + + var params = { + screen_name: vmtl_data.tw_screen_name }; - // mit List_id die Mitglieder der Liste auslesen - T.get('lists/members', member_params, function (error, members, response) { + + // Twitter-Liste beschicken + T.get('lists/list', params, function (error, lists, response) { if (!error) { - if (app_cfg.global.development) { - console.log('Mitglieder der Twitter-Liste: ' + JSON.stringify(members)); + var list_obj = lists.filter(function (o) { + return o.name == vmtl_data.list; + }); + var member_params = { + list_id: list_obj[0].id_str, + count: 50 }; - // an jedes Mitglied der Liste eine Meldung senden - var arrayLength = members.users.length; - for (var i = 0; i < arrayLength; i++) { - // Mitteilungstext festelgen - var tw_text = String.fromCodePoint(0x1F4DF) + ' ' + String.fromCodePoint(0x1F6A8) + String.fromCodePoint(0x0A) + - 'Einsatz für ' + vmtl_data.name_wache + ' ' + String.fromCodePoint(0x27A1) + ' ' + vmtl_data.einsatzart + ', ' + vmtl_data.stichwort + String.fromCodePoint(0x0A) + - 'jetzt Rückmeldung senden: ' + app_cfg.public.url + '/rmld/' + vmtl_data.uuid + '/' + uuidv4(); - // Parameter der Mitteilung - var msg_params = { - event: { - type: "message_create", - message_create: { - target: { - recipient_id: members.users[i].id - }, - message_data: { - text: tw_text - } - } - } - }; - // Mitteilung senden - T.post('direct_messages/events/new', msg_params, function (error, members, response) { - if (!error) { - sql.db_log('VMTL', 'Einsatz-Link gesendet: ' + JSON.stringify(members)); - callback && callback(vmtl_data.list); - } else { - sql.db_log('VMTL', 'Fehler beim senden eines Einsatz-Links: ' + error); + // mit List_id die Mitglieder der Liste auslesen + T.get('lists/members', member_params, function (error, members, response) { + if (!error) { + if (app_cfg.global.development) { + console.log('Mitglieder der Twitter-Liste: ' + JSON.stringify(members)); }; - }); - }; + // an jedes Mitglied der Liste eine Meldung senden + var arrayLength = members.users.length; + for (var i = 0; i < arrayLength; i++) { + // Mitteilungstext festelgen + var tw_text = String.fromCodePoint(0x1F4DF) + ' ' + String.fromCodePoint(0x1F6A8) + String.fromCodePoint(0x0A) + + 'Einsatz für ' + vmtl_data.name_wache + ' ' + String.fromCodePoint(0x27A1) + ' ' + vmtl_data.einsatzart + ', ' + vmtl_data.stichwort + String.fromCodePoint(0x0A) + + 'jetzt Rückmeldung senden: ' + app_cfg.public.url + '/rmld/' + vmtl_data.uuid + '/' + uuidv4(); + // Parameter der Mitteilung + var msg_params = { + event: { + type: "message_create", + message_create: { + target: { + recipient_id: members.users[i].id + }, + message_data: { + text: tw_text + } + } + } + }; + // Mitteilung senden + T.post('direct_messages/events/new', msg_params, function (error, members, response) { + if (!error) { + sql.db_log('VMTL', 'Einsatz-Link gesendet: ' + JSON.stringify(members)); + callback && callback(vmtl_data.list); + } else { + sql.db_log('VMTL', 'Fehler beim senden eines Einsatz-Links: ' + error); + }; + }); + }; + } else { + sql.db_log('VMTL', 'Fehler beim lesen der Mitglieder der Twitter-Liste: ' + error); + callback && callback(null); + }; + }); } else { - sql.db_log('VMTL', 'Fehler beim lesen der Mitglieder der Twitter-Liste: ' + error); + sql.db_log('VMTL', 'Fehler beim lesen der Twitter-Liste: ' + error); callback && callback(null); }; }); } else { - sql.db_log('VMTL', 'Fehler beim lesen der Twitter-Liste: ' + error); - callback && callback(null); + sql.db_log('VMTL', 'Rückmeldungs-Link für Twitter-Account ' + list_data.vmtl_account_name + ' bereits zuvor gesendet. Wird verworfen.'); }; });