Documentation ¶
Overview ¶
Package database manages storage for GoPkgDoc.
Index ¶
- func PurgeIndex(c context.Context) error
- type Database
- func (db *Database) AddBadCrawl(path string) error
- func (db *Database) AddNewCrawl(importPath string) error
- func (db *Database) AllPackages() ([]Package, error)
- func (db *Database) Block(root string) error
- func (db *Database) BumpCrawl(projectRoot string) error
- func (db *Database) CheckHealth() error
- func (db *Database) Delete(ctx context.Context, path string) error
- func (db *Database) DeleteIndex(ctx context.Context, id string) error
- func (db *Database) Do(f func(*PackageInfo) error) error
- func (db *Database) Exists(path string) (bool, error)
- func (db *Database) Get(ctx context.Context, path string) (*doc.Package, []Package, time.Time, error)
- func (db *Database) GetDoc(ctx context.Context, path string) (*doc.Package, time.Time, error)
- func (db *Database) GetGob(key string, value interface{}) error
- func (db *Database) GoIndex() ([]Package, error)
- func (db *Database) GoSubrepoIndex() ([]Package, error)
- func (db *Database) ImportGraph(pdoc *doc.Package, level DepLevel) ([]Package, [][2]int, error)
- func (db *Database) ImporterCount(path string) (int, error)
- func (db *Database) Importers(path string) ([]Package, error)
- func (db *Database) IncrementCounter(key string, delta float64) (float64, error)
- func (db *Database) IncrementPopularScore(path string) error
- func (db *Database) Index() ([]Package, error)
- func (db *Database) IsBlocked(path string) (bool, error)
- func (db *Database) Packages(paths []string) ([]Package, error)
- func (db *Database) PopNewCrawl() (string, bool, error)
- func (db *Database) Popular(count int) ([]Package, error)
- func (db *Database) PopularWithScores() ([]Package, error)
- func (db *Database) Project(projectRoot string) ([]Package, error)
- func (db *Database) Put(ctx context.Context, pdoc *doc.Package, nextCrawl time.Time, hide bool) error
- func (db *Database) PutGob(key string, value interface{}) error
- func (db *Database) PutIndex(ctx context.Context, pdoc *doc.Package, id string, score float64, ...) error
- func (db *Database) Query(q string) ([]Package, error)
- func (db *Database) Reindex(ctx context.Context) error
- func (db *Database) Search(ctx context.Context, q string) ([]Package, error)
- func (db *Database) SetNextCrawl(path string, t time.Time) error
- type DepLevel
- type Package
- type PackageInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func PurgeIndex ¶
PurgeIndex deletes all the packages from the search index. TODO(shantuo): wrap this with db and use db.RemoteClient to create the context.
Types ¶
type Database ¶
type Database struct { Pool interface { Get() redis.Conn } RemoteClient *remote_api.Client }
func New ¶
func New(serverURI string, idleTimeout time.Duration, logConn bool, gaeEndpoint string) (*Database, error)
New creates a gddo database. serverURI, idleTimeout, and logConn configure the use of redis. gaeEndpoint is the target of the App Engine remoteapi endpoint.
func (*Database) AddBadCrawl ¶
func (*Database) AddNewCrawl ¶
func (*Database) AllPackages ¶
func (*Database) Block ¶
Block puts a domain, repo or package into the block set, removes all the packages under it from the database and prevents future crawling from it.
func (*Database) CheckHealth ¶
func (*Database) DeleteIndex ¶
DeleteIndex deletes a package from App Engine search index. ID is the package ID in the database. It is no-op when running locally without setting up remote_api.
func (*Database) Do ¶
func (db *Database) Do(f func(*PackageInfo) error) error
Do executes function f for each document in the database.
func (*Database) Get ¶
func (db *Database) Get(ctx context.Context, path string) (*doc.Package, []Package, time.Time, error)
Get gets the package documentation and sub-directories for the the given import path.
func (*Database) GoSubrepoIndex ¶
func (*Database) ImportGraph ¶
func (*Database) IncrementCounter ¶
func (*Database) IncrementPopularScore ¶
func (*Database) IsBlocked ¶
IsBlocked returns whether the package is blocked or belongs to a blocked domain/repo.
func (*Database) PopularWithScores ¶
func (*Database) Put ¶
func (db *Database) Put(ctx context.Context, pdoc *doc.Package, nextCrawl time.Time, hide bool) error
Put adds the package documentation to the database.
func (*Database) PutIndex ¶
func (db *Database) PutIndex(ctx context.Context, pdoc *doc.Package, id string, score float64, importCount int) error
PutIndex puts a package into App Engine search index. ID is the package ID in the database. It is no-op when running locally without setting up remote_api.
func (*Database) Reindex ¶
Reindex gets all the packages in database and put them into the search index. This will update the search index with the path, synopsis, score, import counts of all the packages in the database.
type DepLevel ¶
type DepLevel int
DepLevel specifies the level of depdenencies to show in an import graph.
type Package ¶
type Package struct { Name string `json:"name,omitempty"` Path string `json:"path"` ImportCount int `json:"import_count"` Synopsis string `json:"synopsis,omitempty"` Fork bool `json:"fork,omitempty"` Stars int `json:"stars,omitempty"` Score float64 `json:"score,omitempty"` }
Package represents the content of a package both for the search index and for the HTML template. It implements the search.FieldLoadSaver interface to customize the Rank function in the search index.