Expand description
Current official Telegram client versions, fetched from their public
release feeds, plus the stable Chrome and Firefox versions the web
fingerprints use, as a patch onto opentele2_core::api::Versions.
fetch_all queries the nine sources (Telegram Desktop, Android,
Telegram X, iOS, macOS, Web K, Web A, Chrome, Firefox) in parallel over
blocking HTTP with rustls and merges whatever answered into a
VersionsPatch. A source that fails or times out only leaves its fields
unset. VersionsPatch::apply writes the patch onto a Versions field
by field.
The parsing of every response lives in parse as pure functions, so it
is testable without the network.
Modules§
- parse
- Pure parsers, one per version source, including the Chrome and Firefox release feeds the web fingerprints use.
Structs§
- Versions
Patch - The fields of
Versionsthe sources returned;Nonefor every field no source answered with a non-empty value.
Constants§
- API_
USER_ AGENT - The user agent sent to the JSON and plain-text sources.
- DEFAULT_
TIMEOUT - The default per-request timeout.
- TG_
USER_ AGENT - The browser user agent sent to
t.me.
Functions§
- fetch_
all - Fetches every source in parallel, one thread each, and merges the
answers.
timeoutbounds each HTTP request; a source with a fallback makes at most two.