Skip to content

Instantly share code, notes, and snippets.

@esmasui
Created August 6, 2013 11:33
Show Gist options
  • Save esmasui/6163735 to your computer and use it in GitHub Desktop.
Save esmasui/6163735 to your computer and use it in GitHub Desktop.
enchantMOON MOONのダンプ
alert = function alert(message, callback) {
if (inAlert) {
return;
}
inAlert = true;
_alertCallback = callback || function() {};
__moon__.invoke('alert', '1', JSON.stringify([ message ]));
}
--------
_resumeFromAlert = function _resumeFromAlert() {
inAlert = false;
_alertCallback();
}
--------
penPrompt = function penPrompt(message, callback) {
if (inPenPrompt) {
return;
}
inPenPrompt = true;
_penPromptCallback = callback || function() {};
__moon__.invoke('penPrompt', '1', JSON.stringify([ message ]));
}
--------
_resumeFromPenPrompt = function _resumeFromPenPrompt(result) {
inPenPrompt = false;
_penPromptCallback(result);
}
--------
openStickerPage = function openStickerPage(callback) {
if (inStickerPage) {
return;
}
inStickerPage = true;
_stickerPageCallback = callback || function() {};
__moon__.invoke('openStickerPage', '1', '[]');
}
--------
_resumeFromStickerPage = function _resumeFromStickerPage(imgPath) {
inStickerPage = false;
_stickerPageCallback(imgPath);
}
--------
saveImage = function saveImage(name, canvas) {
var arg = JSON.stringify([ name, html5CanvasToSerializableObject(canvas) ]);
var result = __moon__.invoke('saveImage', '1', arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
openNotebook = function openNotebook(callback) {
if (inNotebook) {
return;
}
inNotebook = true;
_notebookCallback = callback || function() {};
__moon__.invoke('openNotebook', '1', '[]');
}
--------
_resumeFromNotebook = function _resumeFromNotebook(pageId) {
inNotebook = false;
_notebookCallback(pageId);
}
--------
uploadCurrentPageToEvernote = function uploadCurrentPageToEvernote(onsuccess, onfailure) {
if (evernoteProgress) {
return;
}
evernoteProgress = true;
_evernoteSuccessCallback = onsuccess || function() {};
_evernoteFailureCallback = onfailure || function() {};
__moon__.invoke('uploadCurrentPageToEvernote', '1', '[]');
}
--------
_uploadCurrentPageToEvernoteCallback = function _uploadCurrentPageToEvernoteCallback(result) {
evernoteProgress = false;
if (result) {
_evernoteSuccessCallback();
} else {
_evernoteFailureCallback();
}
}
--------
getPageThumbnail = function getPageThumbnail(pageId) {
var arg = JSON.stringify([ pageId ]);
var result = __moon__.invoke('getPageThumbnail', '1', arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return serializableObjectToHtml5Canvas(ret);
} else {
throw new Error(error);
}
}
--------
getEditPaperThumbnail = function getEditPaperThumbnail() {
var result = __moon__.invoke('getEditPaperThumbnail', '1', '[]');
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return serializableObjectToHtml5Canvas(ret);
} else {
throw new Error(error);
}
}
--------
html5CanvasToSerializableObject = function html5CanvasToSerializableObject(canvas) {
var i, l, ctx = canvas.getContext('2d'),
w = canvas.width, h = canvas.height,
imgData = ctx.getImageData(0, 0, w, h),
data = imgData.data,
str = '',
table = [];
for (i = 0; i < 256; i++) {
if (i < 16) {
table[i] = '0' + i.toString(16);
} else {
table[i] = i.toString(16);
}
}
for (i = 0, l = data.length; i < l; i++) {
str += table[data[i]];
}
return {
width: w,
height: h,
data: str
};
}
--------
serializableObjectToHtml5Canvas = function serializableObjectToHtml5Canvas(object) {
var w = object.width;
var h = object.height;
var rawString = object.data;
var canvas = document.createElement('canvas');
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext('2d');
var imgData = ctx.getImageData(0, 0, w, h);
var data = imgData.data;
var i = 0, j = 0;
for (var y = 0; y < h; y++) {
for (var x = 0; x < w; x++) {
data[i] = parseInt(rawString[j], 16) * 16 + parseInt(rawString[j + 1], 16);
data[i + 1] = parseInt(rawString[j + 2], 16) * 16 + parseInt(rawString[j + 3], 16);
data[i + 2] = parseInt(rawString[j + 4], 16) * 16 + parseInt(rawString[j + 5], 16);
data[i + 3] = parseInt(rawString[j + 6], 16) * 16 + parseInt(rawString[j + 7], 16);
i += 4;
j += 8;
}
}
ctx.putImageData(imgData, 0, 0);
return canvas;
}
--------
loadData = function loadData(src, callback) {
var xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send(null);
}
--------
peel = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
finish = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
openUrl = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
openPage = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
setPenColor = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
setPenWidth = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
getCurrentPage = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
setCurrentPage = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
getPaperJSON = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
setPaperJSON = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
getImagePath = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
getLocale = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
searchWeb = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
searchPage = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
searchStorage = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
showParticle = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
showParticles = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
recognizeStrokes = function () {
var arg = JSON.stringify(Array.prototype.slice.call(arguments));
var result = __moon__.invoke(name, version, arg);
var obj;
try {
obj = JSON.parse(result);
} catch (e) {
var err = new Error('returned invalid JSON from moon API: ' + result);
throw err;
}
var error = obj.error;
var ret = obj.result;
if (error === '') {
return ret;
} else {
throw new Error(error);
}
}
--------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment