{"id":35176728,"url":"https://github.com/steve1316/android-cv-automation-library","last_synced_at":"2026-03-07T01:07:48.897Z","repository":{"id":65392355,"uuid":"590636533","full_name":"steve1316/android-cv-automation-library","owner":"steve1316","description":"This library serves to consolidate all necessary code to facilitate a backend for automation purposes on Android devices.","archived":false,"fork":false,"pushed_at":"2026-03-02T00:42:00.000Z","size":686,"stargazers_count":72,"open_issues_count":0,"forks_count":24,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-02T03:44:31.824Z","etag":null,"topics":["accessibility","android","automation","bot","computer","cv","discord","eventbus","gradle","javascript","jitpack","json","kotlin","library","opencv","project","sdk","service","twitter","vision"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/steve1316.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-18T21:24:46.000Z","updated_at":"2026-03-02T00:40:50.000Z","dependencies_parsed_at":"2025-09-17T18:22:59.771Z","dependency_job_id":"b6decb10-854a-4f0b-a2e0-c4bf5e10e55d","html_url":"https://github.com/steve1316/android-cv-automation-library","commit_stats":null,"previous_names":[],"tags_count":75,"template":false,"template_full_name":"steve1316/android-cv-bot-template","purl":"pkg:github/steve1316/android-cv-automation-library","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steve1316%2Fandroid-cv-automation-library","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steve1316%2Fandroid-cv-automation-library/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steve1316%2Fandroid-cv-automation-library/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steve1316%2Fandroid-cv-automation-library/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/steve1316","download_url":"https://codeload.github.com/steve1316/android-cv-automation-library/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/steve1316%2Fandroid-cv-automation-library/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30204476,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"ssl_error","status_checked_at":"2026-03-06T18:57:34.882Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accessibility","android","automation","bot","computer","cv","discord","eventbus","gradle","javascript","jitpack","json","kotlin","library","opencv","project","sdk","service","twitter","vision"],"created_at":"2025-12-28T22:53:34.604Z","updated_at":"2026-03-07T01:07:48.870Z","avatar_url":"https://github.com/steve1316.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Automation Library [![](https://jitpack.io/v/steve1316/android-cv-automation-library.svg)](https://jitpack.io/#steve1316/android-cv-automation-library)\n\nThis library serves to consolidate all necessary code to facilitate a backend for automation purposes on Android devices. The OpenCV Android SDK is being imported from this [OpenCV Android SDK repo](https://github.com/steve1316/opencv-android-sdk). Currently, this library can do the following:\n\n-   Uses `MyAccessibilityService` to programmatically execute gestures and `MediaProjectionService` to acquire screenshots for `ImageUtils` to perform image processing operations on.\n-   `BotService` handles the display and movement of the floating overlay button to start and stop program execution.\n-   Handles connection with Discord and Twitter APIs with `DiscordUtils` and `TwitterUtils` respectively.\n-   Loads in a `settings.json` file with `JSONParser` to be further processed in the primary project.\n-   Saves a text log of messages with `MessageLog`.\n-   Displays a persistent status notification informing the user via `NotificationUtils`.\n-   Any messages that needs to be sent from this library to the primary project can be done with the `EventBus` library using the `JSEvent` and `StartEvent` event classes.\n-   `ScreenStateReceiver` gracefully stops the bot when the device screen turns off to prevent gestures from being dispatched on a sleeping device.\n\n## Local Testing (Before Publishing to JitPack)\n\nTo test changes to this library locally without publishing to JitPack:\n\n1. **Change the versionName to include \"-SNAPSHOT\"** in `gradle/libs.versions.toml`:\n   - Update `app-versionName` to include \"-SNAPSHOT\" (e.g., `app-versionName = \"2.1.1-SNAPSHOT\"`).\n   - This will ensure gradle will always pull the latest version from the local repository for your app to use.\n\n2. **Publish to Maven Local** (from the library root directory):\n```bash\n./gradlew publishToMavenLocal\n# Or on Windows:\ngradlew.bat publishToMavenLocal\n# You can then confirm the local publication by looking in your local Maven repository (typically located at `C:\\Users\\username\\.m2\\repository`).\n# If we continue with the example from above, there will be 5 files generated in the 2.1.1-SNAPSHOT folder:\n# - automation_library-2.1.1-SNAPSHOT.aar\n# - automation_library-2.1.1-SNAPSHOT.module\n# - automation_library-2.1.1-SNAPSHOT.pom\n# - automation_library-2.1.1-SNAPSHOT-sources.jar\n# - maven-metadata-local.xml\n```\n\n3. **In your app's `build.gradle.kts`, add Maven Local repository**:\n```kotlin\nallprojects {\n    repositories {\n        maven { url \"https://www.jitpack.io\" }\n        mavenLocal() // Add this line for local testing. Make sure it is above every other repository.\n        google()\n        mavenCentral()\n    }\n}\n```\n\n4. **Add the dependency to your app**:\n```kotlin\ndependencies {\n    // If you are using a local version, you will need to use the -SNAPSHOT version here.\n    implementation(\"com.github.steve1316:automation_library:2.1.1-SNAPSHOT\")\n}\n```\n\nThe library will be loaded from your local Maven repository (typically `~/.m2/repository` or `C:\\Users\\username\\.m2\\repository`).\n\n## Installation\n\n```\n// Project-level build.gradle\nallprojects {\n    repositories {\n        maven { url 'https://www.jitpack.io' }\n    }\n}\n```\n\n```\n// App-level build.gradle\ndependencies {\n        implementation(\"com.github.steve1316:android-cv-automation-library:Tag\")\n}\n```\n\n## TODO\n\n-   [ ] Create a Wiki and create a page for each class in the `utils` folder, explaining what each of them do in a broad scope and what they offer to the project that will be using them.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteve1316%2Fandroid-cv-automation-library","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsteve1316%2Fandroid-cv-automation-library","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsteve1316%2Fandroid-cv-automation-library/lists"}