def delete_activity(): _activity = mongo.re_pos_int( input("删什么活动:1.星星银行,2.宝箱激励,3.娃娃机,4.限时活动,5.玩具之家,6组队任务,7.迎新会> ")) if _activity == 1: delete_target("inspire_bank_user") elif _activity == 2: delete_target("inspire_user_job") elif _activity == 3: delete_target("prize_claw_user", "prize_claw_team", "prize_claw_not_full_team") elif _activity == 4: delete_target("time_limit_user", "time_limit_rank_score", "time_limit_rank_backup", "time_limit_rank", "time_limit_garden_war") elif _activity == 5: delete_target("toy_user_job") elif _activity == 6: delete_target("new_mission_user") elif _activity == 7: delete_target("new_task_user") else: _activity = mongo.re_pos_int(input("输错了,重新输入> ")) Del_data(_activity) pass
def All_stars(udata, ulevel, revised): _level = mongo.re_pos_int(input('最大关卡数> ')) udata['r'] = int(_level) # 金卡座? isGold = mongo.re_pos_int(input('1.关卡全金;2.非金卡座> ')) if isGold == 1: for i in range(1, int(_level) + 1): ulevel['a'][str(i)] = "400000_3_1" else: ulevel['a']['1'] = "400000_3_1" for i in range(2, int(_level) + 1): ulevel['a'][str(i)] = "400000_3" revised = revise(revised, ulevel, udata) return revised print('修改成功') time.sleep(1)
def confilict(inp, udata, target): if inp == 1: # 字符串z1转数组后改第4位的年份 Str_z1 = udata['z1'] list_z1 = list(Str_z1) list_z1[3] = str(random.randint(0, 9)) Str_z1 = ''.join(list_z1) # 生成随机date,覆盖原有的'w'字段 date_1 = '2018-01-11T' date_2 = str(random.randint(0, 2)) + str(random.randint(0, 3)) date_3 = ':00:00.000Z' dateStr = date_1 + date_2 + date_3 myDatetime = parser.parse(dateStr) # 更新 udata['w'] = myDatetime udata['z1'] = Str_z1 result = db['user_data'].update_one(target, {'$set': udata}) inp = mongo.re_pos_int(input('输入1>模拟一次冲突~ 其它>退出:')) confilict(inp, udata, target) else: exit(1) pass
def delete_level(udata, ulevel, revised): _level = mongo.re_pos_int(input('要删到多少关> ')) udata['r'] = int(_level) if int(_level) == 0: ulevel['a'] = {} else: ulevel['a'] = {} ulevel['a'][str(_level)] = "400000_3" revised = revise(revised, ulevel, udata) print('删除成功') time.sleep(1) return revised
def award(COLLECTION_udata): # 模拟发奖 db_coll_udata = db[COLLECTION_udata] _id = input('输入ID> ') int_id = {'_id': re_pos_int(_id)} user_find = db_coll_udata.find_one(int_id) if user_find: session = input('输入届数> ') user_find['x']['81'] = session user_find['x']['80'] = "1" result = db_coll_udata.update_one(int_id, {'$set': user_find}) print('发奖第%s届第1名,login可见弹窗' % (session)) else: print('未找到此ID,溜了溜了') exit(1)
def delete_target(COLLECTION, *depends): db_coll = db[COLLECTION] _id = input("删哪个ID> ") target = {'_id': re_pos_int(_id)} result_find = db_coll.find_one(target) # print(db_coll.find()[0]) if result_find: result = db_coll.delete_one(target) print("删除成功") time.sleep(1) else: print("未找到此ID,重新输入> ") delete_target(COLLECTION) for depend in depends: db_coll = db[depend] depend_find = db_coll.find_one(target) # 删除排行榜等表单中此UserID的相关数据(找到了就删,找不到进娃娃机逻辑) # 不够严谨,限时活动有的表单没找到东西也会走elif if depend_find: result = db_coll.delete_one(target) # 娃娃机活动,teamID=日期+UserID,删除team中个人信息 # 'b'字段是每个id的队伍id elif result_find['b'] != 0: # 队伍相关信息 target_team = {'_id': result_find['b']} find_team = db_coll.find_one(target_team) # 能找到队伍就是娃娃机活动,找不到就是其它不用动的活动数据(比如限时活动其它depends) if find_team: # 一个人一队就删队,否则只删自己 if isinstance(find_team['a'], dict): if len(find_team['a']) != 1: del find_team['a'][_id] result = db_coll.update_one(target_team, {'$set': find_team}) else: result = db_coll.delete_one(find_team) # 单人则同时再删掉not_full队伍 elif find_team['a'] == 1: result = db_coll.delete_one(find_team)
def clear_medal(COLLECTION_udata): # 清除用户后端头像、奖章等信息 db_coll_udata = db[COLLECTION_udata] _id = input('输入ID> ') int_id = {'_id': re_pos_int(_id)} user_find = db_coll_udata.find_one(int_id) if user_find: user_find['p1'] = [] user_find['p2'] = [] user_find['p3'] = [] user_find['p4'] = [] user_find['pp1'] = [] else: print('未找到此ID,溜了溜了') exit(1) result = db_coll_udata.update_one(int_id, {'$set': user_find}) print('清除成功, 删包重装无头像、勋章')
def new_task(): _mission = mongo.re_pos_int( input( "指定任务:1.过2关、2.2个星星、3.1000红糖果、4.买礼包、5.买金砖、6.40个特效\n7.3个关卡内道具、8.关卡前道具、9.花100金砖、10.消耗50彩虹\n11.1500蓝糖果、12.1100黄糖果、13.1200绿糖果、14.1300橙糖果、15.消60硬糖\n21.玩具之家、22.限时活动、23.娃娃机:" )) utask = db['new_mission_user'].find_one(target) # 修改d字段下字符串a的首位,并清除任务信息 _missionTime = str(utask['d']['e']) _newMisson = str(_mission) + '_' + _missionTime utask['d']['a'] = str(_newMisson) utask['d']['b'] = None utask['d']['f'], utask['d']['g'], utask['d']['i'] = 0, 0, 0 utask['d']['h'], utask['d']['k'] = 1, 1 utask['d']['j'] = 2 result = db['new_mission_user'].update_one(target, {'$set': utask}) print("修改成功") time.sleep(1)
_id = input('输入ID> ') int_id = {'_id': re_pos_int(_id)} user_find = db_coll_udata.find_one(int_id) if user_find: user_find['p1'] = [] user_find['p2'] = [] user_find['p3'] = [] user_find['p4'] = [] user_find['pp1'] = [] else: print('未找到此ID,溜了溜了') exit(1) result = db_coll_udata.update_one(int_id, {'$set': user_find}) print('清除成功, 删包重装无头像、勋章') # str_choice_oly = input('输入:1>删除活动相关所有用户的后台数据;\n 2>清除用户后台头像、勋章、套装信息;\n 3>模拟一次活动发奖弹窗> ') choice_oly = re_pos_int( input( '输入:1>删除活动相关所有用户的后台数据;\n 2>清除用户后台头像、勋章、套装信息;\n 3>模拟一次活动发奖弹窗> ' )) if choice_oly == 1: remove_all("time_limit_user", "time_limit_rank_score", "time_limit_rank_backup", "time_limit_rank", "time_limit_garden_war") elif choice_oly == 2: clear_medal('user_data') elif choice_oly == 3: award('user_data')
def data_confilict(udata, target): inp = mongo.re_pos_int(input('输入1>模拟一次冲突; 其它>退出: ')) confilict(inp, udata, target)
COLLECTION_LEVEL = "user_level" db_coll_data = dbData[COLLECTION_DATA] db_coll_level = dbData[COLLECTION_LEVEL] _id = input("改哪个ID:") _level = input("最大关卡数> ") # 检索目标并修改关卡数据 target = {'_id': int(_id)} udata = db_coll_data.find_one(target) # 用户最大关卡数字段 udata['r'] = int(_level) ulevel = db_coll_level.find_one(target) ulevel['a'] = {} isGold = input('1.关卡全金;2.非金卡座> ') int_isGold = re_pos_int(isGold) if int_isGold == 1: for i in range(1, int(_level) + 1): ulevel['a'][str(i)] = "400000_3_1" else: ulevel['a']['1'] = "400000_3_1" for i in range(2, int(_level) + 1): ulevel['a'][str(i)] = "400000_3" result = db_coll_data.update_one(target, {'$set': udata}) result = db_coll_level.update_one(target, {'$set': ulevel}) print("修改成功") time.sleep(1)