Beispiel #1
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $url = Url::where('visited', 'no')->first();
     while ($url !== false) {
         $urlText = file_get_contents($url->url);
         //Obtendo conteúdo da URL
         //Obtendo as URLs do conteúdo
         preg_match_all('/<a href=["\']?((?:.(?!["\']?\\s+(?:\\S+)=|[>"\']))+.)["\']?>/i', $urlText, $urlsArr);
         //Obtendo os E-mails do conteúdo
         preg_match_all('/\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\.[A-Z]{2,4}\\b/i', $urlText, $emailsArr);
         if (isset($urlsArr[1])) {
             $urlOriginalInfo = parse_url($url->url);
             //Dividindo as informações da URL
             foreach ($urlsArr[1] as $urlObtida) {
                 $urlObtidaInfo = parse_url($urlObtida);
                 //Dividindo as informações da URL obtida no conteúdo
                 $scheme = isset($urlObtidaInfo['scheme']) ? $urlObtidaInfo['scheme'] : $urlOriginalInfo['scheme'];
                 $host = isset($urlObtidaInfo['host']) ? $urlObtidaInfo['host'] : $urlOriginalInfo['host'];
                 $novaUrl = $scheme . "://" . $host . $urlObtida;
                 $urlObtidaJaExistente = Url::where('url', $novaUrl)->count();
                 if (!$urlObtidaJaExistente) {
                     // Não estando, insere a URL
                     $urlNova = new Url();
                     $urlNova->url = $novaUrl;
                     $urlNova->visited = "no";
                     $urlNova->save();
                 }
             }
         }
         if (isset($emailsArr[1])) {
             foreach ($emailsArr as $emailObtido) {
                 $emailObtidoJaExistente = Email::where('email', $emailObtido)->count();
                 if (!$emailObtidoJaExistente) {
                     // Não estando, insere o e-mail
                     $emailNovo = new Email();
                     $emailNovo->email = $emailObtido;
                     $emailNovo->save();
                 }
             }
         }
         //Alterando a URL visitada para visited => yes
         $url->visited = "yes";
         $url->save();
         //Pegando a próxima URL
         $url = Url::where('visited', 'no')->first();
     }
 }
Beispiel #2
0
 private function sendMail($update = FALSE)
 {
     $users = $this->db->table('user')->fetchAll();
     $signature = "\n\n<em>&mdash; " . $users[$this->user->getId()]['name'] . '</em>';
     $subject = ($update ? 'AKTUALIZACE: ' : '') . $this->inputData['title'];
     if ($this->inputData['date_end'] instanceof DateTime) {
         $subject .= ' [konání ' . $this->inputData['date_end']->format('d.m.Y H:i:s') . ']';
     }
     $mail = new Email();
     $mail->setSubject($subject)->setFrom(Email::LOCAL_ADDRESS)->setHTMLBody($this->inputData['body'] . $signature);
     foreach ($users as $user) {
         $mail->addReplyTo($user['email'], $user['name']);
         /* $mail->addTo($user['email'], $user['name']); */
     }
     $mail->addTo('*****@*****.**');
     $mail->send();
 }
Beispiel #3
0
 public function crawlAjax()
 {
     $emails = Email::take(10)->orderBy('id', 'desc')->get();
     $emailArr = array();
     foreach ($emails as $email) {
         $emailArr[] = $email->email;
     }
     return json_encode($emailArr);
 }
Beispiel #4
0
 public function endOfAuction($product)
 {
     // priprava na posilani emailu
     $email_manager = new Model\Email($this->database);
     // celkova cena
     $cost = $product->cost + $product->related('bid.id_product')->sum('deposit');
     /* --- vyrozumneni pro vyherce aukce --- */
     $winners_bid = $this->database->findAll('bid')->where('id_product', $product->id)->order('id DESC')->fetch();
     // priprava alertu pro viteze aukce
     $val['id_user'] = $winners_bid->id_user;
     $val['id_type_alert'] = 1;
     $val['added'] = $this->now;
     $val['visited'] = 0;
     $val['body'] = 'Vyhráli jste aukci produktu ' . $product->name . ' (id ' . $product->id . '). Cena produktu činí ' . number_format($cost) . ' Kč. Pro další informace k předání produktu kontaktujte ' . $product->user->name . ' (tel: ' . $product->user->phone . ', email: ' . $product->user->email . ').';
     // vlozeni alertu pro viteze do db
     $row = $this->database->insert('alert', $val);
     // a poslani emailu vitezi aukce
     $email_manager->sendEmail($winners_bid->user->email, 'end_auction_winner', $product, $winners_bid, $cost, $row->type_alert->name);
     /* --- vyrozumneni pro zbyle ucastniky aukce --- */
     $bids = $this->database->findAll('bid')->where('id_product', $product->id)->group('id_user');
     foreach ($bids as $bid) {
         if ($bid->id_user != $winners_bid->id_user) {
             // vitez aukce uz informovan byl
             // uprava alertu
             $val['id_user'] = $bid->id_user;
             $val['body'] = 'Aukci produktu ' . $product->name . ' (id ' . $product->id . '), do které jste zasáhli, vyhrál jiný účastník.';
             // vlozeni do db
             $row = $this->database->insert('alert', $val);
             // a poslani emailu porazenym
             $email_manager->sendEmail($bid->user->email, 'end_auction_others', $product, $bid, $cost, $row->type_alert->name);
         }
     }
     /* --- vyrozumneni pro zadavatele aukce --- */
     $val['id_user'] = $product->id_user;
     $val['body'] = 'Aukce produktu ' . $product->name . ' (id ' . $product->id . ') je u konce. Výherce aukce je ' . $winners_bid->user->name . ' (tel: ' . $winners_bid->user->phone . ', email: ' . $winners_bid->user->email . '), který produkt koupil za ' . number_format($cost) . ' Kč.';
     // vlozeni do db
     $row = $this->database->insert('alert', $val);
     // a poslani emailu zadavateli
     $email_manager->sendEmail($product->user->email, 'end_auction_seller', $product, $winners_bid, $cost, $row->type_alert->name);
 }
Beispiel #5
0
 protected function createComponentGrid($name)
 {
     $grid = new \App\Grid\Grid($this, $name);
     $grid->setModel($this->model->getAll());
     $grid->addColumn(new Column('name', $this->translator->translate('admin.form.name')));
     $grid->addColumn(new Column('subject', $this->translator->translate('admin.email.subject')));
     $grid->addColumn(new Column('system_name', $this->translator->translate('admin.form.systemName')));
     $grid->addColumn(new Column('id', $this->translator->translate('admin.grid.id')));
     $grid->addMenu(new \App\Grid\Menu\Update('edit', $this->translator->translate('admin.form.edit')));
     $grid->addMenu(new \App\Grid\Menu\JavascriptWindow('preview', $this->translator->translate('admin.email.preview')));
     $grid->addMenu(new \App\Grid\Menu\Delete('delete', $this->translator->translate('admin.grid.delete')));
     return $grid;
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     Email::destroy($id);
 }