... | ... |
@@ -56,69 +56,42 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
56 | 56 |
*/ |
57 | 57 |
public constructor |
58 | 58 |
( |
59 |
- identigilo : string = null, |
|
60 |
- nomo : string = null, |
|
61 |
- priskribo : string = null, |
|
62 |
- uzo : string = null, |
|
63 |
- auxtoro : string = null, |
|
64 |
- starigi_ : (finado : (eraro ?: Error)=>void, memoro ?: Object)=>void = (finado => finado(null)), |
|
65 |
- reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void = null |
|
59 |
+ datumoj : |
|
60 |
+ { |
|
61 |
+ identigilo ?: string; |
|
62 |
+ nomo ?: string; |
|
63 |
+ priskribo ?: string; |
|
64 |
+ uzo ?: string; |
|
65 |
+ auxtoro ?: string; |
|
66 |
+ starigi ?: (finado : (eraro ?: Error)=>void, memoro ?: Object)=>void; |
|
67 |
+ reagi ?: (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void; |
|
68 |
+ vojo ?: string; |
|
69 |
+ } |
|
70 |
+ = {} |
|
66 | 71 |
) |
67 | 72 |
{ |
68 |
- super(identigilo, nomo, priskribo, uzo, auxtoro); |
|
69 |
- this.starigi_ = starigi_; |
|
70 |
- this.reagi_ = reagi_; |
|
71 |
- this.vojo = null; |
|
73 |
+ super(datumoj); |
|
74 |
+ this.meti_valorojn_(datumoj, false); |
|
72 | 75 |
this.memoro = {}; |
73 | 76 |
} |
74 | 77 |
|
75 | 78 |
|
76 | 79 |
/** |
80 |
+ * @override |
|
77 | 81 |
* @author fenris |
78 | 82 |
*/ |
79 |
- public resxargi(fino : (eraro : Error)=>void = function (eraro : Error) : void {}) : void |
|
83 |
+ public meti_valorojn_(datumoj : Object, ankaux_supraj : boolean = false) : void |
|
80 | 84 |
{ |
81 |
- let that : klaso_kromajxo_ekstera = this; |
|
82 |
- klaso_kromajxo_ekstera.sxargi |
|
83 |
- ( |
|
84 |
- this.vojo, |
|
85 |
- function (eraro : Error, datumoj : Object) : void |
|
86 |
- { |
|
87 |
- if (eraro != null) |
|
88 |
- { |
|
89 |
- fino(eraro); |
|
90 |
- } |
|
91 |
- else |
|
92 |
- { |
|
93 |
- that.nomo = datumoj["nomo"]; |
|
94 |
- that.priskribo = datumoj["priskribo"]; |
|
95 |
- that.uzo = datumoj["uzo"]; |
|
96 |
- that.auxtoro = datumoj["auxtoro"]; |
|
97 |
- that.starigi_ = datumoj["starigi"]; |
|
98 |
- that.reagi_ = datumoj["reagi"]; |
|
99 |
- that.starigi |
|
100 |
- ( |
|
101 |
- function (eraro_ : Error) : void |
|
102 |
- { |
|
103 |
- if (eraro_ != null) |
|
104 |
- { |
|
105 |
- fino(eraro_); |
|
106 |
- } |
|
107 |
- else |
|
108 |
- { |
|
109 |
- fino(null); |
|
110 |
- } |
|
111 |
- } |
|
112 |
- ); |
|
113 |
- } |
|
114 |
- } |
|
115 |
- ); |
|
85 |
+ if (ankaux_supraj) this.meti_valorojn(datumoj); |
|
86 |
+ this.vojo = alporti(datumoj, "vojo", null, 1); |
|
87 |
+ this.starigi_ = alporti<(finado : (eraro ?: Error)=>void, memoro ?: Object)=>void>(datumoj, "starigi", (finado => finado(null)), 0); |
|
88 |
+ this.reagi_ = alporti<(enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void>(datumoj, "reagi", null, 1); |
|
116 | 89 |
} |
117 | 90 |
|
118 | 91 |
|
119 | 92 |
/** |
120 |
- * @author fenris |
|
121 | 93 |
* @override |
94 |
+ * @author fenris |
|
122 | 95 |
*/ |
123 | 96 |
public starigi(finado : (eraro ?: Error)=>void) : void |
124 | 97 |
{ |
... | ... |
@@ -127,8 +100,8 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
127 | 100 |
|
128 | 101 |
|
129 | 102 |
/** |
130 |
- * @author fenris |
|
131 | 103 |
* @override |
104 |
+ * @author fenris |
|
132 | 105 |
*/ |
133 | 106 |
protected reagi(enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void) : void |
134 | 107 |
{ |
... | ... |
@@ -168,6 +141,45 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
168 | 141 |
} |
169 | 142 |
|
170 | 143 |
|
144 |
+ /** |
|
145 |
+ * @author fenris |
|
146 |
+ */ |
|
147 |
+ public resxargi(fino : (eraro : Error)=>void = (eraro => {})) : void |
|
148 |
+ { |
|
149 |
+ let that : klaso_kromajxo_ekstera = this; |
|
150 |
+ klaso_kromajxo_ekstera.sxargi |
|
151 |
+ ( |
|
152 |
+ this.vojo, |
|
153 |
+ function (eraro : Error, datumoj : Object) : void |
|
154 |
+ { |
|
155 |
+ if (eraro != null) |
|
156 |
+ { |
|
157 |
+ fino(eraro); |
|
158 |
+ } |
|
159 |
+ else |
|
160 |
+ { |
|
161 |
+ datumoj["vojo"] = that.vojo; |
|
162 |
+ that.meti_valorojn_(datumoj, true); |
|
163 |
+ that.starigi |
|
164 |
+ ( |
|
165 |
+ function (eraro_ : Error) : void |
|
166 |
+ { |
|
167 |
+ if (eraro_ != null) |
|
168 |
+ { |
|
169 |
+ fino(eraro_); |
|
170 |
+ } |
|
171 |
+ else |
|
172 |
+ { |
|
173 |
+ fino(null); |
|
174 |
+ } |
|
175 |
+ } |
|
176 |
+ ); |
|
177 |
+ } |
|
178 |
+ } |
|
179 |
+ ); |
|
180 |
+ } |
|
181 |
+ |
|
182 |
+ |
|
171 | 183 |
/** |
172 | 184 |
* @author fenris |
173 | 185 |
*/ |
... | ... |
@@ -184,17 +196,8 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
184 | 196 |
} |
185 | 197 |
else |
186 | 198 |
{ |
187 |
- let kromajxo : klaso_kromajxo_ekstera = new klaso_kromajxo_ekstera |
|
188 |
- ( |
|
189 |
- datumoj["identigilo"], |
|
190 |
- datumoj["nomo"], |
|
191 |
- datumoj["priskribo"], |
|
192 |
- datumoj["uzo"], |
|
193 |
- datumoj["auxtoro"], |
|
194 |
- datumoj["starigi"], |
|
195 |
- datumoj["reagi"] |
|
196 |
- ); |
|
197 |
- kromajxo.vojo = vojo; |
|
199 |
+ datumoj["vojo"] = vojo; |
|
200 |
+ let kromajxo : klaso_kromajxo_ekstera = new klaso_kromajxo_ekstera(datumoj); |
|
198 | 201 |
uzado(null, kromajxo); |
199 | 202 |
} |
200 | 203 |
} |
... | ... |
@@ -45,6 +45,12 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
45 | 45 |
protected reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void, memoro ?: Object)=>void; |
46 | 46 |
|
47 | 47 |
|
48 |
+ /** |
|
49 |
+ * @author fenris |
|
50 |
+ */ |
|
51 |
+ protected starigi_ : (finado : (eraro ?: Error)=>void, memoro ?: Object)=>void; |
|
52 |
+ |
|
53 |
+ |
|
48 | 54 |
/** |
49 | 55 |
* @author fenris |
50 | 56 |
*/ |
... | ... |
@@ -55,10 +61,12 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
55 | 61 |
priskribo : string = null, |
56 | 62 |
uzo : string = null, |
57 | 63 |
auxtoro : string = null, |
58 |
- reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void |
|
64 |
+ starigi_ : (finado : (eraro ?: Error)=>void, memoro ?: Object)=>void = (finado => finado(null)), |
|
65 |
+ reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void = null |
|
59 | 66 |
) |
60 | 67 |
{ |
61 | 68 |
super(identigilo, nomo, priskribo, uzo, auxtoro); |
69 |
+ this.starigi_ = starigi_; |
|
62 | 70 |
this.reagi_ = reagi_; |
63 | 71 |
this.vojo = null; |
64 | 72 |
this.memoro = {}; |
... | ... |
@@ -86,8 +94,22 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
86 | 94 |
that.priskribo = datumoj["priskribo"]; |
87 | 95 |
that.uzo = datumoj["uzo"]; |
88 | 96 |
that.auxtoro = datumoj["auxtoro"]; |
97 |
+ that.starigi_ = datumoj["starigi"]; |
|
89 | 98 |
that.reagi_ = datumoj["reagi"]; |
90 |
- fino(null); |
|
99 |
+ that.starigi |
|
100 |
+ ( |
|
101 |
+ function (eraro_ : Error) : void |
|
102 |
+ { |
|
103 |
+ if (eraro_ != null) |
|
104 |
+ { |
|
105 |
+ fino(eraro_); |
|
106 |
+ } |
|
107 |
+ else |
|
108 |
+ { |
|
109 |
+ fino(null); |
|
110 |
+ } |
|
111 |
+ } |
|
112 |
+ ); |
|
91 | 113 |
} |
92 | 114 |
} |
93 | 115 |
); |
... | ... |
@@ -96,6 +118,17 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
96 | 118 |
|
97 | 119 |
/** |
98 | 120 |
* @author fenris |
121 |
+ * @override |
|
122 |
+ */ |
|
123 |
+ public starigi(finado : (eraro ?: Error)=>void) : void |
|
124 |
+ { |
|
125 |
+ this.starigi_(finado, this.memoro); |
|
126 |
+ } |
|
127 |
+ |
|
128 |
+ |
|
129 |
+ /** |
|
130 |
+ * @author fenris |
|
131 |
+ * @override |
|
99 | 132 |
*/ |
100 | 133 |
protected reagi(enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void) : void |
101 | 134 |
{ |
... | ... |
@@ -158,6 +191,7 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
158 | 191 |
datumoj["priskribo"], |
159 | 192 |
datumoj["uzo"], |
160 | 193 |
datumoj["auxtoro"], |
194 |
+ datumoj["starigi"], |
|
161 | 195 |
datumoj["reagi"] |
162 | 196 |
); |
163 | 197 |
kromajxo.vojo = vojo; |
... | ... |
@@ -53,11 +53,12 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
53 | 53 |
identigilo : string = null, |
54 | 54 |
nomo : string = null, |
55 | 55 |
priskribo : string = null, |
56 |
+ uzo : string = null, |
|
56 | 57 |
auxtoro : string = null, |
57 | 58 |
reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void |
58 | 59 |
) |
59 | 60 |
{ |
60 |
- super(identigilo, nomo, priskribo, auxtoro); |
|
61 |
+ super(identigilo, nomo, priskribo, uzo, auxtoro); |
|
61 | 62 |
this.reagi_ = reagi_; |
62 | 63 |
this.vojo = null; |
63 | 64 |
this.memoro = {}; |
... | ... |
@@ -83,6 +84,7 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
83 | 84 |
{ |
84 | 85 |
that.nomo = datumoj["nomo"]; |
85 | 86 |
that.priskribo = datumoj["priskribo"]; |
87 |
+ that.uzo = datumoj["uzo"]; |
|
86 | 88 |
that.auxtoro = datumoj["auxtoro"]; |
87 | 89 |
that.reagi_ = datumoj["reagi"]; |
88 | 90 |
fino(null); |
... | ... |
@@ -154,6 +156,7 @@ class klaso_kromajxo_ekstera extends klaso_kromajxo |
154 | 156 |
datumoj["identigilo"], |
155 | 157 |
datumoj["nomo"], |
156 | 158 |
datumoj["priskribo"], |
159 |
+ datumoj["uzo"], |
|
157 | 160 |
datumoj["auxtoro"], |
158 | 161 |
datumoj["reagi"] |
159 | 162 |
); |
1 | 1 |
new file mode 100644 |
... | ... |
@@ -0,0 +1,168 @@ |
1 |
+/* |
|
2 |
+ |
|
3 |
+ IRC-Bot "Kvasir" |
|
4 |
+ Copyright (C) 2016 Fenris Wolf (fenris@folksprak.org) |
|
5 |
+ |
|
6 |
+ This program is free software: you can redistribute it and/or modify |
|
7 |
+ it under the terms of the GNU General Public License as published by |
|
8 |
+ the Free Software Foundation, either version 3 of the License, or |
|
9 |
+ (at your option) any later version. |
|
10 |
+ |
|
11 |
+ This program is distributed in the hope that it will be useful, |
|
12 |
+ but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
13 |
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
14 |
+ GNU General Public License for more details. |
|
15 |
+ |
|
16 |
+ You should have received a copy of the GNU General Public License |
|
17 |
+ along with this program. If not, see <http://www.gnu.org/licenses/>. |
|
18 |
+ |
|
19 |
+*/ |
|
20 |
+ |
|
21 |
+var _fs = require("fs"); |
|
22 |
+ |
|
23 |
+ |
|
24 |
+/** |
|
25 |
+ * @author fenris |
|
26 |
+ */ |
|
27 |
+class klaso_kromajxo_ekstera extends klaso_kromajxo |
|
28 |
+{ |
|
29 |
+ |
|
30 |
+ /** |
|
31 |
+ * @author fenris |
|
32 |
+ */ |
|
33 |
+ protected vojo : string; |
|
34 |
+ |
|
35 |
+ |
|
36 |
+ /** |
|
37 |
+ * @author fenris |
|
38 |
+ */ |
|
39 |
+ protected memoro : Object; |
|
40 |
+ |
|
41 |
+ |
|
42 |
+ /** |
|
43 |
+ * @author fenris |
|
44 |
+ */ |
|
45 |
+ protected reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void, memoro ?: Object)=>void; |
|
46 |
+ |
|
47 |
+ |
|
48 |
+ /** |
|
49 |
+ * @author fenris |
|
50 |
+ */ |
|
51 |
+ public constructor |
|
52 |
+ ( |
|
53 |
+ identigilo : string = null, |
|
54 |
+ nomo : string = null, |
|
55 |
+ priskribo : string = null, |
|
56 |
+ auxtoro : string = null, |
|
57 |
+ reagi_ : (enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void)=>void |
|
58 |
+ ) |
|
59 |
+ { |
|
60 |
+ super(identigilo, nomo, priskribo, auxtoro); |
|
61 |
+ this.reagi_ = reagi_; |
|
62 |
+ this.vojo = null; |
|
63 |
+ this.memoro = {}; |
|
64 |
+ } |
|
65 |
+ |
|
66 |
+ |
|
67 |
+ /** |
|
68 |
+ * @author fenris |
|
69 |
+ */ |
|
70 |
+ public resxargi(fino : (eraro : Error)=>void = function (eraro : Error) : void {}) : void |
|
71 |
+ { |
|
72 |
+ let that : klaso_kromajxo_ekstera = this; |
|
73 |
+ klaso_kromajxo_ekstera.sxargi |
|
74 |
+ ( |
|
75 |
+ this.vojo, |
|
76 |
+ function (eraro : Error, datumoj : Object) : void |
|
77 |
+ { |
|
78 |
+ if (eraro != null) |
|
79 |
+ { |
|
80 |
+ fino(eraro); |
|
81 |
+ } |
|
82 |
+ else |
|
83 |
+ { |
|
84 |
+ that.nomo = datumoj["nomo"]; |
|
85 |
+ that.priskribo = datumoj["priskribo"]; |
|
86 |
+ that.auxtoro = datumoj["auxtoro"]; |
|
87 |
+ that.reagi_ = datumoj["reagi"]; |
|
88 |
+ fino(null); |
|
89 |
+ } |
|
90 |
+ } |
|
91 |
+ ); |
|
92 |
+ } |
|
93 |
+ |
|
94 |
+ |
|
95 |
+ /** |
|
96 |
+ * @author fenris |
|
97 |
+ */ |
|
98 |
+ protected reagi(enigo_kruda : Object, eligi : (eligo_kruda : Object)=>void) : void |
|
99 |
+ { |
|
100 |
+ this.reagi_(enigo_kruda, eligi, this.memoro); |
|
101 |
+ } |
|
102 |
+ |
|
103 |
+ |
|
104 |
+ /** |
|
105 |
+ * @author fenris |
|
106 |
+ */ |
|
107 |
+ protected static sxargi(vojo : string, uzado : (eraro : Error, datumoj : Object)=>void) : void |
|
108 |
+ { |
|
109 |
+ _fs.readFile |
|
110 |
+ ( |
|
111 |
+ vojo, |
|
112 |
+ {"encoding": "utf8", "flag": "r"}, |
|
113 |
+ function (eraro : Error, enhavo : string) : void |
|
114 |
+ { |
|
115 |
+ if (eraro != null) |
|
116 |
+ { |
|
117 |
+ uzado(eraro, null); |
|
118 |
+ } |
|
119 |
+ else |
|
120 |
+ { |
|
121 |
+ try |
|
122 |
+ { |
|
123 |
+ let datumoj : Object = eval("(function () {return (" + enhavo + ");})()"); |
|
124 |
+ uzado(null, datumoj); |
|
125 |
+ } |
|
126 |
+ catch (escepto) |
|
127 |
+ { |
|
128 |
+ uzado(new Error(String(escepto)), null); |
|
129 |
+ } |
|
130 |
+ } |
|
131 |
+ } |
|
132 |
+ ); |
|
133 |
+ } |
|
134 |
+ |
|
135 |
+ |
|
136 |
+ /** |
|
137 |
+ * @author fenris |
|
138 |
+ */ |
|
139 |
+ public static krei(vojo : string, uzado : (eraro : Error, kromajxo : klaso_kromajxo_ekstera)=>void) : void |
|
140 |
+ { |
|
141 |
+ klaso_kromajxo_ekstera.sxargi |
|
142 |
+ ( |
|
143 |
+ vojo, |
|
144 |
+ function (eraro : Error, datumoj : Object) : void |
|
145 |
+ { |
|
146 |
+ if (eraro != null) |
|
147 |
+ { |
|
148 |
+ uzado(eraro, null); |
|
149 |
+ } |
|
150 |
+ else |
|
151 |
+ { |
|
152 |
+ let kromajxo : klaso_kromajxo_ekstera = new klaso_kromajxo_ekstera |
|
153 |
+ ( |
|
154 |
+ datumoj["identigilo"], |
|
155 |
+ datumoj["nomo"], |
|
156 |
+ datumoj["priskribo"], |
|
157 |
+ datumoj["auxtoro"], |
|
158 |
+ datumoj["reagi"] |
|
159 |
+ ); |
|
160 |
+ kromajxo.vojo = vojo; |
|
161 |
+ uzado(null, kromajxo); |
|
162 |
+ } |
|
163 |
+ } |
|
164 |
+ ); |
|
165 |
+ } |
|
166 |
+ |
|
167 |
+} |
|
168 |
+ |