{"id":16835148,"url":"https://github.com/syfaro/fuzzysearch-owo","last_synced_at":"2025-03-22T04:30:49.476Z","repository":{"id":71917087,"uuid":"437693888","full_name":"Syfaro/fuzzysearch-owo","owner":"Syfaro","description":"Artwork repost detection utilizing FuzzySearch","archived":false,"fork":false,"pushed_at":"2025-03-10T14:24:18.000Z","size":2338,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T08:11:19.458Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://owo.fuzzysearch.net","language":"Rust","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/Syfaro.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}},"created_at":"2021-12-13T00:56:47.000Z","updated_at":"2025-03-10T14:24:21.000Z","dependencies_parsed_at":"2024-02-29T06:24:28.601Z","dependency_job_id":"ee332115-61c4-4b2e-a0b1-76fb490171bf","html_url":"https://github.com/Syfaro/fuzzysearch-owo","commit_stats":null,"previous_names":[],"tags_count":63,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syfaro%2Ffuzzysearch-owo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syfaro%2Ffuzzysearch-owo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syfaro%2Ffuzzysearch-owo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syfaro%2Ffuzzysearch-owo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Syfaro","download_url":"https://codeload.github.com/Syfaro/fuzzysearch-owo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244907420,"owners_count":20529850,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-10-13T12:09:07.388Z","updated_at":"2025-03-22T04:30:48.879Z","avatar_url":"https://github.com/Syfaro.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# fuzzysearch-owo\n\nFuzzySearch OwO builds off the technologies (and database) of [FuzzySearch] to\ndetect reposts of artwork. Users can manually upload artwork to their collection\nor it can automatically import content from linked websites.\n\n[fuzzysearch]: https://github.com/Syfaro/fuzzysearch\n\n## Features\n\nIt searches for similar images on:\n\n* F-list (identifying images using the character gallery page)\n* Reddit (from a static list of subreddits)\n* FurAffinity, Weasyl, e621, and Twitter (data provided by FuzzySearch webhooks)\n\nIt can import user content from:\n\n* FurAffinity and Weasyl (and can be extended to other data sent in from FuzzySearch)\n* DeviantArt\n\nIt will only import user content after the user has either signed into the\nservice (via OAuth, etc.) or some other verification of their profile.\n\nPatreon importing is a wanted feature, and most of the code already exists, but\nthe Patreon API does not return any images nor attachments making it impossible.\n\n## Deployment\n\nThis software has no privileged access to other services, making it possible to\nrun yourself. However, no support is provided for this.\n\nIt currently runs as two separate services, one to serve the website and the\nother to perform background tasks. These can be scaled as needed. The worker\nservices can run different queues, one for internal requests and another for\noutgoing requests. This can be set with the `--faktory-queues` option. Requests\nto related projects (e.g. FuzzySearch) are not considered external.\n\nA `docker-compose.yml` file has been provided with the essentials to get things\nup and running.\n\n### Dependencies\n\nIt has a few software dependencies to run:\n\n* PostgreSQL with the [bktree] extension as the primary backing datastore\n* NATS for pubsub and distributing events\n* [Faktory] for managing background tasks\n* [faktory-cron] to run scheduled jobs (provided in jobs.yaml)\n\nIt also requires credentials or app tokens for the following sites:\n\n* DeviantArt (OAuth client)\n* F-list (username and password)\n* FurAffinity (authenticated cookies)\n* FuzzySearch (API key)\n* Patreon (OAuth client, not currently used)\n* Reddit (username, password, and OAuth client)\n* S3-like (endpoint, region, bucket, access, and secret key)\n* SMTP (host, username, and password)\n* Telegram (token and domain)\n\n[bktree]: https://github.com/fake-name/pg-spgist_hamming\n[faktory]: https://github.com/contribsys/faktory\n[faktory-cron]: https://github.com/Syfaro/faktory-cron\n\n### Database Migrations\n\nMigrations can either be applied manually with [sqlx-cli] or by running a\nservice with the `--run-migrations` flag. This operation is safe to run many\ntimes and should not block when already up.\n\n[sqlx-cli]: https://crates.io/crates/sqlx-cli\n\n### Configuration\n\nAll required and optional configuration options can be seen when the binary is\nrun with the `--help` flag.\n\n### Monitoring and Observability\n\nIt exposes Prometheus metrics on the host provided in the environment variable\n`METRICS_HOST` at `/metrics`.\n\nOpenTelemetry traces are sent using gRPC and can be configured with the standard\nenvironment variables.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyfaro%2Ffuzzysearch-owo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyfaro%2Ffuzzysearch-owo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyfaro%2Ffuzzysearch-owo/lists"}