{"id":23960946,"url":"https://github.com/eddieoz/atproto-scam-detector","last_synced_at":"2025-04-23T06:12:38.348Z","repository":{"id":270108876,"uuid":"909361467","full_name":"eddieoz/atproto-scam-detector","owner":"eddieoz","description":"Crypto-Labeler is an advanced, AI-powered labeling and moderation tool dedicated to protecting the BlueSky community. By identifying and addressing crypto spammers, scammers, phishing attempts, and other malicious activities, it fosters a safer, more trustworthy, and transparent online environment for all users.","archived":false,"fork":false,"pushed_at":"2025-03-12T20:35:54.000Z","size":150,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-23T06:12:15.989Z","etag":null,"topics":["atproto","atproto-labeler","atprotocol","bsky","bsky-bot","firehose","labeler","moderation","moderation-bot","moderation-bots","ozone","scam-detection","spam-detection"],"latest_commit_sha":null,"homepage":"https://bsky.app/profile/cryptolabeler.sats4.life","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eddieoz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-12-28T13:25:45.000Z","updated_at":"2025-03-19T18:33:07.000Z","dependencies_parsed_at":"2024-12-28T14:25:22.238Z","dependency_job_id":"43aa9c83-3ea9-4cdd-9368-37733623c3d0","html_url":"https://github.com/eddieoz/atproto-scam-detector","commit_stats":null,"previous_names":["eddieoz/atproto-scam-detector"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddieoz%2Fatproto-scam-detector","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddieoz%2Fatproto-scam-detector/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddieoz%2Fatproto-scam-detector/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eddieoz%2Fatproto-scam-detector/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eddieoz","download_url":"https://codeload.github.com/eddieoz/atproto-scam-detector/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250379808,"owners_count":21420841,"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":["atproto","atproto-labeler","atprotocol","bsky","bsky-bot","firehose","labeler","moderation","moderation-bot","moderation-bots","ozone","scam-detection","spam-detection"],"created_at":"2025-01-06T19:58:28.517Z","updated_at":"2025-04-23T06:12:38.312Z","avatar_url":"https://github.com/eddieoz.png","language":"TypeScript","funding_links":["https://www.buymeacoffee.com/eddieoz"],"categories":[],"sub_categories":[],"readme":"# Crypto-Labeler\n\n## Project Overview\n\nCrypto-Labeler is an advanced, AI-powered labeling and moderation tool dedicated to protecting the BlueSky community. By identifying and addressing crypto spammers, scammers, phishing attempts, and other malicious activities, it fosters a safer, more trustworthy, and transparent online environment for all users.\n\nThis bot leverages [ATProto](https://github.com/bluesky-social/atproto) and the Ozone server protocol to identify and label harmful behavior. It utilizes advanced AI capabilities to detect spam, scams, bots, and phishing accounts, streamlining moderation efforts on the BlueSky platform.\n\n---\n\n## Getting Started\n\n### Prerequisites\n\nTo run Crypto Labeler, ensure you have the following installed:\n\n- **Node.js** (version 20 or higher)\n- **Pnpm** (version 9.15.0 or higher)\n- **DeepSeek-V3 API** you need an account and API key to use the DeepSeek API.\n- **Ozone Labeler** (registered with moderator permissions on the BlueSky network; see [Ozone](https://github.com/bluesky-social/ozone) for details)\n- **PM2** (optional) PM2 is a daemon process manager that will help you manage and keep your application online 24/7\n\n### Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/\u003cyour-repo-url\u003e\n   ```\n2. Navigate to the project directory:\n   ```bash\n   cd crypto-labeler\n   ```\n3. Install dependencies using Pnpm:\n   ```bash\n   pnpm install\n   ```\n\n---\n\n## Usage\n\nTo start the bot, run:\n\n```bash\npnpm start\n```\n\nThis command initiates the bot, resuming a previous session if available or logging in as a new session.\n\nIf you want to run with pm2\n```bash\npm2 start app.json\n```\n(`pm2 logs scam-detector` to see the logs output)\n\n### Configuration\n\nThe bot uses environment variables for authentication and configuration. Set these variables in a `.env` file located in the root directory of the project. Use the sample file as a template:\n\n```bash\ncp .env-sample .env\n```\n\nAdjust the values in `.env` as needed.\n\n### Pre-Filter \n- Add Scam Terms to the `scamTerms` array in `lists/scam_terms.js`.\n- Add Ignored handles to the `handleIgnore` array in `lists/handle_ignore_array.js`.\n\n---\n\n## Database\n\nThe bot uses an SQLite database to manage automatically ignored handles and their expiration times. The database file is located at `./ignoreHandles.db`.\n\n### Database Schema\n\nThe `ignore_handles` table consists of the following columns:\n\n- `handle`: The handle to be ignored (primary key)\n- `expiration_time`: The expiration timestamp in milliseconds\n\n---\n\n## Diagram\n\n![diagram](docs/diagram.png)\nMade with https://gitdiagram.com/eddieoz/atproto-scam-detector\n\n## Contributing\n\nContributions are highly encouraged! If you wish to contribute:\n\n1. Fork the repository.\n2. Create a feature branch.\n3. Submit a pull request with your changes.\n\nYour support helps improve Crypto Labeler and its impact on the BlueSky community.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the `LICENSE.txt` file for full details.\n\n---\n\n## Support This Project\n\nIf you found this project helpful, please consider supporting it:\n\n[Buy me a coffee](https://www.buymeacoffee.com/eddieoz)\n\n[![Buy me a coffee](https://ipfs.io/ipfs/QmR6W4L3XiozMQc3EjfFeqSkcbu3cWnhZBn38z2W2FuTMZ?filename=buymeacoffee.webp)](https://www.buymeacoffee.com/eddieoz)\n\nOr drop me a tip through Lightning Network: ⚡ [getalby.com/p/eddieoz](https://getalby.com/p/eddieoz)\n\nYour contributions and support are greatly appreciated!","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feddieoz%2Fatproto-scam-detector","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feddieoz%2Fatproto-scam-detector","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feddieoz%2Fatproto-scam-detector/lists"}