Advertisement
Guest User

Untitled

a guest
May 20th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.07 KB | None | 0 0
  1. // Author vk.com/id225166577 (usik/усик)
  2.  
  3. let getData = async url => ( await fetch( url ) ).json();
  4. let bot = { // Main config
  5. out: true, // Отвечать на свои сообщения? (true/false)
  6. cmds: [], // Массив с командами
  7. on(r, f, d = 'описание отсутствует') {
  8. this.cmds.push({
  9. r,
  10. f,
  11. d
  12. });
  13. }
  14. };
  15.  
  16. vk.addListener.messages(msg => {
  17.  
  18. if (!bot.out && msg.out) return;
  19.  
  20. let c = bot.cmds.find(e => e.r.test(msg.body));
  21.  
  22. if (!c) return;
  23.  
  24. let args = msg.body.match(c.r) || [];
  25. args[0] = msg;
  26. c.f.apply(this, args);
  27.  
  28. });
  29.  
  30. bot.on(/!help/i, msg => {
  31. msg.send(bot.cmds.map(x => x.d).join('n'));
  32. }, '!help - Помощь по командам');
  33.  
  34. bot.on(/!test/i, msg => {
  35. msg.send('Work!');
  36. }, '!test - test');
  37.  
  38. bot.on(/!(?:повтори|say)([^]+)/i, (msg, text) => {
  39. msg.send(`Your text: ${text}`);
  40. }, '!say <text> - повторяет текст');
  41.  
  42. bot.on(/!время/i, (msg, date) => {
  43. var date = new Date();
  44.  
  45. if (date.getMinutes() < 10) {
  46.  
  47. msg.send(`Your text: ${date.getHours()}:0${date.getMinutes()}`);
  48.  
  49. } else {
  50.  
  51. msg.send(`Your text: ${date.getHours()}:${date.getMinutes()}`);
  52.  
  53. }
  54. }, '!время - время на пк');
  55.  
  56. bot.on(/^!погода\s([^]+)/i, async (msg, text) => {
  57.  
  58. let data = await getData("https://api.openweathermap.org/data/2.5/weather?q=" + encodeURIComponent(text) + "&lang=ru&units=metric&appid=5d8820e4be0b3f1818880ef51406c9ee");
  59.  
  60. if (!data.name) return msg.reply("Город не найден.");
  61. msg.reply(data.name + " | " + data.sys.country + "\n🌍Погода: " + data['weather'][0]['description'] + "\n🚩Ветер: " + data.wind.speed + " m/s " + data.wind.deg + "°" + "\n🌡Температура: " + data.main.temp + "°C" + "\n☁Облачность: " + data.clouds.all + "%\n📊Давление: " + data.main.pressure);
  62.  
  63. }, '!погода - погода');
  64.  
  65. log('Working bot..');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement