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

agencyMessenger.py (3099B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\message_bus\agencyMessenger.py
      2 import logging
      3 from stackless_response_router.exceptions import TimeoutException
      4 from eveProto.generated.eve_public.app.eveonline.agency.ui.action_pb2 import Taken as ActionTaken
      5 from eveProto.generated.eve_public.app.eveonline.agency.ui.bookmark_pb2 import Added as BookmarkAdded
      6 from eveProto.generated.eve_public.app.eveonline.agency.ui.filter_pb2 import Changed as FilterChanged
      7 from eveProto.generated.eve_public.app.eveonline.agency.ui.content_pb2 import CardClicked as ContentCardClicked
      8 from eveProto.generated.eve_public.app.eveonline.agency.ui.group_pb2 import CardClicked as GroupCardClicked
      9 from eveProto import split_precision
     10 from eveProto.generated.eve_public.app.eveonline.agency.ui.help.video.link_pb2 import Created, Clicked
     11 logger = logging.getLogger(__name__)
     12 
     13 class AgencyMessenger(object):
     14     public_gateway = None
     15 
     16     def __init__(self, public_gateway):
     17         self.public_gateway = public_gateway
     18 
     19     def action_taken(self, action_id, content_id):
     20         event = ActionTaken()
     21         event.action = action_id
     22         event.content = content_id
     23         self.public_gateway.publish_event_payload(event)
     24 
     25     def bookmark_added(self, group_id):
     26         event = BookmarkAdded()
     27         event.group = group_id
     28         self.public_gateway.publish_event_payload(event)
     29 
     30     def filter_changed(self, filter_id, group_id, filter_value):
     31         event = FilterChanged()
     32         event.filter = filter_id
     33         event.group = group_id
     34         event.value = filter_value
     35         self.public_gateway.publish_event_payload(event)
     36 
     37     def content_card_clicked(self, content_id, num_jumps, security_status):
     38         event = ContentCardClicked()
     39         units, nanos = split_precision(security_status)
     40         event.content = content_id
     41         event.jumps = num_jumps
     42         event.security_status.units = units
     43         event.security_status.nanos = nanos
     44         self.public_gateway.publish_event_payload(event)
     45 
     46     def group_card_clicked(self, group_id):
     47         event = GroupCardClicked()
     48         event.group = group_id
     49         self.public_gateway.publish_event_payload(event)
     50 
     51     def help_video_link_created(self, video_path):
     52         event = Created()
     53         event.video_path = video_path
     54         self.public_gateway.publish_event_payload(event)
     55 
     56     def help_video_link_clicked(self, video_path):
     57         event = Clicked()
     58         event.video_path = video_path
     59         self.public_gateway.publish_event_payload(event)
     60 
     61     def _send_request_and_wait_for_response(self, request, expected_response_class, response_handler, timeout_handler = None):
     62         request_primitive, response_channel = self.public_gateway.send_character_request(request, expected_response_class, 10)
     63         try:
     64             response_primitive, payload = response_channel.receive()
     65             response_handler(response_primitive, payload)
     66         except TimeoutException as e:
     67             if timeout_handler is not None:
     68                 timeout_handler(e)