def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Instantiate our account DB interface using config:
        dbtype = config.GetString("accountdb-type", "local")
        if dbtype == "local":
            self.accountDB = LocalAccountDB(self)
        elif dbtype == "remote":
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error("Invalid account DB type configured: %s" % dbtype)

        # Listen out for any accounts that disconnect.
        self.air.netMessenger.accept("accountDisconnected", self, self.__accountDisconnected)

        # This attribute determines if we want to disable logins.
        self.loginsEnabled = True
        # Listen out for any messages that tell us to disable logins.
        self.air.netMessenger.accept("enableLogins", self, self.setLoginEnabled)
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Instantiate our account DB interface using config:
        dbtype = config.GetString('accountdb-type', 'local')
        if dbtype == 'local':
            self.accountDB = LocalAccountDB(self)
        elif dbtype == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid account DB type configured: %s' %
                              dbtype)

        # Listen out for any accounts that disconnect.
        #self.air.netMessenger.accept('accountDisconnected', self, self.__accountDisconnected)

        # This attribute determines if we want to disable logins.
        self.loginsEnabled = True
        # Listen out for any messages that tell us to disable logins.
        self.air.netMessenger.accept('enableLogins', self,
                                     self.setLoginEnabled)
Example #3
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}
        self.sessionKey = '4ZHk9Gu3zBURVTdZUjpCDx1IS8GdhuOjg67IQQSpZsE='

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Setup ban manager
        self.banManager = BanManagerUD(self.air)
        self.banManager.setup()

        # Instantiate our account DB interface using config:
        dbtype = config.GetString('accountdb-type', 'local')
        if dbtype == 'local':
            self.accountDB = LocalAccountDB(self)
        elif dbtype == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid account DB type configured: %s' %
                              dbtype)

        # This attribute determines if we want to disable logins.
        self.loginsEnabled = True
 def announceGenerate(self):
     assert self.notify.debugCall()
     DistributedObjectGlobalUD.announceGenerate(self)
     self.sendUpdateToChannel(AIMsgTypes.CHANNEL_CLIENT_BROADCAST, "online",
                              [])
     self.sendUpdateToChannel(AIMsgTypes.OTP_CHANNEL_AI_AND_UD_BROADCAST,
                              "online", [])
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'bWlub3Iub3BlbmFsLmZpeC5zdGFydC5vZi5oZWFsam9rZXM='

        # Instantiate our account DB interface:
        if accountdbType == 'developer':
            self.accountDB = DeveloperAccountDB(self)
        elif accountdbType == 'local':
            self.accountDB = LocalAccountDB(self)
        elif accountdbType == 'production':
            self.accountDB = ProductionDB(self)
        else:
            self.notify.error('Invalid accountdb-type: ' + accountdbType)
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        self.notify.debug("GPMUD generated")
        self.senders2Mgrs = {}
        self.host2PartyId = {}
        self.id2Party = {}
        self.party2PubInfo = {}
        self.tempSlots = {}
        self.inviteKey2Invite = {}
        self.inviteKeyAllocator = UniqueIdAllocator(0, 1000000)
        self.partyId2InviteKeys = {}
        self.hostsToRefund = {}
        self.inviteeId2Invites = {}
        self.hostId2PartyReplies = {}

        self.load()

        # Preallocate any used invite keys.
        if self.inviteKey2Invite:
            for inviteKey in self.inviteKey2Invite.keys():
                self.inviteKeyAllocator.initialReserveId(inviteKey)

        self.wantInstantParties = simbase.config.GetBool('want-instant-parties', 0)

        # Setup tasks
        self.runAtNextInterval()
Example #7
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'bG9sLndlLmNoYW5nZS50aGlzLnRvby5tdWNo'

        # Instantiate our account DB interface:
        if accountDBType == 'developer':
            self.accountDB = DeveloperAccountDB(self)
        elif accountDBType == 'local':
            self.accountDB = LocalAccountDB(self)
        elif accountDBType == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid accountdb-type: ' + accountDBType)
Example #8
0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.onlineToons = []
     self.tpRequests = {}
     self.friendsLists = {}
     self.friendIndexes = {}
     self.listResponses = {}
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     filename = base.config.GetString('account-bridge-filename',
                                      'astron/databases/account-bridge.db')
     self.dbm = anydbm.open(filename, 'c')
     self.private__dg = PyDatagram()
     return
