43 lines
1 KiB
Python
Executable file
43 lines
1 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import datetime
|
|
import os
|
|
import requests
|
|
import sys
|
|
|
|
import asyncio
|
|
from nio import AsyncClient, RoomMessageNotice
|
|
|
|
def send_ping(success, msg=""):
|
|
url = os.environ['MATRIX_HC_URL']
|
|
if not success:
|
|
url += "/fail"
|
|
|
|
requests.get(url, data=msg, headers={'user-agent': os.environ['USER_AGENT']})
|
|
|
|
async def main():
|
|
try:
|
|
client = AsyncClient(os.environ['MATRIX_SERVER'])
|
|
client.access_token = os.environ['MATRIX_TOKEN']
|
|
client.device_id = os.environ['USER_AGENT']
|
|
await client.room_send(
|
|
room_id = os.environ['MATRIX_ROOM'],
|
|
message_type = "m.room.message",
|
|
content = {
|
|
"msgtype": "m.text",
|
|
"body": "!ping"
|
|
}
|
|
)
|
|
except Exception as e:
|
|
print(e)
|
|
|
|
print("exception during login or sending")
|
|
send_ping(False, str(e))
|
|
sys.exit(1)
|
|
await client.close()
|
|
|
|
send_ping(True)
|
|
sys.exit(0)
|
|
|
|
|
|
asyncio.new_event_loop().run_until_complete(main())
|