aprsd 3.4.4__py3-none-any.whl → 4.0.0__py3-none-any.whl

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 (115) hide show
  1. aprsd/cli_helper.py +12 -5
  2. aprsd/client/aprsis.py +31 -9
  3. aprsd/client/base.py +13 -2
  4. aprsd/client/drivers/aprsis.py +6 -3
  5. aprsd/client/drivers/fake.py +15 -20
  6. aprsd/client/factory.py +0 -2
  7. aprsd/client/fake.py +0 -2
  8. aprsd/client/kiss.py +17 -2
  9. aprsd/client/stats.py +1 -3
  10. aprsd/cmds/completion.py +7 -4
  11. aprsd/cmds/dev.py +38 -42
  12. aprsd/cmds/fetch_stats.py +140 -143
  13. aprsd/cmds/healthcheck.py +5 -3
  14. aprsd/cmds/list_plugins.py +140 -134
  15. aprsd/cmds/listen.py +13 -9
  16. aprsd/cmds/server.py +53 -27
  17. aprsd/conf/__init__.py +1 -2
  18. aprsd/conf/client.py +3 -4
  19. aprsd/conf/common.py +19 -93
  20. aprsd/conf/log.py +2 -4
  21. aprsd/conf/opts.py +5 -4
  22. aprsd/conf/plugin_common.py +11 -121
  23. aprsd/exception.py +2 -0
  24. aprsd/log/log.py +7 -46
  25. aprsd/main.py +10 -4
  26. aprsd/packets/__init__.py +14 -4
  27. aprsd/packets/core.py +57 -67
  28. aprsd/packets/log.py +8 -8
  29. aprsd/packets/packet_list.py +9 -6
  30. aprsd/plugin.py +22 -11
  31. aprsd/plugins/notify.py +1 -4
  32. aprsd/plugins/weather.py +10 -8
  33. aprsd/stats/collector.py +5 -2
  34. aprsd/threads/__init__.py +3 -2
  35. aprsd/threads/aprsd.py +12 -7
  36. aprsd/threads/{keep_alive.py → keepalive.py} +14 -45
  37. aprsd/threads/registry.py +3 -3
  38. aprsd/threads/rx.py +9 -6
  39. aprsd/threads/stats.py +2 -2
  40. aprsd/threads/tx.py +3 -4
  41. aprsd/utils/__init__.py +42 -10
  42. aprsd/utils/json.py +9 -4
  43. aprsd/utils/keepalive_collector.py +55 -0
  44. aprsd/utils/trace.py +0 -2
  45. aprsd-4.0.0.dist-info/AUTHORS +1 -0
  46. aprsd-4.0.0.dist-info/METADATA +293 -0
  47. aprsd-4.0.0.dist-info/RECORD +74 -0
  48. {aprsd-3.4.4.dist-info → aprsd-4.0.0.dist-info}/WHEEL +1 -1
  49. aprsd/cmds/admin.py +0 -57
  50. aprsd/cmds/webchat.py +0 -662
  51. aprsd/conf/plugin_email.py +0 -105
  52. aprsd/plugins/email.py +0 -715
  53. aprsd/plugins/location.py +0 -181
  54. aprsd/threads/log_monitor.py +0 -121
  55. aprsd/web/__init__.py +0 -0
  56. aprsd/web/admin/__init__.py +0 -0
  57. aprsd/web/admin/static/css/index.css +0 -84
  58. aprsd/web/admin/static/css/prism.css +0 -4
  59. aprsd/web/admin/static/css/tabs.css +0 -35
  60. aprsd/web/admin/static/images/Untitled.png +0 -0
  61. aprsd/web/admin/static/images/aprs-symbols-16-0.png +0 -0
  62. aprsd/web/admin/static/images/aprs-symbols-16-1.png +0 -0
  63. aprsd/web/admin/static/images/aprs-symbols-64-0.png +0 -0
  64. aprsd/web/admin/static/images/aprs-symbols-64-1.png +0 -0
  65. aprsd/web/admin/static/images/aprs-symbols-64-2.png +0 -0
  66. aprsd/web/admin/static/js/charts.js +0 -235
  67. aprsd/web/admin/static/js/echarts.js +0 -465
  68. aprsd/web/admin/static/js/logs.js +0 -26
  69. aprsd/web/admin/static/js/main.js +0 -231
  70. aprsd/web/admin/static/js/prism.js +0 -12
  71. aprsd/web/admin/static/js/send-message.js +0 -114
  72. aprsd/web/admin/static/js/tabs.js +0 -28
  73. aprsd/web/admin/templates/index.html +0 -196
  74. aprsd/web/chat/static/css/chat.css +0 -115
  75. aprsd/web/chat/static/css/index.css +0 -66
  76. aprsd/web/chat/static/css/style.css.map +0 -1
  77. aprsd/web/chat/static/css/tabs.css +0 -41
  78. aprsd/web/chat/static/css/upstream/bootstrap.min.css +0 -6
  79. aprsd/web/chat/static/css/upstream/font.woff2 +0 -0
  80. aprsd/web/chat/static/css/upstream/google-fonts.css +0 -23
  81. aprsd/web/chat/static/css/upstream/jquery-ui.css +0 -1311
  82. aprsd/web/chat/static/css/upstream/jquery.toast.css +0 -28
  83. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/LatoLatin-Bold.woff +0 -0
  84. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/LatoLatin-Bold.woff2 +0 -0
  85. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/LatoLatin-Regular.woff +0 -0
  86. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/LatoLatin-Regular.woff2 +0 -0
  87. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/icons.woff +0 -0
  88. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/icons.woff2 +0 -0
  89. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/outline-icons.woff +0 -0
  90. aprsd/web/chat/static/css/upstream/themes/default/assets/fonts/outline-icons.woff2 +0 -0
  91. aprsd/web/chat/static/images/Untitled.png +0 -0
  92. aprsd/web/chat/static/images/aprs-symbols-16-0.png +0 -0
  93. aprsd/web/chat/static/images/aprs-symbols-16-1.png +0 -0
  94. aprsd/web/chat/static/images/aprs-symbols-64-0.png +0 -0
  95. aprsd/web/chat/static/images/aprs-symbols-64-1.png +0 -0
  96. aprsd/web/chat/static/images/aprs-symbols-64-2.png +0 -0
  97. aprsd/web/chat/static/images/globe.svg +0 -3
  98. aprsd/web/chat/static/js/gps.js +0 -84
  99. aprsd/web/chat/static/js/main.js +0 -45
  100. aprsd/web/chat/static/js/send-message.js +0 -612
  101. aprsd/web/chat/static/js/tabs.js +0 -28
  102. aprsd/web/chat/static/js/upstream/bootstrap.bundle.min.js +0 -7
  103. aprsd/web/chat/static/js/upstream/jquery-3.7.1.min.js +0 -2
  104. aprsd/web/chat/static/js/upstream/jquery-ui.min.js +0 -13
  105. aprsd/web/chat/static/js/upstream/jquery.toast.js +0 -374
  106. aprsd/web/chat/static/js/upstream/semantic.min.js +0 -11
  107. aprsd/web/chat/static/js/upstream/socket.io.min.js +0 -7
  108. aprsd/web/chat/templates/index.html +0 -139
  109. aprsd/wsgi.py +0 -322
  110. aprsd-3.4.4.dist-info/AUTHORS +0 -13
  111. aprsd-3.4.4.dist-info/METADATA +0 -849
  112. aprsd-3.4.4.dist-info/RECORD +0 -134
  113. {aprsd-3.4.4.dist-info → aprsd-4.0.0.dist-info}/LICENSE +0 -0
  114. {aprsd-3.4.4.dist-info → aprsd-4.0.0.dist-info}/entry_points.txt +0 -0
  115. {aprsd-3.4.4.dist-info → aprsd-4.0.0.dist-info}/top_level.txt +0 -0
