Skip to content

Commit

Permalink
Merge pull request #9 from srdjanmarjanovic/impromevent/parsers-and-c…
Browse files Browse the repository at this point in the history
…leaners-improved

Fix regex related warning
  • Loading branch information
ilijastuden committed May 9, 2016
2 parents afb9c29 + 1e2003f commit b9c50a9
Show file tree
Hide file tree
Showing 7 changed files with 60 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class AppleCloudMailExtractor extends Extractor
*/
protected function processLines()
{
$splitters = $this->getOriginalMessageSplitters();
$splitters = $this->getAllMessageSplitters();

if (!empty($splitters)) {
$this->stripOriginalMessage($splitters);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ final class AppleMailExtractor extends Extractor
*/
protected function processLines()
{
$splitters = $this->getOriginalMessageSplitters();
$splitters = $this->getAllMessageSplitters();

if (!empty($splitters)) {
$this->stripOriginalMessage($splitters);
Expand Down Expand Up @@ -39,9 +39,9 @@ protected function processLines()
*
* @return array
*/
protected function getOriginalMessageSplitters()
protected function getAllMessageSplitters()
{
return array_merge(parent::getOriginalMessageSplitters(), [
return array_merge(parent::getAllMessageSplitters(), [
'/\-------------------------/is',
]);
}
Expand Down
75 changes: 48 additions & 27 deletions src/ActiveCollab/EmailReplyExtractor/Extractor/Extractor.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ protected function splitLines()
*/
protected function processLines()
{
$splitters = $this->getOriginalMessageSplitters();
$splitters = $this->getAllMessageSplitters();

if (!empty($splitters)) {
$this->stripOriginalMessage($splitters);
Expand All @@ -70,30 +70,56 @@ public function joinLines()
$this->body = ltrim(trim(implode("\n", $this->body)), "\xEF\xBB\xBF");
}

/**
* Return original message splitters
*
* @return array
*/
protected function getOriginalMessageSplitters()
/**
* Return both plain and Regex message splitters in the regex form
*
* @return array
*/
protected function getAllMessageSplitters()
{
return [
//'On Thursday, October 15, 2015 12:50 PM, owner (Active Collab) wrote:',
'/On(.*?)wrote\:(.*?)/is',
'/^Am(.*?)schrieb(.*?)/is',
// '----- Forwarded Message -----',
'- Reply above this line to leave a comment -',
'-- REPLY ABOVE THIS LINE --',
'-- REPLY ABOVE THIS LINE',
'REPLY ABOVE THIS LINE --',
'-- Reply above this line --',
'-----Original Message-----',
'----- Original Message -----',
'-- ODGOVORI ODJE --',
'-------- Original message --------',
];
$plain_message_splitters = $this->getPlainMessageSplitters();
return array_merge(
array_map(function ($splitter) {
return '/' . $splitter . '/';
}, $plain_message_splitters),
$this->getRegexMessageSplitters()
);
}

/**
* Return original message splitters
*
* @return array
*/
protected function getPlainMessageSplitters()
{
return [
// '----- Forwarded Message -----',
'- Reply above this line to leave a comment -',
'-- REPLY ABOVE THIS LINE --',
'-- REPLY ABOVE THIS LINE',
'REPLY ABOVE THIS LINE --',
'-- Reply above this line --',
'-----Original Message-----',
'----- Original Message -----',
'-- ODGOVORI ODJE --',
'-------- Original message --------',
];
}

/**
* Return regex message splitters
*
* @return array
*/
protected function getRegexMessageSplitters()
{
return [
'/On(.*?)wrote\:(.*?)/is',
'/^Am(.*?)schrieb(.*?)/is',
];
}

/**
* Chack if string is regular expression
*
Expand Down Expand Up @@ -123,11 +149,6 @@ protected function stripOriginalMessage(array &$splitters, $trim_previous_lines

foreach ($this->body as $line) {
foreach ($splitters as $splitter) {

if(!$this->isRegex($splitter)) {
$splitter = '/'.$splitter.'/';
}

if (preg_match($splitter, $line)) {
if ($trim_previous_lines == 0) {
$this->body = $stripped;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ final class GenericExtractor extends Extractor
*
* @return array
*/
protected function getOriginalMessageSplitters()
protected function getAllMessageSplitters()
{
return array_merge(parent::getOriginalMessageSplitters(), [
return array_merge(parent::getAllMessageSplitters(), [
'/\-------------------------/is',
]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ final class OutlookExpressExtractor extends Extractor
*
* @return array
*/
protected function getOriginalMessageSplitters()
protected function getAllMessageSplitters()
{
return array_merge(parent::getOriginalMessageSplitters(), [
return array_merge(parent::getAllMessageSplitters(), [
'/\-------------------------/is',
]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ public function stripSignature()
*
* @return array
*/
protected function getOriginalMessageSplitters()
protected function getAllMessageSplitters()
{
return array_merge(parent::getOriginalMessageSplitters(), [
return array_merge(parent::getAllMessageSplitters(), [
'/\-------------------------/is',
]);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ final class YahooExtractor extends Extractor
*
* @return array
*/
protected function getOriginalMessageSplitters()
protected function getAllMessageSplitters()
{
return array_merge(parent::getOriginalMessageSplitters(), [
return array_merge(parent::getAllMessageSplitters(), [
'/\-------------------------/is',
]);
}
Expand Down

0 comments on commit b9c50a9

Please sign in to comment.