migration.py (4433B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\effects\migration.py 2 from __future__ import print_function 3 import yaml 4 import dogma.data as dogma_data 5 from fsd import AbsJoin, GetBranchRoot 6 changeID = 133610 7 _userid = 1000012 8 9 def check_all_effects(): 10 effectCompiler = sm.GetService('effectCompiler') 11 res = [] 12 for effect in dogma_data.get_all_effects(): 13 effectID = effect.effectID 14 if not effect.modifierInfo and not effectCompiler.IsEffectPythonOverridden(effectID): 15 res.append(effectID) 16 17 print(res) 18 19 20 def firstChange(): 21 db = sm.GetService('DB2') 22 bsdService = sm.GetService('BSD') 23 x = {641: 54, 24 649: 55, 25 658: 53, 26 664: 74} 27 for expressionID, expressionGroupID in x.items(): 28 sqlRes = db.SQL('select revisionID from dogma.expressions where expressionID={}'.format(expressionID)) 29 revisionID = next(iter(sqlRes)).revisionID 30 bsdService.RevisionEdit(_userid, changeID, revisionID, expressionGroupID=54) 31 32 sqlRes = db.SQL('select revisionID from dogma.expressions where expressionID=6742') 33 revisionID = next(iter(sqlRes)).revisionID 34 bsdService.RevisionEdit(_userid, changeID, revisionID, arg2=3488) 35 36 37 def get_required_skill_string(modifierInfo): 38 res = '- domain: {}\n'.format(modifierInfo['domain']) 39 res += ' func: {}\n'.format(modifierInfo['func']) 40 res += ' modifiedAttributeID: {}\n'.format(modifierInfo['modifiedAttributeID']) 41 res += ' modifyingAttributeID: {}\n'.format(modifierInfo['modifyingAttributeID']) 42 res += ' operator: {}\n'.format(modifierInfo['operator']) 43 res += ' skillTypeID: {}'.format(modifierInfo['skillTypeID']) 44 return res 45 46 47 def get_item_modifier_string(modifierInfo): 48 res = '- domain: {}\n'.format(modifierInfo['domain']) 49 res += ' func: {}\n'.format(modifierInfo['func']) 50 res += ' modifiedAttributeID: {}\n'.format(modifierInfo['modifiedAttributeID']) 51 res += ' modifyingAttributeID: {}\n'.format(modifierInfo['modifyingAttributeID']) 52 res += ' operator: {}'.format(modifierInfo['operator']) 53 return res 54 55 56 def get_location_group_string(modifierInfo): 57 res = '- domain: {}\n'.format(modifierInfo['domain']) 58 res += ' func: {}\n'.format(modifierInfo['func']) 59 res += ' groupID: {}\n'.format(modifierInfo['groupID']) 60 res += ' modifiedAttributeID: {}\n'.format(modifierInfo['modifiedAttributeID']) 61 res += ' modifyingAttributeID: {}\n'.format(modifierInfo['modifyingAttributeID']) 62 res += ' operator: {}'.format(modifierInfo['operator']) 63 return res 64 65 66 def get_location_modifier(modifierInfo): 67 res = '- domain: {}\n'.format(modifierInfo['domain']) 68 res += ' func: {}\n'.format(modifierInfo['func']) 69 res += ' modifiedAttributeID: {}\n'.format(modifierInfo['modifiedAttributeID']) 70 res += ' modifyingAttributeID: {}\n'.format(modifierInfo['modifyingAttributeID']) 71 res += ' operator: {}'.format(modifierInfo['operator']) 72 return res 73 74 75 def secondChange(): 76 path = AbsJoin(GetBranchRoot(), 'packages', 'dogma', 'effects', 'modifier_data.yaml') 77 db = sm.GetService('DB2') 78 bsdService = sm.GetService('BSD') 79 with open(path, 'r') as f: 80 modifier_info_by_effect = yaml.load(f) 81 print('begin') 82 for effectID, modifierInfos in modifier_info_by_effect.items(): 83 res = '' 84 sqlRes = db.SQL('select * from dogma.effects where effectID={}'.format(effectID)) 85 revisionID = next(iter(sqlRes)).revisionID 86 for modifierInfo in modifierInfos: 87 if not res == '': 88 res += '\n' 89 func = modifierInfo['func'] 90 if func == 'LocationRequiredSkillModifier' or func == 'OwnerRequiredSkillModifier': 91 x = get_required_skill_string(modifierInfo) 92 elif func == 'ItemModifier' or func == 'LocationModifier': 93 x = get_item_modifier_string(modifierInfo) 94 elif func == 'LocationGroupModifier': 95 x = get_location_group_string(modifierInfo) 96 else: 97 raise RuntimeError('func name ({}) does not match any of the modifier functions, effectID: {}'.format(modifierInfo['func'], effectID)) 98 res += x 99 100 bsdService.RevisionEdit(_userid, changeID, revisionID, modifierInfo=res) 101 102 print('done')