1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
{
"uid": "4BC1A1F97C9DF54AF66847850D28A7141D5F",
"isLoaded": true,
"lastModificationTime": 0,
"items": {
"name": "Message Batcher",
"type": "objj_script",
"parentId": "AA3A4BE42F4D544A1509F6044F8DC9BF1969",
"order": 3,
"content": "KGZ1bmN0aW9uKCkKewogICAgcmV0dXJuIHsibmFtZSI6ICJNZXNzYWdlIEJhdGNoZXIiLCAidHlwZSI6ICJHU1NjcmlwdEFnZW50IiwgImNhdGVnb3J5IjogeyJuYW1lIjogIkRlZmF1bHQiLCAiaWRlbnRpZmllciI6ICJncy5kZWZhdWx0In0sICJ0YXJnZXQiOiAibm9uZSIsICJwcm9jZXNzIjogeyJkZXNjcmlwdGlvbiI6ICJNZXNzYWdlIEJhdGNoZXIiLCAicnVuIjogZnVuY3Rpb24ob2JqZWN0LCBjb250ZXh0KQogICAgewogICAgICAgIHRyeSAgICAgICAgewogICAgICAgICAgICB2YXIgbWVzc2FnZSA9IChudy5DbGlwYm9hcmQuZ2V0KCkpLmdldCgidGV4dCIpOwogICAgICAgICAgICB2YXIgbWVzc2FnZXMgPSBtZXNzYWdlLnNwbGl0KC8jKC4rKS9naW0pOwogICAgICAgICAgICBtZXNzYWdlcyA9IG1lc3NhZ2VzLndoZXJlKGZ1bmN0aW9uKG0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBtLmxlbmd0aCA+IDA7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICB2YXIgYmF0Y2ggPSBbXTsKICAgICAgICAgICAgdmFyIGNoYXJhY3RlcnMgPSAoY29udGV4dC5nZXREb2N1bWVudHNCeVR5cGUoImRhdGFfcmVjb3JkIikpLndoZXJlKGZ1bmN0aW9uKHIpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiByLml0ZW1zLmNhdGVnb3J5ID09ICJjaGFyYWN0ZXJzIjsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHZhciBjb21tYW5kID0gKGNvbnRleHQuZ2V0RG9jdW1lbnRzQnlUeXBlKCJldmVudF9jb21tYW5kIikpLmZpcnN0KGZ1bmN0aW9uKGMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBjLml0ZW1zLmlkID09ICJncy5TaG93TWVzc2FnZSI7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lc3NhZ2VzLmxlbmd0aDsgaSArPSAyKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2YXIgY2hhcmFjdGVyID0gY2hhcmFjdGVycy5maXJzdChmdW5jdGlvbihjKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBjLml0ZW1zLm5hbWUgPT0gbWVzc2FnZXNbaV07CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIHZhciBjb21tYW5kRGF0YSA9IE9iamVjdC5jb3B5KGNvbW1hbmQuaXRlbXMuZGVmYXVsdFZhbHVlKTsKICAgICAgICAgICAgICAgIGNvbW1hbmREYXRhLm1lc3NhZ2UgPSB7ImxjSWQiOiBudWxsLCAiZGVmYXVsdFRleHQiOiBtZXNzYWdlc1tpICsgMV0udHJpbSgpfTsKICAgICAgICAgICAgICAgIGNvbW1hbmREYXRhLmNoYXJhY3RlcklkID0gY2hhcmFjdGVyID8gY2hhcmFjdGVyLml0ZW1zLmlkIDogMDsKICAgICAgICAgICAgICAgIGNvbW1hbmREYXRhLmZpZWxkRmxhZ3MgPSB7ImR1cmF0aW9uIjogMX07CiAgICAgICAgICAgICAgICBiYXRjaC5wdXNoKHsiaWQiOiAiZ3MuU2hvd01lc3NhZ2UiLCAicGFyYW1zIjogeyJ3YWl0Rm9yQ29tcGxldGlvbiI6IDEsICJkdXJhdGlvbiI6IDE1LCAiZXhwcmVzc2lvbklkIjogbnVsbCwgImN1c3RvbSI6IHsib2JqZWN0IjogeyJ4IjogMCwgInkiOiAwLCAic2l6ZSI6IHsid2lkdGgiOiAzMDAsICJoZWlnaHQiOiAxMDB9fX0sICJtZXNzYWdlIjogeyJsY0lkIjogbnVsbCwgImRlZmF1bHRUZXh0IjogbWVzc2FnZXNbaSArIDFdLnRyaW0oKX0sICJwb3NpdGlvbiI6IDAsICJjaGFyYWN0ZXJJZCI6IGNoYXJhY3RlciA/IGNoYXJhY3Rlci5pdGVtcy5pZCA6IDAsICJwYXJ0aWFsIjogMCwgImZpZWxkRmxhZ3MiOiB7ImR1cmF0aW9uIjogMX0sICJleHByZXNzaW9ucyI6IFtdLCAiYW5pbWF0aW9ucyI6IFtdfSwgImluZGVudCI6IDAsICJ1aWQiOiBjb250ZXh0LmdlbmVyYXRlVWlkKCksICJleHBhbmRlZCI6IHRydWV9KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAoKF9fX3IxID0gQ1BQYXN0ZWJvYXJkLmlzYS5vYmpqX21zZ1NlbmQwKENQUGFzdGVib2FyZCwgImdlbmVyYWxQYXN0ZWJvYXJkIikpLCBfX19yMSA9PSBudWxsID8gbnVsbCA6IF9fX3IxLmlzYS5vYmpqX21zZ1NlbmQxKF9fX3IxLCAic2V0U3RyaW5nOiIsIEpTT04uc3RyaW5naWZ5KGJhdGNoKSArICIubm92ZWxzaGFycC92bi1zY2VuZS1jb21tYW5kIikpOwogICAgICAgICAgICBjb250ZXh0LmZpbmlzaEV4ZWN1dGlvbigiTWVzc2FnZXMgc3VjY2Vzc2Z1bGx5IGNvcGllZCBpbnRvIHlvdXIgY2xpcGJvYXJkISIpOwogICAgICAgIH0KICAgICAgICBjYXRjaChleCkgICAgICAgICB7CiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXgpOwogICAgICAgICAgICBjb250ZXh0LmZpbmlzaEV4ZWN1dGlvbigiQW4gZXJyb3Igb2NjdXJlZC4gUGxlYXNlIGNoZWNrIHRoZSBEZWJ1ZyBDb25zb2xlIGZvciBtb3JlIGRldGFpbHMuIik7CiAgICAgICAgfSAgICAgICAgdmFyIF9fX3IxOwogICAgfX19Owp9KSgpOwo=",
"rawContent": "/*\n* Message Batcher\n*\n* Converts messages in the format:\n* \n* #Miku\n Hey how is it going?\n I feel so good today!\n \n #Sana\n I feel great too!\n \n*/\n\n(function() {\n return {\n \"name\": \"Message Batcher\",\n \"type\": \"GSScriptAgent\",\n \"category\": { \"name\": \"Default\", \"identifier\": \"gs.default\" },\n \"target\": \"none\",\n \"process\": {\n \"description\": \"Message Batcher\",\n \"run\": function(object, context){\n try {\n var message = nw.Clipboard.get().get(\"text\");\n var messages = message.split(/#(.+)/gim);\n messages = messages.where(function(m){ return m.length > 0 });\n var batch = []\n var characters = context.getDocumentsByType(\"data_record\").where(function(r){return r.items.category == \"characters\"; });\n var command = context.getDocumentsByType(\"event_command\").first(function(c){return c.items.id == \"gs.ShowMessage\"});\n \n for(var i = 0; i < messages.length; i += 2)\n {\n var character = characters.first(function(c){ return c.items.name == messages[i] });\n var commandData = Object.copy(command.items.defaultValue);\n commandData.message = {\"lcId\": null,\"defaultText\":messages[i+1].trim() };\n commandData.characterId = character ? character.items.id : 0;\n commandData.fieldFlags = { \"duration\":1 };\n \n batch.push({\n \"id\":\"gs.ShowMessage\",\n \"params\":\n {\n \"waitForCompletion\":1,\n \"duration\":15,\n \"expressionId\":null,\n \"custom\":{\"object\":{\"x\":0,\"y\":0,\"size\":{\"width\":300,\"height\":100}}},\n \"message\":{\"lcId\": null,\"defaultText\":messages[i+1].trim() },\n \"position\":0,\n \"characterId\": character ? character.items.id : 0,\n \"partial\":0,\n \"fieldFlags\":{\"duration\":1},\n \"expressions\":[],\n \"animations\":[]\n },\n \"indent\":0,\n \"uid\": context.generateUid(),\n \"expanded\":true\n });\n }\n \n [[CPPasteboard generalPasteboard] setString:JSON.stringify(batch)+\".novelsharp/vn-scene-command\"];\n context.finishExecution(\"Messages successfully copied into your clipboard!\");\n } catch(ex) {\n console.error(ex)\n context.finishExecution(\"An error occured. Please check the Debug Console for more details.\")\n }\n }\n }\n }\n})()"
},
"summary": [
"name",
"type"
]
}
|