@winible/winible-typed 2.1.1 → 2.1.2
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.
- package/package.json +1 -1
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js +0 -19
- package/dist/migrations/20220601151258-custom_name_describing_your_migration.js.map +0 -1
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js +0 -27
- package/dist/migrations/20220605225655-create-dashboard-user-permissions.js.map +0 -1
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js +0 -14
- package/dist/migrations/20220606001300-update-dashboard-user-permissions.js.map +0 -1
- package/dist/migrations/20220607091109-add-read-date-for-message.js +0 -19
- package/dist/migrations/20220607091109-add-read-date-for-message.js.map +0 -1
- package/dist/migrations/20220616225456-add-delete-columns.js +0 -21
- package/dist/migrations/20220616225456-add-delete-columns.js.map +0 -1
- package/dist/migrations/20220709202211-disable-feed.js +0 -24
- package/dist/migrations/20220709202211-disable-feed.js.map +0 -1
- package/dist/migrations/20220723215213-limit-promotion-claims.js +0 -18
- package/dist/migrations/20220723215213-limit-promotion-claims.js.map +0 -1
- package/dist/migrations/20220723220233-num_claims.js +0 -12
- package/dist/migrations/20220723220233-num_claims.js.map +0 -1
- package/dist/migrations/20220723221907-default_false_promos.js +0 -17
- package/dist/migrations/20220723221907-default_false_promos.js.map +0 -1
- package/dist/migrations/20220724172559-default_zero_claims.js +0 -13
- package/dist/migrations/20220724172559-default_zero_claims.js.map +0 -1
- package/dist/migrations/20220724201419-pinned_post.js +0 -13
- package/dist/migrations/20220724201419-pinned_post.js.map +0 -1
- package/dist/migrations/20220729164625-unsend_mass.js +0 -12
- package/dist/migrations/20220729164625-unsend_mass.js.map +0 -1
- package/dist/migrations/20220823033002-interval-unit.js +0 -14
- package/dist/migrations/20220823033002-interval-unit.js.map +0 -1
- package/dist/migrations/20220830193530-processorId.js +0 -15
- package/dist/migrations/20220830193530-processorId.js.map +0 -1
- package/dist/migrations/20220907121932-add-processor-to-sub.js +0 -15
- package/dist/migrations/20220907121932-add-processor-to-sub.js.map +0 -1
- package/dist/migrations/20220907212232-add-trans-id.js +0 -12
- package/dist/migrations/20220907212232-add-trans-id.js.map +0 -1
- package/dist/migrations/20220907220423-big-int-trans.js +0 -12
- package/dist/migrations/20220907220423-big-int-trans.js.map +0 -1
- package/dist/migrations/20220909161902-add-stale.js +0 -13
- package/dist/migrations/20220909161902-add-stale.js.map +0 -1
- package/dist/migrations/20220922000225-verified-spender.js +0 -13
- package/dist/migrations/20220922000225-verified-spender.js.map +0 -1
- package/dist/migrations/20220922212108-verified-spender-2.js +0 -16
- package/dist/migrations/20220922212108-verified-spender-2.js.map +0 -1
- package/dist/migrations/20221013223648-product-subscription-list.js +0 -12
- package/dist/migrations/20221013223648-product-subscription-list.js.map +0 -1
- package/dist/migrations/20221014001037-product-subscription-list.js +0 -75
- package/dist/migrations/20221014001037-product-subscription-list.js.map +0 -1
- package/dist/migrations/20221026055245-update-type.js +0 -15
- package/dist/migrations/20221026055245-update-type.js.map +0 -1
- package/dist/migrations/20221108060019-recurly-sub.js +0 -34
- package/dist/migrations/20221108060019-recurly-sub.js.map +0 -1
- package/dist/migrations/20221110170148-rename-recurly-account.js +0 -9
- package/dist/migrations/20221110170148-rename-recurly-account.js.map +0 -1
- package/dist/migrations/20221112212510-archive-promo.js +0 -13
- package/dist/migrations/20221112212510-archive-promo.js.map +0 -1
- package/dist/migrations/20221117044529-sub-status.js +0 -13
- package/dist/migrations/20221117044529-sub-status.js.map +0 -1
- package/dist/migrations/20221122051433-default-plan.js +0 -13
- package/dist/migrations/20221122051433-default-plan.js.map +0 -1
- package/dist/migrations/20221128034620-invoice-id.js +0 -12
- package/dist/migrations/20221128034620-invoice-id.js.map +0 -1
- package/dist/migrations/20230330174702-extend-premium-content.js +0 -35
- package/dist/migrations/20230330174702-extend-premium-content.js.map +0 -1
- package/dist/scripts/bet-syncing/findGoodBets.js +0 -238
- package/dist/scripts/bet-syncing/findGoodBets.js.map +0 -1
- package/dist/scripts/bet-syncing/gradeBets.js +0 -109
- package/dist/scripts/bet-syncing/gradeBets.js.map +0 -1
- package/dist/scripts/bet-syncing/pullGames.js +0 -198
- package/dist/scripts/bet-syncing/pullGames.js.map +0 -1
- package/dist/scripts/bet-syncing/pullLiveScores.js +0 -187
- package/dist/scripts/bet-syncing/pullLiveScores.js.map +0 -1
- package/dist/scripts/bet-syncing/pullOdds.js +0 -268
- package/dist/scripts/bet-syncing/pullOdds.js.map +0 -1
- package/dist/scripts/bet-syncing/pullPlayerResults.js +0 -89
- package/dist/scripts/bet-syncing/pullPlayerResults.js.map +0 -1
- package/dist/scripts/bet-syncing/pullPlayers.js +0 -59
- package/dist/scripts/bet-syncing/pullPlayers.js.map +0 -1
- package/dist/scripts/bet-syncing/pullScores.js +0 -183
- package/dist/scripts/bet-syncing/pullScores.js.map +0 -1
- package/dist/scripts/bet-syncing/pullTeams.js +0 -85
- package/dist/scripts/bet-syncing/pullTeams.js.map +0 -1
- package/dist/scripts/bet-syncing/updateStaleOdds.js +0 -34
- package/dist/scripts/bet-syncing/updateStaleOdds.js.map +0 -1
- package/dist/scripts/createDashboardLink.js +0 -30
- package/dist/scripts/createDashboardLink.js.map +0 -1
- package/dist/scripts/createRecurlyPlans.js +0 -124
- package/dist/scripts/createRecurlyPlans.js.map +0 -1
- package/dist/scripts/mapCurrentPaymentsToInvoiceId.js +0 -98
- package/dist/scripts/mapCurrentPaymentsToInvoiceId.js.map +0 -1
- package/dist/scripts/payoutRecurlySubs.js +0 -160
- package/dist/scripts/payoutRecurlySubs.js.map +0 -1
- package/dist/scripts/payoutSubscriptions.js +0 -201
- package/dist/scripts/payoutSubscriptions.js.map +0 -1
- package/dist/scripts/removeUnreferenceSubs.js +0 -39
- package/dist/scripts/removeUnreferenceSubs.js.map +0 -1
- package/dist/slack/index.js +0 -26
- package/dist/slack/index.js.map +0 -1
- package/dist/slack/v1/bypassCreator.js +0 -81
- package/dist/slack/v1/bypassCreator.js.map +0 -1
- package/dist/slack/v1/cancelSubscription.js +0 -35
- package/dist/slack/v1/cancelSubscription.js.map +0 -1
- package/dist/slack/v1/changeName.js +0 -41
- package/dist/slack/v1/changeName.js.map +0 -1
- package/dist/slack/v1/checkAuthSub.js +0 -58
- package/dist/slack/v1/checkAuthSub.js.map +0 -1
- package/dist/slack/v1/dashboardLink.js +0 -30
- package/dist/slack/v1/dashboardLink.js.map +0 -1
- package/dist/slack/v1/index.js +0 -21
- package/dist/slack/v1/index.js.map +0 -1
- package/dist/slack/v1/refund.js +0 -42
- package/dist/slack/v1/refund.js.map +0 -1
- package/dist/slack/v1/searchUser.js +0 -169
- package/dist/slack/v1/searchUser.js.map +0 -1
- package/dist/src/pk-client.js +0 -1103
- package/dist/src/pk-client.js.map +0 -1
- package/dist/src/pk-sub.js +0 -310
- package/dist/src/pk-sub.js.map +0 -1
- package/dist/typed-model/asset-category.js +0 -38
- package/dist/typed-model/asset-category.js.map +0 -1
- package/dist/typed-model/asset-constent-person.js +0 -56
- package/dist/typed-model/asset-constent-person.js.map +0 -1
- package/dist/typed-model/bet.js +0 -64
- package/dist/typed-model/bet.js.map +0 -1
- package/dist/typed-model/blocked-ip.js +0 -34
- package/dist/typed-model/blocked-ip.js.map +0 -1
- package/dist/typed-model/category-tag.js +0 -46
- package/dist/typed-model/category-tag.js.map +0 -1
- package/dist/typed-model/consent-person.js +0 -55
- package/dist/typed-model/consent-person.js.map +0 -1
- package/dist/typed-model/content-category-tag.js +0 -58
- package/dist/typed-model/content-category-tag.js.map +0 -1
- package/dist/typed-model/credit-payment.js +0 -108
- package/dist/typed-model/credit-payment.js.map +0 -1
- package/dist/typed-model/credit-payout.js +0 -42
- package/dist/typed-model/credit-payout.js.map +0 -1
- package/dist/typed-model/credit-purchase.js +0 -46
- package/dist/typed-model/credit-purchase.js.map +0 -1
- package/dist/typed-model/customer-profile.js +0 -52
- package/dist/typed-model/customer-profile.js.map +0 -1
- package/dist/typed-model/dashboard-user-permissions.js +0 -34
- package/dist/typed-model/dashboard-user-permissions.js.map +0 -1
- package/dist/typed-model/dashboard-user.js +0 -109
- package/dist/typed-model/dashboard-user.js.map +0 -1
- package/dist/typed-model/fan-list.js +0 -46
- package/dist/typed-model/fan-list.js.map +0 -1
- package/dist/typed-model/fraud.js +0 -41
- package/dist/typed-model/fraud.js.map +0 -1
- package/dist/typed-model/game.js +0 -234
- package/dist/typed-model/game.js.map +0 -1
- package/dist/typed-model/list-member.js +0 -47
- package/dist/typed-model/list-member.js.map +0 -1
- package/dist/typed-model/market.js +0 -36
- package/dist/typed-model/market.js.map +0 -1
- package/dist/typed-model/mass-message.js +0 -43
- package/dist/typed-model/mass-message.js.map +0 -1
- package/dist/typed-model/media-category.js +0 -49
- package/dist/typed-model/media-category.js.map +0 -1
- package/dist/typed-model/message-media.js +0 -53
- package/dist/typed-model/message-media.js.map +0 -1
- package/dist/typed-model/message.js +0 -191
- package/dist/typed-model/message.js.map +0 -1
- package/dist/typed-model/odds.js +0 -160
- package/dist/typed-model/odds.js.map +0 -1
- package/dist/typed-model/parlay.js +0 -30
- package/dist/typed-model/parlay.js.map +0 -1
- package/dist/typed-model/phone-chat-participation.js +0 -127
- package/dist/typed-model/phone-chat-participation.js.map +0 -1
- package/dist/typed-model/phone-chat.js +0 -118
- package/dist/typed-model/phone-chat.js.map +0 -1
- package/dist/typed-model/phone-owner.js +0 -266
- package/dist/typed-model/phone-owner.js.map +0 -1
- package/dist/typed-model/phone-user.js +0 -109
- package/dist/typed-model/phone-user.js.map +0 -1
- package/dist/typed-model/player-result.js +0 -67
- package/dist/typed-model/player-result.js.map +0 -1
- package/dist/typed-model/player.js +0 -87
- package/dist/typed-model/player.js.map +0 -1
- package/dist/typed-model/premium-content.js +0 -128
- package/dist/typed-model/premium-content.js.map +0 -1
- package/dist/typed-model/purchased-content.js +0 -69
- package/dist/typed-model/purchased-content.js.map +0 -1
- package/dist/typed-model/short-url.js +0 -88
- package/dist/typed-model/short-url.js.map +0 -1
- package/dist/typed-model/sportsbook.js +0 -31
- package/dist/typed-model/sportsbook.js.map +0 -1
- package/dist/typed-model/subscription-bundle.js +0 -57
- package/dist/typed-model/subscription-bundle.js.map +0 -1
- package/dist/typed-model/subscription-category-tags.js +0 -58
- package/dist/typed-model/subscription-category-tags.js.map +0 -1
- package/dist/typed-model/subscription-plan-on-premium-content.js +0 -57
- package/dist/typed-model/subscription-plan-on-premium-content.js.map +0 -1
- package/dist/typed-model/subscription-promotion.js +0 -101
- package/dist/typed-model/subscription-promotion.js.map +0 -1
- package/dist/typed-model/subscription.js +0 -111
- package/dist/typed-model/subscription.js.map +0 -1
- package/dist/typed-model/team.js +0 -70
- package/dist/typed-model/team.js.map +0 -1
- package/dist/typed-model/twilio-phone.js +0 -92
- package/dist/typed-model/twilio-phone.js.map +0 -1
- package/dist/typed-model/user-follow.js +0 -103
- package/dist/typed-model/user-follow.js.map +0 -1
- package/dist/typed-model/verification-code.js +0 -52
- package/dist/typed-model/verification-code.js.map +0 -1
@@ -1,13 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const sequelize_1 = require("sequelize");
|
4
|
-
exports.default = {
|
5
|
-
async up(queryInterface, sequelize) {
|
6
|
-
queryInterface.addColumn("subscription_promotions", "archived", {
|
7
|
-
type: sequelize_1.DataTypes.BOOLEAN,
|
8
|
-
defaultValue: false,
|
9
|
-
});
|
10
|
-
},
|
11
|
-
async down(queryInterface, sequelize) { },
|
12
|
-
};
|
13
|
-
//# sourceMappingURL=20221112212510-archive-promo.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"20221112212510-archive-promo.js","sourceRoot":"","sources":["../../migrations/20221112212510-archive-promo.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AAErE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,cAAc,CAAC,SAAS,CAAC,yBAAyB,EAAE,UAAU,EAAE;YAC9D,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB,IAAG,CAAC;CACpE,CAAC"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const sequelize_1 = require("sequelize");
|
4
|
-
exports.default = {
|
5
|
-
async up(queryInterface, sequelize) {
|
6
|
-
queryInterface.addColumn("subscriptions", "status", {
|
7
|
-
type: sequelize_1.DataTypes.STRING,
|
8
|
-
defaultValue: "active",
|
9
|
-
});
|
10
|
-
},
|
11
|
-
async down(queryInterface, sequelize) { },
|
12
|
-
};
|
13
|
-
//# sourceMappingURL=20221117044529-sub-status.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"20221117044529-sub-status.js","sourceRoot":"","sources":["../../migrations/20221117044529-sub-status.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AAErE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,cAAc,CAAC,SAAS,CAAC,eAAe,EAAE,QAAQ,EAAE;YAClD,IAAI,EAAE,qBAAS,CAAC,MAAM;YACtB,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB,IAAG,CAAC;CACpE,CAAC"}
|
@@ -1,13 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const sequelize_1 = require("sequelize");
|
4
|
-
exports.default = {
|
5
|
-
async up(queryInterface, sequelize) {
|
6
|
-
queryInterface.addColumn("subscription_plans", "order", {
|
7
|
-
type: sequelize_1.DataTypes.INTEGER,
|
8
|
-
defaultValue: 0,
|
9
|
-
});
|
10
|
-
},
|
11
|
-
async down(queryInterface, sequelize) { },
|
12
|
-
};
|
13
|
-
//# sourceMappingURL=20221122051433-default-plan.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"20221122051433-default-plan.js","sourceRoot":"","sources":["../../migrations/20221122051433-default-plan.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AAErE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,cAAc,CAAC,SAAS,CAAC,oBAAoB,EAAE,OAAO,EAAE;YACtD,IAAI,EAAE,qBAAS,CAAC,OAAO;YACvB,YAAY,EAAE,CAAC;SAChB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB,IAAG,CAAC;CACpE,CAAC"}
|
@@ -1,12 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const sequelize_1 = require("sequelize");
|
4
|
-
exports.default = {
|
5
|
-
async up(queryInterface, sequelize) {
|
6
|
-
queryInterface.addColumn("credit_payments", "invoice_id", {
|
7
|
-
type: sequelize_1.DataTypes.STRING,
|
8
|
-
});
|
9
|
-
},
|
10
|
-
async down(queryInterface, sequelize) { },
|
11
|
-
};
|
12
|
-
//# sourceMappingURL=20221128034620-invoice-id.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"20221128034620-invoice-id.js","sourceRoot":"","sources":["../../migrations/20221128034620-invoice-id.ts"],"names":[],"mappings":";;AAAA,yCAAqE;AAErE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,cAAc,CAAC,SAAS,CAAC,iBAAiB,EAAE,YAAY,EAAE;YACxD,IAAI,EAAE,qBAAS,CAAC,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB,IAAG,CAAC;CACpE,CAAC"}
|
@@ -1,35 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
const sequelize_1 = require("sequelize");
|
4
|
-
exports.default = {
|
5
|
-
async up(queryInterface, sequelize) {
|
6
|
-
// SubscriptionPlanOnPremiumContent
|
7
|
-
queryInterface.createTable("subscription_plan_on_premium_content", {
|
8
|
-
id: {
|
9
|
-
type: sequelize_1.DataTypes.BIGINT,
|
10
|
-
primaryKey: true,
|
11
|
-
allowNull: false,
|
12
|
-
defaultValue: sequelize.fn("next_id"),
|
13
|
-
},
|
14
|
-
contentId: {
|
15
|
-
type: sequelize_1.DataTypes.BIGINT,
|
16
|
-
field: "content_id",
|
17
|
-
},
|
18
|
-
subscriptionPlanId: {
|
19
|
-
type: sequelize_1.DataTypes.BIGINT,
|
20
|
-
field: "subscription_plan_id",
|
21
|
-
},
|
22
|
-
createdAt: sequelize_1.DataTypes.DATE,
|
23
|
-
updatedAt: sequelize_1.DataTypes.DATE,
|
24
|
-
});
|
25
|
-
// Other fields
|
26
|
-
queryInterface.addColumn("premium_contents", "user_id", {
|
27
|
-
type: sequelize_1.DataTypes.STRING,
|
28
|
-
});
|
29
|
-
queryInterface.addColumn("premium_contents", "expires_in", {
|
30
|
-
type: sequelize_1.DataTypes.DATE,
|
31
|
-
});
|
32
|
-
},
|
33
|
-
async down(queryInterface, sequelize) { },
|
34
|
-
};
|
35
|
-
//# sourceMappingURL=20230330174702-extend-premium-content.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"20230330174702-extend-premium-content.js","sourceRoot":"","sources":["../../migrations/20230330174702-extend-premium-content.ts"],"names":[],"mappings":";;AAAA,yCAAiE;AAEjE,kBAAe;IACb,KAAK,CAAC,EAAE,CAAC,cAA8B,EAAE,SAAoB;QAC3D,mCAAmC;QACnC,cAAc,CAAC,WAAW,CAAC,sCAAsC,EAAE;YACjE,EAAE,EAAE;gBACF,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,KAAK;gBAChB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC;aACtC;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,KAAK,EAAE,YAAY;aACpB;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,qBAAS,CAAC,MAAM;gBACtB,KAAK,EAAE,sBAAsB;aAC9B;YACD,SAAS,EAAE,qBAAS,CAAC,IAAI;YACzB,SAAS,EAAE,qBAAS,CAAC,IAAI;SAC1B,CAAC,CAAC;QAEH,eAAe;QACf,cAAc,CAAC,SAAS,CAAC,kBAAkB,EAAE,SAAS,EAAE;YACtD,IAAI,EAAE,qBAAS,CAAC,MAAM;SACvB,CAAC,CAAC;QAEH,cAAc,CAAC,SAAS,CAAC,kBAAkB,EAAE,YAAY,EAAE;YACzD,IAAI,EAAE,qBAAS,CAAC,IAAI;SACrB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,cAA8B,EAAE,SAAoB,IAAG,CAAC;CACpE,CAAC"}
|
@@ -1,238 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const dotenv = require("dotenv");
|
7
|
-
const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
|
8
|
-
const typed_model_1 = require("../../typed-model");
|
9
|
-
const sequelize_1 = require("sequelize");
|
10
|
-
const axios_1 = __importDefault(require("axios"));
|
11
|
-
dotenv.config();
|
12
|
-
const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
|
13
|
-
const postSlackNotification = async (webhook, body) => {
|
14
|
-
try {
|
15
|
-
await axios_1.default.post(webhook, body);
|
16
|
-
}
|
17
|
-
catch (err) {
|
18
|
-
console.log(err);
|
19
|
-
}
|
20
|
-
};
|
21
|
-
const oddToSlack = (type, odd) => {
|
22
|
-
return {
|
23
|
-
blocks: [
|
24
|
-
{
|
25
|
-
type: "header",
|
26
|
-
text: {
|
27
|
-
type: "plain_text",
|
28
|
-
text: `${type}: ${odd.market_name} - ${odd.name} - ${(odd.pos_ev * 100.0).toFixed(2)}`,
|
29
|
-
emoji: true,
|
30
|
-
},
|
31
|
-
},
|
32
|
-
{
|
33
|
-
type: "divider",
|
34
|
-
},
|
35
|
-
{
|
36
|
-
type: "section",
|
37
|
-
fields: [
|
38
|
-
{
|
39
|
-
text: `pos_ev: ${odd.pos_ev}`,
|
40
|
-
emoji: true,
|
41
|
-
type: "plain_text",
|
42
|
-
},
|
43
|
-
{
|
44
|
-
text: `no_vig_odds: ${odd.no_vig_odds}`,
|
45
|
-
type: "plain_text",
|
46
|
-
emoji: true,
|
47
|
-
},
|
48
|
-
{
|
49
|
-
text: `pinnacle_juice: ${odd.pinnacle_juice}`,
|
50
|
-
type: "plain_text",
|
51
|
-
emoji: true,
|
52
|
-
},
|
53
|
-
{
|
54
|
-
text: `pp_bet_points: ${odd.pp_bet_points}`,
|
55
|
-
type: "plain_text",
|
56
|
-
emoji: true,
|
57
|
-
},
|
58
|
-
{
|
59
|
-
text: `pin_bet_points: ${odd.pin_bet_points}`,
|
60
|
-
type: "plain_text",
|
61
|
-
emoji: true,
|
62
|
-
},
|
63
|
-
{
|
64
|
-
text: `pp_price: ${odd.pp_price}`,
|
65
|
-
type: "plain_text",
|
66
|
-
emoji: true,
|
67
|
-
},
|
68
|
-
],
|
69
|
-
},
|
70
|
-
{
|
71
|
-
type: "section",
|
72
|
-
fields: [
|
73
|
-
{
|
74
|
-
text: `pin_price_over: ${odd.pin_price_over}`,
|
75
|
-
type: "plain_text",
|
76
|
-
emoji: true,
|
77
|
-
},
|
78
|
-
{
|
79
|
-
text: `pin_price_under: ${odd.pin_price_under}`,
|
80
|
-
type: "plain_text",
|
81
|
-
emoji: true,
|
82
|
-
},
|
83
|
-
{
|
84
|
-
text: `pp_implied_odds: ${odd.pp_implied_odds}`,
|
85
|
-
type: "plain_text",
|
86
|
-
emoji: true,
|
87
|
-
},
|
88
|
-
{
|
89
|
-
text: `over_implied_odds: ${odd.over_implied_odds}`,
|
90
|
-
type: "plain_text",
|
91
|
-
emoji: true,
|
92
|
-
},
|
93
|
-
{
|
94
|
-
text: `under_implied_odds: ${odd.under_implied_odds}`,
|
95
|
-
type: "plain_text",
|
96
|
-
emoji: true,
|
97
|
-
},
|
98
|
-
{
|
99
|
-
text: `ppupdate: ${odd.ppupdate.hours} hr, ${odd.ppupdate.minutes} min ago`,
|
100
|
-
type: "plain_text",
|
101
|
-
emoji: true,
|
102
|
-
},
|
103
|
-
{
|
104
|
-
text: `pinnacleupdate: ${odd.pinnacleupdate.hours} hr, ${odd.pinnacleupdate.minutes} min ago`,
|
105
|
-
type: "plain_text",
|
106
|
-
emoji: true,
|
107
|
-
},
|
108
|
-
{
|
109
|
-
text: `away_team: ${odd.away_team}`,
|
110
|
-
type: "plain_text",
|
111
|
-
emoji: true,
|
112
|
-
},
|
113
|
-
{
|
114
|
-
text: `home_team: ${odd.home_team}`,
|
115
|
-
type: "plain_text",
|
116
|
-
emoji: true,
|
117
|
-
},
|
118
|
-
{
|
119
|
-
text: `start_date: ${odd.start_date}`,
|
120
|
-
type: "plain_text",
|
121
|
-
emoji: true,
|
122
|
-
},
|
123
|
-
],
|
124
|
-
},
|
125
|
-
{
|
126
|
-
type: "divider",
|
127
|
-
},
|
128
|
-
],
|
129
|
-
};
|
130
|
-
};
|
131
|
-
const postSlackText = async (book, odd, type) => {
|
132
|
-
let bookUrl = {
|
133
|
-
"PrizePicks (5 or 6 Pick Flex)": "https://hooks.slack.com/services/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",
|
134
|
-
"Underdog Fantasy (3 or 5 Pick)": "https://hooks.slack.com/services/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",
|
135
|
-
}[book];
|
136
|
-
await postSlackNotification(bookUrl, oddToSlack(type, odd));
|
137
|
-
};
|
138
|
-
const run = async (book) => {
|
139
|
-
let results = await typed_model_1.pbSequelize.query(`WITH pinnacle_odds as (
|
140
|
-
SELECT *, case when name like '%Over%' then true else false end as is_over
|
141
|
-
FROM
|
142
|
-
odds where (name like '%Over%' OR name like '%Under%')
|
143
|
-
and sports_book_name = 'Pinnacle' AND NOT stale
|
144
|
-
|
145
|
-
),
|
146
|
-
pp_odds as (
|
147
|
-
SELECT *, case when name like '%Over%' then true else false end as is_over
|
148
|
-
FROM
|
149
|
-
odds where (name like '%Over%' OR name like '%Under%')
|
150
|
-
and sports_book_name = '${book}' AND NOT stale
|
151
|
-
)
|
152
|
-
SELECT
|
153
|
-
no_vig_odds - pp_implied_odds as pos_ev,
|
154
|
-
*
|
155
|
-
FROM (
|
156
|
-
SELECT
|
157
|
-
CASE WHEN sub.is_over
|
158
|
-
THEN over_implied_odds / (over_implied_odds + under_implied_odds)
|
159
|
-
ELSE
|
160
|
-
under_implied_odds / (over_implied_odds + under_implied_odds)
|
161
|
-
END
|
162
|
-
as no_vig_odds,
|
163
|
-
(over_implied_odds + under_implied_odds) - 1.0 as pinnacle_juice,
|
164
|
-
*
|
165
|
-
FROM
|
166
|
-
(
|
167
|
-
SELECT
|
168
|
-
NOW() - pp."updatedAt" as pp_update,
|
169
|
-
pp.bet_points as pp_bet_points,
|
170
|
-
pin_over.bet_points as pin_bet_points,
|
171
|
-
pp.market_name,
|
172
|
-
pp.name,
|
173
|
-
pp.price as pp_price,
|
174
|
-
pin_over.price as pin_price_over,
|
175
|
-
pin_under.price as pin_price_under,
|
176
|
-
CASE
|
177
|
-
WHEN pp.price > 0
|
178
|
-
THEN 100.0 / (pp.price + 100.0)
|
179
|
-
WHEN pp.price < 0
|
180
|
-
THEN ABS(pp.price) / (ABS(pp.price) + 100.0)
|
181
|
-
END as pp_implied_odds,
|
182
|
-
CASE
|
183
|
-
WHEN pin_over.price > 0
|
184
|
-
THEN 100.0 / (pin_over.price + 100.0)
|
185
|
-
WHEN pin_over.price < 0
|
186
|
-
THEN ABS(pin_over.price) / (ABS(pin_over.price) + 100.0)
|
187
|
-
END as over_implied_odds,
|
188
|
-
CASE
|
189
|
-
WHEN pin_under.price > 0
|
190
|
-
THEN 100.0 / (pin_under.price + 100.0)
|
191
|
-
WHEN pin_under.price < 0
|
192
|
-
THEN ABS(pin_under.price) / (ABS(pin_under.price) + 100.0)
|
193
|
-
END as under_implied_odds,
|
194
|
-
NOW() - pp."updatedAt" as ppUpdate,
|
195
|
-
NOW() - pin_over."updatedAt" as pinnacleUpdate,
|
196
|
-
pp.is_over,
|
197
|
-
games.away_team,
|
198
|
-
games.home_team,
|
199
|
-
games.start_date,
|
200
|
-
pp.bet_result
|
201
|
-
FROM pp_odds pp
|
202
|
-
JOIN games on games.id = pp.game_id
|
203
|
-
JOIN pinnacle_odds pin_over
|
204
|
-
ON pp.odds_jam_game_id = pin_over.odds_jam_game_id AND pp.market_id = pin_over.market_id AND pp.odds_jam_player_id = pin_over.odds_jam_player_id AND pin_over.is_over
|
205
|
-
JOIN pinnacle_odds pin_under
|
206
|
-
ON pp.odds_jam_game_id = pin_under.odds_jam_game_id AND pp.market_id = pin_under.market_id AND pp.odds_jam_player_id = pin_under.odds_jam_player_id AND NOT pin_under.is_over
|
207
|
-
-- WHERE NOW() - pin_under."updatedAt" <= interval '3 hours'
|
208
|
-
) as sub
|
209
|
-
) sub2 WHERE
|
210
|
-
-- no_vig_odds - pp_implied_odds > 0.0 AND
|
211
|
-
start_date > now() AND
|
212
|
-
(pin_bet_points = pp_bet_points OR (NOT is_over AND pin_bet_points < pp_bet_points) OR (is_over AND pin_bet_points > pp_bet_points))
|
213
|
-
order by no_vig_odds - pp_implied_odds desc`, { type: sequelize_1.QueryTypes.SELECT });
|
214
|
-
for (let odd of results) {
|
215
|
-
let recentBet = !odd.pp_update.days &&
|
216
|
-
(!odd.pp_update.hours || odd.pp_update.hours == 0) &&
|
217
|
-
odd.pp_update.minutes < 10;
|
218
|
-
if (odd.pos_ev > -0.02 &&
|
219
|
-
odd.pp_bet_points != odd.pin_bet_points &&
|
220
|
-
recentBet) {
|
221
|
-
console.log("Mismatch found");
|
222
|
-
postSlackText(book, odd, "Point mismatch");
|
223
|
-
}
|
224
|
-
if (odd.pos_ev > 0.03 && recentBet) {
|
225
|
-
console.log("Pos EV found");
|
226
|
-
postSlackText(book, odd, "Positive EV");
|
227
|
-
}
|
228
|
-
}
|
229
|
-
};
|
230
|
-
if (require.main === module) {
|
231
|
-
if (require.main === module) {
|
232
|
-
var book = process.argv[2] || "PrizePicks (5 or 6 Pick Flex)";
|
233
|
-
run(book).then(async () => {
|
234
|
-
console.log("Finished");
|
235
|
-
});
|
236
|
-
}
|
237
|
-
}
|
238
|
-
//# sourceMappingURL=findGoodBets.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"findGoodBets.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/findGoodBets.ts"],"names":[],"mappings":"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"}
|
@@ -1,109 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const dotenv = require("dotenv");
|
7
|
-
const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
|
8
|
-
const typed_model_1 = require("../../typed-model");
|
9
|
-
const sequelize_1 = require("sequelize");
|
10
|
-
dotenv.config();
|
11
|
-
const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
|
12
|
-
function timeout(ms) {
|
13
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
14
|
-
}
|
15
|
-
const run = async () => {
|
16
|
-
while (true) {
|
17
|
-
let oddsToGrade = await typed_model_1.Odds.findAll({
|
18
|
-
where: {
|
19
|
-
betResult: {
|
20
|
-
[sequelize_1.Op.eq]: null,
|
21
|
-
},
|
22
|
-
},
|
23
|
-
include: [
|
24
|
-
{
|
25
|
-
model: typed_model_1.Game,
|
26
|
-
where: {
|
27
|
-
status: "Completed",
|
28
|
-
},
|
29
|
-
},
|
30
|
-
],
|
31
|
-
});
|
32
|
-
if (!oddsToGrade || oddsToGrade.length === 0) {
|
33
|
-
console.log("Still odds");
|
34
|
-
break;
|
35
|
-
}
|
36
|
-
let betsToGrade = oddsToGrade.reduce((acc, next) => {
|
37
|
-
let key = `${next.oddsJamGameId}-${next.marketName}-${next.name}`;
|
38
|
-
acc[key] = {
|
39
|
-
gameId: next.oddsJamGameId,
|
40
|
-
betName: next.name,
|
41
|
-
marketName: next.marketName,
|
42
|
-
leagueName: next.Game.league,
|
43
|
-
sport: next.Game.sport,
|
44
|
-
};
|
45
|
-
return acc;
|
46
|
-
}, {});
|
47
|
-
let gradedBets = {};
|
48
|
-
console.log(`Bets to grade: ${Object.values(betsToGrade).length}`);
|
49
|
-
let cnt = 0;
|
50
|
-
for (let [key, bet] of Object.entries(betsToGrade)) {
|
51
|
-
console.log(cnt);
|
52
|
-
cnt++;
|
53
|
-
const gradedBet = await OddsJamClient.gradeBet({
|
54
|
-
league: bet.leagueName,
|
55
|
-
game_id: bet.gameId,
|
56
|
-
sport: bet.sport,
|
57
|
-
bet_name: bet.betName,
|
58
|
-
market_name: bet.marketName,
|
59
|
-
}).catch((e) => console.log("Errored fetching game"));
|
60
|
-
if (gradedBet) {
|
61
|
-
gradedBets[key] = Object.assign(Object.assign({}, betsToGrade[key]), { homeScore: gradedBet.homeScore, awayScore: gradedBet.awayScore, playerScore: gradedBet.playerScore, betResult: gradedBet.betResult });
|
62
|
-
console.log(gradedBet);
|
63
|
-
}
|
64
|
-
if (cnt == 100)
|
65
|
-
break;
|
66
|
-
}
|
67
|
-
let upsertBodies = [];
|
68
|
-
let oddsSet = new Set();
|
69
|
-
console.log(`Odds to grade: ${oddsToGrade.length}`);
|
70
|
-
for (let odds of oddsToGrade) {
|
71
|
-
if (oddsSet.has(odds.id))
|
72
|
-
continue;
|
73
|
-
oddsSet.add(odds.id);
|
74
|
-
let key = `${odds.oddsJamGameId}-${odds.marketName}-${odds.name}`;
|
75
|
-
console.log(key);
|
76
|
-
let gradeForBet = gradedBets[key];
|
77
|
-
console.log(key);
|
78
|
-
if (!gradeForBet) {
|
79
|
-
continue;
|
80
|
-
}
|
81
|
-
upsertBodies.push({
|
82
|
-
id: odds.id,
|
83
|
-
oddsJamId: odds.oddsJamId,
|
84
|
-
betResult: gradeForBet.betResult,
|
85
|
-
awayScore: gradeForBet.awayScore,
|
86
|
-
homeScore: gradeForBet.homeScore,
|
87
|
-
playerScore: gradeForBet.playerScore,
|
88
|
-
});
|
89
|
-
}
|
90
|
-
console.log(upsertBodies);
|
91
|
-
await typed_model_1.Odds.bulkCreate(upsertBodies, {
|
92
|
-
updateOnDuplicate: [
|
93
|
-
"betResult",
|
94
|
-
"awayScore",
|
95
|
-
"homeScore",
|
96
|
-
"playerScore",
|
97
|
-
"updatedAt",
|
98
|
-
],
|
99
|
-
});
|
100
|
-
}
|
101
|
-
};
|
102
|
-
if (require.main === module) {
|
103
|
-
if (require.main === module) {
|
104
|
-
run().then(async () => {
|
105
|
-
console.log("Finished");
|
106
|
-
});
|
107
|
-
}
|
108
|
-
}
|
109
|
-
//# sourceMappingURL=gradeBets.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"gradeBets.js","sourceRoot":"","sources":["../../../scripts/bet-syncing/gradeBets.ts"],"names":[],"mappings":"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"}
|
@@ -1,198 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const dotenv = require("dotenv");
|
7
|
-
const oddsjam_js_wrapper_1 = __importDefault(require("@winible/oddsjam-js-wrapper"));
|
8
|
-
const typed_model_1 = require("../../typed-model");
|
9
|
-
dotenv.config();
|
10
|
-
const OddsJamClient = (0, oddsjam_js_wrapper_1.default)(process.env.ODDS_JAM_API_KEY);
|
11
|
-
const mapOJGameToGame = (t, league, homeTeam, awayTeam) => {
|
12
|
-
if (!league) {
|
13
|
-
throw new Error(`No league for ${t.league}`);
|
14
|
-
}
|
15
|
-
return {
|
16
|
-
oddsJamId: `${t.id}`,
|
17
|
-
sport: t.sport,
|
18
|
-
league: t.league,
|
19
|
-
startDate: new Date(t.start_date),
|
20
|
-
homeTeam: homeTeam.teamName,
|
21
|
-
awayTeam: awayTeam.teamName,
|
22
|
-
isLive: t.is_live,
|
23
|
-
homeTeamId: homeTeam.id,
|
24
|
-
homeOddsJamTeamId: homeTeam.oddsJamTeamId,
|
25
|
-
awayTeamId: awayTeam.id,
|
26
|
-
awayOddsJamTeamId: awayTeam.oddsJamTeamId,
|
27
|
-
leagueId: league.id,
|
28
|
-
};
|
29
|
-
};
|
30
|
-
const mapOJScoreToGame = (score, league, homeTeam, awayTeam) => {
|
31
|
-
if (!league) {
|
32
|
-
throw new Error(`No league for ${score.league}`);
|
33
|
-
}
|
34
|
-
return {
|
35
|
-
oddsJamId: `${score.game_id}`,
|
36
|
-
startDate: new Date(score.start_date),
|
37
|
-
homeTeam: homeTeam.teamName,
|
38
|
-
awayTeam: awayTeam.teamName,
|
39
|
-
isLive: score.is_live,
|
40
|
-
homeTeamId: homeTeam.id,
|
41
|
-
homeOddsJamTeamId: homeTeam.oddsJamTeamId,
|
42
|
-
awayTeamId: awayTeam.id,
|
43
|
-
awayOddsJamTeamId: awayTeam.oddsJamTeamId,
|
44
|
-
leagueId: league.id,
|
45
|
-
sport: score.sport,
|
46
|
-
league: score.league,
|
47
|
-
tournament: score.tournament,
|
48
|
-
clock: score.clock,
|
49
|
-
period: score.period,
|
50
|
-
status: score.status,
|
51
|
-
weather: score.weather,
|
52
|
-
broadcast: score.broadcast,
|
53
|
-
lastPlay: score.last_play,
|
54
|
-
venueName: score.venue_name,
|
55
|
-
description: score.description,
|
56
|
-
seasonType: score.season_type,
|
57
|
-
seasonWeek: score.season_week,
|
58
|
-
seasonYear: score.season_year,
|
59
|
-
awayStarter: score.away_starter,
|
60
|
-
currentOuts: score.current_outs,
|
61
|
-
homeStarter: score.home_starter,
|
62
|
-
weatherTemp: score.weather_temp,
|
63
|
-
awayTeamAbb: score.away_team_abb,
|
64
|
-
currentBalls: score.current_balls,
|
65
|
-
homeTeamAbb: score.home_team_abb,
|
66
|
-
awayTeamCity: score.away_team_city,
|
67
|
-
awayTeamName: score.away_team_name,
|
68
|
-
homeTeamCity: score.home_team_city,
|
69
|
-
homeTeamName: score.home_team_name,
|
70
|
-
venueLocation: score.venue_location,
|
71
|
-
currentStrikes: score.current_strikes,
|
72
|
-
runnerOnFirst: score.runner_on_first,
|
73
|
-
runnerOnThird: score.runner_on_third,
|
74
|
-
runnerOnSecond: score.runner_on_second,
|
75
|
-
scoreAwayTotal: score.score_away_total,
|
76
|
-
scoreHomeTotal: score.score_home_total,
|
77
|
-
weatherTempHigh: score.weather_temp_high,
|
78
|
-
currentPossession: score.current_possession,
|
79
|
-
currentBatterName: score.current_batter_name,
|
80
|
-
scoreAwayPeriods: Object.entries(score)
|
81
|
-
.filter((s) => /^score_away_period_[1-9]*/.test(s[0]))
|
82
|
-
.sort((a, b) => a[0].localeCompare(b[0]))
|
83
|
-
.map((s) => s[1]),
|
84
|
-
scoreHomePeriods: Object.entries(score)
|
85
|
-
.filter((s) => /^score_home_period_[1-9]*/.test(s[0]))
|
86
|
-
.sort((a, b) => a[0].localeCompare(b[0]))
|
87
|
-
.map((s) => s[1]),
|
88
|
-
currentPitcherName: score.current_pitcher_name,
|
89
|
-
currentDownAndDistance: score.current_down_and_distance,
|
90
|
-
};
|
91
|
-
};
|
92
|
-
const run = async () => {
|
93
|
-
const leagues = await typed_model_1.League.findAll();
|
94
|
-
const leagueForName = (name) => leagues.find((l) => l.leagueName == name);
|
95
|
-
let teams = await typed_model_1.Team.findAll();
|
96
|
-
const teamForName = (name) => teams.find((t) => t.teamName == name);
|
97
|
-
const createTeamForGame = async (teamName, g) => {
|
98
|
-
let l = leagueForName(g.league);
|
99
|
-
if (!l) {
|
100
|
-
l = await typed_model_1.League.create({
|
101
|
-
leagueName: g.league,
|
102
|
-
sport: g.sport,
|
103
|
-
});
|
104
|
-
leagues.push(l);
|
105
|
-
}
|
106
|
-
return await typed_model_1.Team.create({
|
107
|
-
teamName,
|
108
|
-
sport: g.sport,
|
109
|
-
league: g.league,
|
110
|
-
leagueId: l.id,
|
111
|
-
});
|
112
|
-
};
|
113
|
-
const upcomingGames = await OddsJamClient.getGames();
|
114
|
-
let teamNameSet = new Set();
|
115
|
-
for (let g of upcomingGames) {
|
116
|
-
if (!teamForName(g.home_team) && !teamNameSet.has(g.home_team)) {
|
117
|
-
await createTeamForGame(g.home_team, g);
|
118
|
-
}
|
119
|
-
teamNameSet.add(g.home_team);
|
120
|
-
if (!teamForName(g.away_team) && !teamNameSet.has(g.away_team)) {
|
121
|
-
await createTeamForGame(g.away_team, g);
|
122
|
-
}
|
123
|
-
teamNameSet.add(g.away_team);
|
124
|
-
}
|
125
|
-
teams = await typed_model_1.Team.findAll();
|
126
|
-
const upcomingGameData = upcomingGames.map((g) => mapOJGameToGame(g, leagueForName(g.league), teamForName(g.home_team), teamForName(g.away_team)));
|
127
|
-
// Updating upcoming games
|
128
|
-
await typed_model_1.Game.bulkCreate(upcomingGameData, {
|
129
|
-
updateOnDuplicate: ["isLive", "startDate"],
|
130
|
-
});
|
131
|
-
const liveGames = await OddsJamClient.getGames({ isLive: true });
|
132
|
-
for (let g of liveGames) {
|
133
|
-
if (!teamForName(g.home_team) && !teamNameSet.has(g.home_team)) {
|
134
|
-
await createTeamForGame(g.home_team, g);
|
135
|
-
}
|
136
|
-
teamNameSet.add(g.home_team);
|
137
|
-
if (!teamForName(g.away_team) && !teamNameSet.has(g.away_team)) {
|
138
|
-
await createTeamForGame(g.away_team, g);
|
139
|
-
}
|
140
|
-
teamNameSet.add(g.away_team);
|
141
|
-
}
|
142
|
-
const scoreResponse = await OddsJamClient.getScores({
|
143
|
-
gameId: liveGames.map((g) => g.id),
|
144
|
-
});
|
145
|
-
const score = scoreResponse.scores.map((g) => mapOJScoreToGame(g, leagueForName(g.league), teamForName(g.home_team), teamForName(g.away_team)));
|
146
|
-
// Updating upcoming games
|
147
|
-
await typed_model_1.Game.bulkCreate(score, {
|
148
|
-
updateOnDuplicate: [
|
149
|
-
"startDate",
|
150
|
-
"isLive",
|
151
|
-
"tournament",
|
152
|
-
"clock",
|
153
|
-
"period",
|
154
|
-
"status",
|
155
|
-
"weather",
|
156
|
-
"broadcast",
|
157
|
-
"lastPlay",
|
158
|
-
"venueName",
|
159
|
-
"description",
|
160
|
-
"seasonType",
|
161
|
-
"seasonWeek",
|
162
|
-
"seasonYear",
|
163
|
-
"awayStarter",
|
164
|
-
"currentOuts",
|
165
|
-
"homeStarter",
|
166
|
-
"weatherTemp",
|
167
|
-
"awayTeamAbb",
|
168
|
-
"currentBalls",
|
169
|
-
"homeTeamAbb",
|
170
|
-
"awayTeamCity",
|
171
|
-
"awayTeamName",
|
172
|
-
"homeTeamCity",
|
173
|
-
"homeTeamName",
|
174
|
-
"venueLocation",
|
175
|
-
"currentStrikes",
|
176
|
-
"runnerOnFirst",
|
177
|
-
"runnerOnThird",
|
178
|
-
"runnerOnSecond",
|
179
|
-
"scoreAwayTotal",
|
180
|
-
"scoreHomeTotal",
|
181
|
-
"weatherTempHigh",
|
182
|
-
"currentPossession",
|
183
|
-
"currentBatterName",
|
184
|
-
"scoreAwayPeriods",
|
185
|
-
"scoreHomePeriods",
|
186
|
-
"currentPitcherName",
|
187
|
-
"currentDownAndDistance",
|
188
|
-
],
|
189
|
-
});
|
190
|
-
};
|
191
|
-
if (require.main === module) {
|
192
|
-
if (require.main === module) {
|
193
|
-
run().then(async () => {
|
194
|
-
console.log("Finished");
|
195
|
-
});
|
196
|
-
}
|
197
|
-
}
|
198
|
-
//# sourceMappingURL=pullGames.js.map
|