Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import discord, datetime, re, os, requests, asyncio
- from dateutil import parser
- from lifxlan import LifxLAN
- client = discord.Client()
- token = open('tokens/wot','r').read()
- lastex = datetime.datetime.now()
- gtime = lastex - datetime.timedelta(days=1)
- light = LifxLAN(4).get_device_by_name('Lounge Room')
- @client.event
- async def on_ready():
- print('-'*34)
- print('Lounge Light setter is ready')
- print('-'*34)
- now = datetime.datetime.now()
- tdown = ''
- async def check_lightz():
- global lastex
- global gtime
- await client.wait_until_ready()
- while not client.is_closed():
- statss = os.popen('sudo nmap -sn 192.168.1.0/24').readlines()
- if ('30:5A:3A:02:6A:E4' in str(statss)) or ('D4:81:D7:8D:3E:4E' in str(statss)) or ('2C:F0:5D:05:B1:39' in str(statss)):
- if datetime.datetime.now() > gtime and light.get_power() == 0:
- try:
- tdown = requests.get('https://www.timeanddate.com/sun/australia/adelaide')
- tdown.raise_for_status()
- gtime = datetime.datetime.now() + datetime.timedelta(hours=4)
- except:
- print('Web err')
- else:
- td = re.findall('Sunset Today: </span><span class=three>(.*)</span><span class="comp sa24"', tdown.text)
- td = parser.parse(td[0])
- now = datetime.datetime.now()
- w10 = now + datetime.timedelta(minutes=45)
- if w10 > td:
- try:
- light.set_power(65535, 59000)
- light.set_color(45510, 0, 40240, 2500)
- except:
- pass
- else:
- try:
- lts.get_device_by_name('Lounge Room').set_power(0)
- except:
- pass
- lastex = datetime.datetime.now()
- await asyncio.sleep(60)
- async def redun():
- global lastex
- await client.wait_until_ready()
- while not client.is_closed():
- try:
- if lastex + datetime.timedelta(minutes = 3) < datetime.datetime.now():
- erch = client.get_channel(695443373292781599)
- await erch.send(f'''autolounge.py: Restarting check_lightz.''')
- client.loop.create_task(check_lightz())
- except:
- pass
- await asyncio.sleep(120)
- client.loop.create_task(check_lightz())
- client.run(token)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement