diff options
Diffstat (limited to 'bridges/DiceBridge.php')
-rw-r--r-- | bridges/DiceBridge.php | 236 |
1 files changed, 120 insertions, 116 deletions
diff --git a/bridges/DiceBridge.php b/bridges/DiceBridge.php index ced793fe..5b764aef 100644 --- a/bridges/DiceBridge.php +++ b/bridges/DiceBridge.php @@ -1,123 +1,127 @@ <?php -class DiceBridge extends BridgeAbstract { - const MAINTAINER = 'rogerdc'; - const NAME = 'Dice Unofficial RSS'; - const URI = 'https://www.dice.com/'; - const DESCRIPTION = 'The Unofficial Dice RSS'; - // const CACHE_TIMEOUT = 86400; // 1 day +class DiceBridge extends BridgeAbstract +{ + const MAINTAINER = 'rogerdc'; + const NAME = 'Dice Unofficial RSS'; + const URI = 'https://www.dice.com/'; + const DESCRIPTION = 'The Unofficial Dice RSS'; + // const CACHE_TIMEOUT = 86400; // 1 day - const PARAMETERS = array(array( - 'for_one' => array( - 'name' => 'With at least one of the words', - 'required' => false, - ), - 'for_all' => array( - 'name' => 'With all of the words', - 'required' => false, - ), - 'for_exact' => array( - 'name' => 'With the exact phrase', - 'required' => false, - ), - 'for_none' => array( - 'name' => 'With none of these words', - 'required' => false, - ), - 'for_jt' => array( - 'name' => 'Within job title', - 'required' => false, - ), - 'for_com' => array( - 'name' => 'Within company name', - 'required' => false, - ), - 'for_loc' => array( - 'name' => 'City, State, or ZIP code', - 'required' => false, - ), - 'radius' => array( - 'name' => 'Radius in miles', - 'type' => 'list', - 'required' => false, - 'values' => array( - 'Exact Location' => 'El', - 'Within 5 miles' => '5', - 'Within 10 miles' => '10', - 'Within 20 miles' => '20', - 'Within 30 miles' => '0', - 'Within 40 miles' => '40', - 'Within 50 miles' => '50', - 'Within 75 miles' => '75', - 'Within 100 miles' => '100', - ), - 'defaultValue' => '0', - ), - 'jtype' => array( - 'name' => 'Job type', - 'type' => 'list', - 'required' => false, - 'values' => array( - 'Full-Time' => 'Full Time', - 'Part-Time' => 'Part Time', - 'Contract - Independent' => 'Contract Independent', - 'Contract - W2' => 'Contract W2', - 'Contract to Hire - Independent' => 'C2H Independent', - 'Contract to Hire - W2' => 'C2H W2', - 'Third Party - Contract - Corp-to-Corp' => 'Contract Corp-To-Corp', - 'Third Party - Contract to Hire - Corp-to-Corp' => 'C2H Corp-To-Corp', - ), - 'defaultValue' => 'Full Time', - ), - 'telecommute' => array( - 'name' => 'Telecommute', - 'type' => 'checkbox', - ), - )); + const PARAMETERS = [[ + 'for_one' => [ + 'name' => 'With at least one of the words', + 'required' => false, + ], + 'for_all' => [ + 'name' => 'With all of the words', + 'required' => false, + ], + 'for_exact' => [ + 'name' => 'With the exact phrase', + 'required' => false, + ], + 'for_none' => [ + 'name' => 'With none of these words', + 'required' => false, + ], + 'for_jt' => [ + 'name' => 'Within job title', + 'required' => false, + ], + 'for_com' => [ + 'name' => 'Within company name', + 'required' => false, + ], + 'for_loc' => [ + 'name' => 'City, State, or ZIP code', + 'required' => false, + ], + 'radius' => [ + 'name' => 'Radius in miles', + 'type' => 'list', + 'required' => false, + 'values' => [ + 'Exact Location' => 'El', + 'Within 5 miles' => '5', + 'Within 10 miles' => '10', + 'Within 20 miles' => '20', + 'Within 30 miles' => '0', + 'Within 40 miles' => '40', + 'Within 50 miles' => '50', + 'Within 75 miles' => '75', + 'Within 100 miles' => '100', + ], + 'defaultValue' => '0', + ], + 'jtype' => [ + 'name' => 'Job type', + 'type' => 'list', + 'required' => false, + 'values' => [ + 'Full-Time' => 'Full Time', + 'Part-Time' => 'Part Time', + 'Contract - Independent' => 'Contract Independent', + 'Contract - W2' => 'Contract W2', + 'Contract to Hire - Independent' => 'C2H Independent', + 'Contract to Hire - W2' => 'C2H W2', + 'Third Party - Contract - Corp-to-Corp' => 'Contract Corp-To-Corp', + 'Third Party - Contract to Hire - Corp-to-Corp' => 'C2H Corp-To-Corp', + ], + 'defaultValue' => 'Full Time', + ], + 'telecommute' => [ + 'name' => 'Telecommute', + 'type' => 'checkbox', + ], + ]]; - public function getIcon() { - return 'https://assets.dice.com/techpro/img/favicons/favicon.ico'; - } + public function getIcon() + { + return 'https://assets.dice.com/techpro/img/favicons/favicon.ico'; + } - public function collectData() { - $uri = 'https://www.dice.com/jobs/advancedResult.html'; - $uri .= '?for_one=' . urlencode($this->getInput('for_one')); - $uri .= '&for_all=' . urlencode($this->getInput('for_all')); - $uri .= '&for_exact=' . urlencode($this->getInput('for_exact')); - $uri .= '&for_none=' . urlencode($this->getInput('for_none')); - $uri .= '&for_jt=' . urlencode($this->getInput('for_jt')); - $uri .= '&for_com=' . urlencode($this->getInput('for_com')); - $uri .= '&for_loc=' . urlencode($this->getInput('for_loc')); - if ($this->getInput('jtype')) { - $uri .= '&jtype=' . urlencode($this->getInput('jtype')); - } - $uri .= '&sort=date&limit=100'; - $uri .= '&radius=' . urlencode($this->getInput('radius')); - if ($this->getInput('telecommute')) { - $uri .= '&telecommute=true'; - } + public function collectData() + { + $uri = 'https://www.dice.com/jobs/advancedResult.html'; + $uri .= '?for_one=' . urlencode($this->getInput('for_one')); + $uri .= '&for_all=' . urlencode($this->getInput('for_all')); + $uri .= '&for_exact=' . urlencode($this->getInput('for_exact')); + $uri .= '&for_none=' . urlencode($this->getInput('for_none')); + $uri .= '&for_jt=' . urlencode($this->getInput('for_jt')); + $uri .= '&for_com=' . urlencode($this->getInput('for_com')); + $uri .= '&for_loc=' . urlencode($this->getInput('for_loc')); + if ($this->getInput('jtype')) { + $uri .= '&jtype=' . urlencode($this->getInput('jtype')); + } + $uri .= '&sort=date&limit=100'; + $uri .= '&radius=' . urlencode($this->getInput('radius')); + if ($this->getInput('telecommute')) { + $uri .= '&telecommute=true'; + } - $html = getSimpleHTMLDOM($uri); - foreach($html->find('div.complete-serp-result-div') as $element) { - $item = array(); - // Title - $masterLink = $element->find('a[id^=position]', 0); - $item['title'] = $masterLink->title; - // URL - $uri = $masterLink->href; - // $uri = substr($uri, 0, strrpos($uri, '?')); - $item['uri'] = substr($uri, 0, strrpos($uri, '?')); - // ID - $item['id'] = $masterLink->value; - // Image - $image = $element->find('img', 0); - if ($image) - $item['image'] = $image->getAttribute('src'); - // Content - $shortdesc = $element->find('.shortdesc', '0'); - $shortdesc = ($shortdesc) ? $shortdesc->innertext : ''; - $item['content'] = $shortdesc; - $this->items[] = $item; - } - } + $html = getSimpleHTMLDOM($uri); + foreach ($html->find('div.complete-serp-result-div') as $element) { + $item = []; + // Title + $masterLink = $element->find('a[id^=position]', 0); + $item['title'] = $masterLink->title; + // URL + $uri = $masterLink->href; + // $uri = substr($uri, 0, strrpos($uri, '?')); + $item['uri'] = substr($uri, 0, strrpos($uri, '?')); + // ID + $item['id'] = $masterLink->value; + // Image + $image = $element->find('img', 0); + if ($image) { + $item['image'] = $image->getAttribute('src'); + } + // Content + $shortdesc = $element->find('.shortdesc', '0'); + $shortdesc = ($shortdesc) ? $shortdesc->innertext : ''; + $item['content'] = $shortdesc; + $this->items[] = $item; + } + } } |