forked from blallo/rss-bridge
[TwitterBridge] Add category for lists (#545)
This adds a new option to generate feeds from Twitter lists using an optional filter (string comparison).
This commit is contained in:
parent
e671a2ad02
commit
4037c34393
1 changed files with 42 additions and 0 deletions
|
@ -44,6 +44,25 @@ class TwitterBridge extends BridgeAbstract {
|
||||||
'type' => 'checkbox',
|
'type' => 'checkbox',
|
||||||
'title' => 'Hide retweets'
|
'title' => 'Hide retweets'
|
||||||
)
|
)
|
||||||
|
),
|
||||||
|
'By list' => array(
|
||||||
|
'user' => array(
|
||||||
|
'name' => 'User',
|
||||||
|
'required' => true,
|
||||||
|
'exampleValue' => 'sebsauvage',
|
||||||
|
'title' => 'Insert a user name'
|
||||||
|
),
|
||||||
|
'list' => array(
|
||||||
|
'name' => 'List',
|
||||||
|
'required' => true,
|
||||||
|
'title' => 'Insert the list name'
|
||||||
|
),
|
||||||
|
'filter' => array(
|
||||||
|
'name' => 'Filter',
|
||||||
|
'exampleValue' => '#rss-bridge',
|
||||||
|
'required' => false,
|
||||||
|
'title' => 'Specify term to search for'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -57,6 +76,10 @@ class TwitterBridge extends BridgeAbstract {
|
||||||
$specific = '@';
|
$specific = '@';
|
||||||
$param = 'u';
|
$param = 'u';
|
||||||
break;
|
break;
|
||||||
|
case 'By list':
|
||||||
|
$specific = $this->getInput('user');
|
||||||
|
$param = 'list';
|
||||||
|
break;
|
||||||
default: return parent::getName();
|
default: return parent::getName();
|
||||||
}
|
}
|
||||||
return 'Twitter ' . $specific . $this->getInput($param);
|
return 'Twitter ' . $specific . $this->getInput($param);
|
||||||
|
@ -74,6 +97,11 @@ class TwitterBridge extends BridgeAbstract {
|
||||||
. urlencode($this->getInput('u'));
|
. urlencode($this->getInput('u'));
|
||||||
// Always return without replies!
|
// Always return without replies!
|
||||||
// . ($this->getInput('norep') ? '' : '/with_replies');
|
// . ($this->getInput('norep') ? '' : '/with_replies');
|
||||||
|
case 'By list':
|
||||||
|
return self::URI
|
||||||
|
. urlencode($this->getInput('user'))
|
||||||
|
. '/lists/'
|
||||||
|
. str_replace(' ', '-', strtolower($this->getInput('list')));
|
||||||
default: return parent::getURI();
|
default: return parent::getURI();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -88,6 +116,8 @@ class TwitterBridge extends BridgeAbstract {
|
||||||
returnServerError('No results for this query.');
|
returnServerError('No results for this query.');
|
||||||
case 'By username':
|
case 'By username':
|
||||||
returnServerError('Requested username can\'t be found.');
|
returnServerError('Requested username can\'t be found.');
|
||||||
|
case 'By list':
|
||||||
|
returnServerError('Requested username or list can\'t be found');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -132,6 +162,18 @@ class TwitterBridge extends BridgeAbstract {
|
||||||
// generate the title
|
// generate the title
|
||||||
$item['title'] = strip_tags($this->fixAnchorSpacing($tweet->find('p.js-tweet-text', 0), '<a>'));
|
$item['title'] = strip_tags($this->fixAnchorSpacing($tweet->find('p.js-tweet-text', 0), '<a>'));
|
||||||
|
|
||||||
|
switch($this->queriedContext) {
|
||||||
|
case 'By list':
|
||||||
|
// Check if filter applies to list (using raw content)
|
||||||
|
if(!is_null($this->getInput('filter'))) {
|
||||||
|
if(stripos($tweet->find('p.js-tweet-text', 0)->plaintext, $this->getInput('filter')) === false) {
|
||||||
|
continue 2; // switch + for-loop!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
$this->processContentLinks($tweet);
|
$this->processContentLinks($tweet);
|
||||||
$this->processEmojis($tweet);
|
$this->processEmojis($tweet);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue