Socket
Socket
Sign inDemoInstall

node-mediawiki

Package Overview
Dependencies
77
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.3 to 0.0.4

47

bin/wiki-mirror-content.js

@@ -12,8 +12,9 @@ #!/usr/bin/env node

var wikiName = process.argv[2],
mirrorDir = process.argv[3];
var wikiName = process.argv[2],
mirrorDir = process.argv[3],
allowSubdirs = (process.argv[4] === '--subdirs');
if (!wikiName || !mirrorDir) {
utils.fatalError(
'Usage: %s wiki-name-or-url mirror-directory',
'Usage: %s wiki-name-or-url mirror-directory [--subdirs]',
process.argv[1]);

@@ -37,3 +38,9 @@ }

var filename = path.join(mirrorDir, MediaWiki.pageTitleToFilename(title));
var filename = path.join(
mirrorDir,
MediaWiki.pageTitleToFilename(title, allowSubdirs)
);
if (/\//.test(title) && allowSubdirs) {
fs.mkdirpSync(path.dirname(filename));
}
titleToFileMap[title] = filename;

@@ -48,5 +55,33 @@

console.log(
"Wrote page '%s' to file '%s'",
"Wrote page '%s' to file '%s' (RAW)",
title, filename);
cb(null);
wiki.getParsedPage(title, function(err, data) {
if (err) {
cb(err);
return;
}
var htmlFilename = filename.replace(/\.wiki$/, '.html');
if (data && data.parse && data.parse.text && data.parse.text['*']) {
data = data.parse.text['*'];
} else {
data = JSON.stringify({
error : 'HTML data not found',
data : data
});
}
fs.writeFile(htmlFilename, data, function(err) {
if (err) {
cb(err);
return;
}
console.log(
"Wrote page '%s' to file '%s' (RENDERED)",
title, htmlFilename);
cb(null);
});
});
});

@@ -53,0 +88,0 @@ });

@@ -5,3 +5,4 @@ var events = require('events'),

request = require('request'),
util = require('util');
util = require('util'),
XRegExp = require('xregexp');

@@ -43,6 +44,15 @@ function MediaWiki(wiki) {

MediaWiki.pageTitleToFilename = function(title) {
return title.replace(/[^a-z0-9 #.-]/gi, '_') + '.wiki';
MediaWiki.pageTitleToFilenameBase = function(title, allowSlashes) {
var invalidFilenameChar = XRegExp('[^\\pL0-9#./-]', 'gi');
var filenameBase = title.replace(invalidFilenameChar, '_');
if (!allowSlashes) {
filenameBase = filenameBase.replace(/\//g, '_');
}
return filenameBase;
};
MediaWiki.pageTitleToFilename = function(title, allowSlashes) {
return MediaWiki.pageTitleToFilenameBase(title, allowSlashes) + '.wiki';
};
function tryGetTitle(body) {

@@ -221,2 +231,6 @@ if (typeof body == 'string' && body.length > 200) {

cbData, cbDone);
} else if (data['continue'] && !onlyOneQuery) {
self._queryChunk(action, params,
data['continue'],
cbData, cbDone);
} else if (typeof cbDone == 'function') {

@@ -260,2 +274,12 @@ cbDone(null);

MediaWiki.prototype.getParsedPage = function(title, cb) {
var self = this;
self._doRequest('api.php', {
action : 'parse',
page : title,
format : 'json'
}, cb);
};
MediaWiki.prototype._getEditToken = function(title, cb) {

@@ -262,0 +286,0 @@ var self = this;

5

package.json

@@ -5,3 +5,3 @@ {

"description": "MediaWiki API and some command-line wrapper scripts.",
"version": "0.0.3",
"version": "0.0.4",
"repository": {

@@ -45,4 +45,5 @@ "type": "git",

"request": "^2.88.0",
"temp": "~0.8.1"
"temp": "~0.8.1",
"xregexp": "^4.2.4"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc