// Send data to a specified channel function multicast(data, id, channel){ var res = clients.find({channel, id: {'$ne' : id}}); for(var i=0;i<res.length;i++){ send_var(data, res[i].port, res[i].address); } }
clean(){ let date = new Date(); date.setDate(date.getDate() - this.settings.values.deleteGiveawaysAfter); let records = this._table.find({ '$and' : [ { ended : { '$gt' : 0 } }, { ended : { '$lt' : date.getTime() } } ]}); for (let record of records) this._table.remove(record); }
list() { return tidyResults(this.jokes.find()); }
list(query){ query = query || { }; let records = this._table.find(query); // convert loki objects to database-agnostic objects return Store._convertAll(records); }
// gets all user winnings in last active period getWinnings(userId){ let daysAgo = timeHelper.daysAgo(this.settings.values.winningCooldownDays); let winningsRaw = this._table.find({ '$and' : [ { ended : { '$gt' : daysAgo.getTime() } }, { status : 'closed' }, { winnerId : userId } ]}); if (winningsRaw.length === 0) return []; let winnings = Store._convertAll(winningsRaw); winnings.sort(function(a,b){ return a.ended < b.ended ? 1 : a.ended > b.ended ? -1 : 0; }); return winnings; }
// gets last winning in last active period for any game within the give price bracket range. // if two brackets overlap it rules in favor of enforcing a cooldown getComparableWinning(userId, gamePrice){ let daysAgo = timeHelper.daysAgo(this.settings.values.winningCooldownDays); // check if user won game in price range let bracket = bracketHelper.findBracketForPrice(gamePrice); if (!bracket) return null; let winningsRaw = this._table.find({ '$and' : [ { bracket : bracketHelper.toString(bracket) }, { ended : { '$gt' : daysAgo.getTime() } }, { status : 'closed' }, { winnerId : userId } ]}); if (winningsRaw.length === 0) return null; let winnings = Store._convertAll(winningsRaw); winnings.sort(function(a,b){ return a.ended < b.ended ? 1 : a.ended > b.ended ? -1 : 0; }); return winnings[0]; }