Commit Graph

2 Commits (58270b1fbedc4dfaec2cd60bbcb16d0d4f5042a5)

Author SHA1 Message Date
Kami 58270b1fbe PoE2Trade update
- Vastly improved on rate-limiting tolerance
  - Dynamically fetches and assigns any server-imposed rate-limits.
  - Implemented a rolling queue system for filter checks.
    - This effectively means each filter for all users will run one after the other. Increasing time between checks, but prevents rate-limiting.
- Improved notification message embeds to contain more information in a cleaner format
  - Added "implicit mods" to the stats list for better stats report
- Security implementations
  - PoE2 session token is now encrypted in storage
  - Somewhat sensitive data is now obscufated in settings reply
- Improved on listing pricing display
  - Now says "1 x Exalted Orb" instead of simply "1 exalted"
- Added approximated next check times for filters, viewable in notification messages and filters list
- General minor other improvements to readibility, commands, structure, cache, and functionality

Support for per-user-definable session tokens is in the works.
This will allow users to define their own tokens, which are encrypted for security, to reduce on ratelimits imposed by using the global token.
Once this is implemented, those users will benefit from faster checks, providing earlier listing notifications.
This should reduce the risk of missing valuable listings.
2025-03-30 14:46:23 +02:00
Kami f717ad0f14 PoE 2 Trading Site Implementation
This update includes implementation of Path of Exile 2 trading watchlisting, allowing users to get notified on Discord about new listings within the filter criteria.
- Multiple new commands
  - `!poe2trade`
    - DMs a message containing basic usage and instructions.
  - `!poe2trade add <filter_id> [filter_name]`
    - Adds a trade filter to their watchlist.
    - New matches will be sent to the user in a DM.
  - `!poe2trade remove <filter_id | all>`
    - Removes the specified filter from their watchlist.
    - If filter_id is set to `all`, it will clear all filters from their watchlist.
  - `!poe2trade list`
    - Lists the user's watchlisted filters, along with the filter nickname (if assigned).
  - `!poe2trade pause`
    - Stops watchlisting all their filters. No processing nor notifications are performed.
  - `!poe2trade resume`
    - Resumes the watchlisting of the user.
  - `!poe2trade set <key> <value>`
    - Allows admin/owner to modify settings without restarting the bot.
  - `!poe2trade settings`
    - Allows admin/owner to view current settings.
    - Will be updated in the future to allow non-admin users to view non-sensitive settings.
- Automatic notification of new listings in a neatly-formatted embed message
  - Currently, notification embeds contain: item name, item icon, item level, item stats, listed price, seller name (and account hyperlink), filter information, and instructions on removing the filter from watchlist.
  - Notification messages are condensed to avoid spam as much as possible; multiple new listings (up to 10) will be combined into a single message containing several embeds.
- Respects rate limits to avoid getting the bot locked out.
  - These ratelimits are set by GGG and CloudFlare, and are thus very strict. This shouldn't affect usability much however.
- Several minor QoL features

Still very much in active dev, so availability may fluctuate, and features will change.
Current TODO:
- Smart price-to-stat comparison
  - Determine listing value for the user to avoid being scammed, and easily pick up good deals.
  - Will compare item stats and listing price with other items of the same name, level and quality.
- Direct listing hyperlink
  - Currently, PoE 2's trading site does not support direct item links, so this has to be done by dynamically generate a filter that will only result in the relevant listing, providing easy direct access.
2025-03-26 20:42:16 +01:00