mylisp/gds-sabre.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Tue, 31 Aug 2021 15:39:03 +0300
changeset 1745 30584ca279db
parent 1741 363696dc8d3c
child 1746 45cfecc51e50
permissions -rw-r--r--
Fixed highlighting of some Sabre XML tags when they are without XML namespace.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     1
;;;###autoload
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     2
(defun gds-sabre-decode-region (&optional beg end prefix)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     3
  "Decode garbage coming from UTF8 terminals when Sabre operates in iso-8859-1."
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     4
  (interactive "r\nP")
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     5
  (unless beg (setq beg (region-beginning)))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     6
  (unless end (setq end (region-end)))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     7
  (let (text)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     8
    (setq text
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
     9
          (decode-coding-string
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    10
           (encode-coding-string
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    11
            (decode-coding-string
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    12
             (encode-coding-string (buffer-substring beg end) 'iso-8859-1)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    13
             'utf-8)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    14
            'iso-8859-1)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    15
           'cp1252))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    16
    (when prefix
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    17
      (delete-region beg end)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    18
      (insert text))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    19
    text))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    20
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    21
;;;###autoload
1741
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    22
(defun gds-sabre-highlight-getres ()
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    23
  (interactive)
1736
b4c49ef014e2 Updated Sabre XML entries to highlight.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1735
diff changeset
    24
  (highlight-regexp " \\(?:[[:alpha:]_]*PseudoCityCode\\|CreationAgent\\|BookingSource\\|AgentSine\\)=\"\\([^\"]+\\)\"" 'hi-pink 1)
b4c49ef014e2 Updated Sabre XML entries to highlight.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1735
diff changeset
    25
  (highlight-regexp "<\\([[:alnum:]]*:?\\)\\(RecordLocator\\|DepartureAirport\\|ArrivalAirport\\|MarketingAirlineCode\\|MarketingFlightNumber\\)>\\([^<]+\\)</\\1\\2>" 'hi-pink 3)
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    26
  (highlight-phrase ":Arunk\\|:FlightSegment\\>\\|:FareBasis\\>" 'hi-pink)
1745
30584ca279db Fixed highlighting of some Sabre XML tags when they are without XML namespace.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1741
diff changeset
    27
  (highlight-regexp "<\\([[:alnum:]]+:\\)?\\(ActionCode\\|InputEntry\\|PricingParameters\\|FullText\\)>\\([^<]+\\)</\\1?\\2>" 'hi-yellow 3)
30584ca279db Fixed highlighting of some Sabre XML tags when they are without XML namespace.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1741
diff changeset
    28
  (highlight-phrase "\\(?:isPast\\|isExpired\\|itineraryChange\\|latestPQFlag\\)=\"[^\"]+\"" 'hi-green)
1736
b4c49ef014e2 Updated Sabre XML entries to highlight.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1735
diff changeset
    29
  (highlight-regexp "\\(?:ResBookDesigCode\\|Status\\|FlightNumber\\|ArrivalDateTime\\|DepartureDateTime\\|FareBasisCode\\|passengerType\\)=\"\\([^\"]+\\)\"" 'hi-green 1)
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    30
  (highlight-phrase "InputMessage=" 'hi-blue))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    31
1741
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    32
(defvar gds-sabre-highlight-ssrs
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    33
  (regexp-opt '("ADV OTO TKT" "ADV MORE TKT" "CANCELLED DUE TO SYSTEM OR PASSENGER")))
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    34
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    35
;;;###autoload
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    36
(defun gds-sabre-highlight-hist ()
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    37
  (interactive)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    38
  (highlight-regexp "^\\(?:SC\\|AS\\|XS\\)  .*" 'hi-yellow)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    39
  (highlight-regexp gds-sabre-highlight-ssrs 'hi-pink)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    40
  (highlight-regexp "^[A-Z0-9]\\{4\\} [A-Z0-9]\\{4\\}\\*[A-Z0-9]\\{3\\} [0-9]\\{4\\}/[0-9]\\{2\\}[A-Z]\\{3\\}[0-9]\\{2\\}" 'hi-blue 0)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    41
  (highlight-regexp "^PLT PLTRM[A-Z0-9]\\{2\\} .*" 'hi-green 0))
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    42
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    43
;;;###autoload
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    44
(defun gds-tp-highlight ()
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    45
  (interactive)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    46
  (highlight-phrase "\\w+Ref=\\|Key=" 'hi-blue)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    47
  (highlight-phrase "ProviderCode" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    48
  (highlight-phrase "\\w*LocatorCode" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    49
  (highlight-phrase "OwningPCC" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    50
  (highlight-phrase "FareBasis" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    51
  (highlight-phrase "CabinClass" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    52
  (highlight-phrase "BookingCode" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    53
  (highlight-phrase "FareBasis" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    54
  (highlight-phrase "ClassOfService" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    55
  (highlight-phrase "Status=" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    56
  (highlight-phrase "\\w*TotalPrice" 'hi-green))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    57
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    58
(provide 'gds-sabre)