From 728d339739b63e9bb59e457e4a84fe9a65b93fc9 Mon Sep 17 00:00:00 2001 From: vantezzen Date: Sat, 28 Sep 2019 12:10:25 +0200 Subject: Add uncompressed recipes --- uncompressed/android-messages/README.md | 5 + uncompressed/android-messages/icon.svg | 33 + uncompressed/android-messages/index.js | 3 + uncompressed/android-messages/package.json | 13 + uncompressed/android-messages/webview.js | 10 + uncompressed/chatwork/LICENSE | 21 + uncompressed/chatwork/README.md | 24 + uncompressed/chatwork/icon.svg | 12 + uncompressed/chatwork/index.js | 3 + uncompressed/chatwork/package.json | 16 + uncompressed/chatwork/webview.js | 38 + uncompressed/ciscospark/README.md | 5 + uncompressed/ciscospark/icon.svg | 8 + uncompressed/ciscospark/index.js | 4 + uncompressed/ciscospark/package.json | 13 + uncompressed/ciscospark/service.css | 4 + uncompressed/ciscospark/webview.js | 30 + uncompressed/discord/README.md | 5 + uncompressed/discord/icon.svg | 14 + uncompressed/discord/index.js | 10 + uncompressed/discord/package.json | 23 + uncompressed/discord/service.css | 3 + uncompressed/discord/webview.js | 16 + uncompressed/ex-google-voice/icon.svg | 15 + uncompressed/ex-google-voice/index.js | 3 + uncompressed/ex-google-voice/package.json | 15 + uncompressed/ex-google-voice/webview.js | 26 + uncompressed/facebookpages/README.md | 5 + uncompressed/facebookpages/icon.svg | 8 + uncompressed/facebookpages/index.js | 3 + uncompressed/facebookpages/package.json | 16 + uncompressed/facebookpages/webview.js | 30 + uncompressed/fastmail/LICENSE | 9 + uncompressed/fastmail/README.md | 12 + uncompressed/fastmail/icon.svg | 55 + uncompressed/fastmail/index.js | 4 + uncompressed/fastmail/package.json | 14 + uncompressed/fastmail/webview.js | 27 + uncompressed/flowdock/README.md | 5 + uncompressed/flowdock/icon.svg | 1 + uncompressed/flowdock/index.js | 4 + uncompressed/flowdock/package.json | 15 + uncompressed/flowdock/webview.js | 14 + uncompressed/franz-custom-website/README.md | 5 + uncompressed/franz-custom-website/icon.svg | 11 + uncompressed/franz-custom-website/index.js | 20 + uncompressed/franz-custom-website/package.json | 15 + uncompressed/franz-custom-website/webview.js | 3 + uncompressed/gadugadu/LICENSE | 21 + uncompressed/gadugadu/README.md | 23 + uncompressed/gadugadu/icon.svg | 19 + uncompressed/gadugadu/index.js | 4 + uncompressed/gadugadu/package.json | 13 + uncompressed/gadugadu/service.css | 3 + uncompressed/gadugadu/webview.js | 25 + uncompressed/github/LICENSE | 21 + uncompressed/github/README.md | 3 + uncompressed/github/icon.svg | 3 + uncompressed/github/index.js | 4 + uncompressed/github/package.json | 12 + uncompressed/github/webview.js | 2 + uncompressed/gitter/icon.svg | 1 + uncompressed/gitter/index.js | 6 + uncompressed/gitter/package.json | 23 + uncompressed/gitter/service.css | 3 + uncompressed/gitter/webview.js | 27 + uncompressed/glowingbear/LICENSE | 21 + uncompressed/glowingbear/icon.svg | 1 + uncompressed/glowingbear/index.js | 4 + uncompressed/glowingbear/package.json | 14 + uncompressed/glowingbear/webview.js | 15 + uncompressed/gmail/README.md | 5 + uncompressed/gmail/icon.svg | 56 + uncompressed/gmail/index.js | 3 + uncompressed/gmail/package.json | 12 + uncompressed/gmail/webview.js | 23 + uncompressed/gmailinbox/README.md | 5 + uncompressed/gmailinbox/icon.svg | 7 + uncompressed/gmailinbox/index.js | 5 + uncompressed/gmailinbox/package.json | 12 + uncompressed/gmailinbox/webview.js | 18 + uncompressed/googleallo/LICENSE | 7 + uncompressed/googleallo/README.md | 19 + uncompressed/googleallo/icon.svg | 35 + uncompressed/googleallo/index.js | 4 + uncompressed/googleallo/package.json | 13 + uncompressed/googleallo/webview.js | 19 + uncompressed/googlecalendar/LICENSE | 19 + uncompressed/googlecalendar/README.md | 4 + uncompressed/googlecalendar/calendar.css | 41 + uncompressed/googlecalendar/icon.svg | 21 + uncompressed/googlecalendar/index.js | 4 + uncompressed/googlecalendar/package.json | 15 + uncompressed/googlecalendar/webview.js | 41 + uncompressed/googlekeep/LICENSE | 7 + uncompressed/googlekeep/README.md | 19 + uncompressed/googlekeep/icon.svg | 9 + uncompressed/googlekeep/index.js | 4 + uncompressed/googlekeep/package.json | 12 + uncompressed/googlekeep/webview.js | 2 + uncompressed/grape/README.md | 5 + uncompressed/grape/icon.svg | 17 + uncompressed/grape/index.js | 21 + uncompressed/grape/package.json | 18 + uncompressed/grape/webview.js | 13 + uncompressed/groupme/README.md | 5 + uncompressed/groupme/icon.svg | 21 + uncompressed/groupme/index.js | 4 + uncompressed/groupme/package.json | 14 + uncompressed/groupme/webview.js | 13 + uncompressed/hangouts/README.md | 5 + uncompressed/hangouts/icon.svg | 29 + uncompressed/hangouts/index.js | 5 + uncompressed/hangouts/package.json | 13 + uncompressed/hangouts/webview.js | 21 + uncompressed/hangoutschat/README.md | 5 + uncompressed/hangoutschat/icon.svg | 30 + uncompressed/hangoutschat/index.js | 5 + uncompressed/hangoutschat/package.json | 14 + uncompressed/hangoutschat/webview.js | 30 + uncompressed/hipchat/README.md | 5 + uncompressed/hipchat/icon.svg | 23 + uncompressed/hipchat/index.js | 30 + uncompressed/hipchat/package.json | 18 + uncompressed/hipchat/webview.js | 13 + uncompressed/icq/README.md | 5 + uncompressed/icq/icon.svg | 8 + uncompressed/icq/index.js | 4 + uncompressed/icq/package.json | 13 + uncompressed/icq/webview.js | 27 + uncompressed/idobata/README.md | 17 + uncompressed/idobata/icon.svg | 21 + uncompressed/idobata/index.js | 4 + uncompressed/idobata/package.json | 24 + uncompressed/idobata/webview.js | 13 + uncompressed/irccloud/README.md | 5 + uncompressed/irccloud/icon.svg | 8 + uncompressed/irccloud/index.js | 4 + uncompressed/irccloud/package.json | 15 + uncompressed/irccloud/webview.js | 15 + uncompressed/kaizala/README.md | 5 + uncompressed/kaizala/icon.svg | 9 + uncompressed/kaizala/index.js | 8 + uncompressed/kaizala/package.json | 14 + uncompressed/kaizala/webview.js | 10 + uncompressed/linkedin/README.md | 5 + uncompressed/linkedin/icon.svg | 24 + uncompressed/linkedin/index.js | 4 + uncompressed/linkedin/package.json | 12 + uncompressed/linkedin/webview.js | 24 + uncompressed/mailbox.org/LICENSE | 21 + uncompressed/mailbox.org/README.md | 16 + uncompressed/mailbox.org/icon.svg | 860 ++++++ uncompressed/mailbox.org/index.js | 5 + uncompressed/mailbox.org/package.json | 12 + uncompressed/mailbox.org/webview.js | 11 + uncompressed/mattermost/README.md | 5 + uncompressed/mattermost/icon.svg | 14 + uncompressed/mattermost/index.js | 20 + uncompressed/mattermost/package.json | 14 + uncompressed/mattermost/webview.js | 13 + uncompressed/messenger/README.md | 5 + uncompressed/messenger/icon.svg | 23 + uncompressed/messenger/index.js | 8 + uncompressed/messenger/package.json | 13 + uncompressed/messenger/webview.js | 34 + uncompressed/msteams/icon.svg | 1 + uncompressed/msteams/index.js | 8 + uncompressed/msteams/package.json | 13 + uncompressed/msteams/service.css | 3 + uncompressed/msteams/webview.js | 29 + uncompressed/mysms/README.md | 5 + uncompressed/mysms/icon.svg | 14 + uncompressed/mysms/index.js | 4 + uncompressed/mysms/package.json | 12 + uncompressed/mysms/webview.js | 20 + uncompressed/office365-owa/LICENSE | 21 + uncompressed/office365-owa/README.md | 5 + uncompressed/office365-owa/icon.svg | 1 + uncompressed/office365-owa/index.js | 4 + uncompressed/office365-owa/package.json | 13 + uncompressed/office365-owa/webview.js | 10 + uncompressed/outlook/LICENSE | 19 + uncompressed/outlook/README.md | 5 + uncompressed/outlook/icon.svg | 1 + uncompressed/outlook/index.js | 4 + uncompressed/outlook/package.json | 13 + uncompressed/outlook/webview.js | 10 + uncompressed/plurk/LICENSE.md | 10 + uncompressed/plurk/README.md | 16 + uncompressed/plurk/icon.svg | 216 ++ uncompressed/plurk/index.js | 4 + uncompressed/plurk/package.json | 12 + uncompressed/plurk/webview.js | 19 + uncompressed/pocket/LICENSE | 7 + uncompressed/pocket/README.md | 19 + uncompressed/pocket/icon.svg | 6 + uncompressed/pocket/index.js | 4 + uncompressed/pocket/package.json | 12 + uncompressed/pocket/webview.js | 2 + uncompressed/proton-mail/LICENSE | 21 + uncompressed/proton-mail/icon.svg | 7 + uncompressed/proton-mail/index.js | 4 + uncompressed/proton-mail/package.json | 24 + uncompressed/proton-mail/webview.js | 10 + uncompressed/pulseSMS/LICENSE | 21 + uncompressed/pulseSMS/README.md | 8 + uncompressed/pulseSMS/icon.svg | 3299 ++++++++++++++++++++++++ uncompressed/pulseSMS/index.js | 8 + uncompressed/pulseSMS/package.json | 13 + uncompressed/pulseSMS/webview.js | 10 + uncompressed/pushbullet/LICENSE | 7 + uncompressed/pushbullet/README.md | 19 + uncompressed/pushbullet/icon.svg | 20 + uncompressed/pushbullet/index.js | 4 + uncompressed/pushbullet/package.json | 12 + uncompressed/pushbullet/webview.js | 2 + uncompressed/rainloop/README.md | 5 + uncompressed/rainloop/icon.svg | 19 + uncompressed/rainloop/index.js | 4 + uncompressed/rainloop/package.json | 14 + uncompressed/rainloop/webview.js | 27 + uncompressed/riot/README.md | 11 + uncompressed/riot/icon.svg | 76 + uncompressed/riot/index.js | 4 + uncompressed/riot/package.json | 17 + uncompressed/riot/webview.js | 23 + uncompressed/rocketchat/README.md | 5 + uncompressed/rocketchat/icon.svg | 19 + uncompressed/rocketchat/index.js | 26 + uncompressed/rocketchat/package.json | 16 + uncompressed/rocketchat/webview.js | 49 + uncompressed/roundcube/ICON_LICENSE | 4 + uncompressed/roundcube/LICENSE | 21 + uncompressed/roundcube/README.md | 2 + uncompressed/roundcube/icon.svg | 44 + uncompressed/roundcube/index.js | 4 + uncompressed/roundcube/package.json | 15 + uncompressed/roundcube/webview.js | 15 + uncompressed/sendtask/README.md | 20 + uncompressed/sendtask/franz.css | 3 + uncompressed/sendtask/icon.svg | 1 + uncompressed/sendtask/index.js | 5 + uncompressed/sendtask/package.json | 15 + uncompressed/sendtask/webview.js | 21 + uncompressed/skype/README.md | 5 + uncompressed/skype/icon.svg | 16 + uncompressed/skype/index.js | 8 + uncompressed/skype/package.json | 13 + uncompressed/skype/service.css | 3 + uncompressed/skype/webview.js | 25 + uncompressed/slack/README.md | 5 + uncompressed/slack/icon.svg | 26 + uncompressed/slack/index.js | 3 + uncompressed/slack/package.json | 17 + uncompressed/slack/service.css | 3 + uncompressed/slack/webview.js | 55 + uncompressed/steamchat/README.md | 5 + uncompressed/steamchat/icon.svg | 7 + uncompressed/steamchat/index.js | 8 + uncompressed/steamchat/package.json | 13 + uncompressed/steamchat/webview.js | 34 + uncompressed/stride/LICENSE | 21 + uncompressed/stride/README.md | 5 + uncompressed/stride/icon.svg | 20 + uncompressed/stride/index.js | 4 + uncompressed/stride/package.json | 16 + uncompressed/stride/service.css | 3 + uncompressed/stride/webview.js | 36 + uncompressed/tawk/icon.svg | 73 + uncompressed/tawk/index.js | 6 + uncompressed/tawk/package.json | 23 + uncompressed/tawk/service.css | 3 + uncompressed/tawk/webview.js | 4 + uncompressed/teamwork-projects/LICENSE | 21 + uncompressed/teamwork-projects/README.md | 30 + uncompressed/teamwork-projects/icon.svg | 60 + uncompressed/teamwork-projects/index.js | 4 + uncompressed/teamwork-projects/package.json | 17 + uncompressed/teamwork-projects/webview.js | 18 + uncompressed/telegram/README.md | 5 + uncompressed/telegram/icon.svg | 27 + uncompressed/telegram/index.js | 4 + uncompressed/telegram/package.json | 14 + uncompressed/telegram/service.css | 151 ++ uncompressed/telegram/webview.js | 26 + uncompressed/thelounge/LICENSE | 21 + uncompressed/thelounge/README.md | 2 + uncompressed/thelounge/icon.svg | 7 + uncompressed/thelounge/index.js | 4 + uncompressed/thelounge/package.json | 14 + uncompressed/thelounge/webview.js | 16 + uncompressed/threema/README.md | 5 + uncompressed/threema/icon.svg | 9 + uncompressed/threema/index.js | 4 + uncompressed/threema/package.json | 14 + uncompressed/threema/service.css | 17 + uncompressed/threema/webview.js | 28 + uncompressed/todoist/LICENSE | 21 + uncompressed/todoist/README.md | 5 + uncompressed/todoist/icon.svg | 28 + uncompressed/todoist/index.js | 3 + uncompressed/todoist/package.json | 14 + uncompressed/todoist/webview.js | 22 + uncompressed/toggl/icon.svg | 1 + uncompressed/toggl/index.js | 4 + uncompressed/toggl/package.json | 23 + uncompressed/toggl/style.css | 6 + uncompressed/toggl/webview.js | 4 + uncompressed/trello/LICENSE | 21 + uncompressed/trello/README.md | 19 + uncompressed/trello/icon.svg | 22 + uncompressed/trello/index.js | 4 + uncompressed/trello/package.json | 12 + uncompressed/trello/webview.js | 12 + uncompressed/tweetdeck/README.md | 5 + uncompressed/tweetdeck/icon.svg | 13 + uncompressed/tweetdeck/index.js | 23 + uncompressed/tweetdeck/package.json | 13 + uncompressed/tweetdeck/webview.js | 22 + uncompressed/twist/icon.svg | 12 + uncompressed/twist/index.js | 3 + uncompressed/twist/package.json | 23 + uncompressed/twist/webview.js | 10 + uncompressed/twitch/LICENSE | 25 + uncompressed/twitch/README.md | 30 + uncompressed/twitch/icon.svg | 31 + uncompressed/twitch/index.js | 5 + uncompressed/twitch/package.json | 17 + uncompressed/twitch/webview.js | 13 + uncompressed/twitter-dm/README.md | 5 + uncompressed/twitter-dm/icon.svg | 35 + uncompressed/twitter-dm/index.js | 4 + uncompressed/twitter-dm/package.json | 13 + uncompressed/twitter-dm/webview.js | 17 + uncompressed/vk/README.md | 5 + uncompressed/vk/icon.svg | 15 + uncompressed/vk/index.js | 4 + uncompressed/vk/package.json | 13 + uncompressed/vk/webview.js | 19 + uncompressed/voxer/README.md | 5 + uncompressed/voxer/icon.svg | 35 + uncompressed/voxer/index.js | 4 + uncompressed/voxer/package.json | 13 + uncompressed/voxer/service.css | 16 + uncompressed/voxer/webview.js | 19 + uncompressed/wechat/LICENSE | 21 + uncompressed/wechat/README.md | 26 + uncompressed/wechat/icon.svg | 1 + uncompressed/wechat/index.js | 6 + uncompressed/wechat/package.json | 15 + uncompressed/wechat/service.css | 9 + uncompressed/wechat/webview.js | 34 + uncompressed/whatsapp/README.md | 5 + uncompressed/whatsapp/icon.svg | 1 + uncompressed/whatsapp/index.js | 8 + uncompressed/whatsapp/package.json | 13 + uncompressed/whatsapp/service.css | 5 + uncompressed/whatsapp/webview.js | 52 + uncompressed/withspectrum/LICENSE | 21 + uncompressed/withspectrum/README.md | 1 + uncompressed/withspectrum/icon.svg | 26 + uncompressed/withspectrum/index.js | 4 + uncompressed/withspectrum/package.json | 12 + uncompressed/withspectrum/webview.js | 14 + uncompressed/workplace/LICENSE | 19 + uncompressed/workplace/README.md | 4 + uncompressed/workplace/icon.svg | 10 + uncompressed/workplace/index.js | 4 + uncompressed/workplace/package.json | 16 + uncompressed/workplace/webview.js | 16 + uncompressed/workplace/workplace.css | 4 + uncompressed/xing/LICENSE | 21 + uncompressed/xing/README.md | 7 + uncompressed/xing/icon.svg | 8 + uncompressed/xing/index.js | 4 + uncompressed/xing/package.json | 12 + uncompressed/xing/webview.js | 13 + uncompressed/yammer/LICENSE | 21 + uncompressed/yammer/README.md | 3 + uncompressed/yammer/icon.svg | 6 + uncompressed/yammer/index.js | 3 + uncompressed/yammer/package.json | 15 + uncompressed/yammer/webview.js | 22 + uncompressed/zendesk/README.md | 5 + uncompressed/zendesk/icon.svg | 14 + uncompressed/zendesk/index.js | 3 + uncompressed/zendesk/package.json | 14 + uncompressed/zendesk/service.css | 3 + uncompressed/zendesk/webview.js | 21 + uncompressed/zulip/CODE_OF_CONDUCT.md | 46 + uncompressed/zulip/LICENSE | 21 + uncompressed/zulip/README.md | 8 + uncompressed/zulip/icon.svg | 1 + uncompressed/zulip/index.js | 28 + uncompressed/zulip/package.json | 15 + uncompressed/zulip/webview.js | 10 + 397 files changed, 9959 insertions(+) create mode 100644 uncompressed/android-messages/README.md create mode 100644 uncompressed/android-messages/icon.svg create mode 100644 uncompressed/android-messages/index.js create mode 100644 uncompressed/android-messages/package.json create mode 100644 uncompressed/android-messages/webview.js create mode 100644 uncompressed/chatwork/LICENSE create mode 100644 uncompressed/chatwork/README.md create mode 100644 uncompressed/chatwork/icon.svg create mode 100644 uncompressed/chatwork/index.js create mode 100644 uncompressed/chatwork/package.json create mode 100644 uncompressed/chatwork/webview.js create mode 100644 uncompressed/ciscospark/README.md create mode 100644 uncompressed/ciscospark/icon.svg create mode 100644 uncompressed/ciscospark/index.js create mode 100644 uncompressed/ciscospark/package.json create mode 100644 uncompressed/ciscospark/service.css create mode 100644 uncompressed/ciscospark/webview.js create mode 100644 uncompressed/discord/README.md create mode 100644 uncompressed/discord/icon.svg create mode 100644 uncompressed/discord/index.js create mode 100644 uncompressed/discord/package.json create mode 100644 uncompressed/discord/service.css create mode 100644 uncompressed/discord/webview.js create mode 100644 uncompressed/ex-google-voice/icon.svg create mode 100644 uncompressed/ex-google-voice/index.js create mode 100644 uncompressed/ex-google-voice/package.json create mode 100644 uncompressed/ex-google-voice/webview.js create mode 100644 uncompressed/facebookpages/README.md create mode 100644 uncompressed/facebookpages/icon.svg create mode 100644 uncompressed/facebookpages/index.js create mode 100644 uncompressed/facebookpages/package.json create mode 100644 uncompressed/facebookpages/webview.js create mode 100644 uncompressed/fastmail/LICENSE create mode 100644 uncompressed/fastmail/README.md create mode 100644 uncompressed/fastmail/icon.svg create mode 100644 uncompressed/fastmail/index.js create mode 100644 uncompressed/fastmail/package.json create mode 100644 uncompressed/fastmail/webview.js create mode 100644 uncompressed/flowdock/README.md create mode 100644 uncompressed/flowdock/icon.svg create mode 100644 uncompressed/flowdock/index.js create mode 100644 uncompressed/flowdock/package.json create mode 100644 uncompressed/flowdock/webview.js create mode 100644 uncompressed/franz-custom-website/README.md create mode 100644 uncompressed/franz-custom-website/icon.svg create mode 100644 uncompressed/franz-custom-website/index.js create mode 100644 uncompressed/franz-custom-website/package.json create mode 100644 uncompressed/franz-custom-website/webview.js create mode 100644 uncompressed/gadugadu/LICENSE create mode 100644 uncompressed/gadugadu/README.md create mode 100644 uncompressed/gadugadu/icon.svg create mode 100644 uncompressed/gadugadu/index.js create mode 100644 uncompressed/gadugadu/package.json create mode 100644 uncompressed/gadugadu/service.css create mode 100644 uncompressed/gadugadu/webview.js create mode 100644 uncompressed/github/LICENSE create mode 100644 uncompressed/github/README.md create mode 100644 uncompressed/github/icon.svg create mode 100644 uncompressed/github/index.js create mode 100644 uncompressed/github/package.json create mode 100644 uncompressed/github/webview.js create mode 100644 uncompressed/gitter/icon.svg create mode 100644 uncompressed/gitter/index.js create mode 100644 uncompressed/gitter/package.json create mode 100644 uncompressed/gitter/service.css create mode 100644 uncompressed/gitter/webview.js create mode 100644 uncompressed/glowingbear/LICENSE create mode 100644 uncompressed/glowingbear/icon.svg create mode 100644 uncompressed/glowingbear/index.js create mode 100644 uncompressed/glowingbear/package.json create mode 100644 uncompressed/glowingbear/webview.js create mode 100644 uncompressed/gmail/README.md create mode 100644 uncompressed/gmail/icon.svg create mode 100644 uncompressed/gmail/index.js create mode 100644 uncompressed/gmail/package.json create mode 100644 uncompressed/gmail/webview.js create mode 100644 uncompressed/gmailinbox/README.md create mode 100644 uncompressed/gmailinbox/icon.svg create mode 100644 uncompressed/gmailinbox/index.js create mode 100644 uncompressed/gmailinbox/package.json create mode 100644 uncompressed/gmailinbox/webview.js create mode 100644 uncompressed/googleallo/LICENSE create mode 100644 uncompressed/googleallo/README.md create mode 100644 uncompressed/googleallo/icon.svg create mode 100644 uncompressed/googleallo/index.js create mode 100644 uncompressed/googleallo/package.json create mode 100644 uncompressed/googleallo/webview.js create mode 100644 uncompressed/googlecalendar/LICENSE create mode 100644 uncompressed/googlecalendar/README.md create mode 100644 uncompressed/googlecalendar/calendar.css create mode 100644 uncompressed/googlecalendar/icon.svg create mode 100644 uncompressed/googlecalendar/index.js create mode 100644 uncompressed/googlecalendar/package.json create mode 100644 uncompressed/googlecalendar/webview.js create mode 100644 uncompressed/googlekeep/LICENSE create mode 100644 uncompressed/googlekeep/README.md create mode 100644 uncompressed/googlekeep/icon.svg create mode 100644 uncompressed/googlekeep/index.js create mode 100644 uncompressed/googlekeep/package.json create mode 100644 uncompressed/googlekeep/webview.js create mode 100644 uncompressed/grape/README.md create mode 100644 uncompressed/grape/icon.svg create mode 100644 uncompressed/grape/index.js create mode 100644 uncompressed/grape/package.json create mode 100644 uncompressed/grape/webview.js create mode 100644 uncompressed/groupme/README.md create mode 100644 uncompressed/groupme/icon.svg create mode 100644 uncompressed/groupme/index.js create mode 100644 uncompressed/groupme/package.json create mode 100644 uncompressed/groupme/webview.js create mode 100644 uncompressed/hangouts/README.md create mode 100644 uncompressed/hangouts/icon.svg create mode 100644 uncompressed/hangouts/index.js create mode 100644 uncompressed/hangouts/package.json create mode 100644 uncompressed/hangouts/webview.js create mode 100644 uncompressed/hangoutschat/README.md create mode 100644 uncompressed/hangoutschat/icon.svg create mode 100644 uncompressed/hangoutschat/index.js create mode 100644 uncompressed/hangoutschat/package.json create mode 100644 uncompressed/hangoutschat/webview.js create mode 100644 uncompressed/hipchat/README.md create mode 100644 uncompressed/hipchat/icon.svg create mode 100644 uncompressed/hipchat/index.js create mode 100644 uncompressed/hipchat/package.json create mode 100644 uncompressed/hipchat/webview.js create mode 100644 uncompressed/icq/README.md create mode 100644 uncompressed/icq/icon.svg create mode 100644 uncompressed/icq/index.js create mode 100644 uncompressed/icq/package.json create mode 100644 uncompressed/icq/webview.js create mode 100644 uncompressed/idobata/README.md create mode 100644 uncompressed/idobata/icon.svg create mode 100644 uncompressed/idobata/index.js create mode 100644 uncompressed/idobata/package.json create mode 100644 uncompressed/idobata/webview.js create mode 100644 uncompressed/irccloud/README.md create mode 100644 uncompressed/irccloud/icon.svg create mode 100644 uncompressed/irccloud/index.js create mode 100644 uncompressed/irccloud/package.json create mode 100644 uncompressed/irccloud/webview.js create mode 100644 uncompressed/kaizala/README.md create mode 100644 uncompressed/kaizala/icon.svg create mode 100644 uncompressed/kaizala/index.js create mode 100644 uncompressed/kaizala/package.json create mode 100644 uncompressed/kaizala/webview.js create mode 100644 uncompressed/linkedin/README.md create mode 100644 uncompressed/linkedin/icon.svg create mode 100644 uncompressed/linkedin/index.js create mode 100644 uncompressed/linkedin/package.json create mode 100644 uncompressed/linkedin/webview.js create mode 100644 uncompressed/mailbox.org/LICENSE create mode 100644 uncompressed/mailbox.org/README.md create mode 100644 uncompressed/mailbox.org/icon.svg create mode 100644 uncompressed/mailbox.org/index.js create mode 100644 uncompressed/mailbox.org/package.json create mode 100644 uncompressed/mailbox.org/webview.js create mode 100644 uncompressed/mattermost/README.md create mode 100644 uncompressed/mattermost/icon.svg create mode 100644 uncompressed/mattermost/index.js create mode 100644 uncompressed/mattermost/package.json create mode 100644 uncompressed/mattermost/webview.js create mode 100644 uncompressed/messenger/README.md create mode 100644 uncompressed/messenger/icon.svg create mode 100644 uncompressed/messenger/index.js create mode 100644 uncompressed/messenger/package.json create mode 100644 uncompressed/messenger/webview.js create mode 100644 uncompressed/msteams/icon.svg create mode 100644 uncompressed/msteams/index.js create mode 100644 uncompressed/msteams/package.json create mode 100644 uncompressed/msteams/service.css create mode 100644 uncompressed/msteams/webview.js create mode 100644 uncompressed/mysms/README.md create mode 100644 uncompressed/mysms/icon.svg create mode 100644 uncompressed/mysms/index.js create mode 100644 uncompressed/mysms/package.json create mode 100644 uncompressed/mysms/webview.js create mode 100644 uncompressed/office365-owa/LICENSE create mode 100644 uncompressed/office365-owa/README.md create mode 100644 uncompressed/office365-owa/icon.svg create mode 100644 uncompressed/office365-owa/index.js create mode 100644 uncompressed/office365-owa/package.json create mode 100644 uncompressed/office365-owa/webview.js create mode 100644 uncompressed/outlook/LICENSE create mode 100644 uncompressed/outlook/README.md create mode 100644 uncompressed/outlook/icon.svg create mode 100644 uncompressed/outlook/index.js create mode 100644 uncompressed/outlook/package.json create mode 100644 uncompressed/outlook/webview.js create mode 100644 uncompressed/plurk/LICENSE.md create mode 100644 uncompressed/plurk/README.md create mode 100644 uncompressed/plurk/icon.svg create mode 100644 uncompressed/plurk/index.js create mode 100644 uncompressed/plurk/package.json create mode 100644 uncompressed/plurk/webview.js create mode 100644 uncompressed/pocket/LICENSE create mode 100644 uncompressed/pocket/README.md create mode 100644 uncompressed/pocket/icon.svg create mode 100644 uncompressed/pocket/index.js create mode 100644 uncompressed/pocket/package.json create mode 100644 uncompressed/pocket/webview.js create mode 100644 uncompressed/proton-mail/LICENSE create mode 100644 uncompressed/proton-mail/icon.svg create mode 100644 uncompressed/proton-mail/index.js create mode 100644 uncompressed/proton-mail/package.json create mode 100644 uncompressed/proton-mail/webview.js create mode 100644 uncompressed/pulseSMS/LICENSE create mode 100644 uncompressed/pulseSMS/README.md create mode 100644 uncompressed/pulseSMS/icon.svg create mode 100644 uncompressed/pulseSMS/index.js create mode 100644 uncompressed/pulseSMS/package.json create mode 100644 uncompressed/pulseSMS/webview.js create mode 100644 uncompressed/pushbullet/LICENSE create mode 100644 uncompressed/pushbullet/README.md create mode 100644 uncompressed/pushbullet/icon.svg create mode 100644 uncompressed/pushbullet/index.js create mode 100644 uncompressed/pushbullet/package.json create mode 100644 uncompressed/pushbullet/webview.js create mode 100644 uncompressed/rainloop/README.md create mode 100644 uncompressed/rainloop/icon.svg create mode 100644 uncompressed/rainloop/index.js create mode 100644 uncompressed/rainloop/package.json create mode 100644 uncompressed/rainloop/webview.js create mode 100644 uncompressed/riot/README.md create mode 100644 uncompressed/riot/icon.svg create mode 100644 uncompressed/riot/index.js create mode 100644 uncompressed/riot/package.json create mode 100644 uncompressed/riot/webview.js create mode 100644 uncompressed/rocketchat/README.md create mode 100644 uncompressed/rocketchat/icon.svg create mode 100644 uncompressed/rocketchat/index.js create mode 100644 uncompressed/rocketchat/package.json create mode 100644 uncompressed/rocketchat/webview.js create mode 100644 uncompressed/roundcube/ICON_LICENSE create mode 100644 uncompressed/roundcube/LICENSE create mode 100644 uncompressed/roundcube/README.md create mode 100644 uncompressed/roundcube/icon.svg create mode 100644 uncompressed/roundcube/index.js create mode 100644 uncompressed/roundcube/package.json create mode 100644 uncompressed/roundcube/webview.js create mode 100644 uncompressed/sendtask/README.md create mode 100644 uncompressed/sendtask/franz.css create mode 100644 uncompressed/sendtask/icon.svg create mode 100644 uncompressed/sendtask/index.js create mode 100644 uncompressed/sendtask/package.json create mode 100644 uncompressed/sendtask/webview.js create mode 100644 uncompressed/skype/README.md create mode 100644 uncompressed/skype/icon.svg create mode 100644 uncompressed/skype/index.js create mode 100644 uncompressed/skype/package.json create mode 100644 uncompressed/skype/service.css create mode 100644 uncompressed/skype/webview.js create mode 100644 uncompressed/slack/README.md create mode 100644 uncompressed/slack/icon.svg create mode 100644 uncompressed/slack/index.js create mode 100644 uncompressed/slack/package.json create mode 100644 uncompressed/slack/service.css create mode 100644 uncompressed/slack/webview.js create mode 100644 uncompressed/steamchat/README.md create mode 100644 uncompressed/steamchat/icon.svg create mode 100644 uncompressed/steamchat/index.js create mode 100644 uncompressed/steamchat/package.json create mode 100644 uncompressed/steamchat/webview.js create mode 100644 uncompressed/stride/LICENSE create mode 100644 uncompressed/stride/README.md create mode 100644 uncompressed/stride/icon.svg create mode 100644 uncompressed/stride/index.js create mode 100644 uncompressed/stride/package.json create mode 100644 uncompressed/stride/service.css create mode 100644 uncompressed/stride/webview.js create mode 100644 uncompressed/tawk/icon.svg create mode 100644 uncompressed/tawk/index.js create mode 100644 uncompressed/tawk/package.json create mode 100644 uncompressed/tawk/service.css create mode 100644 uncompressed/tawk/webview.js create mode 100644 uncompressed/teamwork-projects/LICENSE create mode 100644 uncompressed/teamwork-projects/README.md create mode 100644 uncompressed/teamwork-projects/icon.svg create mode 100644 uncompressed/teamwork-projects/index.js create mode 100644 uncompressed/teamwork-projects/package.json create mode 100644 uncompressed/teamwork-projects/webview.js create mode 100644 uncompressed/telegram/README.md create mode 100644 uncompressed/telegram/icon.svg create mode 100644 uncompressed/telegram/index.js create mode 100644 uncompressed/telegram/package.json create mode 100644 uncompressed/telegram/service.css create mode 100644 uncompressed/telegram/webview.js create mode 100644 uncompressed/thelounge/LICENSE create mode 100644 uncompressed/thelounge/README.md create mode 100644 uncompressed/thelounge/icon.svg create mode 100644 uncompressed/thelounge/index.js create mode 100644 uncompressed/thelounge/package.json create mode 100644 uncompressed/thelounge/webview.js create mode 100644 uncompressed/threema/README.md create mode 100644 uncompressed/threema/icon.svg create mode 100644 uncompressed/threema/index.js create mode 100644 uncompressed/threema/package.json create mode 100644 uncompressed/threema/service.css create mode 100644 uncompressed/threema/webview.js create mode 100644 uncompressed/todoist/LICENSE create mode 100644 uncompressed/todoist/README.md create mode 100644 uncompressed/todoist/icon.svg create mode 100644 uncompressed/todoist/index.js create mode 100644 uncompressed/todoist/package.json create mode 100644 uncompressed/todoist/webview.js create mode 100644 uncompressed/toggl/icon.svg create mode 100644 uncompressed/toggl/index.js create mode 100644 uncompressed/toggl/package.json create mode 100644 uncompressed/toggl/style.css create mode 100644 uncompressed/toggl/webview.js create mode 100644 uncompressed/trello/LICENSE create mode 100644 uncompressed/trello/README.md create mode 100644 uncompressed/trello/icon.svg create mode 100644 uncompressed/trello/index.js create mode 100644 uncompressed/trello/package.json create mode 100644 uncompressed/trello/webview.js create mode 100644 uncompressed/tweetdeck/README.md create mode 100644 uncompressed/tweetdeck/icon.svg create mode 100644 uncompressed/tweetdeck/index.js create mode 100644 uncompressed/tweetdeck/package.json create mode 100644 uncompressed/tweetdeck/webview.js create mode 100644 uncompressed/twist/icon.svg create mode 100644 uncompressed/twist/index.js create mode 100644 uncompressed/twist/package.json create mode 100644 uncompressed/twist/webview.js create mode 100644 uncompressed/twitch/LICENSE create mode 100644 uncompressed/twitch/README.md create mode 100644 uncompressed/twitch/icon.svg create mode 100644 uncompressed/twitch/index.js create mode 100644 uncompressed/twitch/package.json create mode 100644 uncompressed/twitch/webview.js create mode 100644 uncompressed/twitter-dm/README.md create mode 100644 uncompressed/twitter-dm/icon.svg create mode 100644 uncompressed/twitter-dm/index.js create mode 100644 uncompressed/twitter-dm/package.json create mode 100644 uncompressed/twitter-dm/webview.js create mode 100644 uncompressed/vk/README.md create mode 100644 uncompressed/vk/icon.svg create mode 100644 uncompressed/vk/index.js create mode 100644 uncompressed/vk/package.json create mode 100644 uncompressed/vk/webview.js create mode 100644 uncompressed/voxer/README.md create mode 100644 uncompressed/voxer/icon.svg create mode 100644 uncompressed/voxer/index.js create mode 100644 uncompressed/voxer/package.json create mode 100644 uncompressed/voxer/service.css create mode 100644 uncompressed/voxer/webview.js create mode 100644 uncompressed/wechat/LICENSE create mode 100644 uncompressed/wechat/README.md create mode 100644 uncompressed/wechat/icon.svg create mode 100644 uncompressed/wechat/index.js create mode 100644 uncompressed/wechat/package.json create mode 100644 uncompressed/wechat/service.css create mode 100644 uncompressed/wechat/webview.js create mode 100644 uncompressed/whatsapp/README.md create mode 100644 uncompressed/whatsapp/icon.svg create mode 100644 uncompressed/whatsapp/index.js create mode 100644 uncompressed/whatsapp/package.json create mode 100644 uncompressed/whatsapp/service.css create mode 100644 uncompressed/whatsapp/webview.js create mode 100644 uncompressed/withspectrum/LICENSE create mode 100644 uncompressed/withspectrum/README.md create mode 100644 uncompressed/withspectrum/icon.svg create mode 100644 uncompressed/withspectrum/index.js create mode 100644 uncompressed/withspectrum/package.json create mode 100644 uncompressed/withspectrum/webview.js create mode 100644 uncompressed/workplace/LICENSE create mode 100644 uncompressed/workplace/README.md create mode 100644 uncompressed/workplace/icon.svg create mode 100644 uncompressed/workplace/index.js create mode 100644 uncompressed/workplace/package.json create mode 100644 uncompressed/workplace/webview.js create mode 100644 uncompressed/workplace/workplace.css create mode 100644 uncompressed/xing/LICENSE create mode 100644 uncompressed/xing/README.md create mode 100644 uncompressed/xing/icon.svg create mode 100644 uncompressed/xing/index.js create mode 100644 uncompressed/xing/package.json create mode 100644 uncompressed/xing/webview.js create mode 100644 uncompressed/yammer/LICENSE create mode 100644 uncompressed/yammer/README.md create mode 100644 uncompressed/yammer/icon.svg create mode 100644 uncompressed/yammer/index.js create mode 100644 uncompressed/yammer/package.json create mode 100644 uncompressed/yammer/webview.js create mode 100644 uncompressed/zendesk/README.md create mode 100644 uncompressed/zendesk/icon.svg create mode 100644 uncompressed/zendesk/index.js create mode 100644 uncompressed/zendesk/package.json create mode 100644 uncompressed/zendesk/service.css create mode 100644 uncompressed/zendesk/webview.js create mode 100644 uncompressed/zulip/CODE_OF_CONDUCT.md create mode 100644 uncompressed/zulip/LICENSE create mode 100644 uncompressed/zulip/README.md create mode 100644 uncompressed/zulip/icon.svg create mode 100644 uncompressed/zulip/index.js create mode 100644 uncompressed/zulip/package.json create mode 100644 uncompressed/zulip/webview.js (limited to 'uncompressed') diff --git a/uncompressed/android-messages/README.md b/uncompressed/android-messages/README.md new file mode 100644 index 0000000..2e97dd1 --- /dev/null +++ b/uncompressed/android-messages/README.md @@ -0,0 +1,5 @@ +# Android Messages for Franz +This is a Franz recipe for Android Messages + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/android-messages/icon.svg b/uncompressed/android-messages/icon.svg new file mode 100644 index 0000000..ec56084 --- /dev/null +++ b/uncompressed/android-messages/icon.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/android-messages/index.js b/uncompressed/android-messages/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/android-messages/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/android-messages/package.json b/uncompressed/android-messages/package.json new file mode 100644 index 0000000..1236e99 --- /dev/null +++ b/uncompressed/android-messages/package.json @@ -0,0 +1,13 @@ +{ + "id": "android-messages", + "name": "Android Messages", + "version": "1.2.0", + "description": "Android Messages", + "main": "index.js", + "author": "Daniel Weinberger, Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://messages.google.com/web", + "hasNotificationSound": true + } +} diff --git a/uncompressed/android-messages/webview.js b/uncompressed/android-messages/webview.js new file mode 100644 index 0000000..414a902 --- /dev/null +++ b/uncompressed/android-messages/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + function getMessages() { + const messages = document.querySelectorAll('.text-content.unread').length; + Franz.setBadge(messages); + } + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/chatwork/LICENSE b/uncompressed/chatwork/LICENSE new file mode 100644 index 0000000..668de24 --- /dev/null +++ b/uncompressed/chatwork/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Koma, hideosasaki + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/chatwork/README.md b/uncompressed/chatwork/README.md new file mode 100644 index 0000000..6e23ddb --- /dev/null +++ b/uncompressed/chatwork/README.md @@ -0,0 +1,24 @@ +# ChatWork +Recipe for [ChatWork](https://www.chatwork.com) integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `recipe-chatwork`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-chatwork` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +[Read the documentation](https://github.com/meetfranz/plugins) + +## Authors + * [Koma](https://github.com/koma-private/) + * [hideosasaki](https://github.com/hideosasaki) diff --git a/uncompressed/chatwork/icon.svg b/uncompressed/chatwork/icon.svg new file mode 100644 index 0000000..cdf41c2 --- /dev/null +++ b/uncompressed/chatwork/icon.svg @@ -0,0 +1,12 @@ + + + + chatwork + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/uncompressed/chatwork/index.js b/uncompressed/chatwork/index.js new file mode 100644 index 0000000..a409287 --- /dev/null +++ b/uncompressed/chatwork/index.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/chatwork/package.json b/uncompressed/chatwork/package.json new file mode 100644 index 0000000..cc7e14b --- /dev/null +++ b/uncompressed/chatwork/package.json @@ -0,0 +1,16 @@ +{ + "id": "chatwork", + "name": "ChatWork", + "version": "1.0.3", + "description": "ChatWork is a group chat app for business.", + "main": "index.js", + "author": "Koma, hideosasaki", + "license": "MIT", + "repository": "https://github.com/hideosasaki/recipe-chatwork", + "config": { + "serviceURL": "https://www.chatwork.com/login.php", + "hasNotificationSound": true, + "hasIndirectMessages": true + }, + "openDevTools": true +} \ No newline at end of file diff --git a/uncompressed/chatwork/webview.js b/uncompressed/chatwork/webview.js new file mode 100644 index 0000000..48a3fbf --- /dev/null +++ b/uncompressed/chatwork/webview.js @@ -0,0 +1,38 @@ +'use strict'; + +module.exports = (Franz, options) => { + function getMessages() { + let groupCount = 0; + let individualCount = 0; + let directCount = 0; + let indirectCount = 0; + let roomInfoContainer = document.querySelectorAll('li.sc-dnqmqq'); + Array.prototype.forEach.call(roomInfoContainer, function (room) { + let count = 0; + let unreadBadge = room.querySelector("span.sc-kAzzGY"); + let unreadBadgeHasMention = room.querySelector("li._unreadBadge.sc-cSHVUG"); + + if (unreadBadge && unreadBadge.innerText) { + count = parseInt(unreadBadge.innerText); + } + + if (0 < count) { + if (room.querySelector("img.sc-gqjmRU").getAttribute('src').indexOf('avatar') < 0) { + groupCount += count; + + if (unreadBadgeHasMention) { + directCount++; + } else { + indirectCount++; + } + } else { + individualCount += count; + directCount++; + } + } + }); + Franz.setBadge(directCount, indirectCount); + } + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/ciscospark/README.md b/uncompressed/ciscospark/README.md new file mode 100644 index 0000000..3513440 --- /dev/null +++ b/uncompressed/ciscospark/README.md @@ -0,0 +1,5 @@ +# Cisco Spark for Franz +This is the official Franz recipe for Cisco Spark + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/ciscospark/icon.svg b/uncompressed/ciscospark/icon.svg new file mode 100644 index 0000000..0dd3cec --- /dev/null +++ b/uncompressed/ciscospark/icon.svg @@ -0,0 +1,8 @@ + + + + + Layer 1 + + + \ No newline at end of file diff --git a/uncompressed/ciscospark/index.js b/uncompressed/ciscospark/index.js new file mode 100644 index 0000000..7fc62b3 --- /dev/null +++ b/uncompressed/ciscospark/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNpc2Nvc3BhcmsvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJjaXNjb3NwYXJrL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/ciscospark/package.json b/uncompressed/ciscospark/package.json new file mode 100644 index 0000000..cc81277 --- /dev/null +++ b/uncompressed/ciscospark/package.json @@ -0,0 +1,13 @@ +{ + "id": "ciscospark", + "name": "Cisco Spark", + "version": "1.0.0", + "description": "Cisco Spark", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://web.ciscospark.com", + "hasIndirectMessages": true + } +} diff --git a/uncompressed/ciscospark/service.css b/uncompressed/ciscospark/service.css new file mode 100644 index 0000000..b7eaa30 --- /dev/null +++ b/uncompressed/ciscospark/service.css @@ -0,0 +1,4 @@ +.generalBanner { + display: none !important; +} + diff --git a/uncompressed/ciscospark/webview.js b/uncompressed/ciscospark/webview.js new file mode 100644 index 0000000..4fa94da --- /dev/null +++ b/uncompressed/ciscospark/webview.js @@ -0,0 +1,30 @@ +'use strict'; + +var _path = require('path'); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Franz => { + const UNREAD_BADGE_SELECTOR = '.navigation-item--badgeCount'; + + const getMessages = function getMessages() { + let directCount = 0; + let indirectCount = 0; + + const elements = document.querySelectorAll('.navigation-bar-list .listItemWrapper'); + if (elements.length > 0 && elements[1].querySelector(UNREAD_BADGE_SELECTOR)) { + directCount = parseInt(elements[1].querySelector(UNREAD_BADGE_SELECTOR).textContent, 10); + } + if (elements.length > 0 && elements[2].querySelector(UNREAD_BADGE_SELECTOR)) { + indirectCount = parseInt(elements[2].querySelector(UNREAD_BADGE_SELECTOR).textContent, 10); + } + + Franz.setBadge(directCount, indirectCount); + }; + + Franz.loop(getMessages); + Franz.injectCSS(_path2.default.join(__dirname, 'service.css')); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNpc2Nvc3Bhcmsvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJVTlJFQURfQkFER0VfU0VMRUNUT1IiLCJnZXRNZXNzYWdlcyIsImRpcmVjdENvdW50IiwiaW5kaXJlY3RDb3VudCIsImVsZW1lbnRzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwicXVlcnlTZWxlY3RvciIsInBhcnNlSW50IiwidGV4dENvbnRlbnQiLCJzZXRCYWRnZSIsImxvb3AiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFFQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLHdCQUF3Qiw4QkFBOUI7O0FBRUEsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFFBQUlDLGNBQWMsQ0FBbEI7QUFDQSxRQUFJQyxnQkFBZ0IsQ0FBcEI7O0FBRUEsVUFBTUMsV0FBV0MsU0FBU0MsZ0JBQVQsQ0FBMEIsdUNBQTFCLENBQWpCO0FBQ0EsUUFBSUYsU0FBU0csTUFBVCxHQUFrQixDQUFsQixJQUF1QkgsU0FBUyxDQUFULEVBQVlJLGFBQVosQ0FBMEJSLHFCQUExQixDQUEzQixFQUE2RTtBQUMzRUUsb0JBQWNPLFNBQVNMLFNBQVMsQ0FBVCxFQUFZSSxhQUFaLENBQTBCUixxQkFBMUIsRUFBaURVLFdBQTFELEVBQXVFLEVBQXZFLENBQWQ7QUFDRDtBQUNELFFBQUlOLFNBQVNHLE1BQVQsR0FBa0IsQ0FBbEIsSUFBdUJILFNBQVMsQ0FBVCxFQUFZSSxhQUFaLENBQTBCUixxQkFBMUIsQ0FBM0IsRUFBNkU7QUFDM0VHLHNCQUFnQk0sU0FBU0wsU0FBUyxDQUFULEVBQVlJLGFBQVosQ0FBMEJSLHFCQUExQixFQUFpRFUsV0FBMUQsRUFBdUUsRUFBdkUsQ0FBaEI7QUFDRDs7QUFFRFgsVUFBTVksUUFBTixDQUFlVCxXQUFmLEVBQTRCQyxhQUE1QjtBQUNELEdBYkQ7O0FBZUFKLFFBQU1hLElBQU4sQ0FBV1gsV0FBWDtBQUNBRixRQUFNYyxTQUFOLENBQWdCLGVBQUtDLElBQUwsQ0FBVUMsU0FBVixFQUFxQixhQUFyQixDQUFoQjtBQUNELENBcEJEIiwiZmlsZSI6ImNpc2Nvc3Bhcmsvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuXG5tb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICBjb25zdCBVTlJFQURfQkFER0VfU0VMRUNUT1IgPSAnLm5hdmlnYXRpb24taXRlbS0tYmFkZ2VDb3VudCc7XG5cbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBsZXQgZGlyZWN0Q291bnQgPSAwO1xuICAgIGxldCBpbmRpcmVjdENvdW50ID0gMDtcblxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm5hdmlnYXRpb24tYmFyLWxpc3QgLmxpc3RJdGVtV3JhcHBlcicpO1xuICAgIGlmIChlbGVtZW50cy5sZW5ndGggPiAwICYmIGVsZW1lbnRzWzFdLnF1ZXJ5U2VsZWN0b3IoVU5SRUFEX0JBREdFX1NFTEVDVE9SKSkge1xuICAgICAgZGlyZWN0Q291bnQgPSBwYXJzZUludChlbGVtZW50c1sxXS5xdWVyeVNlbGVjdG9yKFVOUkVBRF9CQURHRV9TRUxFQ1RPUikudGV4dENvbnRlbnQsIDEwKTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA+IDAgJiYgZWxlbWVudHNbMl0ucXVlcnlTZWxlY3RvcihVTlJFQURfQkFER0VfU0VMRUNUT1IpKSB7XG4gICAgICBpbmRpcmVjdENvdW50ID0gcGFyc2VJbnQoZWxlbWVudHNbMl0ucXVlcnlTZWxlY3RvcihVTlJFQURfQkFER0VfU0VMRUNUT1IpLnRleHRDb250ZW50LCAxMCk7XG4gICAgfVxuXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0Q291bnQsIGluZGlyZWN0Q291bnQpO1xuICB9O1xuXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xuICBGcmFuei5pbmplY3RDU1MocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NlcnZpY2UuY3NzJykpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/discord/README.md b/uncompressed/discord/README.md new file mode 100644 index 0000000..0b49f8a --- /dev/null +++ b/uncompressed/discord/README.md @@ -0,0 +1,5 @@ +# Discord for Franz +This is the official Franz recipe for Discord + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/discord/icon.svg b/uncompressed/discord/icon.svg new file mode 100644 index 0000000..dc76ff8 --- /dev/null +++ b/uncompressed/discord/icon.svg @@ -0,0 +1,14 @@ + + + + discord + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/discord/index.js b/uncompressed/discord/index.js new file mode 100644 index 0000000..629d7c7 --- /dev/null +++ b/uncompressed/discord/index.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => class Discord extends Franz { + overrideUserAgent() { + const useragent = window.navigator.userAgent; + const parts = useragent.split('(KHTML, like Gecko)'); + return parts.join('(KHTML, like Gecko) discord/0.0.250').replace('Electron', 'Discord').replace('Franz', 'Discord'); + } + +}; \ No newline at end of file diff --git a/uncompressed/discord/package.json b/uncompressed/discord/package.json new file mode 100644 index 0000000..47818b5 --- /dev/null +++ b/uncompressed/discord/package.json @@ -0,0 +1,23 @@ +{ + "id": "discord", + "name": "Discord", + "version": "1.0.3", + "description": "Discord", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://discordapp.com/login", + "message": "", + "popup": [], + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": false, + "hasTeamID": false, + "hasPredefinedUrl": true, + "hasCustomUrl": false, + "webviewOptions": { + "disablewebsecurity": "" + } + } +} diff --git a/uncompressed/discord/service.css b/uncompressed/discord/service.css new file mode 100644 index 0000000..a16a615 --- /dev/null +++ b/uncompressed/discord/service.css @@ -0,0 +1,3 @@ +.notice { + display: none; +} diff --git a/uncompressed/discord/webview.js b/uncompressed/discord/webview.js new file mode 100644 index 0000000..9a72420 --- /dev/null +++ b/uncompressed/discord/webview.js @@ -0,0 +1,16 @@ +"use strict"; + +var _path = _interopRequireDefault(require("path")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Franz => { + const getMessages = function getMessages() { + const direct = document.querySelectorAll('[class^="guildsWrapper"] [class*="badge"]').length; + const indirect = document.querySelectorAll('[class^="guildsWrapper"] [class^="guild-"]+[class*="unread-"]').length; + Franz.setBadge(direct, indirect); + }; + + Franz.loop(getMessages); + Franz.injectCSS(_path.default.join(__dirname, 'service.css')); +}; \ No newline at end of file diff --git a/uncompressed/ex-google-voice/icon.svg b/uncompressed/ex-google-voice/icon.svg new file mode 100644 index 0000000..df2a521 --- /dev/null +++ b/uncompressed/ex-google-voice/icon.svg @@ -0,0 +1,15 @@ + + + + + + + diff --git a/uncompressed/ex-google-voice/index.js b/uncompressed/ex-google-voice/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/ex-google-voice/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/ex-google-voice/package.json b/uncompressed/ex-google-voice/package.json new file mode 100644 index 0000000..8b98c80 --- /dev/null +++ b/uncompressed/ex-google-voice/package.json @@ -0,0 +1,15 @@ +{ + "id": "ex-google-voice", + "name": "Google Voice", + "version": "0.3.2", + "description": "Google Voice", + "main": "index.js", + "author": "Behind The Math ", + "license": "MIT", + "repository": "https://github.com/BehindTheMath/franz-recipe-google-voice", + "config": { + "serviceURL": "https://www.google.com/voice", + "hasTeamID": false, + "message": "Google Voice gives you one number for all your phones, voicemail as easy as email, free US long distance, low rates on international calls, and many calling features like transcripts, call blocking, call screening, conference calling, SMS, and more." + } +} diff --git a/uncompressed/ex-google-voice/webview.js b/uncompressed/ex-google-voice/webview.js new file mode 100644 index 0000000..1a91455 --- /dev/null +++ b/uncompressed/ex-google-voice/webview.js @@ -0,0 +1,26 @@ +"use strict"; + +module.exports = Franz => { + function parseQuery(query) { + const el = document.querySelector(query); + return el && parseInt(el.innerHTML) || 0; + } + + function getMessages() { + const el = document.querySelector('.msgCount'); + let count; + + if (el) { + count = parseInt(el.innerHTML.replace(/[\(\) ]/gi, '')) || 0; + } else { + const count_messages = parseQuery('gv-nav-tab[tooltip="Messages"] div[aria-label="Unread count"]'); + const count_calls = parseQuery('gv-nav-tab[tooltip="Calls"] div[aria-label="Unread count"]'); + const count_voicemails = parseQuery('gv-nav-tab[tooltip="Voicemail"] div[aria-label="Unread count"]'); + count = count_messages + count_calls + count_voicemails; + } + + Franz.setBadge(count); + } + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/facebookpages/README.md b/uncompressed/facebookpages/README.md new file mode 100644 index 0000000..80c4970 --- /dev/null +++ b/uncompressed/facebookpages/README.md @@ -0,0 +1,5 @@ +# Facebook Pages for Franz +This is the official Franz recipe for Facebook Pages + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/facebookpages/icon.svg b/uncompressed/facebookpages/icon.svg new file mode 100644 index 0000000..883c3e5 --- /dev/null +++ b/uncompressed/facebookpages/icon.svg @@ -0,0 +1,8 @@ + + + + + Layer 1 + + + \ No newline at end of file diff --git a/uncompressed/facebookpages/index.js b/uncompressed/facebookpages/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/facebookpages/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/facebookpages/package.json b/uncompressed/facebookpages/package.json new file mode 100644 index 0000000..d7ad9a2 --- /dev/null +++ b/uncompressed/facebookpages/package.json @@ -0,0 +1,16 @@ +{ + "id": "facebookpages", + "name": "Facebook Pages", + "version": "1.1.0", + "description": "Facebook Pages", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://facebook.com/{teamId}/inbox", + "urlInputPrefix": "https://facebook.com/", + "hasNotificationSound": true, + "hasTeamId": true, + "message": "Insert your page name in team, e.g. meetfranz" + } +} diff --git a/uncompressed/facebookpages/webview.js b/uncompressed/facebookpages/webview.js new file mode 100644 index 0000000..a0e5647 --- /dev/null +++ b/uncompressed/facebookpages/webview.js @@ -0,0 +1,30 @@ +"use strict"; + +module.exports = (Franz, options) => { + const getMessages = function getMessages() { + let messages = 0; + const element = document.querySelector('[data-testid="message_count"] span'); + + if (element) { + messages = parseInt(element.textContent, 10); + } + + if (isNaN(messages)) { + messages = 0; + } + + Franz.setBadge(messages); + }; + + Franz.loop(getMessages); + setTimeout(() => { + if (document.body && !document.body.classList.contains('UIPage_LoggedOut')) { + if (localStorage.getItem('franz-needsRedirect')) { + window.location.href = `https://facebook.com/${options.team}/inbox`; + localStorage.removeItem('franz-needsRedirect'); + } + } else { + localStorage.setItem('franz-needsRedirect', true); + } + }, 500); +}; \ No newline at end of file diff --git a/uncompressed/fastmail/LICENSE b/uncompressed/fastmail/LICENSE new file mode 100644 index 0000000..4d8898a --- /dev/null +++ b/uncompressed/fastmail/LICENSE @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright © 2017 Foss & Haas GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/fastmail/README.md b/uncompressed/fastmail/README.md new file mode 100644 index 0000000..5c9b210 --- /dev/null +++ b/uncompressed/fastmail/README.md @@ -0,0 +1,12 @@ +# Franz-FastMail + +This is a service recipe for the [Franz](https://meetfranz.com/) cross-platform messenger to add support for [FastMail](https://www.fastmail.com). + +This version of the recipe for Franz 5. + +For a version compatible with Franz 4 (legacy) see the [franz4 branch](https://github.com/foss-haas/franz-fastmail/tree/franz4). + +## License + +The MIT license. + diff --git a/uncompressed/fastmail/icon.svg b/uncompressed/fastmail/icon.svg new file mode 100644 index 0000000..f7161a1 --- /dev/null +++ b/uncompressed/fastmail/icon.svg @@ -0,0 +1,55 @@ + +image/svg+xml \ No newline at end of file diff --git a/uncompressed/fastmail/index.js b/uncompressed/fastmail/index.js new file mode 100644 index 0000000..6012f4b --- /dev/null +++ b/uncompressed/fastmail/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhc3RtYWlsL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiZmFzdG1haWwvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/fastmail/package.json b/uncompressed/fastmail/package.json new file mode 100644 index 0000000..671e97c --- /dev/null +++ b/uncompressed/fastmail/package.json @@ -0,0 +1,14 @@ +{ + "id": "fastmail", + "name": "FastMail", + "version": "1.0.0", + "description": "Email, calendars and contacts done right.", + "main": "index.js", + "author": "Alan Plum ", + "license": "MIT", + "config": { + "serviceURL": "https://www.fastmail.com/mail/", + "message": + "Get private, secure, ad-free email hosting for you or your business" + } +} diff --git a/uncompressed/fastmail/webview.js b/uncompressed/fastmail/webview.js new file mode 100644 index 0000000..003d18c --- /dev/null +++ b/uncompressed/fastmail/webview.js @@ -0,0 +1,27 @@ +'use strict'; + +module.exports = (Franz, options) => { + var interval = setInterval(function () { + if (!window.O || !window.O.WindowController) return; + window.O.WindowController.openExternal = function (href) { + var temp = document.createElement('a'); + temp.setAttribute('href', href); + temp.setAttribute('target', '_blank'); + temp.click(); + }; + clearInterval(interval); + }, 200); + const getMessages = () => { + const inbox = document.querySelector(".v-FolderSource--inbox>.v-FolderSource-badge"); + if (!inbox) { + return; + } + const messages = Number(inbox.innerText); + if (!Number.isNaN(messages)) { + Franz.setBadge(messages); + } + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZhc3RtYWlsL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Iiwib3B0aW9ucyIsImludGVydmFsIiwic2V0SW50ZXJ2YWwiLCJ3aW5kb3ciLCJPIiwiV2luZG93Q29udHJvbGxlciIsIm9wZW5FeHRlcm5hbCIsImhyZWYiLCJ0ZW1wIiwiZG9jdW1lbnQiLCJjcmVhdGVFbGVtZW50Iiwic2V0QXR0cmlidXRlIiwiY2xpY2siLCJjbGVhckludGVydmFsIiwiZ2V0TWVzc2FnZXMiLCJpbmJveCIsInF1ZXJ5U2VsZWN0b3IiLCJtZXNzYWdlcyIsIk51bWJlciIsImlubmVyVGV4dCIsImlzTmFOIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCLENBQUNDLEtBQUQsRUFBUUMsT0FBUixLQUFvQjtBQUNuQyxNQUFJQyxXQUFXQyxZQUFZLFlBQVk7QUFDckMsUUFBSSxDQUFDQyxPQUFPQyxDQUFSLElBQWEsQ0FBQ0QsT0FBT0MsQ0FBUCxDQUFTQyxnQkFBM0IsRUFBNkM7QUFDN0NGLFdBQU9DLENBQVAsQ0FBU0MsZ0JBQVQsQ0FBMEJDLFlBQTFCLEdBQXlDLFVBQVVDLElBQVYsRUFBZ0I7QUFDdkQsVUFBSUMsT0FBT0MsU0FBU0MsYUFBVCxDQUF1QixHQUF2QixDQUFYO0FBQ0FGLFdBQUtHLFlBQUwsQ0FBa0IsTUFBbEIsRUFBMEJKLElBQTFCO0FBQ0FDLFdBQUtHLFlBQUwsQ0FBa0IsUUFBbEIsRUFBNEIsUUFBNUI7QUFDQUgsV0FBS0ksS0FBTDtBQUNELEtBTEQ7QUFNQUMsa0JBQWNaLFFBQWQ7QUFDRCxHQVRjLEVBU1osR0FUWSxDQUFmO0FBVUEsUUFBTWEsY0FBYyxNQUFNO0FBQ3hCLFVBQU1DLFFBQVFOLFNBQVNPLGFBQVQsQ0FBdUIsOENBQXZCLENBQWQ7QUFDQSxRQUFJLENBQUNELEtBQUwsRUFBWTtBQUNWO0FBQ0Q7QUFDRCxVQUFNRSxXQUFXQyxPQUFPSCxNQUFNSSxTQUFiLENBQWpCO0FBQ0EsUUFBSSxDQUFDRCxPQUFPRSxLQUFQLENBQWFILFFBQWIsQ0FBTCxFQUE2QjtBQUMzQmxCLFlBQU1zQixRQUFOLENBQWVKLFFBQWY7QUFDRDtBQUNGLEdBVEQ7O0FBV0FsQixRQUFNdUIsSUFBTixDQUFXUixXQUFYO0FBQ0QsQ0F2QkQiLCJmaWxlIjoiZmFzdG1haWwvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56LCBvcHRpb25zKSA9PiB7XG4gIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uICgpIHtcbiAgICBpZiAoIXdpbmRvdy5PIHx8ICF3aW5kb3cuTy5XaW5kb3dDb250cm9sbGVyKSByZXR1cm47XG4gICAgd2luZG93Lk8uV2luZG93Q29udHJvbGxlci5vcGVuRXh0ZXJuYWwgPSBmdW5jdGlvbiAoaHJlZikge1xuICAgICAgdmFyIHRlbXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICB0ZW1wLnNldEF0dHJpYnV0ZSgnaHJlZicsIGhyZWYpO1xuICAgICAgdGVtcC5zZXRBdHRyaWJ1dGUoJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgIHRlbXAuY2xpY2soKTtcbiAgICB9O1xuICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpO1xuICB9LCAyMDApO1xuICBjb25zdCBnZXRNZXNzYWdlcyA9ICgpID0+IHtcbiAgICBjb25zdCBpbmJveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIudi1Gb2xkZXJTb3VyY2UtLWluYm94Pi52LUZvbGRlclNvdXJjZS1iYWRnZVwiKTtcbiAgICBpZiAoIWluYm94KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1lc3NhZ2VzID0gTnVtYmVyKGluYm94LmlubmVyVGV4dCk7XG4gICAgaWYgKCFOdW1iZXIuaXNOYU4obWVzc2FnZXMpKSB7XG4gICAgICBGcmFuei5zZXRCYWRnZShtZXNzYWdlcyk7XG4gICAgfVxuICB9XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59XG4iXX0= \ No newline at end of file diff --git a/uncompressed/flowdock/README.md b/uncompressed/flowdock/README.md new file mode 100644 index 0000000..d8fa432 --- /dev/null +++ b/uncompressed/flowdock/README.md @@ -0,0 +1,5 @@ +# Flowdock for Franz +This is the official Franz recipe for Flowdock + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/flowdock/icon.svg b/uncompressed/flowdock/icon.svg new file mode 100644 index 0000000..7c98ae3 --- /dev/null +++ b/uncompressed/flowdock/icon.svg @@ -0,0 +1 @@ +icon \ No newline at end of file diff --git a/uncompressed/flowdock/index.js b/uncompressed/flowdock/index.js new file mode 100644 index 0000000..fbc00fa --- /dev/null +++ b/uncompressed/flowdock/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZsb3dkb2NrL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiZmxvd2RvY2svaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/flowdock/package.json b/uncompressed/flowdock/package.json new file mode 100644 index 0000000..8f1a9ef --- /dev/null +++ b/uncompressed/flowdock/package.json @@ -0,0 +1,15 @@ +{ + "id": "flowdock", + "name": "Flowdock", + "version": "1.0.0", + "description": "Flowdock", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://www.flowdock.com/app/", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": false + } +} diff --git a/uncompressed/flowdock/webview.js b/uncompressed/flowdock/webview.js new file mode 100644 index 0000000..8434483 --- /dev/null +++ b/uncompressed/flowdock/webview.js @@ -0,0 +1,14 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = document.querySelectorAll('.activity-indicator-mentions').length; + const indirectMessages = document.querySelectorAll('.activity-indicator-chat').length; + + // set Franz badge + Franz.setBadge(directMessages, indirectMessages); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImZsb3dkb2NrL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJkaXJlY3RNZXNzYWdlcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImluZGlyZWN0TWVzc2FnZXMiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsVUFBTUMsaUJBQWlCQyxTQUFTQyxnQkFBVCxDQUEwQiw4QkFBMUIsRUFBMERDLE1BQWpGO0FBQ0EsVUFBTUMsbUJBQW1CSCxTQUFTQyxnQkFBVCxDQUEwQiwwQkFBMUIsRUFBc0RDLE1BQS9FOztBQUVBO0FBQ0FMLFVBQU1PLFFBQU4sQ0FBZUwsY0FBZixFQUErQkksZ0JBQS9CO0FBQ0QsR0FORDs7QUFRQU4sUUFBTVEsSUFBTixDQUFXUCxXQUFYO0FBQ0QsQ0FWRCIsImZpbGUiOiJmbG93ZG9jay93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBkaXJlY3RNZXNzYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hY3Rpdml0eS1pbmRpY2F0b3ItbWVudGlvbnMnKS5sZW5ndGg7XG4gICAgY29uc3QgaW5kaXJlY3RNZXNzYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hY3Rpdml0eS1pbmRpY2F0b3ItY2hhdCcpLmxlbmd0aDtcblxuICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgIEZyYW56LnNldEJhZGdlKGRpcmVjdE1lc3NhZ2VzLCBpbmRpcmVjdE1lc3NhZ2VzKTtcbiAgfTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/franz-custom-website/README.md b/uncompressed/franz-custom-website/README.md new file mode 100644 index 0000000..0b02305 --- /dev/null +++ b/uncompressed/franz-custom-website/README.md @@ -0,0 +1,5 @@ +# Custom Websites for Franz +This is the official Franz recipe for adding custom websites to Franz + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/franz-custom-website/icon.svg b/uncompressed/franz-custom-website/icon.svg new file mode 100644 index 0000000..ae9e6d9 --- /dev/null +++ b/uncompressed/franz-custom-website/icon.svg @@ -0,0 +1,11 @@ + + + + franz-custom-website + Created with Sketch. + + + + + + \ No newline at end of file diff --git a/uncompressed/franz-custom-website/index.js b/uncompressed/franz-custom-website/index.js new file mode 100644 index 0000000..47da782 --- /dev/null +++ b/uncompressed/franz-custom-website/index.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports = Franz => class CustomWebsite extends Franz { + async validateUrl(url) { + try { + const resp = await window.fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }); + return resp.status.toString().startsWith('2') || resp.status.toString().startsWith('3'); + } catch (err) { + console.error(err); + } + + return false; + } + +}; \ No newline at end of file diff --git a/uncompressed/franz-custom-website/package.json b/uncompressed/franz-custom-website/package.json new file mode 100644 index 0000000..bfa43b9 --- /dev/null +++ b/uncompressed/franz-custom-website/package.json @@ -0,0 +1,15 @@ +{ + "id": "franz-custom-website", + "name": "Custom Website", + "version": "1.0.0", + "description": "Add a custom website to Franz", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "repository": "https://github.com/meetfranz/recipe-custom-website", + "config": { + "hasNotificationSound": false, + "hasIndirectMessages": false, + "hasCustomUrl": true + } +} diff --git a/uncompressed/franz-custom-website/webview.js b/uncompressed/franz-custom-website/webview.js new file mode 100644 index 0000000..17661d7 --- /dev/null +++ b/uncompressed/franz-custom-website/webview.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = () => {}; \ No newline at end of file diff --git a/uncompressed/gadugadu/LICENSE b/uncompressed/gadugadu/LICENSE new file mode 100644 index 0000000..cb0e9b2 --- /dev/null +++ b/uncompressed/gadugadu/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Wojciech Zięciak + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/gadugadu/README.md b/uncompressed/gadugadu/README.md new file mode 100644 index 0000000..141ca41 --- /dev/null +++ b/uncompressed/gadugadu/README.md @@ -0,0 +1,23 @@ +# GaduGadu for Franz 5+ + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-gadugadu`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-gadugadu` folder into the recipes dev directory + +4. Restart Franz + +5. Add a service + +6. Done! diff --git a/uncompressed/gadugadu/icon.svg b/uncompressed/gadugadu/icon.svg new file mode 100644 index 0000000..7d7eb4b --- /dev/null +++ b/uncompressed/gadugadu/icon.svg @@ -0,0 +1,19 @@ + + + + Untitled + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/gadugadu/index.js b/uncompressed/gadugadu/index.js new file mode 100644 index 0000000..1ee848c --- /dev/null +++ b/uncompressed/gadugadu/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdhZHVnYWR1L2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiZ2FkdWdhZHUvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/uncompressed/gadugadu/package.json b/uncompressed/gadugadu/package.json new file mode 100644 index 0000000..a008ec9 --- /dev/null +++ b/uncompressed/gadugadu/package.json @@ -0,0 +1,13 @@ +{ + "id": "gadugadu", + "name": "Gadu-Gadu", + "version": "1.0.2", + "description": "Gadu-Gadu the most popular polish communicator of the 00's", + "main": "index.js", + "author": "Wojciech Zięciak ", + "license": "MIT", + "config": { + "serviceURL": "https://www.gg.pl", + "hasNotificationSound": true + } +} diff --git a/uncompressed/gadugadu/service.css b/uncompressed/gadugadu/service.css new file mode 100644 index 0000000..998e3be --- /dev/null +++ b/uncompressed/gadugadu/service.css @@ -0,0 +1,3 @@ +#sr-advert-container, #sr-footer { + display: none !important; +} diff --git a/uncompressed/gadugadu/webview.js b/uncompressed/gadugadu/webview.js new file mode 100644 index 0000000..320b6ee --- /dev/null +++ b/uncompressed/gadugadu/webview.js @@ -0,0 +1,25 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = () => { + const updates = parseInt(document.querySelector('i#sr-last-counter').textContent, 10); + let messages = 0; + + const conversations = document.querySelectorAll('.chat-counter:not(.d-none)').length; + if (conversations === 0) { + messages = 0; + } else { + for (let i = 0; i < conversations; i + 1) { + messages += parseInt(document.querySelectorAll('.chat-counter:not(.d-none)')[i].textContent, 10); + } + } + + Franz.setBadge(messages, updates); + }; + + Franz.injectCSS(path.join(__dirname, 'service.css')); + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdhZHVnYWR1L3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsInVwZGF0ZXMiLCJwYXJzZUludCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInRleHRDb250ZW50IiwibWVzc2FnZXMiLCJjb252ZXJzYXRpb25zIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImkiLCJzZXRCYWRnZSIsImluamVjdENTUyIsImpvaW4iLCJfX2Rpcm5hbWUiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE9BQU9DLFFBQVEsTUFBUixDQUFiOztBQUVBQyxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxNQUFNO0FBQ3hCLFVBQU1DLFVBQVVDLFNBQVNDLFNBQVNDLGFBQVQsQ0FBdUIsbUJBQXZCLEVBQTRDQyxXQUFyRCxFQUFrRSxFQUFsRSxDQUFoQjtBQUNBLFFBQUlDLFdBQVcsQ0FBZjs7QUFFQSxVQUFNQyxnQkFBZ0JKLFNBQVNLLGdCQUFULENBQTBCLDRCQUExQixFQUF3REMsTUFBOUU7QUFDQSxRQUFJRixrQkFBa0IsQ0FBdEIsRUFBeUI7QUFDdkJELGlCQUFXLENBQVg7QUFDRCxLQUZELE1BRU87QUFDTCxXQUFLLElBQUlJLElBQUksQ0FBYixFQUFnQkEsSUFBSUgsYUFBcEIsRUFBbUNHLElBQUksQ0FBdkMsRUFBMEM7QUFDeENKLG9CQUFZSixTQUFTQyxTQUFTSyxnQkFBVCxDQUEwQiw0QkFBMUIsRUFBd0RFLENBQXhELEVBQTJETCxXQUFwRSxFQUFpRixFQUFqRixDQUFaO0FBQ0Q7QUFDRjs7QUFFRE4sVUFBTVksUUFBTixDQUFlTCxRQUFmLEVBQXlCTCxPQUF6QjtBQUNELEdBZEQ7O0FBZ0JBRixRQUFNYSxTQUFOLENBQWdCakIsS0FBS2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixhQUFyQixDQUFoQjtBQUNBZixRQUFNZ0IsSUFBTixDQUFXZixXQUFYO0FBQ0QsQ0FuQkQiLCJmaWxlIjoiZ2FkdWdhZHUvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gKCkgPT4ge1xuICAgIGNvbnN0IHVwZGF0ZXMgPSBwYXJzZUludChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpI3NyLWxhc3QtY291bnRlcicpLnRleHRDb250ZW50LCAxMCk7XG4gICAgbGV0IG1lc3NhZ2VzID0gMDtcblxuICAgIGNvbnN0IGNvbnZlcnNhdGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2hhdC1jb3VudGVyOm5vdCguZC1ub25lKScpLmxlbmd0aDtcbiAgICBpZiAoY29udmVyc2F0aW9ucyA9PT0gMCkge1xuICAgICAgbWVzc2FnZXMgPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnZlcnNhdGlvbnM7IGkgKyAxKSB7XG4gICAgICAgIG1lc3NhZ2VzICs9IHBhcnNlSW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jaGF0LWNvdW50ZXI6bm90KC5kLW5vbmUpJylbaV0udGV4dENvbnRlbnQsIDEwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBGcmFuei5zZXRCYWRnZShtZXNzYWdlcywgdXBkYXRlcyk7XG4gIH07XG5cbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLmNzcycpKTtcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/github/LICENSE b/uncompressed/github/LICENSE new file mode 100644 index 0000000..33926c0 --- /dev/null +++ b/uncompressed/github/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Sudhir Ganesan + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/github/README.md b/uncompressed/github/README.md new file mode 100644 index 0000000..ab6e10c --- /dev/null +++ b/uncompressed/github/README.md @@ -0,0 +1,3 @@ +# GitHub Franz Plugin + +Follow instructions [here](https://github.com/meetfranz/plugins/blob/master/docs/integration.md) for installation of this plugin. diff --git a/uncompressed/github/icon.svg b/uncompressed/github/icon.svg new file mode 100644 index 0000000..146f66f --- /dev/null +++ b/uncompressed/github/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/uncompressed/github/index.js b/uncompressed/github/index.js new file mode 100644 index 0000000..5c2d144 --- /dev/null +++ b/uncompressed/github/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdpdGh1Yi9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6ImdpdGh1Yi9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/github/package.json b/uncompressed/github/package.json new file mode 100644 index 0000000..b9e329c --- /dev/null +++ b/uncompressed/github/package.json @@ -0,0 +1,12 @@ +{ + "id": "github", + "name": "GitHub", + "version": "1.0.1", + "description": "GitHub", + "main": "index.js", + "author": "Sudhir Ganesan", + "license": "MIT", + "config": { + "serviceURL": "https://github.com/" + } +} diff --git a/uncompressed/github/webview.js b/uncompressed/github/webview.js new file mode 100644 index 0000000..0cd6361 --- /dev/null +++ b/uncompressed/github/webview.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJnaXRodWIvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0= \ No newline at end of file diff --git a/uncompressed/gitter/icon.svg b/uncompressed/gitter/icon.svg new file mode 100644 index 0000000..a93a828 --- /dev/null +++ b/uncompressed/gitter/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/gitter/index.js b/uncompressed/gitter/index.js new file mode 100644 index 0000000..349649f --- /dev/null +++ b/uncompressed/gitter/index.js @@ -0,0 +1,6 @@ +"use strict"; + +// just pass through Franz + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc2NvcmQvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBLE9BQU8sQUFBUCxVQUFpQixTQUFTLEFBQTFCIiwiZmlsZSI6ImRpc2NvcmQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqdXN0IHBhc3MgdGhyb3VnaCBGcmFuelxubW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/gitter/package.json b/uncompressed/gitter/package.json new file mode 100644 index 0000000..20070c2 --- /dev/null +++ b/uncompressed/gitter/package.json @@ -0,0 +1,23 @@ +{ + "id": "gitter", + "name": "Gitter", + "version": "1.0.2", + "description": "Gitter", + "main": "index.js", + "author": "Brian Gilbert ", + "license": "MIT", + "config": { + "serviceURL": "https://gitter.im", + "message": "", + "popup": [], + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": false, + "hasTeamID": false, + "hasPredefinedUrl": true, + "hasCustomUrl": false, + "webviewOptions": { + "disablewebsecurity": "" + } + } +} diff --git a/uncompressed/gitter/service.css b/uncompressed/gitter/service.css new file mode 100644 index 0000000..a16a615 --- /dev/null +++ b/uncompressed/gitter/service.css @@ -0,0 +1,3 @@ +.notice { + display: none; +} diff --git a/uncompressed/gitter/webview.js b/uncompressed/gitter/webview.js new file mode 100644 index 0000000..17cbca9 --- /dev/null +++ b/uncompressed/gitter/webview.js @@ -0,0 +1,27 @@ +'use strict'; + +let _path = require('path'); + +let _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; +} + +module.exports = Franz => { + const getMessages = function getMessages() { + // get unread messages + const count = document.querySelectorAll('.guilds-wrapper .badge, .room-menu-options__item__unread-indicator-wrapper.has-unreads').length; + + // set Franz badge + Franz.setBadge(count); + }; + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); + + // Hide download message + Franz.injectCSS(_path2.default.join(__dirname, 'service.css')); +}; +// # sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc2NvcmQvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJsb29wIiwiaW5qZWN0Q1NTIiwiam9pbiIsIl9fZGlybmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBRUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekM7QUFDQSxVQUFNQyxRQUFRQyxTQUFTQyxnQkFBVCxDQUEwQix3QkFBMUIsRUFBb0RDLE1BQWxFOztBQUVBO0FBQ0FMLFVBQU1NLFFBQU4sQ0FBZUosS0FBZjtBQUNELEdBTkQ7O0FBUUE7QUFDQUYsUUFBTU8sSUFBTixDQUFXTixXQUFYOztBQUVBO0FBQ0FELFFBQU1RLFNBQU4sQ0FBZ0IsZUFBS0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCO0FBQ0QsQ0FkRCIsImZpbGUiOiJkaXNjb3JkL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICAvLyBnZXQgdW5yZWFkIG1lc3NhZ2VzXG4gICAgY29uc3QgY291bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3VpbGRzLXdyYXBwZXIgLmJhZGdlJykubGVuZ3RoO1xuXG4gICAgLy8gc2V0IEZyYW56IGJhZGdlXG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xuICB9O1xuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG5cbiAgLy8gSGlkZSBkb3dubG9hZCBtZXNzYWdlXG4gIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VydmljZS5jc3MnKSk7XG59O1xuIl19 +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdpdHRlci93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIl9wYXRoIiwicmVxdWlyZSIsIl9wYXRoMiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiY291bnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJsZW5ndGgiLCJzZXRCYWRnZSIsImxvb3AiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIl0sIm1hcHBpbmdzIjoiOztBQUVBLElBQUlBLFFBQVFDLFFBQVEsTUFBUixDQUFaOztBQUVBLElBQUlDLFNBQVNDLHVCQUF1QkgsS0FBdkIsQ0FBYjs7QUFFQSxTQUFTRyxzQkFBVCxDQUFnQ0MsR0FBaEMsRUFBcUM7QUFBRSxTQUFPQSxPQUFPQSxJQUFJQyxVQUFYLEdBQXdCRCxHQUF4QixHQUE4QixFQUFFRSxTQUFTRixHQUFYLEVBQXJDO0FBQXdEOztBQUUvRkcsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QztBQUNBLFVBQU1DLFFBQVFDLFNBQVNDLGdCQUFULENBQTBCLHdGQUExQixFQUFvSEMsTUFBbEk7O0FBRUE7QUFDQUwsVUFBTU0sUUFBTixDQUFlSixLQUFmO0FBQ0QsR0FORDs7QUFRQTtBQUNBRixRQUFNTyxJQUFOLENBQVdOLFdBQVg7O0FBRUE7QUFDQUQsUUFBTVEsU0FBTixDQUFnQmYsT0FBT0ksT0FBUCxDQUFlWSxJQUFmLENBQW9CQyxTQUFwQixFQUErQixhQUEvQixDQUFoQjtBQUNELENBZEQ7QUFlQSIsImZpbGUiOiJnaXR0ZXIvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5sZXQgX3BhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbmxldCBfcGF0aDIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KF9wYXRoKTtcblxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsgcmV0dXJuIG9iaiAmJiBvYmouX19lc01vZHVsZSA/IG9iaiA6IHsgZGVmYXVsdDogb2JqIH07IH1cblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICAvLyBnZXQgdW5yZWFkIG1lc3NhZ2VzXG4gICAgY29uc3QgY291bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZ3VpbGRzLXdyYXBwZXIgLmJhZGdlLCAucm9vbS1tZW51LW9wdGlvbnNfX2l0ZW1fX3VucmVhZC1pbmRpY2F0b3Itd3JhcHBlci5oYXMtdW5yZWFkcycpLmxlbmd0aDtcblxuICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcbiAgfTtcblxuICAvLyBjaGVjayBmb3IgbmV3IG1lc3NhZ2VzIGV2ZXJ5IHNlY29uZCBhbmQgdXBkYXRlIEZyYW56IGJhZGdlXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xuXG4gIC8vIEhpZGUgZG93bmxvYWQgbWVzc2FnZVxuICBGcmFuei5pbmplY3RDU1MoX3BhdGgyLmRlZmF1bHQuam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLmNzcycpKTtcbn07XG4vLyAjIHNvdXJjZU1hcHBpbmdVUkw9ZGF0YTphcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9dXRmLTg7YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSW1ScGMyTnZjbVF2ZDJWaWRtbGxkeTVxY3lKZExDSnVZVzFsY3lJNld5SnRiMlIxYkdVaUxDSmxlSEJ2Y25Seklpd2lSbkpoYm5vaUxDSm5aWFJOWlhOellXZGxjeUlzSW1OdmRXNTBJaXdpWkc5amRXMWxiblFpTENKeGRXVnllVk5sYkdWamRHOXlRV3hzSWl3aWJHVnVaM1JvSWl3aWMyVjBRbUZrWjJVaUxDSnNiMjl3SWl3aWFXNXFaV04wUTFOVElpd2lhbTlwYmlJc0lsOWZaR2x5Ym1GdFpTSmRMQ0p0WVhCd2FXNW5jeUk2SWpzN1FVRkJRVHM3T3pzN08wRkJSVUZCTEU5QlFVOURMRTlCUVZBc1IwRkJhMEpETEV0QlFVUXNTVUZCVnp0QlFVTXhRaXhSUVVGTlF5eGpRVUZqTEZOQlFWTkJMRmRCUVZRc1IwRkJkVUk3UVVGRGVrTTdRVUZEUVN4VlFVRk5ReXhSUVVGUlF5eFRRVUZUUXl4blFrRkJWQ3hEUVVFd1FpeDNRa0ZCTVVJc1JVRkJiMFJETEUxQlFXeEZPenRCUVVWQk8wRkJRMEZNTEZWQlFVMU5MRkZCUVU0c1EwRkJaVW9zUzBGQlpqdEJRVU5FTEVkQlRrUTdPMEZCVVVFN1FVRkRRVVlzVVVGQlRVOHNTVUZCVGl4RFFVRlhUaXhYUVVGWU96dEJRVVZCTzBGQlEwRkVMRkZCUVUxUkxGTkJRVTRzUTBGQlowSXNaVUZCUzBNc1NVRkJUQ3hEUVVGVlF5eFRRVUZXTEVWQlFYRkNMR0ZCUVhKQ0xFTkJRV2hDTzBGQlEwUXNRMEZrUkNJc0ltWnBiR1VpT2lKa2FYTmpiM0prTDNkbFluWnBaWGN1YW5NaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SnBiWEJ2Y25RZ2NHRjBhQ0JtY205dElDZHdZWFJvSnp0Y2JseHViVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQW9SbkpoYm5vcElEMCtJSHRjYmlBZ1kyOXVjM1FnWjJWMFRXVnpjMkZuWlhNZ1BTQm1kVzVqZEdsdmJpQm5aWFJOWlhOellXZGxjeWdwSUh0Y2JpQWdJQ0F2THlCblpYUWdkVzV5WldGa0lHMWxjM05oWjJWelhHNGdJQ0FnWTI5dWMzUWdZMjkxYm5RZ1BTQmtiMk4xYldWdWRDNXhkV1Z5ZVZObGJHVmpkRzl5UVd4c0tDY3VaM1ZwYkdSekxYZHlZWEJ3WlhJZ0xtSmhaR2RsSnlrdWJHVnVaM1JvTzF4dVhHNGdJQ0FnTHk4Z2MyVjBJRVp5WVc1NklHSmhaR2RsWEc0Z0lDQWdSbkpoYm5vdWMyVjBRbUZrWjJVb1kyOTFiblFwTzF4dUlDQjlPMXh1WEc0Z0lDOHZJR05vWldOcklHWnZjaUJ1WlhjZ2JXVnpjMkZuWlhNZ1pYWmxjbmtnYzJWamIyNWtJR0Z1WkNCMWNHUmhkR1VnUm5KaGJub2dZbUZrWjJWY2JpQWdSbkpoYm5vdWJHOXZjQ2huWlhSTlpYTnpZV2RsY3lrN1hHNWNiaUFnTHk4Z1NHbGtaU0JrYjNkdWJHOWhaQ0J0WlhOellXZGxYRzRnSUVaeVlXNTZMbWx1YW1WamRFTlRVeWh3WVhSb0xtcHZhVzRvWDE5a2FYSnVZVzFsTENBbmMyVnlkbWxqWlM1amMzTW5LU2s3WEc1OU8xeHVJbDE5XG4iXX0= \ No newline at end of file diff --git a/uncompressed/glowingbear/LICENSE b/uncompressed/glowingbear/LICENSE new file mode 100644 index 0000000..25b2950 --- /dev/null +++ b/uncompressed/glowingbear/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jonathan Juursema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/glowingbear/icon.svg b/uncompressed/glowingbear/icon.svg new file mode 100644 index 0000000..48e21c4 --- /dev/null +++ b/uncompressed/glowingbear/icon.svg @@ -0,0 +1 @@ +glowing-bearCreated with Sketch (http://www.bohemiancoding.com/sketch) \ No newline at end of file diff --git a/uncompressed/glowingbear/index.js b/uncompressed/glowingbear/index.js new file mode 100644 index 0000000..2af527c --- /dev/null +++ b/uncompressed/glowingbear/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb3dpbmdiZWFyL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiZ2xvd2luZ2JlYXIvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/uncompressed/glowingbear/package.json b/uncompressed/glowingbear/package.json new file mode 100644 index 0000000..04cca9c --- /dev/null +++ b/uncompressed/glowingbear/package.json @@ -0,0 +1,14 @@ +{ + "id": "glowingbear", + "name": "Glowing Bear", + "version": "1.0.0", + "description": "Glowing Bear - WeeChat web frontend", + "main": "index.js", + "author": "Jonathan Juursema ", + "license": "MIT", + "config": { + "serviceURL": "https://www.glowing-bear.org", + "hasNotificationSound": true, + "hasIndirectMessages": true + } +} diff --git a/uncompressed/glowingbear/webview.js b/uncompressed/glowingbear/webview.js new file mode 100644 index 0000000..1876a72 --- /dev/null +++ b/uncompressed/glowingbear/webview.js @@ -0,0 +1,15 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let indirectElements = document.querySelectorAll('.badge:not(.danger)'); + let direct = document.querySelectorAll('.badge.danger').length - 1; + let indirect = -1; + for (let i = 0; i < indirectElements.length; i += 1) { + if (indirectElements[i].innerHTML.length > 0) indirect++; + } + Franz.setBadge(Math.max(direct, 0), Math.max(indirect, 0)); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdsb3dpbmdiZWFyL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJpbmRpcmVjdEVsZW1lbnRzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZGlyZWN0IiwibGVuZ3RoIiwiaW5kaXJlY3QiLCJpIiwiaW5uZXJIVE1MIiwic2V0QmFkZ2UiLCJNYXRoIiwibWF4IiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUztBQUN6QixPQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDMUMsTUFBSUMsbUJBQW1CQyxTQUFTQyxnQkFBVCxDQUEwQixxQkFBMUIsQ0FBdkI7QUFDQSxNQUFJQyxTQUFTRixTQUFTQyxnQkFBVCxDQUEwQixlQUExQixFQUEyQ0UsTUFBM0MsR0FBb0QsQ0FBakU7QUFDQSxNQUFJQyxXQUFXLENBQUMsQ0FBaEI7QUFDQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSU4saUJBQWlCSSxNQUFyQyxFQUE2Q0UsS0FBSyxDQUFsRCxFQUFxRDtBQUNwRCxPQUFJTixpQkFBaUJNLENBQWpCLEVBQW9CQyxTQUFwQixDQUE4QkgsTUFBOUIsR0FBdUMsQ0FBM0MsRUFBOENDO0FBQzlDO0FBQ0RQLFFBQU1VLFFBQU4sQ0FBZUMsS0FBS0MsR0FBTCxDQUFTUCxNQUFULEVBQWlCLENBQWpCLENBQWYsRUFBb0NNLEtBQUtDLEdBQUwsQ0FBU0wsUUFBVCxFQUFtQixDQUFuQixDQUFwQztBQUNBLEVBUkQ7QUFTQVAsT0FBTWEsSUFBTixDQUFXWixXQUFYO0FBQ0EsQ0FYRCIsImZpbGUiOiJnbG93aW5nYmVhci93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiB7XG5cdGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG5cdFx0bGV0IGluZGlyZWN0RWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYmFkZ2U6bm90KC5kYW5nZXIpJyk7XG5cdFx0bGV0IGRpcmVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYWRnZS5kYW5nZXInKS5sZW5ndGggLSAxO1xuXHRcdGxldCBpbmRpcmVjdCA9IC0xO1xuXHRcdGZvciAobGV0IGkgPSAwOyBpIDwgaW5kaXJlY3RFbGVtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuXHRcdFx0aWYgKGluZGlyZWN0RWxlbWVudHNbaV0uaW5uZXJIVE1MLmxlbmd0aCA+IDApIGluZGlyZWN0Kys7XG5cdFx0fVxuXHRcdEZyYW56LnNldEJhZGdlKE1hdGgubWF4KGRpcmVjdCwgMCksIE1hdGgubWF4KGluZGlyZWN0LCAwKSk7XG5cdH07XG5cdEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/gmail/README.md b/uncompressed/gmail/README.md new file mode 100644 index 0000000..907f13c --- /dev/null +++ b/uncompressed/gmail/README.md @@ -0,0 +1,5 @@ +# Gmail for Franz +This is the official Franz recipe for Gmail + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/gmail/icon.svg b/uncompressed/gmail/icon.svg new file mode 100644 index 0000000..bb75f1e --- /dev/null +++ b/uncompressed/gmail/icon.svg @@ -0,0 +1,56 @@ + + + + Layer 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/gmail/index.js b/uncompressed/gmail/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/gmail/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/gmail/package.json b/uncompressed/gmail/package.json new file mode 100644 index 0000000..9af00ed --- /dev/null +++ b/uncompressed/gmail/package.json @@ -0,0 +1,12 @@ +{ + "id": "gmail", + "name": "Gmail", + "version": "1.1.1", + "description": "Gmail", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://mail.google.com" + } +} diff --git a/uncompressed/gmail/webview.js b/uncompressed/gmail/webview.js new file mode 100644 index 0000000..521d4ad --- /dev/null +++ b/uncompressed/gmail/webview.js @@ -0,0 +1,23 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + + if (document.getElementsByClassName('J-Ke n0').length > 0) { + if (document.getElementsByClassName('J-Ke n0')[0].getAttribute('aria-label') != null) { + count = parseInt(document.getElementsByClassName('J-Ke n0')[0].getAttribute('aria-label').replace(/[^0-9.]/g, ''), 10); + } + } + + count = parseInt(count, 10); + + if (isNaN(count)) { + count = 0; + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/gmailinbox/README.md b/uncompressed/gmailinbox/README.md new file mode 100644 index 0000000..3bbf6be --- /dev/null +++ b/uncompressed/gmailinbox/README.md @@ -0,0 +1,5 @@ +# Inbox by Gmail for Franz +This is the official Franz recipe for Inbox by Gmail + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/gmailinbox/icon.svg b/uncompressed/gmailinbox/icon.svg new file mode 100644 index 0000000..35106f3 --- /dev/null +++ b/uncompressed/gmailinbox/icon.svg @@ -0,0 +1,7 @@ + + + + Layer 1 + + + \ No newline at end of file diff --git a/uncompressed/gmailinbox/index.js b/uncompressed/gmailinbox/index.js new file mode 100644 index 0000000..a691f8e --- /dev/null +++ b/uncompressed/gmailinbox/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// just pass through Franz +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdtYWlsaW5ib3gvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0FBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6ImdtYWlsaW5ib3gvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqdXN0IHBhc3MgdGhyb3VnaCBGcmFuelxubW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/gmailinbox/package.json b/uncompressed/gmailinbox/package.json new file mode 100644 index 0000000..cbb1897 --- /dev/null +++ b/uncompressed/gmailinbox/package.json @@ -0,0 +1,12 @@ +{ + "id": "gmailinbox", + "name": "Inbox by Gmail", + "version": "1.0.1", + "description": "Inbox by Gmail", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://inbox.google.com/" + } +} diff --git a/uncompressed/gmailinbox/webview.js b/uncompressed/gmailinbox/webview.js new file mode 100644 index 0000000..efaebb3 --- /dev/null +++ b/uncompressed/gmailinbox/webview.js @@ -0,0 +1,18 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + + if (document.querySelectorAll('.DsPmj').length > 0) { + count = document.querySelectorAll('.DsPmj')[0].querySelectorAll('div.G3').length; + } + + // set Franz badge + Franz.setBadge(count); + }; + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdtYWlsaW5ib3gvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFFBQUlDLFFBQVEsQ0FBWjs7QUFFQSxRQUFJQyxTQUFTQyxnQkFBVCxDQUEwQixRQUExQixFQUFvQ0MsTUFBcEMsR0FBNkMsQ0FBakQsRUFBb0Q7QUFDbERILGNBQVFDLFNBQVNDLGdCQUFULENBQTBCLFFBQTFCLEVBQW9DLENBQXBDLEVBQXVDQSxnQkFBdkMsQ0FBd0QsUUFBeEQsRUFBa0VDLE1BQTFFO0FBQ0Q7O0FBRUQ7QUFDQUwsVUFBTU0sUUFBTixDQUFlSixLQUFmO0FBQ0QsR0FURDs7QUFXQTtBQUNBRixRQUFNTyxJQUFOLENBQVdOLFdBQVg7QUFDRCxDQWREIiwiZmlsZSI6ImdtYWlsaW5ib3gvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGNvdW50ID0gMDtcblxuICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuRHNQbWonKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb3VudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5Ec1BtaicpWzBdLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Rpdi5HMycpLmxlbmd0aDtcbiAgICB9XG5cbiAgICAvLyBzZXQgRnJhbnogYmFkZ2VcbiAgICBGcmFuei5zZXRCYWRnZShjb3VudCk7XG4gIH07XG5cbiAgLy8gY2hlY2sgZm9yIG5ldyBtZXNzYWdlcyBldmVyeSBzZWNvbmQgYW5kIHVwZGF0ZSBGcmFueiBiYWRnZVxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/googleallo/LICENSE b/uncompressed/googleallo/LICENSE new file mode 100644 index 0000000..8d55d49 --- /dev/null +++ b/uncompressed/googleallo/LICENSE @@ -0,0 +1,7 @@ +Copyright 2017 SiloCityLabs LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/uncompressed/googleallo/README.md b/uncompressed/googleallo/README.md new file mode 100644 index 0000000..e476e02 --- /dev/null +++ b/uncompressed/googleallo/README.md @@ -0,0 +1,19 @@ +# Google Allo Franz Plugin + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-googleallo`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-googleallo` folder into the recipes dev directory + +4. Restart Franz diff --git a/uncompressed/googleallo/icon.svg b/uncompressed/googleallo/icon.svg new file mode 100644 index 0000000..3117f5c --- /dev/null +++ b/uncompressed/googleallo/icon.svg @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/googleallo/index.js b/uncompressed/googleallo/index.js new file mode 100644 index 0000000..fdd3026 --- /dev/null +++ b/uncompressed/googleallo/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWFsbG8vaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJnb29nbGVhbGxvL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/googleallo/package.json b/uncompressed/googleallo/package.json new file mode 100644 index 0000000..b93d9f5 --- /dev/null +++ b/uncompressed/googleallo/package.json @@ -0,0 +1,13 @@ +{ + "id": "googleallo", + "name": "Google Allo", + "version": "1.0.0", + "description": "Google Allo", + "main": "index.js", + "author": "SiloCityLabs LLC", + "license": "MIT", + "config": { + "serviceURL": "https://allo.google.com/web", + "hasNotificationSound": true + } +} diff --git a/uncompressed/googleallo/webview.js b/uncompressed/googleallo/webview.js new file mode 100644 index 0000000..dbb0fa3 --- /dev/null +++ b/uncompressed/googleallo/webview.js @@ -0,0 +1,19 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + + const elements = document.querySelectorAll('.unreadCount'); + for (let i = 0; i < elements.length; i += 1) { + if (parseInt(elements[i].innerHTML, 10) !== 0) { + count += 1; + } + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWFsbG8vd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50IiwiZWxlbWVudHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJpIiwibGVuZ3RoIiwicGFyc2VJbnQiLCJpbm5lckhUTUwiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsUUFBSUMsUUFBUSxDQUFaOztBQUVBLFVBQU1DLFdBQVdDLFNBQVNDLGdCQUFULENBQTBCLGNBQTFCLENBQWpCO0FBQ0EsU0FBSyxJQUFJQyxJQUFJLENBQWIsRUFBZ0JBLElBQUlILFNBQVNJLE1BQTdCLEVBQXFDRCxLQUFLLENBQTFDLEVBQTZDO0FBQzNDLFVBQUlFLFNBQVNMLFNBQVNHLENBQVQsRUFBWUcsU0FBckIsRUFBZ0MsRUFBaEMsTUFBd0MsQ0FBNUMsRUFBK0M7QUFDN0NQLGlCQUFTLENBQVQ7QUFDRDtBQUNGOztBQUVERixVQUFNVSxRQUFOLENBQWVSLEtBQWY7QUFDRCxHQVhEOztBQWFBRixRQUFNVyxJQUFOLENBQVdWLFdBQVg7QUFDRCxDQWZEIiwiZmlsZSI6Imdvb2dsZWFsbG8vd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGNvdW50ID0gMDtcblxuICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnVucmVhZENvdW50Jyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgaWYgKHBhcnNlSW50KGVsZW1lbnRzW2ldLmlubmVySFRNTCwgMTApICE9PSAwKSB7XG4gICAgICAgIGNvdW50ICs9IDE7XG4gICAgICB9XG4gICAgfVxuXG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xuICB9O1xuXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/googlecalendar/LICENSE b/uncompressed/googlecalendar/LICENSE new file mode 100644 index 0000000..4608c00 --- /dev/null +++ b/uncompressed/googlecalendar/LICENSE @@ -0,0 +1,19 @@ +Copyright 2017 Rico Herwig + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/googlecalendar/README.md b/uncompressed/googlecalendar/README.md new file mode 100644 index 0000000..f540101 --- /dev/null +++ b/uncompressed/googlecalendar/README.md @@ -0,0 +1,4 @@ +# Franz 5 Recipe: Google Calendar +This recipe integrates the Google Calendar into Franz. + +You can get the latest version of Franz [here](https://meetfranz.com/). \ No newline at end of file diff --git a/uncompressed/googlecalendar/calendar.css b/uncompressed/googlecalendar/calendar.css new file mode 100644 index 0000000..7cd726b --- /dev/null +++ b/uncompressed/googlecalendar/calendar.css @@ -0,0 +1,41 @@ +#franz-modal { + display: none; + position: fixed; + z-index: 9999; + left: 0; + top: 0; + right: 0; + bottom: 0; + overflow: auto; + background-color: rgba(0, 0, 0, 0.8); +} + +#franz-modal.open { + display: block; +} + +#franz-modal .modal-content { + background-color: #fefefe; + margin: 15% auto; + padding: 20px; + border: 1px solid #888; + width: 30%; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +#franz-modal .close { + color: #aaa; + float: right; + margin-top: -10px; + font-size: 20px; + font-weight: bold; +} + +#franz-modal .close:hover, +#franz-modal .close:focus { + color: black; + text-decoration: none; + cursor: pointer; +} diff --git a/uncompressed/googlecalendar/icon.svg b/uncompressed/googlecalendar/icon.svg new file mode 100644 index 0000000..b611f16 --- /dev/null +++ b/uncompressed/googlecalendar/icon.svg @@ -0,0 +1,21 @@ + + + + background + + + + Layer 1 + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/googlecalendar/index.js b/uncompressed/googlecalendar/index.js new file mode 100644 index 0000000..0cec036 --- /dev/null +++ b/uncompressed/googlecalendar/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWNhbGVuZGFyL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiZ29vZ2xlY2FsZW5kYXIvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/googlecalendar/package.json b/uncompressed/googlecalendar/package.json new file mode 100644 index 0000000..896b5c2 --- /dev/null +++ b/uncompressed/googlecalendar/package.json @@ -0,0 +1,15 @@ +{ + "id": "googlecalendar", + "name": "Google Calendar", + "version": "1.0.0", + "description": "Google Calendar", + "main": "index.js", + "author": "Rico Herwig ", + "license": "MIT", + "config": { + "serviceURL": "https://calendar.google.com/calendar", + "hasNotificationSound": true, + "hasDirectMessages": true, + "openDevTools": true + } + } \ No newline at end of file diff --git a/uncompressed/googlecalendar/webview.js b/uncompressed/googlecalendar/webview.js new file mode 100644 index 0000000..3d2b6f6 --- /dev/null +++ b/uncompressed/googlecalendar/webview.js @@ -0,0 +1,41 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + let modal; + let updates = 0; + + const createModal = () => { + const franzModal = document.createElement('div'); + franzModal.setAttribute('id', 'franz-modal'); + franzModal.innerHTML = ''; + franzModal.querySelector('.close').addEventListener('click', hideModal); + + return franzModal; + }; + + const showModal = text => { + modal.querySelector('p').innerHTML = text; + updates++; + modal.classList.add('open'); + }; + + const hideModal = () => { + modal.querySelector('p').innerHTML = ''; + updates--; + modal.classList.remove('open'); + }; + + window.alert = showModal; + + const getMessages = () => Franz.setBadge(updates); + + modal = createModal(); + document.body.appendChild(modal); + document.addEventListener('keydown', event => event.keyCode === 27 && hideModal()); + + Franz.injectCSS(path.join(__dirname, 'calendar.css')); + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWNhbGVuZGFyL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJtb2RhbCIsInVwZGF0ZXMiLCJjcmVhdGVNb2RhbCIsImZyYW56TW9kYWwiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJzZXRBdHRyaWJ1dGUiLCJpbm5lckhUTUwiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImhpZGVNb2RhbCIsInNob3dNb2RhbCIsInRleHQiLCJjbGFzc0xpc3QiLCJhZGQiLCJyZW1vdmUiLCJ3aW5kb3ciLCJhbGVydCIsImdldE1lc3NhZ2VzIiwic2V0QmFkZ2UiLCJib2R5IiwiYXBwZW5kQ2hpbGQiLCJldmVudCIsImtleUNvZGUiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUztBQUN4QixNQUFJQyxLQUFKO0FBQ0EsTUFBSUMsVUFBVSxDQUFkOztBQUVBLFFBQU1DLGNBQWMsTUFBTTtBQUN4QixVQUFNQyxhQUFhQyxTQUFTQyxhQUFULENBQXVCLEtBQXZCLENBQW5CO0FBQ0FGLGVBQVdHLFlBQVgsQ0FBd0IsSUFBeEIsRUFBOEIsYUFBOUI7QUFDQUgsZUFBV0ksU0FBWCxHQUF1Qiw0RUFBdkI7QUFDQUosZUFBV0ssYUFBWCxDQUF5QixRQUF6QixFQUFtQ0MsZ0JBQW5DLENBQW9ELE9BQXBELEVBQTZEQyxTQUE3RDs7QUFFQSxXQUFPUCxVQUFQO0FBQ0QsR0FQRDs7QUFTQSxRQUFNUSxZQUFZQyxRQUFRO0FBQ3hCWixVQUFNUSxhQUFOLENBQW9CLEdBQXBCLEVBQXlCRCxTQUF6QixHQUFxQ0ssSUFBckM7QUFDQVg7QUFDQUQsVUFBTWEsU0FBTixDQUFnQkMsR0FBaEIsQ0FBb0IsTUFBcEI7QUFDRCxHQUpEOztBQU1BLFFBQU1KLFlBQVksTUFBTTtBQUN0QlYsVUFBTVEsYUFBTixDQUFvQixHQUFwQixFQUF5QkQsU0FBekIsR0FBcUMsRUFBckM7QUFDQU47QUFDQUQsVUFBTWEsU0FBTixDQUFnQkUsTUFBaEIsQ0FBdUIsTUFBdkI7QUFDRCxHQUpEOztBQU1BQyxTQUFPQyxLQUFQLEdBQWVOLFNBQWY7O0FBRUEsUUFBTU8sY0FBYyxNQUFNbkIsTUFBTW9CLFFBQU4sQ0FBZWxCLE9BQWYsQ0FBMUI7O0FBRUFELFVBQVFFLGFBQVI7QUFDQUUsV0FBU2dCLElBQVQsQ0FBY0MsV0FBZCxDQUEwQnJCLEtBQTFCO0FBQ0FJLFdBQVNLLGdCQUFULENBQTBCLFNBQTFCLEVBQXFDYSxTQUFTQSxNQUFNQyxPQUFOLEtBQWtCLEVBQWxCLElBQXdCYixXQUF0RTs7QUFFQVgsUUFBTXlCLFNBQU4sQ0FBZ0I3QixLQUFLOEIsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGNBQXJCLENBQWhCO0FBQ0EzQixRQUFNNEIsSUFBTixDQUFXVCxXQUFYO0FBQ0QsQ0FuQ0QiLCJmaWxlIjoiZ29vZ2xlY2FsZW5kYXIvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4ge1xuICBsZXQgbW9kYWw7XG4gIGxldCB1cGRhdGVzID0gMDtcblxuICBjb25zdCBjcmVhdGVNb2RhbCA9ICgpID0+IHtcbiAgICBjb25zdCBmcmFuek1vZGFsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZnJhbnpNb2RhbC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2ZyYW56LW1vZGFsJyk7XG4gICAgZnJhbnpNb2RhbC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj48c3BhbiBjbGFzcz1cImNsb3NlXCI+JnRpbWVzOzwvc3Bhbj48cD48L3A+PC9kaXY+JztcbiAgICBmcmFuek1vZGFsLnF1ZXJ5U2VsZWN0b3IoJy5jbG9zZScpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgaGlkZU1vZGFsKTtcblxuICAgIHJldHVybiBmcmFuek1vZGFsO1xuICB9O1xuXG4gIGNvbnN0IHNob3dNb2RhbCA9IHRleHQgPT4ge1xuICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5pbm5lckhUTUwgPSB0ZXh0O1xuICAgIHVwZGF0ZXMrKztcbiAgICBtb2RhbC5jbGFzc0xpc3QuYWRkKCdvcGVuJyk7XG4gIH07XG5cbiAgY29uc3QgaGlkZU1vZGFsID0gKCkgPT4ge1xuICAgIG1vZGFsLnF1ZXJ5U2VsZWN0b3IoJ3AnKS5pbm5lckhUTUwgPSAnJztcbiAgICB1cGRhdGVzLS07XG4gICAgbW9kYWwuY2xhc3NMaXN0LnJlbW92ZSgnb3BlbicpO1xuICB9O1xuXG4gIHdpbmRvdy5hbGVydCA9IHNob3dNb2RhbDtcblxuICBjb25zdCBnZXRNZXNzYWdlcyA9ICgpID0+IEZyYW56LnNldEJhZGdlKHVwZGF0ZXMpO1xuXG4gIG1vZGFsID0gY3JlYXRlTW9kYWwoKTtcbiAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChtb2RhbCk7XG4gIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBldmVudCA9PiBldmVudC5rZXlDb2RlID09PSAyNyAmJiBoaWRlTW9kYWwoKSk7XG5cbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdjYWxlbmRhci5jc3MnKSk7XG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/googlekeep/LICENSE b/uncompressed/googlekeep/LICENSE new file mode 100644 index 0000000..8d55d49 --- /dev/null +++ b/uncompressed/googlekeep/LICENSE @@ -0,0 +1,7 @@ +Copyright 2017 SiloCityLabs LLC + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/uncompressed/googlekeep/README.md b/uncompressed/googlekeep/README.md new file mode 100644 index 0000000..be8cd79 --- /dev/null +++ b/uncompressed/googlekeep/README.md @@ -0,0 +1,19 @@ +# Google Keep Franz Plugin + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-googlekeep`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-googlekeep` folder into the recipes dev directory + +4. Restart Franz diff --git a/uncompressed/googlekeep/icon.svg b/uncompressed/googlekeep/icon.svg new file mode 100644 index 0000000..7ca32ff --- /dev/null +++ b/uncompressed/googlekeep/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/googlekeep/index.js b/uncompressed/googlekeep/index.js new file mode 100644 index 0000000..d97fcff --- /dev/null +++ b/uncompressed/googlekeep/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdvb2dsZWtlZXAvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJnb29nbGVrZWVwL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejsiXX0= \ No newline at end of file diff --git a/uncompressed/googlekeep/package.json b/uncompressed/googlekeep/package.json new file mode 100644 index 0000000..e3968bc --- /dev/null +++ b/uncompressed/googlekeep/package.json @@ -0,0 +1,12 @@ +{ + "id": "googlekeep", + "name": "Google Keep", + "version": "1.0.0", + "description": "Google Keep", + "main": "index.js", + "author": "SiloCityLabs LLC", + "license": "MIT", + "config": { + "serviceURL": "https://keep.google.com/" + } +} diff --git a/uncompressed/googlekeep/webview.js b/uncompressed/googlekeep/webview.js new file mode 100644 index 0000000..e1c06d0 --- /dev/null +++ b/uncompressed/googlekeep/webview.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJnb29nbGVrZWVwL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6W119 \ No newline at end of file diff --git a/uncompressed/grape/README.md b/uncompressed/grape/README.md new file mode 100644 index 0000000..bcc5630 --- /dev/null +++ b/uncompressed/grape/README.md @@ -0,0 +1,5 @@ +# Grape for Franz +This is the official Franz recipe for Grape + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/grape/icon.svg b/uncompressed/grape/icon.svg new file mode 100644 index 0000000..ef408df --- /dev/null +++ b/uncompressed/grape/icon.svg @@ -0,0 +1,17 @@ + + + + grape + Created with Sketch. + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/grape/index.js b/uncompressed/grape/index.js new file mode 100644 index 0000000..2c9cd0c --- /dev/null +++ b/uncompressed/grape/index.js @@ -0,0 +1,21 @@ +'use strict'; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + +module.exports = Franz => class Grape extends Franz { + validateUrl(url) { + return _asyncToGenerator(function* () { + try { + const resp = yield window.fetch(url, { + method: 'GET' + }); + return resp.status === 200; + } catch (err) { + console.error(err); + } + + return false; + })(); + } +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdyYXBlL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsIkdyYXBlIiwidmFsaWRhdGVVcmwiLCJ1cmwiLCJyZXNwIiwid2luZG93IiwiZmV0Y2giLCJtZXRob2QiLCJzdGF0dXMiLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUyxNQUFNQyxLQUFOLFNBQW9CRCxLQUFwQixDQUEwQjtBQUM1Q0UsYUFBTixDQUFrQkMsR0FBbEIsRUFBdUI7QUFBQTtBQUNyQixVQUFJO0FBQ0YsY0FBTUMsT0FBTyxNQUFNQyxPQUFPQyxLQUFQLENBQWFILEdBQWIsRUFBa0I7QUFDbkNJLGtCQUFRO0FBRDJCLFNBQWxCLENBQW5CO0FBR0EsZUFBT0gsS0FBS0ksTUFBTCxLQUFnQixHQUF2QjtBQUNELE9BTEQsQ0FLRSxPQUFPQyxHQUFQLEVBQVk7QUFDWkMsZ0JBQVFDLEtBQVIsQ0FBY0YsR0FBZDtBQUNEOztBQUVELGFBQU8sS0FBUDtBQVZxQjtBQVd0QjtBQVppRCxDQUFwRCIsImZpbGUiOiJncmFwZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gY2xhc3MgR3JhcGUgZXh0ZW5kcyBGcmFueiB7XG4gIGFzeW5jIHZhbGlkYXRlVXJsKHVybCkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwID0gYXdhaXQgd2luZG93LmZldGNoKHVybCwge1xuICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcC5zdGF0dXMgPT09IDIwMDtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/grape/package.json b/uncompressed/grape/package.json new file mode 100644 index 0000000..0b047ef --- /dev/null +++ b/uncompressed/grape/package.json @@ -0,0 +1,18 @@ +{ + "id": "grape", + "name": "Grape", + "version": "1.0.0", + "description": "Grape", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.chatgrape.com/chat", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasCustomUrl": true, + "hasTeamId": true, + "urlInputSuffix": ".chatgrape.com" + } +} diff --git a/uncompressed/grape/webview.js b/uncompressed/grape/webview.js new file mode 100644 index 0000000..46fa1f7 --- /dev/null +++ b/uncompressed/grape/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = document.querySelectorAll('.c0120').length; + const indirectMessages = document.querySelectorAll('.c0121').length; + + Franz.setBadge(directMessages, indirectMessages); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdyYXBlL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJkaXJlY3RNZXNzYWdlcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImluZGlyZWN0TWVzc2FnZXMiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsVUFBTUMsaUJBQWlCQyxTQUFTQyxnQkFBVCxDQUEwQixRQUExQixFQUFvQ0MsTUFBM0Q7QUFDQSxVQUFNQyxtQkFBbUJILFNBQVNDLGdCQUFULENBQTBCLFFBQTFCLEVBQW9DQyxNQUE3RDs7QUFFQUwsVUFBTU8sUUFBTixDQUFlTCxjQUFmLEVBQStCSSxnQkFBL0I7QUFDRCxHQUxEOztBQU9BTixRQUFNUSxJQUFOLENBQVdQLFdBQVg7QUFDRCxDQVREIiwiZmlsZSI6ImdyYXBlL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICBjb25zdCBnZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xuICAgIGNvbnN0IGRpcmVjdE1lc3NhZ2VzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmMwMTIwJykubGVuZ3RoO1xuICAgIGNvbnN0IGluZGlyZWN0TWVzc2FnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYzAxMjEnKS5sZW5ndGg7XG5cbiAgICBGcmFuei5zZXRCYWRnZShkaXJlY3RNZXNzYWdlcywgaW5kaXJlY3RNZXNzYWdlcyk7XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/groupme/README.md b/uncompressed/groupme/README.md new file mode 100644 index 0000000..9db1316 --- /dev/null +++ b/uncompressed/groupme/README.md @@ -0,0 +1,5 @@ +# GroupMe for Franz +This is the official Franz recipe for GroupMe + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/groupme/icon.svg b/uncompressed/groupme/icon.svg new file mode 100644 index 0000000..ca578f8 --- /dev/null +++ b/uncompressed/groupme/icon.svg @@ -0,0 +1,21 @@ + + + + groupme + Created with Sketch. + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/groupme/index.js b/uncompressed/groupme/index.js new file mode 100644 index 0000000..5bf6c97 --- /dev/null +++ b/uncompressed/groupme/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdyb3VwbWUvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJncm91cG1lL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/groupme/package.json b/uncompressed/groupme/package.json new file mode 100644 index 0000000..1098a42 --- /dev/null +++ b/uncompressed/groupme/package.json @@ -0,0 +1,14 @@ +{ + "id": "groupme", + "name": "GroupMe", + "version": "1.0.0", + "description": "GroupMe", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://web.groupme.com", + "hasNotificationSound": true, + "hasDirectMessages": true + } +} diff --git a/uncompressed/groupme/webview.js b/uncompressed/groupme/webview.js new file mode 100644 index 0000000..b0638df --- /dev/null +++ b/uncompressed/groupme/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = document.querySelectorAll('.badge-count:not(.ng-hide)').length; + + // set Franz badge + Franz.setBadge(directMessages); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImdyb3VwbWUvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImRpcmVjdE1lc3NhZ2VzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFVBQU1DLGlCQUFpQkMsU0FBU0MsZ0JBQVQsQ0FBMEIsNEJBQTFCLEVBQXdEQyxNQUEvRTs7QUFFQTtBQUNBTCxVQUFNTSxRQUFOLENBQWVKLGNBQWY7QUFDRCxHQUxEOztBQU9BRixRQUFNTyxJQUFOLENBQVdOLFdBQVg7QUFDRCxDQVREIiwiZmlsZSI6Imdyb3VwbWUvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgZGlyZWN0TWVzc2FnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYmFkZ2UtY291bnQ6bm90KC5uZy1oaWRlKScpLmxlbmd0aDtcblxuICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgIEZyYW56LnNldEJhZGdlKGRpcmVjdE1lc3NhZ2VzKTtcbiAgfTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/hangouts/README.md b/uncompressed/hangouts/README.md new file mode 100644 index 0000000..c9b22f7 --- /dev/null +++ b/uncompressed/hangouts/README.md @@ -0,0 +1,5 @@ +# Hangouts for Franz +This is the official Franz recipe for Hangouts + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/hangouts/icon.svg b/uncompressed/hangouts/icon.svg new file mode 100644 index 0000000..2a8bc22 --- /dev/null +++ b/uncompressed/hangouts/icon.svg @@ -0,0 +1,29 @@ + + + + hangouts + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/hangouts/index.js b/uncompressed/hangouts/index.js new file mode 100644 index 0000000..5390a41 --- /dev/null +++ b/uncompressed/hangouts/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// just pass through Franz +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmdvdXRzL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJoYW5nb3V0cy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGp1c3QgcGFzcyB0aHJvdWdoIEZyYW56XG5tb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/hangouts/package.json b/uncompressed/hangouts/package.json new file mode 100644 index 0000000..5835cb0 --- /dev/null +++ b/uncompressed/hangouts/package.json @@ -0,0 +1,13 @@ +{ + "id": "hangouts", + "name": "Hangouts", + "version": "1.0.0", + "description": "Hangouts", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://hangouts.google.com", + "hasNotificationSound": true + } +} diff --git a/uncompressed/hangouts/webview.js b/uncompressed/hangouts/webview.js new file mode 100644 index 0000000..58f6ccf --- /dev/null +++ b/uncompressed/hangouts/webview.js @@ -0,0 +1,21 @@ +'use strict'; + +var _path = require('path'); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Franz => { + const getMessages = function getMessages() { + // get unread messages + const count = document.querySelector('#hangout-landing-chat iframe').contentWindow.document.querySelectorAll('.ee').length; + + // set Franz badge + Franz.setBadge(count); + }; + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmdvdXRzL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJjb3VudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbnRlbnRXaW5kb3ciLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBOzs7Ozs7QUFFQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QztBQUNBLFVBQU1DLFFBQVFDLFNBQVNDLGFBQVQsQ0FBdUIsOEJBQXZCLEVBQ1hDLGFBRFcsQ0FDR0YsUUFESCxDQUNZRyxnQkFEWixDQUM2QixLQUQ3QixFQUVYQyxNQUZIOztBQUlBO0FBQ0FQLFVBQU1RLFFBQU4sQ0FBZU4sS0FBZjtBQUNELEdBUkQ7O0FBVUE7QUFDQUYsUUFBTVMsSUFBTixDQUFXUixXQUFYO0FBQ0QsQ0FiRCIsImZpbGUiOiJoYW5nb3V0cy93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgLy8gZ2V0IHVucmVhZCBtZXNzYWdlc1xuICAgIGNvbnN0IGNvdW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2hhbmdvdXQtbGFuZGluZy1jaGF0IGlmcmFtZScpXG4gICAgICAuY29udGVudFdpbmRvdy5kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZWUnKVxuICAgICAgLmxlbmd0aDtcblxuICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcbiAgfTtcblxuICAvLyBjaGVjayBmb3IgbmV3IG1lc3NhZ2VzIGV2ZXJ5IHNlY29uZCBhbmQgdXBkYXRlIEZyYW56IGJhZGdlXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/hangoutschat/README.md b/uncompressed/hangoutschat/README.md new file mode 100644 index 0000000..c899924 --- /dev/null +++ b/uncompressed/hangoutschat/README.md @@ -0,0 +1,5 @@ +# Hangouts Chat for Franz +This is the official Franz recipe for Hangouts Chat + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/hangoutschat/icon.svg b/uncompressed/hangoutschat/icon.svg new file mode 100644 index 0000000..eae3ddd --- /dev/null +++ b/uncompressed/hangoutschat/icon.svg @@ -0,0 +1,30 @@ + + + + hangoutschat + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/hangoutschat/index.js b/uncompressed/hangoutschat/index.js new file mode 100644 index 0000000..9034d74 --- /dev/null +++ b/uncompressed/hangoutschat/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// just pass through Franz +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmdvdXRzY2hhdC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiaGFuZ291dHNjaGF0L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8ganVzdCBwYXNzIHRocm91Z2ggRnJhbnpcbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/hangoutschat/package.json b/uncompressed/hangoutschat/package.json new file mode 100644 index 0000000..93abc68 --- /dev/null +++ b/uncompressed/hangoutschat/package.json @@ -0,0 +1,14 @@ +{ + "id": "hangoutschat", + "name": "Hangouts Chat", + "version": "1.0.0", + "description": "Hangouts Chat", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://chat.google.com", + "hasNotificationSound": true, + "hasIndirectMessages": true + } +} diff --git a/uncompressed/hangoutschat/webview.js b/uncompressed/hangoutschat/webview.js new file mode 100644 index 0000000..2af9e03 --- /dev/null +++ b/uncompressed/hangoutschat/webview.js @@ -0,0 +1,30 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const muteSelector = '.DQy0Rb'; + + // get unread messages + let directCount = 0; + document.querySelectorAll('.eM5l9e.FVKzAb').forEach(node => { + // Hangouts Chat overrides the muted indicator when there is a direct mention + if (!node.closest('content[role="listitem"]').querySelector(muteSelector)) { + directCount += 1; + } + }); + let indirectCount = 0; + document.querySelectorAll('.PL5Wwe.H7du2 .t5F5nf').forEach(node => { + if (!node.closest('content[role="listitem"]').querySelector(muteSelector)) { + indirectCount = +1; + } + }); + indirectCount -= directCount; + + // set Franz badge + Franz.setBadge(directCount, indirectCount); + }; + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhhbmdvdXRzY2hhdC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwibXV0ZVNlbGVjdG9yIiwiZGlyZWN0Q291bnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwibm9kZSIsImNsb3Nlc3QiLCJxdWVyeVNlbGVjdG9yIiwiaW5kaXJlY3RDb3VudCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxlQUFlLFNBQXJCOztBQUVBO0FBQ0EsUUFBSUMsY0FBYyxDQUFsQjtBQUNBQyxhQUFTQyxnQkFBVCxDQUEwQixnQkFBMUIsRUFBNENDLE9BQTVDLENBQXFEQyxJQUFELElBQVU7QUFDNUQ7QUFDQSxVQUFJLENBQUNBLEtBQUtDLE9BQUwsQ0FBYSwwQkFBYixFQUF5Q0MsYUFBekMsQ0FBdURQLFlBQXZELENBQUwsRUFBMkU7QUFDekVDLHVCQUFlLENBQWY7QUFDRDtBQUNGLEtBTEQ7QUFNQSxRQUFJTyxnQkFBZ0IsQ0FBcEI7QUFDQU4sYUFBU0MsZ0JBQVQsQ0FBMEIsdUJBQTFCLEVBQW1EQyxPQUFuRCxDQUE0REMsSUFBRCxJQUFVO0FBQ25FLFVBQUksQ0FBQ0EsS0FBS0MsT0FBTCxDQUFhLDBCQUFiLEVBQXlDQyxhQUF6QyxDQUF1RFAsWUFBdkQsQ0FBTCxFQUEyRTtBQUN6RVEsd0JBQWdCLENBQUMsQ0FBakI7QUFDRDtBQUNGLEtBSkQ7QUFLQUEscUJBQWlCUCxXQUFqQjs7QUFFQTtBQUNBSCxVQUFNVyxRQUFOLENBQWVSLFdBQWYsRUFBNEJPLGFBQTVCO0FBQ0QsR0FyQkQ7O0FBdUJBO0FBQ0FWLFFBQU1ZLElBQU4sQ0FBV1gsV0FBWDtBQUNELENBMUJEIiwiZmlsZSI6ImhhbmdvdXRzY2hhdC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBtdXRlU2VsZWN0b3IgPSAnLkRReTBSYic7XG5cbiAgICAvLyBnZXQgdW5yZWFkIG1lc3NhZ2VzXG4gICAgbGV0IGRpcmVjdENvdW50ID0gMDtcbiAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZU01bDllLkZWS3pBYicpLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIC8vIEhhbmdvdXRzIENoYXQgb3ZlcnJpZGVzIHRoZSBtdXRlZCBpbmRpY2F0b3Igd2hlbiB0aGVyZSBpcyBhIGRpcmVjdCBtZW50aW9uXG4gICAgICBpZiAoIW5vZGUuY2xvc2VzdCgnY29udGVudFtyb2xlPVwibGlzdGl0ZW1cIl0nKS5xdWVyeVNlbGVjdG9yKG11dGVTZWxlY3RvcikpIHtcbiAgICAgICAgZGlyZWN0Q291bnQgKz0gMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBsZXQgaW5kaXJlY3RDb3VudCA9IDA7XG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLlBMNVd3ZS5IN2R1MiAudDVGNW5mJykuZm9yRWFjaCgobm9kZSkgPT4ge1xuICAgICAgaWYgKCFub2RlLmNsb3Nlc3QoJ2NvbnRlbnRbcm9sZT1cImxpc3RpdGVtXCJdJykucXVlcnlTZWxlY3RvcihtdXRlU2VsZWN0b3IpKSB7XG4gICAgICAgIGluZGlyZWN0Q291bnQgPSArMTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpbmRpcmVjdENvdW50IC09IGRpcmVjdENvdW50O1xuXG4gICAgLy8gc2V0IEZyYW56IGJhZGdlXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0Q291bnQsIGluZGlyZWN0Q291bnQpO1xuICB9O1xuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/hipchat/README.md b/uncompressed/hipchat/README.md new file mode 100644 index 0000000..9c0ed8c --- /dev/null +++ b/uncompressed/hipchat/README.md @@ -0,0 +1,5 @@ +# HipChat for Franz +This is the official Franz recipe for HipChat + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/hipchat/icon.svg b/uncompressed/hipchat/icon.svg new file mode 100644 index 0000000..4541703 --- /dev/null +++ b/uncompressed/hipchat/icon.svg @@ -0,0 +1,23 @@ + + + + hipchat + Created with Sketch. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/hipchat/index.js b/uncompressed/hipchat/index.js new file mode 100644 index 0000000..f90186a --- /dev/null +++ b/uncompressed/hipchat/index.js @@ -0,0 +1,30 @@ +'use strict'; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + +module.exports = Franz => class HipChat extends Franz { + validateUrl(url) { + return _asyncToGenerator(function* () { + try { + const resp = yield window.fetch(`${url}/api/features`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }); + const data = yield resp.json(); + + return Object.hasOwnProperty.call(data, 'features'); + } catch (err) { + console.error(err); + } + + return false; + })(); + } + + buildUrl(url) { + return `${url}/chat`; + } +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpcGNoYXQvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiSGlwQ2hhdCIsInZhbGlkYXRlVXJsIiwidXJsIiwicmVzcCIsIndpbmRvdyIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImRhdGEiLCJqc29uIiwiT2JqZWN0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwiYnVpbGRVcmwiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUyxNQUFNQyxPQUFOLFNBQXNCRCxLQUF0QixDQUE0QjtBQUM5Q0UsYUFBTixDQUFrQkMsR0FBbEIsRUFBdUI7QUFBQTtBQUNyQixVQUFJO0FBQ0YsY0FBTUMsT0FBTyxNQUFNQyxPQUFPQyxLQUFQLENBQWMsR0FBRUgsR0FBSSxlQUFwQixFQUFvQztBQUNyREksa0JBQVEsS0FENkM7QUFFckRDLG1CQUFTO0FBQ1AsNEJBQWdCO0FBRFQ7QUFGNEMsU0FBcEMsQ0FBbkI7QUFNQSxjQUFNQyxPQUFPLE1BQU1MLEtBQUtNLElBQUwsRUFBbkI7O0FBRUEsZUFBT0MsT0FBT0MsY0FBUCxDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLEVBQWlDLFVBQWpDLENBQVA7QUFDRCxPQVZELENBVUUsT0FBT0ssR0FBUCxFQUFZO0FBQ1pDLGdCQUFRQyxLQUFSLENBQWNGLEdBQWQ7QUFDRDs7QUFFRCxhQUFPLEtBQVA7QUFmcUI7QUFnQnRCOztBQUVERyxXQUFTZCxHQUFULEVBQWM7QUFDWixXQUFRLEdBQUVBLEdBQUksT0FBZDtBQUNEO0FBckJtRCxDQUF0RCIsImZpbGUiOiJoaXBjaGF0L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBjbGFzcyBIaXBDaGF0IGV4dGVuZHMgRnJhbnoge1xuICBhc3luYyB2YWxpZGF0ZVVybCh1cmwpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHdpbmRvdy5mZXRjaChgJHt1cmx9L2FwaS9mZWF0dXJlc2AsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwLmpzb24oKTtcblxuICAgICAgcmV0dXJuIE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsICdmZWF0dXJlcycpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGJ1aWxkVXJsKHVybCkge1xuICAgIHJldHVybiBgJHt1cmx9L2NoYXRgO1xuICB9XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/hipchat/package.json b/uncompressed/hipchat/package.json new file mode 100644 index 0000000..08f5876 --- /dev/null +++ b/uncompressed/hipchat/package.json @@ -0,0 +1,18 @@ +{ + "id": "hipchat", + "name": "HipChat", + "version": "1.0.1", + "description": "HipChat", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.hipchat.com/chat", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasTeamId": true, + "hasCustomUrl": true, + "urlInputSuffix": ".hipchat.com" + } +} diff --git a/uncompressed/hipchat/webview.js b/uncompressed/hipchat/webview.js new file mode 100644 index 0000000..1f072eb --- /dev/null +++ b/uncompressed/hipchat/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = document.querySelectorAll('.hc-mention').length; + const allMessages = document.querySelectorAll('.aui-badge:not(.hc-mention)').length - directMessages; + + // set Franz badge + Franz.setBadge(directMessages, allMessages); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhpcGNoYXQvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImRpcmVjdE1lc3NhZ2VzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwiYWxsTWVzc2FnZXMiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsVUFBTUMsaUJBQWlCQyxTQUFTQyxnQkFBVCxDQUEwQixhQUExQixFQUF5Q0MsTUFBaEU7QUFDQSxVQUFNQyxjQUFjSCxTQUFTQyxnQkFBVCxDQUEwQiw2QkFBMUIsRUFBeURDLE1BQXpELEdBQWtFSCxjQUF0Rjs7QUFFQTtBQUNBRixVQUFNTyxRQUFOLENBQWVMLGNBQWYsRUFBK0JJLFdBQS9CO0FBQ0QsR0FORDtBQU9BTixRQUFNUSxJQUFOLENBQVdQLFdBQVg7QUFDRCxDQVREIiwiZmlsZSI6ImhpcGNoYXQvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgZGlyZWN0TWVzc2FnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuaGMtbWVudGlvbicpLmxlbmd0aDtcbiAgICBjb25zdCBhbGxNZXNzYWdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hdWktYmFkZ2U6bm90KC5oYy1tZW50aW9uKScpLmxlbmd0aCAtIGRpcmVjdE1lc3NhZ2VzO1xuXG4gICAgLy8gc2V0IEZyYW56IGJhZGdlXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0TWVzc2FnZXMsIGFsbE1lc3NhZ2VzKTtcbiAgfTtcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/icq/README.md b/uncompressed/icq/README.md new file mode 100644 index 0000000..3011e31 --- /dev/null +++ b/uncompressed/icq/README.md @@ -0,0 +1,5 @@ +# ICQ for Franz +This is the official Franz recipe for ICQ.com + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/icq/icon.svg b/uncompressed/icq/icon.svg new file mode 100644 index 0000000..ae6d43b --- /dev/null +++ b/uncompressed/icq/icon.svg @@ -0,0 +1,8 @@ + + + + + Layer 1 + + + \ No newline at end of file diff --git a/uncompressed/icq/index.js b/uncompressed/icq/index.js new file mode 100644 index 0000000..942e124 --- /dev/null +++ b/uncompressed/icq/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImljcS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6ImljcS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/icq/package.json b/uncompressed/icq/package.json new file mode 100644 index 0000000..4ecc483 --- /dev/null +++ b/uncompressed/icq/package.json @@ -0,0 +1,13 @@ +{ + "id": "icq", + "name": "ICQ", + "version": "1.0.1", + "description": "icq.com", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "repository": "https://github.com/meetfranz/recipe-icq", + "config": { + "serviceURL": "https://web.icq.com" + } + } diff --git a/uncompressed/icq/webview.js b/uncompressed/icq/webview.js new file mode 100644 index 0000000..34d03e0 --- /dev/null +++ b/uncompressed/icq/webview.js @@ -0,0 +1,27 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let directs = 0; + + if (document.getElementsByClassName('nwa-msg-counter icq-recent_state-read').length > 0) { + const elements = document.getElementsByClassName('nwa-msg-counter icq-recent_state-read'); + for (let i = 0; i < elements.length; i++) { + const countLine = parseInt(elements[i].innerText.replace(/[^0-9.]/g, ''), 10); + if (!isNaN(directs) && countLine > 0) { + // directs += count_line; // count every message + directs += 1; // count 1 per channel with messages + } + } + } + + if (isNaN(directs)) { + directs = 0; + } + + Franz.setBadge(directs); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImljcS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiZGlyZWN0cyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImxlbmd0aCIsImVsZW1lbnRzIiwiaSIsImNvdW50TGluZSIsInBhcnNlSW50IiwiaW5uZXJUZXh0IiwicmVwbGFjZSIsImlzTmFOIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFFBQUlDLFVBQVUsQ0FBZDs7QUFFQSxRQUFJQyxTQUFTQyxzQkFBVCxDQUFnQyx1Q0FBaEMsRUFBeUVDLE1BQXpFLEdBQWtGLENBQXRGLEVBQXlGO0FBQ3ZGLFlBQU1DLFdBQVdILFNBQVNDLHNCQUFULENBQWdDLHVDQUFoQyxDQUFqQjtBQUNBLFdBQUssSUFBSUcsSUFBSSxDQUFiLEVBQWdCQSxJQUFJRCxTQUFTRCxNQUE3QixFQUFxQ0UsR0FBckMsRUFBMEM7QUFDeEMsY0FBTUMsWUFBWUMsU0FBU0gsU0FBU0MsQ0FBVCxFQUFZRyxTQUFaLENBQXNCQyxPQUF0QixDQUE4QixVQUE5QixFQUEwQyxFQUExQyxDQUFULEVBQXdELEVBQXhELENBQWxCO0FBQ0EsWUFBSSxDQUFDQyxNQUFNVixPQUFOLENBQUQsSUFBb0JNLFlBQVksQ0FBcEMsRUFBd0M7QUFDdEM7QUFDQU4scUJBQVcsQ0FBWCxDQUZzQyxDQUV4QjtBQUNmO0FBQ0Y7QUFDRjs7QUFFRCxRQUFJVSxNQUFNVixPQUFOLENBQUosRUFBb0I7QUFDbEJBLGdCQUFVLENBQVY7QUFDRDs7QUFFREYsVUFBTWEsUUFBTixDQUFlWCxPQUFmO0FBQ0QsR0FuQkQ7O0FBcUJBRixRQUFNYyxJQUFOLENBQVdiLFdBQVg7QUFDRCxDQXZCRCIsImZpbGUiOiJpY3Evd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGRpcmVjdHMgPSAwO1xuXG4gICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ253YS1tc2ctY291bnRlciBpY3EtcmVjZW50X3N0YXRlLXJlYWQnKS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBlbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ253YS1tc2ctY291bnRlciBpY3EtcmVjZW50X3N0YXRlLXJlYWQnKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgY291bnRMaW5lID0gcGFyc2VJbnQoZWxlbWVudHNbaV0uaW5uZXJUZXh0LnJlcGxhY2UoL1teMC05Ll0vZywgJycpLCAxMCk7XG4gICAgICAgIGlmICghaXNOYU4oZGlyZWN0cykgJiYgKGNvdW50TGluZSA+IDApKSB7XG4gICAgICAgICAgLy8gZGlyZWN0cyArPSBjb3VudF9saW5lOyAvLyBjb3VudCBldmVyeSBtZXNzYWdlXG4gICAgICAgICAgZGlyZWN0cyArPSAxOyAvLyBjb3VudCAxIHBlciBjaGFubmVsIHdpdGggbWVzc2FnZXNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpc05hTihkaXJlY3RzKSkge1xuICAgICAgZGlyZWN0cyA9IDA7XG4gICAgfVxuXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0cyk7XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/idobata/README.md b/uncompressed/idobata/README.md new file mode 100644 index 0000000..a410d58 --- /dev/null +++ b/uncompressed/idobata/README.md @@ -0,0 +1,17 @@ +# Idobata for Franz + +--- + +This is the Franz 5 Recipe for Idobata. + +## For furher information on Idobata: + +[Idobata](https://idobata.io/en/home) is a chat service. + +## Installation for Development + +copy files to [Franz Plugins folder](http://github.com/meetfranz/plugins/blob/master/docs/integration.md#installation). + +## License + +This plugins are available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT). diff --git a/uncompressed/idobata/icon.svg b/uncompressed/idobata/icon.svg new file mode 100644 index 0000000..1ee3062 --- /dev/null +++ b/uncompressed/idobata/icon.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + diff --git a/uncompressed/idobata/index.js b/uncompressed/idobata/index.js new file mode 100644 index 0000000..6b71e31 --- /dev/null +++ b/uncompressed/idobata/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkb2JhdGEvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJpZG9iYXRhL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/idobata/package.json b/uncompressed/idobata/package.json new file mode 100644 index 0000000..6f94d4e --- /dev/null +++ b/uncompressed/idobata/package.json @@ -0,0 +1,24 @@ +{ + "id": "idobata", + "name": "Idobata", + "version": "0.1.0", + "description": "Idobata plugin for meetfranz.", + "main": "index.js", + "author": "", + "license": "MIT", + "config": { + "serviceURL": "https://idobata.io", + "serviceName": "Idobata", + "message": "Idobata plugin for meetfranz.", + "popup": [], + "hasNotificationSound": false, + "hasIndirectMessages": false, + "hasTeamID": false, + "customURL": false, + "hostedOnly": false, + "webviewOptions": { + "disablewebsecurity": "" + }, + "openDevTools": false + } +} diff --git a/uncompressed/idobata/webview.js b/uncompressed/idobata/webview.js new file mode 100644 index 0000000..3e7352e --- /dev/null +++ b/uncompressed/idobata/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = Franz => { + function getMessages() { + const title = document.querySelector('title').innerHTML.match(/\d+/); + const count = title !== null ? title[0] : 0; + + Franz.setBadge(count); + } + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlkb2JhdGEvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsInRpdGxlIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiaW5uZXJIVE1MIiwibWF0Y2giLCJjb3VudCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFdBQVNDLFdBQVQsR0FBdUI7QUFDckIsVUFBTUMsUUFBUUMsU0FBU0MsYUFBVCxDQUF1QixPQUF2QixFQUFnQ0MsU0FBaEMsQ0FBMENDLEtBQTFDLENBQWdELEtBQWhELENBQWQ7QUFDQSxVQUFNQyxRQUFRTCxVQUFVLElBQVYsR0FBaUJBLE1BQU0sQ0FBTixDQUFqQixHQUE0QixDQUExQzs7QUFFQUYsVUFBTVEsUUFBTixDQUFlRCxLQUFmO0FBQ0Q7O0FBRURQLFFBQU1TLElBQU4sQ0FBV1IsV0FBWDtBQUNELENBVEQiLCJmaWxlIjoiaWRvYmF0YS93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgdGl0bGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCd0aXRsZScpLmlubmVySFRNTC5tYXRjaCgvXFxkKy8pO1xuICAgIGNvbnN0IGNvdW50ID0gdGl0bGUgIT09IG51bGwgPyB0aXRsZVswXSA6IDA7XG5cbiAgICBGcmFuei5zZXRCYWRnZShjb3VudCk7XG4gIH1cblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/irccloud/README.md b/uncompressed/irccloud/README.md new file mode 100644 index 0000000..45b095d --- /dev/null +++ b/uncompressed/irccloud/README.md @@ -0,0 +1,5 @@ +# IRCCloud for Franz +This is the official Franz recipe for IRCCloud + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/irccloud/icon.svg b/uncompressed/irccloud/icon.svg new file mode 100644 index 0000000..5b6a742 --- /dev/null +++ b/uncompressed/irccloud/icon.svg @@ -0,0 +1,8 @@ + + + + + Layer 1 + + + \ No newline at end of file diff --git a/uncompressed/irccloud/index.js b/uncompressed/irccloud/index.js new file mode 100644 index 0000000..c72c98f --- /dev/null +++ b/uncompressed/irccloud/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlyY2Nsb3VkL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoiaXJjY2xvdWQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/irccloud/package.json b/uncompressed/irccloud/package.json new file mode 100644 index 0000000..85db1bb --- /dev/null +++ b/uncompressed/irccloud/package.json @@ -0,0 +1,15 @@ +{ + "id": "irccloud", + "name": "IRCCloud", + "version": "1.0.2", + "description": "IRCCloud", + "main": "index.js", + "author": "Alberto Murillo ", + "license": "MIT", + "repository": "https://github.com/albertomurillo/recipe-irccloud", + "config": { + "serviceURL": "https://www.irccloud.com", + "hasDirectMessages": true, + "hasIndirectMessages": true + } + } diff --git a/uncompressed/irccloud/webview.js b/uncompressed/irccloud/webview.js new file mode 100644 index 0000000..de57ffd --- /dev/null +++ b/uncompressed/irccloud/webview.js @@ -0,0 +1,15 @@ +"use strict"; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = function getMessages() { + var directMessages = document.getElementsByClassName("buffer conversation active unread activeBadge").length; + var indirectMessages = document.getElementsByClassName("buffer channel active unread").length; + + Franz.setBadge(directMessages, indirectMessages); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImlyY2Nsb3VkL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImRpcmVjdE1lc3NhZ2VzIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwibGVuZ3RoIiwiaW5kaXJlY3RNZXNzYWdlcyIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxRQUFJQyxpQkFBaUJDLFNBQVNDLHNCQUFULENBQWdDLCtDQUFoQyxFQUFpRkMsTUFBdEc7QUFDQSxRQUFJQyxtQkFBbUJILFNBQVNDLHNCQUFULENBQWdDLDhCQUFoQyxFQUFnRUMsTUFBdkY7O0FBRUFMLFVBQU1PLFFBQU4sQ0FBZUwsY0FBZixFQUErQkksZ0JBQS9CO0FBQ0QsR0FMRDs7QUFPQU4sUUFBTVEsSUFBTixDQUFXUCxXQUFYO0FBQ0QsQ0FURCIsImZpbGUiOiJpcmNjbG91ZC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICB2YXIgZGlyZWN0TWVzc2FnZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYnVmZmVyIGNvbnZlcnNhdGlvbiBhY3RpdmUgdW5yZWFkIGFjdGl2ZUJhZGdlXCIpLmxlbmd0aDtcbiAgICB2YXIgaW5kaXJlY3RNZXNzYWdlcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJidWZmZXIgY2hhbm5lbCBhY3RpdmUgdW5yZWFkXCIpLmxlbmd0aDtcblxuICAgIEZyYW56LnNldEJhZGdlKGRpcmVjdE1lc3NhZ2VzLCBpbmRpcmVjdE1lc3NhZ2VzKTtcbiAgfTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/kaizala/README.md b/uncompressed/kaizala/README.md new file mode 100644 index 0000000..8aae93e --- /dev/null +++ b/uncompressed/kaizala/README.md @@ -0,0 +1,5 @@ +# Microsoft Kaizala +This is the official Franz recipe for Microsoft Kaizala + +### How to create your own Franz recipes: +* [Read the documentation](https://meetfranz.com/developer) diff --git a/uncompressed/kaizala/icon.svg b/uncompressed/kaizala/icon.svg new file mode 100644 index 0000000..0b5ed3a --- /dev/null +++ b/uncompressed/kaizala/icon.svg @@ -0,0 +1,9 @@ + + + + microsoft-kaizala + Created with Sketch. + + + + \ No newline at end of file diff --git a/uncompressed/kaizala/index.js b/uncompressed/kaizala/index.js new file mode 100644 index 0000000..dd10055 --- /dev/null +++ b/uncompressed/kaizala/index.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = Franz => class Messenger extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); + } + +}; \ No newline at end of file diff --git a/uncompressed/kaizala/package.json b/uncompressed/kaizala/package.json new file mode 100644 index 0000000..598ef74 --- /dev/null +++ b/uncompressed/kaizala/package.json @@ -0,0 +1,14 @@ +{ + "id": "kaizala", + "name": "Microsoft Kaizala", + "version": "1.0.0", + "description": "Microsoft Kaizala", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "repository": "https://github.com/meetfranz/recipe-microsoft-kaizala", + "config": { + "serviceURL": "https://webapp.kaiza.la", + "hasNotificationSound": true + } +} diff --git a/uncompressed/kaizala/webview.js b/uncompressed/kaizala/webview.js new file mode 100644 index 0000000..f77b276 --- /dev/null +++ b/uncompressed/kaizala/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const count = document.querySelectorAll('.unseen-msg-count').length; + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/linkedin/README.md b/uncompressed/linkedin/README.md new file mode 100644 index 0000000..fec1035 --- /dev/null +++ b/uncompressed/linkedin/README.md @@ -0,0 +1,5 @@ +# LinkedIn for Franz +This is the official Franz recipe for LinkedIn + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/linkedin/icon.svg b/uncompressed/linkedin/icon.svg new file mode 100644 index 0000000..223cd1a --- /dev/null +++ b/uncompressed/linkedin/icon.svg @@ -0,0 +1,24 @@ + + + + linkedin + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/linkedin/index.js b/uncompressed/linkedin/index.js new file mode 100644 index 0000000..a858833 --- /dev/null +++ b/uncompressed/linkedin/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpbmtlZGluL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoibGlua2VkaW4vaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/linkedin/package.json b/uncompressed/linkedin/package.json new file mode 100644 index 0000000..6351978 --- /dev/null +++ b/uncompressed/linkedin/package.json @@ -0,0 +1,12 @@ +{ + "id": "linkedin", + "name": "LinkedIn", + "version": "1.0.0", + "description": "LinkedIn", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://www.linkedin.com/messaging" + } +} diff --git a/uncompressed/linkedin/webview.js b/uncompressed/linkedin/webview.js new file mode 100644 index 0000000..792fee3 --- /dev/null +++ b/uncompressed/linkedin/webview.js @@ -0,0 +1,24 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + + if (window.location.pathname.includes('messaging')) { + count = document.querySelectorAll('.msg-conversation-card__unread-count').length; + } else { + const element = document.querySelector('.nav-item--messaging .nav-item__badge-count'); + + if (element) { + count = parseInt(element.innerHTML, 10); + } + } + + // set Franz badge + Franz.setBadge(count); + }; + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpbmtlZGluL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJjb3VudCIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJpbmNsdWRlcyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImVsZW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGFyc2VJbnQiLCJpbm5lckhUTUwiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsUUFBSUMsUUFBUSxDQUFaOztBQUVBLFFBQUlDLE9BQU9DLFFBQVAsQ0FBZ0JDLFFBQWhCLENBQXlCQyxRQUF6QixDQUFrQyxXQUFsQyxDQUFKLEVBQW9EO0FBQ2xESixjQUFRSyxTQUFTQyxnQkFBVCxDQUEwQixzQ0FBMUIsRUFBa0VDLE1BQTFFO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsWUFBTUMsVUFBVUgsU0FBU0ksYUFBVCxDQUF1Qiw2Q0FBdkIsQ0FBaEI7O0FBRUEsVUFBSUQsT0FBSixFQUFhO0FBQ1hSLGdCQUFRVSxTQUFTRixRQUFRRyxTQUFqQixFQUE0QixFQUE1QixDQUFSO0FBQ0Q7QUFDRjs7QUFFRDtBQUNBYixVQUFNYyxRQUFOLENBQWVaLEtBQWY7QUFDRCxHQWZEOztBQWlCQTtBQUNBRixRQUFNZSxJQUFOLENBQVdkLFdBQVg7QUFDRCxDQXBCRCIsImZpbGUiOiJsaW5rZWRpbi93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuXG4gICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmNsdWRlcygnbWVzc2FnaW5nJykpIHtcbiAgICAgIGNvdW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm1zZy1jb252ZXJzYXRpb24tY2FyZF9fdW5yZWFkLWNvdW50JykubGVuZ3RoO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5hdi1pdGVtLS1tZXNzYWdpbmcgLm5hdi1pdGVtX19iYWRnZS1jb3VudCcpO1xuXG4gICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICBjb3VudCA9IHBhcnNlSW50KGVsZW1lbnQuaW5uZXJIVE1MLCAxMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gc2V0IEZyYW56IGJhZGdlXG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xuICB9O1xuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/mailbox.org/LICENSE b/uncompressed/mailbox.org/LICENSE new file mode 100644 index 0000000..b0958eb --- /dev/null +++ b/uncompressed/mailbox.org/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jonas H. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/mailbox.org/README.md b/uncompressed/mailbox.org/README.md new file mode 100644 index 0000000..3616116 --- /dev/null +++ b/uncompressed/mailbox.org/README.md @@ -0,0 +1,16 @@ +# mailbox.org Franz Plugin +Recipe for [mailbox.org](https://www.mailbox.org) integration with [Franz](http://meetfranz.com) + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## How to test this recipe +1. To install a new integration, download the integration folder. +2. Open the Franz Plugins folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/dev/` + * Windows: `%appdata%/Franz/recipes/dev/` +3. Copy the folder into the plugins directory +4. Reload Franz + +## Documentation +* [Read the documentation](https://github.com/meetfranz/plugins/blob/master/docs/integration.md) diff --git a/uncompressed/mailbox.org/icon.svg b/uncompressed/mailbox.org/icon.svg new file mode 100644 index 0000000..8c3b62b --- /dev/null +++ b/uncompressed/mailbox.org/icon.svg @@ -0,0 +1,860 @@ + + + + diff --git a/uncompressed/mailbox.org/index.js b/uncompressed/mailbox.org/index.js new file mode 100644 index 0000000..0e64091 --- /dev/null +++ b/uncompressed/mailbox.org/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// default integration (e.g messenger.com, ...) +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haWxib3gub3JnL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJtYWlsYm94Lm9yZy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGRlZmF1bHQgaW50ZWdyYXRpb24gKGUuZyBtZXNzZW5nZXIuY29tLCAuLi4pXHJcbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7Il19 \ No newline at end of file diff --git a/uncompressed/mailbox.org/package.json b/uncompressed/mailbox.org/package.json new file mode 100644 index 0000000..a058e8b --- /dev/null +++ b/uncompressed/mailbox.org/package.json @@ -0,0 +1,12 @@ +{ + "id": "mailbox.org", + "name": "mailbox.org", + "version": "1.1.1", + "description": "Integration of mailbox.org", + "main": "index.js", + "author": "Jonas Hilke ", + "license": "MIT", + "config": { + "serviceURL": "https://office.mailbox.org/appsuite/#!!&app=io.ox/portal" + } +} diff --git a/uncompressed/mailbox.org/webview.js b/uncompressed/mailbox.org/webview.js new file mode 100644 index 0000000..114ebea --- /dev/null +++ b/uncompressed/mailbox.org/webview.js @@ -0,0 +1,11 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const count = document.querySelectorAll('.new-item').length; + + Franz.setBadge(count); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1haWxib3gub3JnL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJjb3VudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxRQUFRQyxTQUFTQyxnQkFBVCxDQUEwQixXQUExQixFQUF1Q0MsTUFBckQ7O0FBRUFMLFVBQU1NLFFBQU4sQ0FBZUosS0FBZjtBQUVELEdBTEQ7QUFNQUYsUUFBTU8sSUFBTixDQUFXTixXQUFYO0FBQ0QsQ0FSRCIsImZpbGUiOiJtYWlsYm94Lm9yZy93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcclxuICBjb25zdCBnZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xyXG4gICAgY29uc3QgY291bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmV3LWl0ZW0nKS5sZW5ndGg7XHJcblxyXG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xyXG5cdFxyXG4gIH07XHJcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XHJcbn07XHJcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/mattermost/README.md b/uncompressed/mattermost/README.md new file mode 100644 index 0000000..3321fb5 --- /dev/null +++ b/uncompressed/mattermost/README.md @@ -0,0 +1,5 @@ +# Mattermost for Franz +This is the official Franz recipe for Mattermost + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/mattermost/icon.svg b/uncompressed/mattermost/icon.svg new file mode 100644 index 0000000..9f7056d --- /dev/null +++ b/uncompressed/mattermost/icon.svg @@ -0,0 +1,14 @@ + + + + mattermost + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/mattermost/index.js b/uncompressed/mattermost/index.js new file mode 100644 index 0000000..8f814fa --- /dev/null +++ b/uncompressed/mattermost/index.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports = Franz => class Mattermost extends Franz { + async validateUrl(url) { + try { + const resp = await window.fetch(url, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }); + return resp.status.toString().startsWith('2'); + } catch (err) { + console.error(err); + } + + return false; + } + +}; \ No newline at end of file diff --git a/uncompressed/mattermost/package.json b/uncompressed/mattermost/package.json new file mode 100644 index 0000000..48f6860 --- /dev/null +++ b/uncompressed/mattermost/package.json @@ -0,0 +1,14 @@ +{ + "id": "mattermost", + "name": "Mattermost", + "version": "1.2.1", + "description": "Mattermost", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "hasNotificationSound": true, + "hasIndirectMessages": true, + "hasCustomUrl": true + } +} diff --git a/uncompressed/mattermost/webview.js b/uncompressed/mattermost/webview.js new file mode 100644 index 0000000..03258e0 --- /dev/null +++ b/uncompressed/mattermost/webview.js @@ -0,0 +1,13 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = document.querySelectorAll('.sidebar--left .has-badge .badge').length; + const allMessages = document.querySelectorAll('.sidebar--left .has-badge').length - directMessages; + const teamDirectMessages = document.querySelectorAll('.team-wrapper .team-container .badge').length; + const teamMessages = document.querySelectorAll('.team-wrapper .unread').length - teamDirectMessages; + Franz.setBadge(directMessages + teamDirectMessages, allMessages + teamMessages); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/messenger/README.md b/uncompressed/messenger/README.md new file mode 100644 index 0000000..cbe1f4d --- /dev/null +++ b/uncompressed/messenger/README.md @@ -0,0 +1,5 @@ +# Messenger for Franz +This is the official Franz recipe for Messenger + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/messenger/icon.svg b/uncompressed/messenger/icon.svg new file mode 100644 index 0000000..c861e9a --- /dev/null +++ b/uncompressed/messenger/icon.svg @@ -0,0 +1,23 @@ + + + + messenger + Created with Sketch. + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/messenger/index.js b/uncompressed/messenger/index.js new file mode 100644 index 0000000..dd10055 --- /dev/null +++ b/uncompressed/messenger/index.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = Franz => class Messenger extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); + } + +}; \ No newline at end of file diff --git a/uncompressed/messenger/package.json b/uncompressed/messenger/package.json new file mode 100644 index 0000000..30cbbdf --- /dev/null +++ b/uncompressed/messenger/package.json @@ -0,0 +1,13 @@ +{ + "id": "messenger", + "name": "Messenger", + "version": "1.0.8", + "description": "Facebook Messenger", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://messenger.com", + "hasNotificationSound": true + } +} diff --git a/uncompressed/messenger/webview.js b/uncompressed/messenger/webview.js new file mode 100644 index 0000000..ba7ae31 --- /dev/null +++ b/uncompressed/messenger/webview.js @@ -0,0 +1,34 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = document.querySelectorAll('._5fx8:not(._569x),._1ht3:not(._569x)').length; + const messageRequestsElement = document.querySelector('._5nxf'); + + if (messageRequestsElement) { + count += parseInt(messageRequestsElement.innerHTML, 10); + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); + localStorage.setItem('_cs_desktopNotifsEnabled', JSON.stringify({ + __t: new Date().getTime(), + __v: true + })); + + if (typeof Franz.onNotify === 'function') { + Franz.onNotify(notification => { + if (typeof notification.title !== 'string') { + notification.title = ((notification.title.props || {}).content || [])[0] || 'Messenger'; + } + + if (typeof notification.options.body !== 'string') { + notification.options.body = (((notification.options.body || {}).props || {}).content || [])[0] || ''; + } + + return notification; + }); + } +}; \ No newline at end of file diff --git a/uncompressed/msteams/icon.svg b/uncompressed/msteams/icon.svg new file mode 100644 index 0000000..09b454e --- /dev/null +++ b/uncompressed/msteams/icon.svg @@ -0,0 +1 @@ +icon \ No newline at end of file diff --git a/uncompressed/msteams/index.js b/uncompressed/msteams/index.js new file mode 100644 index 0000000..0afc5c9 --- /dev/null +++ b/uncompressed/msteams/index.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = Franz => class MicrosoftTeams extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, '').replace(/(Chrome\/)([^ ]*)/g, '$163.0.3239.84'); + } + +}; \ No newline at end of file diff --git a/uncompressed/msteams/package.json b/uncompressed/msteams/package.json new file mode 100644 index 0000000..037b3c4 --- /dev/null +++ b/uncompressed/msteams/package.json @@ -0,0 +1,13 @@ +{ + "id": "msteams", + "name": "Microsoft Teams", + "version": "1.1.0", + "description": "Microsoft Teams", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://teams.microsoft.com", + "hasNotificationSound": true + } +} diff --git a/uncompressed/msteams/service.css b/uncompressed/msteams/service.css new file mode 100644 index 0000000..533004f --- /dev/null +++ b/uncompressed/msteams/service.css @@ -0,0 +1,3 @@ +notification-banner { + display: none !important; +} diff --git a/uncompressed/msteams/webview.js b/uncompressed/msteams/webview.js new file mode 100644 index 0000000..d614097 --- /dev/null +++ b/uncompressed/msteams/webview.js @@ -0,0 +1,29 @@ +"use strict"; + +const path = require('path'); + +window.electronSafeIpc = { + send: () => null, + on: () => null +}; +window.desktop = undefined; + +module.exports = Franz => { + const getMessages = () => { + let messages = 0; + const badge = document.querySelector('.activity-badge.dot-activity-badge .activity-badge'); + + if (badge) { + const value = parseInt(badge.innerHTML, 10); + + if (!isNaN(value)) { + messages = value; + } + } + + Franz.setBadge(messages); + }; + + Franz.injectCSS(path.join(__dirname, 'service.css')); + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/mysms/README.md b/uncompressed/mysms/README.md new file mode 100644 index 0000000..efe5fc2 --- /dev/null +++ b/uncompressed/mysms/README.md @@ -0,0 +1,5 @@ +# MySMS for Franz +This is the official Franz recipe for MySMS + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/mysms/icon.svg b/uncompressed/mysms/icon.svg new file mode 100644 index 0000000..4642a47 --- /dev/null +++ b/uncompressed/mysms/icon.svg @@ -0,0 +1,14 @@ + + + + mysms (1) + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/mysms/index.js b/uncompressed/mysms/index.js new file mode 100644 index 0000000..dd107bf --- /dev/null +++ b/uncompressed/mysms/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15c21zL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoibXlzbXMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/mysms/package.json b/uncompressed/mysms/package.json new file mode 100644 index 0000000..38bc476 --- /dev/null +++ b/uncompressed/mysms/package.json @@ -0,0 +1,12 @@ +{ + "id": "mysms", + "name": "MySMS", + "version": "1.0.0", + "description": "MySMS", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://app.mysms.com" + } +} diff --git a/uncompressed/mysms/webview.js b/uncompressed/mysms/webview.js new file mode 100644 index 0000000..20e82ac --- /dev/null +++ b/uncompressed/mysms/webview.js @@ -0,0 +1,20 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const elements = document.getElementsByClassName('unread'); + + let count = 0; + for (let i = 0; i < elements.length; i++) { + let count_line = parseInt(elements[i].innerText.replace(/[^0-9.]/g, "")); + if (count_line > 0) { + count++; // count 1 per channel with messages + } + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm15c21zL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJlbGVtZW50cyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImNvdW50IiwiaSIsImxlbmd0aCIsImNvdW50X2xpbmUiLCJwYXJzZUludCIsImlubmVyVGV4dCIsInJlcGxhY2UiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsVUFBTUMsV0FBV0MsU0FBU0Msc0JBQVQsQ0FBZ0MsUUFBaEMsQ0FBakI7O0FBRUQsUUFBSUMsUUFBUSxDQUFaO0FBQ0EsU0FBSSxJQUFJQyxJQUFJLENBQVosRUFBZUEsSUFBSUosU0FBU0ssTUFBNUIsRUFBb0NELEdBQXBDLEVBQXlDO0FBQ3hDLFVBQUlFLGFBQWFDLFNBQVNQLFNBQVNJLENBQVQsRUFBWUksU0FBWixDQUFzQkMsT0FBdEIsQ0FBOEIsVUFBOUIsRUFBMEMsRUFBMUMsQ0FBVCxDQUFqQjtBQUNBLFVBQUlILGFBQWEsQ0FBakIsRUFBb0I7QUFDbkJILGdCQURtQixDQUNWO0FBQ1Q7QUFDRDs7QUFFQUwsVUFBTVksUUFBTixDQUFlUCxLQUFmO0FBQ0QsR0FaRDs7QUFjQUwsUUFBTWEsSUFBTixDQUFXWixXQUFYO0FBQ0QsQ0FoQkQiLCJmaWxlIjoibXlzbXMvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCd1bnJlYWQnKTtcblxuICBcdGxldCBjb3VudCA9IDA7XG4gIFx0Zm9yKGxldCBpID0gMDsgaSA8IGVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gIFx0XHRsZXQgY291bnRfbGluZSA9IHBhcnNlSW50KGVsZW1lbnRzW2ldLmlubmVyVGV4dC5yZXBsYWNlKC9bXjAtOS5dL2csIFwiXCIpKTtcbiAgXHRcdGlmIChjb3VudF9saW5lID4gMCkge1xuICBcdFx0XHRjb3VudCsrOyAvLyBjb3VudCAxIHBlciBjaGFubmVsIHdpdGggbWVzc2FnZXNcbiAgXHRcdH1cbiAgXHR9XG5cbiAgICBGcmFuei5zZXRCYWRnZShjb3VudCk7XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/office365-owa/LICENSE b/uncompressed/office365-owa/LICENSE new file mode 100644 index 0000000..e46b0c5 --- /dev/null +++ b/uncompressed/office365-owa/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Adam Birds + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/office365-owa/README.md b/uncompressed/office365-owa/README.md new file mode 100644 index 0000000..a35ef46 --- /dev/null +++ b/uncompressed/office365-owa/README.md @@ -0,0 +1,5 @@ +# Office 365 Outlook Web App for Franz +This is the Franz 5 Recipe for Office 365 Outlook Web App + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/office365-owa/icon.svg b/uncompressed/office365-owa/icon.svg new file mode 100644 index 0000000..a8d1906 --- /dev/null +++ b/uncompressed/office365-owa/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/office365-owa/index.js b/uncompressed/office365-owa/index.js new file mode 100644 index 0000000..c9669b2 --- /dev/null +++ b/uncompressed/office365-owa/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9mZmljZTM2NS1vd2EvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJvZmZpY2UzNjUtb3dhL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejsiXX0= \ No newline at end of file diff --git a/uncompressed/office365-owa/package.json b/uncompressed/office365-owa/package.json new file mode 100644 index 0000000..17d2ed8 --- /dev/null +++ b/uncompressed/office365-owa/package.json @@ -0,0 +1,13 @@ +{ + "id": "office365-owa", + "name": "Office 365 Outlook Web App", + "version": "1.0.1", + "description": "Office 365 Outlook Web App", + "main": "index.js", + "author": "Adam Birds ", + "repository": "https://github.com/adambirds/recipe-office365-owa", + "license": "MIT", + "config": { + "serviceURL": "https://outlook.office365.com/owa" + } +} diff --git a/uncompressed/office365-owa/webview.js b/uncompressed/office365-owa/webview.js new file mode 100644 index 0000000..fa2e187 --- /dev/null +++ b/uncompressed/office365-owa/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const unreadMail = parseInt(jQuery("span[title*='Inbox'] + div > span").first().text(), 10); + Franz.setBadge(unreadMail); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9mZmljZTM2NS1vd2Evd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsInVucmVhZE1haWwiLCJwYXJzZUludCIsImpRdWVyeSIsImZpcnN0IiwidGV4dCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxhQUFhQyxTQUFTQyxPQUFPLG1DQUFQLEVBQTRDQyxLQUE1QyxHQUFvREMsSUFBcEQsRUFBVCxFQUFxRSxFQUFyRSxDQUFuQjtBQUNBTixVQUFNTyxRQUFOLENBQWVMLFVBQWY7QUFDRCxHQUhEO0FBSUFGLFFBQU1RLElBQU4sQ0FBV1AsV0FBWDtBQUNELENBTkQiLCJmaWxlIjoib2ZmaWNlMzY1LW93YS93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCB1bnJlYWRNYWlsID0gcGFyc2VJbnQoalF1ZXJ5KFwic3Bhblt0aXRsZSo9J0luYm94J10gKyBkaXYgPiBzcGFuXCIpLmZpcnN0KCkudGV4dCgpLCAxMCk7XG4gICAgRnJhbnouc2V0QmFkZ2UodW5yZWFkTWFpbCk7XG4gIH07XG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/outlook/LICENSE b/uncompressed/outlook/LICENSE new file mode 100644 index 0000000..6802bc4 --- /dev/null +++ b/uncompressed/outlook/LICENSE @@ -0,0 +1,19 @@ +MIT License + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/uncompressed/outlook/README.md b/uncompressed/outlook/README.md new file mode 100644 index 0000000..8d68fd4 --- /dev/null +++ b/uncompressed/outlook/README.md @@ -0,0 +1,5 @@ +# Outlook Web App for Franz +This is the Franz 5 Recipe for Outlook Web App + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/outlook/icon.svg b/uncompressed/outlook/icon.svg new file mode 100644 index 0000000..a8d1906 --- /dev/null +++ b/uncompressed/outlook/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/outlook/index.js b/uncompressed/outlook/index.js new file mode 100644 index 0000000..2df4f0b --- /dev/null +++ b/uncompressed/outlook/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9mZmljZTM2NS1vd2EvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sQUFBUCxVQUFpQixTQUFTLEFBQTFCIiwiZmlsZSI6Im9mZmljZTM2NS1vd2EvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/uncompressed/outlook/package.json b/uncompressed/outlook/package.json new file mode 100644 index 0000000..1a12218 --- /dev/null +++ b/uncompressed/outlook/package.json @@ -0,0 +1,13 @@ +{ + "id": "outlook", + "name": "Outlook", + "version": "1.0.0", + "description": "Outlook Web App", + "main": "index.js", + "author": "Wouter Van Speybroeck ", + "repository": "", + "license": "MIT", + "config": { + "serviceURL": "https://outlook.live.com/owa/" + } +} diff --git a/uncompressed/outlook/webview.js b/uncompressed/outlook/webview.js new file mode 100644 index 0000000..7e30fe4 --- /dev/null +++ b/uncompressed/outlook/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const unreadMail = parseInt(jQuery("i[data-icon-name='Inbox'] + span + span > span").first().text(), 10); + Franz.setBadge(unreadMail); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm9mZmljZTM2NS1vd2Evd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsInVucmVhZE1haWwiLCJwYXJzZUludCIsImpRdWVyeSIsImZpcnN0IiwidGV4dCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEFBQVAsVUFBa0IsQUFBRCxTQUFXLEFBQzFCO1FBQU0sY0FBYyxTQUFTLEFBQVQsY0FBdUIsQUFDekM7VUFBTSxhQUFhLFNBQVMsT0FBTyxBQUFQLEFBQTRDLEFBQTVDLEFBQW9ELEFBQXBELGtEQUFULEFBQXFFLEFBQXJFLEFBQW5CLGdCQUNBO1VBQU0sQUFBTixTQUFlLEFBQWYsQUFDRDtBQUhELEFBSUE7UUFBTSxBQUFOLEtBQVcsQUFBWCxBQUNEO0FBTkQiLCJmaWxlIjoib2ZmaWNlMzY1LW93YS93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCB1bnJlYWRNYWlsID0gcGFyc2VJbnQoalF1ZXJ5KFwic3Bhblt0aXRsZSo9J0luYm94J10gKyBkaXYgPiBzcGFuXCIpLmZpcnN0KCkudGV4dCgpLCAxMCk7XG4gICAgRnJhbnouc2V0QmFkZ2UodW5yZWFkTWFpbCk7XG4gIH07XG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/plurk/LICENSE.md b/uncompressed/plurk/LICENSE.md new file mode 100644 index 0000000..3a91925 --- /dev/null +++ b/uncompressed/plurk/LICENSE.md @@ -0,0 +1,10 @@ + +MIT License + +Copyright (c) 2017 YWJamesLin + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/plurk/README.md b/uncompressed/plurk/README.md new file mode 100644 index 0000000..9b65989 --- /dev/null +++ b/uncompressed/plurk/README.md @@ -0,0 +1,16 @@ +## Plurk Franz Recipe + +### Service Website +https://www.plurk.com + +### Notification Period +10 seconds + +### Notification Count +- New Posts(新訊息) + Reply(未讀訊息) +- now they are counted as direct messages (Plurk users may read all unread messages.) + +### About making a recipe of Franz +[Read this](https://github.com/meetfranz/plugins/tree/master/docs) + +### Todo diff --git a/uncompressed/plurk/icon.svg b/uncompressed/plurk/icon.svg new file mode 100644 index 0000000..b312f45 --- /dev/null +++ b/uncompressed/plurk/icon.svg @@ -0,0 +1,216 @@ + + + + diff --git a/uncompressed/plurk/index.js b/uncompressed/plurk/index.js new file mode 100644 index 0000000..48f2704 --- /dev/null +++ b/uncompressed/plurk/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdXJrL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoicGx1cmsvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/plurk/package.json b/uncompressed/plurk/package.json new file mode 100644 index 0000000..284edd0 --- /dev/null +++ b/uncompressed/plurk/package.json @@ -0,0 +1,12 @@ +{ + "id": "plurk", + "name": "Plurk", + "version": "1.0.0", + "description": "Plurk intergration of Franz", + "main": "index.js", + "author": "YWJamesLin ", + "license": "MIT", + "config": { + "serviceURL": "https://www.plurk.com" + } +} diff --git a/uncompressed/plurk/webview.js b/uncompressed/plurk/webview.js new file mode 100644 index 0000000..b20e0b3 --- /dev/null +++ b/uncompressed/plurk/webview.js @@ -0,0 +1,19 @@ +'use strict'; + +module.exports = Franz => { + function getMessages() { + let direct = 0; + + const np = document.querySelector('#noti_np_count'); + const re = document.querySelector('#noti_re_count'); + + if (np || re) { + direct = parseInt(np.innerHTML) + parseInt(re.innerHTML); + } + + Franz.setBadge(direct); + } + + Franz.loop(getMessages, 10000); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBsdXJrL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJkaXJlY3QiLCJucCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInJlIiwicGFyc2VJbnQiLCJpbm5lckhUTUwiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixXQUFTQyxXQUFULEdBQXVCO0FBQ3JCLFFBQUlDLFNBQVMsQ0FBYjs7QUFFQSxVQUFNQyxLQUFLQyxTQUFTQyxhQUFULENBQXVCLGdCQUF2QixDQUFYO0FBQ0EsVUFBTUMsS0FBS0YsU0FBU0MsYUFBVCxDQUF1QixnQkFBdkIsQ0FBWDs7QUFFQSxRQUFJRixNQUFNRyxFQUFWLEVBQWM7QUFDWkosZUFBU0ssU0FBVUosR0FBR0ssU0FBYixJQUEwQkQsU0FBVUQsR0FBR0UsU0FBYixDQUFuQztBQUNEOztBQUVEUixVQUFNUyxRQUFOLENBQWdCUCxNQUFoQjtBQUVEOztBQUVERixRQUFNVSxJQUFOLENBQVdULFdBQVgsRUFBd0IsS0FBeEI7QUFDRCxDQWhCRCIsImZpbGUiOiJwbHVyay93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGRpcmVjdCA9IDA7XG5cbiAgICBjb25zdCBucCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNub3RpX25wX2NvdW50Jyk7XG4gICAgY29uc3QgcmUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjbm90aV9yZV9jb3VudCcpO1xuXG4gICAgaWYgKG5wIHx8IHJlKSB7XG4gICAgICBkaXJlY3QgPSBwYXJzZUludCAobnAuaW5uZXJIVE1MKSArIHBhcnNlSW50IChyZS5pbm5lckhUTUwpO1xuICAgIH1cblxuICAgIEZyYW56LnNldEJhZGdlIChkaXJlY3QpO1xuXG4gIH1cblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzLCAxMDAwMCk7XG59XG4iXX0= \ No newline at end of file diff --git a/uncompressed/pocket/LICENSE b/uncompressed/pocket/LICENSE new file mode 100644 index 0000000..1825fb4 --- /dev/null +++ b/uncompressed/pocket/LICENSE @@ -0,0 +1,7 @@ +Copyright 2017 Diego Bersanetti + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/pocket/README.md b/uncompressed/pocket/README.md new file mode 100644 index 0000000..e44f4a9 --- /dev/null +++ b/uncompressed/pocket/README.md @@ -0,0 +1,19 @@ +# Pocket Franz Plugin + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-pocket`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-pocket` folder into the recipes dev directory + +4. Restart Franz diff --git a/uncompressed/pocket/icon.svg b/uncompressed/pocket/icon.svg new file mode 100644 index 0000000..df1c3f8 --- /dev/null +++ b/uncompressed/pocket/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/uncompressed/pocket/index.js b/uncompressed/pocket/index.js new file mode 100644 index 0000000..d543fce --- /dev/null +++ b/uncompressed/pocket/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBvY2tldC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6InBvY2tldC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/pocket/package.json b/uncompressed/pocket/package.json new file mode 100644 index 0000000..6092c9b --- /dev/null +++ b/uncompressed/pocket/package.json @@ -0,0 +1,12 @@ +{ + "id": "pocket", + "name": "Pocket", + "version": "1.0.0", + "description": "Pocket", + "main": "index.js", + "author": "Diego bersanetti ", + "license": "MIT", + "config": { + "serviceURL": "https://getpocket.com/a/queue/list/" + } +} diff --git a/uncompressed/pocket/webview.js b/uncompressed/pocket/webview.js new file mode 100644 index 0000000..c0f2a3c --- /dev/null +++ b/uncompressed/pocket/webview.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwb2NrZXQvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbXX0= \ No newline at end of file diff --git a/uncompressed/proton-mail/LICENSE b/uncompressed/proton-mail/LICENSE new file mode 100644 index 0000000..4af831c --- /dev/null +++ b/uncompressed/proton-mail/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2018 Lukas Reineke + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/proton-mail/icon.svg b/uncompressed/proton-mail/icon.svg new file mode 100644 index 0000000..c71c72a --- /dev/null +++ b/uncompressed/proton-mail/icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/uncompressed/proton-mail/index.js b/uncompressed/proton-mail/index.js new file mode 100644 index 0000000..84b5537 --- /dev/null +++ b/uncompressed/proton-mail/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb3Rvbi1tYWlsL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoicHJvdG9uLW1haWwvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/proton-mail/package.json b/uncompressed/proton-mail/package.json new file mode 100644 index 0000000..bf82335 --- /dev/null +++ b/uncompressed/proton-mail/package.json @@ -0,0 +1,24 @@ +{ + "id": "proton-mail", + "name": "proton-mail", + "version": "1.0.0", + "description": "proton-mail", + "main": "index.js", + "author": "Lukas Reineke ", + "license": "MIT", + "config": { + "serviceURL": "https://mail.protonmail.com/login", + "serviceName": "Proton Mail", + "message": "", + "popup": [], + "hasNotificationSound": false, + "hasIndirectMessages": false, + "hasTeamID": false, + "customURL": false, + "hostedOnly": false, + "webviewOptions": { + "disablewebsecurity": "" + }, + "openDevTools": false + } +} diff --git a/uncompressed/proton-mail/webview.js b/uncompressed/proton-mail/webview.js new file mode 100644 index 0000000..90ca648 --- /dev/null +++ b/uncompressed/proton-mail/webview.js @@ -0,0 +1,10 @@ +'use strict'; + +module.exports = Franz => { + function getMessages() { + const count = document.querySelector('.navigationItem-counter').innerText; + Franz.setBadge(count ? count.substring(1, count.length - 1) : 0); + } + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInByb3Rvbi1tYWlsL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJjb3VudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImlubmVyVGV4dCIsInNldEJhZGdlIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUztBQUN0QixhQUFTQyxXQUFULEdBQXVCO0FBQ25CLGNBQU1DLFFBQVFDLFNBQVNDLGFBQVQsQ0FBdUIseUJBQXZCLEVBQWtEQyxTQUFoRTtBQUNBTCxjQUFNTSxRQUFOLENBQWVKLFFBQVFBLE1BQU1LLFNBQU4sQ0FBZ0IsQ0FBaEIsRUFBbUJMLE1BQU1NLE1BQU4sR0FBZSxDQUFsQyxDQUFSLEdBQStDLENBQTlEO0FBQ0g7QUFDRFIsVUFBTVMsSUFBTixDQUFXUixXQUFYO0FBQ0gsQ0FORCIsImZpbGUiOiJwcm90b24tbWFpbC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiB7XG4gICAgZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgICAgIGNvbnN0IGNvdW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5hdmlnYXRpb25JdGVtLWNvdW50ZXInKS5pbm5lclRleHRcbiAgICAgICAgRnJhbnouc2V0QmFkZ2UoY291bnQgPyBjb3VudC5zdWJzdHJpbmcoMSwgY291bnQubGVuZ3RoIC0gMSkgOiAwKVxuICAgIH1cbiAgICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKVxufVxuIl19 \ No newline at end of file diff --git a/uncompressed/pulseSMS/LICENSE b/uncompressed/pulseSMS/LICENSE new file mode 100644 index 0000000..96c05b9 --- /dev/null +++ b/uncompressed/pulseSMS/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Nico Rodriguez + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/pulseSMS/README.md b/uncompressed/pulseSMS/README.md new file mode 100644 index 0000000..2592577 --- /dev/null +++ b/uncompressed/pulseSMS/README.md @@ -0,0 +1,8 @@ +# Pulse SMS for Franz +This is the Franz 5 Recipe for Pulse SMS + +### For further informtion on Pulse SMS: +* [Visit the website](https://messenger.klinkerapps.com/overview/) + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/pulseSMS/icon.svg b/uncompressed/pulseSMS/icon.svg new file mode 100644 index 0000000..64356de --- /dev/null +++ b/uncompressed/pulseSMS/icon.svg @@ -0,0 +1,3299 @@ + + + + diff --git a/uncompressed/pulseSMS/index.js b/uncompressed/pulseSMS/index.js new file mode 100644 index 0000000..ba15cb0 --- /dev/null +++ b/uncompressed/pulseSMS/index.js @@ -0,0 +1,8 @@ +"use strict"; + +// just pass through Franz + +module.exports = function (Franz) { + return Franz; +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInB1bHNlc21zL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUE7O0FBQ0FBLE9BQU9DLE9BQVAsR0FBaUIsVUFBVUMsS0FBVixFQUFpQjtBQUNoQyxTQUFPQSxLQUFQO0FBQ0QsQ0FGRCIsImZpbGUiOiJwdWxzZXNtcy9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG4vLyBqdXN0IHBhc3MgdGhyb3VnaCBGcmFuelxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoRnJhbnopIHtcbiAgcmV0dXJuIEZyYW56O1xufTsiXX0= \ No newline at end of file diff --git a/uncompressed/pulseSMS/package.json b/uncompressed/pulseSMS/package.json new file mode 100644 index 0000000..c49a271 --- /dev/null +++ b/uncompressed/pulseSMS/package.json @@ -0,0 +1,13 @@ +{ + "id": "pulseSMS", + "name": "Pulse SMS", + "version": "1.0.0", + "description": "Pulse SMS", + "main": "index.js", + "author": "Nico Rodriguez ", + "license": "MIT", + "config": { + "serviceURL": "https://messenger.klinkerapps.com/login.html", + "hasNotificationSound": true + } +} diff --git a/uncompressed/pulseSMS/webview.js b/uncompressed/pulseSMS/webview.js new file mode 100644 index 0000000..0a56c11 --- /dev/null +++ b/uncompressed/pulseSMS/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + var count = document.getElementsByClassName("conversation-title mdl-card__supporting-text bold").length; + Franz.setBadge(count); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInB1bHNlc21zL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJjb3VudCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsImxlbmd0aCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxRQUFJQyxRQUFRQyxTQUFTQyxzQkFBVCxDQUFnQyxtREFBaEMsRUFBcUZDLE1BQWpHO0FBQ0FMLFVBQU1NLFFBQU4sQ0FBZUosS0FBZjtBQUVELEdBSkQ7QUFLQUYsUUFBTU8sSUFBTixDQUFXTixXQUFYO0FBQ0QsQ0FQRCIsImZpbGUiOiJwdWxzZXNtcy93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICB2YXIgY291bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiY29udmVyc2F0aW9uLXRpdGxlIG1kbC1jYXJkX19zdXBwb3J0aW5nLXRleHQgYm9sZFwiKS5sZW5ndGg7XG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xuICAgIFxuICB9O1xuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/pushbullet/LICENSE b/uncompressed/pushbullet/LICENSE new file mode 100644 index 0000000..1825fb4 --- /dev/null +++ b/uncompressed/pushbullet/LICENSE @@ -0,0 +1,7 @@ +Copyright 2017 Diego Bersanetti + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/pushbullet/README.md b/uncompressed/pushbullet/README.md new file mode 100644 index 0000000..00c5895 --- /dev/null +++ b/uncompressed/pushbullet/README.md @@ -0,0 +1,19 @@ +# Pushbullet Franz Plugin + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-pushbullet`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-pushbullet` folder into the recipes dev directory + +4. Restart Franz diff --git a/uncompressed/pushbullet/icon.svg b/uncompressed/pushbullet/icon.svg new file mode 100644 index 0000000..6a70a68 --- /dev/null +++ b/uncompressed/pushbullet/icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/pushbullet/index.js b/uncompressed/pushbullet/index.js new file mode 100644 index 0000000..35c94bb --- /dev/null +++ b/uncompressed/pushbullet/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInB1c2hidWxsZXQvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJwdXNoYnVsbGV0L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/pushbullet/package.json b/uncompressed/pushbullet/package.json new file mode 100644 index 0000000..31f381d --- /dev/null +++ b/uncompressed/pushbullet/package.json @@ -0,0 +1,12 @@ +{ + "id": "pushbullet", + "name": "Pushbullet", + "version": "1.0.0", + "description": "Pushbullet", + "main": "index.js", + "author": "Diego bersanetti ", + "license": "MIT", + "config": { + "serviceURL": "https://www.pushbullet.com/" + } +} diff --git a/uncompressed/pushbullet/webview.js b/uncompressed/pushbullet/webview.js new file mode 100644 index 0000000..e79543a --- /dev/null +++ b/uncompressed/pushbullet/webview.js @@ -0,0 +1,2 @@ +"use strict"; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJwdXNoYnVsbGV0L3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6W119 \ No newline at end of file diff --git a/uncompressed/rainloop/README.md b/uncompressed/rainloop/README.md new file mode 100644 index 0000000..f6dbc45 --- /dev/null +++ b/uncompressed/rainloop/README.md @@ -0,0 +1,5 @@ +# Wunderlist for RainLoop +This is a Franz recipe for RainLoop, it was migrated by [Marcel Deglau](https://github.com/promarcel) and comes originally from [ffflorian](https://github.com/ffflorian). + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) \ No newline at end of file diff --git a/uncompressed/rainloop/icon.svg b/uncompressed/rainloop/icon.svg new file mode 100644 index 0000000..47b9fc9 --- /dev/null +++ b/uncompressed/rainloop/icon.svg @@ -0,0 +1,19 @@ + + + + background + + + + Layer 1 + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/rainloop/index.js b/uncompressed/rainloop/index.js new file mode 100644 index 0000000..53a1186 --- /dev/null +++ b/uncompressed/rainloop/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJhaW5sb29wL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoicmFpbmxvb3AvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/uncompressed/rainloop/package.json b/uncompressed/rainloop/package.json new file mode 100644 index 0000000..9aa6924 --- /dev/null +++ b/uncompressed/rainloop/package.json @@ -0,0 +1,14 @@ +{ + "id": "rainloop", + "name": "RainLoop", + "version": "1.0.0", + "description": "RainLoop Webmail – Simple, modern & fast web-based email client", + "main": "index.js", + "author": "Marcel Deglau ", + "repository": "https://github.com/promarcel/franz-recipe-rainloop", + "license": "MIT", + "config": { + "hasNotificationSound": true, + "hasCustomUrl": true + } +} diff --git a/uncompressed/rainloop/webview.js b/uncompressed/rainloop/webview.js new file mode 100644 index 0000000..170e1a6 --- /dev/null +++ b/uncompressed/rainloop/webview.js @@ -0,0 +1,27 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = () => { + let updates = 0; + let inbox = 0; + let full = 0; + + $('.b-folders-user .ui-droppable').each((i, obj) => { + const countText = $(obj).find('.count').first().html(); + if (typeof countText === 'string' && countText !== '') { + if ($(obj).hasClass('system')) { + if ($(obj).hasClass('i-am-inbox')) { + inbox += parseInt(countText); + } + } else { + updates += parseInt(countText); + } + } + }); + + full = inbox + updates; + Franz.setBadge(full); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJhaW5sb29wL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJ1cGRhdGVzIiwiaW5ib3giLCJmdWxsIiwiJCIsImVhY2giLCJpIiwib2JqIiwiY291bnRUZXh0IiwiZmluZCIsImZpcnN0IiwiaHRtbCIsImhhc0NsYXNzIiwicGFyc2VJbnQiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVM7QUFDdEIsVUFBTUMsY0FBYyxNQUFNO0FBQ3RCLFlBQUlDLFVBQVUsQ0FBZDtBQUNBLFlBQUlDLFFBQVEsQ0FBWjtBQUNOLFlBQUlDLE9BQU8sQ0FBWDs7QUFFTUMsVUFBRSwrQkFBRixFQUFtQ0MsSUFBbkMsQ0FBd0MsQ0FBQ0MsQ0FBRCxFQUFJQyxHQUFKLEtBQVk7QUFDaEQsa0JBQU1DLFlBQVlKLEVBQUVHLEdBQUYsRUFBT0UsSUFBUCxDQUFZLFFBQVosRUFBc0JDLEtBQXRCLEdBQThCQyxJQUE5QixFQUFsQjtBQUNBLGdCQUFJLE9BQU9ILFNBQVAsS0FBcUIsUUFBckIsSUFBaUNBLGNBQWMsRUFBbkQsRUFBdUQ7QUFDbkQsb0JBQUlKLEVBQUVHLEdBQUYsRUFBT0ssUUFBUCxDQUFnQixRQUFoQixDQUFKLEVBQStCO0FBQzNCLHdCQUFJUixFQUFFRyxHQUFGLEVBQU9LLFFBQVAsQ0FBZ0IsWUFBaEIsQ0FBSixFQUFtQztBQUMvQlYsaUNBQVNXLFNBQVNMLFNBQVQsQ0FBVDtBQUNIO0FBQ0osaUJBSkQsTUFJTztBQUNIUCwrQkFBV1ksU0FBU0wsU0FBVCxDQUFYO0FBQ0g7QUFDSjtBQUNKLFNBWEQ7O0FBYU5MLGVBQU9ELFFBQVFELE9BQWY7QUFDTUYsY0FBTWUsUUFBTixDQUFlWCxJQUFmO0FBQ0gsS0FwQkQ7QUFxQkFKLFVBQU1nQixJQUFOLENBQVdmLFdBQVg7QUFDSCxDQXZCRCIsImZpbGUiOiJyYWlubG9vcC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiB7XG4gICAgY29uc3QgZ2V0TWVzc2FnZXMgPSAoKSA9PiB7XG4gICAgICAgIGxldCB1cGRhdGVzID0gMDtcbiAgICAgICAgbGV0IGluYm94ID0gMDtcblx0XHRsZXQgZnVsbCA9IDA7XG5cbiAgICAgICAgJCgnLmItZm9sZGVycy11c2VyIC51aS1kcm9wcGFibGUnKS5lYWNoKChpLCBvYmopID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvdW50VGV4dCA9ICQob2JqKS5maW5kKCcuY291bnQnKS5maXJzdCgpLmh0bWwoKTtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY291bnRUZXh0ID09PSAnc3RyaW5nJyAmJiBjb3VudFRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgaWYgKCQob2JqKS5oYXNDbGFzcygnc3lzdGVtJykpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCQob2JqKS5oYXNDbGFzcygnaS1hbS1pbmJveCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmJveCArPSBwYXJzZUludChjb3VudFRleHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlcyArPSBwYXJzZUludChjb3VudFRleHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cblx0XHRmdWxsID0gaW5ib3ggKyB1cGRhdGVzO1xuICAgICAgICBGcmFuei5zZXRCYWRnZShmdWxsKTtcbiAgICB9O1xuICAgIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/riot/README.md b/uncompressed/riot/README.md new file mode 100644 index 0000000..85d0255 --- /dev/null +++ b/uncompressed/riot/README.md @@ -0,0 +1,11 @@ +# Riot for Franz +This is a Franz recipe/plugin for Riot 5 + +## Installation +1. Download or clone this repo on your computer +2. Open the Franz Plugins folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/dev/` + * Windows: `%appdata%/Franz/recipes/dev/` +3. Copy the `recipe-riot` folder into the `dev` directory (if the directory does not exist, create it) +4. Reload Franz +5. Open `Settings` tab and enable Riot in the `development` tab of `Available services` diff --git a/uncompressed/riot/icon.svg b/uncompressed/riot/icon.svg new file mode 100644 index 0000000..a5f70e5 --- /dev/null +++ b/uncompressed/riot/icon.svg @@ -0,0 +1,76 @@ + + + + +New_logo + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/riot/index.js b/uncompressed/riot/index.js new file mode 100644 index 0000000..660614a --- /dev/null +++ b/uncompressed/riot/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJpb3QvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJyaW90L2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejsiXX0= \ No newline at end of file diff --git a/uncompressed/riot/package.json b/uncompressed/riot/package.json new file mode 100644 index 0000000..4a01837 --- /dev/null +++ b/uncompressed/riot/package.json @@ -0,0 +1,17 @@ +{ + "id": "riot", + "name": "Riot", + "version": "1.0.1", + "description": "Decentralized and encrypted discussion & collaboration, powered by [matrix]", + "main": "index.js", + "author": "Sylvain Cecchetto ", + "license": "MIT", + "repository": "https://github.com/SylvainCecchetto/recipe-riot", + "config": { + "serviceURL": "https://riot.im/app", + "hasTeamID": false, + "urlInputSuffix": false, + "hasNotificationSound": true, + "hasIndirectMessages": true + } +} \ No newline at end of file diff --git a/uncompressed/riot/webview.js b/uncompressed/riot/webview.js new file mode 100644 index 0000000..f46f46c --- /dev/null +++ b/uncompressed/riot/webview.js @@ -0,0 +1,23 @@ +'use strict'; + +module.exports = Franz => { + function getMessages() { + const indirect_badge = document.getElementsByClassName('mx_RoomSubList_badge'); + let indirect_count = 0; + if (indirect_badge.length !== 0) { + indirect_count = indirect_badge.length; + } + + const direct_badge = document.getElementsByClassName('mx_RoomSubList_badgeHighlight'); + let direct_count = 0; + if (direct_badge.length !== 0) { + direct_count = direct_badge.length; + } + // set Franz badge + Franz.setBadge(direct_count, indirect_count); + } + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJpb3Qvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImluZGlyZWN0X2JhZGdlIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwiaW5kaXJlY3RfY291bnQiLCJsZW5ndGgiLCJkaXJlY3RfYmFkZ2UiLCJkaXJlY3RfY291bnQiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixXQUFTQyxXQUFULEdBQXVCO0FBQ3JCLFVBQU1DLGlCQUFpQkMsU0FBU0Msc0JBQVQsQ0FBZ0Msc0JBQWhDLENBQXZCO0FBQ0EsUUFBSUMsaUJBQWlCLENBQXJCO0FBQ0EsUUFBSUgsZUFBZUksTUFBZixLQUEwQixDQUE5QixFQUFpQztBQUMvQkQsdUJBQWlCSCxlQUFlSSxNQUFoQztBQUNEOztBQUVELFVBQU1DLGVBQWVKLFNBQVNDLHNCQUFULENBQWdDLCtCQUFoQyxDQUFyQjtBQUNBLFFBQUlJLGVBQWUsQ0FBbkI7QUFDQSxRQUFJRCxhQUFhRCxNQUFiLEtBQXdCLENBQTVCLEVBQStCO0FBQzdCRSxxQkFBZUQsYUFBYUQsTUFBNUI7QUFDRDtBQUNEO0FBQ0FOLFVBQU1TLFFBQU4sQ0FBZUQsWUFBZixFQUE2QkgsY0FBN0I7QUFDRDs7QUFFRDtBQUNBTCxRQUFNVSxJQUFOLENBQVdULFdBQVg7QUFDRCxDQW5CRCIsImZpbGUiOiJyaW90L3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBpbmRpcmVjdF9iYWRnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ214X1Jvb21TdWJMaXN0X2JhZGdlJyk7XG4gICAgbGV0IGluZGlyZWN0X2NvdW50ID0gMDtcbiAgICBpZiAoaW5kaXJlY3RfYmFkZ2UubGVuZ3RoICE9PSAwKSB7XG4gICAgICBpbmRpcmVjdF9jb3VudCA9IGluZGlyZWN0X2JhZGdlLmxlbmd0aDtcbiAgICB9XG5cbiAgICBjb25zdCBkaXJlY3RfYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdteF9Sb29tU3ViTGlzdF9iYWRnZUhpZ2hsaWdodCcpO1xuICAgIGxldCBkaXJlY3RfY291bnQgPSAwO1xuICAgIGlmIChkaXJlY3RfYmFkZ2UubGVuZ3RoICE9PSAwKSB7XG4gICAgICBkaXJlY3RfY291bnQgPSBkaXJlY3RfYmFkZ2UubGVuZ3RoO1xuICAgIH1cbiAgICAvLyBzZXQgRnJhbnogYmFkZ2VcbiAgICBGcmFuei5zZXRCYWRnZShkaXJlY3RfY291bnQsIGluZGlyZWN0X2NvdW50KTtcbiAgfVxuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/rocketchat/README.md b/uncompressed/rocketchat/README.md new file mode 100644 index 0000000..c8b5579 --- /dev/null +++ b/uncompressed/rocketchat/README.md @@ -0,0 +1,5 @@ +# Rocket.Chat for Franz +This is the official Franz recipe for Rocket.Chat + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/rocketchat/icon.svg b/uncompressed/rocketchat/icon.svg new file mode 100644 index 0000000..b87ea43 --- /dev/null +++ b/uncompressed/rocketchat/icon.svg @@ -0,0 +1,19 @@ + + + + rocketchat + Created with Sketch. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/rocketchat/index.js b/uncompressed/rocketchat/index.js new file mode 100644 index 0000000..349ed36 --- /dev/null +++ b/uncompressed/rocketchat/index.js @@ -0,0 +1,26 @@ +'use strict'; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + +module.exports = Franz => class RocketChat extends Franz { + validateUrl(url) { + return _asyncToGenerator(function* () { + try { + const resp = yield window.fetch(`${url}/api/info`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }); + const data = yield resp.json(); + + return Object.hasOwnProperty.call(data, 'version'); + } catch (err) { + console.error(err); + } + + return false; + })(); + } +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvY2tldGNoYXQvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiUm9ja2V0Q2hhdCIsInZhbGlkYXRlVXJsIiwidXJsIiwicmVzcCIsIndpbmRvdyIsImZldGNoIiwibWV0aG9kIiwiaGVhZGVycyIsImRhdGEiLCJqc29uIiwiT2JqZWN0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZXJyIiwiY29uc29sZSIsImVycm9yIl0sIm1hcHBpbmdzIjoiOzs7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVMsTUFBTUMsVUFBTixTQUF5QkQsS0FBekIsQ0FBK0I7QUFDakRFLGFBQU4sQ0FBa0JDLEdBQWxCLEVBQXVCO0FBQUE7QUFDckIsVUFBSTtBQUNGLGNBQU1DLE9BQU8sTUFBTUMsT0FBT0MsS0FBUCxDQUFjLEdBQUVILEdBQUksV0FBcEIsRUFBZ0M7QUFDakRJLGtCQUFRLEtBRHlDO0FBRWpEQyxtQkFBUztBQUNQLDRCQUFnQjtBQURUO0FBRndDLFNBQWhDLENBQW5CO0FBTUEsY0FBTUMsT0FBTyxNQUFNTCxLQUFLTSxJQUFMLEVBQW5COztBQUVBLGVBQU9DLE9BQU9DLGNBQVAsQ0FBc0JDLElBQXRCLENBQTJCSixJQUEzQixFQUFpQyxTQUFqQyxDQUFQO0FBQ0QsT0FWRCxDQVVFLE9BQU9LLEdBQVAsRUFBWTtBQUNaQyxnQkFBUUMsS0FBUixDQUFjRixHQUFkO0FBQ0Q7O0FBRUQsYUFBTyxLQUFQO0FBZnFCO0FBZ0J0QjtBQWpCc0QsQ0FBekQiLCJmaWxlIjoicm9ja2V0Y2hhdC9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gY2xhc3MgUm9ja2V0Q2hhdCBleHRlbmRzIEZyYW56IHtcbiAgYXN5bmMgdmFsaWRhdGVVcmwodXJsKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCB3aW5kb3cuZmV0Y2goYCR7dXJsfS9hcGkvaW5mb2AsIHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXNwLmpzb24oKTtcblxuICAgICAgcmV0dXJuIE9iamVjdC5oYXNPd25Qcm9wZXJ0eS5jYWxsKGRhdGEsICd2ZXJzaW9uJyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/rocketchat/package.json b/uncompressed/rocketchat/package.json new file mode 100644 index 0000000..61c77e8 --- /dev/null +++ b/uncompressed/rocketchat/package.json @@ -0,0 +1,16 @@ +{ + "id": "rocketchat", + "name": "Rocket.Chat", + "version": "1.0.6", + "description": "Rocket.Chat", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.rocket.chat", + "hasNotificationSound": true, + "hasCustomUrl": true, + "hasTeamId": true, + "urlInputSuffix": ".rocket.chat" + } +} diff --git a/uncompressed/rocketchat/webview.js b/uncompressed/rocketchat/webview.js new file mode 100644 index 0000000..1e26ac9 --- /dev/null +++ b/uncompressed/rocketchat/webview.js @@ -0,0 +1,49 @@ +'use strict'; + +const { ipcRenderer } = require('electron'); + +const getTeamIcon = function getTeamIcon() { + console.log('getTeamIcon'); + + const manifestElement = document.querySelector('link[rel="manifest"]'); + + if (manifestElement == null) { + return; + } + + const manifestUrl = manifestElement.getAttribute('href'); + + if (manifestUrl == null) { + return; + } + + const xmlhttp = new XMLHttpRequest(); + xmlhttp.onreadystatechange = function () { + if (this.readyState != 4 || this.status != 200) { + return; + } + + const response = JSON.parse(this.responseText); + + if (response.icons.length >= 1) { + ipcRenderer.sendToHost('avatar', `${window.location.protocol}//${window.location.host}/${response.icons[0].src}`); + } + }; + xmlhttp.open('GET', manifestUrl, true); + xmlhttp.send(); +}; + +module.exports = Franz => { + const getMessages = function getMessages() { + const directMessages = Math.round(document.querySelectorAll('.unread.unread-mention, .badge--unread').length / 2); + const indirectMessages = Math.round(document.querySelectorAll('.unread:not(.unread-mention), .sidebar-item--unread').length / 2); + Franz.setBadge(directMessages, indirectMessages); + }; + + Franz.loop(getMessages); + + setTimeout(() => { + getTeamIcon(); + }, 4000); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvY2tldGNoYXQvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJpcGNSZW5kZXJlciIsInJlcXVpcmUiLCJnZXRUZWFtSWNvbiIsImNvbnNvbGUiLCJsb2ciLCJtYW5pZmVzdEVsZW1lbnQiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCJtYW5pZmVzdFVybCIsImdldEF0dHJpYnV0ZSIsInhtbGh0dHAiLCJYTUxIdHRwUmVxdWVzdCIsIm9ucmVhZHlzdGF0ZWNoYW5nZSIsInJlYWR5U3RhdGUiLCJzdGF0dXMiLCJyZXNwb25zZSIsIkpTT04iLCJwYXJzZSIsInJlc3BvbnNlVGV4dCIsImljb25zIiwibGVuZ3RoIiwic2VuZFRvSG9zdCIsIndpbmRvdyIsImxvY2F0aW9uIiwicHJvdG9jb2wiLCJob3N0Iiwic3JjIiwib3BlbiIsInNlbmQiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImRpcmVjdE1lc3NhZ2VzIiwiTWF0aCIsInJvdW5kIiwicXVlcnlTZWxlY3RvckFsbCIsImluZGlyZWN0TWVzc2FnZXMiLCJzZXRCYWRnZSIsImxvb3AiLCJzZXRUaW1lb3V0Il0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sRUFBRUEsV0FBRixLQUFrQkMsUUFBUSxVQUFSLENBQXhCOztBQUVBLE1BQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6Q0MsVUFBUUMsR0FBUixDQUFZLGFBQVo7O0FBRUEsUUFBTUMsa0JBQWtCQyxTQUFTQyxhQUFULENBQXVCLHNCQUF2QixDQUF4Qjs7QUFFQSxNQUFJRixtQkFBbUIsSUFBdkIsRUFBNkI7QUFDM0I7QUFDRDs7QUFFRCxRQUFNRyxjQUFjSCxnQkFBZ0JJLFlBQWhCLENBQTZCLE1BQTdCLENBQXBCOztBQUVBLE1BQUlELGVBQWUsSUFBbkIsRUFBeUI7QUFDdkI7QUFDRDs7QUFFRCxRQUFNRSxVQUFVLElBQUlDLGNBQUosRUFBaEI7QUFDQUQsVUFBUUUsa0JBQVIsR0FBNkIsWUFBWTtBQUN2QyxRQUFJLEtBQUtDLFVBQUwsSUFBbUIsQ0FBbkIsSUFBd0IsS0FBS0MsTUFBTCxJQUFlLEdBQTNDLEVBQWdEO0FBQzlDO0FBQ0Q7O0FBRUQsVUFBTUMsV0FBV0MsS0FBS0MsS0FBTCxDQUFXLEtBQUtDLFlBQWhCLENBQWpCOztBQUVBLFFBQUlILFNBQVNJLEtBQVQsQ0FBZUMsTUFBZixJQUF5QixDQUE3QixFQUFnQztBQUM5QnBCLGtCQUFZcUIsVUFBWixDQUF1QixRQUF2QixFQUFrQyxHQUFFQyxPQUFPQyxRQUFQLENBQWdCQyxRQUFTLEtBQUlGLE9BQU9DLFFBQVAsQ0FBZ0JFLElBQUssSUFBR1YsU0FBU0ksS0FBVCxDQUFlLENBQWYsRUFBa0JPLEdBQUksRUFBL0c7QUFDRDtBQUNGLEdBVkQ7QUFXQWhCLFVBQVFpQixJQUFSLENBQWEsS0FBYixFQUFvQm5CLFdBQXBCLEVBQWlDLElBQWpDO0FBQ0FFLFVBQVFrQixJQUFSO0FBQ0QsQ0E3QkQ7O0FBK0JBQyxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFVBQU1DLGlCQUFpQkMsS0FBS0MsS0FBTCxDQUFXN0IsU0FBUzhCLGdCQUFULENBQTBCLHdDQUExQixFQUFvRWhCLE1BQXBFLEdBQTZFLENBQXhGLENBQXZCO0FBQ0EsVUFBTWlCLG1CQUFtQkgsS0FBS0MsS0FBTCxDQUFXN0IsU0FBUzhCLGdCQUFULENBQTBCLHFEQUExQixFQUFpRmhCLE1BQWpGLEdBQTBGLENBQXJHLENBQXpCO0FBQ0FXLFVBQU1PLFFBQU4sQ0FBZUwsY0FBZixFQUErQkksZ0JBQS9CO0FBQ0QsR0FKRDs7QUFNQU4sUUFBTVEsSUFBTixDQUFXUCxXQUFYOztBQUVBUSxhQUFXLE1BQU07QUFDZnRDO0FBQ0QsR0FGRCxFQUVHLElBRkg7QUFHRCxDQVpEIiwiZmlsZSI6InJvY2tldGNoYXQvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHsgaXBjUmVuZGVyZXIgfSA9IHJlcXVpcmUoJ2VsZWN0cm9uJyk7XG5cbmNvbnN0IGdldFRlYW1JY29uID0gZnVuY3Rpb24gZ2V0VGVhbUljb24oKSB7XG4gIGNvbnNvbGUubG9nKCdnZXRUZWFtSWNvbicpO1xuXG4gIGNvbnN0IG1hbmlmZXN0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2xpbmtbcmVsPVwibWFuaWZlc3RcIl0nKTtcblxuICBpZiAobWFuaWZlc3RFbGVtZW50ID09IG51bGwpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBtYW5pZmVzdFVybCA9IG1hbmlmZXN0RWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcblxuICBpZiAobWFuaWZlc3RVcmwgPT0gbnVsbCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHhtbGh0dHAgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgeG1saHR0cC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHRoaXMucmVhZHlTdGF0ZSAhPSA0IHx8IHRoaXMuc3RhdHVzICE9IDIwMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZSh0aGlzLnJlc3BvbnNlVGV4dCk7XG5cbiAgICBpZiAocmVzcG9uc2UuaWNvbnMubGVuZ3RoID49IDEpIHtcbiAgICAgIGlwY1JlbmRlcmVyLnNlbmRUb0hvc3QoJ2F2YXRhcicsIGAke3dpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH0vLyR7d2luZG93LmxvY2F0aW9uLmhvc3R9LyR7cmVzcG9uc2UuaWNvbnNbMF0uc3JjfWApO1xuICAgIH1cbiAgfTtcbiAgeG1saHR0cC5vcGVuKCdHRVQnLCBtYW5pZmVzdFVybCwgdHJ1ZSk7XG4gIHhtbGh0dHAuc2VuZCgpO1xufTtcblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBkaXJlY3RNZXNzYWdlcyA9IE1hdGgucm91bmQoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnVucmVhZC51bnJlYWQtbWVudGlvbiwgLmJhZGdlLS11bnJlYWQnKS5sZW5ndGggLyAyKTtcbiAgICBjb25zdCBpbmRpcmVjdE1lc3NhZ2VzID0gTWF0aC5yb3VuZChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudW5yZWFkOm5vdCgudW5yZWFkLW1lbnRpb24pLCAuc2lkZWJhci1pdGVtLS11bnJlYWQnKS5sZW5ndGggLyAyKTtcbiAgICBGcmFuei5zZXRCYWRnZShkaXJlY3RNZXNzYWdlcywgaW5kaXJlY3RNZXNzYWdlcyk7XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG5cbiAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgZ2V0VGVhbUljb24oKTtcbiAgfSwgNDAwMCk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/roundcube/ICON_LICENSE b/uncompressed/roundcube/ICON_LICENSE new file mode 100644 index 0000000..e1188f7 --- /dev/null +++ b/uncompressed/roundcube/ICON_LICENSE @@ -0,0 +1,4 @@ +Icon by Lorena Salagre +https://thenounproject.com/lorens/ +https://thenounproject.com/search/?q=email&i=32727 +https://creativecommons.org/licenses/by/3.0/us/ \ No newline at end of file diff --git a/uncompressed/roundcube/LICENSE b/uncompressed/roundcube/LICENSE new file mode 100644 index 0000000..83683df --- /dev/null +++ b/uncompressed/roundcube/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jonathan Juursema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/uncompressed/roundcube/README.md b/uncompressed/roundcube/README.md new file mode 100644 index 0000000..096fd03 --- /dev/null +++ b/uncompressed/roundcube/README.md @@ -0,0 +1,2 @@ +# franz-roundcube +A recipe to add Roundcube support to Franz. \ No newline at end of file diff --git a/uncompressed/roundcube/icon.svg b/uncompressed/roundcube/icon.svg new file mode 100644 index 0000000..7db0005 --- /dev/null +++ b/uncompressed/roundcube/icon.svg @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/roundcube/index.js b/uncompressed/roundcube/index.js new file mode 100644 index 0000000..bb8d040 --- /dev/null +++ b/uncompressed/roundcube/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvdW5kY3ViZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6InJvdW5kY3ViZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7Il19 \ No newline at end of file diff --git a/uncompressed/roundcube/package.json b/uncompressed/roundcube/package.json new file mode 100644 index 0000000..a9428dc --- /dev/null +++ b/uncompressed/roundcube/package.json @@ -0,0 +1,15 @@ +{ + "id": "roundcube", + "name": "Roundcube", + "version": "1.0.0", + "description": "Roundcube - Free and Open Source Webmail Software", + "main": "index.js", + "author": "Jonathan Juursema ", + "repository": "https://github.com/jonathanjuursema/franz-roundcube", + "license": "MIT", + "config": { + "hasCustomUrl": true, + "hasNotificationSound": false, + "hasIndirectMessages": false + } +} diff --git a/uncompressed/roundcube/webview.js b/uncompressed/roundcube/webview.js new file mode 100644 index 0000000..3ab6cf7 --- /dev/null +++ b/uncompressed/roundcube/webview.js @@ -0,0 +1,15 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let directElements = document.querySelectorAll('.unreadcount'); + let direct = 0; + for (let i = 0; i < directElements.length; i += 1) { + n = parseInt(directElements[i].innerHTML); + direct += isNaN(n) ? 0 : n; + } + Franz.setBadge(direct); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJvdW5kY3ViZS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiZGlyZWN0RWxlbWVudHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJkaXJlY3QiLCJpIiwibGVuZ3RoIiwibiIsInBhcnNlSW50IiwiaW5uZXJIVE1MIiwiaXNOYU4iLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVM7QUFDekIsT0FBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQzFDLE1BQUlDLGlCQUFpQkMsU0FBU0MsZ0JBQVQsQ0FBMEIsY0FBMUIsQ0FBckI7QUFDQSxNQUFJQyxTQUFTLENBQWI7QUFDQSxPQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosZUFBZUssTUFBbkMsRUFBMkNELEtBQUssQ0FBaEQsRUFBbUQ7QUFDbERFLE9BQUlDLFNBQVNQLGVBQWVJLENBQWYsRUFBa0JJLFNBQTNCLENBQUo7QUFDQUwsYUFBV00sTUFBTUgsQ0FBTixJQUFXLENBQVgsR0FBZUEsQ0FBMUI7QUFDQTtBQUNEUixRQUFNWSxRQUFOLENBQWVQLE1BQWY7QUFDQSxFQVJEO0FBU0FMLE9BQU1hLElBQU4sQ0FBV1osV0FBWDtBQUNBLENBWEQiLCJmaWxlIjoicm91bmRjdWJlL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IHtcblx0Y29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcblx0XHRsZXQgZGlyZWN0RWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudW5yZWFkY291bnQnKTtcblx0XHRsZXQgZGlyZWN0ID0gMDtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGRpcmVjdEVsZW1lbnRzLmxlbmd0aDsgaSArPSAxKSB7XG5cdFx0XHRuID0gcGFyc2VJbnQoZGlyZWN0RWxlbWVudHNbaV0uaW5uZXJIVE1MKTtcblx0XHRcdGRpcmVjdCArPSAoaXNOYU4obikgPyAwIDogbik7XG5cdFx0fVxuXHRcdEZyYW56LnNldEJhZGdlKGRpcmVjdCk7XG5cdH07XG5cdEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/sendtask/README.md b/uncompressed/sendtask/README.md new file mode 100644 index 0000000..ebb4c55 --- /dev/null +++ b/uncompressed/sendtask/README.md @@ -0,0 +1,20 @@ +# Sendtask +Recipe for [Sendtask](https://www.sendtask.io) integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `sendtask`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `sendtask` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/sendtask/franz.css b/uncompressed/sendtask/franz.css new file mode 100644 index 0000000..09e72fb --- /dev/null +++ b/uncompressed/sendtask/franz.css @@ -0,0 +1,3 @@ +footer { + display: none !important; +} diff --git a/uncompressed/sendtask/icon.svg b/uncompressed/sendtask/icon.svg new file mode 100644 index 0000000..e917172 --- /dev/null +++ b/uncompressed/sendtask/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/sendtask/index.js b/uncompressed/sendtask/index.js new file mode 100644 index 0000000..eaccd05 --- /dev/null +++ b/uncompressed/sendtask/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// just pass through Franz +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlbmR0YXNrL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJzZW5kdGFzay9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGp1c3QgcGFzcyB0aHJvdWdoIEZyYW56XG5tb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/sendtask/package.json b/uncompressed/sendtask/package.json new file mode 100644 index 0000000..f9d2d29 --- /dev/null +++ b/uncompressed/sendtask/package.json @@ -0,0 +1,15 @@ +{ + "id": "sendtask", + "name": "Sendtask", + "version": "1.0.2", + "description": "Sendtask", + "main": "index.js", + "author": "Patrick Daniel", + "repository": "https://github.com/patrickdaniel/sendtask-franz", + "license": "MIT", + "config": { + "serviceURL": "https://app.sendtask.io/", + "hasNotificationSound": true, + "hasIndirectMessages": true + } +} diff --git a/uncompressed/sendtask/webview.js b/uncompressed/sendtask/webview.js new file mode 100644 index 0000000..d3151ce --- /dev/null +++ b/uncompressed/sendtask/webview.js @@ -0,0 +1,21 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = () => { + const inbox = document.querySelector('.topbar-notificationsButton.has-newNotifications'); + const passiveCount = inbox === null ? 0 : 1; + // set Franz badge + // updates => active unread count + // inbox => passive unread count + Franz.setBadge(0, passiveCount); + }; + + // inject franz.css stylesheet + Franz.injectCSS(path.join(__dirname, 'franz.css')); + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNlbmR0YXNrL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImluYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwicGFzc2l2ZUNvdW50Iiwic2V0QmFkZ2UiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsTUFBTTtBQUN4QixVQUFNQyxRQUFRQyxTQUFTQyxhQUFULENBQXVCLGtEQUF2QixDQUFkO0FBQ0EsVUFBTUMsZUFBZUgsVUFBVSxJQUFWLEdBQWlCLENBQWpCLEdBQXFCLENBQTFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0FGLFVBQU1NLFFBQU4sQ0FBZSxDQUFmLEVBQWtCRCxZQUFsQjtBQUNELEdBUEQ7O0FBU0E7QUFDQUwsUUFBTU8sU0FBTixDQUFnQlgsS0FBS1ksSUFBTCxDQUFVQyxTQUFWLEVBQXFCLFdBQXJCLENBQWhCOztBQUVBO0FBQ0FULFFBQU1VLElBQU4sQ0FBV1QsV0FBWDtBQUNELENBZkQiLCJmaWxlIjoic2VuZHRhc2svd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gKCkgPT4ge1xuICAgIGNvbnN0IGluYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnRvcGJhci1ub3RpZmljYXRpb25zQnV0dG9uLmhhcy1uZXdOb3RpZmljYXRpb25zJyk7XG4gICAgY29uc3QgcGFzc2l2ZUNvdW50ID0gaW5ib3ggPT09IG51bGwgPyAwIDogMTtcbiAgICAvLyBzZXQgRnJhbnogYmFkZ2VcbiAgICAvLyB1cGRhdGVzID0+IGFjdGl2ZSB1bnJlYWQgY291bnRcbiAgICAvLyBpbmJveCA9PiBwYXNzaXZlIHVucmVhZCBjb3VudFxuICAgIEZyYW56LnNldEJhZGdlKDAsIHBhc3NpdmVDb3VudCk7XG4gIH07XG5cbiAgLy8gaW5qZWN0IGZyYW56LmNzcyBzdHlsZXNoZWV0XG4gIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnZnJhbnouY3NzJykpO1xuXG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/skype/README.md b/uncompressed/skype/README.md new file mode 100644 index 0000000..8a0ae7e --- /dev/null +++ b/uncompressed/skype/README.md @@ -0,0 +1,5 @@ +# Skype for Franz +This is the official Franz recipe for Skype + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/skype/icon.svg b/uncompressed/skype/icon.svg new file mode 100644 index 0000000..228db7a --- /dev/null +++ b/uncompressed/skype/icon.svg @@ -0,0 +1,16 @@ + + + + skype + Created with Sketch. + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/skype/index.js b/uncompressed/skype/index.js new file mode 100644 index 0000000..dd10055 --- /dev/null +++ b/uncompressed/skype/index.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = Franz => class Messenger extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); + } + +}; \ No newline at end of file diff --git a/uncompressed/skype/package.json b/uncompressed/skype/package.json new file mode 100644 index 0000000..4b52996 --- /dev/null +++ b/uncompressed/skype/package.json @@ -0,0 +1,13 @@ +{ + "id": "skype", + "name": "Skype", + "version": "1.1.1", + "description": "Skype", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://preview.web.skype.com/", + "hasNotificationSound": true + } +} diff --git a/uncompressed/skype/service.css b/uncompressed/skype/service.css new file mode 100644 index 0000000..80ef7da --- /dev/null +++ b/uncompressed/skype/service.css @@ -0,0 +1,3 @@ +#footer { + display: none; +} diff --git a/uncompressed/skype/webview.js b/uncompressed/skype/webview.js new file mode 100644 index 0000000..798eccb --- /dev/null +++ b/uncompressed/skype/webview.js @@ -0,0 +1,25 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + const container = document.querySelector('[role="tablist"] > [title="Chats"] > div'); + + if (container) { + const children = container.children; + + if (children.length === 3) { + const elementContainer = children[children.length - 1]; + + if (elementContainer) { + const element = elementContainer.querySelector('[data-text-as-pseudo-element]'); + count = parseInt(element.dataset.textAsPseudoElement, 10); + } + } + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/slack/README.md b/uncompressed/slack/README.md new file mode 100644 index 0000000..ef51d64 --- /dev/null +++ b/uncompressed/slack/README.md @@ -0,0 +1,5 @@ +# Slack for Franz +This is the official Franz recipe for Slack + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/slack/icon.svg b/uncompressed/slack/icon.svg new file mode 100644 index 0000000..97b01f1 --- /dev/null +++ b/uncompressed/slack/icon.svg @@ -0,0 +1,26 @@ + + + + Service/Slack + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/slack/index.js b/uncompressed/slack/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/slack/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/slack/package.json b/uncompressed/slack/package.json new file mode 100644 index 0000000..8df473a --- /dev/null +++ b/uncompressed/slack/package.json @@ -0,0 +1,17 @@ +{ + "id": "slack", + "name": "Slack", + "version": "1.0.9", + "description": "Slack", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.slack.com", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasTeamId": true, + "urlInputSuffix": ".slack.com" + } +} diff --git a/uncompressed/slack/service.css b/uncompressed/slack/service.css new file mode 100644 index 0000000..1dd6209 --- /dev/null +++ b/uncompressed/slack/service.css @@ -0,0 +1,3 @@ +#banner { + display: none !important; +} \ No newline at end of file diff --git a/uncompressed/slack/webview.js b/uncompressed/slack/webview.js new file mode 100644 index 0000000..98c6136 --- /dev/null +++ b/uncompressed/slack/webview.js @@ -0,0 +1,55 @@ +"use strict"; + +var _electron = require("electron"); + +var _path = _interopRequireDefault(require("path")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const getTeamIcon = function getTeamIcon(count = 0) { + let countTeamIconCheck = count; + let bgUrl = null; + const teamMenu = document.querySelector('#team_menu'); + + if (teamMenu) { + teamMenu.click(); + const icon = document.querySelector('.team_icon'); + + if (icon) { + bgUrl = window.getComputedStyle(icon, null).getPropertyValue('background-image'); + bgUrl = /^url\((['"]?)(.*)\1\)$/.exec(bgUrl); + bgUrl = bgUrl ? bgUrl[2] : ''; + } + + setTimeout(() => { + document.querySelector('.team_menu').remove(); + document.querySelector('#msg_input .ql-editor').focus(); + }, 10); + } + + countTeamIconCheck += 1; + + if (bgUrl) { + _electron.ipcRenderer.sendToHost('avatar', bgUrl); + } else if (countTeamIconCheck <= 5) { + setTimeout(() => { + getTeamIcon(countTeamIconCheck + 1); + }, 2000); + } +}; + +const SELECTOR_CHANNELS_UNREAD = '.p-channel_sidebar__channel--unread:not(.p-channel_sidebar__channel--muted)'; + +module.exports = Franz => { + const getMessages = () => { + const directMessages = document.querySelectorAll(`${SELECTOR_CHANNELS_UNREAD} .p-channel_sidebar__badge`).length; + const allMessages = document.querySelectorAll(SELECTOR_CHANNELS_UNREAD).length - directMessages; + Franz.setBadge(directMessages, allMessages); + }; + + Franz.loop(getMessages); + setTimeout(() => { + getTeamIcon(); + }, 4000); + Franz.injectCSS(_path.default.join(__dirname, 'service.css')); +}; \ No newline at end of file diff --git a/uncompressed/steamchat/README.md b/uncompressed/steamchat/README.md new file mode 100644 index 0000000..274fd30 --- /dev/null +++ b/uncompressed/steamchat/README.md @@ -0,0 +1,5 @@ +# Steam Chat for Franz +An unofficial Franz recipe for Steam Chat + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/steamchat/icon.svg b/uncompressed/steamchat/icon.svg new file mode 100644 index 0000000..3c937fa --- /dev/null +++ b/uncompressed/steamchat/icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/uncompressed/steamchat/index.js b/uncompressed/steamchat/index.js new file mode 100644 index 0000000..877a4e1 --- /dev/null +++ b/uncompressed/steamchat/index.js @@ -0,0 +1,8 @@ +'use strict'; + +module.exports = Franz => class SteamChat extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); + } +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZWFtY2hhdC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJTdGVhbUNoYXQiLCJvdmVycmlkZVVzZXJBZ2VudCIsIndpbmRvdyIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsInJlcGxhY2UiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVMsTUFBTUMsU0FBTixTQUF3QkQsS0FBeEIsQ0FBOEI7QUFDdERFLHNCQUFvQjtBQUNsQixXQUFPQyxPQUFPQyxTQUFQLENBQWlCQyxTQUFqQixDQUEyQkMsT0FBM0IsQ0FBbUMsNkJBQW5DLEVBQWtFLEVBQWxFLENBQVA7QUFDRDtBQUhxRCxDQUF4RCIsImZpbGUiOiJzdGVhbWNoYXQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IGNsYXNzIFN0ZWFtQ2hhdCBleHRlbmRzIEZyYW56IHtcbiAgb3ZlcnJpZGVVc2VyQWdlbnQoKSB7XG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnJlcGxhY2UoLyhGcmFuenxFbGVjdHJvbikoW15cXHNdK1xccykvZywgJycpO1xuICB9XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/steamchat/package.json b/uncompressed/steamchat/package.json new file mode 100644 index 0000000..30ce277 --- /dev/null +++ b/uncompressed/steamchat/package.json @@ -0,0 +1,13 @@ +{ + "id": "steamchat", + "name": "SteamChat", + "version": "1.0.1", + "description": "Steam Chat", + "main": "index.js", + "author": "Kevin Oestmark ", + "license": "MIT", + "config": { + "serviceURL": "https://steamcommunity.com/chat", + "hasNotificationSound": true + } +} diff --git a/uncompressed/steamchat/webview.js b/uncompressed/steamchat/webview.js new file mode 100644 index 0000000..5ea0aed --- /dev/null +++ b/uncompressed/steamchat/webview.js @@ -0,0 +1,34 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + // get new msg count + let count = 0; + let counters = document.querySelectorAll('.unread_message_count:not([style="display: none;"])'); + counters = Array.prototype.slice.call(counters, Math.floor(counters.length / 2)); + [].filter.call(counters, countValues => { + if (countValues) { + const countValue = countValues.querySelector('.unread_message_count_value'); + if (countValue.innerHTML.length > 0) { + count += parseInt(countValue.innerHTML); + } + } + }); + Franz.setBadge(count); + + // force scroll to bottom of chat window + const chatBoxes = document.querySelectorAll('.chat_dialog'); + if (chatBoxes) { + const chatBox = [].filter.call(chatBoxes, chat => { + return chat.style.display !== 'none'; + }); + if (chatBox[0]) { + const chatWindow = chatBox[0].querySelector('.chat_dialog_scroll'); + chatWindow.scrollTop = chatWindow.scrollHeight; + } + } + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0ZWFtY2hhdC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiY291bnQiLCJjb3VudGVycyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsIkFycmF5IiwicHJvdG90eXBlIiwic2xpY2UiLCJjYWxsIiwiTWF0aCIsImZsb29yIiwibGVuZ3RoIiwiZmlsdGVyIiwiY291bnRWYWx1ZXMiLCJjb3VudFZhbHVlIiwicXVlcnlTZWxlY3RvciIsImlubmVySFRNTCIsInBhcnNlSW50Iiwic2V0QmFkZ2UiLCJjaGF0Qm94ZXMiLCJjaGF0Qm94IiwiY2hhdCIsInN0eWxlIiwiZGlzcGxheSIsImNoYXRXaW5kb3ciLCJzY3JvbGxUb3AiLCJzY3JvbGxIZWlnaHQiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUVBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDO0FBQ0EsUUFBSUMsUUFBUSxDQUFaO0FBQ0EsUUFBSUMsV0FBV0MsU0FBU0MsZ0JBQVQsQ0FBMEIscURBQTFCLENBQWY7QUFDQUYsZUFBV0csTUFBTUMsU0FBTixDQUFnQkMsS0FBaEIsQ0FBc0JDLElBQXRCLENBQTJCTixRQUEzQixFQUFxQ08sS0FBS0MsS0FBTCxDQUFXUixTQUFTUyxNQUFULEdBQWtCLENBQTdCLENBQXJDLENBQVg7QUFDQSxPQUFHQyxNQUFILENBQVVKLElBQVYsQ0FBZU4sUUFBZixFQUEwQlcsV0FBRCxJQUFpQjtBQUN4QyxVQUFJQSxXQUFKLEVBQWlCO0FBQ2YsY0FBTUMsYUFBYUQsWUFBWUUsYUFBWixDQUEwQiw2QkFBMUIsQ0FBbkI7QUFDQSxZQUFJRCxXQUFXRSxTQUFYLENBQXFCTCxNQUFyQixHQUE4QixDQUFsQyxFQUFxQztBQUNuQ1YsbUJBQVNnQixTQUFTSCxXQUFXRSxTQUFwQixDQUFUO0FBQ0Q7QUFDRjtBQUNGLEtBUEQ7QUFRQWpCLFVBQU1tQixRQUFOLENBQWVqQixLQUFmOztBQUVBO0FBQ0EsVUFBTWtCLFlBQVloQixTQUFTQyxnQkFBVCxDQUEwQixjQUExQixDQUFsQjtBQUNBLFFBQUllLFNBQUosRUFBZTtBQUNiLFlBQU1DLFVBQVUsR0FBR1IsTUFBSCxDQUFVSixJQUFWLENBQWVXLFNBQWYsRUFBMkJFLElBQUQsSUFBVTtBQUNsRCxlQUFPQSxLQUFLQyxLQUFMLENBQVdDLE9BQVgsS0FBdUIsTUFBOUI7QUFDRCxPQUZlLENBQWhCO0FBR0EsVUFBSUgsUUFBUSxDQUFSLENBQUosRUFBZ0I7QUFDZCxjQUFNSSxhQUFhSixRQUFRLENBQVIsRUFBV0wsYUFBWCxDQUF5QixxQkFBekIsQ0FBbkI7QUFDQVMsbUJBQVdDLFNBQVgsR0FBdUJELFdBQVdFLFlBQWxDO0FBQ0Q7QUFDRjtBQUNGLEdBMUJEOztBQTRCQTNCLFFBQU00QixJQUFOLENBQVczQixXQUFYO0FBQ0QsQ0E5QkQiLCJmaWxlIjoic3RlYW1jaGF0L3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICAvLyBnZXQgbmV3IG1zZyBjb3VudFxuICAgIGxldCBjb3VudCA9IDA7XG4gICAgbGV0IGNvdW50ZXJzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnVucmVhZF9tZXNzYWdlX2NvdW50Om5vdChbc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiXSknKTtcbiAgICBjb3VudGVycyA9IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGNvdW50ZXJzLCBNYXRoLmZsb29yKGNvdW50ZXJzLmxlbmd0aCAvIDIpKTtcbiAgICBbXS5maWx0ZXIuY2FsbChjb3VudGVycywgKGNvdW50VmFsdWVzKSA9PiB7XG4gICAgICBpZiAoY291bnRWYWx1ZXMpIHtcbiAgICAgICAgY29uc3QgY291bnRWYWx1ZSA9IGNvdW50VmFsdWVzLnF1ZXJ5U2VsZWN0b3IoJy51bnJlYWRfbWVzc2FnZV9jb3VudF92YWx1ZScpO1xuICAgICAgICBpZiAoY291bnRWYWx1ZS5pbm5lckhUTUwubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGNvdW50ICs9IHBhcnNlSW50KGNvdW50VmFsdWUuaW5uZXJIVE1MKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcblxuICAgIC8vIGZvcmNlIHNjcm9sbCB0byBib3R0b20gb2YgY2hhdCB3aW5kb3dcbiAgICBjb25zdCBjaGF0Qm94ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2hhdF9kaWFsb2cnKTtcbiAgICBpZiAoY2hhdEJveGVzKSB7XG4gICAgICBjb25zdCBjaGF0Qm94ID0gW10uZmlsdGVyLmNhbGwoY2hhdEJveGVzLCAoY2hhdCkgPT4ge1xuICAgICAgICByZXR1cm4gY2hhdC5zdHlsZS5kaXNwbGF5ICE9PSAnbm9uZSc7XG4gICAgICB9KTtcbiAgICAgIGlmIChjaGF0Qm94WzBdKSB7XG4gICAgICAgIGNvbnN0IGNoYXRXaW5kb3cgPSBjaGF0Qm94WzBdLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0X2RpYWxvZ19zY3JvbGwnKTtcbiAgICAgICAgY2hhdFdpbmRvdy5zY3JvbGxUb3AgPSBjaGF0V2luZG93LnNjcm9sbEhlaWdodDtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/stride/LICENSE b/uncompressed/stride/LICENSE new file mode 100644 index 0000000..95dbff7 --- /dev/null +++ b/uncompressed/stride/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Tobi042 + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/stride/README.md b/uncompressed/stride/README.md new file mode 100644 index 0000000..e01bcc5 --- /dev/null +++ b/uncompressed/stride/README.md @@ -0,0 +1,5 @@ +# Stride for Franz +This is the unofficial Franz recipe for Atlassian Stride + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/stride/icon.svg b/uncompressed/stride/icon.svg new file mode 100644 index 0000000..e2c9a27 --- /dev/null +++ b/uncompressed/stride/icon.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/stride/index.js b/uncompressed/stride/index.js new file mode 100644 index 0000000..1111509 --- /dev/null +++ b/uncompressed/stride/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmlkZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6InN0cmlkZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/stride/package.json b/uncompressed/stride/package.json new file mode 100644 index 0000000..527bdd7 --- /dev/null +++ b/uncompressed/stride/package.json @@ -0,0 +1,16 @@ +{ + "id": "stride", + "name": "Stride", + "version": "1.1.0", + "description": "Atlassian Stride", + "main": "index.js", + "author": "Tobias Theobald ", + "license": "MIT", + "config": { + "serviceURL": "https://app.stride.com", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasTeamId": false + } +} diff --git a/uncompressed/stride/service.css b/uncompressed/stride/service.css new file mode 100644 index 0000000..a2d0935 --- /dev/null +++ b/uncompressed/stride/service.css @@ -0,0 +1,3 @@ +html { + background-color: #FFF !important; +} \ No newline at end of file diff --git a/uncompressed/stride/webview.js b/uncompressed/stride/webview.js new file mode 100644 index 0000000..c75b3ad --- /dev/null +++ b/uncompressed/stride/webview.js @@ -0,0 +1,36 @@ +'use strict'; + +var _path = require('path'); + +var _path2 = _interopRequireDefault(_path); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Franz => { + const getMessages = function getMessages() { + // get all message badges + const allBadges = document.querySelectorAll('.activity-indicator'); + let directCount = 0, + indirectCount = 0; + + // get unread direct messages by tring to read the badge values + allBadges.forEach(item => { + if (item.hasAttribute('data-count')) { + // Count for DMs should be in the data-count attribute + directCount += Math.max(1, +item.getAttribute('data-count')); + } else { + // this will be the case for indirect messages + indirectCount++; + } + }); + + // set Franz badge + Franz.setBadge(directCount, indirectCount); + }; + // check for new messages every second and update Franz badge + Franz.loop(getMessages); + + // inject franz.css stylesheet + Franz.injectCSS(_path2.default.join(__dirname, 'service.css')); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0cmlkZS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiYWxsQmFkZ2VzIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZGlyZWN0Q291bnQiLCJpbmRpcmVjdENvdW50IiwiZm9yRWFjaCIsIml0ZW0iLCJoYXNBdHRyaWJ1dGUiLCJNYXRoIiwibWF4IiwiZ2V0QXR0cmlidXRlIiwic2V0QmFkZ2UiLCJsb29wIiwiaW5qZWN0Q1NTIiwiam9pbiIsIl9fZGlybmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7Ozs7O0FBQ0FBLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDM0M7QUFDRSxVQUFNQyxZQUFZQyxTQUFTQyxnQkFBVCxDQUEwQixxQkFBMUIsQ0FBbEI7QUFDQSxRQUFJQyxjQUFjLENBQWxCO0FBQUEsUUFDRUMsZ0JBQWdCLENBRGxCOztBQUdGO0FBQ0VKLGNBQVVLLE9BQVYsQ0FBbUJDLElBQUQsSUFBVTtBQUMxQixVQUFJQSxLQUFLQyxZQUFMLENBQWtCLFlBQWxCLENBQUosRUFBcUM7QUFDdkM7QUFDSUosdUJBQWVLLEtBQUtDLEdBQUwsQ0FBUyxDQUFULEVBQVksQ0FBRUgsS0FBS0ksWUFBTCxDQUFrQixZQUFsQixDQUFkLENBQWY7QUFDRCxPQUhELE1BR087QUFDVDtBQUNJTjtBQUNEO0FBQ0YsS0FSRDs7QUFVRjtBQUNFTixVQUFNYSxRQUFOLENBQWVSLFdBQWYsRUFBNEJDLGFBQTVCO0FBQ0QsR0FuQkQ7QUFvQkQ7QUFDQ04sUUFBTWMsSUFBTixDQUFXYixXQUFYOztBQUVEO0FBQ0NELFFBQU1lLFNBQU4sQ0FBZ0IsZUFBS0MsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCO0FBQ0QsQ0ExQkQiLCJmaWxlIjoic3RyaWRlL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG5cdFx0Ly8gZ2V0IGFsbCBtZXNzYWdlIGJhZGdlc1xuICAgIGNvbnN0IGFsbEJhZGdlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5hY3Rpdml0eS1pbmRpY2F0b3InKTtcbiAgICBsZXQgZGlyZWN0Q291bnQgPSAwLFxuICAgICAgaW5kaXJlY3RDb3VudCA9IDA7XG5cblx0XHQvLyBnZXQgdW5yZWFkIGRpcmVjdCBtZXNzYWdlcyBieSB0cmluZyB0byByZWFkIHRoZSBiYWRnZSB2YWx1ZXNcbiAgICBhbGxCYWRnZXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaWYgKGl0ZW0uaGFzQXR0cmlidXRlKCdkYXRhLWNvdW50JykpIHtcblx0XHRcdFx0Ly8gQ291bnQgZm9yIERNcyBzaG91bGQgYmUgaW4gdGhlIGRhdGEtY291bnQgYXR0cmlidXRlXG4gICAgICAgIGRpcmVjdENvdW50ICs9IE1hdGgubWF4KDEsICsoaXRlbS5nZXRBdHRyaWJ1dGUoJ2RhdGEtY291bnQnKSkpO1xuICAgICAgfSBlbHNlIHtcblx0XHRcdFx0Ly8gdGhpcyB3aWxsIGJlIHRoZSBjYXNlIGZvciBpbmRpcmVjdCBtZXNzYWdlc1xuICAgICAgICBpbmRpcmVjdENvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG5cblx0XHQvLyBzZXQgRnJhbnogYmFkZ2VcbiAgICBGcmFuei5zZXRCYWRnZShkaXJlY3RDb3VudCwgaW5kaXJlY3RDb3VudCk7XG4gIH07XG5cdC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG5cblx0Ly8gaW5qZWN0IGZyYW56LmNzcyBzdHlsZXNoZWV0XG4gIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VydmljZS5jc3MnKSk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/tawk/icon.svg b/uncompressed/tawk/icon.svg new file mode 100644 index 0000000..8077152 --- /dev/null +++ b/uncompressed/tawk/icon.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/tawk/index.js b/uncompressed/tawk/index.js new file mode 100644 index 0000000..349649f --- /dev/null +++ b/uncompressed/tawk/index.js @@ -0,0 +1,6 @@ +"use strict"; + +// just pass through Franz + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImRpc2NvcmQvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBOztBQUNBLE9BQU8sQUFBUCxVQUFpQixTQUFTLEFBQTFCIiwiZmlsZSI6ImRpc2NvcmQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBqdXN0IHBhc3MgdGhyb3VnaCBGcmFuelxubW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/tawk/package.json b/uncompressed/tawk/package.json new file mode 100644 index 0000000..bc51896 --- /dev/null +++ b/uncompressed/tawk/package.json @@ -0,0 +1,23 @@ +{ + "id": "tawk", + "name": "Tawk.to", + "version": "1.0.0", + "description": "Tawk.to", + "main": "index.js", + "author": "Brian Gilbert ", + "license": "MIT", + "config": { + "serviceURL": "https://dashboard.tawk.to/", + "message": "", + "popup": [], + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": false, + "hasTeamID": false, + "hasPredefinedUrl": true, + "hasCustomUrl": false, + "webviewOptions": { + "disablewebsecurity": "" + } + } +} diff --git a/uncompressed/tawk/service.css b/uncompressed/tawk/service.css new file mode 100644 index 0000000..a16a615 --- /dev/null +++ b/uncompressed/tawk/service.css @@ -0,0 +1,3 @@ +.notice { + display: none; +} diff --git a/uncompressed/tawk/webview.js b/uncompressed/tawk/webview.js new file mode 100644 index 0000000..007cf82 --- /dev/null +++ b/uncompressed/tawk/webview.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = (Franz, options) => {}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRhd2svd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJvcHRpb25zIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCLENBQUNDLEtBQUQsRUFBUUMsT0FBUixLQUFvQixDQUFFLENBQXZDIiwiZmlsZSI6InRhd2svd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56LCBvcHRpb25zKSA9PiB7fVxuIl19 \ No newline at end of file diff --git a/uncompressed/teamwork-projects/LICENSE b/uncompressed/teamwork-projects/LICENSE new file mode 100644 index 0000000..e3334c0 --- /dev/null +++ b/uncompressed/teamwork-projects/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Retzudo + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/teamwork-projects/README.md b/uncompressed/teamwork-projects/README.md new file mode 100644 index 0000000..d6d4940 --- /dev/null +++ b/uncompressed/teamwork-projects/README.md @@ -0,0 +1,30 @@ +# Teamwork Projects +Recipe for [Teamwork Projects](https://www.teamwork.com) integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `teamwork-projects`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `teamwork-projects` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) + +## Authors + +### Original Author of V4 plugin + +- [Retzudo](https://github.com/Retzudo/) + +### Ported to V5 recipe by + +- [Koma](https://github.com/koma-private/) diff --git a/uncompressed/teamwork-projects/icon.svg b/uncompressed/teamwork-projects/icon.svg new file mode 100644 index 0000000..1baa7c0 --- /dev/null +++ b/uncompressed/teamwork-projects/icon.svg @@ -0,0 +1,60 @@ + + + +image/svg+xml diff --git a/uncompressed/teamwork-projects/index.js b/uncompressed/teamwork-projects/index.js new file mode 100644 index 0000000..4552a3b --- /dev/null +++ b/uncompressed/teamwork-projects/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlYW13b3JrLXByb2plY3RzL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidGVhbXdvcmstcHJvamVjdHMvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/teamwork-projects/package.json b/uncompressed/teamwork-projects/package.json new file mode 100644 index 0000000..b133073 --- /dev/null +++ b/uncompressed/teamwork-projects/package.json @@ -0,0 +1,17 @@ +{ + "id": "teamwork-projects", + "name": "Teamwork Projects", + "version": "0.1.0", + "description": "Project management SaaS", + "main": "index.js", + "author": "Retzudo , Ported by Koma ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.teamwork.com/", + "hasNotificationSound": true, + "urlInputSuffix": true, + "hasIndirectMessages": false, + "hasTeamId": true, + "urlInputSuffix": ".teamwork.com" + } +} diff --git a/uncompressed/teamwork-projects/webview.js b/uncompressed/teamwork-projects/webview.js new file mode 100644 index 0000000..c3f7d77 --- /dev/null +++ b/uncompressed/teamwork-projects/webview.js @@ -0,0 +1,18 @@ +'use strict'; + +module.exports = (Franz, options) => { + function getMessages() { + let count = 0; + let indirectCount = 0; + let badge = document.getElementById('numNotifs2'); + + if (badge && badge.innerText) { + indirectCount = parseInt(badge.innerText); + } + + Franz.setBadge(count, indirectCount); + } + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlYW13b3JrLXByb2plY3RzL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Iiwib3B0aW9ucyIsImdldE1lc3NhZ2VzIiwiY291bnQiLCJpbmRpcmVjdENvdW50IiwiYmFkZ2UiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiaW5uZXJUZXh0IiwicGFyc2VJbnQiLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUIsQ0FBQ0MsS0FBRCxFQUFRQyxPQUFSLEtBQW9CO0FBQ25DLFdBQVNDLFdBQVQsR0FBdUI7QUFDckIsUUFBSUMsUUFBUSxDQUFaO0FBQ0EsUUFBSUMsZ0JBQWdCLENBQXBCO0FBQ0EsUUFBSUMsUUFBUUMsU0FBU0MsY0FBVCxDQUF3QixZQUF4QixDQUFaOztBQUVBLFFBQUlGLFNBQVNBLE1BQU1HLFNBQW5CLEVBQThCO0FBQzFCSixzQkFBZ0JLLFNBQVNKLE1BQU1HLFNBQWYsQ0FBaEI7QUFDSDs7QUFFRFIsVUFBTVUsUUFBTixDQUFlUCxLQUFmLEVBQXNCQyxhQUF0QjtBQUNEOztBQUVESixRQUFNVyxJQUFOLENBQVdULFdBQVg7QUFDRCxDQWREIiwiZmlsZSI6InRlYW13b3JrLXByb2plY3RzL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChGcmFueiwgb3B0aW9ucykgPT4ge1xuICBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBsZXQgY291bnQgPSAwO1xuICAgIGxldCBpbmRpcmVjdENvdW50ID0gMDtcbiAgICBsZXQgYmFkZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbnVtTm90aWZzMicpO1xuXG4gICAgaWYgKGJhZGdlICYmIGJhZGdlLmlubmVyVGV4dCkge1xuICAgICAgICBpbmRpcmVjdENvdW50ID0gcGFyc2VJbnQoYmFkZ2UuaW5uZXJUZXh0KTtcbiAgICB9XG5cbiAgICBGcmFuei5zZXRCYWRnZShjb3VudCwgaW5kaXJlY3RDb3VudCk7XG4gIH1cblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/uncompressed/telegram/README.md b/uncompressed/telegram/README.md new file mode 100644 index 0000000..7a192ab --- /dev/null +++ b/uncompressed/telegram/README.md @@ -0,0 +1,5 @@ +# Telegram for Franz +This is the official Franz recipe for Telegram + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/telegram/icon.svg b/uncompressed/telegram/icon.svg new file mode 100644 index 0000000..5cfd9c5 --- /dev/null +++ b/uncompressed/telegram/icon.svg @@ -0,0 +1,27 @@ + + + + telegram + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/telegram/index.js b/uncompressed/telegram/index.js new file mode 100644 index 0000000..6343150 --- /dev/null +++ b/uncompressed/telegram/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlbGVncmFtL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidGVsZWdyYW0vaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/telegram/package.json b/uncompressed/telegram/package.json new file mode 100644 index 0000000..14d24be --- /dev/null +++ b/uncompressed/telegram/package.json @@ -0,0 +1,14 @@ +{ + "id": "telegram", + "name": "Telegram", + "version": "1.0.5", + "description": "Telegram", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://web.telegram.org", + "hasDirectMessages": true, + "hasNotificationSound": true + } +} diff --git a/uncompressed/telegram/service.css b/uncompressed/telegram/service.css new file mode 100644 index 0000000..69291a1 --- /dev/null +++ b/uncompressed/telegram/service.css @@ -0,0 +1,151 @@ +.tg_head_split { + max-width: 100% !important; +} + +.im_page_wrap { + max-width: 100% !important; +} + +.im_dialogs_col_wrap { + width: 320px !important; +} + +.im_history_col_wrap { + width: calc(100% - 320px) !important; +} + +.im_message_wrap { + max-width: inherit !important; +} + +.im_message_body { + max-width: 580px !important; +} + +body.darkTheme, +.darkTheme .modal-content { + color: #bbb !important; + background: #252525 !important; +} +.darkTheme a.tg_checkbox { + color: #bbb !important; +} +.darkTheme .im_page_wrap { + /*background color of contentwrapper under header*/ + + background-color: #303030 !important; + border-left: 1px solid #4d4d4d !important; + border-right: 1px solid #4d4d4d !important; + border-bottom: 1px solid #4d4d4d !important; + box-shadow: none; +} +.darkTheme .im_message_body, +.darkTheme .im_attach, +.darkTheme .im_media_attach, +.darkTheme .im_record, +.darkTheme .im_message_document_thumbed { + background: inherit !important; +} +.darkTheme .im_dialog_peer { + /*peer nickname unselected*/ + + color: #bbb !important; +} +.darkTheme .contacts_modal_members_list a.contacts_modal_contact { + /*nicknames in contactlist via hamburger menu*/ + + color: #bbb; +} +.darkTheme .active a.im_dialog { + /*selected peer */ + + background-color: #4d4d4d !important; +} +.darkTheme .tg_head_split, +.darkTheme .md_modal_head { + /*page header block*/ + + background-color: #4d4d4d !important; +} +.darkTheme .dropdown.open .tg_head_btn, +.darkTheme .tg_head_btn:hover { + background: #4d4d4d !important; +} +.darkTheme .form-control { + /*input field*/ + + background-color: #0e0e0e !important; + color: #bbb !important; +} +.darkTheme .composer_rich_textarea { + background: #303030 !important; + border-color: #bbb !important; +} +.darkTheme .im_dialogs_col_wrap { + /*contactlist right border*/ + + border-right: 2px solid #4d4d4d; +} +.darkTheme .im_dialogs_col .nano > .nano-pane > .nano-slider { + /*scrollbarbutton when hover*/ + + background-color: #4d4d4d !important; +} +.darkTheme .tg_head_split { + background-color: #151515; +} +.darkTheme .im_submit { + color: #4d4d4d; +} +.darkTheme .im_message_mymention { + background: #1d1d1d; +} +.darkTheme .im_message_focus .im_message_outer_wrap { + background-color: #4d4d4d; +} +.darkTheme .im_message_selected .im_message_outer_wrap { + background: #4d4d4d; +} +.darkTheme a:hover { + background-color: #282828 !important; +} +.darkTheme .im_message_unread_split { + background: #4d4d4d; +} +@keyframes im_message_focus_fade { + 0% { + background-color: #2d2d2d; + } +} +.darkTheme .btn-primary { + background-color: #4d4d4d; +} +.darkTheme .im_history_select_active .im_message_outer_wrap:hover { + background: #4d4d4d; +} +.darkTheme .im_dialog_chat_from_wrap, +.darkTheme .im_dialog_message_service { + color: #6ac; +} +.darkTheme .composer_rich_textarea, +.darkTheme .composer_textarea { + box-shadow: 0px 3px 1px #ddd; +} +.darkTheme .composer_rich_textarea:focus { + box-shadow: 0px 3px 1px #ddd !important; +} +.darkTheme .tg_head_logo_dropdown .dropdown-menu > li > a { + color: #ddd; +} +.darkTheme .btn-primary.disabled, +.darkTheme .btn-primary[disabled] { + background: #4d4d4d none repeat scroll 0% 0%; +} +/*emoji*/ + +.darkTheme .composer_emoji_tooltip, +.darkTheme .icon-tooltip-tail, +.darkTheme .dropdown-menu { + background-color: #4d4d4d !important; + border-color: #5d5d5d; +} diff --git a/uncompressed/telegram/webview.js b/uncompressed/telegram/webview.js new file mode 100644 index 0000000..6610c7c --- /dev/null +++ b/uncompressed/telegram/webview.js @@ -0,0 +1,26 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + const searchElement = document.querySelector('.im_dialogs_search_field'); + if (searchElement && searchElement.value === '') { + const elements = document.querySelectorAll('.im_dialog_badge:not(.ng-hide):not(.im_dialog_badge_muted)'); + if (elements) { + for (let i = 0; i < elements.length; i += 1) { + if (elements[i].innerHTML !== 0) { + count += 1; + } + } + } + } + + Franz.setBadge(count); + }; + + Franz.injectCSS(path.join(__dirname, 'service.css')); + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRlbGVncmFtL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50Iiwic2VhcmNoRWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInZhbHVlIiwiZWxlbWVudHMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiaSIsImxlbmd0aCIsImlubmVySFRNTCIsInNldEJhZGdlIiwiaW5qZWN0Q1NTIiwiam9pbiIsIl9fZGlybmFtZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsT0FBT0MsUUFBUSxNQUFSLENBQWI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBa0JDLEtBQUQsSUFBVztBQUMxQixRQUFNQyxjQUFjLFNBQVNBLFdBQVQsR0FBdUI7QUFDekMsUUFBSUMsUUFBUSxDQUFaO0FBQ0EsVUFBTUMsZ0JBQWdCQyxTQUFTQyxhQUFULENBQXVCLDBCQUF2QixDQUF0QjtBQUNBLFFBQUlGLGlCQUFpQkEsY0FBY0csS0FBZCxLQUF3QixFQUE3QyxFQUFpRDtBQUMvQyxZQUFNQyxXQUFXSCxTQUFTSSxnQkFBVCxDQUEwQiw0REFBMUIsQ0FBakI7QUFDQSxVQUFJRCxRQUFKLEVBQWM7QUFDWixhQUFLLElBQUlFLElBQUksQ0FBYixFQUFnQkEsSUFBSUYsU0FBU0csTUFBN0IsRUFBcUNELEtBQUssQ0FBMUMsRUFBNkM7QUFDM0MsY0FBSUYsU0FBU0UsQ0FBVCxFQUFZRSxTQUFaLEtBQTBCLENBQTlCLEVBQWlDO0FBQy9CVCxxQkFBUyxDQUFUO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBRURGLFVBQU1ZLFFBQU4sQ0FBZVYsS0FBZjtBQUNELEdBZkQ7O0FBaUJBRixRQUFNYSxTQUFOLENBQWdCakIsS0FBS2tCLElBQUwsQ0FBVUMsU0FBVixFQUFxQixhQUFyQixDQUFoQjtBQUNBZixRQUFNZ0IsSUFBTixDQUFXZixXQUFYO0FBQ0QsQ0FwQkQiLCJmaWxlIjoidGVsZWdyYW0vd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBjb25zdCBzZWFyY2hFbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmltX2RpYWxvZ3Nfc2VhcmNoX2ZpZWxkJyk7XG4gICAgaWYgKHNlYXJjaEVsZW1lbnQgJiYgc2VhcmNoRWxlbWVudC52YWx1ZSA9PT0gJycpIHtcbiAgICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmltX2RpYWxvZ19iYWRnZTpub3QoLm5nLWhpZGUpOm5vdCguaW1fZGlhbG9nX2JhZGdlX211dGVkKScpO1xuICAgICAgaWYgKGVsZW1lbnRzKSB7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudHMubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICBpZiAoZWxlbWVudHNbaV0uaW5uZXJIVE1MICE9PSAwKSB7XG4gICAgICAgICAgICBjb3VudCArPSAxO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcbiAgfTtcblxuICBGcmFuei5pbmplY3RDU1MocGF0aC5qb2luKF9fZGlybmFtZSwgJ3NlcnZpY2UuY3NzJykpO1xuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/thelounge/LICENSE b/uncompressed/thelounge/LICENSE new file mode 100644 index 0000000..25b2950 --- /dev/null +++ b/uncompressed/thelounge/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Jonathan Juursema + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/thelounge/README.md b/uncompressed/thelounge/README.md new file mode 100644 index 0000000..37f97f2 --- /dev/null +++ b/uncompressed/thelounge/README.md @@ -0,0 +1,2 @@ +# franz-thelounge +A recipe to add "The Lounge - Self-hosted web IRC client" to Franz. diff --git a/uncompressed/thelounge/icon.svg b/uncompressed/thelounge/icon.svg new file mode 100644 index 0000000..dd0d301 --- /dev/null +++ b/uncompressed/thelounge/icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/uncompressed/thelounge/index.js b/uncompressed/thelounge/index.js new file mode 100644 index 0000000..ef95987 --- /dev/null +++ b/uncompressed/thelounge/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZWxvdW5nZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6InRoZWxvdW5nZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7Il19 \ No newline at end of file diff --git a/uncompressed/thelounge/package.json b/uncompressed/thelounge/package.json new file mode 100644 index 0000000..c5f8fc1 --- /dev/null +++ b/uncompressed/thelounge/package.json @@ -0,0 +1,14 @@ +{ + "id": "thelounge", + "name": "The Lounge", + "version": "1.0.0", + "description": "The Lounge - Self-hosted web IRC client", + "main": "index.js", + "author": "Jonathan Juursema ", + "license": "MIT", + "config": { + "hasCustomUrl": true, + "hasNotificationSound": true, + "hasIndirectMessages": true + } +} diff --git a/uncompressed/thelounge/webview.js b/uncompressed/thelounge/webview.js new file mode 100644 index 0000000..933146c --- /dev/null +++ b/uncompressed/thelounge/webview.js @@ -0,0 +1,16 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let indirectElements = document.querySelectorAll('.badge:not(.highlight)'); + let direct = document.querySelectorAll('.badge.highlight').length; + let indirect = 0; + for (let i = 0; i < indirectElements.length; i += 1) { + if (indirectElements[i].innerHTML.length > 0) indirect++; + } + console.log(direct, indirect); + Franz.setBadge(direct, indirect); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRoZWxvdW5nZS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiaW5kaXJlY3RFbGVtZW50cyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImRpcmVjdCIsImxlbmd0aCIsImluZGlyZWN0IiwiaSIsImlubmVySFRNTCIsImNvbnNvbGUiLCJsb2ciLCJzZXRCYWRnZSIsImxvb3AiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVM7QUFDekIsT0FBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQzFDLE1BQUlDLG1CQUFtQkMsU0FBU0MsZ0JBQVQsQ0FBMEIsd0JBQTFCLENBQXZCO0FBQ0EsTUFBSUMsU0FBU0YsU0FBU0MsZ0JBQVQsQ0FBMEIsa0JBQTFCLEVBQThDRSxNQUEzRDtBQUNBLE1BQUlDLFdBQVcsQ0FBZjtBQUNBLE9BQUssSUFBSUMsSUFBSSxDQUFiLEVBQWdCQSxJQUFJTixpQkFBaUJJLE1BQXJDLEVBQTZDRSxLQUFLLENBQWxELEVBQXFEO0FBQ3BELE9BQUlOLGlCQUFpQk0sQ0FBakIsRUFBb0JDLFNBQXBCLENBQThCSCxNQUE5QixHQUF1QyxDQUEzQyxFQUE4Q0M7QUFDOUM7QUFDREcsVUFBUUMsR0FBUixDQUFZTixNQUFaLEVBQW9CRSxRQUFwQjtBQUNBUCxRQUFNWSxRQUFOLENBQWVQLE1BQWYsRUFBdUJFLFFBQXZCO0FBQ0EsRUFURDtBQVVBUCxPQUFNYSxJQUFOLENBQVdaLFdBQVg7QUFDQSxDQVpEIiwiZmlsZSI6InRoZWxvdW5nZS93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiB7XG5cdGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG5cdFx0bGV0IGluZGlyZWN0RWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuYmFkZ2U6bm90KC5oaWdobGlnaHQpJyk7XG5cdFx0bGV0IGRpcmVjdCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5iYWRnZS5oaWdobGlnaHQnKS5sZW5ndGg7XG5cdFx0bGV0IGluZGlyZWN0ID0gMDtcblx0XHRmb3IgKGxldCBpID0gMDsgaSA8IGluZGlyZWN0RWxlbWVudHMubGVuZ3RoOyBpICs9IDEpIHtcblx0XHRcdGlmIChpbmRpcmVjdEVsZW1lbnRzW2ldLmlubmVySFRNTC5sZW5ndGggPiAwKSBpbmRpcmVjdCsrO1xuXHRcdH1cblx0XHRjb25zb2xlLmxvZyhkaXJlY3QsIGluZGlyZWN0KTtcblx0XHRGcmFuei5zZXRCYWRnZShkaXJlY3QsIGluZGlyZWN0KTtcblx0fTtcblx0RnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/threema/README.md b/uncompressed/threema/README.md new file mode 100644 index 0000000..5bee109 --- /dev/null +++ b/uncompressed/threema/README.md @@ -0,0 +1,5 @@ +# Threema for Franz +This is a non-official Franz recipe for Threema + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/threema/icon.svg b/uncompressed/threema/icon.svg new file mode 100644 index 0000000..20720ba --- /dev/null +++ b/uncompressed/threema/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/threema/index.js b/uncompressed/threema/index.js new file mode 100644 index 0000000..97863b3 --- /dev/null +++ b/uncompressed/threema/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRocmVlbWEvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidGhyZWVtYS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5tb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/threema/package.json b/uncompressed/threema/package.json new file mode 100644 index 0000000..ec98651 --- /dev/null +++ b/uncompressed/threema/package.json @@ -0,0 +1,14 @@ +{ + "id": "threema", + "name": "Threema", + "version": "1.0.0", + "description": "Threema", + "main": "index.js", + "author": "Anna Damm ", + "license": "MIT", + "repository": "https://github.com/Arany/franz-recipe-threema", + "config": { + "serviceURL": "https://web.threema.ch", + "hasNotificationSound": true + } +} diff --git a/uncompressed/threema/service.css b/uncompressed/threema/service.css new file mode 100644 index 0000000..6b15306 --- /dev/null +++ b/uncompressed/threema/service.css @@ -0,0 +1,17 @@ +header, #status-bar { + display: none; +} + +div#main-wrapper { + position: absolute; + height: 100%; + width: 100%; + margin: 0; + max-width: 100% !important; +} +div#main { + position: absolute; + height: 100%; + width: 100%; + border-radius: 0; +} \ No newline at end of file diff --git a/uncompressed/threema/webview.js b/uncompressed/threema/webview.js new file mode 100644 index 0000000..45bffee --- /dev/null +++ b/uncompressed/threema/webview.js @@ -0,0 +1,28 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = function getMessages() { + const elements = document.querySelectorAll('.badge.unread-count:not(.ng-hide)'); + let count = 0; + + for (let i = 0; i < elements.length; i += 1) { + try { + count += parseInt(elements[i].innerHTML.trim(), 10); + } catch (e) { + console.error(e); + } + } + + // set Franz badge + Franz.setBadge(count); + }; + + // inject franz.css stylesheet + Franz.injectCSS(path.join(__dirname, 'service.css')); + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRocmVlbWEvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJwYXRoIiwicmVxdWlyZSIsIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiZWxlbWVudHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJjb3VudCIsImkiLCJsZW5ndGgiLCJwYXJzZUludCIsImlubmVySFRNTCIsInRyaW0iLCJlIiwiY29uc29sZSIsImVycm9yIiwic2V0QmFkZ2UiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsTUFBTUEsT0FBT0MsUUFBUSxNQUFSLENBQWI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVM7QUFDdEIsVUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3ZDLGNBQU1DLFdBQVdDLFNBQVNDLGdCQUFULENBQTBCLG1DQUExQixDQUFqQjtBQUNBLFlBQUlDLFFBQVEsQ0FBWjs7QUFFQSxhQUFLLElBQUlDLElBQUksQ0FBYixFQUFnQkEsSUFBSUosU0FBU0ssTUFBN0IsRUFBcUNELEtBQUssQ0FBMUMsRUFBNkM7QUFDekMsZ0JBQUk7QUFDQUQseUJBQVNHLFNBQVNOLFNBQVNJLENBQVQsRUFBWUcsU0FBWixDQUFzQkMsSUFBdEIsRUFBVCxFQUF1QyxFQUF2QyxDQUFUO0FBQ0gsYUFGRCxDQUVFLE9BQU9DLENBQVAsRUFBVTtBQUNSQyx3QkFBUUMsS0FBUixDQUFjRixDQUFkO0FBQ0g7QUFDSjs7QUFFRDtBQUNBWCxjQUFNYyxRQUFOLENBQWVULEtBQWY7QUFDSCxLQWREOztBQWdCQTtBQUNBTCxVQUFNZSxTQUFOLENBQWdCbkIsS0FBS29CLElBQUwsQ0FBVUMsU0FBVixFQUFxQixhQUFyQixDQUFoQjs7QUFFQTtBQUNBakIsVUFBTWtCLElBQU4sQ0FBV2pCLFdBQVg7QUFDSCxDQXRCRCIsImZpbGUiOiJ0aHJlZW1hL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4ge1xuICAgIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmJhZGdlLnVucmVhZC1jb3VudDpub3QoLm5nLWhpZGUpJyk7XG4gICAgICAgIGxldCBjb3VudCA9IDA7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb3VudCArPSBwYXJzZUludChlbGVtZW50c1tpXS5pbm5lckhUTUwudHJpbSgpLCAxMCk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgICAgICBGcmFuei5zZXRCYWRnZShjb3VudCk7XG4gICAgfTtcblxuICAgIC8vIGluamVjdCBmcmFuei5jc3Mgc3R5bGVzaGVldFxuICAgIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnc2VydmljZS5jc3MnKSk7XG5cbiAgICAvLyBjaGVjayBmb3IgbmV3IG1lc3NhZ2VzIGV2ZXJ5IHNlY29uZCBhbmQgdXBkYXRlIEZyYW56IGJhZGdlXG4gICAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/todoist/LICENSE b/uncompressed/todoist/LICENSE new file mode 100644 index 0000000..f0472f5 --- /dev/null +++ b/uncompressed/todoist/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Mike Burke + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/todoist/README.md b/uncompressed/todoist/README.md new file mode 100644 index 0000000..e94ee80 --- /dev/null +++ b/uncompressed/todoist/README.md @@ -0,0 +1,5 @@ +# recipe-todoist +Recipe for Todoist integration with Franz 5 + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/todoist/icon.svg b/uncompressed/todoist/icon.svg new file mode 100644 index 0000000..c9b6828 --- /dev/null +++ b/uncompressed/todoist/icon.svg @@ -0,0 +1,28 @@ + + + + +Created by potrace 1.13, written by Peter Selinger 2001-2015 + + + + + diff --git a/uncompressed/todoist/index.js b/uncompressed/todoist/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/todoist/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/todoist/package.json b/uncompressed/todoist/package.json new file mode 100644 index 0000000..4cf557a --- /dev/null +++ b/uncompressed/todoist/package.json @@ -0,0 +1,14 @@ +{ + "id": "todoist", + "name": "Todoist", + "version": "1.1.0", + "description": "todoist plugin for Franz 5", + "main": "index.js", + "author": "Alex Ward , Mike Burke ", + "license": "MIT", + "repository": "https://github.com/meetfranz/recipe-todoist", + "config": { + "serviceURL": "https://todoist.com/app", + "hasIndirectMessages": true + } +} diff --git a/uncompressed/todoist/webview.js b/uncompressed/todoist/webview.js new file mode 100644 index 0000000..3263348 --- /dev/null +++ b/uncompressed/todoist/webview.js @@ -0,0 +1,22 @@ +"use strict"; + +module.exports = (Franz, options) => { + function getTasks() { + let todayCount = 0; + let inboxCount = 0; + const todayElement = document.querySelector("#top_filters .counter.overdue_color"); + const inboxElement = document.querySelector("#filter_inbox .counter"); + + if (todayElement) { + todayCount = parseInt(todayElement.innerHTML, 10); + } + + if (inboxElement) { + inboxCount = parseInt(inboxElement.innerHTML, 10); + } + + Franz.setBadge(inboxCount, todayCount); + } + + Franz.loop(getTasks); +}; \ No newline at end of file diff --git a/uncompressed/toggl/icon.svg b/uncompressed/toggl/icon.svg new file mode 100644 index 0000000..102fe15 --- /dev/null +++ b/uncompressed/toggl/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/toggl/index.js b/uncompressed/toggl/index.js new file mode 100644 index 0000000..66ab195 --- /dev/null +++ b/uncompressed/toggl/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvZ2dsL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidG9nZ2wvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/toggl/package.json b/uncompressed/toggl/package.json new file mode 100644 index 0000000..15a7794 --- /dev/null +++ b/uncompressed/toggl/package.json @@ -0,0 +1,23 @@ +{ + "id": "toggl", + "name": "toggl", + "version": "1.0.1", + "description": "toggl", + "main": "index.js", + "author": "exampleman ", + "license": "MIT", + "config": { + "serviceURL": "https://www.toggl.com/app/timer", + "message": "", + "popup": [], + "hasNotificationSound": true, + "hasIndirectMessages": false, + "hasTeamID": false, + "hasPredefinedUrl": true, + "hostedOnly": false, + "webviewOptions": { + "disablewebsecurity": "" + }, + "openDevTools": false + } +} diff --git a/uncompressed/toggl/style.css b/uncompressed/toggl/style.css new file mode 100644 index 0000000..85495ed --- /dev/null +++ b/uncompressed/toggl/style.css @@ -0,0 +1,6 @@ +.ProjectsPopdown__popdown { + width: 1100px !important; +} +.Project__name { + text-overflow: initial !important; +} diff --git a/uncompressed/toggl/webview.js b/uncompressed/toggl/webview.js new file mode 100644 index 0000000..dc3182d --- /dev/null +++ b/uncompressed/toggl/webview.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = (Franz, options) => {}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvZ2dsL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Iiwib3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQixDQUFDQyxLQUFELEVBQVFDLE9BQVIsS0FBb0IsQ0FBRSxDQUF2QyIsImZpbGUiOiJ0b2dnbC93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnosIG9wdGlvbnMpID0+IHt9XG4iXX0= \ No newline at end of file diff --git a/uncompressed/trello/LICENSE b/uncompressed/trello/LICENSE new file mode 100644 index 0000000..226c90e --- /dev/null +++ b/uncompressed/trello/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Thom van Hal + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/uncompressed/trello/README.md b/uncompressed/trello/README.md new file mode 100644 index 0000000..5e316f3 --- /dev/null +++ b/uncompressed/trello/README.md @@ -0,0 +1,19 @@ +# Trello Franz Recipe + +## Requirements +This recipe only works for Franz 5.X, get it now at http://meetfranz.com + +## Installation + +1. Clone/download the folder `recipe-franz-trello`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-franz-trello` folder into the recipes dev directory + +4. Restart Franz \ No newline at end of file diff --git a/uncompressed/trello/icon.svg b/uncompressed/trello/icon.svg new file mode 100644 index 0000000..eecadb3 --- /dev/null +++ b/uncompressed/trello/icon.svg @@ -0,0 +1,22 @@ + + + + trello-mark-blue-flat + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/trello/index.js b/uncompressed/trello/index.js new file mode 100644 index 0000000..fc1746a --- /dev/null +++ b/uncompressed/trello/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWxsby9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6InRyZWxsby9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/trello/package.json b/uncompressed/trello/package.json new file mode 100644 index 0000000..6cba316 --- /dev/null +++ b/uncompressed/trello/package.json @@ -0,0 +1,12 @@ +{ + "id": "trello", + "name": "Trello", + "version": "1.0.0", + "description": "Trello", + "main": "index.js", + "author": "Thom van Hal ", + "license": "MIT", + "config": { + "serviceURL": "https://trello.com/" + } +} diff --git a/uncompressed/trello/webview.js b/uncompressed/trello/webview.js new file mode 100644 index 0000000..e8214dd --- /dev/null +++ b/uncompressed/trello/webview.js @@ -0,0 +1,12 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + const notifications = document.querySelectorAll('.new-notifications'); + + Franz.setBadge(0, notifications.length >= 1 ? 1 : 0); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRyZWxsby93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwibm90aWZpY2F0aW9ucyIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsInNldEJhZGdlIiwibGVuZ3RoIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxnQkFBZ0JDLFNBQVNDLGdCQUFULENBQTBCLG9CQUExQixDQUF0Qjs7QUFFQUosVUFBTUssUUFBTixDQUFlLENBQWYsRUFBbUJILGNBQWNJLE1BQWQsSUFBd0IsQ0FBekIsR0FBOEIsQ0FBOUIsR0FBa0MsQ0FBcEQ7QUFDRCxHQUpEOztBQU1BTixRQUFNTyxJQUFOLENBQVdOLFdBQVg7QUFDRCxDQVJEIiwiZmlsZSI6InRyZWxsby93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSBmdW5jdGlvbiBnZXRNZXNzYWdlcygpIHtcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLm5ldy1ub3RpZmljYXRpb25zJyk7XG5cbiAgICBGcmFuei5zZXRCYWRnZSgwLCAobm90aWZpY2F0aW9ucy5sZW5ndGggPj0gMSkgPyAxIDogMCk7XG4gIH07XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/tweetdeck/README.md b/uncompressed/tweetdeck/README.md new file mode 100644 index 0000000..458aa96 --- /dev/null +++ b/uncompressed/tweetdeck/README.md @@ -0,0 +1,5 @@ +# Tweetdeck for Franz +This is the official Franz recipe for Tweetdeck + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/tweetdeck/icon.svg b/uncompressed/tweetdeck/icon.svg new file mode 100644 index 0000000..913125a --- /dev/null +++ b/uncompressed/tweetdeck/icon.svg @@ -0,0 +1,13 @@ + + + + tweetdeck + Created with Sketch. + + + + + + + + \ No newline at end of file diff --git a/uncompressed/tweetdeck/index.js b/uncompressed/tweetdeck/index.js new file mode 100644 index 0000000..32c02ba --- /dev/null +++ b/uncompressed/tweetdeck/index.js @@ -0,0 +1,23 @@ +'use strict'; + +module.exports = Franz => { + return class Tweetdeck extends Franz { + constructor(...args) { + var _temp; + + return _temp = super(...args), this.events = { + 'did-get-redirect-request': '_redirectFix' + }, _temp; + } + + _redirectFix(event) { + if (event.newURL !== undefined && event.oldURL !== undefined && event.isMainFrame) { + if (event.isMainFrame) { + setTimeout(() => this.send('redirect-url', event.newURL), 100); + event.preventDefault(); + } + } + } + }; +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3ZWV0ZGVjay9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJUd2VldGRlY2siLCJldmVudHMiLCJfcmVkaXJlY3RGaXgiLCJldmVudCIsIm5ld1VSTCIsInVuZGVmaW5lZCIsIm9sZFVSTCIsImlzTWFpbkZyYW1lIiwic2V0VGltZW91dCIsInNlbmQiLCJwcmV2ZW50RGVmYXVsdCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkM7QUFBQSxTQUFTLE1BQU1DLFNBQU4sU0FBd0JELEtBQXhCLENBQThCO0FBQUE7QUFBQTs7QUFBQSwwQ0FDdERFLE1BRHNELEdBQzdDO0FBQ1Asb0NBQTRCO0FBRHJCLE9BRDZDO0FBQUE7O0FBS3REQyxpQkFBYUMsS0FBYixFQUFvQjtBQUNsQixVQUFJQSxNQUFNQyxNQUFOLEtBQWlCQyxTQUFqQixJQUE4QkYsTUFBTUcsTUFBTixLQUFpQkQsU0FBL0MsSUFBNERGLE1BQU1JLFdBQXRFLEVBQW1GO0FBQ2pGLFlBQUlKLE1BQU1JLFdBQVYsRUFBdUI7QUFDckJDLHFCQUFXLE1BQU0sS0FBS0MsSUFBTCxDQUFVLGNBQVYsRUFBMEJOLE1BQU1DLE1BQWhDLENBQWpCLEVBQTBELEdBQTFEO0FBQ0FELGdCQUFNTyxjQUFOO0FBQ0Q7QUFDRjtBQUNGO0FBWnFELEdBQXZDO0FBQUEsQ0FBakIiLCJmaWxlIjoidHdlZXRkZWNrL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBjbGFzcyBUd2VldGRlY2sgZXh0ZW5kcyBGcmFueiB7XG4gIGV2ZW50cyA9IHtcbiAgICAnZGlkLWdldC1yZWRpcmVjdC1yZXF1ZXN0JzogJ19yZWRpcmVjdEZpeCcsXG4gIH1cblxuICBfcmVkaXJlY3RGaXgoZXZlbnQpIHtcbiAgICBpZiAoZXZlbnQubmV3VVJMICE9PSB1bmRlZmluZWQgJiYgZXZlbnQub2xkVVJMICE9PSB1bmRlZmluZWQgJiYgZXZlbnQuaXNNYWluRnJhbWUpIHtcbiAgICAgIGlmIChldmVudC5pc01haW5GcmFtZSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VuZCgncmVkaXJlY3QtdXJsJywgZXZlbnQubmV3VVJMKSwgMTAwKTtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/tweetdeck/package.json b/uncompressed/tweetdeck/package.json new file mode 100644 index 0000000..7580895 --- /dev/null +++ b/uncompressed/tweetdeck/package.json @@ -0,0 +1,13 @@ +{ + "id": "tweetdeck", + "name": "Tweetdeck", + "version": "1.0.2", + "description": "Tweetdeck", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://tweetdeck.twitter.com/", + "hasNotificationSound": true + } +} diff --git a/uncompressed/tweetdeck/webview.js b/uncompressed/tweetdeck/webview.js new file mode 100644 index 0000000..dbf004c --- /dev/null +++ b/uncompressed/tweetdeck/webview.js @@ -0,0 +1,22 @@ +'use strict'; + +const { ipcRenderer } = require('electron'); + +// Tweetdeck redirect fix +ipcRenderer.on('redirect-url', (event, url) => { + window.location.assign(url); +}); + +module.exports = Franz => { + const getMessages = function getMessages() { + const elements = document.querySelectorAll('.msg-unread-count'); + let count = 0; + if (elements[0]) { + count = parseInt(elements[0].innerHTML, 10); + } + + Franz.setBadge(count); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3ZWV0ZGVjay93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbImlwY1JlbmRlcmVyIiwicmVxdWlyZSIsIm9uIiwiZXZlbnQiLCJ1cmwiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImFzc2lnbiIsIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiZWxlbWVudHMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJjb3VudCIsInBhcnNlSW50IiwiaW5uZXJIVE1MIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU0sRUFBRUEsV0FBRixLQUFrQkMsUUFBUSxVQUFSLENBQXhCOztBQUVBO0FBQ0FELFlBQVlFLEVBQVosQ0FBZSxjQUFmLEVBQStCLENBQUNDLEtBQUQsRUFBUUMsR0FBUixLQUFnQjtBQUM3Q0MsU0FBT0MsUUFBUCxDQUFnQkMsTUFBaEIsQ0FBdUJILEdBQXZCO0FBQ0QsQ0FGRDs7QUFJQUksT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxXQUFXQyxTQUFTQyxnQkFBVCxDQUEwQixtQkFBMUIsQ0FBakI7QUFDQSxRQUFJQyxRQUFRLENBQVo7QUFDQSxRQUFJSCxTQUFTLENBQVQsQ0FBSixFQUFpQjtBQUNmRyxjQUFRQyxTQUFTSixTQUFTLENBQVQsRUFBWUssU0FBckIsRUFBZ0MsRUFBaEMsQ0FBUjtBQUNEOztBQUVEUCxVQUFNUSxRQUFOLENBQWVILEtBQWY7QUFDRCxHQVJEO0FBU0FMLFFBQU1TLElBQU4sQ0FBV1IsV0FBWDtBQUNELENBWEQiLCJmaWxlIjoidHdlZXRkZWNrL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCB7IGlwY1JlbmRlcmVyIH0gPSByZXF1aXJlKCdlbGVjdHJvbicpO1xuXG4vLyBUd2VldGRlY2sgcmVkaXJlY3QgZml4XG5pcGNSZW5kZXJlci5vbigncmVkaXJlY3QtdXJsJywgKGV2ZW50LCB1cmwpID0+IHtcbiAgd2luZG93LmxvY2F0aW9uLmFzc2lnbih1cmwpO1xufSk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgZWxlbWVudHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubXNnLXVucmVhZC1jb3VudCcpO1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgaWYgKGVsZW1lbnRzWzBdKSB7XG4gICAgICBjb3VudCA9IHBhcnNlSW50KGVsZW1lbnRzWzBdLmlubmVySFRNTCwgMTApO1xuICAgIH1cblxuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcbiAgfTtcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/twist/icon.svg b/uncompressed/twist/icon.svg new file mode 100644 index 0000000..7c8aa4b --- /dev/null +++ b/uncompressed/twist/icon.svg @@ -0,0 +1,12 @@ + + + + Pin_tab_twist + Created with Sketch. + + + + + + + \ No newline at end of file diff --git a/uncompressed/twist/index.js b/uncompressed/twist/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/twist/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/twist/package.json b/uncompressed/twist/package.json new file mode 100644 index 0000000..9f318b2 --- /dev/null +++ b/uncompressed/twist/package.json @@ -0,0 +1,23 @@ +{ + "id": "twist", + "name": "twist", + "version": "1.0.1", + "description": "twist", + "main": "index.js", + "author": "Stuart Clark ", + "license": "MIT", + "config": { + "serviceURL": "https://twistapp.com/login", + "message": "", + "popup": [], + "hasNotificationSound": true, + "hasIndirectMessages": false, + "hasTeamID": false, + "hasPredefinedUrl": true, + "hostedOnly": false, + "webviewOptions": { + "disablewebsecurity": "" + }, + "openDevTools": false + } +} diff --git a/uncompressed/twist/webview.js b/uncompressed/twist/webview.js new file mode 100644 index 0000000..fc4b3f1 --- /dev/null +++ b/uncompressed/twist/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const count = document.querySelectorAll('.switch_pane>.unread').length; + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/twitch/LICENSE b/uncompressed/twitch/LICENSE new file mode 100644 index 0000000..6db1c9e --- /dev/null +++ b/uncompressed/twitch/LICENSE @@ -0,0 +1,25 @@ +MIT License + +Copyright (c) 2017 Colin O'Dell + +Based on https://github.com/meetfranz/plugins-legacy/pull/30 +Copyright (c) 2016 RedbackThomson + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/uncompressed/twitch/README.md b/uncompressed/twitch/README.md new file mode 100644 index 0000000..69926fb --- /dev/null +++ b/uncompressed/twitch/README.md @@ -0,0 +1,30 @@ +# Twitch Chat +Recipe for [Twitch](https://www.twitch.tv) chat integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `twitch`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `twitch` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) + +## Authors + +### Original Author of V4 plugin + +- [RedbackThomson](https://github.com/RedbackThomson/) + +### Ported to V5 recipe by + +- [Colin O'Dell](https://github.com/colinodell/) diff --git a/uncompressed/twitch/icon.svg b/uncompressed/twitch/icon.svg new file mode 100644 index 0000000..9b58a81 --- /dev/null +++ b/uncompressed/twitch/icon.svg @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/uncompressed/twitch/index.js b/uncompressed/twitch/index.js new file mode 100644 index 0000000..c99e0b6 --- /dev/null +++ b/uncompressed/twitch/index.js @@ -0,0 +1,5 @@ +"use strict"; + +// just pass through Franz +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3aXRjaC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidHdpdGNoL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiLy8ganVzdCBwYXNzIHRocm91Z2ggRnJhbnpcbm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/twitch/package.json b/uncompressed/twitch/package.json new file mode 100644 index 0000000..9dfc0ce --- /dev/null +++ b/uncompressed/twitch/package.json @@ -0,0 +1,17 @@ +{ + "id": "twitch", + "name": "Twitch", + "version": "1.0.0", + "description": "Twitch chat", + "main": "index.js", + "author": "Colin O'Dell ; RedbackThomson ", + "license": "MIT", + "config": { + "serviceURL": "https://www.twitch.tv/{teamId}/chat", + "hasTeamId": true, + "urlInputPrefix": "https://go.twitch.tv/", + "hasNotificationSound": true, + "hasIndirectMessages": false, + "message": "Twitch chat allows you to not only interact with fellow members of the Twitch Community, but Broadcasters as well." + } +} diff --git a/uncompressed/twitch/webview.js b/uncompressed/twitch/webview.js new file mode 100644 index 0000000..2719e25 --- /dev/null +++ b/uncompressed/twitch/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = (Franz, options) => { + const getMessages = () => { + // Get the number of mentions + const mentions = document.querySelectorAll('.chat-line .mentioned').length; + + Franz.setBadge(mentions, 0); + }; + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3aXRjaC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsIm9wdGlvbnMiLCJnZXRNZXNzYWdlcyIsIm1lbnRpb25zIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCLENBQUNDLEtBQUQsRUFBUUMsT0FBUixLQUFvQjtBQUNuQyxRQUFNQyxjQUFjLE1BQU07QUFDeEI7QUFDQSxVQUFNQyxXQUFXQyxTQUFTQyxnQkFBVCxDQUEwQix1QkFBMUIsRUFBbURDLE1BQXBFOztBQUVBTixVQUFNTyxRQUFOLENBQWVKLFFBQWYsRUFBeUIsQ0FBekI7QUFDRCxHQUxEO0FBTUE7QUFDQUgsUUFBTVEsSUFBTixDQUFXTixXQUFYO0FBQ0QsQ0FURCIsImZpbGUiOiJ0d2l0Y2gvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56LCBvcHRpb25zKSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gKCkgPT4ge1xuICAgIC8vIEdldCB0aGUgbnVtYmVyIG9mIG1lbnRpb25zXG4gICAgY29uc3QgbWVudGlvbnMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuY2hhdC1saW5lIC5tZW50aW9uZWQnKS5sZW5ndGg7XG5cbiAgICBGcmFuei5zZXRCYWRnZShtZW50aW9ucywgMCk7XG4gIH07XG4gIC8vIGNoZWNrIGZvciBuZXcgbWVzc2FnZXMgZXZlcnkgc2Vjb25kIGFuZCB1cGRhdGUgRnJhbnogYmFkZ2VcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/twitter-dm/README.md b/uncompressed/twitter-dm/README.md new file mode 100644 index 0000000..7c7cebe --- /dev/null +++ b/uncompressed/twitter-dm/README.md @@ -0,0 +1,5 @@ +# Twitter DM for Franz +This is the official Franz recipe for Twitter DM + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/twitter-dm/icon.svg b/uncompressed/twitter-dm/icon.svg new file mode 100644 index 0000000..b605528 --- /dev/null +++ b/uncompressed/twitter-dm/icon.svg @@ -0,0 +1,35 @@ + + + + + + + image/svg+xml + + + + + + + + + diff --git a/uncompressed/twitter-dm/index.js b/uncompressed/twitter-dm/index.js new file mode 100644 index 0000000..0d1e011 --- /dev/null +++ b/uncompressed/twitter-dm/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3aXR0ZXItZG0vaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJ0d2l0dGVyLWRtL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/twitter-dm/package.json b/uncompressed/twitter-dm/package.json new file mode 100644 index 0000000..84711e3 --- /dev/null +++ b/uncompressed/twitter-dm/package.json @@ -0,0 +1,13 @@ +{ + "id": "twitter-dm", + "name": "Twitter DM", + "version": "1.0.0", + "description": "Twitter DM", + "main": "index.js", + "author": "Pieter Levels , Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://mobile.twitter.com/messages", + "hasNotificationSound": true + } +} diff --git a/uncompressed/twitter-dm/webview.js b/uncompressed/twitter-dm/webview.js new file mode 100644 index 0000000..ef66836 --- /dev/null +++ b/uncompressed/twitter-dm/webview.js @@ -0,0 +1,17 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let count = 0; + const elem = document.querySelector('a[href="/messages"] div div'); + + if (elem) { + count = parseInt(elem.innerText, 10); + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInR3aXR0ZXItZG0vd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50IiwiZWxlbSIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsInBhcnNlSW50IiwiaW5uZXJUZXh0Iiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsUUFBTUMsY0FBYyxTQUFTQSxXQUFULEdBQXVCO0FBQ3pDLFFBQUlDLFFBQVEsQ0FBWjtBQUNBLFVBQU1DLE9BQU9DLFNBQVNDLGFBQVQsQ0FBdUIsNkJBQXZCLENBQWI7O0FBRUEsUUFBSUYsSUFBSixFQUFVO0FBQ1JELGNBQVFJLFNBQVNILEtBQUtJLFNBQWQsRUFBeUIsRUFBekIsQ0FBUjtBQUNEOztBQUVEUCxVQUFNUSxRQUFOLENBQWVOLEtBQWY7QUFDRCxHQVREOztBQVdBRixRQUFNUyxJQUFOLENBQVdSLFdBQVg7QUFDRCxDQWJEIiwiZmlsZSI6InR3aXR0ZXItZG0vd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgbGV0IGNvdW50ID0gMDtcbiAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYVtocmVmPVwiL21lc3NhZ2VzXCJdIGRpdiBkaXYnKTtcblxuICAgIGlmIChlbGVtKSB7XG4gICAgICBjb3VudCA9IHBhcnNlSW50KGVsZW0uaW5uZXJUZXh0LCAxMCk7XG4gICAgfVxuXG4gICAgRnJhbnouc2V0QmFkZ2UoY291bnQpO1xuICB9O1xuXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/vk/README.md b/uncompressed/vk/README.md new file mode 100644 index 0000000..45acfbd --- /dev/null +++ b/uncompressed/vk/README.md @@ -0,0 +1,5 @@ +# VK for Franz +This is the official Franz recipe for VK.com + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/vk/icon.svg b/uncompressed/vk/icon.svg new file mode 100644 index 0000000..0a9b0f0 --- /dev/null +++ b/uncompressed/vk/icon.svg @@ -0,0 +1,15 @@ + + + + vk + Created with Sketch. + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/vk/index.js b/uncompressed/vk/index.js new file mode 100644 index 0000000..67f7d24 --- /dev/null +++ b/uncompressed/vk/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZrL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidmsvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/vk/package.json b/uncompressed/vk/package.json new file mode 100644 index 0000000..37afce4 --- /dev/null +++ b/uncompressed/vk/package.json @@ -0,0 +1,13 @@ +{ + "id": "vk", + "name": "VK", + "version": "1.0.0", + "description": "VK.com", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "repository": "https://github.com/meetfranz/recipe-vk", + "config": { + "serviceURL": "https://www.vk.com" + } + } diff --git a/uncompressed/vk/webview.js b/uncompressed/vk/webview.js new file mode 100644 index 0000000..96daa07 --- /dev/null +++ b/uncompressed/vk/webview.js @@ -0,0 +1,19 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = function getMessages() { + let directs = 0; + if (document.getElementsByClassName('left_count').length > 0) { + directs = parseInt(document.getElementsByClassName('left_count')[0].innerText, 10); + } + + if (isNaN(directs)) { + directs = 0; + } + + Franz.setBadge(directs); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZrL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJkaXJlY3RzIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwibGVuZ3RoIiwicGFyc2VJbnQiLCJpbm5lclRleHQiLCJpc05hTiIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxRQUFJQyxVQUFVLENBQWQ7QUFDQSxRQUFJQyxTQUFTQyxzQkFBVCxDQUFnQyxZQUFoQyxFQUE4Q0MsTUFBOUMsR0FBdUQsQ0FBM0QsRUFBOEQ7QUFDNURILGdCQUFVSSxTQUFTSCxTQUFTQyxzQkFBVCxDQUFnQyxZQUFoQyxFQUE4QyxDQUE5QyxFQUFpREcsU0FBMUQsRUFBcUUsRUFBckUsQ0FBVjtBQUNEOztBQUVELFFBQUlDLE1BQU1OLE9BQU4sQ0FBSixFQUFvQjtBQUNsQkEsZ0JBQVUsQ0FBVjtBQUNEOztBQUVERixVQUFNUyxRQUFOLENBQWVQLE9BQWY7QUFDRCxHQVhEOztBQWFBRixRQUFNVSxJQUFOLENBQVdULFdBQVg7QUFDRCxDQWZEIiwiZmlsZSI6InZrL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICBjb25zdCBnZXRNZXNzYWdlcyA9IGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xuICAgIGxldCBkaXJlY3RzID0gMDtcbiAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnbGVmdF9jb3VudCcpLmxlbmd0aCA+IDApIHtcbiAgICAgIGRpcmVjdHMgPSBwYXJzZUludChkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdsZWZ0X2NvdW50JylbMF0uaW5uZXJUZXh0LCAxMCk7XG4gICAgfVxuXG4gICAgaWYgKGlzTmFOKGRpcmVjdHMpKSB7XG4gICAgICBkaXJlY3RzID0gMDtcbiAgICB9XG5cbiAgICBGcmFuei5zZXRCYWRnZShkaXJlY3RzKTtcbiAgfTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07XG4iXX0= \ No newline at end of file diff --git a/uncompressed/voxer/README.md b/uncompressed/voxer/README.md new file mode 100644 index 0000000..b1218c3 --- /dev/null +++ b/uncompressed/voxer/README.md @@ -0,0 +1,5 @@ +# Voxer for Franz +This is the official Franz recipe for Voxer + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/voxer/icon.svg b/uncompressed/voxer/icon.svg new file mode 100644 index 0000000..4033b1b --- /dev/null +++ b/uncompressed/voxer/icon.svg @@ -0,0 +1,35 @@ + + + + voxer + Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/voxer/index.js b/uncompressed/voxer/index.js new file mode 100644 index 0000000..37c3cf7 --- /dev/null +++ b/uncompressed/voxer/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZveGVyL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBU0EsS0FBMUIiLCJmaWxlIjoidm94ZXIvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56O1xuIl19 \ No newline at end of file diff --git a/uncompressed/voxer/package.json b/uncompressed/voxer/package.json new file mode 100644 index 0000000..85bd7cb --- /dev/null +++ b/uncompressed/voxer/package.json @@ -0,0 +1,13 @@ +{ + "id": "voxer", + "name": "Voxer", + "version": "1.0.2", + "description": "Voxer", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://web.voxer.com", + "hasNotificationSound": true + } +} diff --git a/uncompressed/voxer/service.css b/uncompressed/voxer/service.css new file mode 100644 index 0000000..58ed105 --- /dev/null +++ b/uncompressed/voxer/service.css @@ -0,0 +1,16 @@ +#topbar { + display: none; +} + +.content-container { + width: 100%; + height: 100%; +} + +#content { + height: 100%; +} + +.block { + height: calc(100% - 65px); +} \ No newline at end of file diff --git a/uncompressed/voxer/webview.js b/uncompressed/voxer/webview.js new file mode 100644 index 0000000..0d45dce --- /dev/null +++ b/uncompressed/voxer/webview.js @@ -0,0 +1,19 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = function getMessages() { + const count = document.querySelectorAll('.unconsumed-badge').length; + + // set Franz badge + Franz.setBadge(count); + }; + + // inject franz.css stylesheet + Franz.injectCSS(path.join(__dirname, 'service.css')); + + // check for new messages every second and update Franz badge + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInZveGVyL3dlYnZpZXcuanMiXSwibmFtZXMiOlsicGF0aCIsInJlcXVpcmUiLCJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRNZXNzYWdlcyIsImNvdW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwibGVuZ3RoIiwic2V0QmFkZ2UiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN6QyxVQUFNQyxRQUFRQyxTQUFTQyxnQkFBVCxDQUEwQixtQkFBMUIsRUFBK0NDLE1BQTdEOztBQUVBO0FBQ0FMLFVBQU1NLFFBQU4sQ0FBZUosS0FBZjtBQUNELEdBTEQ7O0FBT0E7QUFDQUYsUUFBTU8sU0FBTixDQUFnQlgsS0FBS1ksSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCOztBQUVBO0FBQ0FULFFBQU1VLElBQU4sQ0FBV1QsV0FBWDtBQUNELENBYkQiLCJmaWxlIjoidm94ZXIvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgY29uc3QgY291bnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudW5jb25zdW1lZC1iYWRnZScpLmxlbmd0aDtcblxuICAgIC8vIHNldCBGcmFueiBiYWRnZVxuICAgIEZyYW56LnNldEJhZGdlKGNvdW50KTtcbiAgfTtcblxuICAvLyBpbmplY3QgZnJhbnouY3NzIHN0eWxlc2hlZXRcbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLmNzcycpKTtcblxuICAvLyBjaGVjayBmb3IgbmV3IG1lc3NhZ2VzIGV2ZXJ5IHNlY29uZCBhbmQgdXBkYXRlIEZyYW56IGJhZGdlXG4gIEZyYW56Lmxvb3AoZ2V0TWVzc2FnZXMpO1xufTtcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/wechat/LICENSE b/uncompressed/wechat/LICENSE new file mode 100644 index 0000000..eee14ce --- /dev/null +++ b/uncompressed/wechat/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Koma + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/wechat/README.md b/uncompressed/wechat/README.md new file mode 100644 index 0000000..962f0da --- /dev/null +++ b/uncompressed/wechat/README.md @@ -0,0 +1,26 @@ +# WeChat +Recipe for [WeChat](https://www.wechat.com) integration with [Franz 5](http://meetfranz.com) + +## To test this dev release + +1. Clone/download the folder `recipe-wechat`. + +2. Open the Franz Recipe folder on your machine: + * Mac: `~/Library/Application Support/Franz/recipes/` + * Windows: `%appdata%/Franz/recipes/` + * Linux: `~/.config/Franz/recipes/` + +3. Create a `dev` folder if you have not already done so + +3. Unzip and copy the `recipe-wechat` folder into the recipes dev directory + +4. Restart Franz + +## How to create your own Franz recipes: +[Read the documentation](https://github.com/meetfranz/plugins) + +## WeChat logo resources +Uses unofficial logos acquired from https://github.com/RayPS/WeChat-Logo + +## Authors +[Koma](https://github.com/koma-private/) diff --git a/uncompressed/wechat/icon.svg b/uncompressed/wechat/icon.svg new file mode 100644 index 0000000..e494f53 --- /dev/null +++ b/uncompressed/wechat/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/wechat/index.js b/uncompressed/wechat/index.js new file mode 100644 index 0000000..37c403f --- /dev/null +++ b/uncompressed/wechat/index.js @@ -0,0 +1,6 @@ +'use strict'; + +// just pass through Franz + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlY2hhdC9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBOztBQUNBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJ3ZWNoYXQvaW5kZXguanMiLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8vIGp1c3QgcGFzcyB0aHJvdWdoIEZyYW56XG5tb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IEZyYW56OyJdfQ== \ No newline at end of file diff --git a/uncompressed/wechat/package.json b/uncompressed/wechat/package.json new file mode 100644 index 0000000..8341a08 --- /dev/null +++ b/uncompressed/wechat/package.json @@ -0,0 +1,15 @@ +{ + "id": "wechat", + "name": "WeChat", + "version": "1.0.0", + "description": "Instant messaging", + "main": "index.js", + "author": "Koma", + "license": "MIT", + "repository": "https://github.com/koma-private/recipe-wechat", + "config": { + "hasNotificationSound": true, + "hasIndirectMessages": true, + "serviceURL": "https://web.wechat.com/" + } +} \ No newline at end of file diff --git a/uncompressed/wechat/service.css b/uncompressed/wechat/service.css new file mode 100644 index 0000000..0e45c65 --- /dev/null +++ b/uncompressed/wechat/service.css @@ -0,0 +1,9 @@ +.main { + padding-top: 0; + height: 100vh; +} + +.main_inner { + margin: 0; + max-width: 100%; +} diff --git a/uncompressed/wechat/webview.js b/uncompressed/wechat/webview.js new file mode 100644 index 0000000..8b81a33 --- /dev/null +++ b/uncompressed/wechat/webview.js @@ -0,0 +1,34 @@ +'use strict'; + +const path = require('path'); + +module.exports = (Franz, options) => { + function getMessages() { + let directCount = 0; + let indirectCount = 0; + let chat_item = document.querySelectorAll('div.chat_item'); + + Array.prototype.forEach.call(chat_item, function (item) { + let count = 0; + let reddot = item.querySelector("i.web_wechat_reddot_middle"); + let avatarImage = item.querySelector("img.img"); + + if (reddot && reddot.innerText) { + count = parseInt(reddot.innerText); + } + + if (avatarImage && avatarImage.getAttribute("src").search("webwxgeticon") != -1) { + directCount += count; + } else { + indirectCount += count; + } + }); + + Franz.setBadge(directCount, indirectCount); + } + + Franz.injectCSS(path.join(__dirname, 'service.css')); + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlY2hhdC93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Iiwib3B0aW9ucyIsImdldE1lc3NhZ2VzIiwiZGlyZWN0Q291bnQiLCJpbmRpcmVjdENvdW50IiwiY2hhdF9pdGVtIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiQXJyYXkiLCJwcm90b3R5cGUiLCJmb3JFYWNoIiwiY2FsbCIsIml0ZW0iLCJjb3VudCIsInJlZGRvdCIsInF1ZXJ5U2VsZWN0b3IiLCJhdmF0YXJJbWFnZSIsImlubmVyVGV4dCIsInBhcnNlSW50IiwiZ2V0QXR0cmlidXRlIiwic2VhcmNoIiwic2V0QmFkZ2UiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBQ0EsTUFBTUEsT0FBT0MsUUFBUSxNQUFSLENBQWI7O0FBRUFDLE9BQU9DLE9BQVAsR0FBaUIsQ0FBQ0MsS0FBRCxFQUFRQyxPQUFSLEtBQW9CO0FBQ25DLFdBQVNDLFdBQVQsR0FBdUI7QUFDckIsUUFBSUMsY0FBYyxDQUFsQjtBQUNBLFFBQUlDLGdCQUFnQixDQUFwQjtBQUNBLFFBQUlDLFlBQVlDLFNBQVNDLGdCQUFULENBQTBCLGVBQTFCLENBQWhCOztBQUVBQyxVQUFNQyxTQUFOLENBQWdCQyxPQUFoQixDQUF3QkMsSUFBeEIsQ0FBNkJOLFNBQTdCLEVBQXdDLFVBQVVPLElBQVYsRUFBZ0I7QUFDdEQsVUFBSUMsUUFBUSxDQUFaO0FBQ0EsVUFBSUMsU0FBU0YsS0FBS0csYUFBTCxDQUFtQiw0QkFBbkIsQ0FBYjtBQUNBLFVBQUlDLGNBQWNKLEtBQUtHLGFBQUwsQ0FBbUIsU0FBbkIsQ0FBbEI7O0FBRUEsVUFBSUQsVUFBVUEsT0FBT0csU0FBckIsRUFBZ0M7QUFDOUJKLGdCQUFRSyxTQUFTSixPQUFPRyxTQUFoQixDQUFSO0FBQ0Q7O0FBRUQsVUFBSUQsZUFBZUEsWUFBWUcsWUFBWixDQUF5QixLQUF6QixFQUFnQ0MsTUFBaEMsQ0FBdUMsY0FBdkMsS0FBMEQsQ0FBQyxDQUE5RSxFQUFpRjtBQUMvRWpCLHVCQUFlVSxLQUFmO0FBQ0QsT0FGRCxNQUVPO0FBQ0xULHlCQUFpQlMsS0FBakI7QUFDRDtBQUNGLEtBZEQ7O0FBZ0JBYixVQUFNcUIsUUFBTixDQUFlbEIsV0FBZixFQUE0QkMsYUFBNUI7QUFDRDs7QUFFREosUUFBTXNCLFNBQU4sQ0FBZ0IxQixLQUFLMkIsSUFBTCxDQUFVQyxTQUFWLEVBQXFCLGFBQXJCLENBQWhCOztBQUVBeEIsUUFBTXlCLElBQU4sQ0FBV3ZCLFdBQVg7QUFDRCxDQTVCRCIsImZpbGUiOiJ3ZWNoYXQvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcbmNvbnN0IHBhdGggPSByZXF1aXJlKCdwYXRoJyk7XG5cbm1vZHVsZS5leHBvcnRzID0gKEZyYW56LCBvcHRpb25zKSA9PiB7XG4gIGZ1bmN0aW9uIGdldE1lc3NhZ2VzKCkge1xuICAgIGxldCBkaXJlY3RDb3VudCA9IDA7XG4gICAgbGV0IGluZGlyZWN0Q291bnQgPSAwO1xuICAgIGxldCBjaGF0X2l0ZW0gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdkaXYuY2hhdF9pdGVtJyk7XG5cbiAgICBBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKGNoYXRfaXRlbSwgZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIGxldCBjb3VudCA9IDA7XG4gICAgICBsZXQgcmVkZG90ID0gaXRlbS5xdWVyeVNlbGVjdG9yKFwiaS53ZWJfd2VjaGF0X3JlZGRvdF9taWRkbGVcIik7XG4gICAgICBsZXQgYXZhdGFySW1hZ2UgPSBpdGVtLnF1ZXJ5U2VsZWN0b3IoXCJpbWcuaW1nXCIpO1xuXG4gICAgICBpZiAocmVkZG90ICYmIHJlZGRvdC5pbm5lclRleHQpIHtcbiAgICAgICAgY291bnQgPSBwYXJzZUludChyZWRkb3QuaW5uZXJUZXh0KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGF2YXRhckltYWdlICYmIGF2YXRhckltYWdlLmdldEF0dHJpYnV0ZShcInNyY1wiKS5zZWFyY2goXCJ3ZWJ3eGdldGljb25cIikgIT0gLTEpIHtcbiAgICAgICAgZGlyZWN0Q291bnQgKz0gY291bnQ7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpbmRpcmVjdENvdW50ICs9IGNvdW50O1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgRnJhbnouc2V0QmFkZ2UoZGlyZWN0Q291bnQsIGluZGlyZWN0Q291bnQpO1xuICB9XG5cbiAgRnJhbnouaW5qZWN0Q1NTKHBhdGguam9pbihfX2Rpcm5hbWUsICdzZXJ2aWNlLmNzcycpKTtcblxuICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn1cbiJdfQ== \ No newline at end of file diff --git a/uncompressed/whatsapp/README.md b/uncompressed/whatsapp/README.md new file mode 100644 index 0000000..4a7e91f --- /dev/null +++ b/uncompressed/whatsapp/README.md @@ -0,0 +1,5 @@ +# WhatsApp for Franz +This is the official Franz recipe for WhatsApp + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/whatsapp/icon.svg b/uncompressed/whatsapp/icon.svg new file mode 100644 index 0000000..a527cea --- /dev/null +++ b/uncompressed/whatsapp/icon.svg @@ -0,0 +1 @@ +icon \ No newline at end of file diff --git a/uncompressed/whatsapp/index.js b/uncompressed/whatsapp/index.js new file mode 100644 index 0000000..dd10055 --- /dev/null +++ b/uncompressed/whatsapp/index.js @@ -0,0 +1,8 @@ +"use strict"; + +module.exports = Franz => class Messenger extends Franz { + overrideUserAgent() { + return window.navigator.userAgent.replace(/(Franz|Electron)([^\s]+\s)/g, ''); + } + +}; \ No newline at end of file diff --git a/uncompressed/whatsapp/package.json b/uncompressed/whatsapp/package.json new file mode 100644 index 0000000..5ac1839 --- /dev/null +++ b/uncompressed/whatsapp/package.json @@ -0,0 +1,13 @@ +{ + "id": "whatsapp", + "name": "WhatsApp", + "version": "1.0.17", + "description": "WhatsApp", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://web.whatsapp.com", + "hasNotificationSound": true + } +} diff --git a/uncompressed/whatsapp/service.css b/uncompressed/whatsapp/service.css new file mode 100644 index 0000000..b453fd4 --- /dev/null +++ b/uncompressed/whatsapp/service.css @@ -0,0 +1,5 @@ +.app-wrapper-web .app { + width: 100% !important; + height: 100% !important; + top: 0 !important; +} diff --git a/uncompressed/whatsapp/webview.js b/uncompressed/whatsapp/webview.js new file mode 100644 index 0000000..958808e --- /dev/null +++ b/uncompressed/whatsapp/webview.js @@ -0,0 +1,52 @@ +"use strict"; + +const { + remote +} = require('electron'); + +const path = require('path'); + +const webContents = remote.getCurrentWebContents(); +const { + session +} = webContents; +setTimeout(() => { + const elem = document.querySelector('.landing-title.version-title'); + + if (elem && elem.innerText.toLowerCase().includes('google chrome')) { + window.location.reload(); + } +}, 1000); +window.addEventListener('beforeunload', async () => { + try { + session.flushStorageData(); + session.clearStorageData({ + storages: ['appcache', 'serviceworkers', 'cachestorage', 'websql', 'indexdb'] + }); + const registrations = await window.navigator.serviceWorker.getRegistrations(); + registrations.forEach(r => { + r.unregister(); + console.log('ServiceWorker unregistered'); + }); + } catch (err) { + console.err(err); + } +}); + +module.exports = Franz => { + const getMessages = function getMessages() { + const elements = document.querySelectorAll('.CxUIE, .unread, ._0LqQ'); + let count = 0; + + for (let i = 0; i < elements.length; i += 1) { + if (elements[i].querySelectorAll('.P6z4j').length === 1 && elements[i].querySelectorAll('*[data-icon="muted"]').length === 0) { + count += 1; + } + } + + Franz.setBadge(count); + }; + + Franz.injectCSS(path.join(__dirname, 'service.css')); + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/withspectrum/LICENSE b/uncompressed/withspectrum/LICENSE new file mode 100644 index 0000000..084f7b7 --- /dev/null +++ b/uncompressed/withspectrum/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Max Stoiber + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/withspectrum/README.md b/uncompressed/withspectrum/README.md new file mode 100644 index 0000000..cd24e16 --- /dev/null +++ b/uncompressed/withspectrum/README.md @@ -0,0 +1 @@ +# franz-spectrum \ No newline at end of file diff --git a/uncompressed/withspectrum/icon.svg b/uncompressed/withspectrum/icon.svg new file mode 100644 index 0000000..2c54e68 --- /dev/null +++ b/uncompressed/withspectrum/icon.svg @@ -0,0 +1,26 @@ + +512 +Created using Figma + + + + + + + + + + + + + + + + + + + + + + + diff --git a/uncompressed/withspectrum/index.js b/uncompressed/withspectrum/index.js new file mode 100644 index 0000000..b77c7a1 --- /dev/null +++ b/uncompressed/withspectrum/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpdGhzcGVjdHJ1bS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6IndpdGhzcGVjdHJ1bS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbnpcbiJdfQ== \ No newline at end of file diff --git a/uncompressed/withspectrum/package.json b/uncompressed/withspectrum/package.json new file mode 100644 index 0000000..bd16504 --- /dev/null +++ b/uncompressed/withspectrum/package.json @@ -0,0 +1,12 @@ +{ + "id": "withspectrum", + "name": "Spectrum", + "version": "1.0.0", + "description": "A community platform for the future.", + "main": "index.js", + "author": "Max Stoiber", + "license": "MIT", + "config": { + "serviceURL": "https://spectrum.chat" + } +} diff --git a/uncompressed/withspectrum/webview.js b/uncompressed/withspectrum/webview.js new file mode 100644 index 0000000..2f71cf6 --- /dev/null +++ b/uncompressed/withspectrum/webview.js @@ -0,0 +1,14 @@ +'use strict'; + +module.exports = Franz => { + const getMessages = () => { + const element = document.querySelector('[href="/notifications"] > div'); + const content = window.getComputedStyle(element, ':after').getPropertyValue('content').match(/\d+/); + const notifications = Number(content); + + Franz.setBadge(notifications); + }; + + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpdGhzcGVjdHJ1bS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsImdldE1lc3NhZ2VzIiwiZWxlbWVudCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvciIsImNvbnRlbnQiLCJ3aW5kb3ciLCJnZXRDb21wdXRlZFN0eWxlIiwiZ2V0UHJvcGVydHlWYWx1ZSIsIm1hdGNoIiwibm90aWZpY2F0aW9ucyIsIk51bWJlciIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFpQkMsU0FBUztBQUN4QixRQUFNQyxjQUFjLE1BQU07QUFDeEIsVUFBTUMsVUFBVUMsU0FBU0MsYUFBVCxDQUF1QiwrQkFBdkIsQ0FBaEI7QUFDQSxVQUFNQyxVQUFVQyxPQUNiQyxnQkFEYSxDQUNJTCxPQURKLEVBQ2EsUUFEYixFQUViTSxnQkFGYSxDQUVJLFNBRkosRUFHYkMsS0FIYSxDQUdQLEtBSE8sQ0FBaEI7QUFJQSxVQUFNQyxnQkFBZ0JDLE9BQU9OLE9BQVAsQ0FBdEI7O0FBRUFMLFVBQU1ZLFFBQU4sQ0FBZUYsYUFBZjtBQUNELEdBVEQ7O0FBV0FWLFFBQU1hLElBQU4sQ0FBV1osV0FBWDtBQUNELENBYkQiLCJmaWxlIjoid2l0aHNwZWN0cnVtL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IEZyYW56ID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tocmVmPVwiL25vdGlmaWNhdGlvbnNcIl0gPiBkaXYnKVxuICAgIGNvbnN0IGNvbnRlbnQgPSB3aW5kb3dcbiAgICAgIC5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsICc6YWZ0ZXInKVxuICAgICAgLmdldFByb3BlcnR5VmFsdWUoJ2NvbnRlbnQnKVxuICAgICAgLm1hdGNoKC9cXGQrLylcbiAgICBjb25zdCBub3RpZmljYXRpb25zID0gTnVtYmVyKGNvbnRlbnQpXG5cbiAgICBGcmFuei5zZXRCYWRnZShub3RpZmljYXRpb25zKVxuICB9XG5cbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcylcbn1cbiJdfQ== \ No newline at end of file diff --git a/uncompressed/workplace/LICENSE b/uncompressed/workplace/LICENSE new file mode 100644 index 0000000..4608c00 --- /dev/null +++ b/uncompressed/workplace/LICENSE @@ -0,0 +1,19 @@ +Copyright 2017 Rico Herwig + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/uncompressed/workplace/README.md b/uncompressed/workplace/README.md new file mode 100644 index 0000000..75791ac --- /dev/null +++ b/uncompressed/workplace/README.md @@ -0,0 +1,4 @@ +# Franz 5 Recipe: Workplace by facebook +This recipe integrates the Workplace Chat by facebook into Franz. + +You can get the latest version of Franz [here](https://meetfranz.com/). \ No newline at end of file diff --git a/uncompressed/workplace/icon.svg b/uncompressed/workplace/icon.svg new file mode 100644 index 0000000..52bef1d --- /dev/null +++ b/uncompressed/workplace/icon.svg @@ -0,0 +1,10 @@ + + + + Combined Shape + Created with Sketch. + + + + + \ No newline at end of file diff --git a/uncompressed/workplace/index.js b/uncompressed/workplace/index.js new file mode 100644 index 0000000..c638730 --- /dev/null +++ b/uncompressed/workplace/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvcmtwbGFjZS9pbmRleC5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiXSwibWFwcGluZ3MiOiI7O0FBQUFBLE9BQU9DLE9BQVAsR0FBaUJDLFNBQVNBLEtBQTFCIiwiZmlsZSI6IndvcmtwbGFjZS9pbmRleC5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gRnJhbnogPT4gRnJhbno7XG4iXX0= \ No newline at end of file diff --git a/uncompressed/workplace/package.json b/uncompressed/workplace/package.json new file mode 100644 index 0000000..596daea --- /dev/null +++ b/uncompressed/workplace/package.json @@ -0,0 +1,16 @@ +{ + "id": "workplace", + "name": "Workplace", + "version": "1.0.0", + "description": "Workplace by facebook", + "main": "index.js", + "author": "Rico Herwig ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.facebook.com/chat", + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasTeamId": true, + "urlInputSuffix": ".facebook.com" + } + } \ No newline at end of file diff --git a/uncompressed/workplace/webview.js b/uncompressed/workplace/webview.js new file mode 100644 index 0000000..c1df892 --- /dev/null +++ b/uncompressed/workplace/webview.js @@ -0,0 +1,16 @@ +'use strict'; + +const path = require('path'); + +module.exports = Franz => { + const getMessages = () => { + const $messages = document.querySelector('.uiScrollableAreaContent'); + const $unreadMessages = $messages.querySelectorAll('._1ht3 ._1ht6'); + + Franz.setBadge($unreadMessages.length); + }; + + Franz.injectCSS(path.join(__dirname, 'workplace.css')); + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndvcmtwbGFjZS93ZWJ2aWV3LmpzIl0sIm5hbWVzIjpbInBhdGgiLCJyZXF1aXJlIiwibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCIkbWVzc2FnZXMiLCJkb2N1bWVudCIsInF1ZXJ5U2VsZWN0b3IiLCIkdW5yZWFkTWVzc2FnZXMiLCJxdWVyeVNlbGVjdG9yQWxsIiwic2V0QmFkZ2UiLCJsZW5ndGgiLCJpbmplY3RDU1MiLCJqb2luIiwiX19kaXJuYW1lIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxPQUFPQyxRQUFRLE1BQVIsQ0FBYjs7QUFFQUMsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQzFCLFFBQU1DLGNBQWMsTUFBTTtBQUN4QixVQUFNQyxZQUFZQyxTQUFTQyxhQUFULENBQXVCLDBCQUF2QixDQUFsQjtBQUNBLFVBQU1DLGtCQUFrQkgsVUFBVUksZ0JBQVYsQ0FBMkIsZUFBM0IsQ0FBeEI7O0FBRUFOLFVBQU1PLFFBQU4sQ0FBZUYsZ0JBQWdCRyxNQUEvQjtBQUNELEdBTEQ7O0FBT0FSLFFBQU1TLFNBQU4sQ0FBZ0JiLEtBQUtjLElBQUwsQ0FBVUMsU0FBVixFQUFxQixlQUFyQixDQUFoQjtBQUNBWCxRQUFNWSxJQUFOLENBQVdYLFdBQVg7QUFDRCxDQVZEIiwiZmlsZSI6IndvcmtwbGFjZS93ZWJ2aWV3LmpzIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcblxubW9kdWxlLmV4cG9ydHMgPSAoRnJhbnopID0+IHtcbiAgY29uc3QgZ2V0TWVzc2FnZXMgPSAoKSA9PiB7XG4gICAgY29uc3QgJG1lc3NhZ2VzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnVpU2Nyb2xsYWJsZUFyZWFDb250ZW50Jyk7XG4gICAgY29uc3QgJHVucmVhZE1lc3NhZ2VzID0gJG1lc3NhZ2VzLnF1ZXJ5U2VsZWN0b3JBbGwoJy5fMWh0MyAuXzFodDYnKTtcblxuICAgIEZyYW56LnNldEJhZGdlKCR1bnJlYWRNZXNzYWdlcy5sZW5ndGgpO1xuICB9O1xuXG4gIEZyYW56LmluamVjdENTUyhwYXRoLmpvaW4oX19kaXJuYW1lLCAnd29ya3BsYWNlLmNzcycpKTtcbiAgRnJhbnoubG9vcChnZXRNZXNzYWdlcyk7XG59O1xuIl19 \ No newline at end of file diff --git a/uncompressed/workplace/workplace.css b/uncompressed/workplace/workplace.css new file mode 100644 index 0000000..4830348 --- /dev/null +++ b/uncompressed/workplace/workplace.css @@ -0,0 +1,4 @@ +#pagelet_bluebar, +#pageFooter { + display: none; +} diff --git a/uncompressed/xing/LICENSE b/uncompressed/xing/LICENSE new file mode 100644 index 0000000..732d3a2 --- /dev/null +++ b/uncompressed/xing/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Volker Tietz + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/xing/README.md b/uncompressed/xing/README.md new file mode 100644 index 0000000..6f8deaf --- /dev/null +++ b/uncompressed/xing/README.md @@ -0,0 +1,7 @@ +# XING Messenger integration for Franz + +See https://github.com/meetfranz/plugins/tree/master/docs for more information on Franz plugin development + +# License +MIT + diff --git a/uncompressed/xing/icon.svg b/uncompressed/xing/icon.svg new file mode 100644 index 0000000..21e19cb --- /dev/null +++ b/uncompressed/xing/icon.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/uncompressed/xing/index.js b/uncompressed/xing/index.js new file mode 100644 index 0000000..2e73f1b --- /dev/null +++ b/uncompressed/xing/index.js @@ -0,0 +1,4 @@ +"use strict"; + +module.exports = Franz => Franz; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhpbmcvaW5kZXguanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56Il0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTQSxLQUExQiIsImZpbGUiOiJ4aW5nL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBGcmFuejsiXX0= \ No newline at end of file diff --git a/uncompressed/xing/package.json b/uncompressed/xing/package.json new file mode 100644 index 0000000..407eaa2 --- /dev/null +++ b/uncompressed/xing/package.json @@ -0,0 +1,12 @@ +{ + "id": "xing", + "name": "XING", + "version": "1.1.0", + "description": "XING Messenger", + "main": "index.js", + "author": "Volker Tietz ", + "license": "MIT", + "config": { + "serviceURL": "https://www.xing.com/messenger/global" + } +} \ No newline at end of file diff --git a/uncompressed/xing/webview.js b/uncompressed/xing/webview.js new file mode 100644 index 0000000..1a8d2f0 --- /dev/null +++ b/uncompressed/xing/webview.js @@ -0,0 +1,13 @@ +'use strict'; + +module.exports = Franz => { + function getUnreadConversations() { + let unreadConversations = 0; + unreadConversations = parseInt(document.querySelector('#unread-conversations').innerHTML, 10); + + Franz.setBadge(unreadConversations); + } + + Franz.loop(getUnreadConversations); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInhpbmcvd2Vidmlldy5qcyJdLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwiRnJhbnoiLCJnZXRVbnJlYWRDb252ZXJzYXRpb25zIiwidW5yZWFkQ29udmVyc2F0aW9ucyIsInBhcnNlSW50IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiaW5uZXJIVE1MIiwic2V0QmFkZ2UiLCJsb29wIl0sIm1hcHBpbmdzIjoiOztBQUFBQSxPQUFPQyxPQUFQLEdBQWtCQyxLQUFELElBQVc7QUFDMUIsV0FBU0Msc0JBQVQsR0FBa0M7QUFDaEMsUUFBSUMsc0JBQXNCLENBQTFCO0FBQ0FBLDBCQUFzQkMsU0FBU0MsU0FBU0MsYUFBVCxDQUF1Qix1QkFBdkIsRUFBZ0RDLFNBQXpELEVBQW9FLEVBQXBFLENBQXRCOztBQUVBTixVQUFNTyxRQUFOLENBQWVMLG1CQUFmO0FBQ0Q7O0FBRURGLFFBQU1RLElBQU4sQ0FBV1Asc0JBQVg7QUFDRCxDQVREIiwiZmlsZSI6Inhpbmcvd2Vidmlldy5qcyIsInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gKEZyYW56KSA9PiB7XG4gIGZ1bmN0aW9uIGdldFVucmVhZENvbnZlcnNhdGlvbnMoKSB7XG4gICAgbGV0IHVucmVhZENvbnZlcnNhdGlvbnMgPSAwO1xuICAgIHVucmVhZENvbnZlcnNhdGlvbnMgPSBwYXJzZUludChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdW5yZWFkLWNvbnZlcnNhdGlvbnMnKS5pbm5lckhUTUwsIDEwKTtcblxuICAgIEZyYW56LnNldEJhZGdlKHVucmVhZENvbnZlcnNhdGlvbnMpO1xuICB9XG5cbiAgRnJhbnoubG9vcChnZXRVbnJlYWRDb252ZXJzYXRpb25zKTtcbn1cbjsiXX0= \ No newline at end of file diff --git a/uncompressed/yammer/LICENSE b/uncompressed/yammer/LICENSE new file mode 100644 index 0000000..dcde793 --- /dev/null +++ b/uncompressed/yammer/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Dave Reid + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/yammer/README.md b/uncompressed/yammer/README.md new file mode 100644 index 0000000..05fbe7d --- /dev/null +++ b/uncompressed/yammer/README.md @@ -0,0 +1,3 @@ +# Franz Recipe for Yammer + +This is the unofficial [Franz 5](https://meetfranz.com/) recipe for [Yammer](https://www.yammer.com/). diff --git a/uncompressed/yammer/icon.svg b/uncompressed/yammer/icon.svg new file mode 100644 index 0000000..76fad28 --- /dev/null +++ b/uncompressed/yammer/icon.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/uncompressed/yammer/index.js b/uncompressed/yammer/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/yammer/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/yammer/package.json b/uncompressed/yammer/package.json new file mode 100644 index 0000000..16b68b7 --- /dev/null +++ b/uncompressed/yammer/package.json @@ -0,0 +1,15 @@ +{ + "id": "yammer", + "name": "Yammer", + "version": "1.0.0", + "description": "Yammer plugin for Franz 5", + "main": "index.js", + "author": "Dave Reid ", + "license": "MIT", + "config": { + "serviceURL": "https://www.yammer.com/login", + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasNotificationSound": false + } +} diff --git a/uncompressed/yammer/webview.js b/uncompressed/yammer/webview.js new file mode 100644 index 0000000..8f80675 --- /dev/null +++ b/uncompressed/yammer/webview.js @@ -0,0 +1,22 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + let directMessages = 0; + let indirectMessages = 0; + const notificationElement = document.querySelector(".yj-notifications-indicator-count"); + const newMessagesElement = document.querySelector(".yj-thread-list--new-messages-notice:not(.is-hidden) .yj-thread-list--new-message-text"); + + if (notificationElement && notificationElement.innerHTML.length) { + directMessages = parseInt(notificationElement.innerHTML, 10); + } + + if (newMessagesElement && newMessagesElement.innerHTML.length) { + indirectMessages = parseInt(newMessagesElement.innerHTML.match(/\d+/)[0], 10); + } + + Franz.setBadge(directMessages, indirectMessages); + }; + + Franz.loop(getMessages); +}; \ No newline at end of file diff --git a/uncompressed/zendesk/README.md b/uncompressed/zendesk/README.md new file mode 100644 index 0000000..5fea5e3 --- /dev/null +++ b/uncompressed/zendesk/README.md @@ -0,0 +1,5 @@ +# Zendesk for Franz +This is the official Franz recipe for Zendesk + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) diff --git a/uncompressed/zendesk/icon.svg b/uncompressed/zendesk/icon.svg new file mode 100644 index 0000000..5b8e482 --- /dev/null +++ b/uncompressed/zendesk/icon.svg @@ -0,0 +1,14 @@ + + + + zendesk + Created with Sketch. + + + + + + + + + \ No newline at end of file diff --git a/uncompressed/zendesk/index.js b/uncompressed/zendesk/index.js new file mode 100644 index 0000000..e8243fb --- /dev/null +++ b/uncompressed/zendesk/index.js @@ -0,0 +1,3 @@ +"use strict"; + +module.exports = Franz => Franz; \ No newline at end of file diff --git a/uncompressed/zendesk/package.json b/uncompressed/zendesk/package.json new file mode 100644 index 0000000..8991b9a --- /dev/null +++ b/uncompressed/zendesk/package.json @@ -0,0 +1,14 @@ +{ + "id": "zendesk", + "name": "zendesk", + "version": "1.0.2", + "description": "Zendesk", + "main": "index.js", + "author": "Stefan Malzner ", + "license": "MIT", + "config": { + "serviceURL": "https://{teamId}.zendesk.com/agent", + "hasTeamId": true, + "urlInputSuffix": ".zendesk.com" + } +} diff --git a/uncompressed/zendesk/service.css b/uncompressed/zendesk/service.css new file mode 100644 index 0000000..a3d3c69 --- /dev/null +++ b/uncompressed/zendesk/service.css @@ -0,0 +1,3 @@ +html, body { + background: #FFF !important; +} \ No newline at end of file diff --git a/uncompressed/zendesk/webview.js b/uncompressed/zendesk/webview.js new file mode 100644 index 0000000..c4a77a3 --- /dev/null +++ b/uncompressed/zendesk/webview.js @@ -0,0 +1,21 @@ +"use strict"; + +var _path = _interopRequireDefault(require("path")); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +module.exports = Franz => { + const getMessages = () => { + let count = 0; + const el = document.querySelector('.dashboard-top-panel .indicators .stats-group .cell-value'); + + if (el) { + count = parseInt(el.innerHTML, 10); + } + + Franz.setBadge(count); + }; + + Franz.loop(getMessages); + Franz.injectCSS(_path.default.join(__dirname, 'service.css')); +}; \ No newline at end of file diff --git a/uncompressed/zulip/CODE_OF_CONDUCT.md b/uncompressed/zulip/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..b708254 --- /dev/null +++ b/uncompressed/zulip/CODE_OF_CONDUCT.md @@ -0,0 +1,46 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at adam.birds@adbtechltd.co.uk. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/uncompressed/zulip/LICENSE b/uncompressed/zulip/LICENSE new file mode 100644 index 0000000..e46b0c5 --- /dev/null +++ b/uncompressed/zulip/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Adam Birds + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/uncompressed/zulip/README.md b/uncompressed/zulip/README.md new file mode 100644 index 0000000..5406ac5 --- /dev/null +++ b/uncompressed/zulip/README.md @@ -0,0 +1,8 @@ +# Zulip for Franz +This is the Franz 5 Recipe for Zulip + +### For further informtion on Zulip: +* [Visit the website](https://zulipchat.com/why-zulip/) + +### How to create your own Franz recipes: +* [Read the documentation](https://github.com/meetfranz/plugins) \ No newline at end of file diff --git a/uncompressed/zulip/icon.svg b/uncompressed/zulip/icon.svg new file mode 100644 index 0000000..a64fcec --- /dev/null +++ b/uncompressed/zulip/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/uncompressed/zulip/index.js b/uncompressed/zulip/index.js new file mode 100644 index 0000000..136398c --- /dev/null +++ b/uncompressed/zulip/index.js @@ -0,0 +1,28 @@ +'use strict'; + +function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } + +module.exports = Franz => class Zulip extends Franz { + validateUrl(url) { + return _asyncToGenerator(function* () { + const baseUrl = new window.URL(url); + const apiVersion = 'api/v1'; + try { + const resp = yield window.fetch(`${baseUrl.origin}/${apiVersion}/server_settings`, { + method: 'GET', + headers: { + 'Content-Type': 'application/json' + } + }); + const data = yield resp.json(); + + return Object.hasOwnProperty.call(data, 'realm_uri'); + } catch (err) { + console.error(err); + } + + return false; + })(); + } +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInp1bGlwL2luZGV4LmpzIl0sIm5hbWVzIjpbIm1vZHVsZSIsImV4cG9ydHMiLCJGcmFueiIsIlp1bGlwIiwidmFsaWRhdGVVcmwiLCJ1cmwiLCJiYXNlVXJsIiwid2luZG93IiwiVVJMIiwiYXBpVmVyc2lvbiIsInJlc3AiLCJmZXRjaCIsIm9yaWdpbiIsIm1ldGhvZCIsImhlYWRlcnMiLCJkYXRhIiwianNvbiIsIk9iamVjdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImVyciIsImNvbnNvbGUiLCJlcnJvciJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBQSxPQUFPQyxPQUFQLEdBQWlCQyxTQUFTLE1BQU1DLEtBQU4sU0FBb0JELEtBQXBCLENBQTBCO0FBQzFDRSxlQUFOLENBQWtCQyxHQUFsQixFQUF1QjtBQUFBO0FBQ25CLGtCQUFNQyxVQUFVLElBQUlDLE9BQU9DLEdBQVgsQ0FBZUgsR0FBZixDQUFoQjtBQUNBLGtCQUFNSSxhQUFhLFFBQW5CO0FBQ0EsZ0JBQUk7QUFDQSxzQkFBTUMsT0FBTyxNQUFNSCxPQUFPSSxLQUFQLENBQWMsR0FBRUwsUUFBUU0sTUFBTyxJQUFHSCxVQUFXLGtCQUE3QyxFQUFnRTtBQUMvRUksNEJBQVEsS0FEdUU7QUFFL0VDLDZCQUFTO0FBQ0wsd0NBQWdCO0FBRFg7QUFGc0UsaUJBQWhFLENBQW5CO0FBTUEsc0JBQU1DLE9BQU8sTUFBTUwsS0FBS00sSUFBTCxFQUFuQjs7QUFFQSx1QkFBT0MsT0FBT0MsY0FBUCxDQUFzQkMsSUFBdEIsQ0FBMkJKLElBQTNCLEVBQWlDLFdBQWpDLENBQVA7QUFDSCxhQVZELENBVUUsT0FBT0ssR0FBUCxFQUFZO0FBQ1ZDLHdCQUFRQyxLQUFSLENBQWNGLEdBQWQ7QUFDSDs7QUFFRCxtQkFBTyxLQUFQO0FBakJtQjtBQWtCdEI7QUFuQitDLENBQXBEIiwiZmlsZSI6Inp1bGlwL2luZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSBGcmFueiA9PiBjbGFzcyBadWxpcCBleHRlbmRzIEZyYW56IHtcbiAgICBhc3luYyB2YWxpZGF0ZVVybCh1cmwpIHtcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IG5ldyB3aW5kb3cuVVJMKHVybCk7XG4gICAgICAgIGNvbnN0IGFwaVZlcnNpb24gPSAnYXBpL3YxJ1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IHdpbmRvdy5mZXRjaChgJHtiYXNlVXJsLm9yaWdpbn0vJHthcGlWZXJzaW9ufS9zZXJ2ZXJfc2V0dGluZ3NgLCB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlc3AuanNvbigpO1xuXG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0Lmhhc093blByb3BlcnR5LmNhbGwoZGF0YSwgJ3JlYWxtX3VyaScpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59OyJdfQ== \ No newline at end of file diff --git a/uncompressed/zulip/package.json b/uncompressed/zulip/package.json new file mode 100644 index 0000000..699330b --- /dev/null +++ b/uncompressed/zulip/package.json @@ -0,0 +1,15 @@ +{ + "id": "zulip", + "name": "Zulip", + "version": "1.0.0", + "description": "Zulip", + "main": "index.js", + "author": "Adam Birds ", + "license": "MIT", + "config": { + "hasNotificationSound": true, + "hasDirectMessages": true, + "hasIndirectMessages": true, + "hasCustomUrl": true + } +} \ No newline at end of file diff --git a/uncompressed/zulip/webview.js b/uncompressed/zulip/webview.js new file mode 100644 index 0000000..092087f --- /dev/null +++ b/uncompressed/zulip/webview.js @@ -0,0 +1,10 @@ +"use strict"; + +module.exports = Franz => { + const getMessages = function getMessages() { + const allMessages = Math.round(document.querySelectorAll("#global_filters .home-link .count .value")[0].innerText); + Franz.setBadge(allMessages); + }; + Franz.loop(getMessages); +}; +//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInp1bGlwL3dlYnZpZXcuanMiXSwibmFtZXMiOlsibW9kdWxlIiwiZXhwb3J0cyIsIkZyYW56IiwiZ2V0TWVzc2FnZXMiLCJhbGxNZXNzYWdlcyIsIk1hdGgiLCJyb3VuZCIsImRvY3VtZW50IiwicXVlcnlTZWxlY3RvckFsbCIsImlubmVyVGV4dCIsInNldEJhZGdlIiwibG9vcCJdLCJtYXBwaW5ncyI6Ijs7QUFBQUEsT0FBT0MsT0FBUCxHQUFrQkMsS0FBRCxJQUFXO0FBQ3hCLFVBQU1DLGNBQWMsU0FBU0EsV0FBVCxHQUF1QjtBQUN2QyxjQUFNQyxjQUFjQyxLQUFLQyxLQUFMLENBQVdDLFNBQVNDLGdCQUFULENBQTBCLDBDQUExQixFQUFzRSxDQUF0RSxFQUF5RUMsU0FBcEYsQ0FBcEI7QUFDQVAsY0FBTVEsUUFBTixDQUFlTixXQUFmO0FBQ0gsS0FIRDtBQUlBRixVQUFNUyxJQUFOLENBQVdSLFdBQVg7QUFDSCxDQU5EIiwiZmlsZSI6Inp1bGlwL3dlYnZpZXcuanMiLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IChGcmFueikgPT4ge1xuICAgIGNvbnN0IGdldE1lc3NhZ2VzID0gZnVuY3Rpb24gZ2V0TWVzc2FnZXMoKSB7XG4gICAgICAgIGNvbnN0IGFsbE1lc3NhZ2VzID0gTWF0aC5yb3VuZChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiI2dsb2JhbF9maWx0ZXJzIC5ob21lLWxpbmsgLmNvdW50IC52YWx1ZVwiKVswXS5pbm5lclRleHQpO1xuICAgICAgICBGcmFuei5zZXRCYWRnZShhbGxNZXNzYWdlcyk7XG4gICAgfTtcbiAgICBGcmFuei5sb29wKGdldE1lc3NhZ2VzKTtcbn07Il19 \ No newline at end of file -- cgit v1.2.3-70-g09d2