generated from array-in-a-matrix/matrix-bot-template
lots of changes lmeow
This commit is contained in:
parent
e918c5fa93
commit
fa8d833ec8
41
index.js
41
index.js
|
@ -10,40 +10,49 @@ client.start().then(() => console.log(`Client has started!`));
|
|||
client.on("room.message", (room, event) => {
|
||||
if (! event["content"] || event["sender"] === config.user) return;
|
||||
|
||||
const messageArray = event["content"]["body"].split(" ").map(word => word.toLowerCase());
|
||||
//console.log(messageArray)
|
||||
let messageArray = event["content"]["body"].split(" ").map(word => word.toLowerCase());
|
||||
messageArray = messageArray.filter((str) => str !== '') // remove empty strings
|
||||
|
||||
if (messageArray[0].toLowerCase() == config.prefix){
|
||||
switch(messageArray[1]){
|
||||
case 's':
|
||||
case 'pkg':
|
||||
case 'search':
|
||||
search_pkg(room, messageArray[2]);
|
||||
|
||||
let resultIndex = 0;
|
||||
|
||||
if(Number.isInteger(parseInt(messageArray[3]))){
|
||||
resultIndex = parseInt(messageArray[3])
|
||||
};
|
||||
|
||||
let pkgPromise = search_pkg(messageArray[2]);
|
||||
|
||||
pkgPromise.then(pkgResults => {
|
||||
// pkgResults is an array containing all search results
|
||||
let message = `${pkgResults[resultIndex].pkgname} ${pkgResults[resultIndex].repo} ${pkgResults[resultIndex].licenses} ${pkgResults[resultIndex].pkgdesc}`
|
||||
client.sendNotice(room, message);
|
||||
}); //TODO: bot crashes if index is too large
|
||||
break;
|
||||
|
||||
case 'aur':
|
||||
break;
|
||||
case 'h':
|
||||
case 'help':
|
||||
break;
|
||||
default:
|
||||
console.warn('no matches');
|
||||
client.sendNotice(room, 'Invalid command.');
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
async function search_pkg(room, pkg){
|
||||
|
||||
async function search_pkg(pkg){
|
||||
|
||||
const response = await fetch("https://archlinux.org/packages/search/json/?q=" + pkg);
|
||||
const dataJSON = await response.json();
|
||||
|
||||
if (!dataJSON.results.length){
|
||||
const message = 'This package does not exist.';
|
||||
console.log(message)
|
||||
client.sendText(room, message);
|
||||
return null // package does not exist
|
||||
} else {
|
||||
const message =
|
||||
`Package Name: ${dataJSON.results[0].pkgname}
|
||||
Package Repo: ${dataJSON.results[0].repo}
|
||||
Package Architecture: ${dataJSON.results[0].arch};`
|
||||
|
||||
console.log(message)
|
||||
client.sendText(room, message);
|
||||
return dataJSON.results
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue