Repository Analysis

chubin/wttr.in

:partly_sunny: The right way to check the weather

5.0 Low AI signal View on GitHub
5.0
Adjusted Score
5.0
Raw Score
100%
Time Factor
2026-05-29
Last Push
29,750
Stars
Go
Language
35,228
Lines of Code
575
Files
67
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 0HIGH 0MEDIUM 42LOW 25

Pattern Findings

67 matches across 6 categories. Click a row to expand file-level details.

Decorative Section Separators41 hits · 141 pts
SeverityFileLineSnippet
MEDIUMbuild.sh4# ──────────────────────────────────────────────────────────────────────────────
MEDIUMbuild.sh12# ──────────────────────────────────────────────────────────────────────────────
MEDIUMbuild.sh14# ─── Configuration ───────────────────────────────────────────────────────────
MEDIUMbuild.sh20# ─── Font configuration ───────────────────────────────────────────────────────
MEDIUMbuild.sh31# ─── Asset roots (non-font) ───────────────────────────────────────────────────
MEDIUMbuild.sh46# ─── Helper functions ────────────────────────────────────────────────────────
MEDIUMbuild.sh110# ─── Actions ─────────────────────────────────────────────────────────────────
MEDIUMbuild.sh177# ─── Main dispatcher ─────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/render.go11// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/render.go13// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/render_solar.go133// ────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/render_solar.go136// ────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go17// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go19// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go44// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go46// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go83// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go86// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go113// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/oneline.go115// ──────────────────────────────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/data_parse.go55 // ── Parse numeric fields with safe defaults ────────────────────────────────
MEDIUMinternal/renderer/oneline/data_parse.go73 // ── Description (prefer translated lang_xx if present) ─────────────────────
MEDIUMinternal/renderer/oneline/data_parse.go88 // ── Observation time ───────────────────────────────────────────────────────
MEDIUMinternal/renderer/oneline/data_parse.go94 // ── Location fallback ──────────────────────────────────────────────────────
MEDIUMinternal/location/cache.go61 // ── Persistent storage ───────────────────────────────
MEDIUMinternal/location/cache.go66 // ── Fast in-memory cache ─────────────────────────────
MEDIUMinternal/location/cache.go70 // ── Batch writer ─────────────────────────────────────
MEDIUMinternal/location/cache.go76 // ── Synchronization ──────────────────────────────────
MEDIUMinternal/location/cache.go141// ── Batch Writer ─────────────────────────────────────────────────────────────
MEDIUMinternal/location/cache.go386// ── LRU helpers ────────────────────────────────────────────────────────────────
MEDIUMinternal/location/cache.go426// ── Utility functions ──────────────────────────────────────────────────────────
MEDIUMinternal/server/config.go79# ================================================
MEDIUMinternal/server/config.go81# ================================================
MEDIUMinternal/server/config.go88# ================================================
MEDIUMinternal/server/config.go90# ================================================
MEDIUMinternal/weather/weather.go260 // ── Determine location string ────────────────────────────────────────
MEDIUMinternal/weather/weather.go323 // ── Geocode ───────────────────────────────────────────────────────────
MEDIUMinternal/weather/weather.go345 // ── Build Query ───────────────────────────────────────────────────────
MEDIUMinternal/weather/weather.go376 // ── Fetch weather ─────────────────────────────────────────────────────
MEDIUMinternal/weather/weather.go398 // ── Filling up Query ───────────────────────────────────────────────────────
MEDIUMinternal/weather/weather.go402 // ── Render + Format ───────────────────────────────────────────────────
Over-Commented Block14 hits · 14 pts
SeverityFileLineSnippet
LOWbuild.sh1#!/usr/bin/env bash
LOWinternal/renderer/oneline/oneline.go21type RenderFunc func(ctx *RenderContext) string
LOWinternal/renderer/oneline/oneline.go201// If a percent-encoded sequence is invalid (e.g., not a valid hex number or incomplete),
LOWinternal/renderer/v2/block_temperature_colorized.go141 // lastT := data[len(data)-1]
LOWinternal/cache/config.go1// internal/cache/config.go
LOWinternal/weather/weather.go41}
LOWinternal/weather/cache.go21 // This should clear any in-progress state for the same key.
LOWinternal/query/doc.go1// Package query provides configuration-driven parsing and validation of
LOWinternal/query/doc.go21// parsed, err := query.ParseQueryString("lang=fr&format=3&T&0pq", config)
LOWinternal/query/fromrequest.go201
LOWinternal/ip/ip.go61 db.UseErrorParser()
LOWinternal/domain/models.go1// Package domain contains the core domain models and data structures
LOWinternal/domain/models.go81 // Useful for debugging and future cache policy decisions.
LOWshare/defs/options/options.yaml1query_options:
Verbosity Indicators9 hits · 14 pts
SeverityFileLineSnippet
LOWinternal/renderer/oneline/render.go179 // Step 1: Get symbolic name from code (e.g. "116" → "PartlyCloudy")
LOWinternal/renderer/oneline/render.go185 // Step 2: Look up the plain ASCII-style symbol
LOWinternal/query/queryparser.go32 // Step 1: use the existing parser to get validated map[string]string
LOWinternal/query/fromrequest.go20 // Step 1: Extract components from the URL path
LOWinternal/query/fromrequest.go35 // Step 2: Process domain name for VIEW or LANG
LOWinternal/query/fromrequest.go50 // Step 3: Process the first path component for VIEW or LANG if not set by domain
LOWinternal/query/fromrequest.go61 // Step 4: Extract location and format from the path
LOWinternal/query/fromrequest.go90 // Step 5: Set default language from header if not set by domain or URL
LOWinternal/query/fromrequest.go113 // Step 6: Set User-Agent from header. Output defaulting based on the
AI Slop Vocabulary1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMinternal/renderer/v1/testdata/update_golden.sh24# Read test cases using jq (more robust than pure bash)
Example Usage Blocks1 hit · 2 pts
SeverityFileLineSnippet
LOWbuild.sh6# Usage:
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOWinternal/renderer/v1/testdata/update_golden.sh17# Check if server is running