class ContextMonitor(object): def __init__(self, presence = None): super(ContextMonitor, self).__init__() # Create the local context. self._context = Context() # Subscribe to Presence announcements. if presence == None: self._presence = Presence() self._presence.connect() else: self._presence = presence self._presence.subscribe('scavenger', self.receive_announcement) def receive_announcement(self, peer_name, peer_address, service): peer_name = peer_name.strip('\x00 ') cpu_strength, cpu_cores, active_tasks, network_media = struct.unpack("!fIII", service.data) peer = ScavengerPeer(peer_name, (peer_address, service.port), cpu_strength, cpu_cores, active_tasks, network_media) self._context.add(peer) def get_peers(self): return self._context.get_peers() def has_peer(self, name): return self._context.has_peer(name) def increment_peer_activity(self, name): self._context.increment_peer_activity(name) def decrement_peer_activity(self, name): self._context.decrement_peer_activity(name) def shutdown(self): self._presence.shutdown(True)
#!/bin/python3 from presence import Presence import time import os # change dir to where the script is DIR = os.path.dirname(os.path.realpath(__file__)) os.chdir(DIR) client_id = '451491740499705857' # My ID, please no abuse :( RPC = Presence(client_id) RPC.connect() # Magic PyPresence stuff, no idea :( line1 = os.popen('bash ./gimp-rpc.sh line1').read() # status line2 = os.popen('bash ./gimp-rpc.sh line2').read() # filename version = os.popen('bash ./gimp-rpc.sh version').read() line2old = line2 initresult = os.popen('bash ./init-script.sh').read() # Initialize the script if initresult.find("ERROR_WMCTRL_NOT_INSTALLED") != -1: date = os.popen('echo -n $(date +%s)').read() print( date + ' - wmctrl is not installed. Refer to README.md for more information.') exit() elif initresult.find("ERROR_SCRIPT_ALREADY_RUNNING") != -1: date = os.popen('echo -n $(date +%s)').read() print(date + ' - The script is already running! Stopping.') exit()