#2362 twitter. url check, bitly

This commit is contained in:
sebastian 2010-02-16 17:14:16 +00:00
parent 193e357821
commit 658374a14c
2 changed files with 74 additions and 8 deletions

View File

@ -413,7 +413,7 @@ if ($uiBrowser->userid) {
case "twitter.settings":
$Smarty->assign('dynform', $uiBrowser->TWITTER->getSettingsForm());
$Smarty->assign('twitter', array('samplefeed' => $uiBrowser->TWITTER->getFeed(true)));
$Smarty->assign('twitter', array('samplefeed' => $uiBrowser->TWITTER->getFeed(true, true)));
$Smarty->assign('act', $action);
break;
}

View File

@ -2,7 +2,10 @@
class uiTwitter {
private $Base;
private $sesttings = array();
private $settings = array(
'twitter-bitly-login' => 'campcaster',
'twitter-bitly-apikey' => 'R_2f812152bfc21035468350273ec8ff43'
);
/**
* Time in sec
@ -121,6 +124,12 @@ class uiTwitter {
'label' => 'URL (optional)',
'isPref' => true
),
array(
'rule' => 'regex',
'element' => 'twitter-url',
'format' => UI_REGEX_URL,
'rulemsg' => 'The URL seems not to be valid. You need to use http(s):// prefix.'
),
array(
'element' => 'twitter-offset',
'type' => 'select',
@ -156,6 +165,43 @@ class uiTwitter {
'element' => 'twitter-config-fieldset-close',
'type' => 'static',
'text' => '</fieldset>'
),
array(
'element' => 'twitter-shortener-fieldset-open',
'type' => 'static',
'text' => '<fieldset style="width: 300px;">'
),
array(
'element' => 'twitter-shortener-label',
'type' => 'static',
'text' => '<legend style="font-weight: bold;">URL shortener</legend>'
),
array(
'element' => 'twitter-shortener-provider',
'type' => 'select',
'label' => 'Provider',
'options' => array(
'bit.ly' => 'bit.ly',
'tinyurl.com' => 'tinyurl.com',
),
'isPref' => true
),
array(
'element' => 'twitter-bitly-login',
'type' => 'text',
'label' => 'bit.ly username',
'isPref' => true
),
array(
'element' => 'twitter-bitly-apikey',
'type' => 'text',
'label' => 'bit.ly API key',
'isPref' => true
),
array(
'element' => 'twitter-shortener-fieldset-close',
'type' => 'static',
'text' => '</fieldset>'
),
array(
'element' => 'Submit',
@ -228,7 +274,7 @@ class uiTwitter {
$this->Base->_retMsg('Twitter settings saved.');
}
public function getFeed($p_useSampledata = false)
public function getFeed($p_useSampledata = false, $p_twitterfy = false)
{
if ($p_useSampledata) {
$whatsplaying = array(
@ -259,7 +305,7 @@ class uiTwitter {
$tweetsuffix = "";
}
if (!empty($this->settings['twitter-url'])) {
$tweetsuffix = $tweetsuffix . " " . self::GetTinyUrl($this->settings['twitter-url']);
$tweetsuffix = $tweetsuffix . " " . self::shortUrl($this->settings['twitter-url']);
}
// TWEET BODY
$tweetbody = array();
@ -276,15 +322,27 @@ class uiTwitter {
}
$tweet = $tweetprefix . $tweetbody . $tweetsuffix;
if ($p_twitterfy) {
$tweet = $this->twitterify($tweet);
}
return $tweet;
}
public function getTinyUrl($p_url)
public function shortUrl($p_url)
{
$tiny = file_get_contents('http://tinyurl.com/api-create.php?url='.$p_url);
return $tiny;
switch ($this->settings['twitter-shortener-provider']) {
case 'tinyurl.com':
$short = file_get_contents('http://tinyurl.com/api-create.php?url='.$p_url);
break;
case 'bit.ly':
$short = file_get_contents("http://api.bit.ly/shorten?version=2.0.1&longUrl={$p_url}&format=text&login={$this->settings['twitter-bitly-login']}&apiKey={$this->settings['twitter-bitly-apikey']}");
break;
}
return $short;
}
public function getWhatsplaying($p_offset)
@ -335,4 +393,12 @@ class uiTwitter {
}
return false;
}
public function twitterify($ret) {
$ret = preg_replace("#(^|[\n ])([\w]+?://[\w]+[^ \"\n\r\t< ]*)#", "\\1<a href=\"\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("#(^|[\n ])((www|ftp)\.[^ \"\t\n\r< ]*)#", "\\1<a href=\"http://\\2\" target=\"_blank\">\\2</a>", $ret);
$ret = preg_replace("/@(\w+)/", "<a href=\"http://www.twitter.com/\\1\" target=\"_blank\">@\\1</a>", $ret);
$ret = preg_replace("/#(\w+)/", "<a href=\"http://search.twitter.com/search?q=\\1\" target=\"_blank\">#\\1</a>", $ret);
return $ret;
}
}