Skip to content
This repository has been archived by the owner on Oct 5, 2019. It is now read-only.

Commit

Permalink
2017.05.03 update
Browse files Browse the repository at this point in the history
  • Loading branch information
makazeu committed May 3, 2017
1 parent 23d4ae0 commit f89cde0
Show file tree
Hide file tree
Showing 5 changed files with 96 additions and 51 deletions.
1 change: 1 addition & 0 deletions .gitignore
@@ -1,2 +1,3 @@
.vscode/
node_modules/
servername.json
98 changes: 67 additions & 31 deletions public/static/script/script.js
Expand Up @@ -49,7 +49,6 @@
let loggedOn = false;
let keyCount = 0;
let keySuccess = 0;
let normalStatus;

function checkWebSocket() {
return 'WebSocket' in window;
Expand All @@ -65,7 +64,7 @@
};

ws.onmessage = (data, flags) => {
//console.log('Received: %s', data.data);
console.log('Received: %s', data.data);

let recvData = JSON.parse(data.data);

Expand Down Expand Up @@ -107,33 +106,34 @@
$('#buttonRedeem').fadeIn();
$('.progress').fadeOut();
$('#inputKey').removeAttr('disabled');
$('.panel-body').text(normalStatus);

keyCount++;

if(Object.keys(recvData.detail.packages).length == 0) {
tableInsertKey(
$('#inputKey').val().trim(),
tableUpdateKey(
recvData.detail.key,
allResults[recvData.detail.result] || recvData.detail.result,
allPurchaseResults[recvData.detail.details] || recvData.detail.details,
0, ''
);
} // packages.length == 0
else {
for (let key in recvData.detail.packages) {
if (recvData.detail.packages.hasOwnProperty(key)) {
tableInsertKey(
$('#inputKey').val().trim(),
for (let subId in recvData.detail.packages) {
if (recvData.detail.packages.hasOwnProperty(subId)) {
tableUpdateKey(
recvData.detail.key,
allResults[recvData.detail.result] || recvData.detail.result,
allPurchaseResults[recvData.detail.details] || recvData.detail.details,
key,
recvData.detail.packages[key]
subId,
recvData.detail.packages[subId]
);

if (recvData.detail.result == 'OK' && keySuccess == 0) {
keySuccess = 1;
$('.my-alipay').fadeIn();
}

break;
}
}
} // packages.length != 0
Expand Down Expand Up @@ -174,40 +174,63 @@
}

function wsRedeem() {

let keys = getKeysByRE($('#inputKey').val().trim());
if (keys.length <= 0) {return;}

$('#buttonRedeem').fadeOut();
$('.progress').fadeIn();
$('#inputKey').attr('disabled', 'disabled');

let data = JSON.stringify({
action : 'redeem',
key : $('#inputKey').val().trim()
keys : keys
});

normalStatus = $('.panel-body').text();
$('.panel-body').text(allTexts['text_redeeming']);
console.log(data);
keys.forEach( key => tableInsertKey(key) );

ws.send(data);
}

function tableInsertKey(key, result, detail, subId, subName) {
function tableUpdateKey(key, result, detail, subId, subName) {
let rowObjects = $('tr');
for (let i=1; i<rowObjects.length; i++) {

let rowElement = rowObjects[i];

let rowObject = $(rowElement);
if ( rowObject.children()[1].innerHTML.includes(key) ) {
rowObject.children()[2].remove();

// result
if (result == '失败')
rowObject.append(`<td class="nobr" style="color:red">${result}</td>`);
else
rowObject.append(`<td class="nobr" style="color:green">${result}</td>`);
// detail
rowObject.append(`<td class="nobr">${detail}</td>`);
// sub
if (subId == 0) {
rowObject.append('<td class="table-subname">——</td>');
} else {
rowObject.append(`<td class="table-subname"><code>${subId}</code> <a href="https://steamdb.info/sub/${subId}/" target="_blank">${subName}</a></td>`);
}
}
}
}

function tableInsertKey(key) {

keyCount++;
let row = $('<tr></tr>');

// number
row.append(`<td>${keyCount}</td>`);
// key
row.append(`<td><code>${key}</code></td>`);
// result
if(result == '失败')
row.append(`<td style="color:red">${result}</td>`);
else
row.append(`<td style="color:green">${result}</td>`);
// detail
row.append(`<td>${detail}</td>`);
// sub
if (subId == 0) {
row.append('<td>——</td>');
} else {
row.append(`<td><code>${subId}</code> <a href="https://steamdb.info/sub/${subId}/" target="_blank">${subName}</a></td>`);
}
row.append(`<td class="nobr">${keyCount}</td>`);
//key
row.append(`<td class="nobr"><code>${key}</code></td>`);
//waiting...
row.append(`<td colspan="3">激活中,请稍候...</td>`);

$('tbody').append(row);
}
Expand All @@ -216,6 +239,19 @@
return str.trim() == '';
}

function getKeysByRE (text) {
text = text.trim();
let reg = new RegExp('([0-9,A-Z]{5}-){2}[0-9,A-Z]{5}', 'g');
let keys = [];

let result;
while(result = reg.exec(text)) {
keys.push(result[0]);
}

return keys;
}

$('#buttonRedeem').click( () => {
if (loggedOn) {
wsRedeem();
Expand Down
7 changes: 6 additions & 1 deletion public/static/style/style.css
Expand Up @@ -19,10 +19,16 @@ a:active {
text-decoration: none;
}

/* table */
table a {
color: lightslategrey;
}

td {
white-space: nowrap;
overflow: hidden;
}

/* site title */
.site-title {
font-size: 2em;
Expand All @@ -37,7 +43,6 @@ table a {
font-size: 1.2em;
}


/* copyright info at bottom */
.copyright {
color: #D8BFD8;
Expand Down
6 changes: 3 additions & 3 deletions views/index.hbs
Expand Up @@ -34,9 +34,9 @@
<div class="my-alipay" id="alipay" style="display:none">
哟~成功激活了一个Key诶,真不错! 请问...您愿意打赏作者一点点小费吗?
<button type="button" class="btn btn-default btn-sm" data-toggle="modal" data-target="#myModal">
<span class="glyphicon glyphicon-heart"></span> 我愿意!
我愿意!<span class="glyphicon glyphicon-heart"></span>
</button> &nbsp;
<button type="button" class="btn btn-default btn-sm" onclick=$('.my-alipay').html('(。•́︿•̀。)')>不愿意</button>
<button type="button" class="btn btn-default btn-sm" onclick=$('.my-alipay').html('(。•́︿•̀。)')>丑拒</button>
</div>
<!-- Table -->
<div class="table-responsive table-condensed">
Expand Down Expand Up @@ -82,7 +82,7 @@
<div class="form-group">
<label for="inputKey" class="col-sm-2 control-label">Key</label>
<div class="col-sm-10">
<input class="form-control" id="inputKey" placeholder="Steam Key (可留空稍后再输入)">
<textarea class="form-control" rows="3" id="inputKey" placeholder="Steam Key (可留空稍后再输入)&#10;支持批量激活,不限制格式,可以把整个网页复制过来"></textarea>
</div>
</div>

Expand Down
35 changes: 19 additions & 16 deletions ws.js
Expand Up @@ -13,6 +13,8 @@ module.exports = (server) => {
throw new Error('请编辑servername.sample.json文件改名为servername.json!');
}

let allResults = require('./Eresult');
let allPurchaseResults = require('./EPurchaseResult');

wss.on('connection', (ws) => {

Expand Down Expand Up @@ -52,7 +54,7 @@ module.exports = (server) => {
steamClient.once('loggedOn', (details) => {
//console.log("Logged into Steam as " + steamClient.steamID.getSteam3RenderedID());

if (serverDef && serverDef.id.startsWith('cn')) {
if (serverDef && ( serverDef.id.startsWith('cn') || serverDef.id.startsWith('test') )) {
trySend(ws, JSON.stringify({
'action': 'logOn',
'result': 'success',
Expand Down Expand Up @@ -90,21 +92,22 @@ module.exports = (server) => {
});

domain.run( () => {
let resData = { 'action': 'redeem', 'detail': {} };

steamClient.redeemKey(data.key, (result, details, packages) => {

let allResults = require('./Eresult');
let allPurchaseResults = require('./EPurchaseResult');

resData['detail']['result'] = allResults[result.toString()];
resData['detail']['details'] = allPurchaseResults[details.toString()];
resData['detail']['packages'] = packages;

//console.log(resData);

trySend(ws, JSON.stringify(resData));
});
// REDEEMING STARTS
data.keys.forEach( keyElement => {
steamClient.redeemKey( keyElement, (result, details, packages) => {

let resData = { 'action': 'redeem', 'detail': {} };
resData['detail']['key'] = keyElement;
resData['detail']['result'] = allResults[result.toString()];
resData['detail']['details'] = allPurchaseResults[details.toString()];
resData['detail']['packages'] = packages;

console.log(resData);

trySend(ws, JSON.stringify(resData));
} );
} );
// REDEEMING ENDS
});
} // data.action == redeem

Expand Down

0 comments on commit f89cde0

Please sign in to comment.