Merge branch 'apull'
commit
4f3dae9623
|
@ -42,6 +42,9 @@ ___ Configuration ___
|
||||||
|
|
||||||
__ Global Configuration __
|
__ Global Configuration __
|
||||||
|
|
||||||
|
If you enabled an administrator account, please use the admin panel to cofigure
|
||||||
|
the StatusNet relay.
|
||||||
|
|
||||||
To activate this addon add statusnet to the list of active addons in your
|
To activate this addon add statusnet to the list of active addons in your
|
||||||
.htconfig.php file
|
.htconfig.php file
|
||||||
$a->config['system']['addon'] = "statusnet, ...".
|
$a->config['system']['addon'] = "statusnet, ...".
|
||||||
|
|
|
@ -18,9 +18,12 @@
|
||||||
#statusnet-default-label {
|
#statusnet-default-label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 250px;
|
width: 250px;
|
||||||
margin-bottom: 25px;
|
|
||||||
}
|
}
|
||||||
|
#statusnet-sendtaglinks-label {
|
||||||
|
float: left;
|
||||||
|
width: 250px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
#statusnet-disconnect {
|
#statusnet-disconnect {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* Name: StatusNet Connector
|
* Name: StatusNet Connector
|
||||||
* Description: Relay public postings to a connected StatusNet account
|
* Description: Relay public postings to a connected StatusNet account
|
||||||
* Version: 1.0.3
|
* Version: 1.0.4
|
||||||
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
|
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -155,6 +155,7 @@ function statusnet_settings_post ($a,$post) {
|
||||||
del_pconfig( local_user(), 'statusnet', 'oauthtoken' );
|
del_pconfig( local_user(), 'statusnet', 'oauthtoken' );
|
||||||
del_pconfig( local_user(), 'statusnet', 'oauthsecret' );
|
del_pconfig( local_user(), 'statusnet', 'oauthsecret' );
|
||||||
del_pconfig( local_user(), 'statusnet', 'baseapi' );
|
del_pconfig( local_user(), 'statusnet', 'baseapi' );
|
||||||
|
del_pconfig( local_user(), 'statusnet', 'post_taglinks');
|
||||||
} else {
|
} else {
|
||||||
if (isset($_POST['statusnet-preconf-apiurl'])) {
|
if (isset($_POST['statusnet-preconf-apiurl'])) {
|
||||||
/***
|
/***
|
||||||
|
@ -218,14 +219,16 @@ function statusnet_settings_post ($a,$post) {
|
||||||
// ok, now that we have the Access Token, save them in the user config
|
// ok, now that we have the Access Token, save them in the user config
|
||||||
set_pconfig(local_user(),'statusnet', 'oauthtoken', $token['oauth_token']);
|
set_pconfig(local_user(),'statusnet', 'oauthtoken', $token['oauth_token']);
|
||||||
set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
|
set_pconfig(local_user(),'statusnet', 'oauthsecret', $token['oauth_token_secret']);
|
||||||
set_pconfig(local_user(),'statusnet', 'post', 1);
|
set_pconfig(local_user(),'statusnet', 'post', 1);
|
||||||
|
set_pconfig(local_user(),'statusnet', 'post_taglinks', 1);
|
||||||
// reload the Addon Settings page, if we don't do it see Bug #42
|
// reload the Addon Settings page, if we don't do it see Bug #42
|
||||||
goaway($a->get_baseurl().'/settings/connectors');
|
goaway($a->get_baseurl().'/settings/connectors');
|
||||||
} else {
|
} else {
|
||||||
// if no PIN is supplied in the POST variables, the user has changed the setting
|
// if no PIN is supplied in the POST variables, the user has changed the setting
|
||||||
// to post a tweet for every new __public__ posting to the wall
|
// to post a dent for every new __public__ posting to the wall
|
||||||
set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
|
set_pconfig(local_user(),'statusnet','post',intval($_POST['statusnet-enable']));
|
||||||
set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
|
set_pconfig(local_user(),'statusnet','post_by_default',intval($_POST['statusnet-default']));
|
||||||
|
set_pconfig(local_user(),'statusnet','post_taglinks',intval($_POST['statusnet-sendtaglinks']));
|
||||||
info( t('StatusNet settings updated.') . EOL);
|
info( t('StatusNet settings updated.') . EOL);
|
||||||
}}}}
|
}}}}
|
||||||
}
|
}
|
||||||
|
@ -247,7 +250,9 @@ function statusnet_settings(&$a,&$s) {
|
||||||
$enabled = get_pconfig(local_user(), 'statusnet', 'post');
|
$enabled = get_pconfig(local_user(), 'statusnet', 'post');
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
$defenabled = get_pconfig(local_user(),'statusnet','post_by_default');
|
$defenabled = get_pconfig(local_user(),'statusnet','post_by_default');
|
||||||
$defchecked = (($defenabled) ? ' checked="checked" ' : '');
|
$defchecked = (($defenabled) ? ' checked="checked" ' : '');
|
||||||
|
$linksenabled = get_pconfig(local_user(),'statusnet','post_taglinks');
|
||||||
|
$linkschecked = (($linksenabled) ? ' checked="checked" ' : '');
|
||||||
$s .= '<div class="settings-block">';
|
$s .= '<div class="settings-block">';
|
||||||
$s .= '<h3>'. t('StatusNet Posting Settings').'</h3>';
|
$s .= '<h3>'. t('StatusNet Posting Settings').'</h3>';
|
||||||
|
|
||||||
|
@ -336,6 +341,9 @@ function statusnet_settings(&$a,&$s) {
|
||||||
$s .= '<div class="clear"></div>';
|
$s .= '<div class="clear"></div>';
|
||||||
$s .= '<label id="statusnet-default-label" for="statusnet-default">'. t('Send public postings to StatusNet by default') .'</label>';
|
$s .= '<label id="statusnet-default-label" for="statusnet-default">'. t('Send public postings to StatusNet by default') .'</label>';
|
||||||
$s .= '<input id="statusnet-default" type="checkbox" name="statusnet-default" value="1" ' . $defchecked . '/>';
|
$s .= '<input id="statusnet-default" type="checkbox" name="statusnet-default" value="1" ' . $defchecked . '/>';
|
||||||
|
$s .= '<div class="clear"></div>';
|
||||||
|
$s .= '<label id="statusnet-sendtaglinks-label" for="statusnet-sendtaglinks">'.t('Send #tag links to StatusNet').'</label>';
|
||||||
|
$s .= '<input id="statusnet-sendtaglinks" type="checkbox" name="statusnet-sendtaglinks" value="1" '. $linkschecked . '/>';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
$s .= '<div id="statusnet-disconnect-wrapper">';
|
$s .= '<div id="statusnet-disconnect-wrapper">';
|
||||||
|
@ -425,7 +433,12 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
// we can later send to StatusNet. This way we can "gain" some
|
// we can later send to StatusNet. This way we can "gain" some
|
||||||
// information during shortening of potential links but do not
|
// information during shortening of potential links but do not
|
||||||
// shorten all the links in a 200000 character long essay.
|
// shorten all the links in a 200000 character long essay.
|
||||||
$tmp = substr($b['body'], 0, 2*$max_char);
|
if (! $b['title']=='') {
|
||||||
|
$tmp = $b['title'] . ' : '. $b['body'];
|
||||||
|
$tmp = substr($tmp, 0, 2*$max_char);
|
||||||
|
} else {
|
||||||
|
$tmp = substr($b['body'], 0, 2*$max_char);
|
||||||
|
}
|
||||||
// if [url=bla][img]blub.png[/img][/url] get blub.png
|
// if [url=bla][img]blub.png[/img][/url] get blub.png
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
|
||||||
// preserve links to images, videos and audios
|
// preserve links to images, videos and audios
|
||||||
|
@ -435,11 +448,13 @@ function statusnet_post_hook(&$a,&$b) {
|
||||||
$tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
$tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
|
$linksenabled = get_pconfig($b['uid'],'statusnet','post_taglinks');
|
||||||
// if a #tag is linked, don't send the [url] over to SN
|
// if a #tag is linked, don't send the [url] over to SN
|
||||||
// this is commented out by default as it means backlinks
|
// that is, don't send if the option is not set in the
|
||||||
// to friendica, if you don't like this feel free to
|
// connector settings
|
||||||
// uncomment the following line
|
if ($linksenabled=='0') {
|
||||||
// $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
||||||
|
}
|
||||||
// preserve links to webpages
|
// preserve links to webpages
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
||||||
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
||||||
|
|
|
@ -47,6 +47,9 @@ ___ Configuration ___
|
||||||
|
|
||||||
__ Global Configuration __
|
__ Global Configuration __
|
||||||
|
|
||||||
|
If you enabled an administrator account, please use the admin panel to cofigure
|
||||||
|
the Twitter relay.
|
||||||
|
|
||||||
To activate this addon add @twitter@ to the list of active addons in your
|
To activate this addon add @twitter@ to the list of active addons in your
|
||||||
.htconfig.php file
|
.htconfig.php file
|
||||||
$a->config['system']['addon'] = "twitter, ..."
|
$a->config['system']['addon'] = "twitter, ..."
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
}
|
}
|
||||||
#twitter-disconnect-label {
|
#twitter-disconnect-label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 200px;
|
width: 250px;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -21,16 +21,25 @@
|
||||||
}
|
}
|
||||||
#twitter-enable-label {
|
#twitter-enable-label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 200px;
|
width: 250px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
#twitter-default-label {
|
||||||
|
float: left;
|
||||||
|
width: 250px;
|
||||||
|
}
|
||||||
|
#twitter-sendtaglinks-label {
|
||||||
|
float: left;
|
||||||
|
width: 250px;
|
||||||
|
margin-bottom: 25px;
|
||||||
|
}
|
||||||
|
|
||||||
#twitter-checkbox {
|
#twitter-checkbox {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
#twitter-pin-label {
|
#twitter-pin-label {
|
||||||
float: left;
|
float: left;
|
||||||
width: 200px;
|
width: 250px;
|
||||||
margin-bottom: 25px;
|
margin-bottom: 25px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
/**
|
/**
|
||||||
* Name: Twitter Connector
|
* Name: Twitter Connector
|
||||||
* Description: Relay public postings to a connected Twitter account
|
* Description: Relay public postings to a connected Twitter account
|
||||||
* Version: 1.0.2
|
* Version: 1.0.3
|
||||||
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
|
* Author: Tobias Diekershoff <https://diekershoff.homeunix.net/friendika/profile/tobias>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -93,6 +93,7 @@ function twitter_settings_post ($a,$post) {
|
||||||
del_pconfig( local_user(), 'twitter', 'oauthsecret' );
|
del_pconfig( local_user(), 'twitter', 'oauthsecret' );
|
||||||
del_pconfig( local_user(), 'twitter', 'post' );
|
del_pconfig( local_user(), 'twitter', 'post' );
|
||||||
del_pconfig( local_user(), 'twitter', 'post_by_default' );
|
del_pconfig( local_user(), 'twitter', 'post_by_default' );
|
||||||
|
del_pconfig( local_user(), 'twitter', 'post_taglinks');
|
||||||
} else {
|
} else {
|
||||||
if (isset($_POST['twitter-pin'])) {
|
if (isset($_POST['twitter-pin'])) {
|
||||||
// if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
|
// if the user supplied us with a PIN from Twitter, let the magic of OAuth happen
|
||||||
|
@ -109,6 +110,7 @@ function twitter_settings_post ($a,$post) {
|
||||||
set_pconfig(local_user(),'twitter', 'oauthtoken', $token['oauth_token']);
|
set_pconfig(local_user(),'twitter', 'oauthtoken', $token['oauth_token']);
|
||||||
set_pconfig(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
|
set_pconfig(local_user(),'twitter', 'oauthsecret', $token['oauth_token_secret']);
|
||||||
set_pconfig(local_user(),'twitter', 'post', 1);
|
set_pconfig(local_user(),'twitter', 'post', 1);
|
||||||
|
set_pconfig(local_user(),'twitter', 'post_taglinks', 1);
|
||||||
// reload the Addon Settings page, if we don't do it see Bug #42
|
// reload the Addon Settings page, if we don't do it see Bug #42
|
||||||
goaway($a->get_baseurl().'/settings/connectors');
|
goaway($a->get_baseurl().'/settings/connectors');
|
||||||
} else {
|
} else {
|
||||||
|
@ -116,6 +118,7 @@ function twitter_settings_post ($a,$post) {
|
||||||
// to post a tweet for every new __public__ posting to the wall
|
// to post a tweet for every new __public__ posting to the wall
|
||||||
set_pconfig(local_user(),'twitter','post',intval($_POST['twitter-enable']));
|
set_pconfig(local_user(),'twitter','post',intval($_POST['twitter-enable']));
|
||||||
set_pconfig(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
|
set_pconfig(local_user(),'twitter','post_by_default',intval($_POST['twitter-default']));
|
||||||
|
set_pconfig(local_user(),'twitter','post_taglinks',intval($_POST['twitter-sendtaglinks']));
|
||||||
info( t('Twitter settings updated.') . EOL);
|
info( t('Twitter settings updated.') . EOL);
|
||||||
}}
|
}}
|
||||||
}
|
}
|
||||||
|
@ -136,6 +139,8 @@ function twitter_settings(&$a,&$s) {
|
||||||
$checked = (($enabled) ? ' checked="checked" ' : '');
|
$checked = (($enabled) ? ' checked="checked" ' : '');
|
||||||
$defenabled = get_pconfig(local_user(),'twitter','post_by_default');
|
$defenabled = get_pconfig(local_user(),'twitter','post_by_default');
|
||||||
$defchecked = (($defenabled) ? ' checked="checked" ' : '');
|
$defchecked = (($defenabled) ? ' checked="checked" ' : '');
|
||||||
|
$linksenabled = get_pconfig(local_user(),'twitter','post_taglinks');
|
||||||
|
$linkschecked = (($linksenabled) ? ' checked="checked" ' : '');
|
||||||
|
|
||||||
$s .= '<div class="settings-block">';
|
$s .= '<div class="settings-block">';
|
||||||
$s .= '<h3>'. t('Twitter Posting Settings') .'</h3>';
|
$s .= '<h3>'. t('Twitter Posting Settings') .'</h3>';
|
||||||
|
@ -192,6 +197,9 @@ function twitter_settings(&$a,&$s) {
|
||||||
$s .= '<div class="clear"></div>';
|
$s .= '<div class="clear"></div>';
|
||||||
$s .= '<label id="twitter-default-label" for="twitter-default">'. t('Send public postings to Twitter by default') .'</label>';
|
$s .= '<label id="twitter-default-label" for="twitter-default">'. t('Send public postings to Twitter by default') .'</label>';
|
||||||
$s .= '<input id="twitter-default" type="checkbox" name="twitter-default" value="1" ' . $defchecked . '/>';
|
$s .= '<input id="twitter-default" type="checkbox" name="twitter-default" value="1" ' . $defchecked . '/>';
|
||||||
|
$s .= '<div class="clear"></div>';
|
||||||
|
$s .= '<label id="twitter-sendtaglinks-label" for="twitter-sendtaglinks">'.t('Send #tag links to Twitter').'</label>';
|
||||||
|
$s .= '<input id="twitter-sendtaglinks" type="checkbox" name="twitter-sendtaglinks" value="1" '. $linkschecked . '/>';
|
||||||
$s .= '</div><div class="clear"></div>';
|
$s .= '</div><div class="clear"></div>';
|
||||||
|
|
||||||
$s .= '<div id="twitter-disconnect-wrapper">';
|
$s .= '<div id="twitter-disconnect-wrapper">';
|
||||||
|
@ -291,7 +299,12 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
// we can later send to Twitter. This way we can "gain" some
|
// we can later send to Twitter. This way we can "gain" some
|
||||||
// information during shortening of potential links but do not
|
// information during shortening of potential links but do not
|
||||||
// shorten all the links in a 200000 character long essay.
|
// shorten all the links in a 200000 character long essay.
|
||||||
$tmp = substr($b['body'], 0, 2*$max_char);
|
if (! $b['title']=='') {
|
||||||
|
$tmp = $b['title'] . ' : '. $b['body'];
|
||||||
|
$tmp = substr($tmp, 0, 2*$max_char);
|
||||||
|
} else {
|
||||||
|
$tmp = substr($b['body'], 0, 2*$max_char);
|
||||||
|
}
|
||||||
// if [url=bla][img]blub.png[/img][/url] get blub.png
|
// if [url=bla][img]blub.png[/img][/url] get blub.png
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\]\[img\](\\w+.*?)\\[\\/img\]\\[\\/url\]/i', '$2', $tmp);
|
||||||
// preserve links to images, videos and audios
|
// preserve links to images, videos and audios
|
||||||
|
@ -301,12 +314,13 @@ function twitter_post_hook(&$a,&$b) {
|
||||||
$tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?youtube(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
$tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?vimeo(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
$tmp = preg_replace( '/\[\\/?audio(\\s+.*?\]|\])/i', '', $tmp);
|
||||||
|
$linksenabled = get_pconfig($b['uid'],'twitter','post_taglinks');
|
||||||
// if a #tag is linked, don't send the [url] over to SN
|
// if a #tag is linked, don't send the [url] over to SN
|
||||||
// this is commented out by default as it means backlinks
|
// that is, don't send if the option is not set in the
|
||||||
// to friendica, if you don't like this feel free to
|
// connector settings
|
||||||
// uncomment the following line
|
if ($linksenabled=='0') {
|
||||||
// $tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
$tmp = preg_replace( '/#\[url\=(\w+.*?)\](\w+.*?)\[\/url\]/i', '#$2', $tmp);
|
||||||
// preserve links to webpages
|
}
|
||||||
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[url\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/url\]/i', '$2 $1', $tmp);
|
||||||
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
$tmp = preg_replace( '/\[bookmark\=(https?\:\/\/[a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)\](\w+.*?)\[\/bookmark\]/i', '$2 $1', $tmp);
|
||||||
// find all http or https links in the body of the entry and
|
// find all http or https links in the body of the entry and
|
||||||
|
|
Loading…
Reference in New Issue