|
|
@@ -2035,29 +2035,7 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|
|
xhrFields: {
|
|
|
withCredentials: false
|
|
|
},
|
|
|
- success: function(response) {
|
|
|
- let responseString = response;
|
|
|
- if (typeof responseString === 'object') {
|
|
|
- responseString = JSON.stringify(responseString);
|
|
|
- }
|
|
|
- if (typeof responseString === 'string' && responseString.length > 0) {
|
|
|
- const shortUrlMatcher = /https?:\/\/[^\s]+/g;
|
|
|
- const shortUrl = (responseString.match(shortUrlMatcher) || []).filter(URL.canParse).sort(function(a, b) {
|
|
|
- return a.length - b.length;
|
|
|
- })[0];
|
|
|
- if (typeof shortUrl === 'string' && shortUrl.length > 0) {
|
|
|
- // we disable the button to avoid calling shortener again
|
|
|
- $shortenButton.addClass('buttondisabled');
|
|
|
- // update link
|
|
|
- $pasteUrl.text(shortUrl);
|
|
|
- $pasteUrl.prop('href', shortUrl);
|
|
|
- // we pre-select the link so that the user only has to [Ctrl]+[c] the link
|
|
|
- Helper.selectText($pasteUrl[0]);
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- Alert.showError('Cannot parse response from URL shortener.');
|
|
|
- }
|
|
|
+ success: PasteStatus.extractUrl
|
|
|
})
|
|
|
.fail(function(data, textStatus, errorThrown) {
|
|
|
console.error(textStatus, errorThrown);
|
|
|
@@ -2123,6 +2101,42 @@ jQuery.PrivateBin = (function($, RawDeflate) {
|
|
|
Helper.selectText($pasteUrl[0]);
|
|
|
};
|
|
|
|
|
|
+ /**
|
|
|
+ * extracts URLs from given string
|
|
|
+ *
|
|
|
+ * if at least one is found, it disables the shortener button and
|
|
|
+ * replaces the paste URL
|
|
|
+ *
|
|
|
+ * @name PasteStatus.extractUrl
|
|
|
+ * @function
|
|
|
+ * @param {string} response
|
|
|
+ */
|
|
|
+ me.extractUrl = function(response)
|
|
|
+ {
|
|
|
+ if (typeof response === 'object') {
|
|
|
+ response = JSON.stringify(response);
|
|
|
+ }
|
|
|
+ if (typeof response === 'string' && response.length > 0) {
|
|
|
+ const shortUrlMatcher = /https?:\/\/[^\s]+/g;
|
|
|
+ const shortUrl = (response.match(shortUrlMatcher) || []).filter(function(a) {
|
|
|
+ return URL.canParse(a);
|
|
|
+ }).sort(function(a, b) {
|
|
|
+ return a.length - b.length;
|
|
|
+ })[0];
|
|
|
+ if (typeof shortUrl === 'string' && shortUrl.length > 0) {
|
|
|
+ // we disable the button to avoid calling shortener again
|
|
|
+ $shortenButton.addClass('buttondisabled');
|
|
|
+ // update link
|
|
|
+ $pasteUrl.text(shortUrl);
|
|
|
+ $pasteUrl.prop('href', shortUrl);
|
|
|
+ // we pre-select the link so that the user only has to [Ctrl]+[c] the link
|
|
|
+ Helper.selectText($pasteUrl[0]);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Alert.showError('Cannot parse response from URL shortener.');
|
|
|
+ };
|
|
|
+
|
|
|
/**
|
|
|
* shows the remaining time
|
|
|
*
|