def GetTracker(key): """Get a tracker, or create one if it dosent exist""" tracker = Tracker.all().filter('name =',key).get() if tracker==None: tracker = Tracker(name=key) tracker.put() return tracker
def get(self): if os.environ.get('HTTP_HOST'): url = os.environ['HTTP_HOST'] else: url = os.environ['SERVER_NAME'] self.response.headers['Content-Type'] = 'text/plain' self.response.out.write( """OpenTrack\n Extreamly Basic tracking system, for use with p2p programs To use the tracker visit http://%s/trk/<tracker name> The tracker does not need to be setup beforhand It will return a list of IP adresses that have visited that tracker and add yours to the list Optionally add "?tick=<seconds>" to the url where seconds is how recently it has been visited the default tick is 60 seconds NEW: http://%s/tick/<tracker name> provides a way of refreshing yourself in a tracker without retrieveing a list \nCurrent Trackers (activity last 24 hours)\n"""%(url,url)) trackers = Tracker.all() for tracker in trackers: self.response.out.write(" - %s\n"%tracker.name)
def get(self): ## remove any old peers plist = Peer.all().filter('datetime <',datetime.now() - timedelta(days=1)) peercount = plist.count() for p in plist: p.delete() ## remove any empty trackers trackers = Tracker.all() trackercount = 0 for tracker in trackers: p = Peer.all().filter('tracker =',tracker).order('-datetime').get() if p == None: tracker.delete() trackercount += 1 ## some simple stats self.response.headers['Content-Type'] = 'text/plain' self.response.out.write("Cleaned %d trackers and %d peers"%(trackercount,peercount)) if trackercount and peercount: logging.info("Cleaned %d trackers and %d peers"%(trackercount,peercount))