mylisp/gds-sabre.el
author Oleksandr Gavenko <gavenkoa@gmail.com>
Mon, 28 Nov 2022 23:05:00 +0200
changeset 1764 a40a9f231aa0
parent 1747 b7d3a5fd4059
permissions -rw-r--r--
Set dictionary name to american for aspell, this fixes MINGW64 env.
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)
1747
b7d3a5fd4059 Added more Sabre attributes for highlighting.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1746
diff changeset
    27
  (highlight-regexp "<\\([[:alnum:]]+:\\)?\\(ActionCode\\|ClassOfService\\|MarketingClassOfService\\|InputEntry\\|PricingParameters\\|FullText\\)>\\([^<]+\\)</\\1?\\2>" 'hi-yellow 3)
1745
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)
1747
b7d3a5fd4059 Added more Sabre attributes for highlighting.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1746
diff changeset
    29
  (highlight-regexp "\\(?:ResBookDesigCode\\|Status\\|FlightNumber\\|ArrivalDateTime\\|DepartureDateTime\\|FareBasisCode\\|passengerType\\|sequence\\)=\"\\([^\"]+\\)\"" '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
1746
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    33
  (regexp-opt
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    34
   '("ADV OTO TKT" "ADV MORE TKT" "TO AVOID AUTO CXL"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    35
     "CNLD AS NOT TKTD" "CANCELLED DUE TO SYSTEM OR PASSENGER"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    36
     "REMINDER UA SEGS SUBJ TO CXL ON" "UA SEGS XLD"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    37
     "OTHERWISE WILL BE CANCEL" "PLS ADV TKT NBR BY"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    38
     "OTHERWISE WILL BE XLD"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    39
     "PLS ADV TKTNUMBR FOR"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    40
     "CANCELLATION DUE TO NO TICKET"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    41
     "BKG CXLD DUE TO TKT TIME EXPIRED"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    42
     "RITK/ADTKT BY"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    43
     "OR CXL"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    44
     "ADTK" "ADMD"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    45
     "OTHERWISE WILL BE"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    46
     "OR SPACE WILL BE"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    47
     "CXLD AUTOMATICALLY"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    48
     "TIME ZONE"
45cfecc51e50 More parrterns for SSR.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1745
diff changeset
    49
     "LT ELSE BKG WILL")))
1741
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    50
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    51
;;;###autoload
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    52
(defun gds-sabre-highlight-hist ()
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    53
  (interactive)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    54
  (highlight-regexp "^\\(?:SC\\|AS\\|XS\\)  .*" 'hi-yellow)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    55
  (highlight-regexp gds-sabre-highlight-ssrs 'hi-pink)
363696dc8d3c Highlighting for Sabre SSRs.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents: 1740
diff changeset
    56
  (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
    57
  (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
    58
1735
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    59
;;;###autoload
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    60
(defun gds-tp-highlight ()
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    61
  (interactive)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    62
  (highlight-phrase "\\w+Ref=\\|Key=" 'hi-blue)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    63
  (highlight-phrase "ProviderCode" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    64
  (highlight-phrase "\\w*LocatorCode" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    65
  (highlight-phrase "OwningPCC" 'hi-pink)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    66
  (highlight-phrase "FareBasis" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    67
  (highlight-phrase "CabinClass" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    68
  (highlight-phrase "BookingCode" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    69
  (highlight-phrase "FareBasis" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    70
  (highlight-phrase "ClassOfService" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    71
  (highlight-phrase "Status=" 'hi-green)
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    72
  (highlight-phrase "\\w*TotalPrice" 'hi-green))
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    73
e8425ea2f39b Helper functions for Sabre GDS.
Oleksandr Gavenko <gavenkoa@gmail.com>
parents:
diff changeset
    74
(provide 'gds-sabre)