* fix(ui): fix up mobile recordings display * fix(ui): some messages * fix(ui): some messages * fix(player): fix msg generation for ios messages * feat(player): add generic mmanager interface for ios player impl * feat(player): mobile player and message manager; touch manager; videoplayer * feat(player): add iphone shells, add log panel, * feat(player): detect ios sessions and inject correct player * feat(player): move screen mapper to utils * feat(player): events panel for mobile, map shell sizes to device type data, * feat(player): added network tab to mobile player; unify network message (ios and web) * feat(player): resize canvas up to phone screen size, fix capitalize util * feat(player): some general changes to support mobile events and network entries * feat(player): remove swipes from timeline * feat(player): more stuff for list walker * fix(ui): performance tab, mobile project typings and form * fix(ui):some ui touches for ios replayer shell * fix(ui): more fixes for ui, new onboarding screen for mobile projects * feat(ui): mobile overview panel (xray) * feat(ui): fixes for phone shell and tap events * fix(tracker): change phone shells and sizes * fix(tracker): fix border on replay screen * feat(ui): use crashes from db to show in session * feat(ui): use event name for xray * feat(ui): some overall ui fixes * feat(ui): IOS -> iOS * feat(ui): change tags to ant d * fix(ui): fast fix * fix(ui): fix for capitalizer * fix(ui): fix for browser display * fix(ui): fix for note popup * fix(ui): change exceptions display * fix(ui): add click rage to ios xray * fix(ui): some icons and resizing * fix(ui): fix ios context menu overlay, fix console logs creation for ios * feat(ui): added icons * feat(ui): performance warnings * feat(ui): performance warnings * feat(ui): different styles * feat(ui): rm debug true * feat(ui): fix warnings display * feat(ui): some styles for animation * feat(ui): add some animations to warnings * feat(ui): move perf warnings to performance graph * feat(ui): hide/show warns dynamically * feat(ui): new mobile touch animation * fix(tracker): update msg for ios * fix(ui): taprage fixes * fix(ui): regenerate icons and messages * fix(ui): fix msgs * fix(backend): fix events gen * fix(backend): fix userid msg
826 lines
30 KiB
Python
826 lines
30 KiB
Python
from typing import Optional, Union
|
|
|
|
from db.models import Event, DetailedEvent, Session
|
|
from messages import *
|
|
|
|
|
|
def handle_normal_message(message: Message) -> Optional[Event]:
|
|
|
|
n = Event()
|
|
|
|
if isinstance(message, ConnectionInformation):
|
|
n.connectioninformation_downlink = message.downlink
|
|
n.connectioninformation_type = message.type
|
|
return n
|
|
|
|
if isinstance(message, ConsoleLog):
|
|
n.consolelog_level = message.level
|
|
n.consolelog_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, CustomEvent):
|
|
n.customevent_name = message.name
|
|
n.customevent_payload = message.payload
|
|
return n
|
|
|
|
if isinstance(message, Metadata):
|
|
n.metadata_key = message.key
|
|
n.metadata_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, MouseClick):
|
|
n.clickevent_hesitationtime = message.hesitation_time
|
|
n.clickevent_messageid = message.id
|
|
n.clickevent_label = message.label
|
|
n.clickevent_selector = message.selector
|
|
return n
|
|
|
|
if isinstance(message, NetworkRequest):
|
|
n.networkrequest_type = message.type
|
|
n.networkrequest_method = message.method
|
|
n.networkrequest_url = message.url
|
|
n.networkrequest_request = message.request
|
|
n.networkrequest_response = message.response
|
|
n.networkrequest_status = message.status
|
|
n.networkrequest_timestamp = message.timestamp
|
|
n.networkrequest_duration = message.duration
|
|
return n
|
|
|
|
if isinstance(message, PageEvent):
|
|
n.pageevent_firstcontentfulpaint = message.first_contentful_paint
|
|
n.pageevent_firstpaint = message.first_paint
|
|
n.pageevent_messageid = message.message_id
|
|
n.pageevent_referrer = message.referrer
|
|
n.pageevent_speedindex = message.speed_index
|
|
n.pageevent_timestamp = message.timestamp
|
|
n.pageevent_url = message.url
|
|
return n
|
|
|
|
if isinstance(message, PageRenderTiming):
|
|
n.pagerendertiming_timetointeractive = message.time_to_interactive
|
|
n.pagerendertiming_visuallycomplete = message.visually_complete
|
|
return n
|
|
|
|
if isinstance(message, SetViewportSize):
|
|
n.setviewportsize_height = message.height
|
|
n.setviewportsize_width = message.width
|
|
return n
|
|
|
|
if isinstance(message, Timestamp):
|
|
n.timestamp_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, UserAnonymousID):
|
|
n.user_anonymous_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, UserID):
|
|
if message.id != '':
|
|
n.user_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, IssueEvent):
|
|
n.issueevent_messageid = message.message_id
|
|
n.issueevent_timestamp = message.timestamp
|
|
n.issueevent_type = message.type
|
|
n.issueevent_context_string = message.context_string
|
|
n.issueevent_context = message.context
|
|
n.issueevent_payload = message.payload
|
|
n.issueevent_url = message.url
|
|
return n
|
|
|
|
if isinstance(message, CustomIssue):
|
|
n.customissue_name = message.name
|
|
n.customissue_payload = message.payload
|
|
return n
|
|
|
|
|
|
def handle_session(n: Session, message: Message) -> Optional[Session]:
|
|
|
|
if not n:
|
|
n = Session()
|
|
|
|
if isinstance(message, SessionStart):
|
|
n.session_start_timestamp = message.timestamp
|
|
|
|
n.user_uuid = message.user_uuid
|
|
n.user_agent = message.user_agent
|
|
n.user_os = message.user_os
|
|
n.user_os_version = message.user_os_version
|
|
n.user_browser = message.user_browser
|
|
n.user_browser_version = message.user_browser_version
|
|
n.user_device = message.user_device
|
|
n.user_device_type = message.user_device_type
|
|
n.user_device_memory_size = message.user_device_memory_size
|
|
n.user_device_heap_size = message.user_device_heap_size
|
|
n.user_country = message.user_country.split('|')[0]
|
|
return n
|
|
|
|
if isinstance(message, SessionEnd):
|
|
n.session_end_timestamp = message.timestamp
|
|
try:
|
|
n.session_duration = n.session_end_timestamp - n.session_start_timestamp
|
|
except TypeError:
|
|
pass
|
|
return n
|
|
|
|
if isinstance(message, BatchMeta):
|
|
n.batchmeta_page_no = message.page_no
|
|
n.batchmeta_first_index = message.first_index
|
|
n.batchmeta_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, BatchMetadata):
|
|
n.batchmetadata_version = message.version
|
|
n.batchmetadata_page_no = message.page_no
|
|
n.batchmetadata_first_index = message.first_index
|
|
n.batchmetadata_timestamp = message.timestamp
|
|
n.batchmetadata_location = message.location
|
|
return n
|
|
|
|
|
|
if isinstance(message, PartitionedMessage):
|
|
n.partitionedmessage_part_no = message.part_no
|
|
n.partitionedmessage_part_total = message.part_total
|
|
return n
|
|
|
|
# if isinstance(message, IOSBatchMeta):
|
|
# n.iosbatchmeta_page_no = message.page_no
|
|
# n.iosbatchmeta_first_index = message.first_index
|
|
# n.iosbatchmeta_timestamp = message.timestamp
|
|
# return n
|
|
|
|
if isinstance(message, ConnectionInformation):
|
|
n.connection_effective_bandwidth = message.downlink
|
|
n.connection_type = message.type
|
|
return n
|
|
|
|
if isinstance(message, Metadata):
|
|
n.metadata_key = message.key
|
|
n.metadata_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, PageEvent):
|
|
n.referrer = message.referrer
|
|
n.first_contentful_paint = message.first_contentful_paint
|
|
n.speed_index = message.speed_index
|
|
n.timing_time_to_interactive = message.time_to_interactive
|
|
n.visually_complete = message.visually_complete
|
|
try:
|
|
n.urls_count += 1
|
|
except TypeError:
|
|
n.urls_count = 1
|
|
#itry:
|
|
# n.urls.append(message.url)
|
|
#except AttributeError:
|
|
# n.urls = [message.url]
|
|
return n
|
|
|
|
if isinstance(message, PerformanceTrackAggr):
|
|
n.avg_cpu = message.avg_cpu
|
|
n.avg_fps = message.avg_fps
|
|
n.max_cpu = message.max_cpu
|
|
n.max_fps = message.max_fps
|
|
n.max_total_js_heap_size = message.max_total_js_heap_size
|
|
n.max_used_js_heap_size = message.max_used_js_heap_size
|
|
return n
|
|
|
|
if isinstance(message, UserID):
|
|
try:
|
|
if message.id != '':
|
|
n.user_id = message.id
|
|
except AttributeError as e:
|
|
print(f'Session current type: {type(n)}')
|
|
print(f'Message id: {message.id}')
|
|
raise e
|
|
return n
|
|
|
|
if isinstance(message, UserAnonymousID):
|
|
n.user_anonymous_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, JSException) or isinstance(message, JSExceptionDeprecated):
|
|
try:
|
|
n.js_exceptions_count += 1
|
|
except TypeError:
|
|
n.js_exceptions_count = 1
|
|
return n
|
|
|
|
#if isinstance(message, LongTask):
|
|
# try:
|
|
# n.long_tasks_total_duration += message.duration
|
|
# except TypeError:
|
|
# n.long_tasks_total_duration = message.duration
|
|
|
|
# try:
|
|
# if n.long_tasks_max_duration > message.duration:
|
|
# n.long_tasks_max_duration = message.duration
|
|
# except TypeError:
|
|
# n.long_tasks_max_duration = message.duration
|
|
|
|
# try:
|
|
# n.long_tasks_count += 1
|
|
# except TypeError:
|
|
# n.long_tasks_count = 1
|
|
# return n
|
|
|
|
if isinstance(message, InputEvent):
|
|
try:
|
|
n.inputs_count += 1
|
|
except TypeError:
|
|
n.inputs_count = 1
|
|
return n
|
|
|
|
if isinstance(message, MouseClick):
|
|
try:
|
|
n.clicks_count += 1
|
|
except TypeError:
|
|
n.clicks_count = 1
|
|
return n
|
|
|
|
if isinstance(message, IssueEvent) or isinstance(message, IssueEventDeprecated):
|
|
try:
|
|
n.issues_count += 1
|
|
except TypeError:
|
|
n.issues_count = 1
|
|
|
|
#try:
|
|
# n.issues.append(message.type)
|
|
#except AttributeError:
|
|
# n.issues = [message.type]
|
|
return n
|
|
|
|
|
|
def handle_message(message: Message) -> Optional[DetailedEvent]:
|
|
n = DetailedEvent()
|
|
|
|
# if isinstance(message, SessionEnd):
|
|
# n.sessionend = True
|
|
# n.sessionend_timestamp = message.timestamp
|
|
# return n
|
|
|
|
if isinstance(message, Timestamp):
|
|
n.timestamp_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, SessionStart):
|
|
n.sessionstart_trackerversion = message.tracker_version
|
|
n.sessionstart_revid = message.rev_id
|
|
n.sessionstart_timestamp = message.timestamp
|
|
n.sessionstart_useruuid = message.user_uuid
|
|
n.sessionstart_useragent = message.user_agent
|
|
n.sessionstart_useros = message.user_os
|
|
n.sessionstart_userosversion = message.user_os_version
|
|
n.sessionstart_userbrowser = message.user_browser
|
|
n.sessionstart_userbrowserversion = message.user_browser_version
|
|
n.sessionstart_userdevice = message.user_device
|
|
n.sessionstart_userdevicetype = message.user_device_type
|
|
n.sessionstart_userdevicememorysize = message.user_device_memory_size
|
|
n.sessionstart_userdeviceheapsize = message.user_device_heap_size
|
|
n.sessionstart_usercountry = message.user_country
|
|
return n
|
|
|
|
if isinstance(message, CreateIFrameDocument):
|
|
n.create_iframedocument_frame_id = message.frame_id
|
|
n.create_iframedocument_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, SetViewportSize):
|
|
n.setviewportsize_width = message.width
|
|
n.setviewportsize_height = message.height
|
|
return n
|
|
|
|
if isinstance(message, SetViewportScroll):
|
|
n.setviewportscroll_x = message.x
|
|
n.setviewportscroll_y = message.y
|
|
return n
|
|
|
|
if isinstance(message, SetNodeScroll):
|
|
n.setnodescroll_id = message.id
|
|
n.setnodescroll_x = message.x
|
|
n.setnodescroll_y = message.y
|
|
return n
|
|
|
|
if isinstance(message, ConsoleLog):
|
|
n.consolelog_level = message.level
|
|
n.consolelog_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, PageLoadTiming):
|
|
n.pageloadtiming_requeststart = message.request_start
|
|
n.pageloadtiming_responsestart = message.response_start
|
|
n.pageloadtiming_responseend = message.response_end
|
|
n.pageloadtiming_domcontentloadedeventstart = message.dom_content_loaded_event_start
|
|
n.pageloadtiming_domcontentloadedeventend = message.dom_content_loaded_event_end
|
|
n.pageloadtiming_loadeventstart = message.load_event_start
|
|
n.pageloadtiming_loadeventend = message.load_event_end
|
|
n.pageloadtiming_firstpaint = message.first_paint
|
|
n.pageloadtiming_firstcontentfulpaint = message.first_contentful_paint
|
|
return n
|
|
|
|
if isinstance(message, PageRenderTiming):
|
|
n.pagerendertiming_speedindex = message.speed_index
|
|
n.pagerendertiming_visuallycomplete = message.visually_complete
|
|
n.pagerendertiming_timetointeractive = message.time_to_interactive
|
|
return n
|
|
|
|
# if isinstance(message, ResourceTiming):
|
|
# n.resourcetiming_timestamp = message.timestamp
|
|
# n.resourcetiming_duration = message.duration
|
|
# n.resourcetiming_ttfb = message.ttfb
|
|
# n.resourcetiming_headersize = message.header_size
|
|
# n.resourcetiming_encodedbodysize = message.encoded_body_size
|
|
# n.resourcetiming_decodedbodysize = message.decoded_body_size
|
|
# n.resourcetiming_url = message.url
|
|
# n.resourcetiming_initiator = message.initiator
|
|
# return n
|
|
|
|
|
|
|
|
if isinstance(message, IntegrationEvent):
|
|
n.integrationevent_timestamp = message.timestamp
|
|
n.integrationevent_source = message.source
|
|
n.integrationevent_name = message.name
|
|
n.integrationevent_message = message.message
|
|
n.integrationevent_payload = message.payload
|
|
return n
|
|
|
|
|
|
if isinstance(message, UserID):
|
|
if message.id != '':
|
|
n.userid_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, UserAnonymousID):
|
|
n.useranonymousid_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, Metadata):
|
|
n.metadata_key = message.key
|
|
n.metadata_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, BatchMeta):
|
|
n.batchmeta_page_no = message.page_no
|
|
n.batchmeta_first_index = message.first_index
|
|
n.batchmeta_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, BatchMetadata):
|
|
n.batchmetadata_version = message.version
|
|
n.batchmetadata_page_no = message.page_no
|
|
n.batchmetadata_first_index = message.first_index
|
|
n.batchmetadata_timestamp = message.timestamp
|
|
n.batchmetadata_location = message.location
|
|
return n
|
|
|
|
if isinstance(message, PartitionedMessage):
|
|
n.partitionedmessage_part_no = message.part_no
|
|
n.partitionedmessage_part_total = message.part_total
|
|
return n
|
|
|
|
if isinstance(message, InputChange):
|
|
n.inputchange_id=message.id
|
|
n.inputchange_value=message.value
|
|
n.inputchange_value_masked=message.value_masked
|
|
n.inputchange_label=message.label
|
|
n.inputchange_hesitation_time=message.hesitation_time
|
|
n.inputchange_input_duration=message.input_duration
|
|
return n
|
|
|
|
|
|
if isinstance(message, SelectionChange):
|
|
n.selectionchange_selection_start=message.selection_start
|
|
n.selectionchange_selection_end=message.selection_end
|
|
n.selectionchange_selection=message.selection
|
|
return n
|
|
|
|
if isinstance(message, MouseThrashing):
|
|
n.mousethrashing_timestamp=message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, UnbindNodes):
|
|
n.unbindnodes_total_removed_percent=message.total_removed_percent
|
|
return n
|
|
|
|
|
|
if isinstance(message, ResourceTiming):
|
|
n.resourcetiming_timestamp=message.timestamp
|
|
n.resourcetiming_duration=message.duration
|
|
n.resourcetiming_ttfb=message.ttfb
|
|
n.resourcetiming_header_size=message.header_size
|
|
n.resourcetiming_encoded_body_size=message.encoded_body_size
|
|
n.resourcetiming_decoded_body_size=message.decoded_body_size
|
|
n.resourcetiming_url=message.url
|
|
n.resourcetiming_initiator=message.initiator
|
|
n.resourcetiming_transferred_size=message.transferred_size
|
|
n.resourcetiming_cached=message.cached
|
|
return n
|
|
|
|
|
|
if isinstance(message, IssueEvent):
|
|
n.issueevent_message_id=message.message_id
|
|
n.issueevent_timestamp=message.timestamp
|
|
n.issueevent_type=message.type
|
|
n.issueevent_context_string=message.context_string
|
|
n.issueevent_context=message.context
|
|
n.issueevent_payload=message.payload
|
|
n.issueevent_url=message.url
|
|
return n
|
|
|
|
if isinstance(message, SessionEnd):
|
|
n.sessionend_timestamp=message.timestamp
|
|
n.sessionend_encryption_key=message.encryption_key
|
|
return n
|
|
|
|
|
|
if isinstance(message, SessionSearch):
|
|
n.sessionsearch_timestamp=message.timestamp
|
|
n.sessionsearch_partition=message.partition
|
|
return n
|
|
|
|
|
|
if isinstance(message, PerformanceTrack):
|
|
n.performancetrack_frames = message.frames
|
|
n.performancetrack_ticks = message.ticks
|
|
n.performancetrack_totaljsheapsize = message.total_js_heap_size
|
|
n.performancetrack_usedjsheapsize = message.used_js_heap_size
|
|
return n
|
|
|
|
if isinstance(message, PerformanceTrackAggr):
|
|
n.performancetrackaggr_timestampstart = message.timestamp_start
|
|
n.performancetrackaggr_timestampend = message.timestamp_end
|
|
n.performancetrackaggr_minfps = message.min_fps
|
|
n.performancetrackaggr_avgfps = message.avg_fps
|
|
n.performancetrackaggr_maxfps = message.max_fps
|
|
n.performancetrackaggr_mincpu = message.min_cpu
|
|
n.performancetrackaggr_avgcpu = message.avg_cpu
|
|
n.performancetrackaggr_maxcpu = message.max_cpu
|
|
n.performancetrackaggr_mintotaljsheapsize = message.min_total_js_heap_size
|
|
n.performancetrackaggr_avgtotaljsheapsize = message.avg_total_js_heap_size
|
|
n.performancetrackaggr_maxtotaljsheapsize = message.max_total_js_heap_size
|
|
n.performancetrackaggr_minusedjsheapsize = message.min_used_js_heap_size
|
|
n.performancetrackaggr_avgusedjsheapsize = message.avg_used_js_heap_size
|
|
n.performancetrackaggr_maxusedjsheapsize = message.max_used_js_heap_size
|
|
return n
|
|
|
|
if isinstance(message, ConnectionInformation):
|
|
n.connectioninformation_downlink = message.downlink
|
|
n.connectioninformation_type = message.type
|
|
return n
|
|
|
|
if isinstance(message, PageEvent):
|
|
n.pageevent_messageid = message.message_id
|
|
n.pageevent_timestamp = message.timestamp
|
|
n.pageevent_url = message.url
|
|
n.pageevent_referrer = message.referrer
|
|
n.pageevent_loaded = message.loaded
|
|
n.pageevent_requeststart = message.request_start
|
|
n.pageevent_responsestart = message.response_start
|
|
n.pageevent_responseend = message.response_end
|
|
n.pageevent_domcontentloadedeventstart = message.dom_content_loaded_event_start
|
|
n.pageevent_domcontentloadedeventend = message.dom_content_loaded_event_end
|
|
n.pageevent_loadeventstart = message.load_event_start
|
|
n.pageevent_loadeventend = message.load_event_end
|
|
n.pageevent_firstpaint = message.first_paint
|
|
n.pageevent_firstcontentfulpaint = message.first_contentful_paint
|
|
n.pageevent_speedindex = message.speed_index
|
|
return n
|
|
|
|
if isinstance(message, InputEvent):
|
|
n.inputevent_messageid = message.message_id
|
|
n.inputevent_timestamp = message.timestamp
|
|
n.inputevent_value = message.value
|
|
n.inputevent_valuemasked = message.value_masked
|
|
n.inputevent_label = message.label
|
|
return n
|
|
|
|
if isinstance(message, CustomEvent):
|
|
n.customevent_name = message.name
|
|
n.customevent_payload = message.payload
|
|
return n
|
|
|
|
if isinstance(message, LoadFontFace):
|
|
n.loadfontface_parent_id = message.parent_id
|
|
n.loadfontface_family = message.family
|
|
n.loadfontface_source = message.source
|
|
n.loadfontface_descriptors = message.descriptors
|
|
return n
|
|
|
|
if isinstance(message, SetNodeFocus):
|
|
n.setnodefocus_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSReplaceURLBased):
|
|
n.adoptedssreplaceurlbased_sheet_id = message.sheet_id
|
|
n.adoptedssreplaceurlbased_text = message.text
|
|
n.adoptedssreplaceurlbased_base_url = message.base_url
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSReplace):
|
|
n.adoptedssreplace_sheet_id = message.sheet_id
|
|
n.adoptedssreplace_text = message.text
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSInsertRuleURLBased):
|
|
n.adoptedssinsertruleurlbased_sheet_id = message.sheet_id
|
|
n.adoptedssinsertruleurlbased_rule = message.rule
|
|
n.adoptedssinsertruleurlbased_index = message.index
|
|
n.adoptedssinsertruleurlbased_base_url = message.base_url
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSInsertRule):
|
|
n.adoptedssinsertrule_sheet_id = message.sheet_id
|
|
n.adoptedssinsertrule_rule = message.rule
|
|
n.adoptedssinsertrule_index = message.index
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSDeleteRule):
|
|
n.adoptedssdeleterule_sheet_id = message.sheet_id
|
|
n.adoptedssdeleterule_index = message.index
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSAddOwner):
|
|
n.adoptedssaddowner_sheet_id = message.sheet_id
|
|
n.adoptedssaddowner_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, AdoptedSSRemoveOwner):
|
|
n.adoptedssremoveowner_sheet_id = message.sheet_id
|
|
n.adoptedssremoveowner_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, JSException):
|
|
n.jsexception_name = message.name
|
|
n.jsexception_message = message.message
|
|
n.jsexception_payload = message.payload
|
|
n.jsexception_metadata = message.metadata
|
|
return n
|
|
|
|
if isinstance(message, Zustand):
|
|
n.zustand_mutation = message.mutation
|
|
n.zustand_state = message.state
|
|
return n
|
|
|
|
# if isinstance(message, CreateDocument):
|
|
# n.createdocument = True
|
|
# return n
|
|
#
|
|
# if isinstance(message, CreateElementNode):
|
|
# n.createelementnode_id = message.id
|
|
# if isinstance(message.parent_id, tuple):
|
|
# n.createelementnode_parentid = message.parent_id[0]
|
|
# else:
|
|
# n.createelementnode_parentid = message.parent_id
|
|
# return n
|
|
|
|
# if isinstance(message, CSSInsertRule):
|
|
# n.cssinsertrule_stylesheetid = message.id
|
|
# n.cssinsertrule_rule = message.rule
|
|
# n.cssinsertrule_index = message.index
|
|
# return n
|
|
|
|
# if isinstance(message, CSSInsertRuleURLBased):
|
|
# n.cssinsertrule_urlbased_id = message.id
|
|
# n.cssinsertrule_urlbased_rule = message.rule
|
|
# n.cssinsertrule_urlbased_index = message.index
|
|
# n.cssinsertrule_urlbased_base_url = message.base_url
|
|
#
|
|
# if isinstance(message, CSSDeleteRule):
|
|
# n.cssdeleterule_stylesheetid = message.id
|
|
# n.cssdeleterule_index = message.index
|
|
# return n
|
|
|
|
if isinstance(message, Fetch):
|
|
n.fetch_method = message.method
|
|
n.fetch_url = message.url
|
|
n.fetch_request = message.request
|
|
n.fetch_status = message.status
|
|
n.fetch_timestamp = message.timestamp
|
|
n.fetch_duration = message.duration
|
|
return n
|
|
|
|
if isinstance(message, SetNodeAttributeDict):
|
|
n.setnodeattributedict_id = message.id,
|
|
n.setnodeattributedict_name_key = message.name_key
|
|
n.setnodeattributedict_value_key = message.value_key
|
|
return n
|
|
|
|
if isinstance(message, Profiler):
|
|
n.profiler_name = message.name
|
|
n.profiler_duration = message.duration
|
|
n.profiler_args = message.args
|
|
n.profiler_result = message.result
|
|
return n
|
|
|
|
if isinstance(message, GraphQL):
|
|
n.graphql_operationkind = message.operation_kind
|
|
n.graphql_operationname = message.operation_name
|
|
n.graphql_variables = message.variables
|
|
n.graphql_response = message.response
|
|
return n
|
|
|
|
if isinstance(message, MouseClick):
|
|
n.mouseclick_id = message.id
|
|
n.mouseclick_hesitationtime = message.hesitation_time
|
|
n.mouseclick_label = message.label
|
|
n.mouseclick_selector = message.selector
|
|
return n
|
|
|
|
if isinstance(message, SetPageLocation):
|
|
n.setpagelocation_url = message.url
|
|
n.setpagelocation_referrer = message.referrer
|
|
n.setpagelocation_navigationstart = message.navigation_start
|
|
return n
|
|
|
|
if isinstance(message, MouseMove):
|
|
n.mousemove_x = message.x
|
|
n.mousemove_y = message.y
|
|
return n
|
|
|
|
if isinstance(message, LongTask):
|
|
n.longtasks_timestamp = message.timestamp
|
|
n.longtasks_duration = message.duration
|
|
n.longtask_context = message.context
|
|
n.longtask_containertype = message.container_type
|
|
n.longtasks_containersrc = message.container_src
|
|
n.longtasks_containerid = message.container_id
|
|
n.longtasks_containername = message.container_name
|
|
return n
|
|
|
|
#if isinstance(message, IssueEvent):
|
|
# n.issueevent_message_id = message.message_id
|
|
# n.issueevent_timestamp = message.timestamp
|
|
# n.issueevent_type = message.type
|
|
# n.issueevent_context_string = message.context_string
|
|
# n.issueevent_context = message.context
|
|
# n.issueevent_payload = message.payload
|
|
# n.issueevent_url = message.url
|
|
# return n
|
|
|
|
if isinstance(message, TechnicalInfo):
|
|
n.technicalinfo_type = message.type
|
|
n.technicalinfo_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, CustomIssue):
|
|
n.customissue_name = message.name
|
|
n.customissue_payload = message.payload
|
|
return n
|
|
|
|
if isinstance(message, AssetCache):
|
|
n.asset_cache_url = message.url
|
|
return n
|
|
|
|
if isinstance(message, IOSSessionStart):
|
|
n.iossessionstart_timestamp = message.timestamp
|
|
n.iossessionstart_projectid = message.project_id
|
|
n.iossessionstart_trackerversion = message.tracker_version
|
|
n.iossessionstart_revid = message.rev_id
|
|
n.iossessionstart_useruuid = message.user_uuid
|
|
n.iossessionstart_useros = message.user_os
|
|
n.iossessionstart_userosversion = message.user_os_version
|
|
n.iossessionstart_userdevice = message.user_device
|
|
n.iossessionstart_userdevicetype = message.user_device_type
|
|
n.iossessionstart_usercountry = message.user_country
|
|
return n
|
|
|
|
if isinstance(message, IOSSessionEnd):
|
|
n.iossessionend_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, IOSMetadata):
|
|
n.iosmetadata_timestamp = message.timestamp
|
|
n.iosmetadata_length = message.length
|
|
n.iosmetadata_key = message.key
|
|
n.iosmetadata_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, IOSBatchMeta):
|
|
n.iosbatchmeta_lenght = message.length
|
|
n.iosbatchmeta_first_index = message.first_index
|
|
n.iosbatchmeta_timestamp = message.timestamp
|
|
return n
|
|
|
|
if isinstance(message, IOSUserID):
|
|
n.iosuserid_timestamp = message.timestamp
|
|
n.iosuserid_length = message.length
|
|
n.iosuserid_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, IOSUserAnonymousID):
|
|
n.iosuseranonymousid_timestamp = message.timestamp
|
|
n.iosuseranonymousid_length = message.length
|
|
n.iosuseranonymousid_id = message.id
|
|
return n
|
|
|
|
if isinstance(message, IOSScreenEnter):
|
|
n.iosscreenenter_timestamp = message.timestamp
|
|
n.iosscreenenter_length = message.length
|
|
n.iosscreenenter_title = message.title
|
|
n.iosscreenenter_view_name = message.view_name
|
|
return n
|
|
|
|
if isinstance(message, IOSScreenLeave):
|
|
n.iosscreenleave_timestamp = message.timestamp
|
|
n.iosscreenleave_length = message.length
|
|
n.iosscreenleave_title = message.title
|
|
n.iosscreenleave_viewname = message.view_name
|
|
return n
|
|
|
|
if isinstance(message, IOSScreenChanges):
|
|
n.iosscreenchanges_timestamp = message.timestamp
|
|
n.iosscreenchanges_length = message.length
|
|
n.iosscreenchanges_x = message.x
|
|
n.iosscreenchanges_y = message.y
|
|
n.iosscreenchanges_width = message.width
|
|
n.iosscreenchanges_height = message.height
|
|
return n
|
|
|
|
if isinstance(message, IOSClickEvent):
|
|
n.iosclickevent_timestamp = message.timestamp
|
|
n.iosclickevent_length = message.length
|
|
n.iosclickevent_label = message.label
|
|
n.iosclickevent_x = message.x
|
|
n.iosclickevent_y = message.y
|
|
return n
|
|
|
|
if isinstance(message, IOSInputEvent):
|
|
n.iosinputevent_timestamp = message.timestamp
|
|
n.iosinputevent_length = message.length
|
|
n.iosinputevent_value_masked = message.value_masked
|
|
n.iosinputevent_label = message.label
|
|
return n
|
|
|
|
if isinstance(message, IOSLog):
|
|
n.ioslog_timestamp = message.timestamp
|
|
n.ioslog_length = message.length
|
|
n.ioslog_severity = message.severity
|
|
n.ioslog_content = message.content
|
|
return n
|
|
|
|
if isinstance(message, IOSNetworkCall):
|
|
n.iosnetworkcall_timestamp = message.timestamp
|
|
n.iosnetworkcall_length = message.length
|
|
n.iosnetworkcall_duration = message.duration
|
|
n.iosnetworkcall_headers = message.headers
|
|
n.iosnetworkcall_body = message.body
|
|
n.iosnetworkcall_url = message.url
|
|
n.iosnetworkcall_success = message.success
|
|
n.iosnetworkcall_method = message.method
|
|
n.iosnetworkcall_status = message.status
|
|
return n
|
|
|
|
if isinstance(message, IOSIssueEvent):
|
|
n.iosissueevent_timestamp = message.timestamp
|
|
n.iosissueevent_type = message.type
|
|
n.iosissueevent_context_string = message.context_string
|
|
n.iosissueevent_context = message.context
|
|
n.iosissueevent_payload = message.payload
|
|
return n
|
|
|
|
if isinstance(message, IOSEvent):
|
|
n.iosevent_timestamp = message.timestamp
|
|
n.iosevent_length = message.length
|
|
n.iosevent_name = message.name
|
|
n.iosevent_payload = message.payload
|
|
return n
|
|
|
|
if isinstance(message, IOSInternalError):
|
|
n.iosinternalerror_timestamp = message.timestamp
|
|
n.iosinternalerror_length = message.length
|
|
n.iosinternalerror_content = message.content
|
|
return n
|
|
|
|
if isinstance(message, IOSCrash):
|
|
n.ioscrash_timestamp = message.timestamp
|
|
n.ioscrash_length = message.length
|
|
n.ioscrash_name = message.name
|
|
n.ioscrash_reason = message.reason
|
|
n.ioscrash_stacktrace = message.stacktrace
|
|
return n
|
|
|
|
if isinstance(message, IOSPerformanceEvent):
|
|
n.iosperformanceevent_timestamp = message.timestamp
|
|
n.iosperformanceevent_length = message.length
|
|
n.iosperformanceevent_name = message.name
|
|
n.iosperformanceevent_value = message.value
|
|
return n
|
|
|
|
if isinstance(message, IOSPerformanceAggregated):
|
|
n.iosperformanceaggregated_timestampstart = message.timestamp_start
|
|
n.iosperformanceaggregated_timestampend = message.timestamp_end
|
|
n.iosperformanceaggregated_minfps = message.min_fps
|
|
n.iosperformanceaggregated_avgfps = message.avg_fps
|
|
n.iosperformanceaggregated_maxfps = message.max_fps
|
|
n.iosperformanceaggregated_mincpu = message.min_cpu
|
|
n.iosperformanceaggregated_avgcpu = message.avg_cpu
|
|
n.iosperformanceaggregated_maxcpu = message.max_cpu
|
|
n.iosperformanceaggregated_minmemory = message.min_memory
|
|
n.iosperformanceaggregated_avgmemory = message.avg_memory
|
|
n.iosperformanceaggregated_maxmemory = message.max_memory
|
|
n.iosperformanceaggregated_minbattery = message.min_battery
|
|
n.iosperformanceaggregated_avgbattery = message.avg_battery
|
|
n.iosperformanceaggregated_maxbattery = message.max_battery
|
|
return n
|
|
return None
|