Compare commits
	
		
			4 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| bd04f5c117 | |||
| cb16a667cc | |||
| b84b7bdb4e | |||
| 8321129ac8 | 
@@ -31,6 +31,10 @@ dokku storage:mount teafolio /srv/teafolio-dokku/config.toml:/app/config.toml
 | 
			
		||||
 | 
			
		||||
## CHANGELOG
 | 
			
		||||
 | 
			
		||||
2022-12-31 v1.3.1
 | 
			
		||||
- Fix missing images on homepage
 | 
			
		||||
- Fix an issue with wrong mtime comparisons for updated repositories
 | 
			
		||||
 | 
			
		||||
2022-12-31 v1.3.0
 | 
			
		||||
- Add `OverrideOrder` configuration option to insert repos at specific positions
 | 
			
		||||
- Cache target image URLs to improve homepage load performance
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								main.go
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								main.go
									
									
									
									
									
								
							@@ -36,6 +36,7 @@ type Application struct {
 | 
			
		||||
 | 
			
		||||
	reposMut               sync.RWMutex
 | 
			
		||||
	reposCache             []gitea.Repo // Sorted by recently-created-first
 | 
			
		||||
	reposCacheByName       map[string]int
 | 
			
		||||
	reposAlphabeticalOrder map[string]int
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ func (this *Application) Bannerpage(w http.ResponseWriter, r *http.Request, repo
 | 
			
		||||
	this.reposMut.RLock()
 | 
			
		||||
	defer this.reposMut.RUnlock()
 | 
			
		||||
 | 
			
		||||
	ridx, ok := this.reposAlphabeticalOrder[repoName]
 | 
			
		||||
	ridx, ok := this.reposCacheByName[repoName]
 | 
			
		||||
	if !ok {
 | 
			
		||||
		w.Header().Set(`Location`, `/static/no_image.png`)
 | 
			
		||||
		w.WriteHeader(301)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								sync.go
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								sync.go
									
									
									
									
									
								
							@@ -94,7 +94,7 @@ func (this *Application) sync(ctx context.Context) (bool, error) {
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i, rr := range repos {
 | 
			
		||||
		if idx, ok := this.reposAlphabeticalOrder[rr.Name]; ok && this.reposCache[idx].GiteaUpdated == rr.GiteaUpdated {
 | 
			
		||||
		if idx, ok := this.reposCacheByName[rr.Name]; ok && this.reposCache[idx].GiteaUpdated == rr.GiteaUpdated {
 | 
			
		||||
			// Already exists in cache with same Gitea update time
 | 
			
		||||
			// Copy timestamps
 | 
			
		||||
			repos[i] = this.reposCache[idx]
 | 
			
		||||
@@ -117,6 +117,11 @@ func (this *Application) sync(ctx context.Context) (bool, error) {
 | 
			
		||||
				log.Printf("loading topics for '%s': %s", rr.Name, err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			err = this.gitea.PopulateImages(ctx, &rr)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				log.Printf("loading images for '%s': %s", rr.Name, err)
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// Save
 | 
			
		||||
			repos[i] = rr
 | 
			
		||||
		}
 | 
			
		||||
@@ -151,9 +156,15 @@ func (this *Application) sync(ctx context.Context) (bool, error) {
 | 
			
		||||
		repos = reordered
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	reposCacheByName := make(map[string]int, len(repos))
 | 
			
		||||
	for idx, repo := range repos {
 | 
			
		||||
		reposCacheByName[repo.Name] = idx
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Commit our changes for the other threads to look at
 | 
			
		||||
	this.reposMut.Lock()
 | 
			
		||||
	this.reposCache = repos
 | 
			
		||||
	this.reposCacheByName = reposCacheByName
 | 
			
		||||
	this.reposAlphabeticalOrder = alphabeticalOrderIndexes
 | 
			
		||||
	this.reposMut.Unlock()
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user