@@ -1,374 +0,0 @@
1
- // jQuery toast plugin created by Kamran Ahmed copyright MIT license 2015
2
- if ( typeof Object.create !== 'function' ) {
3
- Object.create = function( obj ) {
4
- function F() {}
5
- F.prototype = obj;
6
- return new F();
7
- };
8
- }
9
-
10
- (function( $, window, document, undefined ) {
11
-
12
- "use strict";
13
-
14
- var Toast = {
15
-
16
- _positionClasses : ['bottom-left', 'bottom-right', 'top-right', 'top-left', 'bottom-center', 'top-center', 'mid-center'],
17
- _defaultIcons : ['success', 'error', 'info', 'warning'],
18
-
19
- init: function (options, elem) {
20
- this.prepareOptions(options, $.toast.options);
21
- this.process();
22
- },
23
-
24
- prepareOptions: function(options, options_to_extend) {
25
- var _options = {};
26
- if ( ( typeof options === 'string' ) || ( options instanceof Array ) ) {
27
- _options.text = options;
28
- } else {
29
- _options = options;
30
- }
31
- this.options = $.extend( {}, options_to_extend, _options );
32
- },
33
-
34
- process: function () {
35
- this.setup();
36
- this.addToDom();
37
- this.position();
38
- this.bindToast();
39
- this.animate();
40
- },
41
-
42
- setup: function () {
43
-
44
- var _toastContent = '';
45
-
46
- this._toastEl = this._toastEl || $('<div></div>', {
47
- class : 'jq-toast-single'
48
- });
49
-
50
- // For the loader on top
51
- _toastContent += '<span class="jq-toast-loader"></span>';
52
-
53
- if ( this.options.allowToastClose ) {
54
- _toastContent += '<span class="close-jq-toast-single">&times;</span>';
55
- };
56
-
57
- if ( this.options.text instanceof Array ) {
58
-
59
- if ( this.options.heading ) {
60
- _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>';
61
- };
62
-
63
- _toastContent += '<ul class="jq-toast-ul">';
64
- for (var i = 0; i < this.options.text.length; i++) {
65
- _toastContent += '<li class="jq-toast-li" id="jq-toast-item-' + i + '">' + this.options.text[i] + '</li>';
66
- }
67
- _toastContent += '</ul>';
68
-
69
- } else {
70
- if ( this.options.heading ) {
71
- _toastContent +='<h2 class="jq-toast-heading">' + this.options.heading + '</h2>';
72
- };
73
- _toastContent += this.options.text;
74
- }
75
-
76
- this._toastEl.html( _toastContent );
77
-
78
- if ( this.options.bgColor !== false ) {
79
- this._toastEl.css("background-color", this.options.bgColor);
80
- };
81
-
82
- if ( this.options.textColor !== false ) {
83
- this._toastEl.css("color", this.options.textColor);
84
- };
85
-
86
- if ( this.options.textAlign ) {
87
- this._toastEl.css('text-align', this.options.textAlign);
88
- }
89
-
90
- if ( this.options.icon !== false ) {
91
- this._toastEl.addClass('jq-has-icon');
92
-
93
- if ( $.inArray(this.options.icon, this._defaultIcons) !== -1 ) {
94
- this._toastEl.addClass('jq-icon-' + this.options.icon);
95
- };
96
- };
97
-
98
- if ( this.options.class !== false ){
99
- this._toastEl.addClass(this.options.class)
100
- }
101
- },
102
-
103
- position: function () {
104
- if ( ( typeof this.options.position === 'string' ) && ( $.inArray( this.options.position, this._positionClasses) !== -1 ) ) {
105
-
106
- if ( this.options.position === 'bottom-center' ) {
107
- this._container.css({
108
- left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
109
- bottom: 20
110
- });
111
- } else if ( this.options.position === 'top-center' ) {
112
- this._container.css({
113
- left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
114
- top: 20
115
- });
116
- } else if ( this.options.position === 'mid-center' ) {
117
- this._container.css({
118
- left: ( $(window).outerWidth() / 2 ) - this._container.outerWidth()/2,
119
- top: ( $(window).outerHeight() / 2 ) - this._container.outerHeight()/2
120
- });
121
- } else {
122
- this._container.addClass( this.options.position );
123
- }
124
-
125
- } else if ( typeof this.options.position === 'object' ) {
126
- this._container.css({
127
- top : this.options.position.top ? this.options.position.top : 'auto',
128
- bottom : this.options.position.bottom ? this.options.position.bottom : 'auto',
129
- left : this.options.position.left ? this.options.position.left : 'auto',
130
- right : this.options.position.right ? this.options.position.right : 'auto'
131
- });
132
- } else {
133
- this._container.addClass( 'bottom-left' );
134
- }
135
- },
136
-
137
- bindToast: function () {
138
-
139
- var that = this;
140
-
141
- this._toastEl.on('afterShown', function () {
142
- that.processLoader();
143
- });
144
-
145
- this._toastEl.find('.close-jq-toast-single').on('click', function ( e ) {
146
-
147
- e.preventDefault();
148
-
149
- if( that.options.showHideTransition === 'fade') {
150
- that._toastEl.trigger('beforeHide');
151
- that._toastEl.fadeOut(function () {
152
- that._toastEl.trigger('afterHidden');
153
- });
154
- } else if ( that.options.showHideTransition === 'slide' ) {
155
- that._toastEl.trigger('beforeHide');
156
- that._toastEl.slideUp(function () {
157
- that._toastEl.trigger('afterHidden');
158
- });
159
- } else {
160
- that._toastEl.trigger('beforeHide');
161
- that._toastEl.hide(function () {
162
- that._toastEl.trigger('afterHidden');
163
- });
164
- }
165
- });
166
-
167
- if ( typeof this.options.beforeShow == 'function' ) {
168
- this._toastEl.on('beforeShow', function () {
169
- that.options.beforeShow(that._toastEl);
170
- });
171
- };
172
-
173
- if ( typeof this.options.afterShown == 'function' ) {
174
- this._toastEl.on('afterShown', function () {
175
- that.options.afterShown(that._toastEl);
176
- });
177
- };
178
-
179
- if ( typeof this.options.beforeHide == 'function' ) {
180
- this._toastEl.on('beforeHide', function () {
181
- that.options.beforeHide(that._toastEl);
182
- });
183
- };
184
-
185
- if ( typeof this.options.afterHidden == 'function' ) {
186
- this._toastEl.on('afterHidden', function () {
187
- that.options.afterHidden(that._toastEl);
188
- });
189
- };
190
-
191
- if ( typeof this.options.onClick == 'function' ) {
192
- this._toastEl.on('click', function () {
193
- that.options.onClick(that._toastEl);
194
- });
195
- };
196
- },
197
-
198
- addToDom: function () {
199
-
200
- var _container = $('.jq-toast-wrap');
201
-
202
- if ( _container.length === 0 ) {
203
-
204
- _container = $('<div></div>',{
205
- class: "jq-toast-wrap",
206
- role: "alert",
207
- "aria-live": "polite"
208
- });
209
-
210
- $('body').append( _container );
211
-
212
- } else if ( !this.options.stack || isNaN( parseInt(this.options.stack, 10) ) ) {
213
- _container.empty();
214
- }
215
-
216
- _container.find('.jq-toast-single:hidden').remove();
217
-
218
- _container.append( this._toastEl );
219
-
220
- if ( this.options.stack && !isNaN( parseInt( this.options.stack ), 10 ) ) {
221
-
222
- var _prevToastCount = _container.find('.jq-toast-single').length,
223
- _extToastCount = _prevToastCount - this.options.stack;
224
-
225
- if ( _extToastCount > 0 ) {
226
- $('.jq-toast-wrap').find('.jq-toast-single').slice(0, _extToastCount).remove();
227
- };
228
-
229
- }
230
-
231
- this._container = _container;
232
- },
233
-
234
- canAutoHide: function () {
235
- return ( this.options.hideAfter !== false ) && !isNaN( parseInt( this.options.hideAfter, 10 ) );
236
- },
237
-
238
- processLoader: function () {
239
- // Show the loader only, if auto-hide is on and loader is demanded
240
- if (!this.canAutoHide() || this.options.loader === false) {
241
- return false;
242
- }
243
-
244
- var loader = this._toastEl.find('.jq-toast-loader');
245
-
246
- // 400 is the default time that jquery uses for fade/slide
247
- // Divide by 1000 for milliseconds to seconds conversion
248
- var transitionTime = (this.options.hideAfter - 400) / 1000 + 's';
249
- var loaderBg = this.options.loaderBg;
250
-
251
- var style = loader.attr('style') || '';
252
- style = style.substring(0, style.indexOf('-webkit-transition')); // Remove the last transition definition
253
-
254
- style += '-webkit-transition: width ' + transitionTime + ' ease-in; \
255
- -o-transition: width ' + transitionTime + ' ease-in; \
256
- transition: width ' + transitionTime + ' ease-in; \
257
- background-color: ' + loaderBg + ';';
258
-
259
-
260
- loader.attr('style', style).addClass('jq-toast-loaded');
261
- },
262
-
263
- animate: function () {
264
-
265
- var that = this;
266
-
267
- this._toastEl.hide();
268
-
269
- this._toastEl.trigger('beforeShow');
270
-
271
- if ( this.options.showHideTransition.toLowerCase() === 'fade' ) {
272
- this._toastEl.fadeIn(function ( ){
273
- that._toastEl.trigger('afterShown');
274
- });
275
- } else if ( this.options.showHideTransition.toLowerCase() === 'slide' ) {
276
- this._toastEl.slideDown(function ( ){
277
- that._toastEl.trigger('afterShown');
278
- });
279
- } else {
280
- this._toastEl.show(function ( ){
281
- that._toastEl.trigger('afterShown');
282
- });
283
- }
284
-
285
- if (this.canAutoHide()) {
286
-
287
- var that = this;
288
-
289
- window.setTimeout(function(){
290
-
291
- if ( that.options.showHideTransition.toLowerCase() === 'fade' ) {
292
- that._toastEl.trigger('beforeHide');
293
- that._toastEl.fadeOut(function () {
294
- that._toastEl.trigger('afterHidden');
295
- });
296
- } else if ( that.options.showHideTransition.toLowerCase() === 'slide' ) {
297
- that._toastEl.trigger('beforeHide');
298
- that._toastEl.slideUp(function () {
299
- that._toastEl.trigger('afterHidden');
300
- });
301
- } else {
302
- that._toastEl.trigger('beforeHide');
303
- that._toastEl.hide(function () {
304
- that._toastEl.trigger('afterHidden');
305
- });
306
- }
307
-
308
- }, this.options.hideAfter);
309
- };
310
- },
311
-
312
- reset: function ( resetWhat ) {
313
-
314
- if ( resetWhat === 'all' ) {
315
- $('.jq-toast-wrap').remove();
316
- } else {
317
- this._toastEl.remove();
318
- }
319
-
320
- },
321
-
322
- update: function(options) {
323
- this.prepareOptions(options, this.options);
324
- this.setup();
325
- this.bindToast();
326
- },
327
-
328
- close: function() {
329
- this._toastEl.find('.close-jq-toast-single').click();
330
- }
331
- };
332
-
333
- $.toast = function(options) {
334
- var toast = Object.create(Toast);
335
- toast.init(options, this);
336
-
337
- return {
338
-
339
- reset: function ( what ) {
340
- toast.reset( what );
341
- },
342
-
343
- update: function( options ) {
344
- toast.update( options );
345
- },
346
-
347
- close: function( ) {
348
- toast.close( );
349
- }
350
- }
351
- };
352
-
353
- $.toast.options = {
354
- text: '',
355
- heading: '',
356
- showHideTransition: 'fade',
357
- allowToastClose: true,
358
- hideAfter: 3000,
359
- loader: true,
360
- loaderBg: '#9EC600',
361
- stack: 5,
362
- position: 'bottom-left',
363
- bgColor: false,
364
- textColor: false,
365
- textAlign: 'left',
366
- icon: false,
367
- beforeShow: function () {},
368
- afterShown: function () {},
369
- beforeHide: function () {},
370
- afterHidden: function () {},
371
- onClick: function () {}
372
- };
373
-
374
- })( jQuery, window, document );