rsibot-utils 1.5.7 → 1.5.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. package/db.js +26 -16
  2. package/index.js +69 -15
  3. package/package.json +1 -1
package/db.js CHANGED
@@ -15,9 +15,20 @@ const hotCoinsSchema = new Schema(
15
15
  const activeSchema = new Schema(
16
16
  {
17
17
  symbol: { type: String, unique: true },
18
- inPosition: { type: Boolean },
19
- lastBuy: { type: Number },
20
- abandoned: { type: Boolean },
18
+ inPosition: Boolean,
19
+ lastBuy: Number,
20
+ abandoned: Boolean,
21
+ },
22
+ {
23
+ versionKey: false,
24
+ },
25
+ );
26
+ const suspendedSchema = new Schema(
27
+ {
28
+ symbol: String,
29
+ // lastStatus: String,
30
+ // percentChange: Number,
31
+ created: { type: Date, default: Date.now },
21
32
  },
22
33
  {
23
34
  versionKey: false,
@@ -59,27 +70,26 @@ mongoose
59
70
  });
60
71
 
61
72
  const models = {
62
- HotCoin:undefined,
63
- ActiveCoin:undefined,
64
- Queue:undefined,
65
- Historical:undefined,
66
- }
67
-
73
+ HotCoin: undefined,
74
+ ActiveCoin: undefined,
75
+ Queue: undefined,
76
+ Historical: undefined,
77
+ };
68
78
 
69
79
  const dbArray = [
70
- { tableName:'hot_coins',name: 'HotCoin', schema: hotCoinsSchema },
71
- { tableName:'active_coins',name: 'ActiveCoin', schema: activeSchema },
72
- { tableName:'queue_coins',name: 'Queue', schema: queueSchema },
73
- { tableName:'historical_coins',name: 'Historical', schema: historicalSchema },
80
+ { tableName: 'hot_coins', name: 'HotCoin', schema: hotCoinsSchema },
81
+ { tableName: 'active_coins', name: 'ActiveCoin', schema: activeSchema },
82
+ { tableName: 'queue_coins', name: 'Queue', schema: queueSchema },
83
+ { tableName: 'historical_coins', name: 'Historical', schema: historicalSchema },
84
+ { tableName: 'suspended_coins', name: 'Suspended', schema: suspendedSchema },
74
85
  ];
75
86
 
76
- dbArray.forEach(({name,schema,tableName }) => {
87
+ dbArray.forEach(({ name, schema, tableName }) => {
77
88
  if (mongoose.models[tableName]) {
78
89
  models[name] = mongoose.model(tableName);
79
90
  } else {
80
91
  models[name] = mongoose.model(tableName, schema);
81
92
  }
82
- })
83
-
93
+ });
84
94
 
85
95
  module.exports = models;
package/index.js CHANGED
@@ -2,7 +2,7 @@ const fs = require('fs');
2
2
  const path = require('path');
3
3
  const util = require('util');
4
4
  const exec = util.promisify(require('child_process').exec);
5
- const { HotCoin, ActiveCoin, Queue, Historical } = require('./db');
5
+ const { HotCoin, ActiveCoin, Queue, Historical, Suspended } = require('./db');
6
6
  const CNAME = process.env.CNAME;
7
7
  const LOGS_PATH = CNAME ? `${CNAME}_logs.txt` : 'host_logs.txt';
8
8
 
@@ -27,7 +27,7 @@ async function execute(command) {
27
27
  write(`${stdout}`);
28
28
  return stdout;
29
29
  } catch (error) {
30
- write(error,true);
30
+ write(error, true);
31
31
  throw Error(error);
32
32
  }
33
33
  }
@@ -40,7 +40,7 @@ async function insertHotCoin({ symbol }) {
40
40
  await newHotCoin.save();
41
41
  return symbol;
42
42
  } catch (error) {
43
- write(error.stack,true);
43
+ write(error.stack, true);
44
44
  return false;
45
45
  }
46
46
  }
@@ -49,7 +49,7 @@ async function getHotCoins() {
49
49
  const results = await HotCoin.find();
50
50
  return results;
51
51
  } catch (error) {
52
- write(error.stack,true);
52
+ write(error.stack, true);
53
53
  return [];
54
54
  }
55
55
  }
@@ -58,17 +58,16 @@ async function removeHotCoin(symbol) {
58
58
  await HotCoin.deleteOne({ symbol });
59
59
  return symbol;
60
60
  } catch (error) {
61
- write(error.stack,true);
61
+ write(error.stack, true);
62
62
  return false;
63
63
  }
64
64
  }
65
-
66
65
  async function getActiveCoins() {
67
66
  try {
68
67
  const results = await ActiveCoin.find();
69
68
  return results;
70
69
  } catch (error) {
71
- write(error.stack,true);
70
+ write(error.stack, true);
72
71
  return [];
73
72
  }
74
73
  }
@@ -81,7 +80,7 @@ async function getQueue() {
81
80
  return [];
82
81
  }
83
82
  } catch (error) {
84
- write(error.stack,true);
83
+ write(error.stack, true);
85
84
  return [];
86
85
  }
87
86
  }
@@ -92,7 +91,7 @@ async function setQueue(queue) {
92
91
  const newQueue = new Queue({ queue });
93
92
  await newQueue.save();
94
93
  } catch (error) {
95
- write(error.stack,true);
94
+ write(error.stack, true);
96
95
  }
97
96
  }
98
97
  }
@@ -104,7 +103,7 @@ async function removeCoin(symbol, queue) {
104
103
  const newQueue = new Queue({ queue: modifiedQueue });
105
104
  await newQueue.save();
106
105
  } catch (error) {
107
- write(error.stack,true);
106
+ write(error.stack, true);
108
107
  }
109
108
  }
110
109
  function initQueueListener() {
@@ -115,7 +114,7 @@ async function getAbandonedCoins() {
115
114
  const abandonedCoins = await ActiveCoin.find({ abandoned: true });
116
115
  return abandonedCoins && [];
117
116
  } catch (error) {
118
- write(error.stack,true);
117
+ write(error.stack, true);
119
118
  return [];
120
119
  }
121
120
  }
@@ -124,30 +123,80 @@ async function createNewHistory(coinObj) {
124
123
  const newHistory = new Historical(coinObj);
125
124
  await newHistory.save();
126
125
  } catch (error) {
127
- write(error.stack,true);
126
+ write(error.stack, true);
128
127
  }
129
128
  }
130
129
  async function deleteHotCoins() {
131
130
  try {
132
131
  await HotCoin.deleteMany({ symbol: { $exists: true } });
133
132
  } catch (error) {
134
- write(error.stack,true);
133
+ write(error.stack, true);
135
134
  }
136
135
  }
137
136
  async function deleteActiveCoins() {
138
137
  try {
139
138
  await ActiveCoin.deleteMany({ symbol: { $exists: true } });
140
139
  } catch (error) {
141
- write(error,true);
140
+ write(error, true);
141
+ }
142
+ }
143
+ async function deleteQueueCoins() {
144
+ try {
145
+ await Queue.deleteMany({ created: { $exists: true } });
146
+ } catch (error) {
147
+ write(error.stack, true);
142
148
  }
143
149
  }
144
150
  async function deleteQueueCoins() {
145
151
  try {
146
152
  await Queue.deleteMany({ created: { $exists: true } });
147
153
  } catch (error) {
148
- write(error.stack,true);
154
+ write(error.stack, true);
155
+ }
156
+ }
157
+ async function deleteSuspendCoin(id) {
158
+ try {
159
+ await Suspended.findByIdAndDelete(id);
160
+ } catch (error) {
161
+ write(error.stack, true);
162
+ }
163
+ }
164
+ async function createSuspendedCoin(coinObj) {
165
+ try {
166
+ const suspendedCoin = new Suspended(coinObj);
167
+ await suspendedCoin.save();
168
+ } catch (error) {
169
+ write(error.stack, true);
149
170
  }
150
171
  }
172
+ async function getSuspendedCoins() {
173
+ try {
174
+ const abandonedCoins = await Suspended.find();
175
+ return abandonedCoins;
176
+ } catch (error) {
177
+ write(error.stack, true);
178
+ return [];
179
+ }
180
+ }
181
+ function suspendedWatcher(deleteRangeTime) {
182
+ setInterval(async () => {
183
+ try {
184
+ await Suspended.deleteMany({ created: { $lte: new Date(new Date().getTime() - deleteRangeTime * 60 * 60 * 1000) } });
185
+ } catch (error) {
186
+ write(error);
187
+ }
188
+ }, 1000);
189
+ }
190
+ async function isSuspended(symbol) {
191
+ try {
192
+ const isExist = await Suspended.findOne({ symbol });
193
+ console.log(Boolean(isExist));
194
+ return Boolean(isExist);
195
+ } catch (error) {
196
+ write(error);
197
+ }
198
+ }
199
+
151
200
  module.exports = {
152
201
  sortByPercent,
153
202
  write,
@@ -166,4 +215,9 @@ module.exports = {
166
215
  deleteHotCoins,
167
216
  deleteActiveCoins,
168
217
  deleteQueueCoins,
218
+ createSuspendedCoin,
219
+ deleteSuspendCoin,
220
+ getSuspendedCoins,
221
+ suspendedWatcher,
222
+ isSuspended
169
223
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rsibot-utils",
3
- "version": "1.5.7",
3
+ "version": "1.5.10",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {