コード例 #1
0
ファイル: ItemTest.php プロジェクト: nogo/feedbox
 public function testValidate()
 {
     $item = new Item($this->db->getInstance());
     $result = $item->validate(array('id' => 1, 'read' => date('Y-m-d H:i:s'), 'starred' => '1', 'test' => 'xyz'));
     $this->assertArrayHasKey('read', $result);
     $this->assertArrayHasKey('starred', $result);
     $this->assertArrayNotHasKey('test', $result);
     $this->assertEquals(true, $result['starred']);
 }
コード例 #2
0
ファイル: SourceTest.php プロジェクト: nogo/feedbox
 public function testValidate()
 {
     $source = new Source($this->db->getInstance());
     $result = $source->validate(array('id' => 1, 'name' => "Adam Bien<script>alert('test')</script>", 'period' => 'daily', 'created_at' => date('Y-m-d H:i:s'), 'test' => 'xyz'));
     $this->assertArrayHasKey('created_at', $result);
     $this->assertArrayHasKey('period', $result);
     $this->assertArrayNotHasKey('test', $result);
     $this->assertEquals('daily', $result['period']);
     $this->assertEquals('Adam Bien', $result['name']);
 }
コード例 #3
0
ファイル: update.php プロジェクト: nogo/feedbox
<?php

use Guzzle\Http\Client;
use Nogo\Feedbox\Feed\Fetcher;
use Nogo\Feedbox\Helper\ConfigLoader;
use Nogo\Feedbox\Helper\DatabaseConnector;
use Nogo\Feedbox\Repository\Item;
use Nogo\Feedbox\Repository\Source;
use Nogo\Feedbox\Repository\Tag;
define('ROOT_DIR', dirname(__FILE__));
require ROOT_DIR . '/vendor/autoload.php';
// load API config
$configLoader = new ConfigLoader(ROOT_DIR . '/src/Nogo/Feedbox/Resources/config/default.yml', ROOT_DIR . '/data/config.yml');
$config = $configLoader->getConfig();
// database connection with pdo
$connector = new DatabaseConnector($config['database_adapter'], $config['database_dsn'], $config['database_username'], $config['database_password']);
$connection = $connector->getInstance();
// create repositories
$sourceRepository = new Source($connection);
$tagRepository = new Tag($connection);
$itemRepository = new Item($connection);
// fetch active sources with uri
$sources = $sourceRepository->findAllActiveWithUri();
// get the feed runner
$defaultWorkerClass = $config['worker.default'];
$sanitizer = new \Nogo\Feedbox\Helper\HtmlPurifierSanitizer();
$fetcher = new Fetcher();
$fetcher->setClient(new Client());
$fetcher->setTimeout($config['fetcher.timeout']);
$now = new \DateTime();
$user_id = null;
コード例 #4
0
ファイル: index.php プロジェクト: nogo/feedbox
                    if (!empty($sources)) {
                        $sourceRepository = new Source($db);
                        foreach ($sources as $source) {
                            $source['user_id'] = $user['id'];
                            $sourceRepository->persist($source);
                        }
                    }
                }
            }
            $app->render('done.html.twig', array('title' => 'Install'));
            $app->config('installed', true);
        }
    });
}
$app->get('/migrate', function () use($app) {
    $connector = new DatabaseConnector($app->config('database_adapter'), $app->config('database_dsn'), $app->config('database_username'), $app->config('database_password'));
    $db = $connector->getInstance();
    $ignore = $app->config('api.migration.ignore');
    if ($ignore == null) {
        $ignore = [];
    }
    try {
        $migrations = $db->fetchAll("SELECT * FROM version");
        foreach ($migrations as $migration) {
            $ignore[] = $migration['key'];
        }
        $ignore = array_unique($ignore);
    } catch (PDOException $e) {
    }
    $queries = $connector->migrate($db, ROOT_DIR . '/src/Nogo/Feedbox/Resources/sql/' . $app->config('database_adapter'), $ignore);
    $app->render('done.html.twig', array('title' => 'Migration', 'msg' => $queries));