public function handle() { $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(false); $iurlr->setMessage("You can't import from the same site!"); return $iurlr; }
public function handle() { global $CONFIG; $this->new = $this->existing = $this->saved = $this->inpast = $this->tofarinfuture = $this->notvalid = 0; $this->addUIDCounter = 1; $this->importedEventOccurrenceToEvent = new ImportedEventOccurrenceToEvent(); $this->importedEventOccurrenceToEvent->setFromImportURlRun($this->importURLRun); foreach ($this->icalParser->getEvents() as $icalevent) { if ($this->importURLRun->hasFlag(ImportURLRun::$FLAG_ADD_UIDS) && !$icalevent->getUid()) { $icalevent->setUid("ADDEDBYIMPORTER" . $this->addUIDCounter); ++$this->addUIDCounter; } if ($icalevent->getStart() && $icalevent->getEnd() && $icalevent->getUid() && $icalevent->getStart()->getTimeStamp() <= $icalevent->getEnd()->getTimeStamp()) { $this->processICalEvent($icalevent); } else { $this->notvalid++; } } $this->saved += $this->importedEventOccurrenceToEvent->deleteEventsNotSeenAfterRun(); $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(true); $iurlr->setNewCount($this->new); $iurlr->setExistingCount($this->existing); $iurlr->setSavedCount($this->saved); $iurlr->setInPastCount($this->inpast); $iurlr->setToFarInFutureCount($this->tofarinfuture); $iurlr->setNotValidCount($this->notvalid); $iurlr->setMessage("ICAL Feed found"); return $iurlr; }
public function fetchAll() { $this->buildStart(); $this->build(); $this->buildStat(); $results = array(); while ($data = $this->stat->fetch()) { $importURLResult = new ImportURLResultModel(); $importURLResult->setFromDataBaseRow($data); $results[] = $importURLResult; } return $results; }
public function go(ImportURLModel $importURL) { global $app; $iurlrRepo = new ImportURLResultRepository(); $importURLRun = new ImportURLRun($importURL); $handlers = array(); // Get foreach ($app['extensions']->getExtensionsIncludingCore() as $extension) { foreach ($extension->getImportURLHandlers() as $handler) { $handlers[] = $handler; } } // Sort usort($handlers, function ($a, $b) { if ($a->getSortOrder() == $b->getSortOrder()) { return 0; } else { if ($a->getSortOrder() > $b->getSortOrder()) { return 1; } else { if ($a->getSortOrder() < $b->getSortOrder()) { return -1; } } } }); // Run foreach ($handlers as $handler) { $handler->setImportURLRun($importURLRun); if ($handler->canHandle()) { if ($handler->isStopAfterHandling()) { $iurlr = $handler->handle(); $iurlr->setImportUrlId($importURL->getId()); $iurlrRepo->create($iurlr); return; } else { $handler->handle(); } } } // Log that couldn't handle feed $iurlr = new ImportURLResultModel(); $iurlr->setImportUrlId($importURL->getId()); $iurlr->setIsSuccess(false); $iurlr->setMessage("Did not recognise data"); $iurlrRepo->create($iurlr); }
public function handle() { $this->new = $this->existing = $this->saved = $this->inpast = $this->tofarinfuture = $this->notvalid = 0; $this->importedEventOccurrenceToEvent = new ImportedEventOccurrenceToEvent(); $this->importedEventOccurrenceToEvent->setFromImportURlRun($this->importURLRun); $postdata = array('action' => 'searchHustings', 'constitId' => 0, 'constitName' => ''); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://ctbielections.org.uk/wp-admin/admin-ajax.php"); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postdata)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Linux; Android 5.0.1; Nexus 9 Build/LRX22C) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.93 Safari/537.36'); $data = curl_exec($ch); $response = curl_getinfo($ch); curl_close($ch); if ($response['http_code'] != 200) { $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(false); $iurlr->setMessage("Special CTBI feed found, but error code: " . $response['http_code']); return $iurlr; } $dataObj = json_decode($data); foreach ($dataObj as $hustingJSON) { if ($hustingJSON->eventType == 'E') { $this->processEvent($hustingJSON); } } $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(true); $iurlr->setNewCount($this->new); $iurlr->setExistingCount($this->existing); $iurlr->setSavedCount($this->saved); $iurlr->setInPastCount($this->inpast); $iurlr->setToFarInFutureCount($this->tofarinfuture); $iurlr->setNotValidCount($this->notvalid); $iurlr->setMessage("Special CTBI feed found"); return $iurlr; }
public function handle() { global $app; $this->countNew = 0; $this->countExisting = 0; $this->countSaved = 0; $this->countInPast = 0; $this->countToFarInFuture = 0; $this->countNotValid = 0; $this->importedEventsToEvents = new ImportedEventsToEvents(); $this->importedEventsToEvents->setFromImportURlRun($this->importURLRun); $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(true); $iurlr->setMessage("Meetup data found"); try { if ($this->eventId) { $meetupData = $this->getMeetupDataForEventID($this->eventId); if ($meetupData) { $this->processMeetupData($meetupData); } } else { if ($this->groupName) { foreach ($this->getMeetupDatasForGroupname($this->groupName) as $meetupData) { $this->processMeetupData($meetupData); } } } } catch (ImportURLMeetupHandlerAPIError $err) { $iurlr->setIsSuccess(false); $iurlr->setMessage("Meetup API error: " . $err->getCode() . " " . $err->getMessage()); } // Now run the thing to make imported events real events! $this->importedEventsToEvents->run(); $iurlr->setNewCount($this->countNew); $iurlr->setExistingCount($this->countExisting); $iurlr->setSavedCount($this->countSaved); $iurlr->setInPastCount($this->countInPast); $iurlr->setToFarInFutureCount($this->countToFarInFuture); $iurlr->setNotValidCount($this->countNotValid); return $iurlr; }
public function handle() { global $app; $this->countNew = 0; $this->countExisting = 0; $this->countSaved = 0; $this->countInPast = 0; $this->countToFarInFuture = 0; $this->countNotValid = 0; $extension = $app['extensions']->getExtensionById('org.openacalendar.facebook'); $appID = $app['appconfig']->getValue($extension->getAppConfigurationDefinition('app_id')); $appSecret = $app['appconfig']->getValue($extension->getAppConfigurationDefinition('app_secret')); $userToken = $app['appconfig']->getValue($extension->getAppConfigurationDefinition('user_token')); FacebookSession::setDefaultApplication($appID, $appSecret); $this->importedEventsToEvents = new ImportedEventsToEvents(); $this->importedEventsToEvents->setFromImportURlRun($this->importURLRun); $iurlr = new ImportURLResultModel(); $iurlr->setIsSuccess(true); $iurlr->setMessage("Facebook data found"); if ($this->eventId && $appID && $appSecret && $userToken) { try { $fbData = $this->getFBDataForEventID($this->eventId); if ($fbData) { $this->processFBData($this->eventId, $fbData); } } catch (FacebookAuthorizationException $err) { $iurlr->setIsSuccess(false); $iurlr->setMessage("Facebook API error: " . $err->getCode() . " " . $err->getMessage()); } } // Now run the thing to make imported events real events! $this->importedEventsToEvents->run(); $iurlr->setNewCount($this->countNew); $iurlr->setExistingCount($this->countExisting); $iurlr->setSavedCount($this->countSaved); $iurlr->setInPastCount($this->countInPast); $iurlr->setToFarInFutureCount($this->countToFarInFuture); $iurlr->setNotValidCount($this->countNotValid); return $iurlr; }
public function create(ImportURLResultModel $importURLResult) { global $DB; $stat = $DB->prepare("INSERT INTO import_url_result (import_url_id,new_count,existing_count,saved_count,in_past_count,to_far_in_future_count,not_valid_count,created_at,is_success,message) " . "VALUES (:import_url_id,:new_count,:existing_count,:saved_count,:in_past_count,:to_far_in_future_count,:not_valid_count,:created_at,:is_success,:message)"); $stat->execute(array('import_url_id' => $importURLResult->getImportUrlId(), 'new_count' => $importURLResult->getNewCount(), 'existing_count' => $importURLResult->getExistingCount(), 'saved_count' => $importURLResult->getSavedCount(), 'in_past_count' => $importURLResult->getInPastCount(), 'to_far_in_future_count' => $importURLResult->getToFarInFutureCount(), 'not_valid_count' => $importURLResult->getNotValidCount(), 'created_at' => \TimeSource::getFormattedForDataBase(), 'is_success' => $importURLResult->getIsSuccess() ? 1 : 0, 'message' => $importURLResult->getMessage())); }