riot-translatebot

A simple riot bot which provides Status about Weblate
git clone git://archive.git.mtrnord.blog/Nordgedanken/riot-translatebot.git
Log | Files | Refs | README | LICENSE

commit fb0597606b8bc85f759675597f0827ce8fbe6547
parent cad41df0764babaa8f687ad7e3c7852f8e2d8087
Author: Marcel <mtrnord1@gmail.com>
Date:   Tue, 20 Jun 2017 11:28:09 +0200

Prepare Weblate and update Help command

Signed-off-by: Marcel <mtrnord1@gmail.com>

Diffstat:
Mpackage.json | 3++-
Msrc/commands.js | 19+++++++++++++++++--
Msrc/index.js | 8+++++++-
Asrc/weblate.js | 24++++++++++++++++++++++++
4 files changed, 50 insertions(+), 4 deletions(-)

diff --git a/package.json b/package.json @@ -23,7 +23,8 @@ "babel-runtime": "^6.23.0", "lodash": "^4.17.4", "matrix-js-sdk": "^0.7.12", - "mz": "^2.6.0" + "mz": "^2.6.0", + "request-promise": "^4.2.1" }, "devDependencies": { "babel-cli": "^6.24.1", diff --git a/src/commands.js b/src/commands.js @@ -1,9 +1,24 @@ +import Weblate from './weblate'; export default class Commands { constructor(client){ this.client = client; + this.weblate = new Weblate(); } help = room => { - return this.client.sendHtmlNotice(room.roomId, `Help for you!\r\n Commands:\r\n - None`, `Help for you!<br> Commands:<br> - None`).catch(error => console.log(error)); - } + return this.client.sendHtmlNotice(room.roomId, `Help for you!\n Commands:\n * !language`, `Help for you!<br> Commands:<br> <ul><li>None</li></ul>`).catch(error => console.log(error)); + }; + + languages = room => { + this.weblate.getLangs().then(body => { + let message = 'Currently known languages:\n'; + for (let key in body['results']) { + message += body['results'][key]['code'] + '\n' + } + return this.client.sendNotice(room.roomId, message).catch(error => console.log(error)); + }) + .catch(err => { + console.log(err); + }); + }; } diff --git a/src/index.js b/src/index.js @@ -18,12 +18,18 @@ mx.getClient().then(client => { "(%s) %s :: %s", room.name, event.getSender(), message ); client.sendHtmlNotice(room.roomId, message, message).catch(error => console.log(error));*/ - if (message.includes("!help")){ + if (message.startsWith("!help")){ console.log( "(%s) %s :: %s", room.name, event.getSender(), message ); commands.help(room); } + if (message.startsWith("!languages")){ + console.log( + "(%s) %s :: %s", room.name, event.getSender(), message + ); + commands.languages(room); + } }); client.startClient(); }); \ No newline at end of file diff --git a/src/weblate.js b/src/weblate.js @@ -0,0 +1,23 @@ +import config from '../config.json'; +import rp from 'request-promise'; + +export default class Weblate { + getLangs = () => { + const options = { + uri: config["weblateApiRoot"] + "languages", + headers: { + 'Authorization': 'Token ' + config['weblate_token'] + }, + json: true // Automatically parses the JSON string in the response + }; + return rp(options); + /*.then(body => { + for (let key in body['results']) { + console.log(body['results'][key]['code']); + } + }) + .catch(err => { + console.log(err); + });*/ + } +} +\ No newline at end of file