Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import struct
- import time
- appleTVAddress = '10.0.69.3'
- pairingGuid = '0x4AC01DBB5395C5E8'
- cmdBufferMap = {
- 'up': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchDown&time=0&point=20,275",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=1&point=20,270",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=2&point=20,265",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=3&point=20,260",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=4&point=20,255",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=5&point=20,250",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1BtouchUp&time=6&point=20,250"
- ],
- 'down': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchDown&time=0&point=20,250",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=1&point=20,255",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=2&point=20,260",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=3&point=20,265",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=4&point=20,270",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=5&point=20,275",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1BtouchUp&time=6&point=20,275"
- ],
- 'left': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1EtouchDown&time=0&point=75,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=1&point=70,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=3&point=65,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=4&point=60,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=5&point=55,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=6&point=50,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1BtouchUp&time=7&point=50,100"
- ],
- 'right': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchDown&time=0&point=50,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=1&point=55,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=3&point=60,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=4&point=65,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=5&point=70,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1DtouchMove&time=6&point=75,100",
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x1BtouchUp&time=7&point=75,100"
- ],
- 'menu': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x04menu"
- ],
- 'select': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x06select"
- ],
- 'home': [
- "cmcc\x00\x00\x00\x01\x30cmbe\x00\x00\x00\x07topmenu"
- ]
- }
- def login():
- """Returns a session id on success"""
- r = requests.get('http://%s:3689/login?pairing-guid=%s&hasFP=1' % (appleTVAddress, pairingGuid),
- timeout=1)
- return struct.unpack('>i', r.content[-4:])[0]
- def logout(sessionId):
- print "Logging out session:", sessionId
- r = requests.get('http://%s:3689/logout?session-id=%d' % (appleTVAddress, sessionId))
- def issueCommand(sessionId, name):
- for buffer in cmdBufferMap[name]:
- r = requests.post('http://%s:3689/ctrl-int/1/controlpromptentry?prompt-id=114&session-id=%d' % (appleTVAddress, sessionId),
- data=buffer)
- time.sleep(0.002)
- sessionId = login()
- print "after login, session id:", sessionId
- try:
- issueCommand(sessionId, "down")
- finally:
- logout(sessionId)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement