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:
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