Added Lookup functions to template to do reverse lookups on works, issues and pieces

This commit is contained in:
Simon Martens
2025-01-08 03:04:12 +01:00
parent 6cfed94ff6
commit 2fa66f90e5
7 changed files with 35 additions and 51 deletions

View File

@@ -109,7 +109,8 @@ func (p *GNDProvider) WriteCache(folder string) error {
return nil
}
// TODO: Dont write persons already written
// INFO: this writes all persons to the cache folder
// We do that on every fetch, it's easier that way
func (p *GNDProvider) writePersons(folder string) error {
info, err := os.Stat(folder)
if err == os.ErrNotExist {

View File

@@ -1,7 +1,6 @@
package xmlprovider
import (
"fmt"
"slices"
"sync"
"time"
@@ -135,24 +134,20 @@ func (p *XMLProvider[T]) Cleanup(latest ParseMeta) {
}
}
func (p *XMLProvider[T]) ReverseLookup(item XMLItem) ([]Resolved[T], error) {
keys := item.Keys()
if len(keys) == 0 {
return nil, fmt.Errorf("Item has no keys")
}
func (p *XMLProvider[T]) ReverseLookup(item XMLItem) []Resolved[T] {
// INFO: this runs just once for the first key
ret := make([]Resolved[T], 0)
keys := item.Keys()
for _, key := range keys {
r, err := p.Resolver.Get(item.Name(), key)
if err != nil {
return ret, err
if err == nil {
ret = append(ret, r...)
return ret
}
ret = append(ret, r...)
}
return ret, nil
return ret
}
func (a *XMLProvider[T]) String() string {