Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Global Mentions System #60

Closed
3 tasks done
VenomStyx opened this issue Apr 22, 2022 · 1 comment
Closed
3 tasks done

Global Mentions System #60

VenomStyx opened this issue Apr 22, 2022 · 1 comment

Comments

@VenomStyx
Copy link
Member

VenomStyx commented Apr 22, 2022

Overview

Cross-platform mentions system. Needs to allow user to mention things like users, pages, etc.

Needs to function on a global capacity, allowing users to define global_mention_ids which allow them to use a user-friendly name in posts to represent mentions on multiple platforms. User will register the name they wish to use, and then register each Platform/Platform ID they wish to associate with it.

Also needs to function on a local capacity, allowing users to simply use the Platform-Assigned ID in their post content. It's useful for quick mentions without needing to go through the process of registering a global ID. It will also be useful when Media Manager supports in-app responses.

Global Mentions

Global Mentions are cross-platform mentions. They are assigned an ID by the user in settings. They can represent 1 or many mentions on various platforms.

  • Registration / Update / Removal
  • Discord Implementation

Local Mentions

Local Mentions aren't cross-platform. They are assigned an ID by the platform provider. They represent a single mention on a single platform.

  • Discord Implementation
@VenomStyx VenomStyx created this issue from a note in Version 1.0 (Ideas) Apr 22, 2022
@VenomStyx VenomStyx moved this from Ideas to Roadmap in Version 1.0 Apr 23, 2022
VenomStyx added a commit that referenced this issue Apr 23, 2022
- Changed the way settings were handled in preparation for more. Now they check if encrypted and auto use the encrypted function if so. This will make it so that most settings can be added without needing a new section in the settings widget.

- Added Setting Display Names & Setting Type Definitions. use the `display_name_` prefix in settings to set the display name for a setting. Use the `hidden_` prefix to create a hidden input. Display Name definition can be anywhere before the setting value.

- Fixed bug where s3 settings couldn't be updated.

- Updated Guide to show new encrypted setting access process.

- Lots of cleanup

- Added initial variable for global mention IDs & Mention Tag start/ends.
@VenomStyx VenomStyx moved this from Roadmap to Current in Version 1.0 Apr 24, 2022
VenomStyx added a commit that referenced this issue Apr 25, 2022
Initial Mentions System Completed! Can Create, Update, & Remove Global & Platform Mentions. Still need to implement the post functionality & likely make this more class based. Not sure why I didn't start it that way 🙈

Also;
- Added "get_setting_category"

- Added ability for "get_setting_value" to find category when not provided.

- Lots of clean

- Probably a few other things I forgot
VenomStyx added a commit that referenced this issue Apr 25, 2022
- Created Global Mentions Manager class

- Created Global Mention class

- Implemented Global Mentions Manager with Settings (Create/Update/Remove)

- Encrypted Pickling for the Global Mentions Manager setting.

- Added function settings for "get_setting_value" to help with security. Using the setting "deny_plaintext_setting" when retrieving setting value, objects will not re-pickle unless decryption is successful.

- Fixed the bug where S3 details couldn't be updated in the last commit, forgot to mention it

- Made it so that you cannot have duplicate global mention ids

- Added "encrypted_" prefix to settings. Automatically hidden & saved as encrypted on next setting change. Currently requires changing code to modify, might change this to allow users to define in app later on.

- Added Media Accounts, Supported Media Platforms, Global Mentions, Timezones, all S3 details, & more as encrypted_ settings.

- set_settings_value func now automatically encrypts setting values with the "encrypted_" prefix.

- Fixed a bug from last push that would decrypt encrypted values on update.
VenomStyx referenced this issue Apr 26, 2022
- Created functionality for Discord Mentions & laid the foundation for other platforms.

- Added build_mentions_list to the Account class. Returns a list of mentions using the defined settings.

- Added replace_mentions to the DiscordAccount class. Returns a list of [Updated Post Content, Updated Mentions List]. Automatically replaces global ids with their associated platform id & adds propper formatting in post content for Discord.

- Added mention tag settings

- Fixed missing "encrypted_" prefix in config.py for processing_delay_in_seconds.

- Ensured all settings were using the "get_setting_value" function.
VenomStyx added a commit that referenced this issue Apr 26, 2022
Added a check to enforce unique platforms for global IDs. Might add the ability to use multiple IDs of the same platform for a single global ID in the future, but for now you can just register multiple global IDs.

Also did some cleanup / abstraction of the code to make it more readable.
@VenomStyx
Copy link
Member Author

Mentions system now complete!

@VenomStyx VenomStyx moved this from Current to Complete in Version 1.0 Apr 26, 2022
@VenomStyx VenomStyx changed the title Mentions System Global Mentions System May 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Version 1.0
Complete
Development

No branches or pull requests

1 participant