ezuikit-js 0.5.6 → 0.5.8-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/demos/base-demo/ezuikit.js +77 -16
  3. package/demos/base-demo/index.html +2 -9
  4. package/demos/nginx-demo/conf/fastcgi.conf +26 -0
  5. package/demos/nginx-demo/conf/fastcgi_params +25 -0
  6. package/demos/nginx-demo/conf/koi-utf +109 -0
  7. package/demos/nginx-demo/conf/koi-win +103 -0
  8. package/demos/nginx-demo/conf/mime.types +95 -0
  9. package/demos/nginx-demo/conf/nginx.conf +123 -0
  10. package/demos/nginx-demo/conf/scgi_params +17 -0
  11. package/demos/nginx-demo/conf/uwsgi_params +17 -0
  12. package/demos/nginx-demo/conf/win-utf +126 -0
  13. package/demos/nginx-demo/contrib/README +21 -0
  14. package/demos/nginx-demo/contrib/geo2nginx.pl +58 -0
  15. package/demos/nginx-demo/contrib/unicode2nginx/koi-utf +131 -0
  16. package/demos/nginx-demo/contrib/unicode2nginx/unicode-to-nginx.pl +48 -0
  17. package/demos/nginx-demo/contrib/unicode2nginx/win-utf +130 -0
  18. package/demos/nginx-demo/contrib/vim/ftdetect/nginx.vim +4 -0
  19. package/demos/nginx-demo/contrib/vim/ftplugin/nginx.vim +1 -0
  20. package/demos/nginx-demo/contrib/vim/indent/nginx.vim +11 -0
  21. package/demos/nginx-demo/contrib/vim/syntax/nginx.vim +2268 -0
  22. package/demos/nginx-demo/docs/CHANGES +8115 -0
  23. package/demos/nginx-demo/docs/CHANGES.ru +8252 -0
  24. package/demos/nginx-demo/docs/LICENSE +26 -0
  25. package/demos/nginx-demo/docs/OpenSSL.LICENSE +127 -0
  26. package/demos/nginx-demo/docs/PCRE.LICENCE +93 -0
  27. package/demos/nginx-demo/docs/README +3 -0
  28. package/demos/nginx-demo/docs/zlib.LICENSE +20 -0
  29. package/demos/nginx-demo/html/50x.html +21 -0
  30. package/demos/nginx-demo/html/ezuikit5/ezuikit.js +33328 -0
  31. package/demos/{base-demo/base.html → nginx-demo/html/ezuikit5/index.html} +8 -9
  32. package/demos/nginx-demo/html/ezuikit5/server.js +67 -0
  33. package/demos/nginx-demo/html/index.html +16 -0
  34. package/demos/nginx-demo/html/js/adapeter.js +5497 -0
  35. package/demos/nginx-demo/html/js/janus.js +3507 -0
  36. package/demos/nginx-demo/html/js/jquery.min.js +2 -0
  37. package/demos/nginx-demo/html/js/sts.js +340 -0
  38. package/demos/nginx-demo/logs/access.log +79 -0
  39. package/demos/nginx-demo/logs/error.log +13 -0
  40. package/demos/nginx-demo/logs/nginx.pid +1 -0
  41. package/demos/nginx-demo/nginx.exe +0 -0
  42. package/ezuikit.js +22350 -16026
  43. package/package.json +1 -1
  44. package/demos/base-demo/mobileLive.html +0 -111
  45. package/demos/base-demo/mobileRec.html +0 -110
  46. package/demos/base-demo/multi-demo.html +0 -213
  47. package/demos/base-demo/multi.html +0 -123
  48. package/demos/base-demo/pcLive.html +0 -111
  49. package/demos/base-demo/pcRec.html +0 -110
  50. package/demos/base-demo/template.html +0 -118
  51. package/demos/base-demo/themeData.html +0 -219
  52. package/demos/react-demo/README.md +0 -68
  53. package/demos/react-demo/package-lock.json +0 -30468
  54. package/demos/react-demo/package.json +0 -36
  55. package/demos/react-demo/public/favicon.ico +0 -0
  56. package/demos/react-demo/public/index.html +0 -43
  57. package/demos/react-demo/public/logo192.png +0 -0
  58. package/demos/react-demo/public/logo512.png +0 -0
  59. package/demos/react-demo/public/manifest.json +0 -25
  60. package/demos/react-demo/public/robots.txt +0 -3
  61. package/demos/react-demo/src/App.css +0 -38
  62. package/demos/react-demo/src/App.js +0 -54
  63. package/demos/react-demo/src/App.test.js +0 -9
  64. package/demos/react-demo/src/ezuikit/index.js +0 -1113
  65. package/demos/react-demo/src/ezuikit/package.json +0 -12
  66. package/demos/react-demo/src/index.css +0 -13
  67. package/demos/react-demo/src/index.js +0 -17
  68. package/demos/react-demo/src/logo.svg +0 -7
  69. package/demos/react-demo/src/serviceWorker.js +0 -141
  70. package/demos/react-demo/src/setupTests.js +0 -5
  71. package/demos/vue-demo/README.md +0 -24
  72. package/demos/vue-demo/babel.config.js +0 -5
  73. package/demos/vue-demo/package-lock.json +0 -11638
  74. package/demos/vue-demo/package.json +0 -43
  75. package/demos/vue-demo/public/favicon.ico +0 -0
  76. package/demos/vue-demo/public/index.html +0 -17
  77. package/demos/vue-demo/src/App.vue +0 -27
  78. package/demos/vue-demo/src/assets/logo.png +0 -0
  79. package/demos/vue-demo/src/components/EZUIKitJs.vue +0 -55
  80. package/demos/vue-demo/src/main.js +0 -8
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- v 0.5.6
1
+ v 0.5.7
2
2
  [feta]新增对讲成功回调,用于国标对讲成功,开启视频声音
