ghost 5.121.0 → 5.125.0
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/components/tryghost-i18n-5.125.0.tgz +0 -0
- package/core/built/admin/assets/admin-x-activitypub/admin-x-activitypub.js +14017 -14035
- package/core/built/admin/assets/admin-x-settings/{CodeEditorView-03f7aa4d.mjs → CodeEditorView-aba69ca9.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{index-eea9098a.mjs → index-87586072.mjs} +4 -4
- package/core/built/admin/assets/admin-x-settings/{index-b0484a21.mjs → index-b3cfde97.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{modals-85a92c66.mjs → modals-890d62ee.mjs} +1669 -1618
- package/core/built/admin/assets/{chunk.383.77dd3c8cbac5f464c6da.js → chunk.383.3dcd1102188f9d5e0467.js} +7 -7
- package/core/built/admin/assets/{chunk.524.22c1abc09947848be03d.js → chunk.524.941ec85306915cc99529.js} +6 -6
- package/core/built/admin/assets/{chunk.582.a7cbc2ce76922c8870bc.js → chunk.582.8630d65a7f549773e183.js} +7 -7
- package/core/built/admin/assets/{ghost-1c91950af9d6f9cee826820f056e0025.js → ghost-f727599c675fb8dac2cbfae7bec4d7cc.js} +141 -132
- package/core/built/admin/assets/posts/posts.js +71680 -41896
- package/core/built/admin/assets/stats/stats.js +35194 -35499
- package/core/built/admin/index.html +4 -4
- package/core/frontend/public/ghost-stats.min.js +3 -3
- package/core/frontend/src/ghost-stats/ghost-stats.js +0 -12
- package/core/server/api/endpoints/previews.js +25 -4
- package/core/server/api/endpoints/stats.js +50 -0
- package/core/server/data/importer/importers/data/SettingsImporter.js +1 -1
- package/core/server/data/migrations/versions/5.122/2025-06-03-19-32-57-change-default-for-newsletters-button-color.js +37 -0
- package/core/server/data/migrations/versions/5.124/2025-06-06-23-12-11-create-site-uuid-setting.js +16 -0
- package/core/server/data/schema/default-settings/default-settings.json +5 -0
- package/core/server/data/schema/schema.js +1 -1
- package/core/server/data/tinybird/endpoints/api_top_pages.pipe +1 -0
- package/core/server/data/tinybird/fixtures/analytics_events.ndjson +31 -31
- package/core/server/data/tinybird/pipes/mv_hits.pipe +51 -11
- package/core/server/data/tinybird/tests/api_top_pages.yaml +7 -0
- package/core/server/models/newsletter.js +1 -0
- package/core/server/models/settings.js +5 -2
- package/core/server/services/adapter-manager/AdapterManager.js +5 -1
- package/core/server/services/comments/CommentsServiceEmails.js +8 -6
- package/core/server/services/email-service/EmailRenderer.js +80 -23
- package/core/server/services/email-service/email-templates/partials/paywall.hbs +56 -33
- package/core/server/services/email-service/email-templates/partials/styles.hbs +129 -4
- package/core/server/services/email-service/email-templates/template.hbs +1 -1
- package/core/server/services/koenig/node-renderers/button-renderer.js +1 -21
- package/core/server/services/koenig/node-renderers/call-to-action-renderer.js +10 -44
- package/core/server/services/koenig/node-renderers/header-v2-renderer.js +15 -31
- package/core/server/services/koenig/node-renderers/horizontalrule-renderer.js +43 -2
- package/core/server/services/koenig/node-renderers/product-renderer.js +0 -1
- package/core/server/services/koenig/render-partials/email-button.js +127 -21
- package/core/server/services/koenig/render-utils/stylex.js +104 -0
- package/core/server/services/settings/settings-utils.js +39 -1
- package/core/server/services/stats/MembersStatsService.js +129 -5
- package/core/server/services/stats/PostsStatsService.js +281 -1
- package/core/server/services/stats/StatsService.js +23 -1
- package/core/server/services/stats/utils/tinybird.js +25 -5
- package/core/server/web/api/endpoints/admin/routes.js +2 -0
- package/package.json +13 -13
- package/tsconfig.tsbuildinfo +1 -1
- package/yarn.lock +851 -310
- package/components/tryghost-i18n-5.121.0.tgz +0 -0
- package/core/frontend/src/utils/session-storage.js +0 -68
- /package/core/built/admin/assets/{chunk.383.77dd3c8cbac5f464c6da.js.LICENSE.txt → chunk.383.3dcd1102188f9d5e0467.js.LICENSE.txt} +0 -0
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
{"timestamp":"2100-01-01 00:06:15","session_id":"e5c37e25-ed9e-4940-a2be-bc49149d991a","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"AhrefsBot/7.0; +http://ahrefs.com/robot/","locale":"en-GB","location":"GB","referrer":"https://petty-queen.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
2
|
-
{"timestamp":"2100-01-01 01:21:17","session_id":"1267b782-e5a1-4334-8cf6-771d72bbc28e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"d4678fdf-824c-4d5f-a5fe-c713d409faac","member_status":"free","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.2.1 (KHTML, like Gecko) Chrome/13.0.868.0 Safari/533.2.1","locale":"es-ES","location":"ES","referrer":"","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
3
|
-
{"timestamp":"2100-01-01 01:39:48","session_id":"1267b782-e5a1-4334-8cf6-771d72bbc28e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"d4678fdf-824c-4d5f-a5fe-c713d409faac","member_status":"free","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.2.1 (KHTML, like Gecko) Chrome/13.0.868.0 Safari/533.2.1","locale":"es-ES","location":"ES","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
4
|
-
{"timestamp":"2100-01-01 02:21:13","session_id":"2a31286e-53b4-41da-a7fd-89d966072af5","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"df8343d2-e89d-45b7-ba12-988734efcc56","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0)","locale":"en-GB","location":"GB","referrer":"https://www.bing.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
5
|
-
{"timestamp":"2100-01-01 02:31:43","session_id":"2a31286e-53b4-41da-a7fd-89d966072af5","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"df8343d2-e89d-45b7-ba12-988734efcc56","member_status":"free","post_uuid":"undefined","user-agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0)","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
6
|
-
{"timestamp":"2100-01-02 00:59:45","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://www.google.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
7
|
-
{"timestamp":"2100-01-02 01:12:56","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
8
|
-
{"timestamp":"2100-01-02 01:16:52","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
9
|
-
{"timestamp":"2100-01-03 00:01:24","session_id":"9c15f99e-c8b1-4145-a073-e7f8649d2fa4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"4c14393f-d792-403e-bbdc-aa5af3abbdd9","member_status":"free","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows NT 5.0; rv:10.7) Gecko/20100101 Firefox/10.7.1","locale":"en-US","location":"US","referrer":"https://duckduckgo.com/","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
10
|
-
{"timestamp":"2100-01-03 01:28:09","session_id":"9c15f99e-c8b1-4145-a073-e7f8649d2fa4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"4c14393f-d792-403e-bbdc-aa5af3abbdd9","member_status":"free","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows NT 5.0; rv:10.7) Gecko/20100101 Firefox/10.7.1","locale":"en-US","location":"US","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
11
|
-
{"timestamp":"2100-01-03 01:41:44","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://www.bing.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
12
|
-
{"timestamp":"2100-01-03 01:53:31","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
13
|
-
{"timestamp":"2100-01-03 02:00:19","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
14
|
-
{"timestamp":"2100-01-03 02:51:20","session_id":"50785df1-3232-4ff7-8495-d93e06d63f5c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"3675e750-09bf-44c9-bc3f-b9aebac37c5d","member_status":"paid","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows NT 6.3; rv:14.7) Gecko/20100101 Firefox/14.7.1","locale":"fr-FR","location":"FR","referrer":"https://search.yahoo.com/","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
15
|
-
{"timestamp":"2100-01-03 03:52:39","session_id":"50785df1-3232-4ff7-8495-d93e06d63f5c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"3675e750-09bf-44c9-bc3f-b9aebac37c5d","member_status":"paid","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows NT 6.3; rv:14.7) Gecko/20100101 Firefox/14.7.1","locale":"fr-FR","location":"FR","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
16
|
-
{"timestamp":"2100-01-04 00:25:39","session_id":"59478d87-ce95-40fd-a081-65d1e497bcfc","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"97c79891-2ae9-4eb2-ada8-89d2a998747d","member_status":"paid","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.3) AppleWebKit/531.2.2 (KHTML, like Gecko) Chrome/31.0.808.0 Safari/531.2.2","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
17
|
-
{"timestamp":"2100-01-04 01:10:48","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
18
|
-
{"timestamp":"2100-01-04 01:16:10","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
19
|
-
{"timestamp":"2100-01-04 01:20:15","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
20
|
-
{"timestamp":"2100-01-04 01:35:41","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
21
|
-
{"timestamp":"2100-01-04 01:36:33","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
22
|
-
{"timestamp":"2100-01-04 01:54:50","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
23
|
-
{"timestamp":"2100-01-05 01:51:00","session_id":"d8e4622f-95cc-4fba-b31b-f38ff72e0975","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"75a190eb-62da-46d2-972d-a9763c954f42","member_status":"paid","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/3.0)","locale":"es-ES","location":"ES","referrer":"","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
24
|
-
{"timestamp":"2100-01-05 01:53:03","session_id":"d8e4622f-95cc-4fba-b31b-f38ff72e0975","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"75a190eb-62da-46d2-972d-a9763c954f42","member_status":"paid","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/3.0)","locale":"es-ES","location":"ES","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
25
|
-
{"timestamp":"2100-01-05 00:29:59","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://www.baidu.com/","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
26
|
-
{"timestamp":"2100-01-05 00:37:42","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"undefined","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/"}}
|
|
27
|
-
{"timestamp":"2100-01-05 00:38:12","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
28
|
-
{"timestamp":"2100-01-06 00:51:26","session_id":"8d975128-2027-40c6-834a-972cc0293d21","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"b7e0fca6-27ce-46c0-af57-c591f20dcd51","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7 rv:2.0; KW) AppleWebKit/537.0.1 (KHTML, like Gecko) Version/5.0.10 Safari/537.0.1","locale":"fr-FR","location":"FR","referrer":"","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
29
|
-
{"timestamp":"2100-01-06 01:28:38","session_id":"61a2896b-7cf8-4853-86a6-a0e4f87c1e21","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/533.1.0 (KHTML, like Gecko) Chrome/18.0.852.0 Safari/533.1.0","locale":"en-GB","location":"GB","referrer":"https://search.yahoo.com/","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
30
|
-
{"timestamp":"2100-01-07 01:44:10","session_id":"7f1e88e1-da8e-46df-bc69-d04fb29d603d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","user-agent":"Mozilla/5.0 (Windows NT 5.0; WOW64; rv:13.9) Gecko/20100101 Firefox/13.9.7","locale":"en-US","location":"US","referrer":"http://wilted-tick.com","pathname":"/about/","href":"https://my-ghost-site.com/about/"}}
|
|
31
|
-
{"timestamp":"2100-01-07 02:23:19","session_id":"98159299-8111-4dc8-9156-bb339fe9508c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1dd","user-agent":"Mozilla/5.0 (Windows NT 5.0; WOW64; rv:13.9) Gecko/20100101 Firefox/13.9.7","locale":"en-US","location":"US","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/"}}
|
|
1
|
+
{"timestamp":"2100-01-01 00:06:15","session_id":"e5c37e25-ed9e-4940-a2be-bc49149d991a","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"AhrefsBot/7.0; +http://ahrefs.com/robot/","locale":"en-GB","location":"GB","referrer":"https://petty-queen.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://petty-queen.com"}}}
|
|
2
|
+
{"timestamp":"2100-01-01 01:21:17","session_id":"1267b782-e5a1-4334-8cf6-771d72bbc28e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"d4678fdf-824c-4d5f-a5fe-c713d409faac","member_status":"free","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.2.1 (KHTML, like Gecko) Chrome/13.0.868.0 Safari/533.2.1","locale":"es-ES","location":"ES","referrer":"","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":""}}}
|
|
3
|
+
{"timestamp":"2100-01-01 01:39:48","session_id":"1267b782-e5a1-4334-8cf6-771d72bbc28e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"d4678fdf-824c-4d5f-a5fe-c713d409faac","member_status":"free","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.2.1 (KHTML, like Gecko) Chrome/13.0.868.0 Safari/533.2.1","locale":"es-ES","location":"ES","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
4
|
+
{"timestamp":"2100-01-01 02:21:13","session_id":"2a31286e-53b4-41da-a7fd-89d966072af5","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"df8343d2-e89d-45b7-ba12-988734efcc56","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0)","locale":"en-GB","location":"GB","referrer":"https://www.bing.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://www.bing.com/"}}}
|
|
5
|
+
{"timestamp":"2100-01-01 02:31:43","session_id":"2a31286e-53b4-41da-a7fd-89d966072af5","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"df8343d2-e89d-45b7-ba12-988734efcc56","member_status":"free","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/4.0)","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
6
|
+
{"timestamp":"2100-01-02 00:59:45","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://www.google.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://www.google.com/"}}}
|
|
7
|
+
{"timestamp":"2100-01-02 01:12:56","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
8
|
+
{"timestamp":"2100-01-02 01:16:52","session_id":"f253b9b7-0a1a-4168-8fcf-b20a1668ce4d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"65bacac2-8122-4ed0-a11f-ac52aa82beb0","member_status":"paid","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows NT 5.3; Win64; x64; rv:11.6) Gecko/20100101 Firefox/11.6.2","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
9
|
+
{"timestamp":"2100-01-03 00:01:24","session_id":"9c15f99e-c8b1-4145-a073-e7f8649d2fa4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"4c14393f-d792-403e-bbdc-aa5af3abbdd9","member_status":"free","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows NT 5.0; rv:10.7) Gecko/20100101 Firefox/10.7.1","locale":"en-US","location":"US","referrer":"https://duckduckgo.com/","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://duckduckgo.com/"}}}
|
|
10
|
+
{"timestamp":"2100-01-03 01:28:09","session_id":"9c15f99e-c8b1-4145-a073-e7f8649d2fa4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"4c14393f-d792-403e-bbdc-aa5af3abbdd9","member_status":"free","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows NT 5.0; rv:10.7) Gecko/20100101 Firefox/10.7.1","locale":"en-US","location":"US","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
11
|
+
{"timestamp":"2100-01-03 01:41:44","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://www.bing.com/","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://www.bing.com/"}}}
|
|
12
|
+
{"timestamp":"2100-01-03 01:53:31","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
13
|
+
{"timestamp":"2100-01-03 02:00:19","session_id":"8a2461a8-91cd-4f01-b066-3de6dc946995","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"f4c738bc-7327-440c-8007-6a0b306c05e3","member_status":"comped","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.0) AppleWebKit/533.2.0 (KHTML, like Gecko) Chrome/39.0.887.0 Safari/533.2.0","locale":"de-DE","location":"DE","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
14
|
+
{"timestamp":"2100-01-03 02:51:20","session_id":"50785df1-3232-4ff7-8495-d93e06d63f5c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"3675e750-09bf-44c9-bc3f-b9aebac37c5d","member_status":"paid","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows NT 6.3; rv:14.7) Gecko/20100101 Firefox/14.7.1","locale":"fr-FR","location":"FR","referrer":"https://search.yahoo.com/","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://search.yahoo.com/"}}}
|
|
15
|
+
{"timestamp":"2100-01-03 03:52:39","session_id":"50785df1-3232-4ff7-8495-d93e06d63f5c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"3675e750-09bf-44c9-bc3f-b9aebac37c5d","member_status":"paid","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows NT 6.3; rv:14.7) Gecko/20100101 Firefox/14.7.1","locale":"fr-FR","location":"FR","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
16
|
+
{"timestamp":"2100-01-04 00:25:39","session_id":"59478d87-ce95-40fd-a081-65d1e497bcfc","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"97c79891-2ae9-4eb2-ada8-89d2a998747d","member_status":"paid","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.3) AppleWebKit/531.2.2 (KHTML, like Gecko) Chrome/31.0.808.0 Safari/531.2.2","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":""}}}
|
|
17
|
+
{"timestamp":"2100-01-04 01:10:48","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":""}}}
|
|
18
|
+
{"timestamp":"2100-01-04 01:16:10","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
19
|
+
{"timestamp":"2100-01-04 01:20:15","session_id":"a6b6c4e6-19e3-47a9-afc6-d9870592652e","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.2) AppleWebKit/533.0.1 (KHTML, like Gecko) Chrome/32.0.856.0 Safari/533.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
20
|
+
{"timestamp":"2100-01-04 01:35:41","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":""}}}
|
|
21
|
+
{"timestamp":"2100-01-04 01:36:33","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
22
|
+
{"timestamp":"2100-01-04 01:54:50","session_id":"e22a7f6f-28da-4715-a199-6f0338b593d4","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"5369031a-a5cd-4176-83d8-d6ffcb3bcfb8","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 6.1) AppleWebKit/538.0.1 (KHTML, like Gecko) Chrome/16.0.814.0 Safari/538.0.1","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
23
|
+
{"timestamp":"2100-01-05 01:51:00","session_id":"d8e4622f-95cc-4fba-b31b-f38ff72e0975","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"75a190eb-62da-46d2-972d-a9763c954f42","member_status":"paid","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/3.0)","locale":"es-ES","location":"ES","referrer":"","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":""}}}
|
|
24
|
+
{"timestamp":"2100-01-05 01:53:03","session_id":"d8e4622f-95cc-4fba-b31b-f38ff72e0975","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"75a190eb-62da-46d2-972d-a9763c954f42","member_status":"paid","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/3.0)","locale":"es-ES","location":"ES","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
25
|
+
{"timestamp":"2100-01-05 00:29:59","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://www.baidu.com/","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://www.baidu.com/"}}}
|
|
26
|
+
{"timestamp":"2100-01-05 00:37:42","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"undefined","post_type":"","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/","href":"https://my-ghost-site.com/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
27
|
+
{"timestamp":"2100-01-05 00:38:12","session_id":"490475f1-1fb7-4672-9edd-daa1b411b5f9","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/532.2.0 (KHTML, like Gecko) Chrome/20.0.898.0 Safari/532.2.0","locale":"en-GB","location":"GB","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
28
|
+
{"timestamp":"2100-01-06 00:51:26","session_id":"8d975128-2027-40c6-834a-972cc0293d21","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"b7e0fca6-27ce-46c0-af57-c591f20dcd51","member_status":"free","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_7 rv:2.0; KW) AppleWebKit/537.0.1 (KHTML, like Gecko) Version/5.0.10 Safari/537.0.1","locale":"fr-FR","location":"FR","referrer":"","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":""}}}
|
|
29
|
+
{"timestamp":"2100-01-06 01:28:38","session_id":"61a2896b-7cf8-4853-86a6-a0e4f87c1e21","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","post_type":"post","user-agent":"Mozilla/5.0 (Windows; U; Windows NT 5.1) AppleWebKit/533.1.0 (KHTML, like Gecko) Chrome/18.0.852.0 Safari/533.1.0","locale":"en-GB","location":"GB","referrer":"https://search.yahoo.com/","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://search.yahoo.com/"}}}
|
|
30
|
+
{"timestamp":"2100-01-07 01:44:10","session_id":"7f1e88e1-da8e-46df-bc69-d04fb29d603d","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","post_type":"page","user-agent":"Mozilla/5.0 (Windows NT 5.0; WOW64; rv:13.9) Gecko/20100101 Firefox/13.9.7","locale":"en-US","location":"US","referrer":"http://wilted-tick.com","pathname":"/about/","href":"https://my-ghost-site.com/about/","meta":{"referrerSource":"http://wilted-tick.com"}}}
|
|
31
|
+
{"timestamp":"2100-01-07 02:23:19","session_id":"98159299-8111-4dc8-9156-bb339fe9508c","action":"page_hit","version":"1","payload":{"site_uuid":"mock_site_uuid","member_uuid":"undefined","member_status":"undefined","post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1dd","post_type":"post","user-agent":"Mozilla/5.0 (Windows NT 5.0; WOW64; rv:13.9) Gecko/20100101 Firefox/13.9.7","locale":"en-US","location":"US","referrer":"https://my-ghost-site.com","pathname":"/blog/hello-world/","href":"https://my-ghost-site.com/blog/hello-world/","meta":{"referrerSource":"https://my-ghost-site.com"}}}
|
|
@@ -7,10 +7,11 @@ SQL >
|
|
|
7
7
|
coalesce(session_id, '0') as session_id,
|
|
8
8
|
toString(payload.locale) as locale,
|
|
9
9
|
toString(payload.location) as location,
|
|
10
|
-
case -- this avoids really crappy null handling by the JSON type and downstream fns
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
end as referrer,
|
|
10
|
+
# case -- this avoids really crappy null handling by the JSON type and downstream fns
|
|
11
|
+
# when isNull(payload.referrer) then ''
|
|
12
|
+
# else toString(payload.referrer)
|
|
13
|
+
# end as referrer,
|
|
14
|
+
toString(payload.meta.referrerSource) as referrer,
|
|
14
15
|
toString(payload.pathname) as pathname,
|
|
15
16
|
toString(payload.href) as href,
|
|
16
17
|
site_uuid,
|
|
@@ -39,10 +40,51 @@ SQL >
|
|
|
39
40
|
post_type,
|
|
40
41
|
location,
|
|
41
42
|
case
|
|
42
|
-
|
|
43
|
-
--
|
|
44
|
-
when
|
|
45
|
-
|
|
43
|
+
when referrer = '' then ''
|
|
44
|
+
-- Social Media Consolidation
|
|
45
|
+
when referrer IN ('Facebook', 'www.facebook.com', 'l.facebook.com', 'lm.facebook.com', 'm.facebook.com', 'facebook') then 'Facebook'
|
|
46
|
+
when referrer IN ('Twitter', 'x.com', 'com.twitter.android') then 'Twitter'
|
|
47
|
+
when referrer IN ('go.bsky.app', 'bsky', 'bsky.app') then 'Bluesky'
|
|
48
|
+
when referrer IN ('Instagram', 'www.instagram.com') then 'Instagram'
|
|
49
|
+
when referrer IN ('LinkedIn', 'LINKEDIN_COMPANY') then 'LinkedIn'
|
|
50
|
+
when referrer IN ('l.threads.com') then 'Threads'
|
|
51
|
+
|
|
52
|
+
-- Reddit Ecosystem
|
|
53
|
+
when referrer IN ('www.reddit.com', 'out.reddit.com', 'old.reddit.com', 'com.reddit.frontpage') then 'Reddit'
|
|
54
|
+
|
|
55
|
+
-- Search Engines (keep distinctions)
|
|
56
|
+
when referrer IN ('search.brave.com') then 'Brave Search'
|
|
57
|
+
when referrer IN ('www.ecosia.org') then 'Ecosia'
|
|
58
|
+
|
|
59
|
+
-- Email Services
|
|
60
|
+
when referrer IN ('Gmail', 'com.google.android.gm', 'mail.google.com') then 'Gmail'
|
|
61
|
+
when referrer IN ('Outlook.com') then 'Outlook'
|
|
62
|
+
when referrer IN ('Yahoo!', 'www.yahoo.com', 'Yahoo! Mail', 'r.search.yahoo.com') then 'Yahoo!'
|
|
63
|
+
when referrer IN ('AOL Mail') then 'AOL Mail'
|
|
64
|
+
|
|
65
|
+
-- Content Platforms
|
|
66
|
+
when referrer IN ('flipboard', 'flipboard.com', 'flipboard.app') then 'Flipboard'
|
|
67
|
+
when referrer IN ('substack', 'substack.com') then 'Substack'
|
|
68
|
+
when referrer IN ('Ghost.org', 'ghost.org') then 'Ghost'
|
|
69
|
+
when referrer IN ('buffer') then 'Buffer'
|
|
70
|
+
when referrer IN ('Taboola') then 'Taboola'
|
|
71
|
+
when referrer IN ('AppNexus') then 'AppNexus'
|
|
72
|
+
|
|
73
|
+
-- Wikipedia
|
|
74
|
+
when referrer IN ('en.wikipedia.org', 'en.m.wikipedia.org') then 'Wikipedia'
|
|
75
|
+
|
|
76
|
+
-- Mastodon Network
|
|
77
|
+
when referrer IN ('mastodon.social', 'mastodon.online', 'org.joinmastodon.android', 'phanpy.social', 'dev.phanpy.social') then 'Mastodon'
|
|
78
|
+
|
|
79
|
+
-- News Aggregators
|
|
80
|
+
when referrer IN ('www.memeorandum.com', 'memeorandum.com') then 'Memeorandum'
|
|
81
|
+
when referrer IN ('ground.news') then 'Ground News'
|
|
82
|
+
when referrer IN ('apple.news') then 'Apple News'
|
|
83
|
+
when referrer IN ('www.smartnews.com') then 'SmartNews'
|
|
84
|
+
|
|
85
|
+
-- Keep other sources as-is
|
|
86
|
+
when domainWithoutWWW(referrer) != '' then domainWithoutWWW(referrer)
|
|
87
|
+
else referrer
|
|
46
88
|
end as source,
|
|
47
89
|
pathname,
|
|
48
90
|
href,
|
|
@@ -84,6 +126,4 @@ SQL >
|
|
|
84
126
|
FROM mv_hits_0
|
|
85
127
|
|
|
86
128
|
TYPE materialized
|
|
87
|
-
DATASOURCE _mv_hits
|
|
88
|
-
|
|
89
|
-
|
|
129
|
+
DATASOURCE _mv_hits
|
|
@@ -96,3 +96,10 @@
|
|
|
96
96
|
{"post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1fc","pathname":"\/about\/","visits":2}
|
|
97
97
|
{"post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","pathname":"\/blog\/hello-world\/","visits":1}
|
|
98
98
|
{"post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1dd","pathname":"\/blog\/hello-world\/","visits":1}
|
|
99
|
+
|
|
100
|
+
- name: Test with post_type - post
|
|
101
|
+
description: Test with post_type - post
|
|
102
|
+
parameters: site_uuid=mock_site_uuid&date_from=2100-01-01&date_to=2100-01-07&timezone=Etc/UTC&post_type=post
|
|
103
|
+
expected_result: |
|
|
104
|
+
{"post_uuid":"6b8635fb-292f-4422-9fe4-d76cfab2ba31","pathname":"\/blog\/hello-world\/","visits":9}
|
|
105
|
+
{"post_uuid":"06b1b0c9-fb53-4a15-a060-3db3fde7b1dd","pathname":"\/blog\/hello-world\/","visits":1}
|
|
@@ -8,6 +8,7 @@ const errors = require('@tryghost/errors');
|
|
|
8
8
|
const validator = require('@tryghost/validator');
|
|
9
9
|
const urlUtils = require('../../shared/url-utils');
|
|
10
10
|
const {WRITABLE_KEYS_ALLOWLIST} = require('../../shared/labs');
|
|
11
|
+
const {getOrGenerateSiteUuid} = require('../services/settings/settings-utils');
|
|
11
12
|
|
|
12
13
|
const messages = {
|
|
13
14
|
valueCannotBeBlank: 'Value in [settings.key] cannot be blank.',
|
|
@@ -57,7 +58,8 @@ function parseDefaultSettings() {
|
|
|
57
58
|
members_private_key: () => getMembersKey('private'),
|
|
58
59
|
members_email_auth_secret: () => crypto.randomBytes(64).toString('hex'),
|
|
59
60
|
ghost_public_key: () => getGhostKey('public'),
|
|
60
|
-
ghost_private_key: () => getGhostKey('private')
|
|
61
|
+
ghost_private_key: () => getGhostKey('private'),
|
|
62
|
+
site_uuid: () => getOrGenerateSiteUuid()
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
_.each(defaultSettingsInCategories, function each(settings, categoryName) {
|
|
@@ -452,5 +454,6 @@ Settings = ghostBookshelf.Model.extend({
|
|
|
452
454
|
});
|
|
453
455
|
|
|
454
456
|
module.exports = {
|
|
455
|
-
Settings: ghostBookshelf.model('Settings', Settings)
|
|
457
|
+
Settings: ghostBookshelf.model('Settings', Settings),
|
|
458
|
+
getOrGenerateSiteUuid: getOrGenerateSiteUuid
|
|
456
459
|
};
|
|
@@ -102,7 +102,11 @@ module.exports = class AdapterManager {
|
|
|
102
102
|
/** @type AdapterConstructor */
|
|
103
103
|
let Adapter;
|
|
104
104
|
for (const pathToAdapters of this.pathsToAdapters) {
|
|
105
|
-
|
|
105
|
+
let pathToAdapter = path.join(pathToAdapters, adapterType, adapterClassName);
|
|
106
|
+
if (pathToAdapters === '') {
|
|
107
|
+
// We are loading from node_modules, we can remove the `adapterType` prefix
|
|
108
|
+
pathToAdapter = path.join(pathToAdapters, adapterClassName);
|
|
109
|
+
}
|
|
106
110
|
try {
|
|
107
111
|
Adapter = this.loadAdapterFromPath(pathToAdapter);
|
|
108
112
|
if (Adapter) {
|
|
@@ -73,16 +73,18 @@ class CommentsServiceEmails {
|
|
|
73
73
|
return;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
+
const memberId = reply.get('member_id');
|
|
77
|
+
|
|
76
78
|
// Don't send a notification if you reply to your own comment
|
|
77
|
-
if (parentMember.id ===
|
|
79
|
+
if (parentMember.id === memberId) {
|
|
78
80
|
return;
|
|
79
81
|
}
|
|
80
82
|
|
|
81
|
-
const
|
|
83
|
+
const parentMemberEmail = parentMember.get('email');
|
|
82
84
|
const subject = '↪️ New reply to your comment on ' + this.settingsCache.get('title');
|
|
83
85
|
|
|
84
86
|
const post = await this.models.Post.findOne({id: reply.get('post_id')});
|
|
85
|
-
const member = await this.models.Member.findOne({id:
|
|
87
|
+
const member = await this.models.Member.findOne({id: memberId});
|
|
86
88
|
|
|
87
89
|
const memberName = member.get('name') || 'Anonymous';
|
|
88
90
|
|
|
@@ -99,14 +101,14 @@ class CommentsServiceEmails {
|
|
|
99
101
|
memberInitials: this.extractInitials(memberName),
|
|
100
102
|
accentColor: this.settingsCache.get('accent_color'),
|
|
101
103
|
fromEmail: this.notificationFromAddress,
|
|
102
|
-
toEmail:
|
|
103
|
-
profileUrl: emailService.renderer.createUnsubscribeUrl(
|
|
104
|
+
toEmail: parentMemberEmail,
|
|
105
|
+
profileUrl: emailService.renderer.createUnsubscribeUrl(parentMember.get('uuid'), {comments: true})
|
|
104
106
|
};
|
|
105
107
|
|
|
106
108
|
const {html, text} = await this.renderEmailTemplate('new-comment-reply', templateData);
|
|
107
109
|
|
|
108
110
|
return this.sendMail({
|
|
109
|
-
to,
|
|
111
|
+
to: parentMemberEmail,
|
|
110
112
|
subject,
|
|
111
113
|
html,
|
|
112
114
|
text
|
|
@@ -13,6 +13,8 @@ const {registerHelpers} = require('./helpers/register-helpers');
|
|
|
13
13
|
const crypto = require('crypto');
|
|
14
14
|
|
|
15
15
|
const DEFAULT_LOCALE = 'en-gb';
|
|
16
|
+
const DEFAULT_ACCENT_COLOR = '#15212A';
|
|
17
|
+
const VALID_HEX_REGEX = /#([0-9a-f]{3}){1,2}$/i;
|
|
16
18
|
|
|
17
19
|
// Wrapper function so that i18next-parser can find these strings
|
|
18
20
|
const t = (x) => {
|
|
@@ -324,8 +326,15 @@ class EmailRenderer {
|
|
|
324
326
|
|
|
325
327
|
const labs = this.getLabs();
|
|
326
328
|
|
|
329
|
+
let accentColor = this.#settingsCache?.get('accent_color') || DEFAULT_ACCENT_COLOR;
|
|
330
|
+
if (!VALID_HEX_REGEX.test(accentColor)) {
|
|
331
|
+
accentColor = DEFAULT_ACCENT_COLOR;
|
|
332
|
+
}
|
|
333
|
+
|
|
327
334
|
if (labs?.isSet('emailCustomization') || labs?.isSet('emailCustomizationAlpha')) {
|
|
328
|
-
renderOptions.design = {
|
|
335
|
+
renderOptions.design = {
|
|
336
|
+
accentColor
|
|
337
|
+
};
|
|
329
338
|
}
|
|
330
339
|
|
|
331
340
|
const betaDesignOptions = {
|
|
@@ -335,7 +344,15 @@ class EmailRenderer {
|
|
|
335
344
|
linkStyle: newsletter?.get('link_style'),
|
|
336
345
|
imageCorners: newsletter?.get('image_corners'),
|
|
337
346
|
postTitleColor: newsletter?.get('post_title_color'),
|
|
338
|
-
sectionTitleColor: newsletter?.get('section_title_color')
|
|
347
|
+
sectionTitleColor: newsletter?.get('section_title_color'),
|
|
348
|
+
linkColor: newsletter?.get('link_color'),
|
|
349
|
+
// TODO:
|
|
350
|
+
// if the other options above have default or calculated values we
|
|
351
|
+
// should follow the same pattern as the options below to avoid
|
|
352
|
+
//duplicating magic values or logic in renderers
|
|
353
|
+
dividerColor: this.#getDividerColor(newsletter),
|
|
354
|
+
buttonColor: this.#getButtonColor(newsletter, accentColor),
|
|
355
|
+
buttonTextColor: this.#getButtonTextColor(newsletter, accentColor)
|
|
339
356
|
};
|
|
340
357
|
|
|
341
358
|
if (labs?.isSet('emailCustomization')) {
|
|
@@ -348,11 +365,7 @@ class EmailRenderer {
|
|
|
348
365
|
if (labs?.isSet('emailCustomizationAlpha')) {
|
|
349
366
|
renderOptions.design = {
|
|
350
367
|
...renderOptions.design,
|
|
351
|
-
...betaDesignOptions
|
|
352
|
-
// TODO:
|
|
353
|
-
// if the other options have default values we should follow the same pattern
|
|
354
|
-
// as the divider color to avoid duplicating magic values in renderers
|
|
355
|
-
dividerColor: this.#getDividerColor(newsletter)
|
|
368
|
+
...betaDesignOptions
|
|
356
369
|
};
|
|
357
370
|
}
|
|
358
371
|
|
|
@@ -932,14 +945,12 @@ class EmailRenderer {
|
|
|
932
945
|
/** @type {'light' | 'dark' | string | null} */
|
|
933
946
|
const value = newsletter.get('background_color');
|
|
934
947
|
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
if (validHex.test(value)) {
|
|
948
|
+
if (VALID_HEX_REGEX.test(value)) {
|
|
938
949
|
return value;
|
|
939
950
|
}
|
|
940
951
|
|
|
941
952
|
if (value === 'dark') {
|
|
942
|
-
return
|
|
953
|
+
return DEFAULT_ACCENT_COLOR;
|
|
943
954
|
}
|
|
944
955
|
|
|
945
956
|
// value === dark, value === null, value is not valid hex
|
|
@@ -950,9 +961,7 @@ class EmailRenderer {
|
|
|
950
961
|
/** @type {'accent' | 'auto' | string | null} */
|
|
951
962
|
const value = newsletter.get('post_title_color');
|
|
952
963
|
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
if (validHex.test(value)) {
|
|
964
|
+
if (VALID_HEX_REGEX.test(value)) {
|
|
956
965
|
return value;
|
|
957
966
|
}
|
|
958
967
|
|
|
@@ -973,9 +982,8 @@ class EmailRenderer {
|
|
|
973
982
|
|
|
974
983
|
/** @type {'accent' | 'auto' | string | null} */
|
|
975
984
|
const value = newsletter.get('section_title_color');
|
|
976
|
-
const validHex = /#([0-9a-f]{3}){1,2}$/i;
|
|
977
985
|
|
|
978
|
-
if (
|
|
986
|
+
if (VALID_HEX_REGEX.test(value)) {
|
|
979
987
|
return value;
|
|
980
988
|
}
|
|
981
989
|
|
|
@@ -1032,13 +1040,13 @@ class EmailRenderer {
|
|
|
1032
1040
|
#getDividerColor(newsletter) {
|
|
1033
1041
|
const labs = this.getLabs();
|
|
1034
1042
|
|
|
1035
|
-
if (labs?.isSet('emailCustomizationAlpha')) {
|
|
1043
|
+
if (labs?.isSet('emailCustomization') || labs?.isSet('emailCustomizationAlpha')) {
|
|
1036
1044
|
const value = newsletter?.get('divider_color');
|
|
1037
|
-
const validHex = /#([0-9a-f]{3}){1,2}$/i;
|
|
1038
1045
|
|
|
1039
1046
|
if (value === 'accent') {
|
|
1040
|
-
|
|
1041
|
-
|
|
1047
|
+
const accentColor = this.#settingsCache?.get('accent_color') || DEFAULT_ACCENT_COLOR;
|
|
1048
|
+
return VALID_HEX_REGEX.test(accentColor) ? accentColor : DEFAULT_ACCENT_COLOR;
|
|
1049
|
+
} else if (VALID_HEX_REGEX.test(value)) {
|
|
1042
1050
|
return value;
|
|
1043
1051
|
}
|
|
1044
1052
|
}
|
|
@@ -1047,13 +1055,58 @@ class EmailRenderer {
|
|
|
1047
1055
|
return '#e0e7eb';
|
|
1048
1056
|
}
|
|
1049
1057
|
|
|
1058
|
+
#getLinkColor(newsletter, accentColor) {
|
|
1059
|
+
const value = newsletter.get('link_color');
|
|
1060
|
+
|
|
1061
|
+
if (value === 'accent') {
|
|
1062
|
+
return accentColor;
|
|
1063
|
+
}
|
|
1064
|
+
|
|
1065
|
+
if (VALID_HEX_REGEX.test(value)) {
|
|
1066
|
+
return value;
|
|
1067
|
+
}
|
|
1068
|
+
|
|
1069
|
+
return accentColor; // default to accent color
|
|
1070
|
+
}
|
|
1071
|
+
|
|
1072
|
+
#getButtonColor(newsletter, accentColor) {
|
|
1073
|
+
/** @type {'accent' | 'auto' | string | null} */
|
|
1074
|
+
const buttonColor = newsletter?.get('button_color') || 'accent';
|
|
1075
|
+
|
|
1076
|
+
if (buttonColor === 'accent') {
|
|
1077
|
+
return accentColor;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
if (buttonColor === 'auto') {
|
|
1081
|
+
const backgroundColor = this.#getBackgroundColor(newsletter);
|
|
1082
|
+
return textColorForBackgroundColor(backgroundColor).hex();
|
|
1083
|
+
}
|
|
1084
|
+
|
|
1085
|
+
if (VALID_HEX_REGEX.test(buttonColor)) {
|
|
1086
|
+
return buttonColor;
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
return accentColor; // default to accent color
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
// white/black for dark/light button colors
|
|
1093
|
+
// outline buttons use button color as text color but that's handled in styles
|
|
1094
|
+
#getButtonTextColor(newsletter, accentColor) {
|
|
1095
|
+
const buttonColor = this.#getButtonColor(newsletter, accentColor);
|
|
1096
|
+
return textColorForBackgroundColor(buttonColor).hex();
|
|
1097
|
+
}
|
|
1098
|
+
|
|
1050
1099
|
/**
|
|
1051
1100
|
* @private
|
|
1052
1101
|
*/
|
|
1053
1102
|
async getTemplateData({post, newsletter, html, addPaywall, segment}) {
|
|
1054
1103
|
const labs = this.getLabs();
|
|
1055
1104
|
|
|
1056
|
-
let accentColor = this.#settingsCache.get('accent_color') ||
|
|
1105
|
+
let accentColor = this.#settingsCache.get('accent_color') || DEFAULT_ACCENT_COLOR;
|
|
1106
|
+
if (!VALID_HEX_REGEX.test(accentColor)) {
|
|
1107
|
+
accentColor = DEFAULT_ACCENT_COLOR;
|
|
1108
|
+
}
|
|
1109
|
+
|
|
1057
1110
|
let adjustedAccentColor;
|
|
1058
1111
|
let adjustedAccentContrastColor;
|
|
1059
1112
|
try {
|
|
@@ -1061,7 +1114,7 @@ class EmailRenderer {
|
|
|
1061
1114
|
adjustedAccentContrastColor = accentColor && textColorForBackgroundColor(adjustedAccentColor).hex();
|
|
1062
1115
|
} catch (e) {
|
|
1063
1116
|
logging.error(e);
|
|
1064
|
-
|
|
1117
|
+
adjustedAccentColor = accentColor;
|
|
1065
1118
|
}
|
|
1066
1119
|
|
|
1067
1120
|
const hasAnyEmailCustomization = labs.isSet('emailCustomization') || labs.isSet('emailCustomizationAlpha');
|
|
@@ -1073,10 +1126,12 @@ class EmailRenderer {
|
|
|
1073
1126
|
const titleStrongWeight = this.#getTitleStrongWeight(titleWeight);
|
|
1074
1127
|
const textColor = textColorForBackgroundColor(backgroundColor).hex();
|
|
1075
1128
|
const secondaryTextColor = textColorForBackgroundColor(backgroundColor).alpha(0.5).toString();
|
|
1076
|
-
const linkColor = backgroundIsDark ? '#ffffff' : accentColor;
|
|
1129
|
+
const linkColor = hasAnyEmailCustomization ? this.#getLinkColor(newsletter, accentColor) : backgroundIsDark ? '#ffffff' : accentColor;
|
|
1077
1130
|
const hasRoundedImageCorners = hasAnyEmailCustomization ? this.#getImageCorners(newsletter) : false;
|
|
1078
1131
|
const sectionTitleColor = hasAnyEmailCustomization ? this.#getSectionTitleColor(newsletter, accentColor) : null;
|
|
1079
1132
|
const dividerColor = this.#getDividerColor(newsletter);
|
|
1133
|
+
const buttonColor = this.#getButtonColor(newsletter, adjustedAccentColor);
|
|
1134
|
+
const buttonTextColor = this.#getButtonTextColor(newsletter, adjustedAccentColor);
|
|
1080
1135
|
|
|
1081
1136
|
let buttonBorderRadius = '6px';
|
|
1082
1137
|
if (hasAnyEmailCustomization) {
|
|
@@ -1240,6 +1295,8 @@ class EmailRenderer {
|
|
|
1240
1295
|
headerImageWidth,
|
|
1241
1296
|
showHeaderIcon: newsletter.get('show_header_icon') && this.#settingsCache.get('icon'),
|
|
1242
1297
|
dividerColor,
|
|
1298
|
+
buttonColor,
|
|
1299
|
+
buttonTextColor,
|
|
1243
1300
|
|
|
1244
1301
|
// TODO: consider moving these to newsletter property
|
|
1245
1302
|
showHeaderTitle: newsletter.get('show_header_title'),
|