@@ -1,10 +1,10 @@-# Prami
+Prami
A federated community virtual pet that lives as a Mastodon account. It polls for
mentions, replies to commands, drifts its state over time, and posts on its own now
and then.
-## Run
+Run
```bash
cp .env.example .env
@@ -15,7 +15,7 @@ ```
Stop with `docker compose stop`. Reset the database with `docker compose down -v`.
-## Try it locally first (no Mastodon needed)
+
```bash
python -m prami.cli status
@@ -23,10 +23,3 @@ python -m prami.cli feed --user @alice@example.com python -m prami.cli shell
```
-Full guide: [docs/local-testing.en.md](docs/local-testing.en.md) ·
-[docs/local-testing.pt-br.md](docs/local-testing.pt-br.md)
-
-
-## License
-
-AGPL-3.0-or-later. See [LICENSE](LICENSE).
@@ -155,7 +155,7 @@ def cmd_admin(args):
acct = (args.user or DEFAULT_USER).lstrip("@")
if acct.lower() not in [a.lower() for a in config.admin_accounts]:
- config.admin_accounts.append(acct) # local CLI trusts the operator
+ config.admin_accounts.append(acct)
print(run_command("admin", acct, " ".join(args.args))["text"])
@@ -34,7 +34,7 @@ return _engine
def create_all():
- from . import models # noqa: F401 (registers the mappers)
+ from . import models # noqa: F401
Base.metadata.create_all(_engine)
@@ -4,8 +4,6 @@ from html import unescape
from .actions.registry import REGISTRY
-# Command vocabulary comes from the action registry, so parsing and execution
-# never drift apart.
_ALIAS_TO_COMMAND = REGISTRY.alias_map()
PHRASE_ALIASES = REGISTRY.phrase_map()
@@ -4,7 +4,6 @@ from . import personality as personality_mod from . import templates
from .config import config
-# Back-compatible names; the data lives in templates.py.
TEMPLATES = templates.COMMAND_TEMPLATES
AUTOPOST = templates.AUTOPOST
@@ -1,6 +1,3 @@-"""All of Prami's authorable text lives here. See docs/VOICE_AND_PERSONALITY.md
-before adding or editing lines. The logic that picks between them lives in responses.py."""
-
COMMAND_TEMPLATES = {
"status": {
"normal": [
@@ -323,8 +320,6 @@ "status · how I'm doing · feed · play · pet · clean · sleep · wake\n" "Be gentle with the snacks. I bruise emotionally."
)
-# Community event scenarios: title/description/options + per-option outcome text and
-# the stat deltas the winning option applies. Pure content + tuning, no logic.
EVENT_SCENARIOS = [
{
"key": "egg",