Guest User

Untitled

a guest
Feb 13th, 2018
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. var TelegramBot = require('node-telegram-bot-api');
  2. var token = '381300228:AAFLnCTMaIMJatgrqg_a1Udo-IxzqOoj3hI';
  3. var bot = new TelegramBot(token, {polling: true});
  4. var soap = require('soap-ntlm');
  5. var username = 'nav-svc';
  6. var password = 'l2K76RDmmC';
  7. var domain = 'NCDEV';
  8. var fs = require('fs');
  9. var hellogif = fs.createReadStream('giphy.mp4');
  10. var builder = require('botbuilder');
  11. var connector = new builder.ConsoleConnector().listen();
  12. var client = null;
  13.  
  14.  
  15. soap.createClient(__dirname+'/BotSupport.xml',function(err, cl) {
  16. if(err){
  17. console.log(err);
  18. return;
  19. }
  20. client = cl;
  21. client.setSecurity(new soap.NtlmSecurity(username, password, domain));
  22. });
  23.  
  24. var states = {}
  25.  
  26. function Login(msg) {
  27. var Id = msg.chat.id;
  28. states[Id] = 0;
  29. console.log(msg);
  30. client.GetEmployeeByID({
  31. restart: true,
  32. channelType: 1,
  33. channelID: Id,
  34. employeeByIDXMLPort: '',
  35. errorText: ''},
  36. function(err, res){
  37. if(err){
  38. console.log(err);
  39. return;
  40. }
  41. if (res.return_value != 0) {
  42. console.log('Ошибка: ' + res.errorText);
  43. bot.sendSticker(Id,__dirname+'/police.png')
  44. bot.sendMessage(Id,"Привет! Напиши свой корпоративный e-mail.");
  45.  
  46. //bot.sendSticker(Id,policepng);
  47. states[Id] = 1;
  48. }
  49. else {
  50. bot.sendMessage(Id, `Привет, ${res.employeeByIDXMLPort.Employee[0].FirstName}! Чем могу помочь?`);
  51. bot.sendSticker(Id,__dirname+'/help.png')
  52. //bot.sendSticker(Id,helppng);
  53. states[Id] = 3;
  54. console.log(res);
  55. }
  56. }
  57. );
  58. }
  59.  
  60. function CheckEmail(msg) {
  61. var email=msg.text;
  62. var Id = msg.chat.id;
  63. console.log(msg);
  64. client.AddEmployeeByEMail({
  65. channelType: 1,
  66. eMail: email,
  67. firstName: '',
  68. lastName: '',
  69. errorText: '',
  70. channelID: Id},
  71. function(err, res){
  72. if(err){
  73. console.log(err);
  74. return;
  75. }
  76. if (res.return_value != 0) {
  77. console.log('Ошибка: ' + res.errorText);
  78. bot.sendMessage(Id, 'E-mail не найден :(. Проверь правильность написания.');
  79. bot.sendSticker(Id,stoppng);
  80. } else {
  81. bot.sendMessage(Id, 'На твою почту пришел код подтверждения, пришли его мне!');
  82. states[Id] = 2;
  83. }
  84. }
  85. );
  86. }
  87.  
  88. function CheckCode(msg) {
  89. var code=msg.text;
  90. var Id = msg.chat.id;
  91. console.log(msg);
  92. client.ValidatePassCode({
  93. channelType: 1,
  94. passCode: code,
  95. channelID: Id,
  96. employeeByIDXMLPort: '',
  97. errorText: ''},
  98. function(err, res){
  99. if(err){
  100. console.log(err);
  101. return;
  102. }
  103. if (res.return_value != 0) {
  104. console.log('Ошибка: ' + res.errorText);
  105. bot.sendMessage(Id, 'Неверный код. Будь внимательнее!');
  106. } else {
  107. bot.sendMessage(Id, 'Регистрация прошла успешно! Чем могу помочь?');
  108. bot.sendVideo(Id,hellogif);
  109. states[Id] = 3;
  110. }
  111. }
  112. );
  113. }
  114.  
  115. function StartDialog(msg) {
  116. var mestext = msg.text;
  117. var Id = msg.chat.id;
  118. console.log(msg);
  119. client.Chat({
  120. channelID: Id,
  121. inText: mestext,
  122. multiple: false,
  123. multipleType: 1,
  124. mainDirXMLPort: '',
  125. outText: ''},
  126. function(err, res){
  127. if(err){
  128. console.log(err);
  129. return;
  130. }
  131. console.log(res);
  132. if (res.multiple != true) {
  133. bot.sendMessage(Id,res.outText);
  134. } else {
  135. var xmlqty = res.mainDirXMLPort.MainDir.length;
  136. console.log(xmlqty);
  137. var keyboard1 = [];
  138. if (res.multipleType == 1) {
  139. for(var i = 0; i < xmlqty; i++){
  140. keyboard1.push([res.mainDirXMLPort.MainDir[i].Intent]);
  141. }
  142. } else {
  143. if (res.multipleType == 2) {
  144. for(var i = 0; i < xmlqty; i++){
  145. keyboard1.push([res.mainDirXMLPort.MainDir[i].Entity]);
  146. }
  147. }
  148. }
  149. var options = {
  150. reply_markup: JSON.stringify({
  151. keyboard : keyboard1,
  152. one_time_keyboard: true
  153. }),
  154.  
  155. };
  156.  
  157. bot.sendMessage(Id,res.outText,options);
  158. }
  159. }
  160. );
  161. }
  162.  
  163.  
  164. bot.on('message', function(msg) {
  165. var Id = msg.chat.id;
  166. if (msg.text == "/start") {
  167. Login(msg);
  168. } else if (states[Id] == 1) {
  169. CheckEmail(msg);
  170. } else if (states[Id] == 2) {
  171. CheckCode(msg);
  172. } else if (states[Id] == 3) {
  173. StartDialog(msg);
  174. }
  175.  
  176. })
  177.  
  178. //setInterval(myPromise,600000);
Add Comment
Please, Sign In to add comment