init: sync with deployed state of 2017
This commit is contained in:
commit
1258613f4b
4 changed files with 226 additions and 0 deletions
21
LICENSE.txt
Normal file
21
LICENSE.txt
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2017 jan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
93
inline.js
Normal file
93
inline.js
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
module.exports = function(context, cb) {
|
||||
'use strict';
|
||||
//telegram
|
||||
const TOKEN = context.secrets.bot_token;
|
||||
const TelegramBot = require('node-telegram-bot-api');
|
||||
const bot = new TelegramBot(TOKEN);
|
||||
//bot.setWebHook('https://wt-fb95a52ccc1baaa2f9876a683e6b1325-0.sandbox.auth0-extend.com/vong_inline');
|
||||
//apiai
|
||||
const apiai = require('apiai');
|
||||
const app = apiai(context.secrets.Dialogflow_APIKEY);
|
||||
|
||||
//messages
|
||||
bot.on('message', function onMessage(msg) {
|
||||
let bild = msg.text.match(/\/bild (.+)/);
|
||||
let vong = msg.text.match(/\/vong (.+)/);
|
||||
if (bild !== null) {
|
||||
var request = app.textRequest('zeig mir das bild von ' + bild[1], {
|
||||
sessionId: Math.floor(Math.random() * 100000000)
|
||||
});
|
||||
} else if (vong !== null) {
|
||||
var request = app.textRequest('übersetze ' + vong[1], {
|
||||
sessionId: Math.floor(Math.random() * 100000000)
|
||||
});
|
||||
} else {
|
||||
//Dialoglfow
|
||||
var request = app.textRequest(msg.text, {
|
||||
sessionId: msg.chat.id
|
||||
});
|
||||
}
|
||||
|
||||
request.on('response', function(response) {
|
||||
console.log(response);
|
||||
let txt = response.result.fulfillment.messages[0].speech,
|
||||
m = response.result.fulfillment.messages;
|
||||
if (m.length > 1) {
|
||||
return bot.sendPhoto(msg.chat.id, m[1].imageUrl);
|
||||
} else {
|
||||
if (txt !== '') {
|
||||
return bot.sendMessage(msg.chat.id, txt);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
request.on('error', function(error) {
|
||||
console.error(error);
|
||||
});
|
||||
|
||||
request.end();
|
||||
});
|
||||
|
||||
//inline
|
||||
bot.on('inline_query', function(msg) {
|
||||
let answers = [];
|
||||
let query = msg.query;
|
||||
|
||||
//Dialogflow - vong-bild
|
||||
const vong_bild = app.textRequest("zeige mir ein bild von " + query, {
|
||||
sessionId: Math.floor(Math.random() * 100000000)
|
||||
});
|
||||
vong_bild.on('response', dfSuccess);
|
||||
vong_bild.on('error', dfError);
|
||||
vong_bild.end();
|
||||
|
||||
function dfSuccess(response) {
|
||||
let txt = response.result.fulfillment.messages[0].speech,
|
||||
m = response.result.fulfillment.messages;
|
||||
if (m.length > 1) {
|
||||
answers.push({
|
||||
type: 'photo',
|
||||
id: 'photo',
|
||||
photo_url: m[1].imageUrl,
|
||||
thumb_url: m[1].imageUrl
|
||||
});
|
||||
}
|
||||
answers.push({
|
||||
type: 'article',
|
||||
id: 'query',
|
||||
title: 'Übersetzung',
|
||||
description: txt,
|
||||
message_text: txt
|
||||
});
|
||||
return bot.answerInlineQuery(msg.id, answers);
|
||||
}
|
||||
|
||||
function dfError(error) {
|
||||
console.error(error);
|
||||
}
|
||||
});
|
||||
|
||||
bot.processUpdate(context.body);
|
||||
cb(null, null);
|
||||
};
|
||||
|
||||
41
readme.md
Normal file
41
readme.md
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
# vong-inline bot
|
||||
🤖 Telegram Bot which translates german sentences into "vong"-speech.
|
||||
Try it [online](https://bot.dialogflow.com/vong-translate).
|
||||
|
||||
Can also send pictures with the translated text, try:
|
||||
|
||||
- "vong _wie geht es dir_"
|
||||
- "zeig mir das bild _von wie geht es dir_"
|
||||
- "erzeuge mir ein zeichnis von _du ungezogenes kind_"
|
||||
|
||||
# versions
|
||||
- inline bot [@VongInlineBot](https://t.me/VongInlineBot)
|
||||
- chat bot [@TranslateVongBot](https://t.me/TranslateVongBot)
|
||||
|
||||
# uses
|
||||
- [vong-generator](https://vong-generator.com/)
|
||||
- [webtask](https://webtask.io) serverless host
|
||||
- telegram bot functionality
|
||||
|
||||
# license
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2017 jan
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
71
translate.js
Normal file
71
translate.js
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
module.exports = function(context, cb) {
|
||||
// console.log(context);
|
||||
// console.log(context.body.originalRequest.data);
|
||||
var request = require('request');
|
||||
var url = 'https://vong-generator.com/generate';
|
||||
var IMGURL = "https://img.vong-generator.com/?message=";
|
||||
var bildpls = false;
|
||||
var formData = {
|
||||
text: context.body.result.parameters.message,
|
||||
};
|
||||
if ((formData.text === undefined) || (formData.text === "")) {
|
||||
return cb("Missing parameter text.");
|
||||
}
|
||||
if ((context.body.result.parameters.bild) || (context.body.result.parameters.display)) {
|
||||
bildpls = true;
|
||||
}
|
||||
request.post({
|
||||
url: url,
|
||||
formData: formData
|
||||
}, function(error, response, body) {
|
||||
if (error) {
|
||||
return cb(error);
|
||||
} else {
|
||||
body = JSON.parse(body);
|
||||
var data = {
|
||||
"speech": body.vong,
|
||||
"displayText": body.vong,
|
||||
"source": "vong-generator"
|
||||
}
|
||||
if (bildpls) {
|
||||
data = {
|
||||
"messages": [
|
||||
{
|
||||
"speech": body.vong,
|
||||
"type": 0
|
||||
},
|
||||
{
|
||||
"imageUrl": IMGURL+encodeURI(body.vong),
|
||||
"platform": "telegram",
|
||||
"type": 3
|
||||
},
|
||||
{
|
||||
"platform": "google",
|
||||
"displayText": "Hier ist dein Bild",
|
||||
"textToSpeech": "Hier ist dein Bild",
|
||||
"type": "simple_response"
|
||||
},
|
||||
{
|
||||
"buttons": [
|
||||
{
|
||||
"openUrlAction": {
|
||||
"url": IMGURL+encodeURI(body.vong)
|
||||
},
|
||||
"title": "IMAGE-URL"
|
||||
}
|
||||
],
|
||||
"image": {
|
||||
"url": IMGURL+encodeURI(body.vong),
|
||||
"accessibility_text": body.vong
|
||||
},
|
||||
"platform": "google",
|
||||
"title": body.vong,
|
||||
"type": "basic_card"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
return cb(null, data);
|
||||
}
|
||||
});
|
||||
}
|
||||
Loading…
Reference in a new issue