Skip to content

Commit c443f98

Browse files
author
bot
committed
v20.2.22 - 999doge; math in js
1 parent 672e7de commit c443f98

File tree

18 files changed

+385
-11
lines changed

18 files changed

+385
-11
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
# Supporting Dice Sites (alphabet sequence)
4242
## Traditional
4343
* [999Dice](https://www.999dice.com/?224280708)
44+
* [999Doge](https://www.999doge.com/?224280708)
4445
* [Bitsler](https://www.bitsler.com/?ref=mydicebot)
4546
* [Crypto-Games](https://www.crypto-games.net?i=CpQP3V8Up2)
4647
* [DuckDice](https://duckdice.com/ab61534783)

src/api/controllers/apiController.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ let registerUrls = {
2929
"KryptoGames": "https://magic-dice.com/?ref=mydicebot",
3030
"WinDice": "https://windice.io/?r=e63q8xq4y",
3131
"WolfBet": "https://wolf.bet/?c=mydicebot",
32+
"999Doge":"https://www.999doge.com/?224280708",
3233
};
3334

3435
let mydiceUrls = {

src/api/models/bitsler.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,15 +96,17 @@ module.exports = class BitslerDice extends BaseDice {
9696
async resetseed(req) {
9797
let formData = new FormData();
9898
let accessToken = req.session.accessToken;
99+
let seed = Math.random().toString(36).substring(2);
99100
formData.append('access_token', accessToken);
100101
//formData.append('seed_client', Math.sin(1).toString().substr(6));
101-
formData.append('seed_client', Math.random().toString(36).substring(2));
102+
formData.append('seed_client', seed);
102103
let ret = await this._send('change-seeds', 'POST', formData,'');
103104
console.log(ret);
104105
let info = {};
105106
info.previous_seed = ret.previous_seed;
106107
info.previous_client = ret.previous_client;
107108
info.current_client = ret.current_client;
109+
info.seed = seed;
108110
info.success = ret.success;
109111
return info;
110112
}

src/api/models/duckdice.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ module.exports = class DuckDice extends BaseDice {
129129
let info = {};
130130
info.previous_seed = ret.new.clientSeed;
131131
info.current_seed = ret.current.clientSeed;
132+
info.seed = data.clientSeed;
132133
info.success = true;
133134
return info;
134135
}

src/api/models/ninedoge.js

Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
1+
'use strict';
2+
3+
var BaseDice = require('./base');
4+
var fetch = require('isomorphic-fetch');
5+
var FormData = require('form-data');
6+
var APIError = require('../errors/APIError');
7+
8+
module.exports = class NineDoge extends BaseDice {
9+
constructor(){
10+
super();
11+
this.url = 'https://www.999doge.com';
12+
this.benefit = '?224280708'
13+
}
14+
15+
async login(userName, password, twoFactor ,apiKey, req) {
16+
apiKey = '794ec0fec4f543f1a14b0b50dbbcb345';
17+
let formData = new FormData();
18+
formData.append('a', 'Login');
19+
formData.append('Username', userName);
20+
formData.append('Password', password);
21+
formData.append('Key', apiKey);
22+
if(twoFactor) {
23+
formData.append('Totp', twoFactor);
24+
}
25+
let ret = await this._send('web.aspx', 'POST', formData,'');
26+
//console.log(ret);
27+
if(ret.error) {
28+
return ret.error;
29+
}
30+
//if(!ret.ClientSeed) {
31+
// return 'Login Invalid, Please enter the correct information!';
32+
//}
33+
34+
req.session.clientSeed = ret.ClientSeed;
35+
req.session.accessToken = ret.SessionCookie;
36+
req.session.username = userName;
37+
req.session.apiKey = req.body.apikey;
38+
return true;
39+
}
40+
41+
async refresh(req) {
42+
let ret = req.session.info;
43+
return ret;
44+
}
45+
46+
async getUserInfo(req) {
47+
let formData = new FormData();
48+
formData.append('a', 'GetBalances');
49+
formData.append('s', req.session.accessToken);
50+
let ret = await this._send('web.aspx', 'POST', formData,'');
51+
let bs =JSON.parse(JSON.stringify(ret.Balances));
52+
ret.CurrentBalances = bs;
53+
for (let i=0; i<ret.CurrentBalances.length; i++) {
54+
ret.CurrentBalances[i].TotalPayIn = 0;
55+
ret.CurrentBalances[i].TotalBets = 0;
56+
ret.CurrentBalances[i].TotalPayOut = 0;
57+
ret.CurrentBalances[i].TotalWins = 0;
58+
}
59+
//console.log(ret);
60+
req.session.info = ret;
61+
return ret;
62+
}
63+
64+
async bet(req) {
65+
let formData = new FormData();
66+
let currency = req.body.Currency;
67+
formData.append('a', 'PlaceBet');
68+
formData.append('s', req.session.accessToken);
69+
formData.append('PayIn', req.body.PayIn);
70+
formData.append('ClientSeed', req.session.clientSeed);
71+
formData.append('Currency', currency);
72+
formData.append('ProtocolVersion', 2);
73+
let betRoll = 0;
74+
if(req.body.High == "true"){
75+
betRoll = 999999-Math.floor((req.body.Chance*10000))+1;
76+
formData.append('Low', betRoll);
77+
formData.append('High', 999999);
78+
} else {
79+
betRoll = Math.floor((req.body.Chance*10000))-1;
80+
formData.append('Low', 0);
81+
formData.append('High', betRoll);
82+
}
83+
let ret = await this._send('web.aspx', 'POST', formData,'');
84+
console.log(ret);
85+
if(ret.NoPossibleProfit == 1) {
86+
return ret;
87+
}
88+
ret.High = req.body.High == "true"?'>':'<';
89+
ret.PayIn = req.body.PayIn;
90+
let info = req.session.info;
91+
let currencyValue = req.body.CurrencyValue;
92+
info.Balances[currencyValue].TotalBets++;
93+
info.CurrentBalances[currencyValue].TotalBets++;
94+
info.Balances[currencyValue].Balance = info.Balances[currencyValue].Balance + ret.PayOut - ret.PayIn;
95+
info.CurrentBalances[currencyValue].Balance = info.CurrentBalances[currencyValue].Balance + ret.PayOut - ret.PayIn;
96+
ret.Win = false;
97+
if((ret.PayOut-ret.PayIn)>0) {
98+
ret.Win = true;
99+
info.Balances[currencyValue].TotalWins++;
100+
info.CurrentBalances[currencyValue].TotalWins++;
101+
}
102+
info.Balances[currencyValue].TotalPayIn = info.Balances[currencyValue].TotalPayIn - ret.PayIn;
103+
info.CurrentBalances[currencyValue].TotalPayIn = info.CurrentBalances[currencyValue].TotalPayIn - ret.PayIn;
104+
info.Balances[currencyValue].TotalPayOut = info.Balances[currencyValue].TotalPayOut + ret.PayOut;
105+
info.CurrentBalances[currencyValue].TotalPayOut = info.CurrentBalances[currencyValue].TotalPayOut + ret.PayOut;
106+
req.session.info = info;
107+
ret.info = info;
108+
ret.BetRoll = betRoll;
109+
return ret;
110+
}
111+
112+
async clear(req) {
113+
console.log('loading....');
114+
let info = req.session.info;
115+
let bs =JSON.parse(JSON.stringify(info.Balances));
116+
info.CurrentBalances = bs;
117+
for (let i=0; i<info.CurrentBalances.length; i++) {
118+
info.CurrentBalances[i].TotalPayIn = 0;
119+
info.CurrentBalances[i].TotalBets = 0;
120+
info.CurrentBalances[i].TotalPayOut = 0;
121+
info.CurrentBalances[i].TotalWins = 0;
122+
}
123+
req.session.info = info;
124+
return info;
125+
}
126+
127+
async _send(route, method, body, accessToken){
128+
let url = `${this.url}/api/${route}${this.benefit}`;
129+
let res = await fetch(url, {
130+
method,
131+
headers: {
132+
'User-Agent': 'DiceBot',
133+
},
134+
body: body,
135+
});
136+
if(res.status == 200){
137+
let data = await res.json();
138+
return data;
139+
} else {
140+
console.log('call api error ');
141+
throw new APIError("call api error","api not found");
142+
}
143+
}
144+
}
145+
exports.NineDoge

src/api/models/prime.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ module.exports = class PrimeDice extends BaseDice {
159159
let clientSeed = Math.random().toString(36).substring(2);
160160
let data = "mutation{rotateServerSeed{ seed seedHash nonce } changeClientSeed(seed:\"" + clientSeed + "\"){seed}}"
161161
let ret = await this._send('', 'POST', data, req.session.accessToken);
162-
console.log(ret);
162+
console.log(clientSeed, ret);
163163
let info = {};
164-
info.seed = ret.rotateServerSeed.seed;
164+
info.seed = clientSeed;
165165
info.seedHash = ret.rotateServerSeed.seedHash;
166166
info.success = true;
167167
return info;

src/api/models/stake.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,9 +159,9 @@ module.exports = class StakeDice extends BaseDice {
159159
let clientSeed = Math.random().toString(36).substring(2);
160160
let data = "mutation{rotateServerSeed{ seed seedHash nonce } changeClientSeed(seed:\"" + clientSeed + "\"){seed}}"
161161
let ret = await this._send('', 'POST', data, req.session.accessToken);
162-
console.log(ret);
162+
console.log(clientSeed, ret);
163163
let info = {};
164-
info.seed = ret.rotateServerSeed.seed;
164+
info.seed = clientSeed;
165165
info.seedHash = ret.rotateServerSeed.seedHash;
166166
info.success = true;
167167
return info;

src/api/models/windice.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ module.exports = class WinDice extends BaseDice {
156156
info.current_client = ret.client;
157157
info.hash = ret.hash;
158158
info.new_hash = ret.newHash;
159+
info.seed = data.value;
159160
info.success = true;
160161
return info;
161162
}

src/api/models/wolfbet.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ module.exports = class WolfBet extends BaseDice {
153153
info.current_client = ret.seed;
154154
info.hash = ret.seed;
155155
info.new_hash = ret.seed;
156+
info.seed = data.client_seed;
156157
info.success = true;
157158
return info;
158159
}

src/api/models/yolo.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ module.exports = class YoloDice extends BaseDice {
203203
console.log(info);
204204
//info.seed = ret.rotateServerSeed.seed;
205205
//info.seedHash = ret.rotateServerSeed.seedHash;
206+
info.seed = seed;
206207
info.success = true;
207208
return info;
208209
}

0 commit comments

Comments
 (0)