$ show bannedbook/fanqiang
This repository is a comprehensive collection of tools, tutorials, and applications for bypassing internet censorship ("翻墙") in China. The core application is FQNews (fqnews2), an Android RSS/Atom/JSONFeed reader that integrates proxy/VPN functionality (based on sing-box, V2Ray, Shadowsocks, etc.) to fetch content from blocked websites without requiring a separate VPN app. The app is a fork of Feeder (an open-source RSS reader) with added circumvention capabilities. The repository also includes pre-packaged "one-click" proxy bundles for Chrome, Edge, Firefox on Windows/Mac/Linux, extensive platform-specific tutorials (Windows, macOS, iOS, Android, Linux, routers, game consoles), and server-side configuration files for V2Ray, Xray, Shadowsocks, Trojan, and other proxy protocols. The codebase shows active development on the Android app (fqnews2) with recent commits, Jetpack Compose UI rewrite, multi-device sync, and regular dependency updates. However, the tutorial/documentation portion appears less maintained with many outdated references.
The LLM identified 6 files worth highlighting for reuse:
Clean adapter wrapping the gofeed library with Moshi for JSON parsing. Isolates feed parsing logic from the rest of the app, making it swappable. Demonstrates proper use of Kotlin coroutines and Moshi's KotlinJsonAdapterFactory for type-safe feed parsing.
Well-structured Room DAO with reactive Flow queries for feed items. Includes efficient queries for unread counts, pagination, and complex joins with feeds. Uses proper indexing and foreign keys. Good example of modern Android database patterns with coroutines and Flow.
Universal proxy configuration format serializer/deserializer using base64 + zlib compression. Abstracts multiple proxy protocols (VMess, Trojan, Shadowsocks, etc.) into a unified 'sn://' URI scheme. Demonstrates clean protocol abstraction with Kryo serialization and extension functions for import/export.
HTML-to-Jetpack-Compose converter that parses HTML into AnnotatedString with proper styling (headings, bold, italic, links, code, tables). Handles RTL text, bidirectional content, and complex nested structures. Reusable component for rendering rich text in Compose without WebView.
Go library exported via gomobile for Android, providing feed parsing (using gofeed) and JSON marshaling. Clean FFI boundary with ParseBodyString/ParseBodyBytes functions. Demonstrates proper Go-to-Android integration with error handling and memory management.
WorkManager-based background sync implementation with exponential backoff, per-feed scheduling, and proper constraint handling (network, battery). Handles feed parsing, full-text extraction, image downloading, and read-status synchronization across devices. Good reference for robust background task orchestration.