first commit
This commit is contained in:
commit
0480c2ddd0
41
main.py
Normal file
41
main.py
Normal file
|
@ -0,0 +1,41 @@
|
|||
|
||||
import asyncio, time, json, discordrpc, socket
|
||||
from websockets.server import serve
|
||||
|
||||
def is_port_in_use(port: int) -> bool:
|
||||
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
||||
return s.connect_ex(('localhost', port)) == 0
|
||||
|
||||
|
||||
if(is_port_in_use(52121)):
|
||||
exit(1)
|
||||
|
||||
rpc = discordrpc.RPC(app_id="863873014587326494")
|
||||
rpc.set_activity(details="Not doing.. anything..", large_image="small")
|
||||
lastMessage = 0;
|
||||
|
||||
async def echo(websocket):
|
||||
global lastMessage;
|
||||
async for message in websocket:
|
||||
data = json.loads(message);
|
||||
rpc.set_activity(state=f"Cursor position: {data["cursorPosition"]}", details=f"{data["name"]}", large_image="small")
|
||||
|
||||
lastMessage = time.time()
|
||||
|
||||
async def main():
|
||||
print("started ws")
|
||||
|
||||
loop = asyncio.get_event_loop()
|
||||
|
||||
async def heartbeatChecker():
|
||||
if lastMessage != 0:
|
||||
if time.time()-lastMessage > 5:
|
||||
exit(0)
|
||||
loop.call_later(2, lambda: asyncio.ensure_future(heartbeatChecker()))
|
||||
|
||||
await heartbeatChecker();
|
||||
|
||||
async with await serve(echo, "localhost", 52121):
|
||||
await asyncio.Future()
|
||||
|
||||
asyncio.run(main())
|
47
main.qml
Normal file
47
main.qml
Normal file
|
@ -0,0 +1,47 @@
|
|||
import QOwnNotesTypes 1.0
|
||||
import QtQml 2.0
|
||||
import QtWebSockets 1.1
|
||||
|
||||
Script {
|
||||
property string scriptDirPath
|
||||
property QtObject timer
|
||||
property QtObject websocket
|
||||
|
||||
websocket: WebSocket {
|
||||
id: socket
|
||||
|
||||
url: "ws://localhost:52121"
|
||||
onTextMessageReceived: {
|
||||
script.log("Received message: " + message);
|
||||
}
|
||||
onStatusChanged: {
|
||||
if (socket.status == WebSocket.Error)
|
||||
script.log("Error: " + socket.errorString);
|
||||
else if (socket.status == WebSocket.Open)
|
||||
script.log("Open!");
|
||||
else if (socket.status == WebSocket.Closed)
|
||||
script.log("Socket closed");
|
||||
}
|
||||
active: true
|
||||
}
|
||||
|
||||
function init() {
|
||||
script.startDetachedProcess("/usr/bin/python", [scriptDirPath + "/main.py"], 0, 0, 0, scriptDirPath);
|
||||
}
|
||||
|
||||
timer: Timer {
|
||||
interval: 1000
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: {
|
||||
var note = script.currentNote();
|
||||
|
||||
websocket.sendTextMessage(JSON.stringify({
|
||||
name: note.name,
|
||||
cursorPosition: script.noteTextEditCursorPosition(),
|
||||
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue