Permalink
Browse files

adicionado License

  • Loading branch information...
1 parent ea4765b commit 40b76820e5ed3111d63be1acedbe7ff143b97cf2 @gpupo committed Oct 12, 2011
Showing with 65 additions and 21 deletions.
  1. +20 −0 LICENSE
  2. +16 −4 README.md
  3. +29 −17 src/CamelSpider/Spider/SpiderProcessor.php
View
20 LICENSE
@@ -0,0 +1,20 @@
+Copyright (c) 2011 Gilmar Pupo
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
View
@@ -1,5 +1,14 @@
-Camel Spider é uma [aranha](http://www.camel-spiders.net/) que coleta links e conteúdo de sites.
+CamelSpider é uma [aranha](http://www.camel-spiders.net/) que coleta links e conteúdo de sites.
+
+## Exemplo de uso da CamelSpider
+
+ Portal de notícias quer coletar novos documentos vindos de
+fontes conhecidas de notícias, então, a partir de um cadastro destas
+fontes, CamelSpider coleta estas novas notícias e armazena na base de
+dados do portal.
+
+## Filtros
Esse conteúdo é filtrado a partir de palavras chaves.
@@ -9,9 +18,9 @@ A Camel Spider é um componente a ser utilizado por uma aplicação que gerencie
A Camel Spider utiliza componentes do Zend Framework 2, Docrine Common e Goutte, e presume que será instânciada dentro de um projeto com o autoloading corretamente configurado de segundo a PRS-0.
-Queremos que a Camel Spider seja uma Spider Web que supra necessidades de projetos em PHP.
+Queremos que a Camel Spider seja uma Spider Web que supra necessidades de projetos em PHP 5.3.
-O [Camel Spider Bundle](http://github.com/gpupo/CamelSpiderBundle) integra a Camel Spider ao Symfony 2 e gerencia as assinaturas e o cache de informações.
+O [Camel Spider Bundle](http://github.com/gpupo/CamelSpiderBundle) integra a Camel Spider ao Symfony 2 e gerencia as assinaturas e o cache de informações e neste projeto complementar você pode visualizar a implementação de componentes que a CamelSpider utiliza como dependency injection mas não os implementa por ser fora de seu escopo.
## Otimização e cache
@@ -42,4 +51,7 @@ acessados diretamente do cache, pela aplicação que os utilizarão.
## Você pode contribuir com o projeto!
Este README precia de tradução e ainda temos muito trabalho pela frente e gostaríamos da sua ajuda.
-
+
+## License
+
+CamelSpider is licensed under the MIT license.
@@ -8,6 +8,15 @@
CamelSpider\Spider\SpiderAsserts as a,
Zend\Uri\Uri;
+/*
+* This file is part of the CamelSpider package.
+*
+* (c) Gilmar Pupo <g@g1mr.com>
+*
+* For the full copyright and license information, please view the LICENSE
+* file that was distributed with this source code.
+*/
+
class SpiderProcessor
{
@@ -309,8 +318,6 @@ protected function collect($target, $withLinks = false)
$this->logger($e->getMessage(), 'err');
if($this->requests === 0){
$this->errors++;
- $this->debug();
-
throw new \Exception ('Error in the first request:' . $e->getMessage());
}
}
@@ -359,21 +366,19 @@ protected function collect($target, $withLinks = false)
}
}
-
+
protected function collectLinks($crawler)
{
-
$aCollection = $crawler->filter('a');
-
- $this->logger( 'Number of links founded in request #'
- . $this->requests . ':' . $aCollection->count());
-
+ $this->logger(
+ 'Number of links founded in request #'
+ . $this->requests . ':' . $aCollection->count()
+ );
+
foreach($aCollection as $node)
{
-
$link = new Link($node);
$this->processAddLink($link);
-
}
if($aCollection->count() < 1 && $this->requests === 0){
@@ -416,21 +421,32 @@ protected function restart()
$this->elements = new SpiderElements;
}
+ protected function performLogin()
+ {
+ /**
+ * @todo Verifica se a assinatura precisa login
+ * Usa o Goutte para logar
+ * Verifica o tipo de login requerido
+ */
+ }
public function checkUpdate(InterfaceSubscription $subscription)
{
$this->restart();
$this->subscription = $subscription;
+ $this->performLogin();
$this->collect($this->subscription, true);
//coletando links e conteúdo
$i = 0;
- while($i < $this->subscription->getMaxDepth() && $this->getPool('looping')){
+ while(
+ $i < $this->subscription->getMaxDepth()
+ && $this->getPool('looping')
+ ){
$this->poolCollect(true);
- }
+ }
//agora somente o conteúdo se ainda existir algo na fila
-
if($this->getPool('conclusion')){
$this->poolCollect();
}
@@ -439,10 +455,6 @@ public function checkUpdate(InterfaceSubscription $subscription)
* print resume on CLI
**/
echo $this->getResume();
-
return $this->elements;
-
-
}
-
}

0 comments on commit 40b7682

Please sign in to comment.