3
3
 
4
4
  [feta]新增对讲失败回调,返回对讲失败错误信息
@@ -110,6 +110,7 @@ var addJs = function addJs(filepath, callback, isReadyFun) {
110
110
  if (!isReady) {
111
111
  var oJs = document.createElement("script");
112
112
  oJs.setAttribute("src", filepath);
113
+ oJs.setAttribute("crossorigin", true);
113
114
  oJs.onload = callback;
114
115
  document.getElementsByTagName("head")[0].appendChild(oJs);
115
116
  } else {
@@ -27436,7 +27437,12 @@ Janus.init({
27436
27437
  "codec": "opus",
27437
27438
  "dir": "sendrecv",
27438
27439
  "audio_debug": 1
27439
- }; //tts.send({"message": body});
27440
+ };
27441
+
27442
+ if (window.EZUIKit.opt.talkType === 'gb28181') {
27443
+ body['devProto'] = 'gb28181';
27444
+ } //tts.send({"message": body});
27445
+
27440
27446
 
27441
27447
  Janus.debug("Trying a createOffer too (audio/video sendrecv)");
27442
27448
  tts.createOffer({
@@ -27640,6 +27646,8 @@ window.tts = tts;
27640
27646
 
27641
27647
  var Talk = /*#__PURE__*/function () {
27642
27648
  function Talk(jSPlugin) {
27649
+ var _this = this;
27650
+
27643
27651
  _classCallCheck$1(this, Talk);
27644
27652
 
27645
27653
  this.jSPlugin = jSPlugin;
@@ -27664,11 +27672,22 @@ var Talk = /*#__PURE__*/function () {
27664
27672
  // addJs(`${this.jSPlugin.staticPath}/talk/tts-v4.js`, () => {
27665
27673
  // 临时处理
27666
27674
 
27667
- window.EZUIKit["handleTalkError"] = {
27668
- handleTalkError: function handleTalkError(err) {
27669
- console.log("talk err", err);
27675
+ window.EZUIKit["handleTalkError"] = function (err) {
27676
+ console.log("talk err", err);
27677
+
27678
+ if (typeof _this.jSPlugin.handleTalkError !== 'undefined') {
27679
+ _this.jSPlugin.handleTalkError(err);
27670
27680
  }
27671
27681
  };
27682
+
27683
+ window.EZUIKit["handleTalkSuccess"] = function (data) {
27684
+ console.log("talk success", data);
27685
+
27686
+ if (typeof _this.jSPlugin.handleTalkSuccess !== 'undefined') {
27687
+ _this.jSPlugin.handleTalkSuccess(data);
27688
+ }
27689
+ };
27690
+
27672
27691
  window.EZUIKit.opt = {
27673
27692
  rtcUrl: "",
27674
27693
  talkLink: "",
@@ -27691,9 +27710,9 @@ var Talk = /*#__PURE__*/function () {
27691
27710
  }, {
27692
27711
  key: "startTalk",
27693
27712
  value: function startTalk() {
27694
- var _this = this;
27713
+ var _this2 = this;
27695
27714
 
27696
- if (!(this.jSPlugin.capacity && (this.jSPlugin.capacity.support_talk === '3' || this.jSPlugin.capacity.support_talk === '1'))) {
27715
+ if (this.jSPlugin.capacity && this.jSPlugin.capacity.support_talk && !(this.jSPlugin.capacity && (this.jSPlugin.capacity.support_talk === '3' || this.jSPlugin.capacity.support_talk === '1'))) {
27697
27716
  if (typeof this.jSPlugin.params.handleError === 'function') {
27698
27717
  this.jSPlugin.params.handleError({
27699
27718
  msg: "设备不支持对讲",
@@ -27732,17 +27751,28 @@ var Talk = /*#__PURE__*/function () {
27732
27751
 
27733
27752
  window.EZUIKit.opt.rtcUrl = rtcTrunk;
27734
27753
  window.EZUIKit.opt.ttsUrl = "tts://" + apiResult.ttsUrl;
27735
- var talk = "talk://" + window.EZUIKit.opt.deviceSerial + ":0:" + window.EZUIKit.opt.channelNo + ":cas.ys7.com:6500";
27736
- window.EZUIKit.opt.talkLink = window.EZUIKit.opt.ttsUrl + "/" + talk;
27754
+ var urlList = window.EZUIKit.opt.ttsUrl.split("?");
27755
+
27756
+ if (urlList.length === 2) {
27757
+ // 国标设备
27758
+ var talk = "talk?dev=" + window.EZUIKit.opt.deviceSerial + "&chann=" + window.EZUIKit.opt.channelNo + "&encodetype=2";
27759
+ window.EZUIKit.opt.talkLink = window.EZUIKit.opt.ttsUrl.split("?")[0] + "/" + talk;
27760
+ window.EZUIKit.opt.talkType = "gb28181";
27761
+ } else {
27762
+ // 普通设备
27763
+ var talk = "talk://" + window.EZUIKit.opt.deviceSerial + ":0:" + window.EZUIKit.opt.channelNo + ":cas.ys7.com:6500";
27764
+ window.EZUIKit.opt.talkLink = window.EZUIKit.opt.ttsUrl.split("?")[0] + "/" + talk;
27765
+ }
27766
+
27737
27767
  window.EZUIKit.opt.stream = apiResult.stream;
27738
27768
  window.startTalk();
27739
27769
  }
27740
27770
  } else {
27741
- if (typeof _this.jSPlugin.params.handleError === 'function') {
27742
- _this.jSPlugin.params.handleError({
27771
+ if (typeof _this2.jSPlugin.params.handleError === 'function') {
27772
+ _this2.jSPlugin.params.handleError({
27743
27773
  msg: data.msg,
27744
27774
  retcode: data.code,
27745
- id: _this.jSPlugin.params.id,
27775
+ id: _this2.jSPlugin.params.id,
27746
27776
  type: "handleError"
27747
27777
  });
27748
27778
  }
@@ -29300,7 +29330,7 @@ var Theme = /*#__PURE__*/function () {
29300
29330
  var headerContainer = document.createElement('div');
29301
29331
  headerContainer.setAttribute('id', "".concat(this.jSPlugin.id, "-headControl"));
29302
29332
  headerContainer.setAttribute('class', 'head-message');
29303
- headerContainer.innerHTML = "<div id='".concat(this.jSPlugin.id, "}-headControl-left' style='display:flex'></div><div id='").concat(this.jSPlugin.id, "}-headControl-right' style='display:flex'></div>");
29333
+ headerContainer.innerHTML = "<div id='".concat(this.jSPlugin.id, "-headControl-left' style='display:flex'></div><div id='").concat(this.jSPlugin.id, "}-headControl-right' style='display:flex'></div>");
29304
29334
  var headerStyle = {
29305
29335
  height: this.jSPlugin.width > MEDIAWIDTH ? "48px" : "32px",
29306
29336
  "line-height": this.jSPlugin.width > MEDIAWIDTH ? "48px" : "32px",
@@ -29440,11 +29470,17 @@ var Theme = /*#__PURE__*/function () {
29440
29470
  if (data.code == 200 && data.data) {
29441
29471
  // 设备序列号
29442
29472
  if (document.getElementById("".concat(_this6.jSPlugin.id, "-deviceName-content"))) {
29473
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceName-content")).style.maxWidth = "160px";
29474
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceName-content")).style.overflow = "hidden";
29475
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceName-content")).style.textOverflow = "ellipsis";
29443
29476
  document.getElementById("".concat(_this6.jSPlugin.id, "-deviceName-content")).innerHTML = data.data.deviceName;
29444
29477
  } // 设备序列号
29445
29478
 
29446
29479
 
29447
29480
  if (document.getElementById("".concat(_this6.jSPlugin.id, "-deviceID-content"))) {
29481
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceID-content")).style.maxWidth = "160px";
29482
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceID-content")).style.overflow = "hidden";
29483
+ document.getElementById("".concat(_this6.jSPlugin.id, "-deviceID-content")).style.textOverflow = "ellipsis";
29448
29484
  document.getElementById("".concat(_this6.jSPlugin.id, "-deviceID-content")).innerHTML = matchEzopenUrl(_this6.jSPlugin.url).deviceSerial;
29449
29485
  }
29450
29486
  }
@@ -31796,8 +31832,6 @@ var fragmentYUVShader = ['precision highp float;', 'varying highp vec2 textureCo
31796
31832
  return RenderManager;
31797
31833
  });
31798
31834
 
31799
- // iframe模板 - 兼容旧版本
31800
-
31801
31835
  var matchTemplate = function matchTemplate(templateName, params) {
31802
31836
  var IFRAMETEMPLATE = ['simple', 'standard', 'security', 'voice', 'theme'];
31803
31837
  var LOCALTEMPLATE = ['pcLive', 'pcRec', 'mobileLive', 'mobileRec', 'noData', ''];
@@ -31896,7 +31930,14 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
31896
31930
  this.disabledTimeLine = params.disabledTimeLine;
31897
31931
  }
31898
31932
 
31899
- addJs("".concat(this.staticPath, "/js/jsPlugin-4.0.2.min.js"), function () {
31933
+ var pluginUrl = "".concat(this.staticPath, "/js/jsPlugin-4.0.2.min.js");
31934
+
31935
+ if (!!window.SharedArrayBuffer) {
31936
+ console.log("启用多线程解析视频");
31937
+ pluginUrl = "https://jianboyu.top/2.0/jsPlugin-2.0.0.min.js";
31938
+ }
31939
+
31940
+ addJs(pluginUrl, function () {
31900
31941
  if (autoplay) {
31901
31942
  _this.initTime = new Date().getTime();
31902
31943
 
@@ -32076,6 +32117,14 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32076
32117
  _this2.env = Object.assign(_this2.env, params.env);
32077
32118
  }
32078
32119
 
32120
+ if (typeof params.handleTalkSuccess !== 'undefined') {
32121
+ _this2.handleTalkSuccess = params.handleTalkSuccess;
32122
+ }
32123
+
32124
+ if (typeof params.handleTalkError !== 'undefined') {
32125
+ _this2.handleTalkError = params.handleTalkError;
32126
+ }
32127
+
32079
32128
  _this2.errorHander = new Code();
32080
32129
  _this2.jSPlugin = jSPlugin;
32081
32130
 
@@ -32153,7 +32202,11 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32153
32202
  var validateCode = getQueryString('checkCode', realUrl);
32154
32203
 
32155
32204
  if (validateCode) {
32156
- _this3.jSPlugin.JS_SetSecretKey(0, validateCode);
32205
+ if (typeof _this3.jSPlugin.decoderVersion !== 'undefined' && _this3.jSPlugin.decoderVersion === '2.0') {
32206
+ _this3.validateCode = validateCode;
32207
+ } else {
32208
+ _this3.jSPlugin.JS_SetSecretKey(0, validateCode);
32209
+ }
32157
32210
  } // 回放处理
32158
32211
 
32159
32212
 
@@ -32462,6 +32515,10 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32462
32515
  this.jSPlugin.JS_Play(wsUrl, wsParams, 0).then(function () {
32463
32516
  console.log("播放成功");
32464
32517
 
32518
+ if (_this4.validateCode && typeof _this4.jSPlugin.decoderVersion !== 'undefined' && _this4.jSPlugin.decoderVersion === '2.0') {
32519
+ _this4.jSPlugin.JS_SetSecretKey(0, _this4.validateCode);
32520
+ }
32521
+
32465
32522
  _this4.pluginStatus.loadingClear();
32466
32523
 
32467
32524
  _this4.pluginStatus.setPlayStatus({
@@ -32620,12 +32677,15 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32620
32677
  this.url = url;
32621
32678
  var promise = new Promise(function (resolve, reject) {
32622
32679
  _this7.stop().then(function () {
32680
+ console.log("changePlayUrl stop success");
32681
+
32623
32682
  if (options.accessToken) {
32624
32683
  _this7.accessToken = options.accessToken;
32625
32684
  return _this7.play({
32626
32685
  accessToken: options.accessToken,
32627
32686
  url: url
32628
32687
  }).then(function () {
32688
+ console.log("changePlayUrl replay success");
32629
32689
  resolve(url);
32630
32690
  })["catch"](function (err) {
32631
32691
  reject(url);
@@ -32633,6 +32693,7 @@ var EZUIKitPlayer = /*#__PURE__*/function () {
32633
32693
  }
32634
32694
 
32635
32695
  _this7.play(url).then(function () {
32696
+ console.log("changePlayUrl replay success");
32636
32697
  resolve(url);
32637
32698
  })["catch"](function (err) {
32638
32699
  reject(url);
@@ -17,7 +17,6 @@
17
17
  <button onClick="play()">play</button>
18
18
  <button onClick="stop()">stop</button>
19
19
  <button onClick="getOSDTime()">getOSDTime</button>
20
- <button onClick="getOSDTime2()">getOSDTime2</button>
21
20
  <button onClick="capturePicture()">capturePicture</button>
22
21
  <button onClick="openSound()">openSound</button>
23
22
  <button onClick="closeSound()">closeSound</button>
@@ -37,8 +36,8 @@
37
36
  var accessToken = res.data.accessToken;
38
37
  playr = new EZUIKit.EZUIKitPlayer({
39
38
  id: 'video-container', // 视频容器ID
40
- accessToken: accessToken,
41
- url: 'ezopen://open.ys7.com/G39444019/1.live',
39
+ accessToken: "at.5so0lluc89r4jjj45waik5viainzozd6-67wi5b5fgx-07ahxuy-nzfgd8qn0",
40
+ url: 'ezopen://open.ys7.com/D88600067/1.live',
42
41
  template: 'simple', // simple - 极简版;standard-标准版;security - 安防版(预览回放);voice-语音版; theme-可配置主题;
43
42
  plugin: ['talk'], // 加载插件,talk-对讲
44
43
  width: 600,
@@ -69,12 +68,6 @@
69
68
  console.log("promise 获取 数据", data)
70
69
  })
71
70
  }
72
- function getOSDTime2() {
73
- var getOSDTimePromise = playr2.getOSDTime();
74
- getOSDTimePromise.then((data) => {
75
- console.log("promise 获取 数据", data)
76
- })
77
- }
78
71
  function capturePicture() {
79
72
  var capturePicturePromise = playr.capturePicture();
80
73
  capturePicturePromise.then((data) => {
@@ -0,0 +1,26 @@
1
+
2
+ fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
3
+ fastcgi_param QUERY_STRING $query_string;
4
+ fastcgi_param REQUEST_METHOD $request_method;
5
+ fastcgi_param CONTENT_TYPE $content_type;
6
+ fastcgi_param CONTENT_LENGTH $content_length;
7
+
8
+ fastcgi_param SCRIPT_NAME $fastcgi_script_name;
9
+ fastcgi_param REQUEST_URI $request_uri;
10
+ fastcgi_param DOCUMENT_URI $document_uri;
11
+ fastcgi_param DOCUMENT_ROOT $document_root;
12
+ fastcgi_param SERVER_PROTOCOL $server_protocol;
13
+ fastcgi_param REQUEST_SCHEME $scheme;
14
+ fastcgi_param HTTPS $https if_not_empty;
15
+
16
+ fastcgi_param GATEWAY_INTERFACE CGI/1.1;
17
+ fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
18
+
19
+ fastcgi_param REMOTE_ADDR $remote_addr;
20
+ fastcgi_param REMOTE_PORT $remote_port;
21
+ fastcgi_param SERVER_ADDR $server_addr;
22
+ fastcgi_param SERVER_PORT $server_port;
23
+ fastcgi_param SERVER_NAME $server_name;
24
+
25
+ # PHP only, required if PHP was built with --enable-force-cgi-redirect
26
+ fastcgi_param REDIRECT_STATUS 200;
@@ -0,0 +1,25 @@
1
+
2
+ fastcgi_param QUERY_STRING $query_string;
3
+ fastcgi_param REQUEST_METHOD $request_method;
4
+ fastcgi_param CONTENT_TYPE $content_type;
5
+ fastcgi_param CONTENT_LENGTH $content_length;
6
+
7
+ fastcgi_param SCRIPT_NAME $fastcgi_script_name;
8
+ fastcgi_param REQUEST_URI $request_uri;
9
+ fastcgi_param DOCUMENT_URI $document_uri;
10
+ fastcgi_param DOCUMENT_ROOT $document_root;
11
+ fastcgi_param SERVER_PROTOCOL $server_protocol;
12
+ fastcgi_param REQUEST_SCHEME $scheme;
13
+ fastcgi_param HTTPS $https if_not_empty;
14
+
15
+ fastcgi_param GATEWAY_INTERFACE CGI/1.1;
16
+ fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
17
+
18
+ fastcgi_param REMOTE_ADDR $remote_addr;
19
+ fastcgi_param REMOTE_PORT $remote_port;
20
+ fastcgi_param SERVER_ADDR $server_addr;
21
+ fastcgi_param SERVER_PORT $server_port;
22
+ fastcgi_param SERVER_NAME $server_name;
23
+
24
+ # PHP only, required if PHP was built with --enable-force-cgi-redirect
25
+ fastcgi_param REDIRECT_STATUS 200;
@@ -0,0 +1,109 @@
1
+
2
+ # This map is not a full koi8-r <> utf8 map: it does not contain
3
+ # box-drawing and some other characters. Besides this map contains
4
+ # several koi8-u and Byelorussian letters which are not in koi8-r.
5
+ # If you need a full and standard map, use contrib/unicode2nginx/koi-utf
6
+ # map instead.
7
+
8
+ charset_map koi8-r utf-8 {
9
+
10
+ 80 E282AC ; # euro
11
+
12
+ 95 E280A2 ; # bullet
13
+
14
+ 9A C2A0 ; # &nbsp;
15
+
16
+ 9E C2B7 ; # &middot;
17
+
18
+ A3 D191 ; # small yo
19
+ A4 D194 ; # small Ukrainian ye
20
+
21
+ A6 D196 ; # small Ukrainian i
22
+ A7 D197 ; # small Ukrainian yi
23
+
24
+ AD D291 ; # small Ukrainian soft g
25
+ AE D19E ; # small Byelorussian short u
26
+
27
+ B0 C2B0 ; # &deg;
28
+
29
+ B3 D081 ; # capital YO
30
+ B4 D084 ; # capital Ukrainian YE
31
+
32
+ B6 D086 ; # capital Ukrainian I
33
+ B7 D087 ; # capital Ukrainian YI
34
+
35
+ B9 E28496 ; # numero sign
36
+
37
+ BD D290 ; # capital Ukrainian soft G
38
+ BE D18E ; # capital Byelorussian short U
39
+
40
+ BF C2A9 ; # (C)
41
+
42
+ C0 D18E ; # small yu
43
+ C1 D0B0 ; # small a
44
+ C2 D0B1 ; # small b
45
+ C3 D186 ; # small ts
46
+ C4 D0B4 ; # small d
47
+ C5 D0B5 ; # small ye
48
+ C6 D184 ; # small f
49
+ C7 D0B3 ; # small g
50
+ C8 D185 ; # small kh
51
+ C9 D0B8 ; # small i
52
+ CA D0B9 ; # small j
53
+ CB D0BA ; # small k
54
+ CC D0BB ; # small l
55
+ CD D0BC ; # small m
56
+ CE D0BD ; # small n
57
+ CF D0BE ; # small o
58
+
59
+ D0 D0BF ; # small p
60
+ D1 D18F ; # small ya
61
+ D2 D180 ; # small r
62
+ D3 D181 ; # small s
63
+ D4 D182 ; # small t
64
+ D5 D183 ; # small u
65
+ D6 D0B6 ; # small zh
66
+ D7 D0B2 ; # small v
67
+ D8 D18C ; # small soft sign
68
+ D9 D18B ; # small y
69
+ DA D0B7 ; # small z
70
+ DB D188 ; # small sh
71
+ DC D18D ; # small e
72
+ DD D189 ; # small shch
73
+ DE D187 ; # small ch
74
+ DF D18A ; # small hard sign
75
+
76
+ E0 D0AE ; # capital YU
77
+ E1 D090 ; # capital A
78
+ E2 D091 ; # capital B
79
+ E3 D0A6 ; # capital TS
80
+ E4 D094 ; # capital D
81
+ E5 D095 ; # capital YE
82
+ E6 D0A4 ; # capital F
83
+ E7 D093 ; # capital G
84
+ E8 D0A5 ; # capital KH
85
+ E9 D098 ; # capital I
86
+ EA D099 ; # capital J
87
+ EB D09A ; # capital K
88
+ EC D09B ; # capital L
89
+ ED D09C ; # capital M
90
+ EE D09D ; # capital N
91
+ EF D09E ; # capital O
92
+
93
+ F0 D09F ; # capital P
94
+ F1 D0AF ; # capital YA
95
+ F2 D0A0 ; # capital R
96
+ F3 D0A1 ; # capital S
97
+ F4 D0A2 ; # capital T
98
+ F5 D0A3 ; # capital U
99
+ F6 D096 ; # capital ZH
100
+ F7 D092 ; # capital V
101
+ F8 D0AC ; # capital soft sign
102
+ F9 D0AB ; # capital Y
103
+ FA D097 ; # capital Z
104
+ FB D0A8 ; # capital SH
105
+ FC D0AD ; # capital E
106
+ FD D0A9 ; # capital SHCH
107
+ FE D0A7 ; # capital CH
108
+ FF D0AA ; # capital hard sign
109
+ }
@@ -0,0 +1,103 @@
1
+
2
+ charset_map koi8-r windows-1251 {
3
+
4
+ 80 88 ; # euro
5
+
6
+ 95 95 ; # bullet
7
+
8
+ 9A A0 ; # &nbsp;
9
+
10
+ 9E B7 ; # &middot;
11
+
12
+ A3 B8 ; # small yo
13
+ A4 BA ; # small Ukrainian ye
14
+
15
+ A6 B3 ; # small Ukrainian i
16
+ A7 BF ; # small Ukrainian yi
17
+
18
+ AD B4 ; # small Ukrainian soft g
19
+ AE A2 ; # small Byelorussian short u
20
+
21
+ B0 B0 ; # &deg;
22
+
23
+ B3 A8 ; # capital YO
24
+ B4 AA ; # capital Ukrainian YE
25
+
26
+ B6 B2 ; # capital Ukrainian I
27
+ B7 AF ; # capital Ukrainian YI
28
+
29
+ B9 B9 ; # numero sign
30
+
31
+ BD A5 ; # capital Ukrainian soft G
32
+ BE A1 ; # capital Byelorussian short U
33
+
34
+ BF A9 ; # (C)
35
+
36
+ C0 FE ; # small yu
37
+ C1 E0 ; # small a
38
+ C2 E1 ; # small b
39
+ C3 F6 ; # small ts
40
+ C4 E4 ; # small d
41
+ C5 E5 ; # small ye
42
+ C6 F4 ; # small f
43
+ C7 E3 ; # small g
44
+ C8 F5 ; # small kh
45
+ C9 E8 ; # small i
46
+ CA E9 ; # small j
47
+ CB EA ; # small k
48
+ CC EB ; # small l
49
+ CD EC ; # small m
50
+ CE ED ; # small n
51
+ CF EE ; # small o
52
+
53
+ D0 EF ; # small p
54
+ D1 FF ; # small ya
55
+ D2 F0 ; # small r
56
+ D3 F1 ; # small s
57
+ D4 F2 ; # small t
58
+ D5 F3 ; # small u
59
+ D6 E6 ; # small zh
60
+ D7 E2 ; # small v
61
+ D8 FC ; # small soft sign
62
+ D9 FB ; # small y
63
+ DA E7 ; # small z
64
+ DB F8 ; # small sh
65
+ DC FD ; # small e
66
+ DD F9 ; # small shch
67
+ DE F7 ; # small ch
68
+ DF FA ; # small hard sign
69
+
70
+ E0 DE ; # capital YU
71
+ E1 C0 ; # capital A
72
+ E2 C1 ; # capital B
73
+ E3 D6 ; # capital TS
74
+ E4 C4 ; # capital D
75
+ E5 C5 ; # capital YE
76
+ E6 D4 ; # capital F
77
+ E7 C3 ; # capital G
78
+ E8 D5 ; # capital KH
79
+ E9 C8 ; # capital I
80
+ EA C9 ; # capital J
81
+ EB CA ; # capital K
82
+ EC CB ; # capital L
83
+ ED CC ; # capital M
84
+ EE CD ; # capital N
85
+ EF CE ; # capital O
86
+
87
+ F0 CF ; # capital P
88
+ F1 DF ; # capital YA
89
+ F2 D0 ; # capital R
90
+ F3 D1 ; # capital S
91
+ F4 D2 ; # capital T
92
+ F5 D3 ; # capital U
93
+ F6 C6 ; # capital ZH
94
+ F7 C2 ; # capital V
95
+ F8 DC ; # capital soft sign
96
+ F9 DB ; # capital Y
97
+ FA C7 ; # capital Z
98
+ FB D8 ; # capital SH
99
+ FC DD ; # capital E
100
+ FD D9 ; # capital SHCH
101
+ FE D7 ; # capital CH
102
+ FF DA ; # capital hard sign
103
+ }
@@ -0,0 +1,95 @@
1
+
2
+ types {
3
+ text/html html htm shtml;
4
+ text/css css;
5
+ text/xml xml;
6
+ image/gif gif;
7
+ image/jpeg jpeg jpg;
8
+ application/javascript js;
9
+ application/atom+xml atom;
10
+ application/rss+xml rss;
11
+
12
+ text/mathml mml;
13
+ text/plain txt;
14
+ text/vnd.sun.j2me.app-descriptor jad;
15
+ text/vnd.wap.wml wml;
16
+ text/x-component htc;
17
+
18
+ image/png png;
19
+ image/svg+xml svg svgz;
20
+ image/tiff tif tiff;
21
+ image/vnd.wap.wbmp wbmp;
22
+ image/webp webp;
23
+ image/x-icon ico;
24
+ image/x-jng jng;
25
+ image/x-ms-bmp bmp;
26
+
27
+ application/font-woff woff;
28
+ application/java-archive jar war ear;
29
+ application/json json;
30
+ application/mac-binhex40 hqx;
31
+ application/msword doc;
32
+ application/pdf pdf;
33
+ application/postscript ps eps ai;
34
+ application/rtf rtf;
35
+ application/vnd.apple.mpegurl m3u8;
36
+ application/vnd.google-earth.kml+xml kml;
37
+ application/vnd.google-earth.kmz kmz;
38
+ application/vnd.ms-excel xls;
39
+ application/vnd.ms-fontobject eot;
40
+ application/vnd.ms-powerpoint ppt;
41
+ application/vnd.oasis.opendocument.graphics odg;
42
+ application/vnd.oasis.opendocument.presentation odp;
43
+ application/vnd.oasis.opendocument.spreadsheet ods;
44
+ application/vnd.oasis.opendocument.text odt;
45
+ application/vnd.openxmlformats-officedocument.presentationml.presentation
46
+ pptx;
47
+ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
48
+ xlsx;
49
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document
50
+ docx;
51
+ application/vnd.wap.wmlc wmlc;
52
+ application/x-7z-compressed 7z;
53
+ application/x-cocoa cco;
54
+ application/x-java-archive-diff jardiff;
55
+ application/x-java-jnlp-file jnlp;
56
+ application/x-makeself run;
57
+ application/x-perl pl pm;
58
+ application/x-pilot prc pdb;
59
+ application/x-rar-compressed rar;
60
+ application/x-redhat-package-manager rpm;
61
+ application/x-sea sea;
62
+ application/x-shockwave-flash swf;
63
+ application/x-stuffit sit;
64
+ application/x-tcl tcl tk;
65
+ application/x-x509-ca-cert der pem crt;
66
+ application/x-xpinstall xpi;
67
+ application/xhtml+xml xhtml;
68
+ application/xspf+xml xspf;
69
+ application/zip zip;
70
+
71
+ application/octet-stream bin exe dll;
72
+ application/octet-stream deb;
73
+ application/octet-stream dmg;
74
+ application/octet-stream iso img;
75
+ application/octet-stream msi msp msm;
76
+
77
+ audio/midi mid midi kar;
78
+ audio/mpeg mp3;
79
+ audio/ogg ogg;
80
+ audio/x-m4a m4a;
81
+ audio/x-realaudio ra;
82
+
83
+ video/3gpp 3gpp 3gp;
84
+ video/mp2t ts;
85
+ video/mp4 mp4;
86
+ video/mpeg mpeg mpg;
87
+ video/quicktime mov;
88
+ video/webm webm;
89
+ video/x-flv flv;
90
+ video/x-m4v m4v;
91
+ video/x-mng mng;
92
+ video/x-ms-asf asx asf;
93
+ video/x-ms-wmv wmv;
94
+ video/x-msvideo avi;
95
+ }