49 lines
1.5 KiB
Lua
49 lines
1.5 KiB
Lua
local getCHN=love.thread.getChannel('CLIP_get')
|
|
local setCHN=love.thread.getChannel('CLIP_set')
|
|
local trigCHN=love.thread.getChannel('CLIP_trig')
|
|
|
|
JS=require'Zframework.js'
|
|
local sleep=require'love.timer'.sleep
|
|
|
|
local retrieving=false
|
|
while true do
|
|
if trigCHN:getCount()>0 then
|
|
local dt=trigCHN:pop()
|
|
if setCHN:getCount()>0 then
|
|
while setCHN:getCount()>1 do setCHN:pop() end
|
|
-- Set Clipboard
|
|
JS.callJS(JS.stringFunc(
|
|
[[
|
|
window.navigator.clipboard
|
|
.writeText('%s')
|
|
.then(() => console.log('Copied to clipboard'))
|
|
.catch((e) => console.warn(e));
|
|
]],
|
|
setCHN:pop()
|
|
))
|
|
end
|
|
-- Get Clipboard
|
|
if not retrieving then
|
|
JS.newPromiseRequest(
|
|
JS.stringFunc[[
|
|
window.navigator.clipboard
|
|
.readText()
|
|
.then((text) => _$_(text))
|
|
.catch((e)=>{});
|
|
]],
|
|
function(data)
|
|
while getCHN:getCount()>0 do getCHN:pop() end
|
|
getCHN:push(data)
|
|
retrieving=false
|
|
end,
|
|
function() retrieving=false end,
|
|
1,
|
|
'getClipboardText'
|
|
)
|
|
retrieving=true
|
|
end
|
|
JS.retrieveData(dt)
|
|
end
|
|
sleep(.001)
|
|
end
|