$ show jordyamc/UKIKU
UKIKU is a feature-rich Android application for streaming and downloading anime episodes, built primarily in Kotlin with some legacy Java. It scrapes content from animeav1.com (and related sites) using Jsoup and custom JavaScript extraction, bypassing Cloudflare protection via a WebView-based mechanism. The app offers a comprehensive anime tracking experience: browsing a directory, searching, viewing details, watching episodes via ExoPlayer (with Chromecast and Android TV support), downloading (including HLS), managing favorites and watch history, queuing episodes, earning achievements, and syncing user data to Firebase Firestore or Dropbox. It also includes a gamified economy system (loli-coins) and extensive ad integration (AdMob, AppLovin). The architecture follows MVVM with Room database, WorkManager, and coroutines, but suffers from significant technical debt: duplicate UI layouts (material vs. non-material), deprecated libraries (Anko, RxJava, old MaterialDialogs), fragile scraping logic, weak encryption, and hardcoded API keys. Despite these issues, the app is functional and has a large user base (203 stars, 39 forks). It is not a data research project; it is a consumer Android application.
The LLM identified 4 files worth highlighting for reuse:
Extracts video server URLs from anime pages by injecting JavaScript into a WebView and intercepting the result. Demonstrates a non-trivial pattern for scraping dynamic content behind Cloudflare. Reusable for any app needing to extract data from JS-rendered pages.
Handles Cloudflare anti-bot challenge by loading a WebView, waiting for clearance cookies, and extracting them. Reusable pattern for any Android app that needs to access Cloudflare-protected sites.
A custom snackbar with horizontal or circular progress bar, queuing, and dismiss actions. Demonstrates a well-crafted UI component that can be extracted and used in any Android app needing progress feedback in snackbars.
Reusable custom view for displaying a status label with icon and text. Used extensively in diagnostic screens. Demonstrates a clean custom view pattern with XML attributes and programmatic usage.