From 0d6b1c79316dadb3b63f0f2a978ec50621a8418e Mon Sep 17 00:00:00 2001 From: Carlos SolĂ­s Date: Thu, 2 Dec 2021 22:18:54 -0600 Subject: Add recipe for Nextcloud News (#780) --- recipes/nextcloud-news/README.md | 23 +++++++++++++++++++++++ recipes/nextcloud-news/icon.svg | 2 ++ recipes/nextcloud-news/index.js | 1 + recipes/nextcloud-news/package.json | 14 ++++++++++++++ recipes/nextcloud-news/service.css | 12 ++++++++++++ recipes/nextcloud-news/webview.js | 18 ++++++++++++++++++ 6 files changed, 70 insertions(+) create mode 100644 recipes/nextcloud-news/README.md create mode 100644 recipes/nextcloud-news/icon.svg create mode 100644 recipes/nextcloud-news/index.js create mode 100644 recipes/nextcloud-news/package.json create mode 100644 recipes/nextcloud-news/service.css create mode 100644 recipes/nextcloud-news/webview.js diff --git a/recipes/nextcloud-news/README.md b/recipes/nextcloud-news/README.md new file mode 100644 index 0000000..2d09cf5 --- /dev/null +++ b/recipes/nextcloud-news/README.md @@ -0,0 +1,23 @@ +# Ferdi recipe for Nextcloud News + +Nextcloud News is a RSS news reading app for Nextcloud. + +To add Nextcloud News service to Ferdi, Nextcloud server address should be provided in the field "Custom server". + +## Credits + +This recipe is based on [`recipe-nextcloud-tasks`](https://github.com/meetfranz/recipe-nextcloud-tasks). + +Icons were sourced from (`favicon.svg`). + +## Links + +Ferdi: + +- [Ferdi](https://getferdi.com/) +- [Ferdi recipes](https://github.com/getferdi/recipes) + +Nextcloud: + +- [Nextcloud](https://nextcloud.com/) +- [Nextcloud News](https://apps.nextcloud.com/apps/news) diff --git a/recipes/nextcloud-news/icon.svg b/recipes/nextcloud-news/icon.svg new file mode 100644 index 0000000..c40109e --- /dev/null +++ b/recipes/nextcloud-news/icon.svg @@ -0,0 +1,2 @@ + +image/svg+xml \ No newline at end of file diff --git a/recipes/nextcloud-news/index.js b/recipes/nextcloud-news/index.js new file mode 100644 index 0000000..abe7b52 --- /dev/null +++ b/recipes/nextcloud-news/index.js @@ -0,0 +1 @@ +module.exports = Ferdi => class NextcloudNews extends Ferdi {}; diff --git a/recipes/nextcloud-news/package.json b/recipes/nextcloud-news/package.json new file mode 100644 index 0000000..692359a --- /dev/null +++ b/recipes/nextcloud-news/package.json @@ -0,0 +1,14 @@ +{ + "id": "nextcloud-news", + "name": "Nextcloud News", + "version": "1.0.0", + "license": "MIT", + "repository": "https://github.com/csolisr/recipes/tree/master/recipes/nextcloud-news/", + "config": { + "hasNotificationSound": true, + "hasTeamId": true, + "urlInputPrefix": "https://", + "urlInputSuffix": "/apps/news/", + "serviceURL": "https://{teamId}/apps/news/" + } +} diff --git a/recipes/nextcloud-news/service.css b/recipes/nextcloud-news/service.css new file mode 100644 index 0000000..4974300 --- /dev/null +++ b/recipes/nextcloud-news/service.css @@ -0,0 +1,12 @@ +/* Hide all app links and contacts menu link in the top menu except for +News */ +#appmenu li:not([data-id="news"]), #contactsmenu {display: none;} + +/* Change the cursor to the default for Nextcloud home, News and settings +links in the top menu and disable them */ +#nextcloud, #appmenu li[data-id="news"] a, #settings { + cursor: default; pointer-events: none; +} + +/* Hide "More" link in the top menu */ +#more-apps {display: none !important;} diff --git a/recipes/nextcloud-news/webview.js b/recipes/nextcloud-news/webview.js new file mode 100644 index 0000000..048ac7d --- /dev/null +++ b/recipes/nextcloud-news/webview.js @@ -0,0 +1,18 @@ +const _path = _interopRequireDefault(require('path')); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Ferdi => { + const getMessages = () => { + const selector = document.querySelector( + '.subscriptions-feed .app-navigation-entry-utils-counter', + ); + const direct = selector ? Ferdi.safeParseInt(selector.innerText) : 0; + + Ferdi.setBadge(direct); + }; + + Ferdi.loop(getMessages); + + Ferdi.injectCSS(_path.default.join(__dirname, 'service.css')); +}; -- cgit v1.2.3-54-g00ecf