|
|
@ -0,0 +1,79 @@ |
|
|
|
const TelegramBot = require('node-telegram-bot-api'); |
|
|
|
|
|
|
|
var express = require("express"), |
|
|
|
app = express(), |
|
|
|
bodyParser = require("body-parser"), |
|
|
|
methodOverride = require("method-override"); |
|
|
|
|
|
|
|
const config = require('./config'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let chatId = ''; // only one chatid
|
|
|
|
|
|
|
|
const bot = new TelegramBot(config.telegramToken, {polling: true}); |
|
|
|
bot.onText(/\/start/, (msg, match) => { |
|
|
|
console.log('chatId', chatId); |
|
|
|
if(chatId) { |
|
|
|
// only allow one chatId
|
|
|
|
} else { |
|
|
|
chatId = msg.chat.id; |
|
|
|
console.log('chatId', chatId); |
|
|
|
var msg = `
|
|
|
|
Wellcome to commonroutesTelegramBot. Available commands: |
|
|
|
/start |
|
|
|
/pong |
|
|
|
New messages will be send when new travels are published |
|
|
|
`;
|
|
|
|
bot.sendMessage(chatId, msg); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
bot.onText(/\/ping/, (msg, match) => { |
|
|
|
if(chatId) { |
|
|
|
let msg = `pong
|
|
|
|
Bot alive.`;
|
|
|
|
bot.sendMessage(chatId, msg); |
|
|
|
} |
|
|
|
}); |
|
|
|
|
|
|
|
var newtravelHandler = function(req, res) { |
|
|
|
console.log(req.body); |
|
|
|
let msg = `
|
|
|
|
New ` + req.body.type + ` travel published: |
|
|
|
- 📣 title: ` + req.body.title + ` |
|
|
|
- 📄 description: ` + req.body.description + ` |
|
|
|
- 🌏 from: ` + req.body.from.name + ` |
|
|
|
- 🌍 to: ` + req.body.to.name + ` |
|
|
|
- 📆 date: ` + req.body.date + ` |
|
|
|
- 💺 seats: ` + req.body.seats;
|
|
|
|
if(req.body.package) { |
|
|
|
msg += `
|
|
|
|
- 📦 can carry package`;
|
|
|
|
} |
|
|
|
|
|
|
|
msg += `
|
|
|
|
|
|
|
|
📱 Check all the info in the app, or in the web visualizer https://routes.fair.coop/app/#!/travel/` + req.body._id + `
|
|
|
|
`;
|
|
|
|
bot.sendMessage(chatId, msg); |
|
|
|
|
|
|
|
res.status(200).jsonp({}); |
|
|
|
} |
|
|
|
|
|
|
|
// API
|
|
|
|
var apiRoutes = express.Router(); |
|
|
|
|
|
|
|
app.use(bodyParser.urlencoded({ |
|
|
|
extended: false |
|
|
|
})); |
|
|
|
app.use(bodyParser.json()); |
|
|
|
app.use(methodOverride()); |
|
|
|
|
|
|
|
apiRoutes.route('/travel') |
|
|
|
.post(newtravelHandler); |
|
|
|
|
|
|
|
app.use('/api', apiRoutes); |
|
|
|
app.listen(config.port, 'localhost', function() { |
|
|
|
console.log("Node server running on http://localhost:" + config.port); |
|
|
|
}); |