| 263 | |
| 264 | |
| 265 | def process_facet(field: str, facets: Iterable[tuple[str, int]]) -> tuple[str, str, int]: |
| 266 | if field == "has_fulltext": |
| 267 | counts = dict(facets) |
| 268 | yield ("true", "yes", counts.get("true", 0)) |
| 269 | yield ("false", "no", counts.get("false", 0)) |
| 270 | else: |
| 271 | for val, count in facets: |
| 272 | if count == 0: |
| 273 | continue |
| 274 | if field == "author_key": |
| 275 | key, name = read_author_facet(val) |
| 276 | yield (key, name, count) |
| 277 | elif field == "language": |
| 278 | yield ( |
| 279 | val, |
| 280 | get_language_name(f"/languages/{val}", req_context.get().lang or "en"), |
| 281 | count, |
| 282 | ) |
| 283 | else: |
| 284 | yield (val, val, count) |
| 285 | |
| 286 | |
| 287 | def process_facet_counts( |