Example #10
0
    def __init__(self, air):
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)

        self.DBuser = ConfigVariableString("mysql-user", "ud_rw").getValue()
        self.DBpasswd = ConfigVariableString("mysql-passwd",
                                             "r3adwr1te").getValue()

        self.DBhost = ConfigVariableString("avatarfriends-db-host",
                                           "localhost").getValue()
        self.DBport = ConfigVariableInt("avatarfriends-db-port",
                                        3306).getValue()
        self.DBname = ConfigVariableString("avatarfriends-db-name",
                                           "avatar_friends").getValue()

        from otp.friends.AvatarFriendsDB import AvatarFriendsDB
        self.db = AvatarFriendsDB(host=self.DBhost,
                                  port=self.DBport,
                                  user=self.DBuser,
                                  passwd=self.DBpasswd,
                                  dbname=self.DBname)

        self.avatarId2FriendsList = {}
        self.avatarId2Invitations = {}
        self.avatarId2Unvitations = {
        }  #an unvitation is a rejected (but not retracted) invitation
        #self.avatarId2Name = {}
        self.avatarId2Info = {}

        self.asyncRequests = {}
        self.isAvatarOnline = {}
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'bG9sLndlLmNoYW5nZS50aGlzLnRvby5tdWNo'

        # Instantiate our account DB interface:
        if accountDBType == 'developer':
            self.accountDB = DeveloperAccountDB(self)
        elif accountDBType == 'local':
            self.accountDB = LocalAccountDB(self)
        elif accountDBType == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid accountdb-type: ' + accountDBType)
Example #12
0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     self.avatarIdToName = LRUlist(
         8192)  #{} #cache for names from the database
     self.avatarIdToGifts = LRUlist(
         8192)  #{} #cache for gifts from the database
     self.giftPendingCounter = 0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.onlineToons = []
     self.tpRequests = {}
     self.friendsLists = {}
     self.friendIndexes = {}
     self.listResponses = {}
    def __init__(self, air):
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)

        self.air = air

        self.HTTPListenPort = uber.RATManagerHTTPListenPort

        self.numServed = 0

        self.webDispatcher = WebRequestDispatcher()
        self.webDispatcher.landingPage.setTitle("RATManager")
        self.webDispatcher.landingPage.setDescription(
            "RATManager is a REST-like interface allowing in-game awards from other services."
        )
        self.webDispatcher.registerGETHandler("getToonList",
                                              self.handleHTTPGetToonList)
        self.webDispatcher.registerGETHandler("giveToonBeansRAT",
                                              self.handleHTTPGiveToonBeansRAT)
        self.webDispatcher.registerGETHandler("giveToonBeansCS",
                                              self.handleHTTPGiveToonBeansCS)
        self.webDispatcher.registerGETHandler("getToonPicId",
                                              self.handleHTTPGetToonPicId)
        self.webDispatcher.registerGETHandler("getToonDNA",
                                              self.handleHTTPGetToonDNA)

        self.webDispatcher.listenOnPort(self.HTTPListenPort)

        self.air.setConnectionName("RATManagerUD")
        self.air.setConnectionURL(
            "http://%s:%s/" %
            (socket.gethostbyname(socket.gethostname()), self.HTTPListenPort))
Example #15
0
 def delete(self):
     assert self.notify.debugCall()
     self.ignoreAll()
     for i in list(self.asyncRequests.values()):
         i.delete()
     self.asyncRequests = {}
     DistributedObjectGlobalUD.delete(self)
    def __init__(self, air):
        """Construct ourselves, set up web dispatcher."""
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)
        self.HTTPListenPort = uber.inGameNewsMgrHTTPListenPort

        self.webDispatcher = WebRequestDispatcher()
        self.webDispatcher.landingPage.setTitle("InGameNewsMgr")
        self.webDispatcher.landingPage.setDescription(
            "InGameNews is update when a new issue of in-game-news is out.")
        self.webDispatcher.registerGETHandler('inGameNewsMgr',
                                              self.inGameNewsMgr)
        self.webDispatcher.registerGETHandler('inGameNewsNewIssue',
                                              self.inGameNewsNewIssue)
        self.webDispatcher.listenOnPort(self.HTTPListenPort)
        self.webDispatcher.landingPage.addTab("InGameNewsMgr",
                                              "/inGameNewsMgr")

        self.air.setConnectionName("InGameNewsMgr")
        self.air.setConnectionURL(
            "http://%s:%s/" %
            (socket.gethostbyname(socket.gethostname()), self.HTTPListenPort))

        self.filename = self.getFilename()
        self.latestIssue = datetime.datetime.now()
        self.latestIssue = self.loadRecords()
Example #17
0
    def __init__(self, air):
        """Construct ourselves, set up web dispatcher."""
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)

        self.air = air

        self._dcRequestSerialGen = SerialNumGen(1)
        self._dcId2info = {}

        self.HTTPListenPort = uber.awardManagerHTTPListenPort

        self.numServed = 0
        '''
        self.webDispatcher = WebRequestDispatcher()
        self.webDispatcher.landingPage.setTitle("AwardManager")
        self.webDispatcher.landingPage.setDescription("AwardManager is a REST-like interface allowing in-game awards from other services.")
        self.webDispatcher.registerGETHandler('awardMgr', self.awardMgr)
        self.webDispatcher.registerGETHandler('awardGive', self.giveAward)
        self.webDispatcher.listenOnPort(self.HTTPListenPort)
        self.webDispatcher.landingPage.addTab("AwardMgr","/awardMgr")
        '''

        self.air.setConnectionName("AwardMgr")
        self.air.setConnectionURL(
            "http://%s:%s/" %
            (socket.gethostbyname(socket.gethostname()), self.HTTPListenPort))
        self.awardChoices = self.getAwardChoices(
        )  # award Choices is a dict of dicts
        self.reverseDictAwardChoices = self.getReversedAwardChoices()
    def __init__(self, air):
        DistributedObjectGlobalUD.__init__(self, air)

        self.DBuser = uber.config.GetString("mysql-user", "ud_rw")
        self.DBpasswd = uber.config.GetString("mysql-passwd", "r3adwr1te")

        self.DBhost = uber.config.GetString("accountavatars-db-host",
                                            "localhost")
        self.DBport = uber.config.GetInt("accountavatars-db-port", 3306)
        self.DBname = uber.config.GetString("accountavatars-db-name",
                                            "avatars")

        self.db = MySQLAccountAvatarsDB.MySQLAccountAvatarsDB(
            host=self.DBhost,
            port=self.DBport,
            user=self.DBuser,
            passwd=self.DBpasswd,
            dbname=self.DBname)

        # Must define our async requests in subclasses on a per-game basis
        self.AsyncRequestAvatarList = None
        self.AsyncRequestCreateAvatar = None
        self.AsyncRequestRemove = AsyncRequestRemove

        self.asyncRequests = {}

        # Dictionary to track accountIds that are currently in the process
        # of creating avatars. This is a locking system so you do not get
        # multiple family members logged in at the same time exceeding the
        # max number of avatars they are allowed.
        # Dict of {accountId : subId}
        self.__pendingCreatesForAccount = {}
        # Dict of {subId : numPending}
        self.__pendingCreatesForSubscription = {}
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'bWlub3Iub3BlbmFsLmZpeC5zdGFydC5vZi5oZWFsam9rZXM='

        # Instantiate our account DB interface:
        if accountdbType == 'developer':
            self.accountDB = DeveloperAccountDB(self)
        elif accountdbType == 'local':
            self.accountDB = LocalAccountDB(self)
        elif accountdbType == 'production':
            self.accountDB = ProductionDB(self)
        else:
            self.notify.error('Invalid accountdb-type: ' + accountdbType)
Example #20
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        self.notify.debug("GPMUD generated")
        self.senders2Mgrs = {}
        self.host2PartyId = {}
        self.id2Party = {}
        self.party2PubInfo = {}
        self.tempSlots = {}
        self.inviteKey2Invite = {}
        self.inviteKeyAllocator = UniqueIdAllocator(0, 1000000)
        self.partyId2InviteKeys = {}
        self.hostsToRefund = {}
        self.inviteeId2Invites = {}
        self.hostId2PartyReplies = {}

        self.load()

        # Preallocate any used invite keys.
        if self.inviteKey2Invite:
            for inviteKey in self.inviteKey2Invite.keys():
                self.inviteKeyAllocator.initialReserveId(inviteKey)

        self.wantInstantParties = simbase.config.GetBool(
            'want-instant-parties', 0)

        # Setup tasks
        self.runAtNextInterval()
Example #21
0
    def __init__(self, air):
        """Construct ourselves, set up web dispatcher."""
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)
        self.HTTPListenPort = uber.cpuInfoMgrHTTPListenPort
        '''
        self.webDispatcher = WebRequestDispatcher()
        self.webDispatcher.landingPage.setTitle("SecurityBanMgr")
        self.webDispatcher.landingPage.setDescription("SecurityBanMgr for now handles banning my mac address.")
        self.webDispatcher.registerGETHandler('securityBanMgr', self.securityBanMgr)
        self.webDispatcher.registerGETHandler('securityBanMgrAddFingerprint', self.addFingerprint)
        self.webDispatcher.registerGETHandler('securityBanMgrRemoveFingerprint', self.removeFingerprint)
        self.webDispatcher.registerGETHandler('securityBanMgrListFingerprints', self.listFingerprints)
        self.webDispatcher.listenOnPort(self.HTTPListenPort)
        self.webDispatcher.landingPage.addTab("SecurityBanMgr","/securityBanMgr")
        '''

        self.air.setConnectionName("SecurityBanMgr")
        self.air.setConnectionURL(
            "http://%s:%s/" %
            (socket.gethostbyname(socket.gethostname()), self.HTTPListenPort))

        self.filename = self.getFilename()

        self.bannedFingerprints = set()
        self.bannedFingerprints = self.loadRecords()
        self.banMgr = BanManagerAI.BanManagerAI()
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        self.notify.info('HolidayManager going online')

        self.__checkHolidays()
        self.holidayCheckTask = taskMgr.doMethodLater(15, self.__checkHolidays,
                                                      'checkHolidays')
        self.holdayTimerTask = taskMgr.doMethodLater(15,
                                                     self.__runHolidayTimer,
                                                     'holidayTimerTask')

        if self.wantRandomizedSchedules:
            self.randomScheduleTask = taskMgr.doMethodLater(
                60, self.__runRandomizedSchedules, 'randomShceduleTask')

        self.d_requestRegister()

        # Load holidays from PRC
        if self.wantHolidays:
            debugHolidays = ConfigVariableList('debug-holiday')
            for holiday in debugHolidays:
                holidaySplit = holiday.split(';')

                holidayId = int(holidaySplit[0])
                endTime = int(holidaySplit[1])
                config = 0

                if len(holidaySplit) > 2:
                    config = int(holidaySplit[2])

                self.startHoliday(holidayId, configId=config, time=endTime)
    def __init__(self, air):
        DistributedObjectGlobalUD.__init__(self, air)

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'VhgdThjgoNI0SAbfeSjcyxo9iSyghKSh43ZMidFI'
Example #24
0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.onlineToons = []
     self.tpRequests = {}
     self.whisperRequests = {}
     self.operations = []
     self.secret2avId = {}
     self.delayTime = 1.0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        self.onlineToons = []
        self.tpRequests = {}
        self.whisperRequests = {}
        self.operations = []
        self.delayTime = 1.0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     self.fsms = {}
     # TODO: Maybe get the AI to refresh the cache?
     self.avBasicInfoCache = {}
     self.tpRequests = {}
     self.air.netMessenger.accept('avatarOnline', self, self.comingOnline)
     self.air.netMessenger.accept('avatarOffline', self, self.goingOffline)
Example #27
0
    def __init__(self, air):
        assert self.notify.debugCall()
        DistributedObjectGlobalUD.__init__(self, air)

        self.air = air

        self.dispatcherLoc = OtpDoGlobals.OTP_DO_ID_SNAPSHOT_DISPATCHER
        self.myLoc = 0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     namesFile = open("astron/DistrictNames.txt")
     lines = namesFile.readlines()
     for index in range(len(lines) - 1):
         lines[index] = lines[index][:-1]
     self.availableNames = lines
     namesFile.close()
Example #29
0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.accept("accountOnline", self.accountOnline)
     self.accept("accountOffline", self.accountOffline)
     self.accept("avatarOnlinePlusAccountInfo", self.avatarOnline)
     self.accept("avatarOffline", self.avatarOffline)
     self.sendUpdateToChannel(AIMsgTypes.CHANNEL_CLIENT_BROADCAST, "online", [])
     self.sendUpdateToChannel(AIMsgTypes.OTP_CHANNEL_AI_AND_UD_BROADCAST, "online", [])
    def delete(self):
        DistributedObjectGlobalUD.delete(self)

        taskMgr.remove(self.holidayCheckTask)
        taskMgr.remove(self.holidayTimerTask)

        if hasattr(self, 'randomScheduleTask'):
            taskMgr.remove(self.randomScheduleTask)
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self._randoms = []
     self._requests = []
     self._fakeIt = 0
     if __dev__:
         NonRepeatableRandomSourceUD.RandomNumberCacheSize = config.GetInt('random-source-cache-size', 5000)
         self._fakeIt = config.GetBool('fake-non-repeatable-random-source', self._fakeIt)
    def __init__(self, air):
        DistributedObjectGlobalUD.__init__(self, air)
        self.wantHolidays = config.GetBool('want-holidays', True)
        self.wantRandomizedSchedules = config.GetBool(
            'want-randomized-schedules', True)

        self.districts = {}
        self.activeHolidays = {}
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self._randoms = []
     self._requests = []
     self._fakeIt = 0
     if __dev__:
         NonRepeatableRandomSourceUD.RandomNumberCacheSize = config.GetInt('random-source-cache-size', 5000)
         self._fakeIt = config.GetBool('fake-non-repeatable-random-source', self._fakeIt)
Example #34
0
 def announceGenerate(self):
     assert self.notify.debugCall()
     DistributedObjectGlobalUD.announceGenerate(self)
     SettingsMgrBase.announceGenerate(self)
     self._newSessionId()
     # clear any changed state from a previous session across all AIs and clients
     self._broadcastCurrentSettings()
     self.startCheckingIncomingHTTP()
Example #35
0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     self.fsms = {}
     # TODO: Maybe get the AI to refresh the cache?
     self.avBasicInfoCache = {}
     self.tpRequests = {}
     self.air.netMessenger.accept('avatarOnline', self, self.comingOnline)
     self.air.netMessenger.accept('avatarOffline', self, self.goingOffline)
Example #36
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # This is for processing name patterns.
        self.nameGenerator = NameGenerator()

        # Instantiate the account database backend.
        # TODO: In the future, add more database interfaces & make this configurable.
        self.accountDb = DeveloperAccountDB(self)
Example #37
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        namesFile = open('astron/DistrictNames.txt')
        lines = namesFile.readlines()
        for index in range(len(lines) - 1):
            lines[index] = lines[index][:-1]

        self.availableNames = lines
        namesFile.close()
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.notify.debug("GLMUD generated")
     self.senders2Mgrs = {}
     self.host2LobbyId = {}
     self.id2Lobby = {}
     self.lobby2PubInfo = {}
     self.tempSlots = {}
     self.lobbyAllocator = UniqueIdAllocator(0, 100000000)
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.notify.debug("GLMUD generated")
     self.senders2Mgrs = {}
     self.host2LobbyId = {}
     self.id2Lobby = {}
     self.lobby2PubInfo = {}
     self.tempSlots = {}
     self.lobbyAllocator = UniqueIdAllocator(0, 100000000)
Example #40
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        self.loadData()

        for i in xrange(len(self.requestedNames)):
            nameRequest = self.requestedNames[i]
            print 'Name %s, was requested on %s, by %s. Status: %s' % (
                nameRequest['name'], nameRequest['date'], nameRequest['avId'],
                nameRequest['status'])
Example #41
0
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.wantBlacklistSequence = config.GetBool("want-blacklist-sequence", True)
     self.wantWhitelist = config.GetBool("want-whitelist", True)
     if self.wantWhitelist:
         self.whiteList = TTWhiteList()
         if self.wantBlacklistSequence:
             self.sequenceList = TTSequenceList()
     self.chatMode2channel = {
         1: OtpDoGlobals.OTP_MOD_CHANNEL,
         2: OtpDoGlobals.OTP_ADMIN_CHANNEL,
         3: OtpDoGlobals.OTP_SYSADMIN_CHANNEL,
     }
     self.chatMode2prefix = {1: "[MOD] ", 2: "[ADMIN] ", 3: "[SYSADMIN] "}
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.notify.debug('GPMUD generated')
     self.senders2Mgrs = {}
     self.host2PartyId = {}
     self.id2Party = {}
     self.party2PubInfo = {}
     self.tempSlots = {}
     PARTY_TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
     startTime = datetime.strptime('2014-01-20 11:50:00', PARTY_TIME_FORMAT)
     endTime = datetime.strptime('2014-01-20 12:20:00', PARTY_TIME_FORMAT)
     self.partyAllocator = UniqueIdAllocator(0, 100000000)
     config = getConfigShowbase()
     self.wantInstantParties = config.GetBool('want-instant-parties', 0)
     self.runAtNextInterval()
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        self.whiteList = TTWhiteList()
        self.muted = {}
        self.chatMode2channel = {
            1: OtpDoGlobals.OTP_MOD_CHANNEL,
            2: OtpDoGlobals.OTP_ADMIN_CHANNEL,
            3: OtpDoGlobals.OTP_DEV_CHANNEL,
            4: OtpDoGlobals.OTP_SYSADMIN_CHANNEL,
        }
        self.chatMode2prefix = {
            1: "[MOD] ",
            2: "[ADMIN] ",
            3: "[DEV] ",
            4: "[SYSADMIN] "
        }
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # Instantiate our account DB interface using config:
        dbtype = simbase.config.GetString('accountdb-type', 'local')
        if dbtype == 'local':
            self.accountDB = LocalAccountDB(self)
        elif dbtype == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid account DB type configured: %s' % dbtype)
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
        self.notify.debug("GPMUD generated")
        self.senders2Mgrs = {}
        self.host2PartyId = {} # just a reference mapping
        self.id2Party = {} # This should be replaced with a longterm datastore
        self.party2PubInfo = {} # This should not be longterm
        self.tempSlots = {}
        PARTY_TIME_FORMAT = '%Y-%m-%d %H:%M:%S'
        startTime = datetime.strptime('2014-01-20 11:50:00', PARTY_TIME_FORMAT)
        endTime = datetime.strptime('2014-01-20 12:20:00', PARTY_TIME_FORMAT)
        self.partyAllocator = UniqueIdAllocator(0, 100000000)
        #self.host2Party[100000001] = {'hostId': 100000001, 'start': startTime, 'end': endTime, 'partyId': 1717986918400000, 'decorations': [[3,5,7,6]], 'activities': [[10,13,6,18],[7,8,7,0]],'inviteTheme':1,'isPrivate':0,'inviteeIds':[]}
        config = getConfigShowbase()
        self.wantInstantParties = config.GetBool('want-instant-parties', 0)

        # Setup tasks
        self.runAtNextInterval()
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        self.connection2fsm = {}
        self.account2fsm = {}

        accType = config.GetString('account-db-type', 'local')
        if accType == 'local':
            self.accountDB = LocalAccountDB(self)
            
        elif accType == 'server':
            self.accountDB = ServerAccountDB(self)
            
        elif accType == 'trapdoor':
            self.accountDB = TrapDoorAccountDB(self)
            self.notify.warning('Trapdoor activated!')
            
        else:
            self.notify.warning('Invalid accType %s, UD will reject all logins!' % accType)
            self.accountDB = None
            
        self.account2username = {}
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        # These keep track of the connection/account IDs currently undergoing an
        # operation on the CSM. This is to prevent (hacked) clients from firing up more
        # than one operation at a time, which could potentially lead to exploitation
        # of race conditions.
        self.connection2fsm = {}
        self.account2fsm = {}

        # For processing name patterns.
        self.nameGenerator = NameGenerator()

        # Temporary HMAC key:
        self.key = 'c603c5833021ce79f734943f6e662250fd4ecf7432bf85905f71707dc4a9370c6ae15a8716302ead43810e5fba3cf0876bbbfce658e2767b88d916f5d89fd31'

        # Instantiate our account DB interface:
        if accountDBType == 'developer':
            self.accountDB = DeveloperAccountDB(self)
        elif accountDBType == 'remote':
            self.accountDB = RemoteAccountDB(self)
        else:
            self.notify.error('Invalid accountdb-type: ' + accountDBType)
    def __init__(self, air):
        DistributedObjectGlobalUD.__init__(self, air)

        self.authKeys = {}
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)

        self.whiteList = TTWhiteList()
Example #50
0
 def delete(self):
     self.availableNames = None
     DistributedObjectGlobalUD.delete(self)
     return
Example #51
0
 def announceGenerate(self):
 	DistributedObjectGlobalUD.announceGenerate(self)
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     filename = base.config.GetString('account-bridge-filename', 'astron/databases/account-bridge.db')
     self.dbm = anydbm.open(filename, 'c')
     self.private__dg = PyDatagram()
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     self.senders2Mgrs = {}
 def delete(self):
     self.save()
     DistributedObjectGlobalUD.delete(self)
Example #55
0
    def announceGenerate(self):
        DistributedObjectGlobalUD.announceGenerate(self)
 
        self.offenses = {}
Example #56
0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     self.availableNames = []
Example #57
0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
     self.toonsOnline = []
Example #58
0
 def __init__(self, air):
     DistributedObjectGlobalUD.__init__(self, air)
 def announceGenerate(self):
     DistributedObjectGlobalUD.announceGenerate(self)
     taskMgr.doMethodLater(10, self.parseInvasions, self.uniqueName('parseInvasions'))
     self.calledInvasion = None