func updateCacheInfo(pdoc *doc.Package, urpids, urpts *http.Cookie) (string, string) { pdoc.ViewedTime = time.Now().UTC().Unix() updateCachePros(pdoc) updateProInfos(pdoc) return updateUrPros(pdoc, urpids, urpts) }
func updateRecentPros(pdoc *doc.Package) { // Only projects with import path length is less than 40 letters will be showed. if len(pdoc.ImportPath) < 40 { index := -1 listLen := len(recentViewedPros) curPro := &recentPro{ Path: pdoc.ImportPath, Synopsis: pdoc.Synopsis, ViewedTime: time.Now().UTC().Unix(), IsGoRepo: pdoc.ProjectName == "Go" && strings.Index(pdoc.ImportPath, ".") == -1, Views: pdoc.Views, } pdoc.ViewedTime = curPro.ViewedTime // Check if in the list for i, s := range recentViewedPros { if s.Path == curPro.Path { index = i break } } s := make([]*recentPro, 0, recentViewedProNum) s = append(s, curPro) switch { case index == -1 && listLen < recentViewedProNum: // Not found and list is not full s = append(s, recentViewedPros...) case index == -1 && listLen >= recentViewedProNum: // Not found but list is full s = append(s, recentViewedPros[:recentViewedProNum-1]...) case index > -1: // Found s = append(s, recentViewedPros[:index]...) s = append(s, recentViewedPros[index+1:]...) } recentViewedPros = s } }
func updateRecentPros(pdoc *doc.Package) { index := -1 listLen := len(recentViewedPros) curPro := &recentPro{ Path: pdoc.ImportPath, ViewedTime: time.Now().UTC().Unix(), IsGoRepo: pdoc.ProjectName == "Go", Views: pdoc.Views, } pdoc.ViewedTime = curPro.ViewedTime // Check if in the list for i, s := range recentViewedPros { if s.Path == curPro.Path { index = i break } } s := make([]*recentPro, 0, recentViewedProNum) s = append(s, curPro) switch { case index == -1 && listLen < recentViewedProNum: // Not found and list is not full s = append(s, recentViewedPros...) case index == -1 && listLen >= recentViewedProNum: // Not found but list is full s = append(s, recentViewedPros[:recentViewedProNum-1]...) case index > -1: // Found s = append(s, recentViewedPros[:index]...) s = append(s, recentViewedPros[index+1:]...) } recentViewedPros = s }