NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

qa_tools.py (3710B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\jobboard\client\features\campaigns\qa_tools.py
      2 import blue
      3 from campaigns.client.v1.data_model.objective import ObjectiveID
      4 from monolithsentry.client.error_spike_key_consts import CAMPAIGNS_OBJECTIVE_GET_STATS_TIMEOUT
      5 from monolithsentry.client.local_error_spike_report import DEFAULT_ERROR_THRESHOLD, DEFAULT_ERROR_TTL_SECONDS, record_handled_failure
      6 from carbon.common.script.sys.serviceConst import ROLE_GML, ROLE_WORLDMOD
      7 from carbon.common.script.sys.serviceManager import ServiceManager
      8 from carbonui.control.contextMenu.menuData import MenuData
      9 from carbonui.control.contextMenu.menuEntryData import MenuEntryData
     10 
     11 def get_qa_menu_for_campaign_zoom_container(zoom_container_info):
     12     m = MenuData()
     13     if session.role & (ROLE_GML | ROLE_WORLDMOD):
     14         content_id = zoom_container_info.content_id
     15         content_definition_name = zoom_container_info.content_definition_name
     16         m.extend(get_qa_menu_for_campaign_card(content_id, content_definition_name))
     17     return m
     18 
     19 
     20 def get_qa_menu_for_job(job):
     21     m = MenuData()
     22     if session.role & (ROLE_GML | ROLE_WORLDMOD):
     23         objective_id = job.objective_id.uuid
     24         title_message_id = job.title_message_id
     25         full_data_text = '\n'.join(['objectiveID = %s' % objective_id,
     26          'campaignID = %s' % job.campaign_id.uuid,
     27          'charID = %s' % session.charid,
     28          'titleID = %s' % session.charid])
     29         m.AddEntry('QA Options', subMenuData=[MenuEntryData('objective_id %s ' % objective_id, func=lambda : blue.pyos.SetClipboardData(unicode(objective_id))),
     30          MenuEntryData('Copy all data', func=lambda : blue.pyos.SetClipboardData(unicode(full_data_text))),
     31          MenuEntryData('Copy titleID %s' % job.title_message_id, func=lambda : blue.pyos.SetClipboardData(unicode(title_message_id))),
     32          MenuEntryData('Advance my progress by...', subMenuData=[MenuEntryData('1', func=lambda : _add_objective_progress(job.objective_id, 1)),
     33           MenuEntryData('10', func=lambda : _add_objective_progress(job.objective_id, 10)),
     34           MenuEntryData('100', func=lambda : _add_objective_progress(job.objective_id, 100)),
     35           MenuEntryData('1000', func=lambda : _add_objective_progress(job.objective_id, 1000)),
     36           MenuEntryData('copy slash cmd', func=lambda : blue.pyos.SetClipboardData('/communitycampaign add_objective_progress %s' % objective_id))]),
     37          MenuEntryData('Simulate objective stats timeout spike (Sentry after %s in %ss)' % (DEFAULT_ERROR_THRESHOLD, DEFAULT_ERROR_TTL_SECONDS), func=lambda : _simulate_objective_stats_timeout_spike(job.objective_id))])
     38     return m
     39 
     40 
     41 def _simulate_objective_stats_timeout_spike(objective_id):
     42     record_handled_failure(CAMPAIGNS_OBJECTIVE_GET_STATS_TIMEOUT, 'QA simulate objective stats poll timed out: %s' % objective_id)
     43 
     44 
     45 def _add_objective_progress(objective_id, progress_amount):
     46     slash = ServiceManager.Instance().GetService('slash')
     47     (slash.SlashCmd(u'/communitycampaign add_objective_progress {objective_id} {progress_amount}'.format(objective_id=unicode(objective_id.uuid), progress_amount=progress_amount)),)
     48 
     49 
     50 def get_qa_menu_for_campaign_card(content_id, content_definition_name):
     51     m = MenuData()
     52     if session.role & (ROLE_GML | ROLE_WORLDMOD):
     53         content_id_uuid = content_id.uuid
     54         subMenuData = [MenuEntryData('content_id %s ' % content_id, func=lambda : blue.pyos.SetClipboardData(unicode(content_id_uuid))), MenuEntryData('campaign_name %s ' % content_definition_name, func=lambda : blue.pyos.SetClipboardData(unicode(content_definition_name)))]
     55         m.AddEntry('QA Options', subMenuData=subMenuData)
     56     return m