Skip to content

Instantly share code, notes, and snippets.

@luislobo14rap
Last active June 6, 2021 18:29
Show Gist options
  • Select an option

  • Save luislobo14rap/2845542177ef3ed4d816d02af213bbcb to your computer and use it in GitHub Desktop.

Select an option

Save luislobo14rap/2845542177ef3ed4d816d02af213bbcb to your computer and use it in GitHub Desktop.
notify-api.js
// notifyAPI.js v1.1, inspired by https://developer.mozilla.org/en-US/docs/Web/API/Notification/permission
let notifyAPI = {
support: function() {
return 'Notification' in window;
},
permission: function() {
switch (Notification.permission) {
case 'granted':
return true;
break;
case 'denied':
return false;
break;
default:
return null;
};
},
requestPermission: function(resolve = function() {}, reject = function() {}) {
Notification.requestPermission().then(function(permission) {
switch (permission) {
case 'granted':
resolve();
break;
default:
reject();
};
});
},
noty: function(title = '', body = '', icon = 'data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU1NzcyLCAyMDE0LzAxLzEzLTE5OjQ0OjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkIxRUU2MTRFNDdBMTFFODhCRjJGOEMwNEVBRUMyNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkIxRUU2MTVFNDdBMTFFODhCRjJGOEMwNEVBRUMyNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQjFFRTYxMkU0N0ExMUU4OEJGMkY4QzA0RUFFQzI0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQjFFRTYxM0U0N0ExMUU4OEJGMkY4QzA0RUFFQzI0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==', audio, goToPage) {
let thisNotification = new Notification(title, {
body: body,
icon: icon
});
if (typeof audio == 'string') {
audio = $('<audio src="' + audio + '" autoplay="autoplay"></audio>').appendTo('body');
audio[0].onended = function() {
audio.remove();
};
};
if (typeof goToPage == 'string') {
if (goToPage.indexOf('://') == -1) {
goToPage = '//' + goToPage;
};
thisNotification.onclick = function(e) {
e.preventDefault();
window.open(goToPage, '_blank');
};
};
}
};
// notify-api.min.js v1.1
let notifyAPI={support:function(){return'Notification'in window},permission:function(){switch(Notification.permission){case'granted':return!0;break;case'denied':return!1;break;default:return null;}},requestPermission:function(a=function(){},b=function(){}){Notification.requestPermission().then(function(c){'granted'===c?a():b()})},noty:function(a='',b='',c='data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS41LWMwMjEgNzkuMTU1NzcyLCAyMDE0LzAxLzEzLTE5OjQ0OjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNCAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QkIxRUU2MTRFNDdBMTFFODhCRjJGOEMwNEVBRUMyNEYiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QkIxRUU2MTVFNDdBMTFFODhCRjJGOEMwNEVBRUMyNEYiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCQjFFRTYxMkU0N0ExMUU4OEJGMkY4QzA0RUFFQzI0RiIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCQjFFRTYxM0U0N0ExMUU4OEJGMkY4QzA0RUFFQzI0RiIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgH//v38+/r5+Pf29fTz8vHw7+7t7Ovq6ejn5uXk4+Lh4N/e3dzb2tnY19bV1NPS0dDPzs3My8rJyMfGxcTDwsHAv769vLu6ubi3trW0s7KxsK+urayrqqmop6alpKOioaCfnp2cm5qZmJeWlZSTkpGQj46NjIuKiYiHhoWEg4KBgH9+fXx7enl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmFgX15dXFtaWVhXVlVUU1JRUE9OTUxLSklIR0ZFRENCQUA/Pj08Ozo5ODc2NTQzMjEwLy4tLCsqKSgnJiUkIyIhIB8eHRwbGhkYFxYVFBMSERAPDg0MCwoJCAcGBQQDAgEAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==',d,f){let g=new Notification(a,{body:b,icon:c});'string'==typeof d&&(d=$('<audio src="'+d+'" autoplay="autoplay"></audio>').appendTo('body'),d[0].onended=function(){d.remove()});'string'==typeof f&&(-1==f.indexOf('://')&&(f='//'+f),g.onclick=function(h){h.preventDefault(),window.open(f,'_blank')})}};
@luislobo14rap

Copy link
Copy Markdown
Author

example of use: notifyAPI.noty('Lorem ipsum dolor sit amet', 'Consectetur adipiscing elit. nunc pellentesque elit non quam vehicula, et semper purus condimentum. nulla gravida magna quis augue rhoncus, at varius nibh euismod.', 'link with .gif|.jpg|.jpeg|.png', 'link with .mp3|.wav|.ogg', 'only http*');

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment