PyDrocsid / cogs

The official cog library used by PyDrocsid bots
GNU General Public License v3.0
13 stars 5 forks source link

Enhancement of the "be the professional" feature #20

Open DEL7A opened 3 years ago

DEL7A commented 3 years ago

Summary and goal of the feature

The main goal of this request is to enable the possibility for more granular pinging. This should be achieved by allowing for more and dynamic topics by this feature. So that if someone has a question, he might ping a subtopic and only gain the attention of the group which have knowledge in this specific field.

Description of the Feature

There should be the possibility to add an arbitrary number of topics by a specified group. Also, the most N used topics should be available as groups. Where N* is a count that is specifiable. Used in this context mean that a used has added the topic to himself. Furthermore, there should be a possibility that forces a topic to be available as a group.

*The auther recomand N to be at least 100

Dynamic groups for topics

If the ranking of the dynamic topics changes because more users choose to add another topic to themselves, this topic should be available as a group. The group this is not in the group-cluster with the size of N should be removed but accessible as a Topic. Also, the new group should be add to all users which subscribed this topic.

Pinging of Topics

When a user wants to ping a topic that is not available as a group there should be a command that enable the user to this. The command will answer the message an ping all users that have subscripted to this topic.

Example for pinging a topic .topic Django .topic FastAPI <link to message> .topic Flask <message>

Grouping of topics

for a better accessibility Topics should be groupable into fields as shown in the following example. The field definition therefor should be dynamic and extendable in the future. This feature should be used when showing all avaliable topics.

Example grouping for the Topics Languages Technolgies Science fields other
Python Linux Elektrotechnik DJ
HTML Git Data Science aoc
Regex PostgreSQL Jura ...
... ... ... ...

Subtopics

Additionally, topic should be added as a subtopic of a topic to ensure that there can be an arbitrary number of topics that are accessible. A subtopic is also a normal topic and can have further subtopics. It is comparable with a tree structure.

Example for the tree subtopic structure

  • Python
    • FastAPI
    • Django
    • DjangoCMS

Subscribing to topics

The above-described grouping should be used to make topic more accessible when subscribing. When showing the topic, they should be grouped by there fields. If a topic has subtopics there should be a notice with the count of subtopics. Also, it should be possible and show subtopics by traversing the parent topic.

Example for showing all main topics grouped by there fields .?

Languages

Python (2), Regex, ...

Technolgies

Linux, Git, ... ....

The following example shows how to traverse to the topics.

Exampel for showing all subtopics of a topic .? Python

FastAPI, Django (1), ...

The adding of a topic should be the same as before. (.+ <topic>)

Showing the subscripted topics of a user

It should be possible to get all topics that a user subscribed to with a command.

Exampel for the command .usertopic <name> .usertopic <id> .usertopic <mention>

Defelo commented 3 years ago

99