From cf712aa4afc5441ac79f69b489f8a9e2569409fa Mon Sep 17 00:00:00 2001 From: Alex Grebenyuk Date: Tue, 5 Aug 2025 10:14:34 -0400 Subject: [PATCH] Add mock data --- .../Resources/Mocks/Avatars/author1.jpg | Bin 0 -> 5516 bytes .../Resources/Mocks/Avatars/author2.jpg | Bin 0 -> 5541 bytes .../Resources/Mocks/Avatars/author3.jpg | Bin 0 -> 6137 bytes .../Resources/Mocks/Avatars/author4.jpg | Bin 0 -> 6797 bytes .../Resources/Mocks/Avatars/author5.jpg | Bin 0 -> 5734 bytes .../Resources/Mocks/Avatars/author6.jpg | Bin 0 -> 6649 bytes .../HistoricalData/historical-archive.json | 344 ++++++++++++ .../HistoricalData/historical-authors.json | 394 +++++++++++++ .../historical-external-links.json | 307 +++++++++++ .../historical-file-downloads.json | 177 ++++++ .../HistoricalData/historical-locations.json | 392 +++++++++++++ .../historical-postsAndPages.json | 407 ++++++++++++++ .../HistoricalData/historical-referrers.json | 370 +++++++++++++ .../historical-search-terms.json | 212 +++++++ .../HistoricalData/historical-videos.json | 182 ++++++ .../Resources/Mocks/Misc/post-details.json | 520 ++++++++++++++++++ .../Mocks/RealtimeData/realtime-archive.json | 74 +++ .../Mocks/RealtimeData/realtime-authors.json | 137 +++++ .../RealtimeData/realtime-external-links.json | 85 +++ .../RealtimeData/realtime-file-downloads.json | 44 ++ .../RealtimeData/realtime-locations.json | 66 +++ .../RealtimeData/realtime-postsAndPages.json | 200 +++++++ .../RealtimeData/realtime-referrers.json | 134 +++++ .../RealtimeData/realtime-search-terms.json | 44 ++ .../Mocks/RealtimeData/realtime-videos.json | 56 ++ 25 files changed, 4145 insertions(+) create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author1.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author2.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author3.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author4.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author5.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author6.jpg create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-archive.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-authors.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-external-links.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-file-downloads.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-locations.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-postsAndPages.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-referrers.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-search-terms.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/HistoricalData/historical-videos.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/Misc/post-details.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-archive.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-authors.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-external-links.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-file-downloads.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-locations.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-postsAndPages.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-referrers.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-search-terms.json create mode 100644 Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-videos.json diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author1.jpg b/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9225f29af403eb6a0b5eadd1c37516aa890f5942 GIT binary patch literal 5516 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

*117PNJOBUy literal 0 HcmV?d00001 diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author2.jpg b/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1b793bf95db5586935f5432d2bb04e25778eb01c GIT binary patch literal 5541 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 literal 0 HcmV?d00001 diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author3.jpg b/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3fd382ed7bbd0e3693c124ece7ac99cf877977a3 GIT binary patch literal 6137 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

M~UN$RSMmmTV#V5oq*85$t_wM@e4c$%|j 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 literal 0 HcmV?d00001 diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author6.jpg b/Modules/Sources/JetpackStats/Resources/Mocks/Avatars/author6.jpg new file mode 100644 index 0000000000000000000000000000000000000000..befcc31556b525ddd80034852d48a095a7736103 GIT binary patch literal 6649 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 spending a month with Apple's $3,499 Vision Pro, I've come to a stark realization: this might be the most impressive device I've ever used, and also the loneliest.

\n\n

The Vision Pro does things that feel like magic. It can transform your living room into a personal IMAX theater, let you arrange infinite virtual monitors around your desk, or transport you to Mount Hood while you're sitting on your couch. The eye tracking is so precise it feels telepathic, and the hand gestures are more natural than any interface I've used.

\n\n

The isolation problem

\n

But here's the thing: every moment you spend in the Vision Pro is a moment you're not spending with the people around you. Sure, you can see them through the passthrough cameras, rendered in surprisingly high quality. You can even make eye contact through the bizarre EyeSight display. But you're not really there with them. You're in Apple's meticulously crafted digital bubble, experiencing a world they can't see.

\n\n

This isn't just a Vision Pro problem — it's the fundamental challenge facing all headsets. Meta's Quest 3 has the same issue, though at least it doesn't cost as much as a used car. Even the upcoming Samsung headset will face this reality: strapping a computer to your face is inherently antisocial.

