From 960dd0cd28cc0699255732df9c3a985e232a7bb6 Mon Sep 17 00:00:00 2001 From: suVene Date: Wed, 24 Dec 2008 14:09:16 +0000 Subject: response header の解析 bugfix. git-svn-id: http://svn.coderepos.org/share/lang/javascript/vimperator-plugins/trunk@27363 d0d07461-0603-4401-acd4-de1884942a52 --- pluginManager.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'pluginManager.js') diff --git a/pluginManager.js b/pluginManager.js index bacfb65..ed3d629 100644 --- a/pluginManager.js +++ b/pluginManager.js @@ -1,3 +1,4 @@ +pluginManager.js var PLUGIN_INFO = {NAME} @@ -196,7 +197,9 @@ function checkVersion(plugin){ } function updatePlugin(plugin, checkOnly){ var [localResource, serverResource, store] = getResourceInfo(plugin); - + var localDate = Date.parse(localResource['Last-Modified']) || 0; + var serverDate = Date.parse(serverResource.headers['Last-Modified']) || 0; + var data = { 'Local Version': plugin.info.version || 'unknown', 'Local Last-Modified': localResource['Last-Modified'] || 'unkonwn', @@ -214,10 +217,11 @@ function updatePlugin(plugin, checkOnly){ localResource['Last-Modified'] == serverResource.headers['Last-Modified']){ data.Information = 'up to date.'; } else if (plugin.info.version > serverResource.version || - localResource['Last-Modified'] > serverResource.headers['Last-Modified']){ + localDate > serverDate){ data.information = 'local version is newest.'; } else { data.Information = overwritePlugin(plugin, serverResource); + localResource = {}; // cleanup pref. localResource['Last-Modified'] = serverResource.headers['Last-Modified']; store.set(plugin.name, localResource); store.save(); @@ -242,8 +246,9 @@ function getResourceInfo(plugin){ try { xhr.getAllResponseHeaders().split(/\r?\n/).forEach(function(h){ var pair = h.split(': '); - if (pair && pair.length > 1) - headers[pair.shift()] = pair.join('').substring(1, pair.join('').length - 1); + if (pair && pair.length > 1) { + headers[pair.shift()] = pair.join(''); + } }); } catch(e){} let m = /\bPLUGIN_INFO[ \t\r\n]*=[ \t\r\n]*]*)?>([\s\S]+?)<\/VimperatorPlugin[ \t\r\n]*>/(source); -- cgit v1.2.3