Charcoal-SE / SmokeDetector
Headless chatbot that detects spam and posts links to it in chatrooms for quick deletion.
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing Charcoal-SE/SmokeDetector in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewSmokeDetector A headless chatbot that detects spam and posts it to chatrooms. Uses ChatExchange, takes questions from the Stack Exchange realtime tab, and accesses answers via the Stack Exchange API. Example chat post: Documentation User documentation is in the wiki. Detailed documentation for setting up and running SmokeDetector is in the wiki. Basic setup To set up SmokeDetector, please use Next, copy to a new file named , and edit the values required. To run, use (preferably in a daemon-able mode, like a session.) You can also use , but then SmokeDetector will be shut down after 6 hours; when running from , it will be restarted. (This is to be sure that closed websockets, if any, are reopened.) Virtual environment setup Running in a virtual environment is a good way to isolate dependency packages from your local system. To set up SmokeDetector in a virtual environment, you can use Next, copy the config file and edit as said above. To run SmokeDetector in this virtual environment, use . [Note: On some systems (e.g. Mac's and Linux), some circumstances may require the option to be removed from the last command line in the above instructions. However, the option is known to be necessary in other circumstances. Further testing is necessary to resolve the discrepancy.] Docker setup Running in a Docker container is an even better way to isolate dependency packages from your local system. To set up SmokeDetector in a Docker container, follow the steps below. • Grab the Dockerfile and build an image of SmokeDetector: • Create a container from the image you just built • Start the container. Don't worry, SmokeDetector won't run until it's ready, so you have the chance to edit the configuration file before SmokeDetector runs. Copy to a new file named and edit the values required, then copy the file into the container with this command: • If you would like to set up additional stuff (SSH, Git etc.), you can do so with a Bash shell in the container: After you're ready, put a file named under : Automate Docker deployment with Docker Compose I'll assume you have the basic ideas of Docker and Docker Compose. The first thing you need is a properly filled file. You can start with the sample. Create a directory (name it whatever you like), place the file and file. Run and your SmokeDetector instance is up. If you want additional control like memory and CPU constraint, you can edit and add the following keys to . The example values are recommended values. Requirements SmokeDetector only supports Stack Exchange logins. SmokeDetector supports the Python versions which are in the supported phase of the Python life cycle (as defined as between "First release" and "End of life"). We run CI testing on that span of versions. SmokeDetector may work on older versions of Python, but we don't support them and may, at any time, write code that prevents use in older, unsupported versions. We know SmokeDetector is broken on Python 3.6 and lower. While we don't support versions that haven't reached "First release", we're not adverse to hearing about changes in new Python versions which will require us to make changes to SmokeDetector's code, so we can make the transition to supporting new versions of Python smoother. To allow committing blacklist and watchlist modifications back to GitHub, your system also needs Git 1.8 or higher, although we recommend Git 2.11+. Requesting removal of a website from the blacklist If you are an official representative of the website/product which you desire to see removed, please see "Process for blacklist removal" for details as to how to request removal of your website from the blacklist. License Licensed under either of • Apache License, Version 2.0, (LICENSE-APACHE or ) • MIT license (LICENSE-MIT or ) at your option. Contribution Licensing By submitting your contribution for inclusion in the work as defined in the Apache-2.0 license, you agree that it be dual licensed as above, without any additional terms or conditions.