aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--all.json246
-rw-r--r--docs/frontend_api.md2
-rw-r--r--docs/integration.md2
-rw-r--r--recipes/OVHCloud/webview.js2
-rw-r--r--recipes/TickTick/package.json2
-rw-r--r--recipes/TickTick/webview.js2
-rw-r--r--recipes/air-droid/package.json2
-rw-r--r--recipes/air-droid/webview.js2
-rw-r--r--recipes/amazon-web-services/webview.js2
-rw-r--r--recipes/android-messages/package.json2
-rw-r--r--recipes/android-messages/webview.js2
-rw-r--r--recipes/asana/package.json2
-rw-r--r--recipes/asana/webview.js2
-rw-r--r--recipes/binance/webview.js2
-rw-r--r--recipes/bip/package.json2
-rw-r--r--recipes/bip/webview.js2
-rw-r--r--recipes/bitwarden/webview.js2
-rw-r--r--recipes/campuswire/package.json2
-rw-r--r--recipes/campuswire/webview.js2
-rw-r--r--recipes/canvas/package.json2
-rw-r--r--recipes/canvas/webview.js2
-rw-r--r--recipes/chatwork/package.json2
-rw-r--r--recipes/chatwork/webview.js2
-rw-r--r--recipes/ciscospark/package.json2
-rw-r--r--recipes/ciscospark/webview.js2
-rw-r--r--recipes/clickup/package.json2
-rw-r--r--recipes/clickup/webview.js3
-rw-r--r--recipes/cliq/package.json2
-rw-r--r--recipes/cliq/webview.js2
-rw-r--r--recipes/clockify/package.json2
-rw-r--r--recipes/clockify/webview.js3
-rw-r--r--recipes/clubhouse/package.json2
-rw-r--r--recipes/clubhouse/webview.js2
-rw-r--r--recipes/devRant/package.json2
-rw-r--r--recipes/devRant/webview.js2
-rw-r--r--recipes/dialpad/package.json2
-rw-r--r--recipes/dialpad/webview.js2
-rw-r--r--recipes/dingtalk/package.json2
-rw-r--r--recipes/dingtalk/webview.js4
-rw-r--r--recipes/discord/package.json2
-rw-r--r--recipes/discord/webview.js2
-rw-r--r--recipes/disqus/package.json2
-rw-r--r--recipes/disqus/webview.js12
-rw-r--r--recipes/dockerhub/webview.js2
-rw-r--r--recipes/drive/package.json2
-rw-r--r--recipes/drive/webview.js8
-rw-r--r--recipes/element/package.json2
-rw-r--r--recipes/element/webview.js2
-rw-r--r--recipes/erepublik/package.json2
-rw-r--r--recipes/erepublik/webview.js2
-rw-r--r--recipes/facebookpages/package.json2
-rw-r--r--recipes/facebookpages/webview.js4
-rw-r--r--recipes/fastmail/package.json2
-rw-r--r--recipes/fastmail/webview.js2
-rw-r--r--recipes/feedbin/package.json2
-rw-r--r--recipes/feedbin/webview.js2
-rw-r--r--recipes/feedly/package.json2
-rw-r--r--recipes/feedly/webview.js2
-rw-r--r--recipes/fleep/package.json2
-rw-r--r--recipes/fleep/webview.js2
-rw-r--r--recipes/flowdock/package.json2
-rw-r--r--recipes/flowdock/webview.js2
-rw-r--r--recipes/freshdesk/package.json2
-rw-r--r--recipes/freshdesk/webview.js2
-rw-r--r--recipes/github/package.json2
-rw-r--r--recipes/github/webview.js2
-rw-r--r--recipes/gitter/package.json2
-rw-r--r--recipes/gitter/webview.js4
-rw-r--r--recipes/glowing-bear/package.json2
-rw-r--r--recipes/glowing-bear/webview.js2
-rw-r--r--recipes/gmail/package.json2
-rw-r--r--recipes/gmail/webview.js2
-rw-r--r--recipes/google-translate/webview.js2
-rw-r--r--recipes/google-voice/package.json2
-rw-r--r--recipes/google-voice/webview.js2
-rw-r--r--recipes/googleclassroom/package.json2
-rw-r--r--recipes/googleclassroom/webview.js2
-rw-r--r--recipes/googlemeet/package.json2
-rw-r--r--recipes/googlemeet/webview.js2
-rw-r--r--recipes/grape/package.json2
-rw-r--r--recipes/grape/webview.js2
-rw-r--r--recipes/groupme/package.json2
-rw-r--r--recipes/groupme/webview.js2
-rw-r--r--recipes/guilded/package.json2
-rw-r--r--recipes/guilded/webview.js4
-rwxr-xr-xrecipes/habitica/package.json2
-rwxr-xr-xrecipes/habitica/webview.js2
-rw-r--r--recipes/hackmd/package.json2
-rw-r--r--recipes/hackmd/webview.js2
-rw-r--r--recipes/hangouts/package.json2
-rw-r--r--recipes/hangouts/webview.js2
-rw-r--r--recipes/hangoutschat/package.json2
-rw-r--r--recipes/hangoutschat/webview.js2
-rw-r--r--recipes/hey/package.json2
-rw-r--r--recipes/hey/webview.js2
-rw-r--r--recipes/hipchat/package.json2
-rw-r--r--recipes/hipchat/webview.js2
-rw-r--r--recipes/icq/package.json2
-rw-r--r--recipes/icq/webview.js2
-rw-r--r--recipes/idobata/package.json2
-rw-r--r--recipes/idobata/webview.js2
-rw-r--r--recipes/infomaniak-mail/package.json2
-rw-r--r--recipes/infomaniak-mail/webview.js2
-rw-r--r--recipes/instagram/package.json2
-rw-r--r--recipes/instagram/webview.js2
-rw-r--r--recipes/intercom/package.json2
-rw-r--r--recipes/intercom/webview.js2
-rw-r--r--recipes/irccloud/package.json2
-rw-r--r--recipes/irccloud/webview.js2
-rw-r--r--recipes/jira/package.json2
-rw-r--r--recipes/jira/webview.js2
-rw-r--r--recipes/jollor/package.json2
-rw-r--r--recipes/jollor/webview.js2
-rw-r--r--recipes/kaizala/package.json2
-rw-r--r--recipes/kaizala/webview.js2
-rw-r--r--recipes/kimaicloud/package.json2
-rw-r--r--recipes/kimaicloud/webview.js4
-rw-r--r--recipes/lark/package.json2
-rw-r--r--recipes/lark/webview.js2
-rw-r--r--recipes/lastpass/package.json2
-rw-r--r--recipes/lastpass/webview.js2
-rw-r--r--recipes/linkedin/package.json2
-rw-r--r--recipes/linkedin/webview.js2
-rw-r--r--recipes/mailbox.org/package.json2
-rw-r--r--recipes/mailbox.org/webview.js2
-rw-r--r--recipes/mastodon/package.json2
-rw-r--r--recipes/mastodon/webview.js2
-rw-r--r--recipes/mattermost/package.json2
-rw-r--r--recipes/mattermost/webview.js2
-rw-r--r--recipes/messenger/package.json2
-rw-r--r--recipes/messenger/webview.js2
-rw-r--r--recipes/mewe/package.json2
-rw-r--r--recipes/mewe/webview.js10
-rw-r--r--recipes/misskey/package.json2
-rw-r--r--recipes/misskey/webview.js2
-rw-r--r--recipes/monday/package.json2
-rwxr-xr-xrecipes/monday/webview.js2
-rw-r--r--recipes/mstodo/package.json2
-rw-r--r--recipes/mstodo/webview.js2
-rw-r--r--recipes/mysms/package.json2
-rw-r--r--recipes/mysms/webview.js2
-rw-r--r--recipes/nextcloud-calendar/package.json2
-rw-r--r--recipes/nextcloud-calendar/webview.js2
-rw-r--r--recipes/nextcloud-carnet/package.json2
-rw-r--r--recipes/nextcloud-carnet/webview.js2
-rw-r--r--recipes/nextcloud-cospend/package.json2
-rw-r--r--recipes/nextcloud-cospend/webview.js2
-rw-r--r--recipes/nextcloud-talk/package.json2
-rw-r--r--recipes/nextcloud-talk/webview.js2
-rw-r--r--recipes/nextcloud-tasks/package.json2
-rw-r--r--recipes/nextcloud-tasks/webview.js2
-rw-r--r--recipes/nextcloud/package.json2
-rw-r--r--recipes/nextcloud/webview.js2
-rw-r--r--recipes/nextdoor/package.json2
-rw-r--r--recipes/nextdoor/webview.js4
-rw-r--r--recipes/notion/package.json2
-rw-r--r--recipes/notion/webview.js2
-rw-r--r--recipes/office365-owa/package.json2
-rw-r--r--recipes/office365-owa/webview.js2
-rw-r--r--recipes/pipefy/package.json2
-rw-r--r--recipes/pipefy/webview.js2
-rw-r--r--recipes/pivotal-tracker/package.json2
-rw-r--r--recipes/pivotal-tracker/webview.js2
-rw-r--r--recipes/plurk/package.json2
-rw-r--r--recipes/plurk/webview.js2
-rw-r--r--recipes/producthunt/package.json2
-rw-r--r--recipes/producthunt/webview.js2
-rw-r--r--recipes/proton-mail/package.json2
-rw-r--r--recipes/proton-mail/webview.js4
-rw-r--r--recipes/pulsesms/package.json2
-rw-r--r--recipes/pulsesms/webview.js2
-rw-r--r--recipes/reddit/package.json2
-rw-r--r--recipes/reddit/webview.js2
-rw-r--r--recipes/riseup/package.json2
-rw-r--r--recipes/riseup/webview.js4
-rw-r--r--recipes/rocketchat/package.json2
-rw-r--r--recipes/rocketchat/webview.js2
-rw-r--r--recipes/roundcube/package.json4
-rw-r--r--recipes/roundcube/webview.js2
-rw-r--r--recipes/scrumpy/package.json2
-rw-r--r--recipes/scrumpy/webview.js2
-rw-r--r--recipes/simplenote/package.json2
-rw-r--r--recipes/simplenote/webview.js2
-rw-r--r--recipes/skype/package.json2
-rw-r--r--recipes/skype/webview.js2
-rw-r--r--recipes/slite/package.json2
-rw-r--r--recipes/slite/webview.js2
-rw-r--r--recipes/sococo/package.json2
-rw-r--r--recipes/sococo/webview.js2
-rw-r--r--recipes/stackoverflow/package.json2
-rw-r--r--recipes/stackoverflow/webview.js2
-rw-r--r--recipes/steamchat/package.json2
-rw-r--r--recipes/steamchat/webview.js2
-rw-r--r--recipes/stride/package.json2
-rw-r--r--recipes/stride/webview.js2
-rw-r--r--recipes/teamleader/package.json2
-rw-r--r--recipes/teamleader/webview.js2
-rw-r--r--recipes/teamwork-projects/package.json2
-rw-r--r--recipes/teamwork-projects/webview.js2
-rw-r--r--recipes/telegram-react/package.json2
-rw-r--r--recipes/telegram-react/webview.js2
-rw-r--r--recipes/telegram/package.json2
-rw-r--r--recipes/telegram/webview.js2
-rw-r--r--recipes/thelounge/package.json2
-rw-r--r--recipes/thelounge/webview.js2
-rw-r--r--recipes/threema/package.json2
-rw-r--r--recipes/threema/webview.js2
-rw-r--r--recipes/tinder/package.json2
-rw-r--r--recipes/tinder/webview.js1
-rw-r--r--recipes/trello/package.json2
-rw-r--r--recipes/trello/webview.js2
-rw-r--r--recipes/tweetdeck/package.json2
-rw-r--r--recipes/tweetdeck/webview.js2
-rw-r--r--recipes/twist/package.json2
-rw-r--r--recipes/twist/webview.js2
-rw-r--r--recipes/twitter-dm/package.json2
-rw-r--r--recipes/twitter-dm/webview.js2
-rw-r--r--recipes/twitter/package.json2
-rw-r--r--recipes/twitter/webview.js4
-rw-r--r--recipes/udemy/package.json2
-rw-r--r--recipes/udemy/webview.js2
-rw-r--r--recipes/vk/package.json2
-rw-r--r--recipes/vk/webview.js2
-rw-r--r--recipes/voxer/package.json2
-rw-r--r--recipes/voxer/webview.js2
-rw-r--r--recipes/wakatime/package.json2
-rw-r--r--recipes/wakatime/webview.js4
-rw-r--r--recipes/webex-teams/package.json2
-rw-r--r--recipes/webex-teams/webview.js2
-rw-r--r--recipes/wechat/package.json2
-rw-r--r--recipes/wechat/webview.js2
-rw-r--r--recipes/weekplan/package.json2
-rw-r--r--recipes/weekplan/webview.js2
-rw-r--r--recipes/whatsapp/package.json2
-rw-r--r--recipes/whatsapp/webview.js2
-rw-r--r--recipes/whereby/package.json2
-rw-r--r--recipes/whereby/webview.js2
-rw-r--r--recipes/wire/package.json2
-rw-r--r--recipes/wire/webview.js2
-rw-r--r--recipes/wrike/package.json2
-rw-r--r--recipes/wrike/webview.js2
-rw-r--r--recipes/yahoo-mail/package.json2
-rw-r--r--recipes/yahoo-mail/webview.js2
-rw-r--r--recipes/yammer/package.json2
-rw-r--r--recipes/yammer/webview.js2
-rw-r--r--recipes/yandex-mail/package.json2
-rw-r--r--recipes/yandex-mail/webview.js2
-rw-r--r--recipes/youtrack/package.json2
-rw-r--r--recipes/youtrack/webview.js2
-rw-r--r--recipes/zalo/package.json2
-rw-r--r--recipes/zalo/webview.js3
-rw-r--r--recipes/zimbra/package.json2
-rw-r--r--recipes/zimbra/webview.js2
-rw-r--r--recipes/zulip/package.json2
-rw-r--r--recipes/zulip/webview.js2
-rw-r--r--scripts/sample_recipe/webview.js2
256 files changed, 402 insertions, 402 deletions
diff --git a/all.json b/all.json
index ec3a03d..e2efd7f 100644
--- a/all.json
+++ b/all.json
@@ -3,7 +3,7 @@
3 "featured": false, 3 "featured": false,
4 "id": "air-droid", 4 "id": "air-droid",
5 "name": "air-droid", 5 "name": "air-droid",
6 "version": "1.1.0", 6 "version": "1.1.1",
7 "icons": { 7 "icons": {
8 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/air-droid/icon.svg" 8 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/air-droid/icon.svg"
9 } 9 }
@@ -42,7 +42,7 @@
42 "featured": false, 42 "featured": false,
43 "id": "android-messages", 43 "id": "android-messages",
44 "name": "Android Messages", 44 "name": "Android Messages",
45 "version": "2.2.2", 45 "version": "2.2.3",
46 "icons": { 46 "icons": {
47 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/android-messages/icon.svg" 47 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/android-messages/icon.svg"
48 } 48 }
@@ -69,7 +69,7 @@
69 "featured": false, 69 "featured": false,
70 "id": "asana", 70 "id": "asana",
71 "name": "Asana", 71 "name": "Asana",
72 "version": "1.1.0", 72 "version": "1.1.1",
73 "icons": { 73 "icons": {
74 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/asana/icon.svg" 74 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/asana/icon.svg"
75 } 75 }
@@ -117,7 +117,7 @@
117 "featured": false, 117 "featured": false,
118 "id": "bip", 118 "id": "bip",
119 "name": "BiP", 119 "name": "BiP",
120 "version": "1.1.1", 120 "version": "1.1.2",
121 "icons": { 121 "icons": {
122 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/bip/icon.svg" 122 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/bip/icon.svg"
123 } 123 }
@@ -162,7 +162,7 @@
162 "featured": false, 162 "featured": false,
163 "id": "campuswire", 163 "id": "campuswire",
164 "name": "Campuswire", 164 "name": "Campuswire",
165 "version": "1.1.1", 165 "version": "1.1.2",
166 "icons": { 166 "icons": {
167 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/campuswire/icon.svg" 167 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/campuswire/icon.svg"
168 } 168 }
@@ -171,7 +171,7 @@
171 "featured": false, 171 "featured": false,
172 "id": "canvas", 172 "id": "canvas",
173 "name": "Canvas", 173 "name": "Canvas",
174 "version": "1.0.2", 174 "version": "1.0.3",
175 "icons": { 175 "icons": {
176 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/canvas/icon.svg" 176 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/canvas/icon.svg"
177 } 177 }
@@ -189,7 +189,7 @@
189 "featured": false, 189 "featured": false,
190 "id": "chatwork", 190 "id": "chatwork",
191 "name": "ChatWork", 191 "name": "ChatWork",
192 "version": "1.1.1", 192 "version": "1.1.2",
193 "icons": { 193 "icons": {
194 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/chatwork/icon.svg" 194 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/chatwork/icon.svg"
195 } 195 }
@@ -198,7 +198,7 @@
198 "featured": false, 198 "featured": false,
199 "id": "ciscospark", 199 "id": "ciscospark",
200 "name": "Cisco Spark", 200 "name": "Cisco Spark",
201 "version": "1.1.1", 201 "version": "1.1.2",
202 "icons": { 202 "icons": {
203 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/ciscospark/icon.svg" 203 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/ciscospark/icon.svg"
204 } 204 }
@@ -207,7 +207,7 @@
207 "featured": false, 207 "featured": false,
208 "id": "clickup", 208 "id": "clickup",
209 "name": "ClickUp", 209 "name": "ClickUp",
210 "version": "2.2.0", 210 "version": "2.2.1",
211 "icons": { 211 "icons": {
212 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clickup/icon.svg" 212 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clickup/icon.svg"
213 } 213 }
@@ -216,7 +216,7 @@
216 "featured": false, 216 "featured": false,
217 "id": "cliq", 217 "id": "cliq",
218 "name": "Cliq", 218 "name": "Cliq",
219 "version": "1.1.0", 219 "version": "1.1.1",
220 "icons": { 220 "icons": {
221 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/cliq/icon.svg" 221 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/cliq/icon.svg"
222 } 222 }
@@ -225,7 +225,7 @@
225 "featured": false, 225 "featured": false,
226 "id": "clockify", 226 "id": "clockify",
227 "name": "Clockify", 227 "name": "Clockify",
228 "version": "1.1.0", 228 "version": "1.1.1",
229 "icons": { 229 "icons": {
230 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clockify/icon.svg" 230 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clockify/icon.svg"
231 } 231 }
@@ -243,7 +243,7 @@
243 "featured": false, 243 "featured": false,
244 "id": "clubhouse", 244 "id": "clubhouse",
245 "name": "Clubhouse", 245 "name": "Clubhouse",
246 "version": "1.1.0", 246 "version": "1.1.1",
247 "icons": { 247 "icons": {
248 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clubhouse/icon.svg" 248 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/clubhouse/icon.svg"
249 } 249 }
@@ -270,7 +270,7 @@
270 "featured": false, 270 "featured": false,
271 "id": "devRant", 271 "id": "devRant",
272 "name": "devRant", 272 "name": "devRant",
273 "version": "1.0.1", 273 "version": "1.0.2",
274 "icons": { 274 "icons": {
275 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/devRant/icon.svg" 275 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/devRant/icon.svg"
276 } 276 }
@@ -279,7 +279,7 @@
279 "featured": false, 279 "featured": false,
280 "id": "dialpad", 280 "id": "dialpad",
281 "name": "Dialpad", 281 "name": "Dialpad",
282 "version": "1.0.0", 282 "version": "1.0.1",
283 "icons": { 283 "icons": {
284 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/dialpad/icon.svg" 284 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/dialpad/icon.svg"
285 } 285 }
@@ -288,7 +288,7 @@
288 "featured": false, 288 "featured": false,
289 "id": "dingtalk", 289 "id": "dingtalk",
290 "name": "Dingtalk", 290 "name": "Dingtalk",
291 "version": "1.0.24", 291 "version": "1.0.25",
292 "icons": { 292 "icons": {
293 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/dingtalk/icon.svg" 293 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/dingtalk/icon.svg"
294 } 294 }
@@ -297,7 +297,7 @@
297 "featured": true, 297 "featured": true,
298 "id": "discord", 298 "id": "discord",
299 "name": "Discord", 299 "name": "Discord",
300 "version": "1.4.2", 300 "version": "1.4.3",
301 "icons": { 301 "icons": {
302 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/discord/icon.svg" 302 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/discord/icon.svg"
303 } 303 }
@@ -306,7 +306,7 @@
306 "featured": false, 306 "featured": false,
307 "id": "disqus", 307 "id": "disqus",
308 "name": "Disqus", 308 "name": "Disqus",
309 "version": "1.1.1", 309 "version": "1.1.2",
310 "icons": { 310 "icons": {
311 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/disqus/icon.svg" 311 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/disqus/icon.svg"
312 } 312 }
@@ -324,7 +324,7 @@
324 "featured": false, 324 "featured": false,
325 "id": "drive", 325 "id": "drive",
326 "name": "Drive", 326 "name": "Drive",
327 "version": "1.0.0", 327 "version": "1.0.1",
328 "icons": { 328 "icons": {
329 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/drive/icon.svg" 329 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/drive/icon.svg"
330 } 330 }
@@ -342,7 +342,7 @@
342 "featured": false, 342 "featured": false,
343 "id": "element", 343 "id": "element",
344 "name": "Element", 344 "name": "Element",
345 "version": "1.1.1", 345 "version": "1.1.2",
346 "aliases": [ 346 "aliases": [
347 "Riot.im", 347 "Riot.im",
348 "Matrix" 348 "Matrix"
@@ -364,7 +364,7 @@
364 "featured": false, 364 "featured": false,
365 "id": "erepublik", 365 "id": "erepublik",
366 "name": "eRepublik", 366 "name": "eRepublik",
367 "version": "1.1.1", 367 "version": "1.1.2",
368 "icons": { 368 "icons": {
369 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/erepublik/icon.svg" 369 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/erepublik/icon.svg"
370 } 370 }
@@ -391,7 +391,7 @@
391 "featured": false, 391 "featured": false,
392 "id": "facebookpages", 392 "id": "facebookpages",
393 "name": "Facebook Pages", 393 "name": "Facebook Pages",
394 "version": "1.2.2", 394 "version": "1.2.3",
395 "icons": { 395 "icons": {
396 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/facebookpages/icon.svg" 396 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/facebookpages/icon.svg"
397 } 397 }
@@ -400,7 +400,7 @@
400 "featured": false, 400 "featured": false,
401 "id": "fastmail", 401 "id": "fastmail",
402 "name": "FastMail", 402 "name": "FastMail",
403 "version": "2.1.0", 403 "version": "2.1.1",
404 "icons": { 404 "icons": {
405 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fastmail/icon.svg" 405 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fastmail/icon.svg"
406 } 406 }
@@ -409,7 +409,7 @@
409 "featured": false, 409 "featured": false,
410 "id": "feedbin", 410 "id": "feedbin",
411 "name": "feedbin", 411 "name": "feedbin",
412 "version": "1.1.0", 412 "version": "1.1.1",
413 "icons": { 413 "icons": {
414 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/feedbin/icon.svg" 414 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/feedbin/icon.svg"
415 } 415 }
@@ -418,7 +418,7 @@
418 "featured": false, 418 "featured": false,
419 "id": "feedly", 419 "id": "feedly",
420 "name": "Feedly", 420 "name": "Feedly",
421 "version": "1.1.1", 421 "version": "1.1.2",
422 "icons": { 422 "icons": {
423 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/feedly/icon.svg" 423 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/feedly/icon.svg"
424 } 424 }
@@ -436,7 +436,7 @@
436 "featured": false, 436 "featured": false,
437 "id": "fleep", 437 "id": "fleep",
438 "name": "Fleep", 438 "name": "Fleep",
439 "version": "1.1.0", 439 "version": "1.1.1",
440 "icons": { 440 "icons": {
441 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fleep/icon.svg" 441 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/fleep/icon.svg"
442 } 442 }
@@ -454,7 +454,7 @@
454 "featured": false, 454 "featured": false,
455 "id": "flowdock", 455 "id": "flowdock",
456 "name": "Flowdock", 456 "name": "Flowdock",
457 "version": "1.1.0", 457 "version": "1.1.1",
458 "icons": { 458 "icons": {
459 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/flowdock/icon.svg" 459 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/flowdock/icon.svg"
460 } 460 }
@@ -472,7 +472,7 @@
472 "featured": false, 472 "featured": false,
473 "id": "freshdesk", 473 "id": "freshdesk",
474 "name": "Freshdesk", 474 "name": "Freshdesk",
475 "version": "1.0.0", 475 "version": "1.0.1",
476 "icons": { 476 "icons": {
477 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/freshdesk/icon.svg" 477 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/freshdesk/icon.svg"
478 } 478 }
@@ -490,7 +490,7 @@
490 "featured": false, 490 "featured": false,
491 "id": "github", 491 "id": "github",
492 "name": "GitHub", 492 "name": "GitHub",
493 "version": "2.2.0", 493 "version": "2.2.1",
494 "icons": { 494 "icons": {
495 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/github/icon.svg" 495 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/github/icon.svg"
496 } 496 }
@@ -508,7 +508,7 @@
508 "featured": true, 508 "featured": true,
509 "id": "gitter", 509 "id": "gitter",
510 "name": "Gitter", 510 "name": "Gitter",
511 "version": "1.1.0", 511 "version": "1.1.1",
512 "icons": { 512 "icons": {
513 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gitter/icon.svg" 513 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gitter/icon.svg"
514 } 514 }
@@ -517,7 +517,7 @@
517 "featured": false, 517 "featured": false,
518 "id": "glowing-bear", 518 "id": "glowing-bear",
519 "name": "glowing-bear", 519 "name": "glowing-bear",
520 "version": "1.1.1", 520 "version": "1.1.2",
521 "icons": { 521 "icons": {
522 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/glowing-bear/icon.svg" 522 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/glowing-bear/icon.svg"
523 } 523 }
@@ -526,7 +526,7 @@
526 "featured": true, 526 "featured": true,
527 "id": "gmail", 527 "id": "gmail",
528 "name": "Gmail", 528 "name": "Gmail",
529 "version": "1.4.1", 529 "version": "1.4.2",
530 "icons": { 530 "icons": {
531 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.svg" 531 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/gmail/icon.svg"
532 } 532 }
@@ -562,7 +562,7 @@
562 "featured": false, 562 "featured": false,
563 "id": "google-voice", 563 "id": "google-voice",
564 "name": "google-voice", 564 "name": "google-voice",
565 "version": "0.4.1", 565 "version": "0.4.2",
566 "icons": { 566 "icons": {
567 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/google-voice/icon.svg" 567 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/google-voice/icon.svg"
568 } 568 }
@@ -584,7 +584,7 @@
584 "featured": false, 584 "featured": false,
585 "id": "googleclassroom", 585 "id": "googleclassroom",
586 "name": "Google Classroom", 586 "name": "Google Classroom",
587 "version": "1.1.1", 587 "version": "1.1.2",
588 "icons": { 588 "icons": {
589 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googleclassroom/icon.svg" 589 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googleclassroom/icon.svg"
590 } 590 }
@@ -611,7 +611,7 @@
611 "featured": false, 611 "featured": false,
612 "id": "googlemeet", 612 "id": "googlemeet",
613 "name": "Google Meet", 613 "name": "Google Meet",
614 "version": "2.2.2", 614 "version": "2.2.3",
615 "icons": { 615 "icons": {
616 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googlemeet/icon.svg" 616 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/googlemeet/icon.svg"
617 } 617 }
@@ -638,7 +638,7 @@
638 "featured": false, 638 "featured": false,
639 "id": "grape", 639 "id": "grape",
640 "name": "Grape", 640 "name": "Grape",
641 "version": "1.1.0", 641 "version": "1.1.1",
642 "icons": { 642 "icons": {
643 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/grape/icon.svg" 643 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/grape/icon.svg"
644 } 644 }
@@ -647,7 +647,7 @@
647 "featured": false, 647 "featured": false,
648 "id": "groupme", 648 "id": "groupme",
649 "name": "GroupMe", 649 "name": "GroupMe",
650 "version": "1.1.0", 650 "version": "1.1.1",
651 "icons": { 651 "icons": {
652 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/groupme/icon.svg" 652 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/groupme/icon.svg"
653 } 653 }
@@ -656,7 +656,7 @@
656 "featured": false, 656 "featured": false,
657 "id": "guilded", 657 "id": "guilded",
658 "name": "Guilded", 658 "name": "Guilded",
659 "version": "1.1.1", 659 "version": "1.1.2",
660 "icons": { 660 "icons": {
661 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/guilded/icon.svg" 661 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/guilded/icon.svg"
662 } 662 }
@@ -665,7 +665,7 @@
665 "featured": false, 665 "featured": false,
666 "id": "habitica", 666 "id": "habitica",
667 "name": "Habitica", 667 "name": "Habitica",
668 "version": "1.1.0", 668 "version": "1.1.1",
669 "icons": { 669 "icons": {
670 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.svg" 670 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/habitica/icon.svg"
671 } 671 }
@@ -674,7 +674,7 @@
674 "featured": false, 674 "featured": false,
675 "id": "hackmd", 675 "id": "hackmd",
676 "name": "HackMd", 676 "name": "HackMd",
677 "version": "1.1.0", 677 "version": "1.1.1",
678 "icons": { 678 "icons": {
679 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hackmd/icon.svg" 679 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hackmd/icon.svg"
680 } 680 }
@@ -683,7 +683,7 @@
683 "featured": true, 683 "featured": true,
684 "id": "hangouts", 684 "id": "hangouts",
685 "name": "Hangouts", 685 "name": "Hangouts",
686 "version": "1.2.0", 686 "version": "1.2.1",
687 "icons": { 687 "icons": {
688 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangouts/icon.svg" 688 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hangouts/icon.svg"
689 } 689 }
@@ -692,7 +692,7 @@
692 "featured": false, 692 "featured": false,
693 "id": "hangoutschat", 693 "id": "hangoutschat",
694 "name": "Hangouts Chat", 694 "name": "Hangouts Chat",
695 "version": "1.5.0", 695 "version": "1.5.1",
696 "aliases": [ 696 "aliases": [
697 "google-chat", 697 "google-chat",
698 "gChat" 698 "gChat"
@@ -714,7 +714,7 @@
714 "featured": false, 714 "featured": false,
715 "id": "hey", 715 "id": "hey",
716 "name": "Hey", 716 "name": "Hey",
717 "version": "1.0.0", 717 "version": "1.0.1",
718 "icons": { 718 "icons": {
719 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hey/icon.svg" 719 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hey/icon.svg"
720 } 720 }
@@ -723,7 +723,7 @@
723 "featured": false, 723 "featured": false,
724 "id": "hipchat", 724 "id": "hipchat",
725 "name": "HipChat", 725 "name": "HipChat",
726 "version": "1.1.0", 726 "version": "1.1.1",
727 "icons": { 727 "icons": {
728 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hipchat/icon.svg" 728 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/hipchat/icon.svg"
729 } 729 }
@@ -750,7 +750,7 @@
750 "featured": false, 750 "featured": false,
751 "id": "icq", 751 "id": "icq",
752 "name": "ICQ", 752 "name": "ICQ",
753 "version": "1.1.1", 753 "version": "1.1.2",
754 "icons": { 754 "icons": {
755 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/icq/icon.svg" 755 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/icq/icon.svg"
756 } 756 }
@@ -759,7 +759,7 @@
759 "featured": false, 759 "featured": false,
760 "id": "idobata", 760 "id": "idobata",
761 "name": "Idobata", 761 "name": "Idobata",
762 "version": "0.2.0", 762 "version": "0.2.1",
763 "icons": { 763 "icons": {
764 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/idobata/icon.svg" 764 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/idobata/icon.svg"
765 } 765 }
@@ -768,7 +768,7 @@
768 "featured": false, 768 "featured": false,
769 "id": "infomaniak-mail", 769 "id": "infomaniak-mail",
770 "name": "Infomaniak Mail", 770 "name": "Infomaniak Mail",
771 "version": "1.1.0", 771 "version": "1.1.1",
772 "icons": { 772 "icons": {
773 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/infomaniak-mail/icon.svg" 773 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/infomaniak-mail/icon.svg"
774 } 774 }
@@ -786,7 +786,7 @@
786 "featured": false, 786 "featured": false,
787 "id": "instagram", 787 "id": "instagram",
788 "name": "Instagram", 788 "name": "Instagram",
789 "version": "2.2.1", 789 "version": "2.2.2",
790 "icons": { 790 "icons": {
791 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/instagram/icon.svg" 791 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/instagram/icon.svg"
792 } 792 }
@@ -795,7 +795,7 @@
795 "featured": false, 795 "featured": false,
796 "id": "intercom", 796 "id": "intercom",
797 "name": "Intercom", 797 "name": "Intercom",
798 "version": "1.1.1", 798 "version": "1.1.2",
799 "icons": { 799 "icons": {
800 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/intercom/icon.svg" 800 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/intercom/icon.svg"
801 } 801 }
@@ -804,7 +804,7 @@
804 "featured": false, 804 "featured": false,
805 "id": "irccloud", 805 "id": "irccloud",
806 "name": "IRCCloud", 806 "name": "IRCCloud",
807 "version": "1.1.0", 807 "version": "1.1.1",
808 "icons": { 808 "icons": {
809 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/irccloud/icon.svg" 809 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/irccloud/icon.svg"
810 } 810 }
@@ -813,7 +813,7 @@
813 "featured": false, 813 "featured": false,
814 "id": "jira", 814 "id": "jira",
815 "name": "Jira", 815 "name": "Jira",
816 "version": "1.3.1", 816 "version": "1.3.2",
817 "icons": { 817 "icons": {
818 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/jira/icon.svg" 818 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/jira/icon.svg"
819 } 819 }
@@ -831,7 +831,7 @@
831 "featured": false, 831 "featured": false,
832 "id": "jollor", 832 "id": "jollor",
833 "name": "jollor", 833 "name": "jollor",
834 "version": "1.1.0", 834 "version": "1.1.1",
835 "icons": { 835 "icons": {
836 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/jollor/icon.svg" 836 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/jollor/icon.svg"
837 } 837 }
@@ -840,7 +840,7 @@
840 "featured": false, 840 "featured": false,
841 "id": "kaizala", 841 "id": "kaizala",
842 "name": "Microsoft Kaizala", 842 "name": "Microsoft Kaizala",
843 "version": "1.2.0", 843 "version": "1.2.1",
844 "icons": { 844 "icons": {
845 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/kaizala/icon.svg" 845 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/kaizala/icon.svg"
846 } 846 }
@@ -858,7 +858,7 @@
858 "featured": false, 858 "featured": false,
859 "id": "kimaicloud", 859 "id": "kimaicloud",
860 "name": "Kimai Cloud", 860 "name": "Kimai Cloud",
861 "version": "1.1.0", 861 "version": "1.1.1",
862 "icons": { 862 "icons": {
863 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/kimaicloud/icon.svg" 863 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/kimaicloud/icon.svg"
864 } 864 }
@@ -867,7 +867,7 @@
867 "featured": false, 867 "featured": false,
868 "id": "lark", 868 "id": "lark",
869 "name": "Lark", 869 "name": "Lark",
870 "version": "0.1.1", 870 "version": "0.1.2",
871 "icons": { 871 "icons": {
872 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lark/icon.svg" 872 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lark/icon.svg"
873 } 873 }
@@ -876,7 +876,7 @@
876 "featured": false, 876 "featured": false,
877 "id": "lastpass", 877 "id": "lastpass",
878 "name": "LastPass", 878 "name": "LastPass",
879 "version": "2.2.2", 879 "version": "2.2.3",
880 "icons": { 880 "icons": {
881 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lastpass/icon.svg" 881 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/lastpass/icon.svg"
882 } 882 }
@@ -894,7 +894,7 @@
894 "featured": false, 894 "featured": false,
895 "id": "linkedin", 895 "id": "linkedin",
896 "name": "LinkedIn", 896 "name": "LinkedIn",
897 "version": "1.2.1", 897 "version": "1.2.2",
898 "icons": { 898 "icons": {
899 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/linkedin/icon.svg" 899 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/linkedin/icon.svg"
900 } 900 }
@@ -903,7 +903,7 @@
903 "featured": false, 903 "featured": false,
904 "id": "mailbox.org", 904 "id": "mailbox.org",
905 "name": "mailbox.org", 905 "name": "mailbox.org",
906 "version": "1.3.0", 906 "version": "1.3.1",
907 "icons": { 907 "icons": {
908 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mailbox.org/icon.svg" 908 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mailbox.org/icon.svg"
909 } 909 }
@@ -912,7 +912,7 @@
912 "featured": false, 912 "featured": false,
913 "id": "mastodon", 913 "id": "mastodon",
914 "name": "Mastodon", 914 "name": "Mastodon",
915 "version": "1.2.0", 915 "version": "1.2.1",
916 "icons": { 916 "icons": {
917 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mastodon/icon.svg" 917 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mastodon/icon.svg"
918 } 918 }
@@ -921,7 +921,7 @@
921 "featured": true, 921 "featured": true,
922 "id": "mattermost", 922 "id": "mattermost",
923 "name": "Mattermost", 923 "name": "Mattermost",
924 "version": "1.3.0", 924 "version": "1.3.1",
925 "icons": { 925 "icons": {
926 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mattermost/icon.svg" 926 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mattermost/icon.svg"
927 } 927 }
@@ -930,7 +930,7 @@
930 "featured": true, 930 "featured": true,
931 "id": "messenger", 931 "id": "messenger",
932 "name": "Messenger", 932 "name": "Messenger",
933 "version": "1.3.2", 933 "version": "1.3.3",
934 "icons": { 934 "icons": {
935 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/messenger/icon.svg" 935 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/messenger/icon.svg"
936 } 936 }
@@ -939,7 +939,7 @@
939 "featured": false, 939 "featured": false,
940 "id": "mewe", 940 "id": "mewe",
941 "name": "MeWe", 941 "name": "MeWe",
942 "version": "1.0.0", 942 "version": "1.0.1",
943 "icons": { 943 "icons": {
944 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mewe/icon.svg" 944 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mewe/icon.svg"
945 } 945 }
@@ -948,7 +948,7 @@
948 "featured": false, 948 "featured": false,
949 "id": "misskey", 949 "id": "misskey",
950 "name": "Misskey", 950 "name": "Misskey",
951 "version": "1.0.0", 951 "version": "1.0.1",
952 "icons": { 952 "icons": {
953 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/misskey/icon.svg" 953 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/misskey/icon.svg"
954 } 954 }
@@ -957,7 +957,7 @@
957 "featured": false, 957 "featured": false,
958 "id": "monday", 958 "id": "monday",
959 "name": "Monday", 959 "name": "Monday",
960 "version": "1.1.1", 960 "version": "1.1.2",
961 "icons": { 961 "icons": {
962 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/monday/icon.svg" 962 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/monday/icon.svg"
963 } 963 }
@@ -987,7 +987,7 @@
987 "featured": false, 987 "featured": false,
988 "id": "mstodo", 988 "id": "mstodo",
989 "name": "Microsoft To Do", 989 "name": "Microsoft To Do",
990 "version": "1.1.0", 990 "version": "1.1.1",
991 "icons": { 991 "icons": {
992 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mstodo/icon.svg" 992 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mstodo/icon.svg"
993 } 993 }
@@ -996,7 +996,7 @@
996 "featured": false, 996 "featured": false,
997 "id": "mysms", 997 "id": "mysms",
998 "name": "MySMS", 998 "name": "MySMS",
999 "version": "1.1.1", 999 "version": "1.1.2",
1000 "icons": { 1000 "icons": {
1001 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mysms/icon.svg" 1001 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/mysms/icon.svg"
1002 } 1002 }
@@ -1023,7 +1023,7 @@
1023 "featured": false, 1023 "featured": false,
1024 "id": "nextcloud", 1024 "id": "nextcloud",
1025 "name": "Nextcloud", 1025 "name": "Nextcloud",
1026 "version": "1.1.0", 1026 "version": "1.1.1",
1027 "icons": { 1027 "icons": {
1028 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud/icon.svg" 1028 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud/icon.svg"
1029 } 1029 }
@@ -1032,7 +1032,7 @@
1032 "featured": false, 1032 "featured": false,
1033 "id": "nextcloud-calendar", 1033 "id": "nextcloud-calendar",
1034 "name": "Nextcloud Calendar", 1034 "name": "Nextcloud Calendar",
1035 "version": "1.1.0", 1035 "version": "1.1.1",
1036 "icons": { 1036 "icons": {
1037 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.svg" 1037 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-calendar/icon.svg"
1038 } 1038 }
@@ -1041,7 +1041,7 @@
1041 "featured": false, 1041 "featured": false,
1042 "id": "nextcloud-carnet", 1042 "id": "nextcloud-carnet",
1043 "name": "Carnet (Nextcloud)", 1043 "name": "Carnet (Nextcloud)",
1044 "version": "1.1.0", 1044 "version": "1.1.1",
1045 "icons": { 1045 "icons": {
1046 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-carnet/icon.svg" 1046 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-carnet/icon.svg"
1047 } 1047 }
@@ -1050,7 +1050,7 @@
1050 "featured": false, 1050 "featured": false,
1051 "id": "nextcloud-cospend", 1051 "id": "nextcloud-cospend",
1052 "name": "Nextcloud Cospend", 1052 "name": "Nextcloud Cospend",
1053 "version": "1.1.0", 1053 "version": "1.1.1",
1054 "icons": { 1054 "icons": {
1055 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-cospend/icon.svg" 1055 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-cospend/icon.svg"
1056 } 1056 }
@@ -1059,7 +1059,7 @@
1059 "featured": false, 1059 "featured": false,
1060 "id": "nextcloud-talk", 1060 "id": "nextcloud-talk",
1061 "name": "Nextcloud Talk", 1061 "name": "Nextcloud Talk",
1062 "version": "1.1.0", 1062 "version": "1.1.1",
1063 "icons": { 1063 "icons": {
1064 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.svg" 1064 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-talk/icon.svg"
1065 } 1065 }
@@ -1068,7 +1068,7 @@
1068 "featured": false, 1068 "featured": false,
1069 "id": "nextcloud-tasks", 1069 "id": "nextcloud-tasks",
1070 "name": "Nextcloud Tasks", 1070 "name": "Nextcloud Tasks",
1071 "version": "1.1.0", 1071 "version": "1.1.1",
1072 "icons": { 1072 "icons": {
1073 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-tasks/icon.svg" 1073 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextcloud-tasks/icon.svg"
1074 } 1074 }
@@ -1077,7 +1077,7 @@
1077 "featured": false, 1077 "featured": false,
1078 "id": "nextdoor", 1078 "id": "nextdoor",
1079 "name": "Nextdoor", 1079 "name": "Nextdoor",
1080 "version": "1.1.1", 1080 "version": "1.1.2",
1081 "icons": { 1081 "icons": {
1082 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextdoor/icon.svg" 1082 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/nextdoor/icon.svg"
1083 } 1083 }
@@ -1104,7 +1104,7 @@
1104 "featured": false, 1104 "featured": false,
1105 "id": "notion", 1105 "id": "notion",
1106 "name": "Notion", 1106 "name": "Notion",
1107 "version": "1.1.1", 1107 "version": "1.1.2",
1108 "icons": { 1108 "icons": {
1109 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/notion/icon.svg" 1109 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/notion/icon.svg"
1110 } 1110 }
@@ -1122,7 +1122,7 @@
1122 "featured": false, 1122 "featured": false,
1123 "id": "office365-owa", 1123 "id": "office365-owa",
1124 "name": "Office 365 Outlook", 1124 "name": "Office 365 Outlook",
1125 "version": "1.4.5", 1125 "version": "1.4.6",
1126 "aliases": [ 1126 "aliases": [
1127 "live.com" 1127 "live.com"
1128 ], 1128 ],
@@ -1170,7 +1170,7 @@
1170 "featured": false, 1170 "featured": false,
1171 "id": "pipefy", 1171 "id": "pipefy",
1172 "name": "Pipefy", 1172 "name": "Pipefy",
1173 "version": "1.0.0", 1173 "version": "1.0.1",
1174 "icons": { 1174 "icons": {
1175 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pipefy/icon.svg" 1175 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pipefy/icon.svg"
1176 } 1176 }
@@ -1179,7 +1179,7 @@
1179 "featured": false, 1179 "featured": false,
1180 "id": "pivotal-tracker", 1180 "id": "pivotal-tracker",
1181 "name": "pivotal-tracker", 1181 "name": "pivotal-tracker",
1182 "version": "1.1.1", 1182 "version": "1.1.2",
1183 "icons": { 1183 "icons": {
1184 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pivotal-tracker/icon.svg" 1184 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pivotal-tracker/icon.svg"
1185 } 1185 }
@@ -1215,7 +1215,7 @@
1215 "featured": false, 1215 "featured": false,
1216 "id": "plurk", 1216 "id": "plurk",
1217 "name": "Plurk", 1217 "name": "Plurk",
1218 "version": "1.1.1", 1218 "version": "1.1.2",
1219 "icons": { 1219 "icons": {
1220 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/plurk/icon.svg" 1220 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/plurk/icon.svg"
1221 } 1221 }
@@ -1251,7 +1251,7 @@
1251 "featured": false, 1251 "featured": false,
1252 "id": "producthunt", 1252 "id": "producthunt",
1253 "name": "Product Hunt", 1253 "name": "Product Hunt",
1254 "version": "1.0.0", 1254 "version": "1.0.1",
1255 "icons": { 1255 "icons": {
1256 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/producthunt/icon.svg" 1256 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/producthunt/icon.svg"
1257 } 1257 }
@@ -1260,7 +1260,7 @@
1260 "featured": false, 1260 "featured": false,
1261 "id": "proton-mail", 1261 "id": "proton-mail",
1262 "name": "ProtonMail", 1262 "name": "ProtonMail",
1263 "version": "1.3.0", 1263 "version": "1.3.1",
1264 "icons": { 1264 "icons": {
1265 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/proton-mail/icon.svg" 1265 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/proton-mail/icon.svg"
1266 } 1266 }
@@ -1287,7 +1287,7 @@
1287 "featured": false, 1287 "featured": false,
1288 "id": "pulsesms", 1288 "id": "pulsesms",
1289 "name": "PulseSMS", 1289 "name": "PulseSMS",
1290 "version": "1.2.0", 1290 "version": "1.2.1",
1291 "icons": { 1291 "icons": {
1292 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pulsesms/icon.svg" 1292 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/pulsesms/icon.svg"
1293 } 1293 }
@@ -1314,7 +1314,7 @@
1314 "featured": false, 1314 "featured": false,
1315 "id": "reddit", 1315 "id": "reddit",
1316 "name": "Reddit", 1316 "name": "Reddit",
1317 "version": "1.1.1", 1317 "version": "1.1.2",
1318 "icons": { 1318 "icons": {
1319 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/reddit/icon.svg" 1319 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/reddit/icon.svg"
1320 } 1320 }
@@ -1332,7 +1332,7 @@
1332 "featured": false, 1332 "featured": false,
1333 "id": "riseup", 1333 "id": "riseup",
1334 "name": "Riseup.net", 1334 "name": "Riseup.net",
1335 "version": "1.1.1", 1335 "version": "1.1.2",
1336 "icons": { 1336 "icons": {
1337 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/riseup/icon.svg" 1337 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/riseup/icon.svg"
1338 } 1338 }
@@ -1350,7 +1350,7 @@
1350 "featured": false, 1350 "featured": false,
1351 "id": "rocketchat", 1351 "id": "rocketchat",
1352 "name": "Rocket.Chat", 1352 "name": "Rocket.Chat",
1353 "version": "1.2.1", 1353 "version": "1.2.2",
1354 "icons": { 1354 "icons": {
1355 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/rocketchat/icon.svg" 1355 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/rocketchat/icon.svg"
1356 } 1356 }
@@ -1359,7 +1359,7 @@
1359 "featured": false, 1359 "featured": false,
1360 "id": "roundcube", 1360 "id": "roundcube",
1361 "name": "Roundcube", 1361 "name": "Roundcube",
1362 "version": "1.1.1", 1362 "version": "1.1.2",
1363 "icons": { 1363 "icons": {
1364 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.svg" 1364 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/roundcube/icon.svg"
1365 } 1365 }
@@ -1377,7 +1377,7 @@
1377 "featured": false, 1377 "featured": false,
1378 "id": "scrumpy", 1378 "id": "scrumpy",
1379 "name": "Scrumpy", 1379 "name": "Scrumpy",
1380 "version": "1.0.0", 1380 "version": "1.0.1",
1381 "icons": { 1381 "icons": {
1382 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/scrumpy/icon.svg" 1382 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/scrumpy/icon.svg"
1383 } 1383 }
@@ -1395,7 +1395,7 @@
1395 "featured": false, 1395 "featured": false,
1396 "id": "simplenote", 1396 "id": "simplenote",
1397 "name": "Simplenote", 1397 "name": "Simplenote",
1398 "version": "1.1.1", 1398 "version": "1.1.2",
1399 "icons": { 1399 "icons": {
1400 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/simplenote/icon.svg" 1400 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/simplenote/icon.svg"
1401 } 1401 }
@@ -1404,7 +1404,7 @@
1404 "featured": false, 1404 "featured": false,
1405 "id": "skype", 1405 "id": "skype",
1406 "name": "Skype", 1406 "name": "Skype",
1407 "version": "3.2.0", 1407 "version": "3.2.1",
1408 "icons": { 1408 "icons": {
1409 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.svg" 1409 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/skype/icon.svg"
1410 } 1410 }
@@ -1422,7 +1422,7 @@
1422 "featured": false, 1422 "featured": false,
1423 "id": "slite", 1423 "id": "slite",
1424 "name": "Slite", 1424 "name": "Slite",
1425 "version": "1.0.4", 1425 "version": "1.0.5",
1426 "icons": { 1426 "icons": {
1427 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/slite/icon.svg" 1427 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/slite/icon.svg"
1428 } 1428 }
@@ -1449,7 +1449,7 @@
1449 "featured": false, 1449 "featured": false,
1450 "id": "sococo", 1450 "id": "sococo",
1451 "name": "Sococo", 1451 "name": "Sococo",
1452 "version": "1.0.0", 1452 "version": "1.0.1",
1453 "icons": { 1453 "icons": {
1454 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/sococo/icon.svg" 1454 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/sococo/icon.svg"
1455 } 1455 }
@@ -1467,7 +1467,7 @@
1467 "featured": false, 1467 "featured": false,
1468 "id": "stackoverflow", 1468 "id": "stackoverflow",
1469 "name": "Stackoverflow", 1469 "name": "Stackoverflow",
1470 "version": "0.0.1", 1470 "version": "0.0.2",
1471 "icons": { 1471 "icons": {
1472 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/stackoverflow/icon.svg" 1472 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/stackoverflow/icon.svg"
1473 } 1473 }
@@ -1485,7 +1485,7 @@
1485 "featured": false, 1485 "featured": false,
1486 "id": "steamchat", 1486 "id": "steamchat",
1487 "name": "SteamChat", 1487 "name": "SteamChat",
1488 "version": "1.3.0", 1488 "version": "1.3.1",
1489 "icons": { 1489 "icons": {
1490 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/steamchat/icon.svg" 1490 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/steamchat/icon.svg"
1491 } 1491 }
@@ -1494,7 +1494,7 @@
1494 "featured": false, 1494 "featured": false,
1495 "id": "stride", 1495 "id": "stride",
1496 "name": "Stride", 1496 "name": "Stride",
1497 "version": "1.2.0", 1497 "version": "1.2.1",
1498 "icons": { 1498 "icons": {
1499 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/stride/icon.svg" 1499 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/stride/icon.svg"
1500 } 1500 }
@@ -1530,7 +1530,7 @@
1530 "featured": false, 1530 "featured": false,
1531 "id": "teamleader", 1531 "id": "teamleader",
1532 "name": "teamleader", 1532 "name": "teamleader",
1533 "version": "1.1.2", 1533 "version": "1.1.3",
1534 "icons": { 1534 "icons": {
1535 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/teamleader/icon.svg" 1535 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/teamleader/icon.svg"
1536 } 1536 }
@@ -1548,7 +1548,7 @@
1548 "featured": false, 1548 "featured": false,
1549 "id": "teamwork-projects", 1549 "id": "teamwork-projects",
1550 "name": "Teamwork Projects", 1550 "name": "Teamwork Projects",
1551 "version": "0.2.1", 1551 "version": "0.2.2",
1552 "icons": { 1552 "icons": {
1553 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/teamwork-projects/icon.svg" 1553 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/teamwork-projects/icon.svg"
1554 } 1554 }
@@ -1557,7 +1557,7 @@
1557 "featured": true, 1557 "featured": true,
1558 "id": "telegram", 1558 "id": "telegram",
1559 "name": "Telegram", 1559 "name": "Telegram",
1560 "version": "3.2.1", 1560 "version": "3.2.2",
1561 "icons": { 1561 "icons": {
1562 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/telegram/icon.svg" 1562 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/telegram/icon.svg"
1563 } 1563 }
@@ -1566,7 +1566,7 @@
1566 "featured": false, 1566 "featured": false,
1567 "id": "telegram-react", 1567 "id": "telegram-react",
1568 "name": "Telegram React", 1568 "name": "Telegram React",
1569 "version": "1.2.1", 1569 "version": "1.2.2",
1570 "icons": { 1570 "icons": {
1571 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/telegram-react/icon.svg" 1571 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/telegram-react/icon.svg"
1572 } 1572 }
@@ -1575,7 +1575,7 @@
1575 "featured": false, 1575 "featured": false,
1576 "id": "thelounge", 1576 "id": "thelounge",
1577 "name": "The Lounge", 1577 "name": "The Lounge",
1578 "version": "1.1.1", 1578 "version": "1.1.2",
1579 "icons": { 1579 "icons": {
1580 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/thelounge/icon.svg" 1580 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/thelounge/icon.svg"
1581 } 1581 }
@@ -1584,7 +1584,7 @@
1584 "featured": false, 1584 "featured": false,
1585 "id": "threema", 1585 "id": "threema",
1586 "name": "Threema", 1586 "name": "Threema",
1587 "version": "1.1.1", 1587 "version": "1.1.2",
1588 "icons": { 1588 "icons": {
1589 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/threema/icon.svg" 1589 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/threema/icon.svg"
1590 } 1590 }
@@ -1593,7 +1593,7 @@
1593 "featured": false, 1593 "featured": false,
1594 "id": "TickTick", 1594 "id": "TickTick",
1595 "name": "TickTick", 1595 "name": "TickTick",
1596 "version": "1.2.0", 1596 "version": "1.2.1",
1597 "icons": { 1597 "icons": {
1598 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/TickTick/icon.svg" 1598 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/TickTick/icon.svg"
1599 } 1599 }
@@ -1602,7 +1602,7 @@
1602 "featured": false, 1602 "featured": false,
1603 "id": "tinder", 1603 "id": "tinder",
1604 "name": "Tinder", 1604 "name": "Tinder",
1605 "version": "1.0.0", 1605 "version": "1.0.1",
1606 "icons": { 1606 "icons": {
1607 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/tinder/icon.svg" 1607 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/tinder/icon.svg"
1608 } 1608 }
@@ -1638,7 +1638,7 @@
1638 "featured": false, 1638 "featured": false,
1639 "id": "trello", 1639 "id": "trello",
1640 "name": "Trello", 1640 "name": "Trello",
1641 "version": "1.1.0", 1641 "version": "1.1.1",
1642 "icons": { 1642 "icons": {
1643 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/trello/icon.svg" 1643 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/trello/icon.svg"
1644 } 1644 }
@@ -1656,7 +1656,7 @@
1656 "featured": true, 1656 "featured": true,
1657 "id": "tweetdeck", 1657 "id": "tweetdeck",
1658 "name": "Tweetdeck", 1658 "name": "Tweetdeck",
1659 "version": "1.2.1", 1659 "version": "1.2.2",
1660 "icons": { 1660 "icons": {
1661 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/tweetdeck/icon.svg" 1661 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/tweetdeck/icon.svg"
1662 } 1662 }
@@ -1665,7 +1665,7 @@
1665 "featured": false, 1665 "featured": false,
1666 "id": "twist", 1666 "id": "twist",
1667 "name": "twist", 1667 "name": "twist",
1668 "version": "1.1.0", 1668 "version": "1.1.1",
1669 "icons": { 1669 "icons": {
1670 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twist/icon.svg" 1670 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twist/icon.svg"
1671 } 1671 }
@@ -1683,7 +1683,7 @@
1683 "featured": false, 1683 "featured": false,
1684 "id": "twitter", 1684 "id": "twitter",
1685 "name": "Twitter", 1685 "name": "Twitter",
1686 "version": "1.2.0", 1686 "version": "1.2.1",
1687 "icons": { 1687 "icons": {
1688 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twitter/icon.svg" 1688 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twitter/icon.svg"
1689 } 1689 }
@@ -1692,7 +1692,7 @@
1692 "featured": false, 1692 "featured": false,
1693 "id": "twitter-dm", 1693 "id": "twitter-dm",
1694 "name": "Twitter DM", 1694 "name": "Twitter DM",
1695 "version": "1.1.1", 1695 "version": "1.1.2",
1696 "icons": { 1696 "icons": {
1697 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twitter-dm/icon.svg" 1697 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/twitter-dm/icon.svg"
1698 } 1698 }
@@ -1701,7 +1701,7 @@
1701 "featured": false, 1701 "featured": false,
1702 "id": "udemy", 1702 "id": "udemy",
1703 "name": "Udemy", 1703 "name": "Udemy",
1704 "version": "1.0.4", 1704 "version": "1.0.5",
1705 "icons": { 1705 "icons": {
1706 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/udemy/icon.svg" 1706 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/udemy/icon.svg"
1707 } 1707 }
@@ -1719,7 +1719,7 @@
1719 "featured": false, 1719 "featured": false,
1720 "id": "vk", 1720 "id": "vk",
1721 "name": "VK", 1721 "name": "VK",
1722 "version": "1.1.1", 1722 "version": "1.1.2",
1723 "icons": { 1723 "icons": {
1724 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/vk/icon.svg" 1724 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/vk/icon.svg"
1725 } 1725 }
@@ -1728,7 +1728,7 @@
1728 "featured": false, 1728 "featured": false,
1729 "id": "voxer", 1729 "id": "voxer",
1730 "name": "Voxer", 1730 "name": "Voxer",
1731 "version": "1.1.0", 1731 "version": "1.1.1",
1732 "icons": { 1732 "icons": {
1733 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/voxer/icon.svg" 1733 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/voxer/icon.svg"
1734 } 1734 }
@@ -1737,7 +1737,7 @@
1737 "featured": false, 1737 "featured": false,
1738 "id": "wakatime", 1738 "id": "wakatime",
1739 "name": "Wakatime", 1739 "name": "Wakatime",
1740 "version": "1.0.0", 1740 "version": "1.0.1",
1741 "icons": { 1741 "icons": {
1742 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wakatime/icon.svg" 1742 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wakatime/icon.svg"
1743 } 1743 }
@@ -1746,7 +1746,7 @@
1746 "featured": false, 1746 "featured": false,
1747 "id": "webex-teams", 1747 "id": "webex-teams",
1748 "name": "Webex Teams", 1748 "name": "Webex Teams",
1749 "version": "1.1.1", 1749 "version": "1.1.2",
1750 "icons": { 1750 "icons": {
1751 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/webex-teams/icon.svg" 1751 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/webex-teams/icon.svg"
1752 } 1752 }
@@ -1755,7 +1755,7 @@
1755 "featured": false, 1755 "featured": false,
1756 "id": "wechat", 1756 "id": "wechat",
1757 "name": "WeChat", 1757 "name": "WeChat",
1758 "version": "1.1.1", 1758 "version": "1.1.2",
1759 "icons": { 1759 "icons": {
1760 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wechat/icon.svg" 1760 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wechat/icon.svg"
1761 } 1761 }
@@ -1764,7 +1764,7 @@
1764 "featured": false, 1764 "featured": false,
1765 "id": "weekplan", 1765 "id": "weekplan",
1766 "name": "Weekplan", 1766 "name": "Weekplan",
1767 "version": "1.0.0", 1767 "version": "1.0.1",
1768 "icons": { 1768 "icons": {
1769 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/weekplan/icon.svg" 1769 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/weekplan/icon.svg"
1770 } 1770 }
@@ -1773,7 +1773,7 @@
1773 "featured": true, 1773 "featured": true,
1774 "id": "whatsapp", 1774 "id": "whatsapp",
1775 "name": "WhatsApp", 1775 "name": "WhatsApp",
1776 "version": "3.3.3", 1776 "version": "3.3.4",
1777 "icons": { 1777 "icons": {
1778 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/whatsapp/icon.svg" 1778 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/whatsapp/icon.svg"
1779 } 1779 }
@@ -1782,7 +1782,7 @@
1782 "featured": false, 1782 "featured": false,
1783 "id": "whereby", 1783 "id": "whereby",
1784 "name": "whereby.com", 1784 "name": "whereby.com",
1785 "version": "1.0.0", 1785 "version": "1.0.1",
1786 "icons": { 1786 "icons": {
1787 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/whereby/icon.svg" 1787 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/whereby/icon.svg"
1788 } 1788 }
@@ -1791,7 +1791,7 @@
1791 "featured": false, 1791 "featured": false,
1792 "id": "wire", 1792 "id": "wire",
1793 "name": "Wire", 1793 "name": "Wire",
1794 "version": "1.0.3", 1794 "version": "1.0.4",
1795 "icons": { 1795 "icons": {
1796 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wire/icon.svg" 1796 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wire/icon.svg"
1797 } 1797 }
@@ -1818,7 +1818,7 @@
1818 "featured": false, 1818 "featured": false,
1819 "id": "wrike", 1819 "id": "wrike",
1820 "name": "Wrike", 1820 "name": "Wrike",
1821 "version": "1.1.1", 1821 "version": "1.1.2",
1822 "icons": { 1822 "icons": {
1823 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wrike/icon.svg" 1823 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/wrike/icon.svg"
1824 } 1824 }
@@ -1836,7 +1836,7 @@
1836 "featured": true, 1836 "featured": true,
1837 "id": "yahoo-mail", 1837 "id": "yahoo-mail",
1838 "name": "Yahoo Mail", 1838 "name": "Yahoo Mail",
1839 "version": "1.1.0", 1839 "version": "1.1.1",
1840 "icons": { 1840 "icons": {
1841 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yahoo-mail/icon.svg" 1841 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yahoo-mail/icon.svg"
1842 } 1842 }
@@ -1845,7 +1845,7 @@
1845 "featured": false, 1845 "featured": false,
1846 "id": "yammer", 1846 "id": "yammer",
1847 "name": "Yammer", 1847 "name": "Yammer",
1848 "version": "1.1.1", 1848 "version": "1.1.2",
1849 "icons": { 1849 "icons": {
1850 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yammer/icon.svg" 1850 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yammer/icon.svg"
1851 } 1851 }
@@ -1854,7 +1854,7 @@
1854 "featured": false, 1854 "featured": false,
1855 "id": "yandex-mail", 1855 "id": "yandex-mail",
1856 "name": "Yandex Mail", 1856 "name": "Yandex Mail",
1857 "version": "1.0.0", 1857 "version": "1.0.1",
1858 "icons": { 1858 "icons": {
1859 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yandex-mail/icon.svg" 1859 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/yandex-mail/icon.svg"
1860 } 1860 }
@@ -1863,7 +1863,7 @@
1863 "featured": false, 1863 "featured": false,
1864 "id": "youtrack", 1864 "id": "youtrack",
1865 "name": "YouTrack", 1865 "name": "YouTrack",
1866 "version": "1.2.0", 1866 "version": "1.2.1",
1867 "icons": { 1867 "icons": {
1868 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtrack/icon.svg" 1868 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/youtrack/icon.svg"
1869 } 1869 }
@@ -1881,7 +1881,7 @@
1881 "featured": false, 1881 "featured": false,
1882 "id": "zalo", 1882 "id": "zalo",
1883 "name": "Zalo", 1883 "name": "Zalo",
1884 "version": "1.2.0", 1884 "version": "1.2.1",
1885 "icons": { 1885 "icons": {
1886 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zalo/icon.svg" 1886 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zalo/icon.svg"
1887 } 1887 }
@@ -1917,7 +1917,7 @@
1917 "featured": false, 1917 "featured": false,
1918 "id": "zimbra", 1918 "id": "zimbra",
1919 "name": "Zimbra", 1919 "name": "Zimbra",
1920 "version": "1.1.0", 1920 "version": "1.1.1",
1921 "icons": { 1921 "icons": {
1922 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zimbra/icon.svg" 1922 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zimbra/icon.svg"
1923 } 1923 }
@@ -1935,7 +1935,7 @@
1935 "featured": false, 1935 "featured": false,
1936 "id": "zulip", 1936 "id": "zulip",
1937 "name": "Zulip", 1937 "name": "Zulip",
1938 "version": "1.1.0", 1938 "version": "1.1.1",
1939 "icons": { 1939 "icons": {
1940 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zulip/icon.svg" 1940 "svg": "https://cdn.jsdelivr.net/gh/getferdi/recipes/recipes/zulip/icon.svg"
1941 } 1941 }
diff --git a/docs/frontend_api.md b/docs/frontend_api.md
index 59a2467..cceda9c 100644
--- a/docs/frontend_api.md
+++ b/docs/frontend_api.md
@@ -115,7 +115,7 @@ Runs `fn` on every notification created by the service before sending them to th
115```js 115```js
116// messenger integration 116// messenger integration
117module.exports = (Ferdi) => { 117module.exports = (Ferdi) => {
118 const getMessages = function getMessages() { 118 const getMessages = () => {
119 let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length; 119 let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length;
120 const messageRequestsElement = document.querySelector('._5nxf'); 120 const messageRequestsElement = document.querySelector('._5nxf');
121 if (messageRequestsElement) { 121 if (messageRequestsElement) {
diff --git a/docs/integration.md b/docs/integration.md
index 38a5a32..08164fc 100644
--- a/docs/integration.md
+++ b/docs/integration.md
@@ -152,7 +152,7 @@ The `webview.js` is the actual script that will be loaded into the webview. Here
152```js 152```js
153// orat.io integration 153// orat.io integration
154module.exports = (Ferdi) => { 154module.exports = (Ferdi) => {
155 function getMessages() { 155 const getMessages = () => {
156 let direct = 0; 156 let direct = 0;
157 let indirect = 0; 157 let indirect = 0;
158 const FerdiData = document.querySelector("#FerdiMessages").dataset; 158 const FerdiData = document.querySelector("#FerdiMessages").dataset;
diff --git a/recipes/OVHCloud/webview.js b/recipes/OVHCloud/webview.js
index ee7d8aa..1d4a8b3 100644
--- a/recipes/OVHCloud/webview.js
+++ b/recipes/OVHCloud/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your ovh-cloud service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your ovh-cloud service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/TickTick/package.json b/recipes/TickTick/package.json
index c7d3b58..3b5156c 100644
--- a/recipes/TickTick/package.json
+++ b/recipes/TickTick/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "TickTick", 2 "id": "TickTick",
3 "name": "TickTick", 3 "name": "TickTick",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.ticktick.com/#p/inbox/tasks" 7 "serviceURL": "https://www.ticktick.com/#p/inbox/tasks"
diff --git a/recipes/TickTick/webview.js b/recipes/TickTick/webview.js
index 927bb08..ae3265b 100644
--- a/recipes/TickTick/webview.js
+++ b/recipes/TickTick/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 // all overdue items are being counted 3 // all overdue items are being counted
4 const count = document.querySelectorAll('.duedate-overdue').length; 4 const count = document.querySelectorAll('.duedate-overdue').length;
5 5
diff --git a/recipes/air-droid/package.json b/recipes/air-droid/package.json
index a307c31..fe72a8d 100644
--- a/recipes/air-droid/package.json
+++ b/recipes/air-droid/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "air-droid", 2 "id": "air-droid",
3 "name": "air-droid", 3 "name": "air-droid",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "http://web.airdroid.com/", 7 "serviceURL": "http://web.airdroid.com/",
diff --git a/recipes/air-droid/webview.js b/recipes/air-droid/webview.js
index 160a9f3..9bbcdb6 100644
--- a/recipes/air-droid/webview.js
+++ b/recipes/air-droid/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 const count = {}; 3 const count = {};
4 const data = document.querySelector('#FranzMessages').dataset; 4 const data = document.querySelector('#FranzMessages').dataset;
5 if (data) { 5 if (data) {
diff --git a/recipes/amazon-web-services/webview.js b/recipes/amazon-web-services/webview.js
index 6deb036..d024c70 100644
--- a/recipes/amazon-web-services/webview.js
+++ b/recipes/amazon-web-services/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your amazon-web-services service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your amazon-web-services service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/android-messages/package.json b/recipes/android-messages/package.json
index 962eb2b..3a080ba 100644
--- a/recipes/android-messages/package.json
+++ b/recipes/android-messages/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "android-messages", 2 "id": "android-messages",
3 "name": "Android Messages", 3 "name": "Android Messages",
4 "version": "2.2.2", 4 "version": "2.2.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://messages.google.com/web", 7 "serviceURL": "https://messages.google.com/web",
diff --git a/recipes/android-messages/webview.js b/recipes/android-messages/webview.js
index db65de6..9195de0 100644
--- a/recipes/android-messages/webview.js
+++ b/recipes/android-messages/webview.js
@@ -8,7 +8,7 @@ setTimeout(() => {
8}, 1000); 8}, 1000);
9 9
10module.exports = (Ferdi, settings) => { 10module.exports = (Ferdi, settings) => {
11 function getMessages() { 11 const getMessages = () => {
12 const messages = document.querySelectorAll('.text-content.unread').length; 12 const messages = document.querySelectorAll('.text-content.unread').length;
13 Ferdi.setBadge(messages); 13 Ferdi.setBadge(messages);
14 } 14 }
diff --git a/recipes/asana/package.json b/recipes/asana/package.json
index 5963557..1ab14e9 100644
--- a/recipes/asana/package.json
+++ b/recipes/asana/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "asana", 2 "id": "asana",
3 "name": "Asana", 3 "name": "Asana",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.asana.com", 7 "serviceURL": "https://app.asana.com",
diff --git a/recipes/asana/webview.js b/recipes/asana/webview.js
index 2f544db..257c7e1 100644
--- a/recipes/asana/webview.js
+++ b/recipes/asana/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const hasNotification = document.querySelectorAll('.SidebarTopNavLinks-notificationsButton--hasNewNotifications'); 7 const hasNotification = document.querySelectorAll('.SidebarTopNavLinks-notificationsButton--hasNewNotifications');
8 Ferdi.setBadge(hasNotification.length > 0 ? 1 : 0); 8 Ferdi.setBadge(hasNotification.length > 0 ? 1 : 0);
9 }; 9 };
diff --git a/recipes/binance/webview.js b/recipes/binance/webview.js
index 2b16247..c9d1047 100644
--- a/recipes/binance/webview.js
+++ b/recipes/binance/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your binance service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your binance service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/bip/package.json b/recipes/bip/package.json
index 3bc6898..d42c72a 100644
--- a/recipes/bip/package.json
+++ b/recipes/bip/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "bip", 2 "id": "bip",
3 "name": "BiP", 3 "name": "BiP",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.bip.com/", 7 "serviceURL": "https://web.bip.com/",
diff --git a/recipes/bip/webview.js b/recipes/bip/webview.js
index 89668d7..ea8fa5f 100644
--- a/recipes/bip/webview.js
+++ b/recipes/bip/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('.contact-list__message__unread-badge-counter'); 7 const elements = document.querySelectorAll('.contact-list__message__unread-badge-counter');
8 let count = 0; 8 let count = 0;
9 for (let i = 0; i < elements.length; i++) { 9 for (let i = 0; i < elements.length; i++) {
diff --git a/recipes/bitwarden/webview.js b/recipes/bitwarden/webview.js
index 3d2e783..9048e1a 100644
--- a/recipes/bitwarden/webview.js
+++ b/recipes/bitwarden/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your bitwarden service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your bitwarden service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/campuswire/package.json b/recipes/campuswire/package.json
index 334061f..ede4dfb 100644
--- a/recipes/campuswire/package.json
+++ b/recipes/campuswire/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "campuswire", 2 "id": "campuswire",
3 "name": "Campuswire", 3 "name": "Campuswire",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://campuswire.com/c", 7 "serviceURL": "https://campuswire.com/c",
diff --git a/recipes/campuswire/webview.js b/recipes/campuswire/webview.js
index 34878f3..9837030 100644
--- a/recipes/campuswire/webview.js
+++ b/recipes/campuswire/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length; 3 let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length;
4 const messageRequestsElement = document.querySelector('._5nxf'); 4 const messageRequestsElement = document.querySelector('._5nxf');
5 5
diff --git a/recipes/canvas/package.json b/recipes/canvas/package.json
index f4500d1..7e856c5 100644
--- a/recipes/canvas/package.json
+++ b/recipes/canvas/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "canvas", 2 "id": "canvas",
3 "name": "Canvas", 3 "name": "Canvas",
4 "version": "1.0.2", 4 "version": "1.0.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.instructure.com/", 7 "serviceURL": "https://{teamId}.instructure.com/",
diff --git a/recipes/canvas/webview.js b/recipes/canvas/webview.js
index 1bd3c84..a70f448 100644
--- a/recipes/canvas/webview.js
+++ b/recipes/canvas/webview.js
@@ -4,7 +4,7 @@ module.exports = Ferdi => {
4 4
5 const MessageElement = document.querySelector('[id=global_nav_conversations_link]'); 5 const MessageElement = document.querySelector('[id=global_nav_conversations_link]');
6 if (MessageElement) { 6 if (MessageElement) {
7 direct += MessageElement.innerHTML; 7 direct += Ferdi.safeParseInt(MessageElement.innerHTML);
8 } 8 }
9 9
10 Ferdi.setBadge(direct); 10 Ferdi.setBadge(direct);
diff --git a/recipes/chatwork/package.json b/recipes/chatwork/package.json
index 52cbf02..6cba86e 100644
--- a/recipes/chatwork/package.json
+++ b/recipes/chatwork/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "chatwork", 2 "id": "chatwork",
3 "name": "ChatWork", 3 "name": "ChatWork",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/hideosasaki/recipe-chatwork", 6 "repository": "https://github.com/hideosasaki/recipe-chatwork",
7 "config": { 7 "config": {
diff --git a/recipes/chatwork/webview.js b/recipes/chatwork/webview.js
index cc40834..05e1912 100644
--- a/recipes/chatwork/webview.js
+++ b/recipes/chatwork/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let directCount = 0; 3 let directCount = 0;
4 let indirectCount = 0; 4 let indirectCount = 0;
5 const roomInfoContainer = document.querySelectorAll('li.sc-dnqmqq'); 5 const roomInfoContainer = document.querySelectorAll('li.sc-dnqmqq');
diff --git a/recipes/ciscospark/package.json b/recipes/ciscospark/package.json
index dbf031e..06e05eb 100644
--- a/recipes/ciscospark/package.json
+++ b/recipes/ciscospark/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "ciscospark", 2 "id": "ciscospark",
3 "name": "Cisco Spark", 3 "name": "Cisco Spark",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.ciscospark.com", 7 "serviceURL": "https://web.ciscospark.com",
diff --git a/recipes/ciscospark/webview.js b/recipes/ciscospark/webview.js
index 8de5b8d..9cc66b2 100644
--- a/recipes/ciscospark/webview.js
+++ b/recipes/ciscospark/webview.js
@@ -5,7 +5,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const UNREAD_BADGE_SELECTOR = '.navigation-item--badgeCount'; 6 const UNREAD_BADGE_SELECTOR = '.navigation-item--badgeCount';
7 7
8 const getMessages = function getMessages() { 8 const getMessages = () => {
9 let directCount = 0; 9 let directCount = 0;
10 let indirectCount = 0; 10 let indirectCount = 0;
11 11
diff --git a/recipes/clickup/package.json b/recipes/clickup/package.json
index cebcd93..4a33492 100644
--- a/recipes/clickup/package.json
+++ b/recipes/clickup/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "clickup", 2 "id": "clickup",
3 "name": "ClickUp", 3 "name": "ClickUp",
4 "version": "2.2.0", 4 "version": "2.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.clickup.com", 7 "serviceURL": "https://app.clickup.com",
diff --git a/recipes/clickup/webview.js b/recipes/clickup/webview.js
index 420ca5a..8dc8d26 100644
--- a/recipes/clickup/webview.js
+++ b/recipes/clickup/webview.js
@@ -1,6 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const elements = document.querySelectorAll('.unreadCount');
4 const unread = document.querySelector('.cu-notification-alert__dot'); 3 const unread = document.querySelector('.cu-notification-alert__dot');
5 Ferdi.setBadge(unread ? 1 : 0); 4 Ferdi.setBadge(unread ? 1 : 0);
6 }; 5 };
diff --git a/recipes/cliq/package.json b/recipes/cliq/package.json
index ecb01f5..95c07af 100644
--- a/recipes/cliq/package.json
+++ b/recipes/cliq/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "cliq", 2 "id": "cliq",
3 "name": "Cliq", 3 "name": "Cliq",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "repository": "https://github.com/cliqgeek/recipe-cliq", 5 "repository": "https://github.com/cliqgeek/recipe-cliq",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.zoho.com/cliq/login.html", 7 "serviceURL": "https://www.zoho.com/cliq/login.html",
diff --git a/recipes/cliq/webview.js b/recipes/cliq/webview.js
index 067ea5b..0c6e550 100644
--- a/recipes/cliq/webview.js
+++ b/recipes/cliq/webview.js
@@ -1,6 +1,6 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = () => { 2 const getMessages = () => {
3 Ferdi.setBadge(ConversationsList.getUnreadBadgeCount()); 3 // Ferdi.setBadge(ConversationsList.getUnreadBadgeCount());
4 }; 4 };
5 5
6 Ferdi.loop(getMessages); 6 Ferdi.loop(getMessages);
diff --git a/recipes/clockify/package.json b/recipes/clockify/package.json
index c48e32b..6150326 100644
--- a/recipes/clockify/package.json
+++ b/recipes/clockify/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "clockify", 2 "id": "clockify",
3 "name": "Clockify", 3 "name": "Clockify",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://clockify.me/tracker", 7 "serviceURL": "https://clockify.me/tracker",
diff --git a/recipes/clockify/webview.js b/recipes/clockify/webview.js
index 252b3e3..9fbb613 100644
--- a/recipes/clockify/webview.js
+++ b/recipes/clockify/webview.js
@@ -1,7 +1,6 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const notifications = document.querySelectorAll('.notification--number'); 3 const notifications = document.querySelectorAll('.notification--number');
4
5 Ferdi.setBadge(0, notifications.length >= 1 ? 1 : 0); 4 Ferdi.setBadge(0, notifications.length >= 1 ? 1 : 0);
6 }; 5 };
7 6
diff --git a/recipes/clubhouse/package.json b/recipes/clubhouse/package.json
index 1fe2000..55e5aa8 100644
--- a/recipes/clubhouse/package.json
+++ b/recipes/clubhouse/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "clubhouse", 2 "id": "clubhouse",
3 "name": "Clubhouse", 3 "name": "Clubhouse",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/dnlnrs/ferdi-recipe-clubhouse", 6 "repository": "https://github.com/dnlnrs/ferdi-recipe-clubhouse",
7 "config": { 7 "config": {
diff --git a/recipes/clubhouse/webview.js b/recipes/clubhouse/webview.js
index be02ac0..ae92c04 100644
--- a/recipes/clubhouse/webview.js
+++ b/recipes/clubhouse/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 const hasNotifications = document.querySelector('#notifications-link .badge').classList.contains('visible'); 3 const hasNotifications = document.querySelector('#notifications-link .badge').classList.contains('visible');
4 Ferdi.setBadge(0, hasNotifications ? 1 : 0); 4 Ferdi.setBadge(0, hasNotifications ? 1 : 0);
5 } 5 }
diff --git a/recipes/devRant/package.json b/recipes/devRant/package.json
index 6dee2d6..061328a 100644
--- a/recipes/devRant/package.json
+++ b/recipes/devRant/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "devRant", 2 "id": "devRant",
3 "name": "devRant", 3 "name": "devRant",
4 "version": "1.0.1", 4 "version": "1.0.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/emamut/recipe-devrant", 6 "repository": "https://github.com/emamut/recipe-devrant",
7 "config": { 7 "config": {
diff --git a/recipes/devRant/webview.js b/recipes/devRant/webview.js
index 62a47e6..6a30b3a 100644
--- a/recipes/devRant/webview.js
+++ b/recipes/devRant/webview.js
@@ -10,7 +10,7 @@ setTimeout(() => {
10}, 1000); 10}, 1000);
11 11
12module.exports = (Ferdi) => { 12module.exports = (Ferdi) => {
13 const getMessages = function getMessages() { 13 const getMessages = () => {
14 const elements = document.querySelectorAll('.CxUIE, .unread, ._0LqQ'); 14 const elements = document.querySelectorAll('.CxUIE, .unread, ._0LqQ');
15 let count = 0; 15 let count = 0;
16 for (let i = 0; i < elements.length; i += 1) { 16 for (let i = 0; i < elements.length; i += 1) {
diff --git a/recipes/dialpad/package.json b/recipes/dialpad/package.json
index d2a97d2..14ca8e3 100644
--- a/recipes/dialpad/package.json
+++ b/recipes/dialpad/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "dialpad", 2 "id": "dialpad",
3 "name": "Dialpad", 3 "name": "Dialpad",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/TheKevJames/franz-recipe-dialpad", 6 "repository": "https://github.com/TheKevJames/franz-recipe-dialpad",
7 "config": { 7 "config": {
diff --git a/recipes/dialpad/webview.js b/recipes/dialpad/webview.js
index 2bf23f3..a5c6e4a 100644
--- a/recipes/dialpad/webview.js
+++ b/recipes/dialpad/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 function getMessages() { 6 const getMessages = () => {
7 var unreadCount = 0; 7 var unreadCount = 0;
8 $.each($('[data-qa-has-unreads]'), (idx, item) => unreadCount += Ferdi.safeParseInt(item.attributes["data-qa-has-unreads"].value)); 8 $.each($('[data-qa-has-unreads]'), (idx, item) => unreadCount += Ferdi.safeParseInt(item.attributes["data-qa-has-unreads"].value));
9 9
diff --git a/recipes/dingtalk/package.json b/recipes/dingtalk/package.json
index 2cf0474..4a20a26 100644
--- a/recipes/dingtalk/package.json
+++ b/recipes/dingtalk/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "dingtalk", 2 "id": "dingtalk",
3 "name": "Dingtalk", 3 "name": "Dingtalk",
4 "version": "1.0.24", 4 "version": "1.0.25",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://im.dingtalk.com/", 7 "serviceURL": "https://im.dingtalk.com/",
diff --git a/recipes/dingtalk/webview.js b/recipes/dingtalk/webview.js
index 68de1b6..aa5f2a3 100644
--- a/recipes/dingtalk/webview.js
+++ b/recipes/dingtalk/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 let checkIsRun = false; 6 let checkIsRun = false;
7 checkHeightAction = () => { 7 const checkHeightAction = () => {
8 checkIsRun = true; 8 checkIsRun = true;
9 let checkHeight = setInterval(() => { 9 let checkHeight = setInterval(() => {
10 let menuPanel = document.getElementById('menu-pannel') 10 let menuPanel = document.getElementById('menu-pannel')
@@ -25,7 +25,7 @@ module.exports = (Ferdi) => {
25 } 25 }
26 }); 26 });
27 27
28 const getMessages = function getMessages() { 28 const getMessages = () => {
29 const x = document.querySelectorAll('.unread-num em.ng-binding') 29 const x = document.querySelectorAll('.unread-num em.ng-binding')
30 Ferdi.setBadge(x.length > 0 ? x[0].innerHTML : 0); 30 Ferdi.setBadge(x.length > 0 ? x[0].innerHTML : 0);
31 }; 31 };
diff --git a/recipes/discord/package.json b/recipes/discord/package.json
index 243e64b..ae1ba0c 100644
--- a/recipes/discord/package.json
+++ b/recipes/discord/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "discord", 2 "id": "discord",
3 "name": "Discord", 3 "name": "Discord",
4 "version": "1.4.2", 4 "version": "1.4.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://discordapp.com/login", 7 "serviceURL": "https://discordapp.com/login",
diff --git a/recipes/discord/webview.js b/recipes/discord/webview.js
index 3134221..5a9f55a 100644
--- a/recipes/discord/webview.js
+++ b/recipes/discord/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi, settings) => { 5module.exports = (Ferdi, settings) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let count = 0; 7 let count = 0;
8 const container = document.querySelector('[role="tablist"] > [title="Chats"] > div'); 8 const container = document.querySelector('[role="tablist"] > [title="Chats"] > div');
9 9
diff --git a/recipes/disqus/package.json b/recipes/disqus/package.json
index 73f9a24..11ce689 100644
--- a/recipes/disqus/package.json
+++ b/recipes/disqus/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "disqus", 2 "id": "disqus",
3 "name": "Disqus", 3 "name": "Disqus",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://disqus.com/home/" 7 "serviceURL": "https://disqus.com/home/"
diff --git a/recipes/disqus/webview.js b/recipes/disqus/webview.js
index b5c1902..a79f5e7 100644
--- a/recipes/disqus/webview.js
+++ b/recipes/disqus/webview.js
@@ -1,10 +1,10 @@
1const getInnerInt = selector => {
2 const element = document.querySelector(selector);
3 return element && Ferdi.safeParseInt(element.innerText);
4};
5
6module.exports = Ferdi => { 1module.exports = Ferdi => {
7 const getMessages = function getMessages() { 2 const getInnerInt = selector => {
3 const element = document.querySelector(selector);
4 return element && Ferdi.safeParseInt(element.innerText);
5 };
6
7 const getMessages = () => {
8 const direct = ( 8 const direct = (
9 getInnerInt("header div[data-role='unread-notification-count']") || 9 getInnerInt("header div[data-role='unread-notification-count']") ||
10 getInnerInt('a.has-notifs div.notif-count') || 10 getInnerInt('a.has-notifs div.notif-count') ||
diff --git a/recipes/dockerhub/webview.js b/recipes/dockerhub/webview.js
index 1fd69e8..04d0413 100644
--- a/recipes/dockerhub/webview.js
+++ b/recipes/dockerhub/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your docker hub service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your docker hub service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/drive/package.json b/recipes/drive/package.json
index dd936f1..3bb9c85 100644
--- a/recipes/drive/package.json
+++ b/recipes/drive/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "drive", 2 "id": "drive",
3 "name": "Drive", 3 "name": "Drive",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/gaspergrom/Franz-services", 6 "repository": "https://github.com/gaspergrom/Franz-services",
7 "config": { 7 "config": {
diff --git a/recipes/drive/webview.js b/recipes/drive/webview.js
index ed32d8e..cc1ed84 100644
--- a/recipes/drive/webview.js
+++ b/recipes/drive/webview.js
@@ -2,8 +2,8 @@ const _path = _interopRequireDefault(require('path'));
2 2
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Franz) => { 5module.exports = (Ferdi) => {
6 function getMessages() { 6 const getMessages = () => {
7 let direct = 0; 7 let direct = 0;
8 let indirect = 0; 8 let indirect = 0;
9 const data = document.querySelector('#FranzMessages').dataset; 9 const data = document.querySelector('#FranzMessages').dataset;
@@ -12,9 +12,9 @@ module.exports = (Franz) => {
12 indirect = data.indirect; 12 indirect = data.indirect;
13 } 13 }
14 14
15 Franz.setBadge(direct, indirect); 15 Ferdi.setBadge(direct, indirect);
16 } 16 }
17 17
18 Franz.loop(getMessages); 18 Ferdi.loop(getMessages);
19 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css')); 19 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css'));
20} 20}
diff --git a/recipes/element/package.json b/recipes/element/package.json
index d4cf96d..5e50330 100644
--- a/recipes/element/package.json
+++ b/recipes/element/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "element", 2 "id": "element",
3 "name": "Element", 3 "name": "Element",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "aliases": [ 6 "aliases": [
7 "Riot.im", 7 "Riot.im",
diff --git a/recipes/element/webview.js b/recipes/element/webview.js
index c1fdea3..7baa623 100644
--- a/recipes/element/webview.js
+++ b/recipes/element/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 const badges = document.querySelectorAll('.mx_RoomSublist:not(.mx_RoomSublist_hidden) .mx_RoomSublist_badgeContainer'); 3 const badges = document.querySelectorAll('.mx_RoomSublist:not(.mx_RoomSublist_hidden) .mx_RoomSublist_badgeContainer');
4 4
5 // Number of messages from People 5 // Number of messages from People
diff --git a/recipes/erepublik/package.json b/recipes/erepublik/package.json
index c8efaab..2e8356a 100644
--- a/recipes/erepublik/package.json
+++ b/recipes/erepublik/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "erepublik", 2 "id": "erepublik",
3 "name": "eRepublik", 3 "name": "eRepublik",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://erepublik.com" 7 "serviceURL": "https://erepublik.com"
diff --git a/recipes/erepublik/webview.js b/recipes/erepublik/webview.js
index 7c24532..6a105e1 100644
--- a/recipes/erepublik/webview.js
+++ b/recipes/erepublik/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elementNotify = document.getElementsByClassName('notify'); 7 const elementNotify = document.getElementsByClassName('notify');
8 const elementFeed = document.getElementsByClassName('unreadCounter ng-binding ng-scope'); 8 const elementFeed = document.getElementsByClassName('unreadCounter ng-binding ng-scope');
9 9
diff --git a/recipes/facebookpages/package.json b/recipes/facebookpages/package.json
index 28f06ec..313e11b 100644
--- a/recipes/facebookpages/package.json
+++ b/recipes/facebookpages/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "facebookpages", 2 "id": "facebookpages",
3 "name": "Facebook Pages", 3 "name": "Facebook Pages",
4 "version": "1.2.2", 4 "version": "1.2.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://facebook.com/{teamId}/", 7 "serviceURL": "https://facebook.com/{teamId}/",
diff --git a/recipes/facebookpages/webview.js b/recipes/facebookpages/webview.js
index 1cc75c6..45f4e95 100644
--- a/recipes/facebookpages/webview.js
+++ b/recipes/facebookpages/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi, options) => { 1module.exports = (Ferdi, options) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let messages = 0; 3 let messages = 0;
4 const element = document.querySelector('[data-testid="message_count"] span'); 4 const element = document.querySelector('[data-testid="message_count"] span');
5 5
@@ -19,7 +19,7 @@ module.exports = (Ferdi, options) => {
19 localStorage.removeItem('franz-needsRedirect'); 19 localStorage.removeItem('franz-needsRedirect');
20 } 20 }
21 } else { 21 } else {
22 localStorage.setItem('franz-needsRedirect', true); 22 localStorage.setItem('franz-needsRedirect', 'true');
23 } 23 }
24 }, 500); 24 }, 500);
25}; 25};
diff --git a/recipes/fastmail/package.json b/recipes/fastmail/package.json
index 7a73acb..61a9587 100644
--- a/recipes/fastmail/package.json
+++ b/recipes/fastmail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "fastmail", 2 "id": "fastmail",
3 "name": "FastMail", 3 "name": "FastMail",
4 "version": "2.1.0", 4 "version": "2.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.fastmail.com/mail/", 7 "serviceURL": "https://www.fastmail.com/mail/",
diff --git a/recipes/fastmail/webview.js b/recipes/fastmail/webview.js
index 46bad0d..42883e8 100644
--- a/recipes/fastmail/webview.js
+++ b/recipes/fastmail/webview.js
@@ -8,7 +8,7 @@ module.exports = (Ferdi) => {
8 if (!inbox) { 8 if (!inbox) {
9 return; 9 return;
10 } 10 }
11 const messages = Number(inbox.innerText); 11 const messages = Ferdi.safeParseInt(inbox.innerText);
12 Ferdi.setBadge(messages); 12 Ferdi.setBadge(messages);
13 }; 13 };
14 14
diff --git a/recipes/feedbin/package.json b/recipes/feedbin/package.json
index 7a38ad3..a93cb1e 100644
--- a/recipes/feedbin/package.json
+++ b/recipes/feedbin/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "feedbin", 2 "id": "feedbin",
3 "name": "feedbin", 3 "name": "feedbin",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://feedbin.com/login", 7 "serviceURL": "https://feedbin.com/login",
diff --git a/recipes/feedbin/webview.js b/recipes/feedbin/webview.js
index a5c9b7b..5c08892 100644
--- a/recipes/feedbin/webview.js
+++ b/recipes/feedbin/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 const count = feedbin.count_data.unread_entries.length || 0; 3 const count = feedbin.count_data.unread_entries.length || 0;
4 Ferdi.setBadge(count); 4 Ferdi.setBadge(count);
5 } 5 }
diff --git a/recipes/feedly/package.json b/recipes/feedly/package.json
index 0ff3f70..70442bc 100644
--- a/recipes/feedly/package.json
+++ b/recipes/feedly/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "feedly", 2 "id": "feedly",
3 "name": "Feedly", 3 "name": "Feedly",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://feedly.com" 7 "serviceURL": "https://feedly.com"
diff --git a/recipes/feedly/webview.js b/recipes/feedly/webview.js
index 09f4209..1c313e7 100644
--- a/recipes/feedly/webview.js
+++ b/recipes/feedly/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 getMessages = () => { 2 const getMessages = () => {
3 const newsDOM = document.querySelectorAll("div[title='All'] > .LeftnavListRow__count")[0].innerHTML; 3 const newsDOM = document.querySelectorAll("div[title='All'] > .LeftnavListRow__count")[0].innerHTML;
4 let counter = Ferdi.safeParseInt(newsDOM); 4 let counter = Ferdi.safeParseInt(newsDOM);
5 5
diff --git a/recipes/fleep/package.json b/recipes/fleep/package.json
index 3510738..a03d7a4 100644
--- a/recipes/fleep/package.json
+++ b/recipes/fleep/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "fleep", 2 "id": "fleep",
3 "name": "Fleep", 3 "name": "Fleep",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://fleep.io/chat" 7 "serviceURL": "https://fleep.io/chat"
diff --git a/recipes/fleep/webview.js b/recipes/fleep/webview.js
index e760af8..85b5365 100644
--- a/recipes/fleep/webview.js
+++ b/recipes/fleep/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 // Count number of conversations or teams with unread messages 7 // Count number of conversations or teams with unread messages
8 const count = document.querySelectorAll('.unread-count').length; 8 const count = document.querySelectorAll('.unread-count').length;
9 Ferdi.setBadge(count, 0); 9 Ferdi.setBadge(count, 0);
diff --git a/recipes/flowdock/package.json b/recipes/flowdock/package.json
index 8fd8966..3c59ed3 100644
--- a/recipes/flowdock/package.json
+++ b/recipes/flowdock/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "flowdock", 2 "id": "flowdock",
3 "name": "Flowdock", 3 "name": "Flowdock",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.flowdock.com/app/", 7 "serviceURL": "https://www.flowdock.com/app/",
diff --git a/recipes/flowdock/webview.js b/recipes/flowdock/webview.js
index 86db60f..9af36c3 100644
--- a/recipes/flowdock/webview.js
+++ b/recipes/flowdock/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directMessages = document.querySelectorAll('.activity-indicator-mentions').length; 3 const directMessages = document.querySelectorAll('.activity-indicator-mentions').length;
4 const indirectMessages = document.querySelectorAll('.activity-indicator-chat').length; 4 const indirectMessages = document.querySelectorAll('.activity-indicator-chat').length;
5 5
diff --git a/recipes/freshdesk/package.json b/recipes/freshdesk/package.json
index 0fc9faa..d47554c 100644
--- a/recipes/freshdesk/package.json
+++ b/recipes/freshdesk/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "freshdesk", 2 "id": "freshdesk",
3 "name": "Freshdesk", 3 "name": "Freshdesk",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/fisknils/recipe-freshdesk", 6 "repository": "https://github.com/fisknils/recipe-freshdesk",
7 "config": { 7 "config": {
diff --git a/recipes/freshdesk/webview.js b/recipes/freshdesk/webview.js
index 884bfb6..e1911d0 100644
--- a/recipes/freshdesk/webview.js
+++ b/recipes/freshdesk/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 $.get('/api/_/tickets?filter=unresolved', (data) => { 3 $.get('/api/_/tickets?filter=unresolved', (data) => {
4 Ferdi.setBadge(data.tickets.length); 4 Ferdi.setBadge(data.tickets.length);
5 }); 5 });
diff --git a/recipes/github/package.json b/recipes/github/package.json
index 573f743..0f9bb51 100644
--- a/recipes/github/package.json
+++ b/recipes/github/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "github", 2 "id": "github",
3 "name": "GitHub", 3 "name": "GitHub",
4 "version": "2.2.0", 4 "version": "2.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://github.com/notifications", 7 "serviceURL": "https://github.com/notifications",
diff --git a/recipes/github/webview.js b/recipes/github/webview.js
index fdc65a8..36d98a6 100644
--- a/recipes/github/webview.js
+++ b/recipes/github/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directCountElement = document.querySelector('.filter-list .count'); 3 const directCountElement = document.querySelector('.filter-list .count');
4 let directCount = 0; 4 let directCount = 0;
5 if (directCountElement) { 5 if (directCountElement) {
diff --git a/recipes/gitter/package.json b/recipes/gitter/package.json
index 0713c24..c543c09 100644
--- a/recipes/gitter/package.json
+++ b/recipes/gitter/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "gitter", 2 "id": "gitter",
3 "name": "Gitter", 3 "name": "Gitter",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://gitter.im", 7 "serviceURL": "https://gitter.im",
diff --git a/recipes/gitter/webview.js b/recipes/gitter/webview.js
index 402f01a..e78cadf 100644
--- a/recipes/gitter/webview.js
+++ b/recipes/gitter/webview.js
@@ -3,11 +3,11 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 // get unread messages 7 // get unread messages
8 let count = 0; 8 let count = 0;
9 document.querySelectorAll('div.unread-indicator').forEach((node) => { 9 document.querySelectorAll('div.unread-indicator').forEach((node) => {
10 count += Number(node.innerText); 10 count += Ferdi.safeParseInt(node.innerText);
11 }); 11 });
12 12
13 // set Ferdi badge 13 // set Ferdi badge
diff --git a/recipes/glowing-bear/package.json b/recipes/glowing-bear/package.json
index b586117..f210952 100644
--- a/recipes/glowing-bear/package.json
+++ b/recipes/glowing-bear/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "glowing-bear", 2 "id": "glowing-bear",
3 "name": "glowing-bear", 3 "name": "glowing-bear",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.glowing-bear.org", 7 "serviceURL": "https://www.glowing-bear.org",
diff --git a/recipes/glowing-bear/webview.js b/recipes/glowing-bear/webview.js
index 0780357..6abd69a 100644
--- a/recipes/glowing-bear/webview.js
+++ b/recipes/glowing-bear/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const indirectElements = document.querySelectorAll('.badge:not(.danger)'); 3 const indirectElements = document.querySelectorAll('.badge:not(.danger)');
4 const direct = document.querySelectorAll('.badge.danger').length - 1; 4 const direct = document.querySelectorAll('.badge.danger').length - 1;
5 let indirect = -1; 5 let indirect = -1;
diff --git a/recipes/gmail/package.json b/recipes/gmail/package.json
index 97029b4..93610cb 100644
--- a/recipes/gmail/package.json
+++ b/recipes/gmail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "gmail", 2 "id": "gmail",
3 "name": "Gmail", 3 "name": "Gmail",
4 "version": "1.4.1", 4 "version": "1.4.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.google.com" 7 "serviceURL": "https://mail.google.com"
diff --git a/recipes/gmail/webview.js b/recipes/gmail/webview.js
index 8c78bb6..23b1382 100644
--- a/recipes/gmail/webview.js
+++ b/recipes/gmail/webview.js
@@ -8,7 +8,7 @@ module.exports = (Ferdi) => {
8 location.href = 'https://accounts.google.com/AccountChooser?service=mail&continue=https://mail.google.com/mail/'; 8 location.href = 'https://accounts.google.com/AccountChooser?service=mail&continue=https://mail.google.com/mail/';
9 } 9 }
10 10
11 const getMessages = function getMessages() { 11 const getMessages = () => {
12 let count = 0; 12 let count = 0;
13 13
14 const inboxLinks = document.getElementsByClassName('J-Ke n0'); 14 const inboxLinks = document.getElementsByClassName('J-Ke n0');
diff --git a/recipes/google-translate/webview.js b/recipes/google-translate/webview.js
index 9875d8e..41aa5e0 100644
--- a/recipes/google-translate/webview.js
+++ b/recipes/google-translate/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your google-translate service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your google-translate service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };
diff --git a/recipes/google-voice/package.json b/recipes/google-voice/package.json
index 20661e3..5fc56ff 100644
--- a/recipes/google-voice/package.json
+++ b/recipes/google-voice/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "google-voice", 2 "id": "google-voice",
3 "name": "google-voice", 3 "name": "google-voice",
4 "version": "0.4.1", 4 "version": "0.4.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/BehindTheMath/franz-recipe-google-voice", 6 "repository": "https://github.com/BehindTheMath/franz-recipe-google-voice",
7 "config": { 7 "config": {
diff --git a/recipes/google-voice/webview.js b/recipes/google-voice/webview.js
index 53d34a1..7cada87 100644
--- a/recipes/google-voice/webview.js
+++ b/recipes/google-voice/webview.js
@@ -4,7 +4,7 @@ module.exports = Ferdi => {
4 return el && Ferdi.safeParseInt(el.innerHTML); 4 return el && Ferdi.safeParseInt(el.innerHTML);
5 } 5 }
6 6
7 function getMessages() { 7 const getMessages = () => {
8 const el = document.querySelector('.msgCount'); 8 const el = document.querySelector('.msgCount');
9 let count; 9 let count;
10 10
diff --git a/recipes/googleclassroom/package.json b/recipes/googleclassroom/package.json
index 84c7e24..5dc3ef8 100644
--- a/recipes/googleclassroom/package.json
+++ b/recipes/googleclassroom/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "googleclassroom", 2 "id": "googleclassroom",
3 "name": "Google Classroom", 3 "name": "Google Classroom",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/TanZng/ferdi-googleclassroom", 6 "repository": "https://github.com/TanZng/ferdi-googleclassroom",
7 "config": { 7 "config": {
diff --git a/recipes/googleclassroom/webview.js b/recipes/googleclassroom/webview.js
index c634b35..0f24597 100644
--- a/recipes/googleclassroom/webview.js
+++ b/recipes/googleclassroom/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let homework = 0; 3 let homework = 0;
4 const upcomingAssignment = document.getElementsByClassName('hrUpcomingAssignmentGroup'); 4 const upcomingAssignment = document.getElementsByClassName('hrUpcomingAssignmentGroup');
5 if (upcomingAssignment.length != 0) { 5 if (upcomingAssignment.length != 0) {
diff --git a/recipes/googlemeet/package.json b/recipes/googlemeet/package.json
index 731de9d..9b16d5a 100644
--- a/recipes/googlemeet/package.json
+++ b/recipes/googlemeet/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "googlemeet", 2 "id": "googlemeet",
3 "name": "Google Meet", 3 "name": "Google Meet",
4 "version": "2.2.2", 4 "version": "2.2.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://meet.google.com", 7 "serviceURL": "https://meet.google.com",
diff --git a/recipes/googlemeet/webview.js b/recipes/googlemeet/webview.js
index ac186ab..4ccee3e 100644
--- a/recipes/googlemeet/webview.js
+++ b/recipes/googlemeet/webview.js
@@ -11,7 +11,7 @@ window.onload = () => {
11}; 11};
12 12
13module.exports = Ferdi => { 13module.exports = Ferdi => {
14 const getMessages = function getMessages() { 14 const getMessages = () => {
15 const elements = document.querySelectorAll('.CxUIE, .unread'); 15 const elements = document.querySelectorAll('.CxUIE, .unread');
16 let count = 0; 16 let count = 0;
17 17
diff --git a/recipes/grape/package.json b/recipes/grape/package.json
index 75cc43d..fa557f8 100644
--- a/recipes/grape/package.json
+++ b/recipes/grape/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "grape", 2 "id": "grape",
3 "name": "Grape", 3 "name": "Grape",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.chatgrape.com/chat", 7 "serviceURL": "https://{teamId}.chatgrape.com/chat",
diff --git a/recipes/grape/webview.js b/recipes/grape/webview.js
index 349846c..9c69aa2 100644
--- a/recipes/grape/webview.js
+++ b/recipes/grape/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directMessages = document.querySelectorAll('.c0120').length; 3 const directMessages = document.querySelectorAll('.c0120').length;
4 const indirectMessages = document.querySelectorAll('.c0121').length; 4 const indirectMessages = document.querySelectorAll('.c0121').length;
5 5
diff --git a/recipes/groupme/package.json b/recipes/groupme/package.json
index 5f5d836..d7ba067 100644
--- a/recipes/groupme/package.json
+++ b/recipes/groupme/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "groupme", 2 "id": "groupme",
3 "name": "GroupMe", 3 "name": "GroupMe",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.groupme.com", 7 "serviceURL": "https://web.groupme.com",
diff --git a/recipes/groupme/webview.js b/recipes/groupme/webview.js
index 4f225b3..6bd7ea8 100644
--- a/recipes/groupme/webview.js
+++ b/recipes/groupme/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directMessages = document.querySelectorAll('.badge-count:not(.ng-hide)').length; 3 const directMessages = document.querySelectorAll('.badge-count:not(.ng-hide)').length;
4 4
5 // set Ferdi badge 5 // set Ferdi badge
diff --git a/recipes/guilded/package.json b/recipes/guilded/package.json
index 7cef02e..94fc32f 100644
--- a/recipes/guilded/package.json
+++ b/recipes/guilded/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "guilded", 2 "id": "guilded",
3 "name": "Guilded", 3 "name": "Guilded",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.guilded.gg/", 7 "serviceURL": "https://www.guilded.gg/",
diff --git a/recipes/guilded/webview.js b/recipes/guilded/webview.js
index 5d56d39..c8d33f2 100644
--- a/recipes/guilded/webview.js
+++ b/recipes/guilded/webview.js
@@ -1,10 +1,10 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let unread = 0; 3 let unread = 0;
4 const notificationBadge = document.getElementsByClassName('NavSelectorItem-unread-badge')[0]; 4 const notificationBadge = document.getElementsByClassName('NavSelectorItem-unread-badge')[0];
5 if (notificationBadge != undefined) { 5 if (notificationBadge != undefined) {
6 const innerBadge = notificationBadge.getElementsByClassName('BadgeV2-count')[0]; 6 const innerBadge = notificationBadge.getElementsByClassName('BadgeV2-count')[0];
7 unread = innerBadge.innerText; 7 unread = Ferdi.safeParseInt(innerBadge.innerText);
8 } 8 }
9 Ferdi.setBadge(unread); 9 Ferdi.setBadge(unread);
10 }; 10 };
diff --git a/recipes/habitica/package.json b/recipes/habitica/package.json
index 574a5d8..dad1a93 100755
--- a/recipes/habitica/package.json
+++ b/recipes/habitica/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "habitica", 2 "id": "habitica",
3 "name": "Habitica", 3 "name": "Habitica",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/lmnet/franz-recipe-notion", 6 "repository": "https://github.com/lmnet/franz-recipe-notion",
7 "config": { 7 "config": {
diff --git a/recipes/habitica/webview.js b/recipes/habitica/webview.js
index 3b443c5..c856fca 100755
--- a/recipes/habitica/webview.js
+++ b/recipes/habitica/webview.js
@@ -3,7 +3,7 @@ module.exports = (Ferdi) => {
3 let count = 0; 3 let count = 0;
4 const element = document.querySelector('.message-count'); 4 const element = document.querySelector('.message-count');
5 if (element) { 5 if (element) {
6 count = Number(element.innerText); 6 count = Ferdi.safeParseInt(element.innerText);
7 } 7 }
8 Ferdi.setBadge(count); 8 Ferdi.setBadge(count);
9 }; 9 };
diff --git a/recipes/hackmd/package.json b/recipes/hackmd/package.json
index 708da11..6a58405 100644
--- a/recipes/hackmd/package.json
+++ b/recipes/hackmd/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "hackmd", 2 "id": "hackmd",
3 "name": "HackMd", 3 "name": "HackMd",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://hackmd.io", 7 "serviceURL": "https://hackmd.io",
diff --git a/recipes/hackmd/webview.js b/recipes/hackmd/webview.js
index 82ce58d..9ccf912 100644
--- a/recipes/hackmd/webview.js
+++ b/recipes/hackmd/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 // get unread messages 7 // get unread messages
8 const count = document.querySelectorAll('.guilds-wrapper .badge').length; 8 const count = document.querySelectorAll('.guilds-wrapper .badge').length;
9 9
diff --git a/recipes/hangouts/package.json b/recipes/hangouts/package.json
index cad4216..8e9f55f 100644
--- a/recipes/hangouts/package.json
+++ b/recipes/hangouts/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "hangouts", 2 "id": "hangouts",
3 "name": "Hangouts", 3 "name": "Hangouts",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://hangouts.google.com", 7 "serviceURL": "https://hangouts.google.com",
diff --git a/recipes/hangouts/webview.js b/recipes/hangouts/webview.js
index 41fced1..a87893d 100644
--- a/recipes/hangouts/webview.js
+++ b/recipes/hangouts/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 // get unread messages 3 // get unread messages
4 const count = document.querySelector('#hangout-landing-chat iframe').contentWindow.document.querySelectorAll('.ee').length; 4 const count = document.querySelector('#hangout-landing-chat iframe').contentWindow.document.querySelectorAll('.ee').length;
5 5
diff --git a/recipes/hangoutschat/package.json b/recipes/hangoutschat/package.json
index 6bbfba4..57f6e13 100644
--- a/recipes/hangoutschat/package.json
+++ b/recipes/hangoutschat/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "hangoutschat", 2 "id": "hangoutschat",
3 "name": "Hangouts Chat", 3 "name": "Hangouts Chat",
4 "version": "1.5.0", 4 "version": "1.5.1",
5 "license": "MIT", 5 "license": "MIT",
6 "aliases": [ 6 "aliases": [
7 "google-chat", 7 "google-chat",
diff --git a/recipes/hangoutschat/webview.js b/recipes/hangoutschat/webview.js
index 0244d33..c8aa952 100644
--- a/recipes/hangoutschat/webview.js
+++ b/recipes/hangoutschat/webview.js
@@ -5,7 +5,7 @@ module.exports = (Ferdi) => {
5 // class corresponding to the bold text that is visible for room messages 5 // class corresponding to the bold text that is visible for room messages
6 const indirectMessageSelector = 'div.V6.CL.V2.X9.Y2 span.akt span.XU'; 6 const indirectMessageSelector = 'div.V6.CL.V2.X9.Y2 span.akt span.XU';
7 7
8 const getMessages = function getMessages() { 8 const getMessages = () => {
9 // get unread direct messages 9 // get unread direct messages
10 const directCount = Number(document.querySelector(directMessageSelector).innerText); 10 const directCount = Number(document.querySelector(directMessageSelector).innerText);
11 11
diff --git a/recipes/hey/package.json b/recipes/hey/package.json
index 02b1334..f681f80 100644
--- a/recipes/hey/package.json
+++ b/recipes/hey/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "hey", 2 "id": "hey",
3 "name": "Hey", 3 "name": "Hey",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "repository": "https://github.com/cpwood/recipe-hey", 5 "repository": "https://github.com/cpwood/recipe-hey",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.hey.com", 7 "serviceURL": "https://app.hey.com",
diff --git a/recipes/hey/webview.js b/recipes/hey/webview.js
index d3227af..686e811 100644
--- a/recipes/hey/webview.js
+++ b/recipes/hey/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 if (document.location.href == "https://app.hey.com/") { 3 if (document.location.href == "https://app.hey.com/") {
4 let screener = 0; 4 let screener = 0;
5 let unread = 0; 5 let unread = 0;
diff --git a/recipes/hipchat/package.json b/recipes/hipchat/package.json
index dbcc059..b0437f6 100644
--- a/recipes/hipchat/package.json
+++ b/recipes/hipchat/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "hipchat", 2 "id": "hipchat",
3 "name": "HipChat", 3 "name": "HipChat",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.hipchat.com/chat", 7 "serviceURL": "https://{teamId}.hipchat.com/chat",
diff --git a/recipes/hipchat/webview.js b/recipes/hipchat/webview.js
index c201f00..8748926 100644
--- a/recipes/hipchat/webview.js
+++ b/recipes/hipchat/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directMessages = document.querySelectorAll('.hc-mention').length; 3 const directMessages = document.querySelectorAll('.hc-mention').length;
4 const allMessages = document.querySelectorAll('.aui-badge:not(.hc-mention)').length - directMessages; 4 const allMessages = document.querySelectorAll('.aui-badge:not(.hc-mention)').length - directMessages;
5 5
diff --git a/recipes/icq/package.json b/recipes/icq/package.json
index 35de4bb..1dee7f0 100644
--- a/recipes/icq/package.json
+++ b/recipes/icq/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "icq", 2 "id": "icq",
3 "name": "ICQ", 3 "name": "ICQ",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/meetfranz/recipe-icq", 6 "repository": "https://github.com/meetfranz/recipe-icq",
7 "config": { 7 "config": {
diff --git a/recipes/icq/webview.js b/recipes/icq/webview.js
index 653dc69..1bffd27 100644
--- a/recipes/icq/webview.js
+++ b/recipes/icq/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let directs = 0; 3 let directs = 0;
4 const elements = document.getElementsByClassName('nwa-msg-counter icq-recent_state-read'); 4 const elements = document.getElementsByClassName('nwa-msg-counter icq-recent_state-read');
5 for (let i = 0; i < elements.length; i++) { 5 for (let i = 0; i < elements.length; i++) {
diff --git a/recipes/idobata/package.json b/recipes/idobata/package.json
index f2b8768..ed97f93 100644
--- a/recipes/idobata/package.json
+++ b/recipes/idobata/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "idobata", 2 "id": "idobata",
3 "name": "Idobata", 3 "name": "Idobata",
4 "version": "0.2.0", 4 "version": "0.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://idobata.io", 7 "serviceURL": "https://idobata.io",
diff --git a/recipes/idobata/webview.js b/recipes/idobata/webview.js
index dde264e..075316d 100644
--- a/recipes/idobata/webview.js
+++ b/recipes/idobata/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 const title = document.querySelector('title').innerHTML.match(/\d+/); 3 const title = document.querySelector('title').innerHTML.match(/\d+/);
4 const count = title !== null ? title[0] : 0; 4 const count = title !== null ? title[0] : 0;
5 5
diff --git a/recipes/infomaniak-mail/package.json b/recipes/infomaniak-mail/package.json
index b991467..7f1d1c0 100644
--- a/recipes/infomaniak-mail/package.json
+++ b/recipes/infomaniak-mail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "infomaniak-mail", 2 "id": "infomaniak-mail",
3 "name": "Infomaniak Mail", 3 "name": "Infomaniak Mail",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.infomaniak.com/" 7 "serviceURL": "https://mail.infomaniak.com/"
diff --git a/recipes/infomaniak-mail/webview.js b/recipes/infomaniak-mail/webview.js
index 0022949..04ac42d 100644
--- a/recipes/infomaniak-mail/webview.js
+++ b/recipes/infomaniak-mail/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 const count = document.querySelector('.ws-tree-node-badge').innerText; 3 const count = document.querySelector('.ws-tree-node-badge').innerText;
4 Ferdi.setBadge(count ? Number(count.substring(1, count.length - 1)) : 0); 4 Ferdi.setBadge(count ? Number(count.substring(1, count.length - 1)) : 0);
5 } 5 }
diff --git a/recipes/instagram/package.json b/recipes/instagram/package.json
index 8396da4..f804a11 100644
--- a/recipes/instagram/package.json
+++ b/recipes/instagram/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "instagram", 2 "id": "instagram",
3 "name": "Instagram", 3 "name": "Instagram",
4 "version": "2.2.1", 4 "version": "2.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://instagram.com/direct/inbox", 7 "serviceURL": "https://instagram.com/direct/inbox",
diff --git a/recipes/instagram/webview.js b/recipes/instagram/webview.js
index 8db5852..b971021 100644
--- a/recipes/instagram/webview.js
+++ b/recipes/instagram/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const element = document.querySelector('a[href^="/direct/inbox"]'); 7 const element = document.querySelector('a[href^="/direct/inbox"]');
8 Ferdi.setBadge(element ? Ferdi.safeParseInt(element.innerText) : 0); 8 Ferdi.setBadge(element ? Ferdi.safeParseInt(element.innerText) : 0);
9 }; 9 };
diff --git a/recipes/intercom/package.json b/recipes/intercom/package.json
index e599308..2fc2e39 100644
--- a/recipes/intercom/package.json
+++ b/recipes/intercom/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "intercom", 2 "id": "intercom",
3 "name": "Intercom", 3 "name": "Intercom",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.intercom.io/", 7 "serviceURL": "https://app.intercom.io/",
diff --git a/recipes/intercom/webview.js b/recipes/intercom/webview.js
index a29db21..1ccf8a0 100644
--- a/recipes/intercom/webview.js
+++ b/recipes/intercom/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 const numMessages = Ferdi.safeParseInt(document.querySelector('.left-nav [data-content="Inbox"] .unread__container .unread').innerHTML); 3 const numMessages = Ferdi.safeParseInt(document.querySelector('.left-nav [data-content="Inbox"] .unread__container .unread').innerHTML);
4 Ferdi.setBadge(numMessages); 4 Ferdi.setBadge(numMessages);
5 } 5 }
diff --git a/recipes/irccloud/package.json b/recipes/irccloud/package.json
index 89292b0..47e137b 100644
--- a/recipes/irccloud/package.json
+++ b/recipes/irccloud/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "irccloud", 2 "id": "irccloud",
3 "name": "IRCCloud", 3 "name": "IRCCloud",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/albertomurillo/recipe-irccloud", 6 "repository": "https://github.com/albertomurillo/recipe-irccloud",
7 "config": { 7 "config": {
diff --git a/recipes/irccloud/webview.js b/recipes/irccloud/webview.js
index 8ae318d..0c46c46 100644
--- a/recipes/irccloud/webview.js
+++ b/recipes/irccloud/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directMessages = document.getElementsByClassName('buffer conversation active unread activeBadge').length; 3 const directMessages = document.getElementsByClassName('buffer conversation active unread activeBadge').length;
4 const indirectMessages = document.getElementsByClassName('buffer channel active unread').length; 4 const indirectMessages = document.getElementsByClassName('buffer channel active unread').length;
5 5
diff --git a/recipes/jira/package.json b/recipes/jira/package.json
index 23d77a1..4e70918 100644
--- a/recipes/jira/package.json
+++ b/recipes/jira/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "jira", 2 "id": "jira",
3 "name": "Jira", 3 "name": "Jira",
4 "version": "1.3.1", 4 "version": "1.3.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.atlassian.net", 7 "serviceURL": "https://{teamId}.atlassian.net",
diff --git a/recipes/jira/webview.js b/recipes/jira/webview.js
index d39f91e..246511e 100644
--- a/recipes/jira/webview.js
+++ b/recipes/jira/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 // get unread messages 3 // get unread messages
4 const element = document.querySelector('#atlassian-navigation-notification-count span'); 4 const element = document.querySelector('#atlassian-navigation-notification-count span');
5 Ferdi.setBadge(element ? element.innerText : 0); 5 Ferdi.setBadge(element ? element.innerText : 0);
diff --git a/recipes/jollor/package.json b/recipes/jollor/package.json
index 40c32b5..88a08e3 100644
--- a/recipes/jollor/package.json
+++ b/recipes/jollor/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "jollor", 2 "id": "jollor",
3 "name": "jollor", 3 "name": "jollor",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://jollor.com", 7 "serviceURL": "https://jollor.com",
diff --git a/recipes/jollor/webview.js b/recipes/jollor/webview.js
index 5982ece..695a7fa 100644
--- a/recipes/jollor/webview.js
+++ b/recipes/jollor/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 function getMessages() { 6 const getMessages = () => {
7 const count = document.querySelector('.user-menu-message-item-count').innerHTML; 7 const count = document.querySelector('.user-menu-message-item-count').innerHTML;
8 Ferdi.setBadge(count); 8 Ferdi.setBadge(count);
9 } 9 }
diff --git a/recipes/kaizala/package.json b/recipes/kaizala/package.json
index fc18119..2d7399a 100644
--- a/recipes/kaizala/package.json
+++ b/recipes/kaizala/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "kaizala", 2 "id": "kaizala",
3 "name": "Microsoft Kaizala", 3 "name": "Microsoft Kaizala",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/meetfranz/recipe-microsoft-kaizala", 6 "repository": "https://github.com/meetfranz/recipe-microsoft-kaizala",
7 "config": { 7 "config": {
diff --git a/recipes/kaizala/webview.js b/recipes/kaizala/webview.js
index 17ead54..c8bdd51 100644
--- a/recipes/kaizala/webview.js
+++ b/recipes/kaizala/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const count = document.querySelectorAll('.unseen-msg-count').length; 3 const count = document.querySelectorAll('.unseen-msg-count').length;
4 Ferdi.setBadge(count); 4 Ferdi.setBadge(count);
5 }; 5 };
diff --git a/recipes/kimaicloud/package.json b/recipes/kimaicloud/package.json
index f4c1dcf..902c2a3 100644
--- a/recipes/kimaicloud/package.json
+++ b/recipes/kimaicloud/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "kimaicloud", 2 "id": "kimaicloud",
3 "name": "Kimai Cloud", 3 "name": "Kimai Cloud",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/kimai-cloud/recipe-kimaicloud", 6 "repository": "https://github.com/kimai-cloud/recipe-kimaicloud",
7 "config": { 7 "config": {
diff --git a/recipes/kimaicloud/webview.js b/recipes/kimaicloud/webview.js
index f4e2e9f..975b53d 100644
--- a/recipes/kimaicloud/webview.js
+++ b/recipes/kimaicloud/webview.js
@@ -1,11 +1,11 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 // get amount of running timesheets 5 // get amount of running timesheets
6 const label = document.querySelector('.main-header .navbar .dropdown.messages-menu .ticktac span.label'); 6 const label = document.querySelector('.main-header .navbar .dropdown.messages-menu .ticktac span.label');
7 if (label !== undefined) { 7 if (label !== undefined) {
8 count = label.textContent; 8 count = Ferdi.safeParseInt(label.textContent);
9 } 9 }
10 10
11 // set Ferdi badge 11 // set Ferdi badge
diff --git a/recipes/lark/package.json b/recipes/lark/package.json
index a1144e3..eaba10e 100644
--- a/recipes/lark/package.json
+++ b/recipes/lark/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "lark", 2 "id": "lark",
3 "name": "Lark", 3 "name": "Lark",
4 "version": "0.1.1", 4 "version": "0.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.larksuite.com/messenger/", 7 "serviceURL": "https://{teamId}.larksuite.com/messenger/",
diff --git a/recipes/lark/webview.js b/recipes/lark/webview.js
index 33d0fc9..4e3a614 100644
--- a/recipes/lark/webview.js
+++ b/recipes/lark/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const ele = document.querySelectorAll('.larkc-badge-count.navbarMenu-badge'); 7 const ele = document.querySelectorAll('.larkc-badge-count.navbarMenu-badge');
8 if (!ele.length) { 8 if (!ele.length) {
9 Ferdi.setBadge(0); 9 Ferdi.setBadge(0);
diff --git a/recipes/lastpass/package.json b/recipes/lastpass/package.json
index eed8f9e..cb0d15b 100644
--- a/recipes/lastpass/package.json
+++ b/recipes/lastpass/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "lastpass", 2 "id": "lastpass",
3 "name": "LastPass", 3 "name": "LastPass",
4 "version": "2.2.2", 4 "version": "2.2.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://lastpass.com/?ac=1&lpnorefresh=1", 7 "serviceURL": "https://lastpass.com/?ac=1&lpnorefresh=1",
diff --git a/recipes/lastpass/webview.js b/recipes/lastpass/webview.js
index 96e92ff..e50ad38 100644
--- a/recipes/lastpass/webview.js
+++ b/recipes/lastpass/webview.js
@@ -9,7 +9,7 @@ setTimeout(() => {
9}, 1000); 9}, 1000);
10 10
11module.exports = Ferdi => { 11module.exports = Ferdi => {
12 const getMessages = function getMessages() { 12 const getMessages = () => {
13 const elements = document.querySelectorAll('.CxUIE, .unread'); 13 const elements = document.querySelectorAll('.CxUIE, .unread');
14 let count = 0; 14 let count = 0;
15 15
diff --git a/recipes/linkedin/package.json b/recipes/linkedin/package.json
index 2c9bdd2..2d3ad0e 100644
--- a/recipes/linkedin/package.json
+++ b/recipes/linkedin/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "linkedin", 2 "id": "linkedin",
3 "name": "LinkedIn", 3 "name": "LinkedIn",
4 "version": "1.2.1", 4 "version": "1.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.linkedin.com/messaging" 7 "serviceURL": "https://www.linkedin.com/messaging"
diff --git a/recipes/linkedin/webview.js b/recipes/linkedin/webview.js
index 1017d26..8d1afc8 100644
--- a/recipes/linkedin/webview.js
+++ b/recipes/linkedin/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 if (window.location.pathname.includes('messaging')) { 5 if (window.location.pathname.includes('messaging')) {
diff --git a/recipes/mailbox.org/package.json b/recipes/mailbox.org/package.json
index c99d244..1d425d2 100644
--- a/recipes/mailbox.org/package.json
+++ b/recipes/mailbox.org/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "mailbox.org", 2 "id": "mailbox.org",
3 "name": "mailbox.org", 3 "name": "mailbox.org",
4 "version": "1.3.0", 4 "version": "1.3.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://office.mailbox.org/appsuite/#!!&app=io.ox/portal" 7 "serviceURL": "https://office.mailbox.org/appsuite/#!!&app=io.ox/portal"
diff --git a/recipes/mailbox.org/webview.js b/recipes/mailbox.org/webview.js
index 489dc94..d0fbfd0 100644
--- a/recipes/mailbox.org/webview.js
+++ b/recipes/mailbox.org/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const count = document.querySelectorAll('.new-item').length; 3 const count = document.querySelectorAll('.new-item').length;
4 4
5 Ferdi.setBadge(count); 5 Ferdi.setBadge(count);
diff --git a/recipes/mastodon/package.json b/recipes/mastodon/package.json
index 825fbc5..c77d834 100644
--- a/recipes/mastodon/package.json
+++ b/recipes/mastodon/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "name": "Mastodon", 2 "name": "Mastodon",
3 "id": "mastodon", 3 "id": "mastodon",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasNotificationSound": true, 7 "hasNotificationSound": true,
diff --git a/recipes/mastodon/webview.js b/recipes/mastodon/webview.js
index b349220..4b450a1 100644
--- a/recipes/mastodon/webview.js
+++ b/recipes/mastodon/webview.js
@@ -9,7 +9,7 @@ module.exports = (Ferdi) => {
9 latestNotify = $($('.notification__message span').get(0)).text(); 9 latestNotify = $($('.notification__message span').get(0)).text();
10 }); 10 });
11 11
12 function getMessages() { 12 const getMessages = () => {
13 let reply = 0; 13 let reply = 0;
14 const ln = $($('.notification__message span').get(0)).text(); 14 const ln = $($('.notification__message span').get(0)).text();
15 if (ln != latestNotify) { 15 if (ln != latestNotify) {
diff --git a/recipes/mattermost/package.json b/recipes/mattermost/package.json
index befe718..c9e6c16 100644
--- a/recipes/mattermost/package.json
+++ b/recipes/mattermost/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "mattermost", 2 "id": "mattermost",
3 "name": "Mattermost", 3 "name": "Mattermost",
4 "version": "1.3.0", 4 "version": "1.3.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasNotificationSound": true, 7 "hasNotificationSound": true,
diff --git a/recipes/mattermost/webview.js b/recipes/mattermost/webview.js
index 88d1b80..179a43a 100644
--- a/recipes/mattermost/webview.js
+++ b/recipes/mattermost/webview.js
@@ -5,7 +5,7 @@ module.exports = Ferdi => {
5 const ALL_MESSAGES = '#sidebar-left .unread-title'; 5 const ALL_MESSAGES = '#sidebar-left .unread-title';
6 const ALL_MESSAGES_LEGACY = '#sidebar-left .unread-title'; 6 const ALL_MESSAGES_LEGACY = '#sidebar-left .unread-title';
7 7
8 const getMessages = function getMessages() { 8 const getMessages = () => {
9 const directMessagesSelector = [DIRECT_MESSAGES_LEGACY, DIRECT_MESSAGES_INDIVIDUAL, DIRECT_MESSAGES_GROUP].join(', '); 9 const directMessagesSelector = [DIRECT_MESSAGES_LEGACY, DIRECT_MESSAGES_INDIVIDUAL, DIRECT_MESSAGES_GROUP].join(', ');
10 const directMessages = document.querySelectorAll(directMessagesSelector).length; 10 const directMessages = document.querySelectorAll(directMessagesSelector).length;
11 11
diff --git a/recipes/messenger/package.json b/recipes/messenger/package.json
index 1f58796..2d1cddc 100644
--- a/recipes/messenger/package.json
+++ b/recipes/messenger/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "messenger", 2 "id": "messenger",
3 "name": "Messenger", 3 "name": "Messenger",
4 "version": "1.3.2", 4 "version": "1.3.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://messenger.com", 7 "serviceURL": "https://messenger.com",
diff --git a/recipes/messenger/webview.js b/recipes/messenger/webview.js
index c147df8..954f843 100644
--- a/recipes/messenger/webview.js
+++ b/recipes/messenger/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 const isNotification = /^\((\d+)\)/.test(document.title); 5 const isNotification = /^\((\d+)\)/.test(document.title);
diff --git a/recipes/mewe/package.json b/recipes/mewe/package.json
index 73a4c9e..ec966cb 100644
--- a/recipes/mewe/package.json
+++ b/recipes/mewe/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "mewe", 2 "id": "mewe",
3 "name": "MeWe", 3 "name": "MeWe",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mewe.com/chat", 7 "serviceURL": "https://mewe.com/chat",
diff --git a/recipes/mewe/webview.js b/recipes/mewe/webview.js
index f22803c..fcf5918 100644
--- a/recipes/mewe/webview.js
+++ b/recipes/mewe/webview.js
@@ -2,12 +2,12 @@ const _path = _interopRequireDefault(require('path'));
2 2
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5const calculateTotalDirectMessages = () =>
6 Array.from(document.getElementsByClassName('chats-list-element'))
7 .map(el => Ferdi.safeParseInt(el.querySelector('.m-indicator .number').innerHTML))
8 .reduce((curr, prev) => curr + prev, 0);
9
10module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const calculateTotalDirectMessages = () =>
7 Array.from(document.getElementsByClassName('chats-list-element'))
8 .map(el => Ferdi.safeParseInt(el.querySelector('.m-indicator .number').innerHTML))
9 .reduce((curr, prev) => curr + prev, 0);
10
11 Ferdi.loop(() => Ferdi.setBadge(calculateTotalDirectMessages())); 11 Ferdi.loop(() => Ferdi.setBadge(calculateTotalDirectMessages()));
12 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css')); 12 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css'));
13}; 13};
diff --git a/recipes/misskey/package.json b/recipes/misskey/package.json
index 66bdd3c..056e9b6 100644
--- a/recipes/misskey/package.json
+++ b/recipes/misskey/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "misskey", 2 "id": "misskey",
3 "name": "Misskey", 3 "name": "Misskey",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/sharkpp/franz-recipe-misskey", 6 "repository": "https://github.com/sharkpp/franz-recipe-misskey",
7 "config": { 7 "config": {
diff --git a/recipes/misskey/webview.js b/recipes/misskey/webview.js
index b024ce1..c174266 100644
--- a/recipes/misskey/webview.js
+++ b/recipes/misskey/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 // check notification badge for Ferdi badge 3 // check notification badge for Ferdi badge
4 let hasNotification = !!document.querySelector('#app div.notifications > button > i.circle'); 4 let hasNotification = !!document.querySelector('#app div.notifications > button > i.circle');
5 Ferdi.setBadge(0, hasNotification ? 1 : 0); 5 Ferdi.setBadge(0, hasNotification ? 1 : 0);
diff --git a/recipes/monday/package.json b/recipes/monday/package.json
index 5b6af2f..c29e7a8 100644
--- a/recipes/monday/package.json
+++ b/recipes/monday/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "monday", 2 "id": "monday",
3 "name": "Monday", 3 "name": "Monday",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.monday.com", 7 "serviceURL": "https://{teamId}.monday.com",
diff --git a/recipes/monday/webview.js b/recipes/monday/webview.js
index 924c071..15f6335 100755
--- a/recipes/monday/webview.js
+++ b/recipes/monday/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let count = 0; 7 let count = 0;
8 8
9 const counters = document.querySelectorAll('.surface-control-component .item-counter, .surface-control-component .view-item-counter'); 9 const counters = document.querySelectorAll('.surface-control-component .item-counter, .surface-control-component .view-item-counter');
diff --git a/recipes/mstodo/package.json b/recipes/mstodo/package.json
index c4fae20..2d12e1a 100644
--- a/recipes/mstodo/package.json
+++ b/recipes/mstodo/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "mstodo", 2 "id": "mstodo",
3 "name": "Microsoft To Do", 3 "name": "Microsoft To Do",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://to-do.live.com/tasks/", 7 "serviceURL": "https://to-do.live.com/tasks/",
diff --git a/recipes/mstodo/webview.js b/recipes/mstodo/webview.js
index 1fd8795..9f4efef 100644
--- a/recipes/mstodo/webview.js
+++ b/recipes/mstodo/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('.taskItem'); 7 const elements = document.querySelectorAll('.taskItem');
8 let count = 0; 8 let count = 0;
9 9
diff --git a/recipes/mysms/package.json b/recipes/mysms/package.json
index 9030285..a88baf3 100644
--- a/recipes/mysms/package.json
+++ b/recipes/mysms/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "mysms", 2 "id": "mysms",
3 "name": "MySMS", 3 "name": "MySMS",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.mysms.com" 7 "serviceURL": "https://app.mysms.com"
diff --git a/recipes/mysms/webview.js b/recipes/mysms/webview.js
index a0b4ea6..3f3415a 100644
--- a/recipes/mysms/webview.js
+++ b/recipes/mysms/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const elements = document.getElementsByClassName('unread'); 3 const elements = document.getElementsByClassName('unread');
4 4
5 let count = 0; 5 let count = 0;
diff --git a/recipes/nextcloud-calendar/package.json b/recipes/nextcloud-calendar/package.json
index 02218d9..6783f7b 100644
--- a/recipes/nextcloud-calendar/package.json
+++ b/recipes/nextcloud-calendar/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud-calendar", 2 "id": "nextcloud-calendar",
3 "name": "Nextcloud Calendar", 3 "name": "Nextcloud Calendar",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-calendar", 6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-calendar",
7 "config": { 7 "config": {
diff --git a/recipes/nextcloud-calendar/webview.js b/recipes/nextcloud-calendar/webview.js
index 34efa7c..2d932c0 100644
--- a/recipes/nextcloud-calendar/webview.js
+++ b/recipes/nextcloud-calendar/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const direct = document.querySelectorAll( 7 const direct = document.querySelectorAll(
8 '.notifications .notification-wrapper .notification[object_type="dav"]', 8 '.notifications .notification-wrapper .notification[object_type="dav"]',
9 ).length; 9 ).length;
diff --git a/recipes/nextcloud-carnet/package.json b/recipes/nextcloud-carnet/package.json
index 264cbd9..6d59dc8 100644
--- a/recipes/nextcloud-carnet/package.json
+++ b/recipes/nextcloud-carnet/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud-carnet", 2 "id": "nextcloud-carnet",
3 "name": "Carnet (Nextcloud)", 3 "name": "Carnet (Nextcloud)",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-carnet", 6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-carnet",
7 "config": { 7 "config": {
diff --git a/recipes/nextcloud-carnet/webview.js b/recipes/nextcloud-carnet/webview.js
index 8152a24..cecd453 100644
--- a/recipes/nextcloud-carnet/webview.js
+++ b/recipes/nextcloud-carnet/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const direct = document.querySelectorAll( 7 const direct = document.querySelectorAll(
8 '.app-navigation-entry-utils-counter.highlighted', 8 '.app-navigation-entry-utils-counter.highlighted',
9 ).length; 9 ).length;
diff --git a/recipes/nextcloud-cospend/package.json b/recipes/nextcloud-cospend/package.json
index 58d9782..43691ad 100644
--- a/recipes/nextcloud-cospend/package.json
+++ b/recipes/nextcloud-cospend/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud-cospend", 2 "id": "nextcloud-cospend",
3 "name": "Nextcloud Cospend", 3 "name": "Nextcloud Cospend",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-cospend", 6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-cospend",
7 "config": { 7 "config": {
diff --git a/recipes/nextcloud-cospend/webview.js b/recipes/nextcloud-cospend/webview.js
index 8152a24..cecd453 100644
--- a/recipes/nextcloud-cospend/webview.js
+++ b/recipes/nextcloud-cospend/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const direct = document.querySelectorAll( 7 const direct = document.querySelectorAll(
8 '.app-navigation-entry-utils-counter.highlighted', 8 '.app-navigation-entry-utils-counter.highlighted',
9 ).length; 9 ).length;
diff --git a/recipes/nextcloud-talk/package.json b/recipes/nextcloud-talk/package.json
index 553376c..445780d 100644
--- a/recipes/nextcloud-talk/package.json
+++ b/recipes/nextcloud-talk/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud-talk", 2 "id": "nextcloud-talk",
3 "name": "Nextcloud Talk", 3 "name": "Nextcloud Talk",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasNotificationSound": true, 7 "hasNotificationSound": true,
diff --git a/recipes/nextcloud-talk/webview.js b/recipes/nextcloud-talk/webview.js
index b368d7c..1b55203 100644
--- a/recipes/nextcloud-talk/webview.js
+++ b/recipes/nextcloud-talk/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let direct = 0; 7 let direct = 0;
8 const notificationWrapper = document.querySelector( 8 const notificationWrapper = document.querySelector(
9 '.notifications .notification-wrapper', 9 '.notifications .notification-wrapper',
diff --git a/recipes/nextcloud-tasks/package.json b/recipes/nextcloud-tasks/package.json
index 89a9b95..e57d2b8 100644
--- a/recipes/nextcloud-tasks/package.json
+++ b/recipes/nextcloud-tasks/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud-tasks", 2 "id": "nextcloud-tasks",
3 "name": "Nextcloud Tasks", 3 "name": "Nextcloud Tasks",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-tasks", 6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud-tasks",
7 "config": { 7 "config": {
diff --git a/recipes/nextcloud-tasks/webview.js b/recipes/nextcloud-tasks/webview.js
index 8152a24..cecd453 100644
--- a/recipes/nextcloud-tasks/webview.js
+++ b/recipes/nextcloud-tasks/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const direct = document.querySelectorAll( 7 const direct = document.querySelectorAll(
8 '.app-navigation-entry-utils-counter.highlighted', 8 '.app-navigation-entry-utils-counter.highlighted',
9 ).length; 9 ).length;
diff --git a/recipes/nextcloud/package.json b/recipes/nextcloud/package.json
index f4e6a52..409ebc9 100644
--- a/recipes/nextcloud/package.json
+++ b/recipes/nextcloud/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextcloud", 2 "id": "nextcloud",
3 "name": "Nextcloud", 3 "name": "Nextcloud",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud", 6 "repository": "https://github.com/eandersons/ferdi-recipe-nextcloud",
7 "config": { 7 "config": {
diff --git a/recipes/nextcloud/webview.js b/recipes/nextcloud/webview.js
index 9779a40..9072ecf 100644
--- a/recipes/nextcloud/webview.js
+++ b/recipes/nextcloud/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const direct = document.querySelectorAll( 3 const direct = document.querySelectorAll(
4 '.notifications .notification-container .notification-wrapper li .notification', 4 '.notifications .notification-container .notification-wrapper li .notification',
5 ).length; 5 ).length;
diff --git a/recipes/nextdoor/package.json b/recipes/nextdoor/package.json
index 2b40f9d..b028c19 100644
--- a/recipes/nextdoor/package.json
+++ b/recipes/nextdoor/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "nextdoor", 2 "id": "nextdoor",
3 "name": "Nextdoor", 3 "name": "Nextdoor",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://nextdoor.co.uk/inbox/" 7 "serviceURL": "https://nextdoor.co.uk/inbox/"
diff --git a/recipes/nextdoor/webview.js b/recipes/nextdoor/webview.js
index fbac111..503d9a4 100644
--- a/recipes/nextdoor/webview.js
+++ b/recipes/nextdoor/webview.js
@@ -1,9 +1,9 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let unread = 0; 3 let unread = 0;
4 const notificationBadge = document.getElementsByClassName('notification-badge')[0]; 4 const notificationBadge = document.getElementsByClassName('notification-badge')[0];
5 if (notificationBadge != undefined) { 5 if (notificationBadge != undefined) {
6 unread = notificationBadge.innerText; 6 unread = Ferdi.safeParseInt(notificationBadge.innerText);
7 } 7 }
8 Ferdi.setBadge(unread); 8 Ferdi.setBadge(unread);
9 }; 9 };
diff --git a/recipes/notion/package.json b/recipes/notion/package.json
index 1cefed4..4db4a65 100644
--- a/recipes/notion/package.json
+++ b/recipes/notion/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "notion", 2 "id": "notion",
3 "name": "Notion", 3 "name": "Notion",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/TanZng/ferdi-notion", 6 "repository": "https://github.com/TanZng/ferdi-notion",
7 "config": { 7 "config": {
diff --git a/recipes/notion/webview.js b/recipes/notion/webview.js
index aa8eaec..cd8f566 100644
--- a/recipes/notion/webview.js
+++ b/recipes/notion/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let direct = 0; 3 let direct = 0;
4 const badgeDiv = document.querySelector('.notion-sidebar-container > div > div > div > :nth-child(4) > :nth-child(2) > div > :nth-child(3) > div > div'); 4 const badgeDiv = document.querySelector('.notion-sidebar-container > div > div > div > :nth-child(4) > :nth-child(2) > div > :nth-child(3) > div > div');
5 if (badgeDiv) { 5 if (badgeDiv) {
diff --git a/recipes/office365-owa/package.json b/recipes/office365-owa/package.json
index bd3ca9c..354578d 100644
--- a/recipes/office365-owa/package.json
+++ b/recipes/office365-owa/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "office365-owa", 2 "id": "office365-owa",
3 "name": "Office 365 Outlook", 3 "name": "Office 365 Outlook",
4 "version": "1.4.5", 4 "version": "1.4.6",
5 "license": "MIT", 5 "license": "MIT",
6 "aliases": [ 6 "aliases": [
7 "live.com" 7 "live.com"
diff --git a/recipes/office365-owa/webview.js b/recipes/office365-owa/webview.js
index 82c7dfd..0ac258c 100644
--- a/recipes/office365-owa/webview.js
+++ b/recipes/office365-owa/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 let directUnreadCount = 0; 3 let directUnreadCount = 0;
4 let indirectUnreadCount = 0; 4 let indirectUnreadCount = 0;
5 5
diff --git a/recipes/pipefy/package.json b/recipes/pipefy/package.json
index 42cb92b..0403f39 100644
--- a/recipes/pipefy/package.json
+++ b/recipes/pipefy/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "pipefy", 2 "id": "pipefy",
3 "name": "Pipefy", 3 "name": "Pipefy",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.pipefy.com/", 7 "serviceURL": "https://app.pipefy.com/",
diff --git a/recipes/pipefy/webview.js b/recipes/pipefy/webview.js
index a3564c0..48904e6 100644
--- a/recipes/pipefy/webview.js
+++ b/recipes/pipefy/webview.js
@@ -5,7 +5,7 @@ function _interopRequireDefault(obj) {
5} 5}
6 6
7module.exports = Ferdi => { 7module.exports = Ferdi => {
8 const getMessages = function getMessages() { 8 const getMessages = () => {
9 const getNotificationButton = document.querySelector( 9 const getNotificationButton = document.querySelector(
10 '#notifications_button', 10 '#notifications_button',
11 ); 11 );
diff --git a/recipes/pivotal-tracker/package.json b/recipes/pivotal-tracker/package.json
index b9164e1..5b2357a 100644
--- a/recipes/pivotal-tracker/package.json
+++ b/recipes/pivotal-tracker/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "pivotal-tracker", 2 "id": "pivotal-tracker",
3 "name": "pivotal-tracker", 3 "name": "pivotal-tracker",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.pivotaltracker.com/signin", 7 "serviceURL": "https://www.pivotaltracker.com/signin",
diff --git a/recipes/pivotal-tracker/webview.js b/recipes/pivotal-tracker/webview.js
index cfc2ae4..e4899a5 100644
--- a/recipes/pivotal-tracker/webview.js
+++ b/recipes/pivotal-tracker/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 const bell = document.querySelectorAll('#view65 > span')[0]; 3 const bell = document.querySelectorAll('#view65 > span')[0];
4 if (bell) { 4 if (bell) {
5 Ferdi.setBadge(bell.innerText); 5 Ferdi.setBadge(bell.innerText);
diff --git a/recipes/plurk/package.json b/recipes/plurk/package.json
index 6167c53..d9d3fb5 100644
--- a/recipes/plurk/package.json
+++ b/recipes/plurk/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "plurk", 2 "id": "plurk",
3 "name": "Plurk", 3 "name": "Plurk",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.plurk.com" 7 "serviceURL": "https://www.plurk.com"
diff --git a/recipes/plurk/webview.js b/recipes/plurk/webview.js
index 0136c24..c79853d 100644
--- a/recipes/plurk/webview.js
+++ b/recipes/plurk/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 let direct = 0; 3 let direct = 0;
4 4
5 const np = document.querySelector('#noti_np_count'); 5 const np = document.querySelector('#noti_np_count');
diff --git a/recipes/producthunt/package.json b/recipes/producthunt/package.json
index 293f110..6f4bfb9 100644
--- a/recipes/producthunt/package.json
+++ b/recipes/producthunt/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "producthunt", 2 "id": "producthunt",
3 "name": "Product Hunt", 3 "name": "Product Hunt",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/alexdevero/franz-producthunt-recipe", 6 "repository": "https://github.com/alexdevero/franz-producthunt-recipe",
7 "config": { 7 "config": {
diff --git a/recipes/producthunt/webview.js b/recipes/producthunt/webview.js
index 69dcc95..c03de9b 100644
--- a/recipes/producthunt/webview.js
+++ b/recipes/producthunt/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 Ferdi.setBadge(document.querySelector('[class*=header_] [class*=content_] [class*=actions_] [class*=notificationsButton_]').innerText) 3 Ferdi.setBadge(document.querySelector('[class*=header_] [class*=content_] [class*=actions_] [class*=notificationsButton_]').innerText)
4 } 4 }
5 5
diff --git a/recipes/proton-mail/package.json b/recipes/proton-mail/package.json
index 9cb0d99..ab09207 100644
--- a/recipes/proton-mail/package.json
+++ b/recipes/proton-mail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "proton-mail", 2 "id": "proton-mail",
3 "name": "ProtonMail", 3 "name": "ProtonMail",
4 "version": "1.3.0", 4 "version": "1.3.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.protonmail.com/login" 7 "serviceURL": "https://mail.protonmail.com/login"
diff --git a/recipes/proton-mail/webview.js b/recipes/proton-mail/webview.js
index 10319f2..ed66db5 100644
--- a/recipes/proton-mail/webview.js
+++ b/recipes/proton-mail/webview.js
@@ -1,11 +1,11 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 function getMessages() { 2 const getMessages = () => {
3 const element = document.querySelector('.navigationItem-counter'); 3 const element = document.querySelector('.navigationItem-counter');
4 if (!element) { 4 if (!element) {
5 return; 5 return;
6 } 6 }
7 const text = element.innerText; 7 const text = element.innerText;
8 const count = Number(text.substring(1, text.length - 1)); 8 const count = Ferdi.safeParseInt(text.substring(1, text.length - 1));
9 Ferdi.setBadge(count); 9 Ferdi.setBadge(count);
10 } 10 }
11 11
diff --git a/recipes/pulsesms/package.json b/recipes/pulsesms/package.json
index a939717..a980b56 100644
--- a/recipes/pulsesms/package.json
+++ b/recipes/pulsesms/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "pulsesms", 2 "id": "pulsesms",
3 "name": "PulseSMS", 3 "name": "PulseSMS",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://pulsesms.app", 7 "serviceURL": "https://pulsesms.app",
diff --git a/recipes/pulsesms/webview.js b/recipes/pulsesms/webview.js
index 6904fbc..48bb2ad 100644
--- a/recipes/pulsesms/webview.js
+++ b/recipes/pulsesms/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 Ferdi.setBadge(document.querySelector('#unread_count').innerHTML.replace(/\s/g, '')); 3 Ferdi.setBadge(document.querySelector('#unread_count').innerHTML.replace(/\s/g, ''));
4 } 4 }
5 5
diff --git a/recipes/reddit/package.json b/recipes/reddit/package.json
index b1e9399..e570e01 100644
--- a/recipes/reddit/package.json
+++ b/recipes/reddit/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "reddit", 2 "id": "reddit",
3 "name": "Reddit", 3 "name": "Reddit",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/getferdi/recipes", 6 "repository": "https://github.com/getferdi/recipes",
7 "config": { 7 "config": {
diff --git a/recipes/reddit/webview.js b/recipes/reddit/webview.js
index ad2c83e..327bd89 100644
--- a/recipes/reddit/webview.js
+++ b/recipes/reddit/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('#HeaderUserActions--Messages > a > span'); 7 const elements = document.querySelectorAll('#HeaderUserActions--Messages > a > span');
8 let count = 0; 8 let count = 0;
9 9
diff --git a/recipes/riseup/package.json b/recipes/riseup/package.json
index 82689aa..fa26c13 100644
--- a/recipes/riseup/package.json
+++ b/recipes/riseup/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "riseup", 2 "id": "riseup",
3 "name": "Riseup.net", 3 "name": "Riseup.net",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.riseup.net" 7 "serviceURL": "https://mail.riseup.net"
diff --git a/recipes/riseup/webview.js b/recipes/riseup/webview.js
index 7cbb736..0fb21f8 100644
--- a/recipes/riseup/webview.js
+++ b/recipes/riseup/webview.js
@@ -1,9 +1,9 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let unread = 0; 3 let unread = 0;
4 const notificationBadge = document.getElementsByClassName('unreadcount')[0]; 4 const notificationBadge = document.getElementsByClassName('unreadcount')[0];
5 if (notificationBadge != undefined) { 5 if (notificationBadge != undefined) {
6 unread = notificationBadge.innerText; 6 unread = Ferdi.safeParseInt(notificationBadge.innerText);
7 } 7 }
8 Ferdi.setBadge(unread); 8 Ferdi.setBadge(unread);
9 }; 9 };
diff --git a/recipes/rocketchat/package.json b/recipes/rocketchat/package.json
index f2c6374..2bf5722 100644
--- a/recipes/rocketchat/package.json
+++ b/recipes/rocketchat/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "rocketchat", 2 "id": "rocketchat",
3 "name": "Rocket.Chat", 3 "name": "Rocket.Chat",
4 "version": "1.2.1", 4 "version": "1.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.rocket.chat", 7 "serviceURL": "https://{teamId}.rocket.chat",
diff --git a/recipes/rocketchat/webview.js b/recipes/rocketchat/webview.js
index 159adea..24d784a 100644
--- a/recipes/rocketchat/webview.js
+++ b/recipes/rocketchat/webview.js
@@ -1,6 +1,6 @@
1 1
2module.exports = Ferdi => { 2module.exports = Ferdi => {
3 const getMessages = function getMessages() { 3 const getMessages = () => {
4 const directMessages = document.querySelectorAll('.rcx-badge'); 4 const directMessages = document.querySelectorAll('.rcx-badge');
5 5
6 let directMessagesCount = 0; 6 let directMessagesCount = 0;
diff --git a/recipes/roundcube/package.json b/recipes/roundcube/package.json
index d36a816..362b48e 100644
--- a/recipes/roundcube/package.json
+++ b/recipes/roundcube/package.json
@@ -1,9 +1,9 @@
1{ 1{
2 "id": "roundcube", 2 "id": "roundcube",
3 "name": "Roundcube", 3 "name": "Roundcube",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "repository": "https://github.com/jonathanjuursema/franz-roundcube",
6 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/jonathanjuursema/franz-roundcube",
7 "config": { 7 "config": {
8 "hasCustomUrl": true 8 "hasCustomUrl": true
9 } 9 }
diff --git a/recipes/roundcube/webview.js b/recipes/roundcube/webview.js
index ce9872a..c59da2f 100644
--- a/recipes/roundcube/webview.js
+++ b/recipes/roundcube/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const directElements = document.querySelectorAll('.unreadcount'); 3 const directElements = document.querySelectorAll('.unreadcount');
4 let direct = 0; 4 let direct = 0;
5 for (let i = 0; i < directElements.length; i += 1) { 5 for (let i = 0; i < directElements.length; i += 1) {
diff --git a/recipes/scrumpy/package.json b/recipes/scrumpy/package.json
index 33dcb5b..b3ee954 100644
--- a/recipes/scrumpy/package.json
+++ b/recipes/scrumpy/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "scrumpy", 2 "id": "scrumpy",
3 "name": "Scrumpy", 3 "name": "Scrumpy",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/scrumpy/franz-recipe-scrumpy", 6 "repository": "https://github.com/scrumpy/franz-recipe-scrumpy",
7 "config": { 7 "config": {
diff --git a/recipes/scrumpy/webview.js b/recipes/scrumpy/webview.js
index b53404b..5c762e4 100644
--- a/recipes/scrumpy/webview.js
+++ b/recipes/scrumpy/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const notifications = document.querySelector('.c-notifications-dropdown__count') 3 const notifications = document.querySelector('.c-notifications-dropdown__count')
4 Ferdi.setBadge(notifications.innerText); 4 Ferdi.setBadge(notifications.innerText);
5 }; 5 };
diff --git a/recipes/simplenote/package.json b/recipes/simplenote/package.json
index a4867b9..cd13d5c 100644
--- a/recipes/simplenote/package.json
+++ b/recipes/simplenote/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "simplenote", 2 "id": "simplenote",
3 "name": "Simplenote", 3 "name": "Simplenote",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.simplenote.com/" 7 "serviceURL": "https://app.simplenote.com/"
diff --git a/recipes/simplenote/webview.js b/recipes/simplenote/webview.js
index 1017d26..8d1afc8 100644
--- a/recipes/simplenote/webview.js
+++ b/recipes/simplenote/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 if (window.location.pathname.includes('messaging')) { 5 if (window.location.pathname.includes('messaging')) {
diff --git a/recipes/skype/package.json b/recipes/skype/package.json
index 5d23929..d824a57 100644
--- a/recipes/skype/package.json
+++ b/recipes/skype/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "skype", 2 "id": "skype",
3 "name": "Skype", 3 "name": "Skype",
4 "version": "3.2.0", 4 "version": "3.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.skype.com/", 7 "serviceURL": "https://web.skype.com/",
diff --git a/recipes/skype/webview.js b/recipes/skype/webview.js
index dd867ea..18b63a5 100644
--- a/recipes/skype/webview.js
+++ b/recipes/skype/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi, settings) => { 5module.exports = (Ferdi, settings) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let count = 0; 7 let count = 0;
8 const container = document.querySelector('[role="tablist"] > [title="Chats"] > div'); 8 const container = document.querySelector('[role="tablist"] > [title="Chats"] > div');
9 9
diff --git a/recipes/slite/package.json b/recipes/slite/package.json
index 44ec123..4f1b753 100644
--- a/recipes/slite/package.json
+++ b/recipes/slite/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "slite", 2 "id": "slite",
3 "name": "Slite", 3 "name": "Slite",
4 "version": "1.0.4", 4 "version": "1.0.5",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.slite.com", 7 "serviceURL": "https://{teamId}.slite.com",
diff --git a/recipes/slite/webview.js b/recipes/slite/webview.js
index a044399..d54b2d3 100644
--- a/recipes/slite/webview.js
+++ b/recipes/slite/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const element = document.querySelector("#app button[data-test-id='notificationsCount']"); 3 const element = document.querySelector("#app button[data-test-id='notificationsCount']");
4 Ferdi.setBadge(element ? Ferdi.safeParseInt(element.innerText) : 0); 4 Ferdi.setBadge(element ? Ferdi.safeParseInt(element.innerText) : 0);
5 }; 5 };
diff --git a/recipes/sococo/package.json b/recipes/sococo/package.json
index f68b52d..6bdeb58 100644
--- a/recipes/sococo/package.json
+++ b/recipes/sococo/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "sococo", 2 "id": "sococo",
3 "name": "Sococo", 3 "name": "Sococo",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/klcodanr/recipe-sococo", 6 "repository": "https://github.com/klcodanr/recipe-sococo",
7 "config": { 7 "config": {
diff --git a/recipes/sococo/webview.js b/recipes/sococo/webview.js
index 14561cd..4f7e045 100644
--- a/recipes/sococo/webview.js
+++ b/recipes/sococo/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let indirect = document.querySelectorAll('.new-messages'); 3 let indirect = document.querySelectorAll('.new-messages');
4 let direct = 0; 4 let direct = 0;
5 document.querySelectorAll('.people-pane .badge').forEach(function(badge){ 5 document.querySelectorAll('.people-pane .badge').forEach(function(badge){
diff --git a/recipes/stackoverflow/package.json b/recipes/stackoverflow/package.json
index 6b41dd5..e785703 100644
--- a/recipes/stackoverflow/package.json
+++ b/recipes/stackoverflow/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "stackoverflow", 2 "id": "stackoverflow",
3 "name": "Stackoverflow", 3 "name": "Stackoverflow",
4 "version": "0.0.1", 4 "version": "0.0.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/christianascone/franz-recipe-stackoverflow", 6 "repository": "https://github.com/christianascone/franz-recipe-stackoverflow",
7 "config": { 7 "config": {
diff --git a/recipes/stackoverflow/webview.js b/recipes/stackoverflow/webview.js
index 4d20768..437fb49 100644
--- a/recipes/stackoverflow/webview.js
+++ b/recipes/stackoverflow/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('.CxUIE, .unread'); 7 const elements = document.querySelectorAll('.CxUIE, .unread');
8 let count = 0; 8 let count = 0;
9 for (let i = 0; i < elements.length; i += 1) { 9 for (let i = 0; i < elements.length; i += 1) {
diff --git a/recipes/steamchat/package.json b/recipes/steamchat/package.json
index 12da5b9..d06d543 100644
--- a/recipes/steamchat/package.json
+++ b/recipes/steamchat/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "steamchat", 2 "id": "steamchat",
3 "name": "SteamChat", 3 "name": "SteamChat",
4 "version": "1.3.0", 4 "version": "1.3.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://steamcommunity.com/chat", 7 "serviceURL": "https://steamcommunity.com/chat",
diff --git a/recipes/steamchat/webview.js b/recipes/steamchat/webview.js
index 63f002f..d1d3d15 100644
--- a/recipes/steamchat/webview.js
+++ b/recipes/steamchat/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 // get new msg count 3 // get new msg count
4 let count = 0; 4 let count = 0;
5 const counters = document.querySelectorAll('[class*=FriendMessageCount]'); 5 const counters = document.querySelectorAll('[class*=FriendMessageCount]');
diff --git a/recipes/stride/package.json b/recipes/stride/package.json
index fa0d367..d36bb19 100644
--- a/recipes/stride/package.json
+++ b/recipes/stride/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "stride", 2 "id": "stride",
3 "name": "Stride", 3 "name": "Stride",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.stride.com", 7 "serviceURL": "https://app.stride.com",
diff --git a/recipes/stride/webview.js b/recipes/stride/webview.js
index 6b1300f..6b62e08 100644
--- a/recipes/stride/webview.js
+++ b/recipes/stride/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 // get all message badges 7 // get all message badges
8 const allBadges = document.querySelectorAll('.activity-indicator'); 8 const allBadges = document.querySelectorAll('.activity-indicator');
9 let directCount = 0; 9 let directCount = 0;
diff --git a/recipes/teamleader/package.json b/recipes/teamleader/package.json
index 60f917a..5b971da 100644
--- a/recipes/teamleader/package.json
+++ b/recipes/teamleader/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "teamleader", 2 "id": "teamleader",
3 "name": "teamleader", 3 "name": "teamleader",
4 "version": "1.1.2", 4 "version": "1.1.3",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.teamleader.eu/?gotologin", 7 "serviceURL": "https://app.teamleader.eu/?gotologin",
diff --git a/recipes/teamleader/webview.js b/recipes/teamleader/webview.js
index d341016..241d787 100644
--- a/recipes/teamleader/webview.js
+++ b/recipes/teamleader/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let notifications = 0; 7 let notifications = 0;
8 let indirectNotifications = 0; 8 let indirectNotifications = 0;
9 9
diff --git a/recipes/teamwork-projects/package.json b/recipes/teamwork-projects/package.json
index 50810b0..bbb203a 100644
--- a/recipes/teamwork-projects/package.json
+++ b/recipes/teamwork-projects/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "teamwork-projects", 2 "id": "teamwork-projects",
3 "name": "Teamwork Projects", 3 "name": "Teamwork Projects",
4 "version": "0.2.1", 4 "version": "0.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.teamwork.com/", 7 "serviceURL": "https://{teamId}.teamwork.com/",
diff --git a/recipes/teamwork-projects/webview.js b/recipes/teamwork-projects/webview.js
index 734eb4f..aa3e7be 100644
--- a/recipes/teamwork-projects/webview.js
+++ b/recipes/teamwork-projects/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let indirectCount = 0; 3 let indirectCount = 0;
4 const badge = document.getElementById('numNotifs2'); 4 const badge = document.getElementById('numNotifs2');
5 5
diff --git a/recipes/telegram-react/package.json b/recipes/telegram-react/package.json
index b3dbde6..11ae14f 100644
--- a/recipes/telegram-react/package.json
+++ b/recipes/telegram-react/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "telegram-react", 2 "id": "telegram-react",
3 "name": "Telegram React", 3 "name": "Telegram React",
4 "version": "1.2.1", 4 "version": "1.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://webk.telegram.org", 7 "serviceURL": "https://webk.telegram.org",
diff --git a/recipes/telegram-react/webview.js b/recipes/telegram-react/webview.js
index c6111ee..bf41404 100644
--- a/recipes/telegram-react/webview.js
+++ b/recipes/telegram-react/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 const elements = document.querySelectorAll('.chatlist > li:not(.is-muted)'); 4 const elements = document.querySelectorAll('.chatlist > li:not(.is-muted)');
5 if (elements) { 5 if (elements) {
diff --git a/recipes/telegram/package.json b/recipes/telegram/package.json
index 024190f..adb6de6 100644
--- a/recipes/telegram/package.json
+++ b/recipes/telegram/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "telegram", 2 "id": "telegram",
3 "name": "Telegram", 3 "name": "Telegram",
4 "version": "3.2.1", 4 "version": "3.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.telegram.org", 7 "serviceURL": "https://web.telegram.org",
diff --git a/recipes/telegram/webview.js b/recipes/telegram/webview.js
index a2be19b..3b36483 100644
--- a/recipes/telegram/webview.js
+++ b/recipes/telegram/webview.js
@@ -5,7 +5,7 @@ const _path = _interopRequireDefault(require('path'));
5function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 5function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6 6
7module.exports = Ferdi => { 7module.exports = Ferdi => {
8 const getMessages = function getMessages() { 8 const getMessages = () => {
9 let count = 0; 9 let count = 0;
10 let count_sec = 0; 10 let count_sec = 0;
11 const elements = document.querySelectorAll('.rp'); 11 const elements = document.querySelectorAll('.rp');
diff --git a/recipes/thelounge/package.json b/recipes/thelounge/package.json
index a954b43..a3f833b 100644
--- a/recipes/thelounge/package.json
+++ b/recipes/thelounge/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "thelounge", 2 "id": "thelounge",
3 "name": "The Lounge", 3 "name": "The Lounge",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasCustomUrl": true, 7 "hasCustomUrl": true,
diff --git a/recipes/thelounge/webview.js b/recipes/thelounge/webview.js
index 7174749..28f647c 100644
--- a/recipes/thelounge/webview.js
+++ b/recipes/thelounge/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const indirectElements = document.querySelectorAll('.badge:not(.highlight)'); 3 const indirectElements = document.querySelectorAll('.badge:not(.highlight)');
4 const direct = document.querySelectorAll('.badge.highlight').length; 4 const direct = document.querySelectorAll('.badge.highlight').length;
5 let indirect = 0; 5 let indirect = 0;
diff --git a/recipes/threema/package.json b/recipes/threema/package.json
index 365c1d8..f0a774d 100644
--- a/recipes/threema/package.json
+++ b/recipes/threema/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "threema", 2 "id": "threema",
3 "name": "Threema", 3 "name": "Threema",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/Arany/franz-recipe-threema", 6 "repository": "https://github.com/Arany/franz-recipe-threema",
7 "config": { 7 "config": {
diff --git a/recipes/threema/webview.js b/recipes/threema/webview.js
index d303b1b..40f5203 100644
--- a/recipes/threema/webview.js
+++ b/recipes/threema/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('.badge.unread-count:not(.ng-hide)'); 7 const elements = document.querySelectorAll('.badge.unread-count:not(.ng-hide)');
8 let count = 0; 8 let count = 0;
9 9
diff --git a/recipes/tinder/package.json b/recipes/tinder/package.json
index 88791f0..6404122 100644
--- a/recipes/tinder/package.json
+++ b/recipes/tinder/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "tinder", 2 "id": "tinder",
3 "name": "Tinder", 3 "name": "Tinder",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://tinder.com" 7 "serviceURL": "https://tinder.com"
diff --git a/recipes/tinder/webview.js b/recipes/tinder/webview.js
index 46ab212..0a6434d 100644
--- a/recipes/tinder/webview.js
+++ b/recipes/tinder/webview.js
@@ -3,6 +3,5 @@ var _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6
7 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css')); 6 Ferdi.injectCSS(_path.default.join(__dirname, 'service.css'));
8}; 7};
diff --git a/recipes/trello/package.json b/recipes/trello/package.json
index ceefe8f..b3dce40 100644
--- a/recipes/trello/package.json
+++ b/recipes/trello/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "trello", 2 "id": "trello",
3 "name": "Trello", 3 "name": "Trello",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://trello.com/" 7 "serviceURL": "https://trello.com/"
diff --git a/recipes/trello/webview.js b/recipes/trello/webview.js
index a6c107d..d9749b0 100644
--- a/recipes/trello/webview.js
+++ b/recipes/trello/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const notifications = document.querySelectorAll('[class*=_3W-zkl4-bnVKzJ]'); 3 const notifications = document.querySelectorAll('[class*=_3W-zkl4-bnVKzJ]');
4 Ferdi.setBadge(0, notifications.length >= 1 ? 1 : 0); 4 Ferdi.setBadge(0, notifications.length >= 1 ? 1 : 0);
5 }; 5 };
diff --git a/recipes/tweetdeck/package.json b/recipes/tweetdeck/package.json
index 5400bac..2fc57fd 100644
--- a/recipes/tweetdeck/package.json
+++ b/recipes/tweetdeck/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "tweetdeck", 2 "id": "tweetdeck",
3 "name": "Tweetdeck", 3 "name": "Tweetdeck",
4 "version": "1.2.1", 4 "version": "1.2.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://tweetdeck.twitter.com/", 7 "serviceURL": "https://tweetdeck.twitter.com/",
diff --git a/recipes/tweetdeck/webview.js b/recipes/tweetdeck/webview.js
index 54b7997..9bdc2be 100644
--- a/recipes/tweetdeck/webview.js
+++ b/recipes/tweetdeck/webview.js
@@ -4,7 +4,7 @@ module.exports = Ferdi => {
4 window.location.assign(url); 4 window.location.assign(url);
5 }); 5 });
6 6
7 const getMessages = function getMessages() { 7 const getMessages = () => {
8 const elements = document.querySelectorAll('.msg-unread-count'); 8 const elements = document.querySelectorAll('.msg-unread-count');
9 let count = 0; 9 let count = 0;
10 if (elements[0]) { 10 if (elements[0]) {
diff --git a/recipes/twist/package.json b/recipes/twist/package.json
index 45f411b..6d3e32b 100644
--- a/recipes/twist/package.json
+++ b/recipes/twist/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "twist", 2 "id": "twist",
3 "name": "twist", 3 "name": "twist",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://twistapp.com/login", 7 "serviceURL": "https://twistapp.com/login",
diff --git a/recipes/twist/webview.js b/recipes/twist/webview.js
index c877d29..52b67b5 100644
--- a/recipes/twist/webview.js
+++ b/recipes/twist/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const count = document.querySelectorAll('.switch_pane>.unread').length; 3 const count = document.querySelectorAll('.switch_pane>.unread').length;
4 Ferdi.setBadge(count); 4 Ferdi.setBadge(count);
5 }; 5 };
diff --git a/recipes/twitter-dm/package.json b/recipes/twitter-dm/package.json
index 066e699..f40d6d9 100644
--- a/recipes/twitter-dm/package.json
+++ b/recipes/twitter-dm/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "twitter-dm", 2 "id": "twitter-dm",
3 "name": "Twitter DM", 3 "name": "Twitter DM",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mobile.twitter.com/messages", 7 "serviceURL": "https://mobile.twitter.com/messages",
diff --git a/recipes/twitter-dm/webview.js b/recipes/twitter-dm/webview.js
index d255ae9..ac47134 100644
--- a/recipes/twitter-dm/webview.js
+++ b/recipes/twitter-dm/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 const elem = document.querySelector('a[href="/messages"] div div'); 4 const elem = document.querySelector('a[href="/messages"] div div');
5 if (elem) { 5 if (elem) {
diff --git a/recipes/twitter/package.json b/recipes/twitter/package.json
index cb840a5..83cf0fa 100644
--- a/recipes/twitter/package.json
+++ b/recipes/twitter/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "twitter", 2 "id": "twitter",
3 "name": "Twitter", 3 "name": "Twitter",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/getferdi/recipes", 6 "repository": "https://github.com/getferdi/recipes",
7 "config": { 7 "config": {
diff --git a/recipes/twitter/webview.js b/recipes/twitter/webview.js
index 39a704e..dfd06d1 100644
--- a/recipes/twitter/webview.js
+++ b/recipes/twitter/webview.js
@@ -6,11 +6,11 @@ module.exports = Ferdi => {
6 // "unread items". Sum the values for direct badge. 6 // "unread items". Sum the values for direct badge.
7 const notificationsElement = document.querySelector('[data-testid=AppTabBar_Notifications_Link] div div div'); 7 const notificationsElement = document.querySelector('[data-testid=AppTabBar_Notifications_Link] div div div');
8 if (notificationsElement) { 8 if (notificationsElement) {
9 direct += notificationsElement.innerHTML; 9 direct += Ferdi.safeParseInt(notificationsElement.innerHTML);
10 } 10 }
11 const DMElement = document.querySelector('[data-testid=AppTabBar_DirectMessage_Link] div div div'); 11 const DMElement = document.querySelector('[data-testid=AppTabBar_DirectMessage_Link] div div div');
12 if (DMElement) { 12 if (DMElement) {
13 direct += DMElement.innerHTML; 13 direct += Ferdi.safeParseInt(DMElement.innerHTML);
14 } 14 }
15 15
16 Ferdi.setBadge(direct); 16 Ferdi.setBadge(direct);
diff --git a/recipes/udemy/package.json b/recipes/udemy/package.json
index 32c5031..4563e36 100644
--- a/recipes/udemy/package.json
+++ b/recipes/udemy/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "udemy", 2 "id": "udemy",
3 "name": "Udemy", 3 "name": "Udemy",
4 "version": "1.0.4", 4 "version": "1.0.5",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/gaspergrom/Franz-services/tree/master/udemy", 6 "repository": "https://github.com/gaspergrom/Franz-services/tree/master/udemy",
7 "config": { 7 "config": {
diff --git a/recipes/udemy/webview.js b/recipes/udemy/webview.js
index f440fe5..6120e54 100644
--- a/recipes/udemy/webview.js
+++ b/recipes/udemy/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let direct = 0; 3 let direct = 0;
4 let indirect = 0; 4 let indirect = 0;
5 Ferdi.setBadge(direct, indirect); 5 Ferdi.setBadge(direct, indirect);
diff --git a/recipes/vk/package.json b/recipes/vk/package.json
index b46622d..e4b7dfa 100644
--- a/recipes/vk/package.json
+++ b/recipes/vk/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "vk", 2 "id": "vk",
3 "name": "VK", 3 "name": "VK",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/meetfranz/recipe-vk", 6 "repository": "https://github.com/meetfranz/recipe-vk",
7 "config": { 7 "config": {
diff --git a/recipes/vk/webview.js b/recipes/vk/webview.js
index 05d703e..aeab0ec 100644
--- a/recipes/vk/webview.js
+++ b/recipes/vk/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let directs = 0; 3 let directs = 0;
4 const element = document.getElementsByClassName('left_count'); 4 const element = document.getElementsByClassName('left_count');
5 if (element.length > 0) { 5 if (element.length > 0) {
diff --git a/recipes/voxer/package.json b/recipes/voxer/package.json
index b755c5c..cfa41ea 100644
--- a/recipes/voxer/package.json
+++ b/recipes/voxer/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "voxer", 2 "id": "voxer",
3 "name": "Voxer", 3 "name": "Voxer",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.voxer.com", 7 "serviceURL": "https://web.voxer.com",
diff --git a/recipes/voxer/webview.js b/recipes/voxer/webview.js
index 23910e0..5092eb9 100644
--- a/recipes/voxer/webview.js
+++ b/recipes/voxer/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const count = document.querySelectorAll('.unconsumed-badge').length; 7 const count = document.querySelectorAll('.unconsumed-badge').length;
8 8
9 // set Ferdi badge 9 // set Ferdi badge
diff --git a/recipes/wakatime/package.json b/recipes/wakatime/package.json
index 2923701..a386b4d 100644
--- a/recipes/wakatime/package.json
+++ b/recipes/wakatime/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "wakatime", 2 "id": "wakatime",
3 "name": "Wakatime", 3 "name": "Wakatime",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://wakatime.com/login" 7 "serviceURL": "https://wakatime.com/login"
diff --git a/recipes/wakatime/webview.js b/recipes/wakatime/webview.js
index d18a37d..e1e18ee 100644
--- a/recipes/wakatime/webview.js
+++ b/recipes/wakatime/webview.js
@@ -1,3 +1,7 @@
1const _path = _interopRequireDefault(require('path'));
2
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4
1module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
2 Ferdi.injectCSS(_path.default.join(__dirname, "service.css")); 6 Ferdi.injectCSS(_path.default.join(__dirname, "service.css"));
3}; 7};
diff --git a/recipes/webex-teams/package.json b/recipes/webex-teams/package.json
index d39962f..7bef37a 100644
--- a/recipes/webex-teams/package.json
+++ b/recipes/webex-teams/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "webex-teams", 2 "id": "webex-teams",
3 "name": "Webex Teams", 3 "name": "Webex Teams",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.webex.com", 7 "serviceURL": "https://web.webex.com",
diff --git a/recipes/webex-teams/webview.js b/recipes/webex-teams/webview.js
index 4b66233..d29bed9 100644
--- a/recipes/webex-teams/webview.js
+++ b/recipes/webex-teams/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 let span = document.getElementsByClassName('navigation-list-item--badgeCount'); 5 let span = document.getElementsByClassName('navigation-list-item--badgeCount');
diff --git a/recipes/wechat/package.json b/recipes/wechat/package.json
index b8af764..8024008 100644
--- a/recipes/wechat/package.json
+++ b/recipes/wechat/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "wechat", 2 "id": "wechat",
3 "name": "WeChat", 3 "name": "WeChat",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/koma-private/recipe-wechat", 6 "repository": "https://github.com/koma-private/recipe-wechat",
7 "config": { 7 "config": {
diff --git a/recipes/wechat/webview.js b/recipes/wechat/webview.js
index b1d8e31..d75bd72 100644
--- a/recipes/wechat/webview.js
+++ b/recipes/wechat/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = (Ferdi) => { 5module.exports = (Ferdi) => {
6 function getMessages() { 6 const getMessages = () => {
7 let directCount = 0; 7 let directCount = 0;
8 let indirectCount = 0; 8 let indirectCount = 0;
9 const chat_item = document.querySelectorAll('div.chat_item'); 9 const chat_item = document.querySelectorAll('div.chat_item');
diff --git a/recipes/weekplan/package.json b/recipes/weekplan/package.json
index c395363..e3c0139 100644
--- a/recipes/weekplan/package.json
+++ b/recipes/weekplan/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "weekplan", 2 "id": "weekplan",
3 "name": "Weekplan", 3 "name": "Weekplan",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/minipada/recipe-weekplan", 6 "repository": "https://github.com/minipada/recipe-weekplan",
7 "config": { 7 "config": {
diff --git a/recipes/weekplan/webview.js b/recipes/weekplan/webview.js
index 5a8a8fb..f08859d 100644
--- a/recipes/weekplan/webview.js
+++ b/recipes/weekplan/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 getMessages = () => { 2 const getMessages = () => {
3 const events = document.querySelectorAll(".today")[0].getElementsByClassName('list')[0].getElementsByClassName('task-list')[0].getElementsByClassName('event-section')[0].getElementsByClassName('droppable')[0].children[0].childElementCount 3 const events = document.querySelectorAll(".today")[0].getElementsByClassName('list')[0].getElementsByClassName('task-list')[0].getElementsByClassName('event-section')[0].getElementsByClassName('droppable')[0].children[0].childElementCount
4 const tasks = document.querySelectorAll(".today")[0].getElementsByClassName('list')[0].getElementsByClassName('task-list')[0].getElementsByClassName('task-section')[0].getElementsByClassName('droppable')[0].children[0].childElementCount 4 const tasks = document.querySelectorAll(".today")[0].getElementsByClassName('list')[0].getElementsByClassName('task-list')[0].getElementsByClassName('task-section')[0].getElementsByClassName('droppable')[0].children[0].childElementCount
5 5
diff --git a/recipes/whatsapp/package.json b/recipes/whatsapp/package.json
index a364a1f..4cec6a6 100644
--- a/recipes/whatsapp/package.json
+++ b/recipes/whatsapp/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "whatsapp", 2 "id": "whatsapp",
3 "name": "WhatsApp", 3 "name": "WhatsApp",
4 "version": "3.3.3", 4 "version": "3.3.4",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://web.whatsapp.com", 7 "serviceURL": "https://web.whatsapp.com",
diff --git a/recipes/whatsapp/webview.js b/recipes/whatsapp/webview.js
index fb1a20b..293e413 100644
--- a/recipes/whatsapp/webview.js
+++ b/recipes/whatsapp/webview.js
@@ -3,7 +3,7 @@ const _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 let count = 0; 7 let count = 0;
8 let indirectCount = 0; 8 let indirectCount = 0;
9 9
diff --git a/recipes/whereby/package.json b/recipes/whereby/package.json
index 5ca5c17..2a7af3f 100644
--- a/recipes/whereby/package.json
+++ b/recipes/whereby/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "whereby", 2 "id": "whereby",
3 "name": "whereby.com", 3 "name": "whereby.com",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://whereby.com/{teamId}", 7 "serviceURL": "https://whereby.com/{teamId}",
diff --git a/recipes/whereby/webview.js b/recipes/whereby/webview.js
index 0e5529e..52d6d7b 100644
--- a/recipes/whereby/webview.js
+++ b/recipes/whereby/webview.js
@@ -3,7 +3,7 @@ var _path = _interopRequireDefault(require('path'));
3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 3function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 const getMessages = function getMessages() { 6 const getMessages = () => {
7 const elements = document.querySelectorAll('.CxUIE, .unread'); 7 const elements = document.querySelectorAll('.CxUIE, .unread');
8 let count = 0; 8 let count = 0;
9 9
diff --git a/recipes/wire/package.json b/recipes/wire/package.json
index 4a85ade..e0e2136 100644
--- a/recipes/wire/package.json
+++ b/recipes/wire/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "wire", 2 "id": "wire",
3 "name": "Wire", 3 "name": "Wire",
4 "version": "1.0.3", 4 "version": "1.0.4",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://app.wire.com/", 7 "serviceURL": "https://app.wire.com/",
diff --git a/recipes/wire/webview.js b/recipes/wire/webview.js
index b099eee..55720da 100644
--- a/recipes/wire/webview.js
+++ b/recipes/wire/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let direct = 0; 3 let direct = 0;
4 let indirect = 0; 4 let indirect = 0;
5 5
diff --git a/recipes/wrike/package.json b/recipes/wrike/package.json
index 5eb0f04..1e298cf 100644
--- a/recipes/wrike/package.json
+++ b/recipes/wrike/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "wrike", 2 "id": "wrike",
3 "name": "Wrike", 3 "name": "Wrike",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "repository": "https://github.com/koma-private/recipe-wrike", 6 "repository": "https://github.com/koma-private/recipe-wrike",
7 "config": { 7 "config": {
diff --git a/recipes/wrike/webview.js b/recipes/wrike/webview.js
index 39e293d..e09407d 100644
--- a/recipes/wrike/webview.js
+++ b/recipes/wrike/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 function getMessages() { 2 const getMessages = () => {
3 let directCount = 0; 3 let directCount = 0;
4 const element = document.querySelector('.ws-navigation-button__indicator.ws-navigation-button-indicator'); 4 const element = document.querySelector('.ws-navigation-button__indicator.ws-navigation-button-indicator');
5 if (element) { 5 if (element) {
diff --git a/recipes/yahoo-mail/package.json b/recipes/yahoo-mail/package.json
index 4bb2901..7a3b274 100644
--- a/recipes/yahoo-mail/package.json
+++ b/recipes/yahoo-mail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "yahoo-mail", 2 "id": "yahoo-mail",
3 "name": "Yahoo Mail", 3 "name": "Yahoo Mail",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.yahoo.com", 7 "serviceURL": "https://mail.yahoo.com",
diff --git a/recipes/yahoo-mail/webview.js b/recipes/yahoo-mail/webview.js
index fc47f26..17ea298 100644
--- a/recipes/yahoo-mail/webview.js
+++ b/recipes/yahoo-mail/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const count = document.querySelector('a[data-test-folder-name="Inbox"]').getAttribute('data-test-unread-count'); 3 const count = document.querySelector('a[data-test-folder-name="Inbox"]').getAttribute('data-test-unread-count');
4 Ferdi.setBadge(count); 4 Ferdi.setBadge(count);
5 }; 5 };
diff --git a/recipes/yammer/package.json b/recipes/yammer/package.json
index f0a20d6..da90bec 100644
--- a/recipes/yammer/package.json
+++ b/recipes/yammer/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "yammer", 2 "id": "yammer",
3 "name": "Yammer", 3 "name": "Yammer",
4 "version": "1.1.1", 4 "version": "1.1.2",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://www.yammer.com/login", 7 "serviceURL": "https://www.yammer.com/login",
diff --git a/recipes/yammer/webview.js b/recipes/yammer/webview.js
index 79d428f..d3a94da 100644
--- a/recipes/yammer/webview.js
+++ b/recipes/yammer/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let directMessages = 0; 3 let directMessages = 0;
4 let indirectMessages = 0; 4 let indirectMessages = 0;
5 const notificationElement = document.querySelector('.yj-notifications-indicator-count'); 5 const notificationElement = document.querySelector('.yj-notifications-indicator-count');
diff --git a/recipes/yandex-mail/package.json b/recipes/yandex-mail/package.json
index 356c1b9..0e5bbfb 100644
--- a/recipes/yandex-mail/package.json
+++ b/recipes/yandex-mail/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "yandex-mail", 2 "id": "yandex-mail",
3 "name": "Yandex Mail", 3 "name": "Yandex Mail",
4 "version": "1.0.0", 4 "version": "1.0.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://mail.yandex.ru" 7 "serviceURL": "https://mail.yandex.ru"
diff --git a/recipes/yandex-mail/webview.js b/recipes/yandex-mail/webview.js
index 2c039a1..7a937a7 100644
--- a/recipes/yandex-mail/webview.js
+++ b/recipes/yandex-mail/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 let count = 0; 3 let count = 0;
4 4
5 if (document.getElementsByClassName('mail-LabelList-Item_count').length > 1) { 5 if (document.getElementsByClassName('mail-LabelList-Item_count').length > 1) {
diff --git a/recipes/youtrack/package.json b/recipes/youtrack/package.json
index fe51ad3..f31b70d 100644
--- a/recipes/youtrack/package.json
+++ b/recipes/youtrack/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "youtrack", 2 "id": "youtrack",
3 "name": "YouTrack", 3 "name": "YouTrack",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://{teamId}.myjetbrains.com/youtrack/", 7 "serviceURL": "https://{teamId}.myjetbrains.com/youtrack/",
diff --git a/recipes/youtrack/webview.js b/recipes/youtrack/webview.js
index 071b300..286046a 100644
--- a/recipes/youtrack/webview.js
+++ b/recipes/youtrack/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const unread = document.querySelectorAll('.header__bell-wrapper_unread'); 3 const unread = document.querySelectorAll('.header__bell-wrapper_unread');
4 Ferdi.setBadge(unread.length > 0 ? 1 : 0); 4 Ferdi.setBadge(unread.length > 0 ? 1 : 0);
5 }; 5 };
diff --git a/recipes/zalo/package.json b/recipes/zalo/package.json
index ddbbbcd..5b96163 100644
--- a/recipes/zalo/package.json
+++ b/recipes/zalo/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "zalo", 2 "id": "zalo",
3 "name": "Zalo", 3 "name": "Zalo",
4 "version": "1.2.0", 4 "version": "1.2.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "serviceURL": "https://chat.zalo.me/", 7 "serviceURL": "https://chat.zalo.me/",
diff --git a/recipes/zalo/webview.js b/recipes/zalo/webview.js
index 2966ca1..a79e29b 100644
--- a/recipes/zalo/webview.js
+++ b/recipes/zalo/webview.js
@@ -1,6 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const unread = 0;
4 const notificationBadge = document.getElementsByClassName('tab-red-dot').length; 3 const notificationBadge = document.getElementsByClassName('tab-red-dot').length;
5 Ferdi.setBadge(notificationBadge); 4 Ferdi.setBadge(notificationBadge);
6 }; 5 };
diff --git a/recipes/zimbra/package.json b/recipes/zimbra/package.json
index 0fc0fc4..665776e 100644
--- a/recipes/zimbra/package.json
+++ b/recipes/zimbra/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "zimbra", 2 "id": "zimbra",
3 "name": "Zimbra", 3 "name": "Zimbra",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasNotificationSound": true, 7 "hasNotificationSound": true,
diff --git a/recipes/zimbra/webview.js b/recipes/zimbra/webview.js
index e2cf890..d4b8a97 100644
--- a/recipes/zimbra/webview.js
+++ b/recipes/zimbra/webview.js
@@ -1,5 +1,5 @@
1module.exports = Ferdi => { 1module.exports = Ferdi => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const { title } = document; 3 const { title } = document;
4 const regex = /\d+/; 4 const regex = /\d+/;
5 Ferdi.setBadge(regex.test(title) ? Number(regex.exec(title)[0]) : 0); 5 Ferdi.setBadge(regex.test(title) ? Number(regex.exec(title)[0]) : 0);
diff --git a/recipes/zulip/package.json b/recipes/zulip/package.json
index 21b2d44..2dd209a 100644
--- a/recipes/zulip/package.json
+++ b/recipes/zulip/package.json
@@ -1,7 +1,7 @@
1{ 1{
2 "id": "zulip", 2 "id": "zulip",
3 "name": "Zulip", 3 "name": "Zulip",
4 "version": "1.1.0", 4 "version": "1.1.1",
5 "license": "MIT", 5 "license": "MIT",
6 "config": { 6 "config": {
7 "hasNotificationSound": true, 7 "hasNotificationSound": true,
diff --git a/recipes/zulip/webview.js b/recipes/zulip/webview.js
index 09e999d..3de6c90 100644
--- a/recipes/zulip/webview.js
+++ b/recipes/zulip/webview.js
@@ -1,5 +1,5 @@
1module.exports = (Ferdi) => { 1module.exports = (Ferdi) => {
2 const getMessages = function getMessages() { 2 const getMessages = () => {
3 const allMessages = Math.round(document.querySelectorAll('#global_filters .top_left_all_messages .count .value')[0].innerText); 3 const allMessages = Math.round(document.querySelectorAll('#global_filters .top_left_all_messages .count .value')[0].innerText);
4 Ferdi.setBadge(allMessages); 4 Ferdi.setBadge(allMessages);
5 }; 5 };
diff --git a/scripts/sample_recipe/webview.js b/scripts/sample_recipe/webview.js
index 53924f2..a6596b1 100644
--- a/scripts/sample_recipe/webview.js
+++ b/scripts/sample_recipe/webview.js
@@ -4,7 +4,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
4 4
5module.exports = Ferdi => { 5module.exports = Ferdi => {
6 // TODO: If your SNAME service has unread messages, uncomment these lines to implement the logic for updating the badges 6 // TODO: If your SNAME service has unread messages, uncomment these lines to implement the logic for updating the badges
7 // const getMessages = function getMessages() { 7 // const getMessages = () => {
8 // // TODO: Insert your notification-finding code here 8 // // TODO: Insert your notification-finding code here
9 // Ferdi.setBadge(0, 0); 9 // Ferdi.setBadge(0, 0);
10 // }; 10 // };