mirror of
https://github.com/clusterio/clusterio.git
synced 2026-11-12 15:04:52 +09:00
Added search functionality to mod manager #59
This commit is contained in:
1 parent
88ff90262d
commit
2fd47434bb
6 files changed
+71
-12
No files matched your search
@@ -17,6 +17,7 @@ const objectOps = require("./lib/objectOps.js");
|
||||
const fileOps = require("./lib/fileOps.js");
|
||||
const stringUtils = require("./lib/stringUtils.js");
|
||||
const modManager = require("./lib/manager/modManager.js");
|
||||
const configManager = require("./lib/manager/configManager.js");
|
||||
|
||||
// require config.json
|
||||
var config = require('./config');
|
||||
@@ -124,12 +125,37 @@ if (!command || command == "help" || command == "--help") {
|
||||
process.exit(1);
|
||||
} else if (command == "manage"){
|
||||
// console.log("Launching mod manager");
|
||||
const action = process.argv[4];
|
||||
if(instance && action && action == "list"){
|
||||
modManager.listMods(instance);
|
||||
//const fullUsage = 'node client.js manage [instance, "shared"] ["mods", "config"] ...';
|
||||
function usage(instance, tool){
|
||||
return 'node client.js manage '+(instance || '[instance, "shared"]') +' '+ (tool || '["mods", "config"]') + ' ...';
|
||||
}
|
||||
const modManagerUsage1 = 'node client.js manage ';
|
||||
const modManagerUsage2 = ' mods ["list", "update"]';
|
||||
const tool = process.argv[4] || "";
|
||||
const action = process.argv[5] || "";
|
||||
if(instance){
|
||||
if(tool == "mods"){
|
||||
if(action == "list"){
|
||||
modManager.listMods(instance);
|
||||
} else if(action == "search"){
|
||||
modManager.findMods(process.argv[6]);
|
||||
} else {
|
||||
console.log(modManagerUsage1 + instance + modManagerUsage2);
|
||||
}
|
||||
} else if(tool == "config"){
|
||||
if(action == "list" || action == "show" || action == "display"){
|
||||
configManager.displayConfig(instance);
|
||||
} else if(action == "edit"){
|
||||
|
||||
} else {
|
||||
console.log()
|
||||
}
|
||||
} else {
|
||||
console.log(usage(instance));
|
||||
}
|
||||
} else {
|
||||
console.log('Usage:');
|
||||
console.log('node client.js manage [instance, "shared"] ["list"]');
|
||||
console.log(usage(instance));
|
||||
}
|
||||
// process.exit(1);
|
||||
} else if (command == "delete") {
|
||||
@@ -152,8 +178,8 @@ if (!command || command == "help" || command == "--help") {
|
||||
let name = JSON.parse(res.getBody())[0].assets[0].name;
|
||||
if(url) {
|
||||
console.log(url);
|
||||
var file = fs.createWriteStream("sharedMods/"+name);
|
||||
var req = https.get(url, function(response) {
|
||||
let file = fs.createWriteStream("sharedMods/"+name);
|
||||
https.get(url, function(response) {
|
||||
response.pipe(file);
|
||||
console.log("Downloaded "+name);
|
||||
});
|
||||
|
||||
Whitespace-only changes.
Whitespace-only changes.
@@ -1,8 +1,10 @@
|
||||
const rightpad = require("right-pad");
|
||||
const asTable = require("as-table").configure({delimiter: ' | '});
|
||||
const moment = require("moment");
|
||||
|
||||
const factorioAPI = require("node-factorio-api");
|
||||
const fileOps = require("./../fileOps.js");
|
||||
const config = require("./../../config");
|
||||
|
||||
const instances = fileOps.getDirectoriesSync("./instances/");
|
||||
|
||||
@@ -11,8 +13,8 @@ module.exports.listMods = function(instance){
|
||||
factorioAPI.init(false, 'instances/'+instance+'/mods', 'instances/'+instance+'/saves', '0.15.37');
|
||||
console.log("Authenticating to factorio.com...")
|
||||
factorioAPI.authenticate({
|
||||
username: 'Danielv123',
|
||||
token: '53faebce0a608b1195f01dcfd95ee1',
|
||||
username: config.username,
|
||||
token: config.token,
|
||||
require_ownership: false
|
||||
}).then(token => {
|
||||
console.log("Currently installed:");
|
||||
@@ -40,8 +42,8 @@ module.exports.listMods = function(instance){
|
||||
factorioAPI.init(false, 'sharedMods/', '', '0.15.37');
|
||||
console.log("Authenticating to factorio.com...")
|
||||
factorioAPI.authenticate({
|
||||
username: 'Danielv123',
|
||||
token: '53faebce0a608b1195f01dcfd95ee1',
|
||||
username: config.username,
|
||||
token: config.token,
|
||||
require_ownership: false
|
||||
}).then(() => {
|
||||
factorioAPI.getInstalledMods().then(mods => {
|
||||
@@ -57,6 +59,31 @@ module.exports.listMods = function(instance){
|
||||
console.log(JSON.parse(res.getBody()))
|
||||
*/
|
||||
}
|
||||
module.exports.findMods = function(searchTerm){
|
||||
factorioAPI.init(false);
|
||||
console.log("Authenticating to factorio.com...")
|
||||
factorioAPI.authenticate({
|
||||
username: config.username,
|
||||
token: config.token,
|
||||
require_ownership: false
|
||||
}).then(token => {
|
||||
factorioAPI.searchMods(
|
||||
{q: searchTerm, order: 'top', page_size: 20}
|
||||
).then(body => {
|
||||
let mods = body.results;
|
||||
console.log(asTable(mods.map(mod => {
|
||||
return {
|
||||
title:mod.title,
|
||||
name:mod.name,
|
||||
downloads:mod.downloads_count,
|
||||
updated: moment(mod.updated_at).format("DD.MM.YY"),
|
||||
owner:mod.owner,
|
||||
//license: mod.license_name,
|
||||
}
|
||||
})))
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// 'https://api.github.com/repos/Danielv123/factorioClusterioMod/releases'
|
||||
module.exports.downloadFromGitURL = function(url){
|
||||
@@ -68,8 +95,8 @@ module.exports.downloadFromGitURL = function(url){
|
||||
console.log(JSON.parse(res.getBody()))
|
||||
if(downloadUrl) {
|
||||
console.log(downloadUrl);
|
||||
var file = fs.createWriteStream("sharedMods/"+name);
|
||||
var request = https.get(downloadUrl, function(response) {
|
||||
let file = fs.createWriteStream("sharedMods/"+name);
|
||||
https.get(downloadUrl, function(response) {
|
||||
response.pipe(file);
|
||||
console.log("Downloaded "+name);
|
||||
});
|
||||
|
||||
Generated
+5
@@ -2770,6 +2770,11 @@
|
||||
"integrity": "sha512-dF+yxZSojSiI8AXGoxj5qdFWpucndc54Ug+TwlpHFaV7j22MGG+OML2+FVa6xAZtjb/OFFQhOC37Jegx2GbEwA==",
|
||||
"dev": true
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.19.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.19.1.tgz",
|
||||
"integrity": "sha1-VtoaLRy/AdOLfhr8McELz6GSkWc="
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
"linvodb3": "^3.25.0",
|
||||
"luamin": "^1.0.4",
|
||||
"mkdirp": "^0.5.1",
|
||||
"moment": "^2.19.1",
|
||||
"ncp": "^2.0.0",
|
||||
"nedb": "^1.8.0",
|
||||
"needle": "^1.1.0",
|
||||
|
||||
Reference in new issue
Block a user