Skip to content

Commit

Permalink
bugfix session timeout when renaming many attacks (sessionStorage rep…
Browse files Browse the repository at this point in the history
…laced cookies)
  • Loading branch information
Laoujin committed Apr 8, 2013
1 parent e6b5619 commit ee08b26
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 34 deletions.
22 changes: 12 additions & 10 deletions sangupackage_todo.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@

Versie 3.5.9

Bugfixes:
- Rood bolletje om rij troepen te verwijderen werkt weer
- Bugfix session timeout bij het versturen van veel aanvallen





/* Troepenlijst type=own_home */
tekst filter, continent

Expand Down Expand Up @@ -46,21 +57,12 @@
-> extra icons: doeldorp aanvallen, doeldorp verdedigen
-> tooltip met looptijden van huidig dorp?

JUMPER:
-> always open mode
-> opdelen in groepen
-> toevoegen, deleten, van plaats/groep wisselen
-> extra icons: centreren, overzicht,
-> checken of het dorp van jezelf is?
-> onder aanval icon met eerste aanval toevoegen: 15 aanvallen, 13 os
-> anders eigen aanvallen/os op het dorp tonen
-> link naar de verzamelplaats?


vriendenlijst die voortdurend openstaat:
-> erop klikken om andere dingen te doen
-> mededeling sturen: ";" + naam toevoegen
-> bericht doorsturen
-> om de 5 minuten checken
etc


Expand Down
2 changes: 1 addition & 1 deletion site/index_toMerge.php
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@

<h1>Installatie</h1>
Het script downloaden:
<a href="<?php echo $fileName; ?>" onclick="var that=this;_gaq.push(['_trackEvent','UserScripts','LinkClicked','<?php echo $currentVersion; ?>']);setTimeout(function(){location.href=that.href;},200);return false;"><?php echo $fileName; ?></a>
<a href="<?php echo $fileName; ?>" onclick="var that=this;_gaq.push(['_trackEvent','Downloads','LinkClicked','<?php echo $currentVersion; ?>']);setTimeout(function(){location.href=that.href;},200);return false;"><?php echo $fileName; ?></a>
<br>Laatste update: <?php echo $lastReleaseDate; ?> (<?php echo $currentVersion; ?>)

<br><br>
Expand Down
29 changes: 29 additions & 0 deletions source/func/persistence.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,16 @@ var pers;
}
}

function getSession(key) {
key = getWorldKey(key);
if (modernizr.localstorage) {
var value = sessionStorage[key];
return typeof value === 'undefined' ? '' : value;
} else {
return getCookie(key);
}
}

function get(key) {
return getGlobal(getWorldKey(key));
}
Expand Down Expand Up @@ -77,15 +87,34 @@ var pers;
}
}

function setSession(key, value) {
key = getWorldKey(key);
if (modernizr.localstorage) {
sessionStorage[key] = value;
} else {
setCookie(key, value);
}
}

function removeSessionItem(key) {
if (modernizr.localstorage) {
sessionStorage.removeItem(key);
}
// fuck cookies
}

function set(key, value) {
setGlobal(getWorldKey(key), value);
}

pers.removeSessionItem = removeSessionItem;
pers.getWorldKey = getWorldKey;
pers.set = set;
pers.setCookie = setCookie;
pers.setGlobal = setGlobal;
pers.setSession = setSession;
pers.get = get;
pers.getCookie = getCookie;
pers.getGlobal = getGlobal;
pers.getSession = getSession;
})(pers || (pers = {}));
28 changes: 24 additions & 4 deletions source/page/place/confirm.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,31 @@ if (dodgeCookie) {

if (user_data.attackAutoRename) {
// rename attack command
// cookie reading code in place.js
var villageCoord = $("input[name='x']", attackFrame).val() + '|' + $("input[name='y']", attackFrame).val();
var sent = buildAttackString(villageCoord, unitsSent, player, !isAttack);
document.title = game_data.village.coord + " -> " + sent;
sent = (isAttack ? trans.tw.command.attackOn : trans.tw.command.supportFor) + targetVillage + "\\" + sent;

var twInitialCommandName = (isAttack ? trans.tw.command.attackOn : trans.tw.command.supportFor) + targetVillage;
pers.setSession("attRen_" + game_data.village.id + '_' + twInitialCommandName, sent);
}




















var rand = Math.floor(Math.random() * 1000);
pers.setCookie("attRen" + rand, game_data.village.id + '_' + sent, 10);
}
36 changes: 18 additions & 18 deletions source/page/place/place.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
if (user_data.attackAutoRename) {
// Less then ideal solution:
// Does not work properly when sending many attacks (ie snobtrain)
// In confirm.js they are saved as a cookie (with expiration)
var cooks = document.cookie.split("; ");
var x;
for (x = 0; x < cooks.length; x++) {
var cookie = cooks[x];
//q(x + " -> " + cookie);
if (cookie.indexOf(pers.getWorldKey("attRen")) == 0) {
var val = cookie.substr(cookie.indexOf("=") + 1);
var thisVil = val.substr(0, val.indexOf('_'));
val = val.substr(val.indexOf('_') + 1);
var id = val.substr(0, val.indexOf("\\"));
var msg = val.substr(val.indexOf("\\") + 1);

if (id.length > 0 && thisVil == game_data.village.id) {
var rename = $("input[value='" + id + "']");
if (rename.size() > 0) {
pers.setCookie(cookie.substr(0, cookie.indexOf("=")), "", 0);
rename.val(msg).next().click();
// In confirm.js the cookies are saved

var hasAttackRenamingCookieNeedle = pers.getWorldKey('attRen_' + game_data.village.id + '_');
for (var i = 0; i < sessionStorage.length; i++) {
var key = sessionStorage.key(i);
if (key.indexOf(hasAttackRenamingCookieNeedle) == 0) {
var twInitialCommandName = key.substr(hasAttackRenamingCookieNeedle.length);
//q("found:" + hasAttackRenamingCookieNeedle + " -> " + twInitialCommandName);

// ' is an invalid village name character so we don't need to escape
var commandRenameInputBox = $("input[value='" + twInitialCommandName + "']", content_value);
if (commandRenameInputBox.length > 0) {
var sanguCommandName = sessionStorage.getItem(key);
commandRenameInputBox.val(sanguCommandName).next().click();
pers.removeSessionItem(key);

if (commandRenameInputBox.closest("table").find("tr").length > 2) {
commandRenameInputBox.closest("td").addClass("selected");
}
}
}
Expand Down
2 changes: 1 addition & 1 deletion source/version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.5.8
3.5.9

0 comments on commit ee08b26

Please sign in to comment.