Finish proofreading.

This commit is contained in:
Nicolas Stepien 2012-01-28 20:22:39 +01:00
parent 962ad27222
commit f30cc383ec
2 changed files with 122 additions and 106 deletions

View File

@ -1229,7 +1229,7 @@
var i, spoiler, _i, _len, _ref; var i, spoiler, _i, _len, _ref;
qr.el.hidden = true; qr.el.hidden = true;
qr.message.send({ qr.message.send({
abort: true req: 'abort'
}); });
d.activeElement.blur(); d.activeElement.blur();
$.removeClass(qr.el, 'dump'); $.removeClass(qr.el, 'dump');
@ -1639,7 +1639,7 @@
return; return;
} }
qr.message.send({ qr.message.send({
abort: true req: 'abort'
}); });
reply = qr.replies[0]; reply = qr.replies[0];
if (!(reply.com || reply.file)) { if (!(reply.com || reply.file)) {
@ -1775,21 +1775,20 @@
}); });
ready = function() { ready = function() {
if (location.hostname === 'sys.4chan.org') { if (location.hostname === 'sys.4chan.org') {
$.rm(script);
return qr.message.send({ return qr.message.send({
status: true, req: 'status',
ready: true ready: true
}); });
} }
}; };
if (d.documentElement) { if (d.documentElement) {
$.add(d.documentElement, script); $.add(d.documentElement, script);
$.rm(script);
ready(); ready();
return; return;
} }
return $.ready(function() { return $.ready(function() {
$.add(d.head, script); $.add(d.head, script);
$.rm(script);
return ready(); return ready();
}); });
}, },
@ -1799,65 +1798,69 @@
return postMessage(data, '*'); return postMessage(data, '*');
}, },
receive: function(data) { receive: function(data) {
var bb, form, i, l, name, ui8a, url, val, _ref; var _ref;
if (data.abort) { switch (data.req) {
if ((_ref = qr.ajax) != null) _ref.abort(); case 'abort':
qr.message.send({ if ((_ref = qr.ajax) != null) _ref.abort();
status: true return qr.message.send({
}); req: 'status'
return; });
case 'response':
return qr.response(data.html);
case 'status':
return qr.status(data);
default:
return qr.message.post(data);
} }
if (data.response) { },
qr.response(data.html); post: function(data) {
return; var bb, callbacks, form, i, l, name, opts, ui8a, url, val;
form = new FormData();
if (engine === 'gecko' && data.upfile) {
l = data.upfile.buffer.length;
ui8a = new Uint8Array(l);
for (i = 0; 0 <= l ? i < l : i > l; 0 <= l ? i++ : i--) {
ui8a[i] = data.upfile.buffer.charCodeAt(i);
}
bb = new MozBlobBuilder();
bb.append(ui8a.buffer);
form.append('upfile', bb.getBlob(data.upfile.type), data.upfile.name);
delete data.upfile;
} }
if (data.status) qr.status(data); url = "http://sys.4chan.org/" + data.board + "/post";
delete data.board;
delete data.qr; delete data.qr;
if (data.mode === 'regist') { for (name in data) {
url = "http://sys.4chan.org/" + data.board + "/post"; val = data[name];
delete data.board; if (val) form.append(name, val);
form = new FormData();
if (engine === 'gecko' && data.upfile) {
l = data.upfile.buffer.length;
ui8a = new Uint8Array(l);
for (i = 0; 0 <= l ? i < l : i > l; 0 <= l ? i++ : i--) {
ui8a[i] = data.upfile.buffer.charCodeAt(i);
}
bb = new MozBlobBuilder();
bb.append(ui8a.buffer);
form.append('upfile', bb.getBlob(data.upfile.type), data.upfile.name);
delete data.upfile;
}
for (name in data) {
val = data[name];
if (val) form.append(name, val);
}
return qr.ajax = $.ajax(url, {
onload: (function() {
return qr.message.send({
response: true,
html: this.response
});
})
}, {
form: form,
type: 'post',
upCallbacks: {
onload: function() {
return qr.message.send({
status: true,
progress: '...'
});
},
onprogress: function(e) {
return qr.message.send({
status: true,
progress: "" + (Math.round(e.loaded / e.total * 100)) + "%"
});
}
}
});
} }
callbacks = {
onload: function() {
return qr.message.send({
req: 'response',
html: this.response
});
}
};
opts = {
form: form,
type: 'post',
upCallbacks: {
onload: function() {
return qr.message.send({
req: 'status',
progress: '...'
});
},
onprogress: function(e) {
return qr.message.send({
req: 'status',
progress: "" + (Math.round(e.loaded / e.total * 100)) + "%"
});
}
}
};
return qr.ajax = $.ajax(url, callbacks, opts);
} }
} }
}; };
@ -2303,7 +2306,7 @@
d.title = d.title.match(/^.+-/)[0] + ' 404'; d.title = d.title.match(/^.+-/)[0] + ' 404';
g.dead = true; g.dead = true;
qr.message.send({ qr.message.send({
abort: true req: 'abort'
}); });
qr.status(); qr.status();
Favicon.update(); Favicon.update();

