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 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
 
@@ -331,23 +331,21 @@ exports.onCreatePage = ({ page, actions }) => {
331
331
  }
332
332
  };
333
333
 
334
- exports.onCreateWebpackConfig = ({ actions, plugins, getConfig }) => {
335
- const config = getConfig();
336
- const miniCssExtractPluginIndex = config.plugins.findIndex(
337
- (plugin) => plugin.constructor.name === 'MiniCssExtractPlugin'
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gatsby-core-theme",
3
- "version": "5.0.2",
3
+ "version": "5.1.2",
4
4
  "description": "Gatsby Theme NPM Package",
5
5
  "main": "index.js",
6
6
  "GATSBY_RECAPTCHA_SITEKEY": "6LfoyvMUAAAAAO4nl_MQnqHb4XdHxEiu5cXgIqeB",
@@ -21,12 +21,14 @@ const Spotlights = ({ module, themeStyles = {} }) => {
21
21
 
22
22
  return (
23
23
  <>
24
- <LazyImage
25
- width={100}
26
- height={50}
27
- alt={item.label || item?.link_text || fileName}
28
- src={imageSrc}
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
  </>
@@ -25,5 +25,11 @@
25
25
  .headerContent {
26
26
  z-index: 1;
27
27
  padding: 2.4rem;
28
+
29
+ .readingTime {
30
+ > span {
31
+ font-weight: bold;
32
+ }
33
+ }
28
34
  }
29
35
  }
@@ -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(1);
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
- if (path.includes(trackerLink)) {
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())
@@ -88,3 +88,8 @@ export function removeDuplicates(list, key) {
88
88
  return filtered;
89
89
  }, []);
90
90
  }
91
+
92
+ export function removeTags(str) {
93
+ if (str === null || str === '') return '';
94
+ return str.toString().replace(/(<([^>]+)>)/gi, '');
95
+ }
@@ -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
  });
@@ -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
- return process.env.IMAGE_CDN_URL + refUrl;
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',