gatsby-core-theme 5.0.2 → 5.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/.ci.yml +4 -3
- package/CHANGELOG.md +71 -0
- package/gatsby-node.esm.js +12 -14
- package/package.json +1 -1
- package/src/components/atoms/spotlights/index.js +8 -6
- package/src/components/molecules/header/header.module.scss +6 -0
- package/src/components/molecules/header/header.test.js +1 -1
- package/src/components/molecules/header/index.js +4 -0
- package/src/components/pages/tracker/index.js +3 -1
- package/src/helpers/processor/common.js +5 -0
- package/src/helpers/processor/index.js +30 -3
- package/src/helpers/strings.js +4 -1
- package/tests/factories/modules/toplist.factory.js +52 -0
package/.ci.yml
CHANGED
|
@@ -9,6 +9,9 @@ Theme Tests:
|
|
|
9
9
|
- yarn config set cache-folder .yarn
|
|
10
10
|
- yarn
|
|
11
11
|
- yarn workspace gatsby-core-theme test
|
|
12
|
+
artifacts:
|
|
13
|
+
paths:
|
|
14
|
+
- gatsby-theme/coverage/
|
|
12
15
|
coverage: /All files\s*\|\s*([\d\.]+)/
|
|
13
16
|
rules:
|
|
14
17
|
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "master"'
|
|
@@ -28,11 +31,9 @@ Theme Publish:
|
|
|
28
31
|
- yarn
|
|
29
32
|
- cd gatsby-theme/
|
|
30
33
|
- npx semantic-release -b $CI_COMMIT_REF_NAME
|
|
31
|
-
when:
|
|
32
|
-
manual
|
|
34
|
+
when: manual
|
|
33
35
|
only:
|
|
34
36
|
refs:
|
|
35
37
|
- master
|
|
36
38
|
variables:
|
|
37
39
|
- $PIPELINE != "content-trigger"
|
|
38
|
-
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,74 @@
|
|
|
1
|
+
## [5.1.2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v5.1.1...v5.1.2) (2022-03-10)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* add artifacts and move back stage of lighthouse ([ea69601](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/ea696013e650505ae1e90b51c261e819c9eaa351))
|
|
7
|
+
* content module gif image and spotlight image ([a54a5a9](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a54a5a9614be85f7e6dcd90b371b5dbe2713390e))
|
|
8
|
+
* return back assertions ([0cefa07](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/0cefa07edd2c9f6ea73086fe7622c683aa857adf))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Code Refactoring
|
|
12
|
+
|
|
13
|
+
* add flag for docker issue ([b4120b2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/b4120b2d417f6cccedda7187ccb911c17949d97a))
|
|
14
|
+
* add max assertion for testing ([04e4361](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/04e4361a3858e56b9a9e59b1491d3cb1197051b8))
|
|
15
|
+
* add max assertion for testing ([78d375f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/78d375f61806140fb7fe860436f7e7b9d3a3bf30))
|
|
16
|
+
* fix error on ci file ([37cc845](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/37cc84555a8a0a62e4036621c45eb89fe5bb1aa0))
|
|
17
|
+
* fix error on ci file ([e78536f](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/e78536ff1f2acf6beaabf8f31435b9845dd3f9d1))
|
|
18
|
+
* fix error on ci file ([f02439a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/f02439a15ebee6088dfee42ff84c55c380410286))
|
|
19
|
+
* remove unnecessary line in ci yml ([8e041be](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/8e041be54d13593f721a909614515367c4f04819))
|
|
20
|
+
* replace image ([6aacf01](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6aacf0164c03f3ec153e996b6f2117a095a920a6))
|
|
21
|
+
* replace lighthouse ci with google chrome lighthouse ([aa579c1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/aa579c15b30f275b2bc151a781181e9b1ec4612f))
|
|
22
|
+
* replace lighthouse ci with google chrome lighthouse ([fef864b](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/fef864bb9182003d7b496d6bfa54f211b3b64036))
|
|
23
|
+
* replace lighthouse ci with google chrome lighthouse ([847e99d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/847e99d6f63784d63e20bc4ac76b65fcab1714f2))
|
|
24
|
+
* return image ([38e3c74](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/38e3c7467638faae7c0c56d1a26f0e4caaa58896))
|
|
25
|
+
* test lighthouse upgrade ([764656d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/764656d9dd6511e2ef25c53d7f84b206a7ed5f1d))
|
|
26
|
+
* uncomment lighthouse for testing ([633f6c6](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/633f6c6a95fe84e6771212912a317940d563b73f))
|
|
27
|
+
* uncomment lighthouse for testing ([b288b1a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/b288b1a9c7ac885a0c7cbb7fcfa1ce2ed46bfb05))
|
|
28
|
+
* undo changes to check pipeline ([45083a5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/45083a52fc6fbc7913b0cc0b25116bac742cff39))
|
|
29
|
+
* undo changes to check pipeline ([79041a2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/79041a23aba7fbb58954bd460721b6378c007a4c))
|
|
30
|
+
* upgrade version lighthouse ci ([a5279da](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/a5279da1d2318ca3fe93a9c3170872d5ebeda979))
|
|
31
|
+
* upload coverage as artifact on test pipeline ([6e5d98b](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/6e5d98b7a62bc8326c8e14046ee61d077a3fce7e))
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
* Merge branch 'tm-2758-lighthouse' into 'master' ([57d659c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/57d659cb8f56f690564bc225e55836b23e9d8a37))
|
|
35
|
+
|
|
36
|
+
## [5.1.1](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v5.1.0...v5.1.1) (2022-03-09)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* test ([75ad3f0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/75ad3f0c3a0d12a0355f3c632a2a209f6b19dc95))
|
|
42
|
+
* tracker links redirect logic ([3694cfc](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/3694cfc6b208fc07f223a1ddc054f2a2b50dea1c))
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
* Merge branch 'tracker-links-fix' into 'master' ([7394d4d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/7394d4d9d947cc0b7ab4e50e92de912687b6a4ba))
|
|
46
|
+
|
|
47
|
+
# [5.1.0](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v5.0.2...v5.1.0) (2022-03-07)
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
### Bug Fixes
|
|
51
|
+
|
|
52
|
+
* add reading time to header ([1365dc5](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/1365dc5f84c0a89b37188df97dfb627f16ed058e))
|
|
53
|
+
* added hash with style ([828111a](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/828111ac4d2a0e860556f50b09ffcdbda4ee2a41))
|
|
54
|
+
* toplist fixtures added links ([1912625](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/1912625a4e2053f996f39279e11bbd80b810f9ff))
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
### Code Refactoring
|
|
58
|
+
|
|
59
|
+
* move calculatetimeread to processsections ([0792827](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/0792827f2ec099db480586c8fd267bb19132c3fc))
|
|
60
|
+
* move logic to processor ([3d2c426](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/3d2c426d85b938dd055beee3067d351f3de4d117))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
* Merge branch 'master' of git.ilcd.rocks:team-floyd/themes/gatsby-themes ([c368a8c](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/c368a8c94797c05e953c43bff5ce75b477378ebf))
|
|
64
|
+
* Merge branch 'tm-2756-reading-time' into 'master' ([88e138d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/88e138dcef2c3535cc2b6e9b929f1c876daa4333))
|
|
65
|
+
* Merge branch 'tm-2762-style-sheet-hash' into 'master' ([db5c54d](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/db5c54dd0df9b419ff4e8f69273203043126a71d))
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
### Features
|
|
69
|
+
|
|
70
|
+
* add reading time functions ([77655bc](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/commit/77655bc491ef43a249ff5c518f9696d5c3cbeb55))
|
|
71
|
+
|
|
1
72
|
## [5.0.2](https://git.ilcd.rocks/team-floyd/themes/gatsby-themes/compare/v5.0.1...v5.0.2) (2022-03-03)
|
|
2
73
|
|
|
3
74
|
|
package/gatsby-node.esm.js
CHANGED
|
@@ -331,23 +331,21 @@ exports.onCreatePage = ({ page, actions }) => {
|
|
|
331
331
|
}
|
|
332
332
|
};
|
|
333
333
|
|
|
334
|
-
exports.onCreateWebpackConfig = ({ actions,
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
if (miniCssExtractPluginIndex > -1) {
|
|
341
|
-
config.plugins.splice(miniCssExtractPluginIndex, 1);
|
|
342
|
-
config.plugins.push(
|
|
343
|
-
plugins.extractText({
|
|
344
|
-
ignoreOrder: true,
|
|
345
|
-
})
|
|
334
|
+
exports.onCreateWebpackConfig = ({ actions, stage, getConfig }) => {
|
|
335
|
+
if (stage === 'build-javascript') {
|
|
336
|
+
const config = getConfig();
|
|
337
|
+
// Get the mini-css-extract-plugin
|
|
338
|
+
const miniCssExtractPlugin = config.plugins.find(
|
|
339
|
+
(plugin) => plugin.constructor.name === 'MiniCssExtractPlugin'
|
|
346
340
|
);
|
|
341
|
+
// Set the option here to true.
|
|
342
|
+
if (miniCssExtractPlugin) {
|
|
343
|
+
miniCssExtractPlugin.options.ignoreOrder = true;
|
|
344
|
+
}
|
|
345
|
+
// Update the config.
|
|
346
|
+
actions.replaceWebpackConfig(config);
|
|
347
347
|
}
|
|
348
348
|
|
|
349
|
-
actions.replaceWebpackConfig(config);
|
|
350
|
-
|
|
351
349
|
actions.setWebpackConfig({
|
|
352
350
|
resolve: {
|
|
353
351
|
alias: {
|
package/package.json
CHANGED
|
@@ -21,12 +21,14 @@ const Spotlights = ({ module, themeStyles = {} }) => {
|
|
|
21
21
|
|
|
22
22
|
return (
|
|
23
23
|
<>
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
{img && (
|
|
25
|
+
<LazyImage
|
|
26
|
+
width={100}
|
|
27
|
+
height={50}
|
|
28
|
+
alt={item.label || item?.link_text || fileName}
|
|
29
|
+
src={imageSrc}
|
|
30
|
+
/>
|
|
31
|
+
)}
|
|
30
32
|
<label>{item.label}</label>
|
|
31
33
|
{item.subtitle && <span>{item.subtitle}</span>}
|
|
32
34
|
</>
|
|
@@ -14,7 +14,7 @@ describe('header component', () => {
|
|
|
14
14
|
expect(container.querySelectorAll('.headerContent')).toHaveLength(1);
|
|
15
15
|
|
|
16
16
|
// Inner HTML
|
|
17
|
-
expect(container.querySelectorAll('p')).toHaveLength(
|
|
17
|
+
expect(container.querySelectorAll('p')).toHaveLength(2);
|
|
18
18
|
expect(container.querySelectorAll('i')).toHaveLength(1);
|
|
19
19
|
|
|
20
20
|
// Testing image
|
|
@@ -72,6 +72,9 @@ function Header({ section, content = null, backgroundImage = true }) {
|
|
|
72
72
|
section.page.template !== 'article_casino' &&
|
|
73
73
|
section.page.template !== 'article_sports' &&
|
|
74
74
|
section.page.template !== 'game_review' && <h1>{section.page.title}</h1>}
|
|
75
|
+
<p className={styles.readingTime}>
|
|
76
|
+
Reading Time: <span>{section.page.reading_time}</span>
|
|
77
|
+
</p>
|
|
75
78
|
<div className={!content && styles.headerText}>{headerContent()}</div>
|
|
76
79
|
</div>
|
|
77
80
|
</header>
|
|
@@ -86,6 +89,7 @@ Header.propTypes = {
|
|
|
86
89
|
path: PropTypes.string,
|
|
87
90
|
updated_at: PropTypes.string,
|
|
88
91
|
created_at: PropTypes.string,
|
|
92
|
+
reading_time: PropTypes.string,
|
|
89
93
|
author: PropTypes.shape({
|
|
90
94
|
name: PropTypes.string,
|
|
91
95
|
profile_page_path: PropTypes.string,
|
|
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import Button from '~atoms/button';
|
|
4
4
|
import LazyImage from '~hooks/lazy-image';
|
|
5
5
|
import { prettyTracker } from '~helpers/getters';
|
|
6
|
+
import { generateTrackerLink } from '~helpers/generators';
|
|
6
7
|
import { isMobileDevice } from '~helpers/device-detect';
|
|
7
8
|
import styles from './tracker.module.scss';
|
|
8
9
|
|
|
@@ -26,7 +27,8 @@ const Tracker = ({
|
|
|
26
27
|
let tracker = '';
|
|
27
28
|
for (let i = 0; i < trackerLinks.length; i += 1) {
|
|
28
29
|
const trackerLink = trackerLinks[i].toLowerCase().replace(' ', '_');
|
|
29
|
-
|
|
30
|
+
|
|
31
|
+
if (generateTrackerLink(operator, trackerLink) === path) {
|
|
30
32
|
tracker =
|
|
31
33
|
operator.links[
|
|
32
34
|
Object.keys(operator.links).find((key) => key.toLowerCase() === trackerLink.toLowerCase())
|
|
@@ -12,8 +12,9 @@ import { generatePlaceholderString } from '../generators';
|
|
|
12
12
|
// eslint-disable-next-line import/no-cycle
|
|
13
13
|
import { processModule } from './modules';
|
|
14
14
|
// eslint-disable-next-line import/no-cycle
|
|
15
|
-
import { clonePageForCards, groupBy } from './common';
|
|
15
|
+
import { clonePageForCards, groupBy, removeTags } from './common';
|
|
16
16
|
import { prepareSportsData, addSportsDataToPage, addExtraFieldsToShowcaseEvents } from './sports';
|
|
17
|
+
import { zeroPadding } from '../schedule';
|
|
17
18
|
|
|
18
19
|
const previewMode = process.env.GATSBY_PREVIEW_MODE || false;
|
|
19
20
|
const postSectionsMap = {
|
|
@@ -74,7 +75,10 @@ export function transform(response) {
|
|
|
74
75
|
return transformed;
|
|
75
76
|
}
|
|
76
77
|
|
|
77
|
-
export function processSections(sections, skipPost = false) {
|
|
78
|
+
export function processSections(sections, skipPost = false, page) {
|
|
79
|
+
let minutes = 0;
|
|
80
|
+
let seconds = 0;
|
|
81
|
+
|
|
78
82
|
Object.keys(sections).forEach((sectionKey) => {
|
|
79
83
|
if (skipPost && sectionKey.includes('post_main')) {
|
|
80
84
|
return;
|
|
@@ -93,9 +97,32 @@ export function processSections(sections, skipPost = false) {
|
|
|
93
97
|
menus,
|
|
94
98
|
previewMode
|
|
95
99
|
);
|
|
100
|
+
|
|
101
|
+
// calculate reading time
|
|
102
|
+
if (module.name === 'content') {
|
|
103
|
+
const nrOfWords = removeTags(module.value).split(' ').length / 250;
|
|
104
|
+
const minPerModule = Math.floor(nrOfWords);
|
|
105
|
+
const secPerModule = Math.floor((nrOfWords % 1) * 60);
|
|
106
|
+
|
|
107
|
+
minutes += minPerModule;
|
|
108
|
+
seconds += secPerModule;
|
|
109
|
+
}
|
|
96
110
|
});
|
|
97
111
|
}
|
|
98
112
|
});
|
|
113
|
+
// transform seconds to minutes as last step
|
|
114
|
+
if (seconds > 60) {
|
|
115
|
+
const mins = Math.floor(seconds / 60);
|
|
116
|
+
const decimalSeconds = seconds % 60;
|
|
117
|
+
|
|
118
|
+
minutes += mins;
|
|
119
|
+
seconds = decimalSeconds;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
if (page) {
|
|
123
|
+
page.reading_time = `${zeroPadding(minutes, 2)}:${zeroPadding(seconds, 2)}`;
|
|
124
|
+
}
|
|
125
|
+
|
|
99
126
|
return sections;
|
|
100
127
|
}
|
|
101
128
|
|
|
@@ -290,7 +317,7 @@ export default {
|
|
|
290
317
|
});
|
|
291
318
|
|
|
292
319
|
transformedPages[market][pageType][index] = Object.assign(page, {
|
|
293
|
-
sections: processSections(page.sections),
|
|
320
|
+
sections: processSections(page.sections, false, page),
|
|
294
321
|
});
|
|
295
322
|
}
|
|
296
323
|
});
|
package/src/helpers/strings.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { imagePrettyUrl } from './getters';
|
|
2
|
+
|
|
1
3
|
export function capitalize(string) {
|
|
2
4
|
return string.replace(/^\w/, (c) => c.toUpperCase());
|
|
3
5
|
}
|
|
@@ -60,7 +62,8 @@ export function parseContentImageUrl(src) {
|
|
|
60
62
|
const srcArr = src && src.split('//');
|
|
61
63
|
if (srcArr && srcArr.length === 2) {
|
|
62
64
|
const refUrl = srcArr[1].substring(srcArr[1].indexOf('/'));
|
|
63
|
-
|
|
65
|
+
|
|
66
|
+
return imagePrettyUrl(refUrl.substring(1));
|
|
64
67
|
}
|
|
65
68
|
|
|
66
69
|
return src;
|
|
@@ -441,6 +441,10 @@ export const singleToplistData = {
|
|
|
441
441
|
rating: '4',
|
|
442
442
|
review_link: '/slotum',
|
|
443
443
|
selling_points: ['200% Bonus', 'Nice design'],
|
|
444
|
+
links: {
|
|
445
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
446
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
447
|
+
},
|
|
444
448
|
one_liners: {
|
|
445
449
|
main: {
|
|
446
450
|
one_liner: '90% Bonus + 50 free spins',
|
|
@@ -467,6 +471,10 @@ export const singleToplistData = {
|
|
|
467
471
|
rating: '4',
|
|
468
472
|
review_link: '/rizk',
|
|
469
473
|
selling_points: ['100% Bonus', 'User-friendly', 'Welcome bonus', 'Nice design'],
|
|
474
|
+
links: {
|
|
475
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
476
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
477
|
+
},
|
|
470
478
|
one_liners: {
|
|
471
479
|
main: {
|
|
472
480
|
one_liner: '100% Bonus + 50 free spins',
|
|
@@ -493,6 +501,10 @@ export const singleToplistData = {
|
|
|
493
501
|
rating: '3',
|
|
494
502
|
review_link: '/casoola',
|
|
495
503
|
selling_points: ['25 free spins', 'Loyalty scheme'],
|
|
504
|
+
links: {
|
|
505
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
506
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
507
|
+
},
|
|
496
508
|
one_liners: {
|
|
497
509
|
main: {
|
|
498
510
|
one_liner: '80% Bonus + 25 free spins',
|
|
@@ -514,6 +526,10 @@ export const singleToplistData = {
|
|
|
514
526
|
rating: '3',
|
|
515
527
|
review_link: '/bet365',
|
|
516
528
|
selling_points: ['Loyalty programme', 'Wager-free free spins'],
|
|
529
|
+
links: {
|
|
530
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
531
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
532
|
+
},
|
|
517
533
|
one_liners: {
|
|
518
534
|
main: {
|
|
519
535
|
one_liner: 'Up to £100 New Player Bonus!',
|
|
@@ -533,6 +549,10 @@ export const singleToplistData = {
|
|
|
533
549
|
bonus: {
|
|
534
550
|
deposit_methods: [],
|
|
535
551
|
},
|
|
552
|
+
links: {
|
|
553
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
554
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
555
|
+
},
|
|
536
556
|
short_name: 'captain-spins',
|
|
537
557
|
logo_url: 'captain-spins-logopng07b24ceb59-original.png',
|
|
538
558
|
rating: '4',
|
|
@@ -557,6 +577,10 @@ export const singleToplistData = {
|
|
|
557
577
|
bonus: {
|
|
558
578
|
deposit_methods: [],
|
|
559
579
|
},
|
|
580
|
+
links: {
|
|
581
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
582
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
583
|
+
},
|
|
560
584
|
short_name: 'casino-gods',
|
|
561
585
|
logo_url: 'casino-gods-logopng3bfc0d51-original.png',
|
|
562
586
|
rating: '3',
|
|
@@ -581,6 +605,10 @@ export const singleToplistData = {
|
|
|
581
605
|
bonus: {
|
|
582
606
|
deposit_methods: [],
|
|
583
607
|
},
|
|
608
|
+
links: {
|
|
609
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
610
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
611
|
+
},
|
|
584
612
|
short_name: 'jinni-lotto',
|
|
585
613
|
logo_url: 'jinnilotto-logopng464964d6b0-original.png',
|
|
586
614
|
rating: '4',
|
|
@@ -605,6 +633,10 @@ export const singleToplistData = {
|
|
|
605
633
|
bonus: {
|
|
606
634
|
deposit_methods: [],
|
|
607
635
|
},
|
|
636
|
+
links: {
|
|
637
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
638
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
639
|
+
},
|
|
608
640
|
short_name: 'betfair',
|
|
609
641
|
logo_url: '5aedeb23bb-original.png',
|
|
610
642
|
rating: '5',
|
|
@@ -629,6 +661,10 @@ export const singleToplistData = {
|
|
|
629
661
|
bonus: {
|
|
630
662
|
deposit_methods: [],
|
|
631
663
|
},
|
|
664
|
+
links: {
|
|
665
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
666
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
667
|
+
},
|
|
632
668
|
short_name: 'casoola',
|
|
633
669
|
logo_url: 'casoola-logopng381ab5c04f-original.png',
|
|
634
670
|
rating: '3',
|
|
@@ -653,6 +689,10 @@ export const singleToplistData = {
|
|
|
653
689
|
bonus: {
|
|
654
690
|
deposit_methods: [],
|
|
655
691
|
},
|
|
692
|
+
links: {
|
|
693
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
694
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
695
|
+
},
|
|
656
696
|
short_name: 'bet365',
|
|
657
697
|
logo_url: 'image-63.png',
|
|
658
698
|
rating: '3',
|
|
@@ -677,6 +717,10 @@ export const singleToplistData = {
|
|
|
677
717
|
bonus: {
|
|
678
718
|
deposit_methods: [],
|
|
679
719
|
},
|
|
720
|
+
links: {
|
|
721
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
722
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
723
|
+
},
|
|
680
724
|
short_name: 'captain-spins',
|
|
681
725
|
logo_url: 'captain-spins-logopng07b24ceb59-original.png',
|
|
682
726
|
rating: '4',
|
|
@@ -701,6 +745,10 @@ export const singleToplistData = {
|
|
|
701
745
|
bonus: {
|
|
702
746
|
deposit_methods: [],
|
|
703
747
|
},
|
|
748
|
+
links: {
|
|
749
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
750
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
751
|
+
},
|
|
704
752
|
short_name: 'slotum',
|
|
705
753
|
logo_url: 'slotum-casino-logo-transparentpng6b10407566-original.png',
|
|
706
754
|
rating: '4',
|
|
@@ -725,6 +773,10 @@ export const singleToplistData = {
|
|
|
725
773
|
bonus: {
|
|
726
774
|
deposit_methods: [],
|
|
727
775
|
},
|
|
776
|
+
links: {
|
|
777
|
+
main: 'https://media.dunderaffiliates.com/redirect.aspx?pid=630524&bid=1477',
|
|
778
|
+
'PPC Fallback': 'https://media.dunderaffiliates.com/redirect.aspx?pid=740444&bid=1803',
|
|
779
|
+
},
|
|
728
780
|
short_name: 'casoola',
|
|
729
781
|
logo_url: 'casoola-logopng381ab5c04f-original.png',
|
|
730
782
|
rating: '3',
|