View File

@ -887,7 +887,7 @@ qr =
qr.dialog() qr.dialog()
close: -> close: ->
qr.el.hidden = true qr.el.hidden = true
qr.message.send abort: true qr.message.send req: 'abort'
d.activeElement.blur() d.activeElement.blur()
$.removeClass qr.el, 'dump' $.removeClass qr.el, 'dump'
for i in qr.replies for i in qr.replies
@ -1212,7 +1212,7 @@ qr =
qr.cooldown.auto = !qr.cooldown.auto qr.cooldown.auto = !qr.cooldown.auto
qr.status() qr.status()
return return
qr.message.send abort: true qr.message.send req: 'abort'
reply = qr.replies[0] reply = qr.replies[0]
# prevent errors # prevent errors
@ -1355,63 +1355,76 @@ qr =
script = $.el 'script', textContent: "window.addEventListener('message',#{code},false)" script = $.el 'script', textContent: "window.addEventListener('message',#{code},false)"
ready = -> ready = ->
if location.hostname is 'sys.4chan.org' if location.hostname is 'sys.4chan.org'
qr.message.send status: true, ready: true $.rm script
qr.message.send req: 'status', ready: true
# Chrome can access the documentElement on document-start # Chrome can access the documentElement on document-start
if d.documentElement if d.documentElement
$.add d.documentElement, script $.add d.documentElement, script
$.rm script
ready() ready()
return return
# other browsers will have to wait # other browsers will have to wait
$.ready -> $.ready ->
$.add d.head, script $.add d.head, script
$.rm script
ready() ready()
send: (data) -> send: (data) ->
data.changeContext = true data.changeContext = true
data.qr = true data.qr = true
postMessage data, '*' postMessage data, '*'
receive: (data) -> receive: (data) ->
if data.abort switch data.req
qr.ajax?.abort() when 'abort'
qr.message.send status: true qr.ajax?.abort()
return qr.message.send req: 'status'
if data.response # xhr response when 'response' # xhr response
qr.response data.html qr.response data.html
return when 'status'
if data.status qr.status data
qr.status data else
qr.message.post data # Reply object: we're posting
post: (data) ->
form = new FormData()
if engine is 'gecko' and data.upfile
# binary string to ArrayBuffer code from Aeosynth's 4chan X
l = data.upfile.buffer.length
ui8a = new Uint8Array l
for i in [0...l]
ui8a[i] = data.upfile.buffer.charCodeAt i
bb = new MozBlobBuilder()
bb.append ui8a.buffer
# https://bugzilla.mozilla.org/show_bug.cgi?id=690659
# Firefox does not support assigning a filename when appending a blob to a FormData.
form.append 'upfile', bb.getBlob(data.upfile.type), data.upfile.name
delete data.upfile
url = "http://sys.4chan.org/#{data.board}/post"
# Do not append these values to the form.
delete data.board
delete data.qr delete data.qr
if data.mode is 'regist' # reply object: we're posting
url = "http://sys.4chan.org/#{data.board}/post" for name, val of data
delete data.board form.append name, val if val
form = new FormData()
if engine is 'gecko' and data.upfile callbacks =
# binary string to ArrayBuffer code from Aeosynth's 4chan X onload: ->
l = data.upfile.buffer.length qr.message.send
ui8a = new Uint8Array l req: 'response'
for i in [0...l] html: @response
ui8a[i] = data.upfile.buffer.charCodeAt i opts =
bb = new MozBlobBuilder() form: form
bb.append ui8a.buffer type: 'post'
# https://bugzilla.mozilla.org/show_bug.cgi?id=690659 upCallbacks:
# Firefox does not support assigning a filename when appending a blob to a FormData onload: ->
form.append 'upfile', bb.getBlob(data.upfile.type), data.upfile.name qr.message.send
delete data.upfile req: 'status'
for name, val of data progress: '...'
form.append name, val if val onprogress: (e) ->
qr.ajax = $.ajax url, onload: (-> qr.message.send response: true, html: @response), qr.message.send
form: form req: 'status'
type: 'post' progress: "#{Math.round e.loaded / e.total * 100}%"
upCallbacks:
onload: -> qr.ajax = $.ajax url, callbacks, opts
qr.message.send
status: true
progress: '...'
onprogress: (e) ->
qr.message.send
status: true
progress: "#{Math.round e.loaded / e.total * 100}%"
options = options =
init: -> init: ->
@ -1798,7 +1811,7 @@ updater =
clearTimeout updater.timeoutID clearTimeout updater.timeoutID
d.title = d.title.match(/^.+-/)[0] + ' 404' d.title = d.title.match(/^.+-/)[0] + ' 404'
g.dead = true g.dead = true
qr.message.send abort: true qr.message.send req: 'abort'
qr.status() qr.status()
Favicon.update() Favicon.update()
return return