", + "post_excerpt": "The Vision Pro is an incredible piece of technology that fundamentally misunderstands how humans want to use computers.", + "post_status": "publish", + "comment_status": "open", + "post_password": "", + "post_name": "apple-vision-pro-lonely-computer-review", + "post_modified_gmt": "2024-12-20 09:15:00", + "post_content_filtered": "", + "post_parent": 0, + "guid": "https://example.com/?p=12345", + "post_type": "post", + "post_mime_type": "", + "comment_count": "487", + "permalink": "https://example.com/2024/03/apple-vision-pro-lonely-computer-review/" + } +} diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-archive.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-archive.json new file mode 100644 index 000000000000..bf0d1ea84b11 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-archive.json @@ -0,0 +1,74 @@ +[ + { + "sectionName": "other", + "items": [ + { + "href": "http://example.com/wp-admin/admin.php?page=stats", + "value": "/wp-admin/admin.php?page=stats", + "metrics": { + "views": 10 + } + }, + { + "href": "http://example.com/wp-admin/", + "value": "/wp-admin/", + "metrics": { + "views": 4 + } + }, + { + "href": "http://example.com/wp-admin/edit.php", + "value": "/wp-admin/edit.php", + "metrics": { + "views": 4 + } + }, + { + "href": "http://example.com/wp-admin/index.php", + "value": "/wp-admin/index.php", + "metrics": { + "views": 2 + } + }, + { + "href": "http://example.com/wp-admin/revision.php?revision=12345", + "value": "/wp-admin/revision.php?revision=12345", + "metrics": { + "views": 2 + } + } + ], + "metrics": { + "views": 25 + } + }, + { + "sectionName": "author", + "items": [ + { + "href": "http://example.com/author/johndoe/", + "value": "johndoe", + "metrics": { + "views": 31 + } + }, + { + "href": "http://example.com/author/janedoe/", + "value": "janedoe", + "metrics": { + "views": 5 + } + }, + { + "href": "http://example.com/author/testuser/", + "value": "testuser", + "metrics": { + "views": 2 + } + } + ], + "metrics": { + "views": 40 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-authors.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-authors.json new file mode 100644 index 000000000000..7558af154644 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-authors.json @@ -0,0 +1,137 @@ +[ + { + "name": "Alex Johnson", + "userId": "1", + "role": "Editor-in-Chief", + "metrics": { + "views": 240, + "comments": 85, + "likes": 180 + }, + "posts": [ + { + "title": "Breaking: Major Tech Announcement", + "postID": "1001", + "postURL": "https://example.com/breaking-tech", + "date": "2024-11-25T00:00:00Z", + "type": "post", + "author": "Alex Johnson", + "metrics": { + "views": 120 + } + }, + { + "title": "Live Blog: Conference Updates", + "postID": "1002", + "postURL": "https://example.com/live-conference", + "date": "2024-11-25T00:00:00Z", + "type": "post", + "author": "Alex Johnson", + "metrics": { + "views": 95 + } + } + ] + }, + { + "name": "Sam Williams", + "userId": "2", + "role": "Editor-at-Large", + "metrics": { + "views": 190, + "comments": 72, + "likes": 145 + }, + "posts": [ + { + "title": "Today's Market Analysis", + "postID": "2001", + "postURL": "https://example.com/market-analysis", + "date": "2024-11-25T00:00:00Z", + "type": "post", + "author": "Sam Williams", + "metrics": { + "views": 85 + } + } + ] + }, + { + "name": "Jordan Chen", + "userId": "3", + "role": "Executive Editor", + "metrics": { + "views": 155, + "comments": 58, + "likes": 120 + }, + "posts": [ + { + "title": "Contact Us", + "postID": "3001", + "postURL": "https://example.com/contact", + "date": null, + "type": "page", + "author": "Jordan Chen", + "metrics": { + "views": 70 + } + } + ] + }, + { + "name": "Taylor Davis", + "userId": "4", + "role": "Senior Writer", + "metrics": { + "views": 130, + "comments": 45, + "likes": 95 + }, + "posts": [] + }, + { + "name": "Morgan Smith", + "userId": "5", + "role": "Senior Editor", + "metrics": { + "views": 105, + "comments": 38, + "likes": 82 + }, + "posts": [] + }, + { + "name": "Casey Brown", + "userId": "6", + "role": "Managing Editor", + "metrics": { + "views": 85, + "comments": 30, + "likes": 65 + }, + "posts": [] + }, + { + "name": "Riley Martinez", + "userId": "7", + "role": "Senior Reporter", + "metrics": { + "views": 70, + "comments": 25, + "likes": 55 + }, + "posts": [] + }, + { + "name": "Jamie Lee", + "userId": "8", + "role": "News Writer", + "metrics": { + "views": 60, + "comments": 20, + "likes": 45 + }, + "posts": [] + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-external-links.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-external-links.json new file mode 100644 index 000000000000..d21fc3eae007 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-external-links.json @@ -0,0 +1,85 @@ +[ + { + "url": "https://developer.apple.com", + "title": "Apple Developer", + "children": [ + { + "url": "https://developer.apple.com/documentation/swiftui", + "title": "SwiftUI Documentation", + "children": [], + "metrics": { + "views": 50, + "visitors": 35 + } + }, + { + "url": "https://developer.apple.com/documentation/uikit", + "title": "UIKit Documentation", + "children": [], + "metrics": { + "views": 30, + "visitors": 20 + } + } + ], + "metrics": { + "views": 180, + "visitors": 120 + } + }, + { + "url": "https://swift.org", + "title": "Swift.org", + "children": [], + "metrics": { + "views": 150, + "visitors": 100 + } + }, + { + "url": "https://github.com", + "title": "GitHub", + "children": [ + { + "url": "https://github.com/wordpress-mobile/WordPress-iOS", + "title": "WordPress-iOS Repository", + "children": [], + "metrics": { + "views": 40, + "visitors": 25 + } + } + ], + "metrics": { + "views": 120, + "visitors": 80 + } + }, + { + "url": "https://stackoverflow.com", + "title": "Stack Overflow", + "children": [], + "metrics": { + "views": 100, + "visitors": 70 + } + }, + { + "url": "https://raywenderlich.com", + "title": "Ray Wenderlich", + "children": [], + "metrics": { + "views": 80, + "visitors": 50 + } + }, + { + "url": "https://nshipster.com", + "title": "NSHipster", + "children": [], + "metrics": { + "views": 60, + "visitors": 40 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-file-downloads.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-file-downloads.json new file mode 100644 index 000000000000..0751839627d6 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-file-downloads.json @@ -0,0 +1,44 @@ +[ + { + "fileName": "annual-report-2024.pdf", + "filePath": "/downloads/reports/annual-report-2024.pdf", + "metrics": { + "downloads": 25 + } + }, + { + "fileName": "swift-cheatsheet.pdf", + "filePath": "/downloads/docs/swift-cheatsheet.pdf", + "metrics": { + "downloads": 21 + } + }, + { + "fileName": "app-screenshots.zip", + "filePath": "/downloads/media/app-screenshots.zip", + "metrics": { + "downloads": 18 + } + }, + { + "fileName": "tutorial-video.mp4", + "filePath": "/downloads/videos/tutorial-video.mp4", + "metrics": { + "downloads": 15 + } + }, + { + "fileName": "code-samples.zip", + "filePath": "/downloads/code/code-samples.zip", + "metrics": { + "downloads": 12 + } + }, + { + "fileName": "whitepaper.pdf", + "filePath": "/downloads/docs/whitepaper.pdf", + "metrics": { + "downloads": 9 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-locations.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-locations.json new file mode 100644 index 000000000000..fa3f08a6b647 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-locations.json @@ -0,0 +1,66 @@ +[ + { + "country": "United States", + "countryCode": "US", + "flag": "🇺🇸", + "metrics": { + "views": 350 + } + }, + { + "country": "United Kingdom", + "countryCode": "GB", + "flag": "🇬🇧", + "metrics": { + "views": 150 + } + }, + { + "country": "Canada", + "countryCode": "CA", + "flag": "🇨🇦", + "metrics": { + "views": 120 + } + }, + { + "country": "Germany", + "countryCode": "DE", + "flag": "🇩🇪", + "metrics": { + "views": 95 + } + }, + { + "country": "Australia", + "countryCode": "AU", + "flag": "🇦🇺", + "metrics": { + "views": 80 + } + }, + { + "country": "France", + "countryCode": "FR", + "flag": "🇫🇷", + "metrics": { + "views": 65 + } + }, + { + "country": "Japan", + "countryCode": "JP", + "flag": "🇯🇵", + "metrics": { + "views": 55 + } + }, + { + "country": "Netherlands", + "countryCode": "NL", + "flag": "🇳🇱", + "metrics": { + "views": 45 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-postsAndPages.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-postsAndPages.json new file mode 100644 index 000000000000..010ab6ec8d7a --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-postsAndPages.json @@ -0,0 +1,200 @@ +[ + { + "postId": "rt1", + "title": "Breaking: Apple Vision Pro Review", + "author": "Nilay Patel", + "metrics": { + "views": 380, + "comments": 45, + "likes": 120 + } + }, + { + "postId": "rt2", + "title": "Live: Tesla Cybertruck First Drive", + "author": "David Pierce", + "metrics": { + "views": 320, + "comments": 38, + "likes": 95 + } + }, + { + "postId": "rt3", + "title": "Google Pixel 8 Pro vs iPhone 15 Pro", + "author": "Dieter Bohn", + "metrics": { + "views": 280, + "comments": 32, + "likes": 85 + } + }, + { + "postId": "rt4", + "title": "The Best Laptops of 2024", + "author": "Monica Chin", + "metrics": { + "views": 240, + "comments": 28, + "likes": 72 + } + }, + { + "postId": "rt5", + "title": "Microsoft Surface Laptop Studio 2 Review", + "author": "Tom Warren", + "metrics": { + "views": 210, + "comments": 25, + "likes": 65 + } + }, + { + "postId": "rt6", + "title": "Samsung Galaxy S24 Ultra: Hands-On", + "author": "Alex Cranz", + "metrics": { + "views": 180, + "comments": 22, + "likes": 58 + } + }, + { + "postId": "rt7", + "title": "Steam Deck OLED Review", + "author": "Adi Robertson", + "metrics": { + "views": 150, + "comments": 18, + "likes": 48 + } + }, + { + "postId": "rt8", + "title": "Meta Quest 3 vs PSVR 2", + "author": "Adi Robertson", + "metrics": { + "views": 130, + "comments": 15, + "likes": 42 + } + }, + { + "pageId": "rtp1", + "title": "About The Verge", + "author": "Editorial Team", + "metrics": { + "views": 120, + "comments": 0, + "likes": 15, + "visitors": 96, + "bounceRate": 60, + "timeOnSite": 90 + } + }, + { + "postId": "rt9", + "title": "Nothing Phone (2) Review", + "author": "Jay Peters", + "metrics": { + "views": 110, + "comments": 12, + "likes": 35 + } + }, + { + "postId": "rt10", + "title": "Framework Laptop 16: The Ultimate Modular PC", + "author": "Monica Chin", + "metrics": { + "views": 95, + "comments": 10, + "likes": 28 + } + }, + { + "pageId": "rtp2", + "title": "Contact Us", + "author": "Support Team", + "metrics": { + "views": 95, + "comments": 0, + "likes": 8, + "visitors": 76, + "bounceRate": 65, + "timeOnSite": 75 + } + }, + { + "postId": "rt11", + "title": "iPhone 15 Pro Max: Six Months Later", + "author": "David Pierce", + "metrics": { + "views": 85, + "comments": 8, + "likes": 22 + } + }, + { + "pageId": "rtp3", + "title": "Newsletter Signup", + "author": "Marketing Team", + "metrics": { + "views": 80, + "comments": 2, + "likes": 12, + "visitors": 64, + "bounceRate": 55, + "timeOnSite": 120 + } + }, + { + "postId": "rt12", + "title": "The Best Smart Home Devices of 2024", + "author": "Emma Roth", + "metrics": { + "views": 75, + "comments": 6, + "likes": 18 + } + }, + { + "pageId": "rtp4", + "title": "Privacy Policy", + "author": "Legal Team", + "metrics": { + "views": 65, + "comments": 1, + "likes": 5, + "visitors": 52, + "bounceRate": 70, + "timeOnSite": 60 + } + }, + { + "pageId": "rtp5", + "title": "Terms of Service", + "author": "Legal Team", + "metrics": { + "views": 55, + "comments": 0, + "likes": 3, + "visitors": 44, + "bounceRate": 72, + "timeOnSite": 55 + } + }, + { + "pageId": "rtp6", + "title": "Advertise with Us", + "author": "Sales Team", + "metrics": { + "views": 45, + "comments": 0, + "likes": 2, + "visitors": 36, + "bounceRate": 58, + "timeOnSite": 110 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-referrers.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-referrers.json new file mode 100644 index 000000000000..0f0d0218df1b --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-referrers.json @@ -0,0 +1,134 @@ +[ + { + "name": "Google Search", + "domain": "google.com", + "iconURL": "https://www.google.com/favicon.ico", + "isSpam": false, + "children": [ + { + "name": "wordpress development tutorial", + "domain": "google.com", + "iconURL": "https://www.google.com/favicon.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 85 + } + }, + { + "name": "swift programming blog", + "domain": "google.com", + "iconURL": "https://www.google.com/favicon.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 75 + } + }, + { + "name": "ios app development", + "domain": "google.com", + "iconURL": "https://www.google.com/favicon.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 60 + } + } + ], + "metrics": { + "views": 220 + } + }, + { + "name": "Twitter/X", + "domain": "twitter.com", + "iconURL": "https://abs.twimg.com/favicons/twitter.3.ico", + "isSpam": false, + "children": [ + { + "name": "@wordpress shared your post", + "domain": "twitter.com", + "iconURL": "https://abs.twimg.com/favicons/twitter.3.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 100 + } + }, + { + "name": "@techblogger mentioned you", + "domain": "twitter.com", + "iconURL": "https://abs.twimg.com/favicons/twitter.3.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 60 + } + } + ], + "metrics": { + "views": 160 + } + }, + { + "name": "Reddit", + "domain": "reddit.com", + "iconURL": "https://www.redditstatic.com/desktop2x/img/favicon/favicon-32x32.png", + "isSpam": false, + "children": [], + "metrics": { + "views": 130 + } + }, + { + "name": "Hacker News", + "domain": "news.ycombinator.com", + "iconURL": "https://news.ycombinator.com/favicon.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 100 + } + }, + { + "name": "Direct Traffic", + "domain": "direct", + "iconURL": null, + "isSpam": false, + "children": [], + "metrics": { + "views": 85 + } + }, + { + "name": "LinkedIn", + "domain": "linkedin.com", + "iconURL": "https://static.licdn.com/sc/h/al2o9zrvru7aqj8e1x2rzsrca", + "isSpam": false, + "children": [], + "metrics": { + "views": 70 + } + }, + { + "name": "Facebook", + "domain": "facebook.com", + "iconURL": "https://static.xx.fbcdn.net/rsrc.php/yD/r/d4ZIVX-5C-b.ico", + "isSpam": false, + "children": [], + "metrics": { + "views": 60 + } + }, + { + "name": "YouTube", + "domain": "youtube.com", + "iconURL": "https://www.youtube.com/s/desktop/8a0c81e8/img/favicon_32x32.png", + "isSpam": false, + "children": [], + "metrics": { + "views": 50 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-search-terms.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-search-terms.json new file mode 100644 index 000000000000..1606cc301315 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-search-terms.json @@ -0,0 +1,44 @@ +[ + { + "term": "swiftui tutorial", + "metrics": { + "views": 32, + "visitors": 25 + } + }, + { + "term": "ios development guide", + "metrics": { + "views": 28, + "visitors": 22 + } + }, + { + "term": "swift async await", + "metrics": { + "views": 24, + "visitors": 19 + } + }, + { + "term": "xcode tips", + "metrics": { + "views": 20, + "visitors": 16 + } + }, + { + "term": "swift performance", + "metrics": { + "views": 16, + "visitors": 13 + } + }, + { + "term": "ios app architecture", + "metrics": { + "views": 12, + "visitors": 10 + } + } +] \ No newline at end of file diff --git a/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-videos.json b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-videos.json new file mode 100644 index 000000000000..ecc993a84a54 --- /dev/null +++ b/Modules/Sources/JetpackStats/Resources/Mocks/RealtimeData/realtime-videos.json @@ -0,0 +1,56 @@ +[ + { + "title": "Getting Started with SwiftUI", + "postId": "101", + "videoURL": "https://example.com/videos/swiftui-intro.mp4", + "metrics": { + "views": 45, + "likes": 5 + } + }, + { + "title": "iOS Development Best Practices", + "postId": "102", + "videoURL": "https://example.com/videos/best-practices.mp4", + "metrics": { + "views": 38, + "likes": 4 + } + }, + { + "title": "Advanced Swift Techniques", + "postId": "103", + "videoURL": "https://example.com/videos/advanced-swift.mp4", + "metrics": { + "views": 32, + "likes": 3 + } + }, + { + "title": "Building Custom Views", + "postId": "104", + "videoURL": "https://example.com/videos/custom-views.mp4", + "metrics": { + "views": 26, + "likes": 2 + } + }, + { + "title": "App Performance Optimization", + "postId": "105", + "videoURL": "https://example.com/videos/performance.mp4", + "metrics": { + "views": 20, + "likes": 2 + } + }, + { + "title": "Debugging Like a Pro", + "postId": "106", + "videoURL": "https://example.com/videos/debugging.mp4", + "metrics": { + "views": 15, + "likes": 1 + } + } +]