Skip to content

Instantly share code, notes, and snippets.

@cmdr2
Created September 4, 2015 09:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cmdr2/bbe336a83b56a2803d1e to your computer and use it in GitHub Desktop.
Save cmdr2/bbe336a83b56a2803d1e to your computer and use it in GitHub Desktop.
Python script to periodically log the user list of JanusVR using an Android phone (use SL4A with Python). This allows the logger bot to operate 24 hours a day from my phone, instead of stopping when I close my laptop.
import android
import sys
import json
import time
import datetime
import socket
from threading import Timer
f = open("janus_users.txt", 'w', 0)
def log(msg):
out = datetime.datetime.utcnow().isoformat() + " - " + msg
f.write(out + "\n")
print out
# the args thing can be cleaned up in *args
def setInterval(func, arg0, arg1, sec):
def funcWrapper():
setInterval(func, arg0, arg1, sec)
func(arg0, arg1)
t = Timer(sec, funcWrapper)
t.start()
return t
def requestUsers(sock, droid):
temp = droid.batteryGetTemperature().result
log("CLIENT: battery at " + str(droid.batteryGetLevel().result) + "%, temp at " + str(temp))
userListMsg = json.dumps({"method": "users_online", "data": {"maxResults": 50}})
log("CLIENT: " + userListMsg)
sock.sendall(userListMsg + "\r\n")
data = sock.recv(4096)
log("SERVER: " + data)
if temp > 410:
log("CLIENT: Battery overheating at " + str(temp) + "! Shutting down!")
sys.exit()
try:
droid = android.Android()
droid.wakeLockAcquirePartial()
droid.batteryStartMonitoring()
time.sleep(2)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("babylon.vrsites.com", 5566))
logonMsg = json.dumps({"method":"logon","data":{"userId":"SomethingOne2Bot","version":"40.3","roomId":"test_room"}})
log("CLIENT: " + logonMsg)
sock.sendall(logonMsg + "\r\n")
data = sock.recv(4096)
log("SERVER: " + data)
msg = json.loads(data)
if msg["method"] == "okay":
setInterval(requestUsers, sock, droid, 300)
requestUsers(sock, droid)
# sock.close()
except Exception,e:
print e
sys.exit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment