예제 #1
0
    def check(self):
        model_mgr = ModelRequestMgr()

        # 確認キー.
        playerrequest = BackendApi.get_model(model_mgr, PlayerRequest,
                                             self.__player0.id)
        if self.__player0.req_confirmkey == playerrequest.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif self.__player0.req_confirmkey != playerrequest.req_alreadykey:
            raise AppTestError(u'確認済みのキーが更新されていない')

        # ハプニング.
        happeningset = BackendApi.get_happening(model_mgr, self.__raid.id)
        if happeningset.happening.state != Defines.HappeningState.END:
            raise AppTestError(u'状態が正しくない')

        # ダメージレコード.
        raidboss = BackendApi.get_raid(model_mgr, self.__raid.id)
        record = raidboss.getDamageRecord(self.__player0.id)
        if record.damage == 0 or record.damage_cnt == 0:
            raise AppTestError(u'ダメージが記録されていない')

        # ダメージ.
        record_pre = self.__raid.getDamageRecord(self.__player0.id)
        if (self.__raid.raid.hp -
            (record.damage - record_pre.damage)) != raidboss.raid.hp:
            raise AppTestError(u'ダメージが正しくない')

        # 秘宝.
        playertreasure0 = PlayerTreasure.getByKey(self.__player0.id)
        if playertreasure0.cabaretking != self.__raid.get_cabaretking():
            raise AppTestError(u'キャバ王の秘宝が付与されていない')

        # 報酬.
        present_num0 = BackendApi.get_present_num(self.__player0.id)
        if self.__present_num0 == present_num0:
            raise AppTestError(u'発見者に報酬が付与されていない')

        if Defines.RAID_PRIZE_DISTRIBUTION_OUTSIDE:
            queue = RaidPrizeDistributeQueue.getValues(
                filters={'raidid': self.__raid.id})
            if queue is None:
                raise AppTestError(u'報酬配布用のキューが作成されていない')
        else:
            present_num1 = BackendApi.get_present_num(self.__player1.id)
            if self.__present_num1 == present_num1:
                raise AppTestError(u'救援者に報酬が付与されていない')

            playertreasure1 = PlayerTreasure.getByKey(self.__player1.id)
            if playertreasure1.demiworld != self.__raid.get_demiworld():
                raise AppTestError(u'裏社会の秘宝が付与されていない')
예제 #2
0
    def handle(self, *args, **options):

        print '================================'
        print 'aggregate_cabarettreasure'
        print '================================'

        # 出力先.
        path = OSAUtil.get_now().strftime(args[0])

        # 書き込むデータをここに溜め込む.
        writer = Command.Writer(path)

        # 今のユーザIDの最大値を取得.
        uid_max = PlayerTreasure.max_value('id', 0, using=backup_db)

        # 交換できるもの.
        model_mgr = ModelRequestMgr()
        trade_all = dict([(model.id, model)
                          for model in model_mgr.get_mastermodel_all(
                              TradeMaster, fetch_deleted=True, using=backup_db)
                          ])

        for uid in xrange(1, uid_max + 1):
            # 現在の所持数.
            player = PlayerTreasure.getByKey(uid, using=backup_db)
            if player is None:
                continue

            cabaretking = player.get_cabaretking_num()
            row = [str(uid), str(cabaretking)]

            # ユーザログを集計して消費量を求める.
            userloglist = UserLogTrade.fetchValues(filters={'uid': uid},
                                                   using=backup_db)
            consumed = 0
            for userlog in userloglist:
                trademaster = trade_all.get(userlog.mid, None)
                if trademaster:
                    consumed += trademaster.rate_cabaretking
            row.append('%s' % (cabaretking + consumed))
            rowtext = ','.join(row)
            print rowtext
            writer.add(rowtext)

        writer.output(overwrite=False)

        print '================================'
        print 'all done..'
예제 #3
0
    def check(self):

        playerrequest = PlayerRequest.getByKey(self.__player.id)
        if playerrequest.req_confirmkey == self.__player.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif playerrequest.req_alreadykey != self.__player.req_confirmkey:
            raise AppTestError(u'確認済みのキーが正しく設定されていない')

        # 秘宝.
        playertreasure = PlayerTreasure.getByKey(self.__player.id)
        cabaretking = playertreasure.get_cabaretking_num()
        if cabaretking == self.__treasurenum:
            raise AppTestError(u'キャバ王の秘宝所持数が減っていない')
        elif cabaretking != (self.__treasurenum -
                             self.__trade.rate_cabaretking):
            raise AppTestError(u'キャバ王の秘宝所持数が正しくない')

        # チケット数.
        playergachapt = PlayerGachaPt.getByKey(self.__player.id)
        ticketnum = BackendApi.get_num_by_itemtype(ModelRequestMgr(),
                                                   playergachapt,
                                                   self.__trade.itype)
        if ticketnum == self.__ticketnum:
            raise AppTestError(u'チケットの所持数が変わっていない')
        elif ticketnum != (self.__ticketnum + self.__trade.itemnum):
            raise AppTestError(u'チケットの所持数が正しくない')
예제 #4
0
    def check(self):
        self.checkResponseStatus()

        model_mgr = ModelRequestMgr()

        # 確認キー.
        playerrequest = BackendApi.get_model(model_mgr, PlayerRequest,
                                             self.__player0.id)
        if self.__requestkey == playerrequest.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif self.__requestkey != playerrequest.req_alreadykey:
            raise AppTestError(u'確認済みのキーが更新されていない')

        # ハプニング.
        happeningset = BackendApi.get_happening(model_mgr, self.__raid.id)
        if happeningset.happening.state != Defines.HappeningState.END:
            raise AppTestError(u'状態が正しくない')

        # ダメージレコード.
        raidboss = BackendApi.get_raid(model_mgr, self.__raid.id)
        record = raidboss.getDamageRecord(self.__player0.id)
        if record.damage == 0 or record.damage_cnt == 0:
            raise AppTestError(u'ダメージが記録されていない')

        # ダメージ.
        record_pre = self.__raid.getDamageRecord(self.__player0.id)
        if (self.__raid.raid.hp -
            (record.damage - record_pre.damage)) != raidboss.raid.hp:
            raise AppTestError(u'ダメージが正しくない')

        # 秘宝.
        playertreasure0 = PlayerTreasure.getByKey(self.__player0.id)
        playertreasure1 = PlayerTreasure.getByKey(self.__player1.id)
        if playertreasure0.cabaretking != self.__raid.get_cabaretking():
            raise AppTestError(u'キャバ王の秘宝が付与されていない')
        elif playertreasure1.demiworld != self.__raid.get_demiworld():
            raise AppTestError(u'裏社会の秘宝が付与されていない')

        # 報酬.
        present_num0 = BackendApi.get_present_num(self.__player0.id)
        present_num1 = BackendApi.get_present_num(self.__player1.id)
        if self.__present_num0 == present_num0:
            raise AppTestError(u'発見者に報酬が付与されていない')
        elif self.__present_num1 == present_num1:
            raise AppTestError(u'救援者に報酬が付与されていない')
예제 #5
0
파일: item.py 프로젝트: hitandaway100/caba
    def check(self):
        playerrequest = PlayerRequest.getByKey(self.__player.id)
        if playerrequest.req_confirmkey == self.__player.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif playerrequest.req_alreadykey != self.__player.req_confirmkey:
            raise AppTestError(u'確認済みのキーが正しく設定されていない')

        # 秘宝.
        playertreasure = PlayerTreasure.getByKey(self.__player.id)
        cabaretking = playertreasure.get_cabaretking_num()
        if cabaretking == self.__treasurenum:
            raise AppTestError(u'キャバ王の秘宝所持数が減っていない')
        elif cabaretking != (self.__treasurenum -
                             self.__trade.rate_cabaretking):
            raise AppTestError(u'キャバ王の秘宝所持数が正しくない')

        # アイテム数.
        itemnum = BackendApi.get_item_nums(ModelRequestMgr(), self.__player.id,
                                           [self.__itemmaster.id]).get(
                                               self.__itemmaster.id, 0)
        if itemnum == self.__itemnum:
            raise AppTestError(u'アイテムの所持数が変わっていない')
        elif itemnum != (self.__itemnum + self.__trade.itemnum):
            raise AppTestError(u'アイテムの所持数がおかしい')
예제 #6
0
    def check(self):
        model_mgr = ModelRequestMgr()

        # 確認キー.
        playerrequest = BackendApi.get_model(model_mgr, PlayerRequest,
                                             self.__player0.id)
        if self.__player0.req_confirmkey == playerrequest.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif self.__player0.req_confirmkey != playerrequest.req_alreadykey:
            raise AppTestError(u'確認済みのキーが更新されていない')

        # ハプニング.
        happeningset = BackendApi.get_happening(model_mgr, self.__raid.id)
        if happeningset.happening.state != Defines.HappeningState.END:
            raise AppTestError(u'状態が正しくない')

        # ダメージレコード.
        raidboss = BackendApi.get_raid(model_mgr, self.__raid.id)
        record = raidboss.getDamageRecord(self.__player0.id)
        if record.damage == 0 or record.damage_cnt == 0:
            raise AppTestError(u'ダメージが記録されていない')
        elif not record.champagne:
            raise AppTestError(u'シャンパンコールフラグが立っていない')

        # ダメージ.
        record_pre = self.__raid.getDamageRecord(self.__player0.id)
        if (self.__raid.raid.hp -
            (record.damage - record_pre.damage)) != raidboss.raid.hp:
            raise AppTestError(u'ダメージが正しくない')

        # 秘宝.
        playertreasure0 = PlayerTreasure.getByKey(self.__player0.id)
        if playertreasure0.cabaretking != self.__raid.get_cabaretking():
            raise AppTestError(u'キャバ王の秘宝が付与されていない')

        # 報酬.
        present_num0 = BackendApi.get_present_num(self.__player0.id)
        if self.__present_num0 == present_num0:
            raise AppTestError(u'発見者に報酬が付与されていない')

        # イベントポイント.
        scorerecord0 = BackendApi.get_raidevent_scorerecord(
            model_mgr, self.__eventmaster.id, self.__player0.id)
        pointtable = BackendApi.aggregate_raidevent_destroypoint(
            model_mgr, self.__eventmaster, raidboss)
        arr = pointtable.get(self.__player0.id)
        if not arr:
            raise AppTestError(u'発見者にイベントポイントが付与されていない')
        elif len(arr) != 2:
            raise AppTestError(u'発見者にMVPポイントが付与されていない')
        elif sum(arr) != scorerecord0.point or sum(
                arr) != scorerecord0.point_total:
            raise AppTestError(u'発見者にポイントがただしく付与されていない')

        arr = pointtable.get(self.__player1.id)
        if not arr:
            raise AppTestError(u'協力者にイベントポイントが付与されていない')

        if Defines.RAID_PRIZE_DISTRIBUTION_OUTSIDE:
            queue = RaidPrizeDistributeQueue.getValues(
                filters={'raidid': self.__raid.id})
            if queue is None:
                raise AppTestError(u'報酬配布用のキューが作成されていない')

            def write(queue, happening, raidboss, help_prizelist):
                model_mgr = ModelRequestMgr()
                BackendApi.tr_distribute_raid(model_mgr, queue, happening,
                                              raidboss, help_prizelist)
                model_mgr.write_all()
                model_mgr.write_end()

            help_prizelist = BackendApi.get_prizelist(
                model_mgr, raidboss.master.helpprizes)
            write(queue,
                  BackendApi.get_happening(model_mgr, raidboss.id).happening,
                  raidboss, help_prizelist)

        # 救援者の報酬を確認.
        present_num1 = BackendApi.get_present_num(self.__player1.id)
        if self.__present_num1 == present_num1:
            raise AppTestError(u'救援者に報酬が付与されていない')

        playertreasure1 = PlayerTreasure.getByKey(self.__player1.id)
        if 0 < self.__raid.get_demiworld(
        ) and playertreasure1.demiworld != self.__raid.get_demiworld():
            raise AppTestError(u'裏社会の秘宝が付与されていない')

        scorerecord1 = BackendApi.get_raidevent_scorerecord(
            model_mgr, self.__eventmaster.id, self.__player1.id)
        if len(arr) != 1 or sum(arr) != scorerecord1.point or sum(
                arr) != scorerecord1.point_total:
            raise AppTestError(u'協力者にポイントがただしく付与されていない')
예제 #7
0
    def check(self):
        model_mgr = ModelRequestMgr()

        # 確認キー.
        playerrequest = BackendApi.get_model(model_mgr, PlayerRequest,
                                             self.__player0.id)
        if self.__player0.req_confirmkey == playerrequest.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif self.__player0.req_confirmkey != playerrequest.req_alreadykey:
            raise AppTestError(u'確認済みのキーが更新されていない')

        # ハプニング.
        happeningset = BackendApi.get_happening(model_mgr, self.__raid.id)
        if happeningset.happening.state != Defines.HappeningState.END:
            raise AppTestError(u'状態が正しくない')

        # ダメージレコード.
        raidboss = BackendApi.get_raid(model_mgr, self.__raid.id)
        record = raidboss.getDamageRecord(self.__player0.id)
        if record.damage == 0 or record.damage_cnt == 0:
            raise AppTestError(u'ダメージが記録されていない')

        # ダメージ.
        record_pre = self.__raid.getDamageRecord(self.__player0.id)
        if (self.__raid.raid.hp -
            (record.damage - record_pre.damage)) != raidboss.raid.hp:
            raise AppTestError(u'ダメージが正しくない')

        # 秘宝.
        playertreasure0 = PlayerTreasure.getByKey(self.__player0.id)
        if playertreasure0.cabaretking != self.__raid.get_cabaretking():
            raise AppTestError(u'キャバ王の秘宝が付与されていない')

        # 報酬.
        present_num0 = BackendApi.get_present_num(self.__player0.id)
        if self.__present_num0 == present_num0:
            raise AppTestError(u'発見者に報酬が付与されていない')

        # 短冊.
        def check_tanzaku_num(tanzaku_data_pre, is_lovetime):
            uid = tanzaku_data_pre.uid
            ownername = u'発見者' if self.__player0.id == uid else '救援者'

            tanzaku_data_post = BackendApi.get_scoutevent_tanzakucastdata(
                model_mgr, uid, self.__eventmaster.id)
            if tanzaku_data_post is None:
                raise AppTestError(u'{}の短冊情報が消えている'.format(ownername))

            sep = '' if self.__player0.id == uid else '_help'
            tanzakuup = self.__eventmaster.lovetime_tanzakuup if is_lovetime else 0

            tanzaku_number = getattr(self.__scouteventraidmaster,
                                     'tanzaku{}_number'.format(sep))
            tanzaku_randmin = getattr(
                self.__scouteventraidmaster,
                'tanzaku{}_randmin'.format(sep)) * (100 + tanzakuup) / 100
            tanzaku_randmax = getattr(
                self.__scouteventraidmaster,
                'tanzaku{}_randmax'.format(sep)) * (100 + tanzakuup) / 100

            tanzaku_diff = tanzaku_data_post.get_tanzaku(
                tanzaku_number) - tanzaku_data_pre.get_tanzaku(tanzaku_number)
            if not (tanzaku_randmin <= tanzaku_diff <= tanzaku_randmax):
                raise AppTestError(u'{}の短冊の増加量が想定外です'.format(ownername))

        check_tanzaku_num(self.__tanzaku_data0,
                          self.__scoutevent_playdata.is_lovetime())

        if Defines.RAID_PRIZE_DISTRIBUTION_OUTSIDE:
            queue = RaidPrizeDistributeQueue.getValues(
                filters={'raidid': self.__raid.id})
            if queue is None:
                raise AppTestError(u'報酬配布用のキューが作成されていない')

            def write(queue, happening, raidboss, help_prizelist):
                model_mgr = ModelRequestMgr()
                BackendApi.tr_distribute_raid(model_mgr, queue, happening,
                                              raidboss, help_prizelist)
                model_mgr.write_all()
                model_mgr.write_end()

            help_prizelist = BackendApi.get_prizelist(
                model_mgr, raidboss.master.helpprizes)
            write(queue,
                  BackendApi.get_happening(model_mgr, raidboss.id).happening,
                  raidboss, help_prizelist)

        # 救援者の報酬を確認.
        present_num1 = BackendApi.get_present_num(self.__player1.id)
        if self.__present_num1 == present_num1:
            raise AppTestError(u'救援者に報酬が付与されていない')

        playertreasure1 = PlayerTreasure.getByKey(self.__player1.id)
        if 0 < self.__raid.get_demiworld(
        ) and playertreasure1.demiworld != self.__raid.get_demiworld():
            raise AppTestError(u'裏社会の秘宝が付与されていない')

        # 短冊.
        check_tanzaku_num(self.__tanzaku_data1, False)
예제 #8
0
    def check(self):
        model_mgr = ModelRequestMgr()

        # 確認キー.
        playerrequest = BackendApi.get_model(model_mgr, PlayerRequest,
                                             self.__player1.id)
        if self.__player1.req_confirmkey == playerrequest.req_confirmkey:
            raise AppTestError(u'確認キーが更新されていない')
        elif self.__player1.req_confirmkey != playerrequest.req_alreadykey:
            raise AppTestError(u'確認済みのキーが更新されていない')

        # ハプニング.
        happeningset = BackendApi.get_happening(model_mgr, self.__raid.id)
        if happeningset.happening.state != Defines.HappeningState.END:
            raise AppTestError(u'状態が正しくない')

        # ダメージレコード.
        raidboss = BackendApi.get_raid(model_mgr, self.__raid.id)
        record = raidboss.getDamageRecord(self.__player1.id)
        if record.damage == 0 or record.damage_cnt == 0:
            raise AppTestError(u'ダメージが記録されていない')
        elif not record.champagne:
            raise AppTestError(u'シャンパンコールフラグが立っていない')

        # ダメージ.
        record_pre = self.__raid.getDamageRecord(self.__player1.id)
        if (self.__raid.raid.hp -
            (record.damage - record_pre.damage)) != raidboss.raid.hp:
            raise AppTestError(u'ダメージが正しくない')

        # 秘宝.
        playertreasure1 = PlayerTreasure.getByKey(self.__player1.id)
        if 0 < self.__raid.get_demiworld(
        ) and playertreasure1.demiworld != self.__raid.get_demiworld():
            raise AppTestError(u'裏社会の秘宝が付与されていない')

        # 報酬.
        present_num1 = BackendApi.get_present_num(self.__player1.id)
        if self.__present_num1 == present_num1:
            raise AppTestError(u'救援者に報酬が付与されていない')

        # イベントポイント.
        scorerecords = BackendApi.get_raidevent_scorerecords(
            model_mgr, self.__eventmaster.id,
            [self.__player0.id, self.__player1.id])
        scorerecord0 = scorerecords.get(self.__player0.id)
        scorerecord1 = scorerecords.get(self.__player1.id)
        pointtable = BackendApi.aggregate_raidevent_destroypoint(
            model_mgr, self.__eventmaster, raidboss)
        arr = pointtable.get(self.__player0.id)
        if not arr:
            raise AppTestError(u'発見者にイベントポイントが付与されていない')
        elif len(arr) != 1 or sum(arr) != scorerecord0.point or sum(
                arr) != scorerecord0.point_total:
            raise AppTestError(u'発見者にポイントがただしく付与されていない')

        arr = pointtable.get(self.__player1.id)
        if not arr:
            raise AppTestError(u'協力者にイベントポイントが付与されていない')
        elif len(arr) != 2:
            raise AppTestError(u'協力者にMVPポイントが付与されていない')
        elif sum(arr) != scorerecord1.point or sum(
                arr) != scorerecord1.point_total:
            raise AppTestError(u'協力者にポイントがただしく付与されていない')
예제 #9
0
    def handle(self, *args, **options):

        print '================================'
        print 'aggregate_cabaretclub_weekly'
        print '================================'

        last_week_starttime = BackendApi.to_cabaretclub_section_starttime(
            OSAUtil.get_now() - datetime.timedelta(days=7))

        str_year_and_week = args[0] if 0 < len(args) else None
        if str_year_and_week:
            week = int(str_year_and_week[4:])
            first_of_year = DateTimeUtil.strToDateTime(
                "%s%02d" % (str_year_and_week[:4],
                            Defines.CABARETCLUB_EVENT_DATE_CHANGE_TIME),
                "%Y%H")
            # 0週目.
            zero = BackendApi.to_cabaretclub_section_starttime(first_of_year)
            starttime = zero + datetime.timedelta(days=week * 7)
            if last_week_starttime < starttime:
                print u'未完了の週なので集計は行えません'
                return
        else:
            # 指定がない場合は前回の週.
            starttime = last_week_starttime
        print "target:%s" % starttime.strftime("%Y%W")
        endtime = BackendApi.to_cabaretclub_section_endtime(starttime)
        section_lasttime = endtime - datetime.timedelta(microseconds=1)

        model_mgr = ModelRequestMgr()
        self.update_eventconfig_previous_mid(model_mgr, starttime)

        # 店舗のマスターデータ.
        cabaclubstoremaster_dict = dict([
            (cabaclubstoremaster.id, cabaclubstoremaster)
            for cabaclubstoremaster in model_mgr.get_mastermodel_all(
                CabaClubStoreMaster, fetch_deleted=True, using=backup_db)
        ])
        # ユーザIDの最大値.
        uid_max = PlayerTreasure.max_value('id', using=backup_db)
        for uid in xrange(1, uid_max + 1):
            # 所持している店舗.ここはreadonlyで大丈夫.
            store_list = CabaClubStorePlayerData.fetchByOwner(
                uid, using=settings.DB_READONLY)
            if store_list:
                # この週に更新された店舗数.
                update_store_cnt = 0
                # Activeな店舗を週の終了時間まですすめる.
                for store in store_list:
                    cabaclubstoremaster = cabaclubstoremaster_dict[store.mid]
                    if not store.is_open:
                        # 閉じるときに集計しているので必要なし.
                        if starttime <= store.utime:
                            update_store_cnt += 1
                        continue
                    store_set = CabaclubStoreSet(cabaclubstoremaster, store)
                    lasttime = min(
                        section_lasttime,
                        store_set.get_limit_time() -
                        datetime.timedelta(microseconds=1))
                    if (lasttime - store.utime).total_seconds(
                    ) < cabaclubstoremaster.customer_interval:
                        # 獲得時間が経過していないので更新する必要が無い.
                        if starttime <= store.utime:
                            update_store_cnt += 1
                        continue

                    def tr_advance_the_time(uid, cabaclubstoremaster, now):
                        """店舗の時間をすすめる.
                        """
                        model_mgr = ModelRequestMgr()
                        BackendApi.tr_cabaclubstore_advance_the_time_with_checkalive(
                            model_mgr, uid, cabaclubstoremaster, now)
                        model_mgr.write_all()
                        model_mgr.write_end()

                    try:
                        db_util.run_in_transaction(tr_advance_the_time, uid,
                                                   cabaclubstoremaster,
                                                   lasttime)
                    except CabaretError, err:
                        if err.code == CabaretError.Code.ALREADY_RECEIVED:
                            # ユーザー自信が更新した可能性.
                            pass
                        else:
                            DbgLogger.write_error(err.value)
                            raise
                    update_store_cnt += 1
                if 0 < update_store_cnt:
                    # 売り上げに応じた名誉ポイントを配布.
                    def tr_send_point(uid, starttime):
                        """名誉ポイントの配布.
                        """
                        model_mgr = ModelRequestMgr()
                        scoredata_weekly = CabaClubScorePlayerDataWeekly.getByKeyForUpdate(
                            CabaClubScorePlayerDataWeekly.makeID(
                                uid, starttime))
                        if scoredata_weekly is None or scoredata_weekly.flag_aggregate:
                            return 0
                        # 配布する数を計算.
                        cabaclub_honor = int(
                            math.ceil(scoredata_weekly.proceeds / 1000.0))
                        if 0 < cabaclub_honor:
                            # 報酬付与.
                            prizedata = PrizeData.create(
                                cabaclub_honor=cabaclub_honor)
                            BackendApi.tr_add_prize(
                                model_mgr, uid, [prizedata],
                                Defines.TextMasterID.CABARETCLUB_WEEKLY_PRIZE)
                        # 重複防止.
                        scoredata_weekly.flag_aggregate = True
                        model_mgr.set_save(scoredata_weekly)
                        model_mgr.write_all()
                        model_mgr.write_end()
                        return cabaclub_honor

                    cabaclub_honor = db_util.run_in_transaction(
                        tr_send_point, uid, starttime)
                    print '%s...honor=%d' % (uid, cabaclub_honor)
                else:
                    print '%s...not updated' % uid