Advertisement
CodeWarrior-Hawaii

Image Utilities

Jan 5th, 2015
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. app.factory('Utilities', function ($q) {
  2.     return {
  3.         isImage: function (src) {
  4.             var deferred = $q.defer();
  5.  
  6.             var image = new Image();
  7.             image.onerror = function () {
  8.                 deferred.resolve(false);
  9.             };
  10.             image.onload = function () {
  11.                 deferred.resolve(true);
  12.             };
  13.             image.src = src;
  14.  
  15.             return deferred.promise;
  16.         },
  17.         replaceURLWithLink: function (text) {
  18.             var expression = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
  19.             return text.replace(expression, "<a href='$1' target='_blank'>$1</a>");
  20.         },
  21.         replaceURLWithImg: function (text) {
  22.             var expression = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
  23.             return text.replace(expression, "<a href='$1' target='_blank'><img src='$1' hieght='80' width='80' /></a>");
  24.         },
  25.         ProcessLinks: function (message) {
  26.             var _self = this;
  27.             var expression = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
  28.             var matches = message.match(expression);
  29.             if (matches[0].trim.length == message.trim.length) {
  30.                 _self.isImage(message).then(function() {
  31.                     return _self.replaceURLWithImg(message);
  32.                 });
  33.                 return _self.replaceURLWithLink(message);
  34.             }
  35.             return message;
  36.         },
  37.         HasLink: function (message) {
  38.             var expression = /(\b(https?):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
  39.             return message.match(expression) && message.match(expression).length > 0;
  40.         }
  41.  
  42.     };
  43. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement