switch ($action)
{
case 'add':
- if($parametres_url = $url->fetchContent()) {
- if ($this->store->add($url->getUrl(), $parametres_url['title'], $parametres_url['content'], $this->user->getId())) {
- Tools::logm('add link ' . $url->getUrl());
- $sequence = '';
- if (STORAGE == 'postgres') {
- $sequence = 'entries_id_seq';
- }
- $last_id = $this->store->getLastId($sequence);
- if (DOWNLOAD_PICTURES) {
- $content = filtre_picture($parametres_url['content'], $url->getUrl(), $last_id);
- Tools::logm('updating content article');
- $this->store->updateContent($last_id, $content, $this->user->getId());
- }
- if (!$import) {
- $this->messages->add('s', _('the link has been added successfully'));
- }
+ $content = $url->extract();
+
+ if ($this->store->add($url->getUrl(), $content['title'], $content['body'], $this->user->getId())) {
+ Tools::logm('add link ' . $url->getUrl());
+ $sequence = '';
+ if (STORAGE == 'postgres') {
+ $sequence = 'entries_id_seq';
}
- else {
- if (!$import) {
- $this->messages->add('e', _('error during insertion : the link wasn\'t added'));
- Tools::logm('error during insertion : the link wasn\'t added ' . $url->getUrl());
- }
+ $last_id = $this->store->getLastId($sequence);
+ if (DOWNLOAD_PICTURES) {
+ $content = filtre_picture($content['body'], $url->getUrl(), $last_id);
+ Tools::logm('updating content article');
+ $this->store->updateContent($last_id, $content, $this->user->getId());
+ }
+ if (!$import) {
+ $this->messages->add('s', _('the link has been added successfully'));
}
}
else {
if (!$import) {
- $this->messages->add('e', _('error during fetching content : the link wasn\'t added'));
- Tools::logm('error during content fetch ' . $url->getUrl());
+ $this->messages->add('e', _('error during insertion : the link wasn\'t added'));
+ Tools::logm('error during insertion : the link wasn\'t added ' . $url->getUrl());
}
}
+
if (!$import) {
Tools::redirect();
}
}
break;
default:
- Tools::logm('action ' . $action . 'doesn\'t exist');
break;
}
}
Tools::logm('error in view call : entry is null');
}
break;
- default: # home view
+ default: # home, favorites and archive views
$entries = $this->store->getEntriesByView($view, $this->user->getId());
- $this->pagination->set_total(count($entries));
- $page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&');
- $datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
$tpl_vars = array(
- 'entries' => $datas,
- 'page_links' => $page_links,
+ 'entries' => '',
+ 'page_links' => '',
);
+ if (count($entries) > 0) {
+ $this->pagination->set_total(count($entries));
+ $page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&');
+ $datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
+ $tpl_vars['entries'] = $datas;
+ $tpl_vars['page_links'] = $page_links;
+ }
Tools::logm('display ' . $view . ' view');
break;
}
/**
* import from Instapaper. poche needs a ./instapaper-export.html file
* @todo add the return value
+ * @param string $targetFile the file used for importing
* @return boolean
*/
- private function importFromInstapaper()
+ private function importFromInstapaper($targetFile)
{
# TODO gestion des articles favs
$html = new simple_html_dom();
- $html->load_file('./instapaper-export.html');
+ $html->load_file($targetFile);
Tools::logm('starting import from instapaper');
$read = 0;
/**
* import from Pocket. poche needs a ./ril_export.html file
* @todo add the return value
+ * @param string $targetFile the file used for importing
* @return boolean
*/
- private function importFromPocket()
+ private function importFromPocket($targetFile)
{
# TODO gestion des articles favs
$html = new simple_html_dom();
- $html->load_file('./ril_export.html');
+ $html->load_file($targetFile);
Tools::logm('starting import from pocket');
$read = 0;
/**
* import from Readability. poche needs a ./readability file
* @todo add the return value
+ * @param string $targetFile the file used for importing
* @return boolean
*/
- private function importFromReadability()
+ private function importFromReadability($targetFile)
{
# TODO gestion des articles lus / favs
- $str_data = file_get_contents("./readability");
+ $str_data = file_get_contents($targetFile);
$data = json_decode($str_data,true);
Tools::logm('starting import from Readability');
$count = 0;
*/
public function import($from)
{
- if ($from == 'pocket') {
- return $this->importFromPocket();
+ $providers = array(
+ 'pocket' => 'importFromPocket',
+ 'readability' => 'importFromReadability',
+ 'instapaper' => 'importFromInstapaper'
+ );
+
+ if (! isset($providers[$from])) {
+ $this->messages->add('e', _('Unknown import provider.'));
+ Tools::redirect();
}
- else if ($from == 'readability') {
- return $this->importFromReadability();
+
+ $targetDefinition = 'IMPORT_' . strtoupper($from) . '_FILE';
+ $targetFile = constant($targetDefinition);
+
+ if (! defined($targetDefinition)) {
+ $this->messages->add('e', _('Incomplete inc/poche/define.inc.php file, please define "' . $targetDefinition . '".'));
+ Tools::redirect();
}
- else if ($from == 'instapaper') {
- return $this->importFromInstapaper();
+
+ if (! file_exists($targetFile)) {
+ $this->messages->add('e', _('Could not find required "' . $targetFile . '" import file.'));
+ Tools::redirect();
}
+
+ $this->$providers[$from]($targetFile);
}
/**
}
return $version;
}
+
+ function convertURLToBase64($plainurl){
+ $convertedURL = base64_encode($plainurl);
+ $this->action('add', new Url($convertedURL))
+ }
}
\ No newline at end of file