4b94e9c65e
> Good lord what is happening in there Previously the contents of the Web Push API payloads closely resembled the structure of JavaScript's [Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notification). But now that the API is open to non-browser apps, and given that there is no required coupling between contents of the payload and a Notification object, here is how I changed the payload: ```json { "access_token": "...", "preferred_locale": "en", "notification_id": "12345", "notification_type": "follow", "title": "So and so followed you", "body": "This is my bio", "icon": "https://example.com/avatar.png" } ``` The title, body and icon attributes are included as a fallback so you can construct a minimal notification if you cannot perform a network request to the API to get more data.
30 lines
1 KiB
JavaScript
30 lines
1 KiB
JavaScript
/* @preval */
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const filtered = {};
|
|
const filenames = fs.readdirSync(path.resolve(__dirname, '../locales'));
|
|
|
|
filenames.forEach(filename => {
|
|
if (!filename.match(/\.json$/) || filename.match(/defaultMessages|whitelist/)) return;
|
|
|
|
const content = fs.readFileSync(path.resolve(__dirname, `../locales/${filename}`), 'utf-8');
|
|
const full = JSON.parse(content);
|
|
const locale = filename.split('.')[0];
|
|
|
|
filtered[locale] = {
|
|
'notification.favourite': full['notification.favourite'] || '',
|
|
'notification.follow': full['notification.follow'] || '',
|
|
'notification.mention': full['notification.mention'] || '',
|
|
'notification.reblog': full['notification.reblog'] || '',
|
|
|
|
'status.show_more': full['status.show_more'] || '',
|
|
'status.reblog': full['status.reblog'] || '',
|
|
'status.favourite': full['status.favourite'] || '',
|
|
|
|
'notifications.group': full['notifications.group'] || '',
|
|
};
|
|
});
|
|
|
|
module.exports = JSON.parse(JSON.stringify(filtered));
|