How ozx-68102/xiaomilog2battery works
XiaomiLog2Battery is a Dash application for extracting battery-health metrics from Xiaomi bugreport ZIPs, storing them locally, and exploring them in charts and reports. The main workflow is upload → extract → parse and validate → save or append → visualize. The README also documents model reporting and configurable local-time display. Some page and callback source was not sampled, so uncertain page-level wiring is omitted; unsampled features are represented only where their paths are present in the tree.
Main entry points: app.py Dash application · pipelines.py Analysis pipeline · graphs.py Battery graphs · reports.py Detailed reports
Components 19
Dash interface
- Upload page
pages/uploads.py - Processing page
pages/processing.py - Battery graphs
pages/graphs.py - Detailed reports
pages/reports.py - Timezone settings
pages/settings.py - Home page
pages/home.py
Log processing
- Analysis pipeline
utils/pipelines.py - ZIP extractor
src/processing/battery_processor.py - Battery log parser
src/analysis/parser.py
Analysis and storage
- Parsed battery records
- Data services
src/analysis/data_services.py - Results persistence
src/persistence/analysis_results.py - SQLite database
src/persistence/connect.py - Visualization service
src/analysis/visualizer.py
Application state
- Dash application
app.py - Uploaded ZIPs
- Extracted text logs
- Browser timezone state
app.py
Other components
- User
Connections 27
- User → Upload page: uploads ZIPs
- User → Processing page: starts processing
- User → Battery graphs: views trends
- User → Detailed reports: inspects records
- User → Timezone settings: sets timezone
- Dash application → Upload page: routes pages
- Dash application → Processing page: routes pages
- Dash application → Battery graphs: routes pages
- Dash application → Detailed reports: routes pages
- Dash application → Timezone settings: routes pages
- Dash application → Home page: routes pages
- Upload page → Uploaded ZIPs: stores uploads
- Processing page → Analysis pipeline: starts pipeline
- Analysis pipeline → Uploaded ZIPs: reads ZIPs
- Analysis pipeline → ZIP extractor: calls extraction
- ZIP extractor → Extracted text logs: writes logs
- Analysis pipeline → Battery log parser: calls parsing
- Battery log parser → Extracted text logs: reads logs
- Battery log parser → Parsed battery records: returns records
- Analysis pipeline → Data services: saves records
- Data services → Results persistence: validates and writes
- Results persistence → SQLite database: reads and writes
- Battery graphs → Data services: requests analysis data
- Detailed reports → Data services: requests report data
- Detailed reports → Browser timezone state: reads timezone
- Timezone settings → Browser timezone state: updates preference
- Battery graphs → Visualization service: uses chart logic