示例#1
0
function auth()
{
    if (!empty($_GET['database'])) {
        // Return unauthorized if the requested database could not be found
        if (!Model\Database\select($_GET['database'])) {
            return array('api_version' => 3, 'auth' => 0);
        }
    }
    $credentials = Database::getInstance('db')->hashtable('settings')->get('username', 'fever_token');
    $api_key = md5($credentials['username'] . ':' . $credentials['fever_token']);
    $response = array('api_version' => 3, 'auth' => (int) (isset($_POST['api_key']) && strcasecmp($_POST['api_key'], $api_key) === 0), 'last_refreshed_on_time' => time());
    return $response;
}
示例#2
0
            Session\flash_error(t('Unable to update Miniflux, check the console for errors.'));
        }
    }
    Response\redirect('?action=config');
});
// Re-generate tokens
Router\get_action('generate-tokens', function () {
    if (Model\Config\check_csrf(Request\param('csrf'))) {
        Model\Config\new_tokens();
    }
    Response\redirect('?action=config');
});
// Optimize the database manually
Router\get_action('optimize-db', function () {
    if (Model\Config\check_csrf(Request\param('csrf'))) {
        Database::getInstance('db')->getConnection()->exec('VACUUM');
    }
    Response\redirect('?action=database');
});
// Download the compressed database
Router\get_action('download-db', function () {
    if (Model\Config\check_csrf(Request\param('csrf'))) {
        Response\force_download('db.sqlite.gz');
        Response\binary(gzencode(file_get_contents(Model\Database\get_path())));
    }
});
// Display preferences page
Router\get_action('config', function () {
    Response\html(Template\layout('config', array('errors' => array(), 'values' => Model\Config\get_all() + array('csrf' => Model\Config\generate_csrf()), 'languages' => Model\Config\get_languages(), 'timezones' => Model\Config\get_timezones(), 'autoflush_read_options' => Model\Config\get_autoflush_read_options(), 'autoflush_unread_options' => Model\Config\get_autoflush_unread_options(), 'paging_options' => Model\Config\get_paging_options(), 'theme_options' => Model\Config\get_themes(), 'sorting_options' => Model\Config\get_sorting_directions(), 'display_mode' => Model\Config\get_display_mode(), 'redirect_nothing_to_read_options' => Model\Config\get_nothing_to_read_redirections(), 'nb_unread_items' => Model\Item\count_by_status('unread'), 'menu' => 'config', 'title' => t('Preferences'))));
});
// Update preferences
示例#3
0
function get_all_favicons()
{
    if (Config\get('favicons') == 0) {
        return array();
    }
    $result = Database::getInstance('db')->table('favicons')->columns('favicons_feeds.feed_id', 'favicons.type', 'favicons.hash')->join('favicons_feeds', 'favicon_id', 'id')->findAll();
    $map = array();
    foreach ($result as $row) {
        $map[$row['feed_id']] = array("type" => $row['type'], "hash" => $row['hash']);
    }
    return $map;
}
示例#4
0
文件: feed.php 项目: cs-team/miniflux
function disable($feed_id)
{
    return Database::getInstance('db')->table('feeds')->eq('id', $feed_id)->save(array('enabled' => 0));
}
示例#5
0
/**
 * Return a new sequence token and update the database
 *
 * @access public
 * @param  string   $token        Session token
 * @return string
 */
function update($token)
{
    $new_sequence = Config\generate_token();
    Database::getInstance('db')->table(TABLE)->eq('token', $token)->update(array('sequence' => $new_sequence));
    return $new_sequence;
}
示例#6
0
文件: group.php 项目: lcaflc/miniflux
/**
 * Purge orphaned groups from database
 */
function purge_groups()
{
    $groups = Database::getInstance('db')->table('groups')->join('feeds_groups', 'group_id', 'id')->isnull('feed_id')->findAllByColumn('id');
    if (!empty($groups)) {
        Database::getInstance('db')->table('groups')->in('id', $groups)->remove();
    }
}
示例#7
0
function save(array $values)
{
    // Update the password if needed
    if (!empty($values['password'])) {
        $values['password'] = password_hash($values['password'], PASSWORD_BCRYPT);
    } else {
        unset($values['password']);
    }
    unset($values['confirmation']);
    // If the user does not want content of feeds, remove it in previous ones
    if (isset($values['nocontent']) && (bool) $values['nocontent']) {
        Database::getInstance('db')->table('items')->update(array('content' => ''));
    }
    if (Database::getInstance('db')->hashtable('settings')->put($values)) {
        reload();
        return true;
    }
    return false;
}
示例#8
0
function download_content_id($item_id)
{
    $item = get($item_id);
    $content = download_content_url($item['url']);
    if (!empty($content)) {
        if (!Config\get('nocontent')) {
            // Save content
            Database::getInstance('db')->table('items')->eq('id', $item['id'])->save(array('content' => $content));
        }
        Config\write_debug();
        return array('result' => true, 'content' => $content);
    }
    Config\write_debug();
    return array('result' => false, 'content' => '');
}
示例#9
0
文件: user.php 项目: cs-team/miniflux
function getCredentials()
{
    return Database::getInstance('db')->hashtable('settings')->get('username', 'password');
}