All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Remove keyboard after sending a photo
- Prevent sending a message without photos
- Retry message sending when it matches coords and category with another one
- Message status when it waits for inactivity period
- Wait for
INACTIVIRY_DURATION
after last user activity before sending messages
- Print
ts
withRFC3339
format
rateLimitedUntil
time calculation
- Disabled accounts in
/status
command
- Ability to configure messages send time after an account was rate limited
- Ability to run state migrations
- Retry after calculation for a message when some accounts are disabled
- Switch logging package to
zap
- Limit number of photos to 5 in a message
- Ability to delete an attached photo
- Ability to manage accounts
- Message delay in case there are other accounts that may be used to sent it
- Ability to manage own categories
- Sent message id parsing from response
- Ability to start bot without sender
SLEEP_DURATION
environment variable is renamed toSENDER_SLEEP_DURATION
- Ability to delete a message
- Notify about sent message
- Missed
sender
start invocation
- DI to
uber-go/fx
- Last access time to user state
- Multiple files in attachment
- Category selection
- Setting message priority
- Choosing parent cateogory when creating a message
- Saving reauthorized account token in the state
- Unused deprecated user state fields
- String array field reading from state form
- Multiple portal accounts support
- High message priority to send a message as soon as possible
- Login required to send a message
- Keep categories order equal to the configuration
- Show two category buttons per row
- Sort messages by creation date
- Retry requests to portal
- Message fail description to contain root cause of the error
- Next try time calculation
- Debug logging for polling and adding a message to queue
- User rate limited status in
/status
command output
- Reduce log size when error is returned
- Add logging when reading user state
- Read a single document when polling a message
- Add logging when saving user state
- Sort files by width and height instead of file size
- Do not increase try count for rate limited requests
/file_id
command to return photos file identifiers
- Store
fileId
instead offileUrl
to download files later
- Version info to
/start
command output
- Reply about database rate limits on
/start
and/status
commands
- Endless loop when can't download files or another error
- Error when sender fails to download files
- Additional categories
- Show if user is authorized on the portal or not
- Store username on
/start
command
/reset_status
command to reset failed messages status
- Do not try sending a message if user is rate limited
- Wait before next try if sender fails to poll a message
- Quick links to
/message
command in other commands output
- Keep only 3 statuses:
created
,failed
,awaiting_authorization
- Show the statuses info in
/status
command - Reduce number of readings from database to avoid hitting free rate limit
- Additional categories
- Error response message verification
- Keep message retryable when too many requests a day is sent
- Fail description field to the message
- Firebase to store user state and messages queue
docker-compose.yml
template
- Docker image entrypoint
- Ability to send a message
- Static hardcoded categories
- In-memory queue