No description
.gitignore | ||
LICENSE | ||
README.md |
SimpleShout
A small chat box API for use on public websites.
Features:
- Basic permissions: admin vs everyone else
- Message creation
- Discord style emoji: example, emojibase
- Message deletion (admin)
- Message sanitization
- Keyword filtering
- Responsive web UI
- Embed/iframe-able
Deps
- rocket
- sled
- snowflake id
API
- init: takes a cookie, returns a session (previous username, current channel, etc) if exits, else require login
- login: takes a username and IP, returns a session cookie
- create_channel: takes a cookie, channel name, and motd, returns a channel id
- channels: takes a cookie returns a list of channels and a preview message for each
- join: takes a cookie and channel id, returns
init_scrollback
previous messages, a sync rate, and a client identifier, or an error if username exists/is not allowed, or channel does not exist - sync: takes a cookie and a last message id and returns all unseen messages.
- send: sends a message, returns a status
- login: accepts password, gives client admin perms if password is correct
- delete: takes an admin client identifier and a message id
- ban: bans a client
Structs
-
config
- admin_password
- ratelimit (req/min)
[reserved_username:ip_address]
[banned_words]
[banned_usernames]
[banned_ips]
- init_scrollback
- sync_rate
-
channel
- id
- name
- motd
-
message
- id
- channel_id
- client_id
- timestamp
- body
-
client
- client_id
- username
- ip_address
- admin_perms
- banned
- ratelimit
- last_channel_id