Files
Techmino/Zframework/clipboard_thread.lua
ParticleG 486e88e7bc -
2024-11-02 21:45:07 +08:00

50 lines
1.6 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'
love.timer=require'love.timer'
local retrieving=false
while true do
if trigCHN:getCount()>0 then
trigCHN:pop()
if setCHN:getCount()>0 then
repeat setCHN:pop() until setCHN:getCount()==1
-- 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 print('getCHN count:', getCHN:getCount()); getCHN:pop() end
print('Clipboard:', data)
getCHN:push(data)
retrieving=false
end,
function(id,error) print(id, error) end,
2,
'getClipboardText'
)
retrieving=true
end
JS.retrieveData(.0626)
end
love.timer.sleep(.0626)
end