예제 #1
0
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)
예제 #2
0
#!/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()