Skip to content

Commit 78ed63d

Browse files
committed
Version 0.0.3
1 parent 4f5e96d commit 78ed63d

5 files changed

Lines changed: 63 additions & 31 deletions

File tree

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ npm install tibia-signature-extractor -g
1313
tibia-signature-extractor -f Tibia.spr
1414
```
1515

16+
## API
17+
* parse(filename)
18+
* filename - required - Filename
19+
* returns String (signature)
20+
21+
1622
## References
1723
* [Tibia Sprite File Struture](http://tpforums.org/forum/threads/5031-Tibia-Sprite-File-Structure)
1824
* [Tibia Dat File Struture](http://tpforums.org/forum/threads/5030-Tibia-Data-File-Structure)

bin/index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#!/usr/bin/env node
2+
3+
var fs = require('fs')
4+
, cmd = require('commander')
5+
, lib = require('../lib/index')
6+
, pkg = require('../package.json');
7+
8+
cmd
9+
.version(pkg.version)
10+
.option('-f, --file <file>', 'specify a file like Tibia.spr or Tibia.dat', '')
11+
.parse(process.argv);
12+
13+
var file = cmd.file;
14+
if(file) {
15+
var sign = lib.parse(file);
16+
if (!sign) {
17+
cmd.help();
18+
} else {
19+
console.log('The ' + sign.type + ' signature is ' + sign.sign);
20+
}
21+
} else {
22+
cmd.help();
23+
}

index.js

Lines changed: 0 additions & 29 deletions
This file was deleted.

lib/index.js

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
var fs = require('fs')
2+
, path = require('path');
3+
4+
function abort(str) {
5+
console.error(str);
6+
process.exit(1);
7+
}
8+
9+
function getSignature(filename, cb) {
10+
if(fs.existsSync(filename)) {
11+
var data = fs.readFileSync(filename);
12+
return data.readUInt32LE(0).toString(16).toUpperCase();
13+
} else {
14+
abort('File ' + path.basename(filename) + ' not found.');
15+
}
16+
}
17+
18+
module.exports = {
19+
parse: function(file) {
20+
if(file) {
21+
var ext = path.extname(file).toLowerCase();
22+
if (!(ext === '.spr' || ext === '.dat')) {
23+
abort('Invalid file format. Only .spr and .dat allowed');
24+
} else {
25+
return {type: ext.replace('.', ''), sign: getSignature(file) };
26+
}
27+
} else {
28+
return false;
29+
}
30+
}
31+
};

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
{
22
"name": "tibia-signature-extractor",
3-
"version": "0.0.2",
3+
"version": "0.0.3",
44
"description": "Command Line Tool to extract signature from Tibia Spr or Dat files",
5-
"bin": "index.js",
5+
"bin": "bin/index.js",
6+
"main": "lib/index.js",
67
"scripts": {
78
"test": "echo \"Error: no test specified\" && exit 1"
89
},

0 commit comments

Comments
 (0)