GithubHelp home page GithubHelp logo

strawberry-foundations / strawberry-chat Goto Github PK

View Code? Open in Web Editor NEW
8.0 8.0 2.0 1.54 MB

A simple but nice chat platform for your terminal

Home Page: https://developers.strawberryfoundations.xyz

License: GNU General Public License v3.0

Rust 99.80% Python 0.20%
chat chat-app chat-application chat-applications cli rust sqlite strawberry-chat terminal

strawberry-chat's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

strawberry-chat's Issues

Feature Request: User Settings for easier management of user flags

Description

A User Settings command to manage user flags more easily without having countless commands to do so. E.g.: /set dms enabled

Why should this feature be added?

To manage user flags more easily

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Security: Use of a broken or weak cryptographic hashing algorithm on sensitive data

Tracking issue for:

We're probably should switch to SHA-2 or argon2.

Recommendation

Ensure that you use a strong, modern cryptographic hash function:

  • such as Argon2, scrypt, bcrypt, or PBKDF2 for passwords and other data with limited input space.
  • such as SHA-2, or SHA-3 in other cases.

Example

The following example shows two functions for hashing passwords. The first function uses SHA-256 to hash passwords. Although SHA-256 is a strong cryptographic hash function, it is not suitable for password hashing since it is not computationally expensive.

import hashlib

def get_password_hash(password: str, salt: str):
    return hashlib.sha256(password + salt).hexdigest() # BAD

The second function uses Argon2 (through the argon2-cffi PyPI package), which is a strong password hashing algorithm (and includes a per-password salt by default).

from argon2 import PasswordHasher

def get_initial_hash(password: str):
    ph = PasswordHasher()
    return ph.hash(password) # GOOD

def check_password(password: str, known_hash):
    ph = PasswordHasher()
    return ph.verify(known_hash, password) # GOOD

SERCURITY: Password Encryption

Description

So basicially the title explains everything. The passwords should be encrypted for more security. The transfer & encrypting should still take place in a secure way

Why should this feature be added?

For more security

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Codacy reporting 1,978 security issues

Describe the bug

No rules have been setup for the workflow which results in "invalid" reports

Steps to reproduce

Set up Codacy without any rules

The Error Text/Stacktrace

No response

Chat Program

Client

The version of Strawberry Chat you used

Python Version

Operating System

other

Operating System Version

No response

Used Operating System (Only fill when selected "other")

No response

Before submitting a bug report

  • This bug wasn't already reported (I have searched bug reports on GitHub).

  • This bug isn't fixed in the latest version of Strawberry Chat (including git)

Fix highlighting of a user when mentioning

Describe the bug

When you mention a user, it will no longer be highlighted, because of the ansi stripping in the broadcast command

Steps to reproduce

Just mention a user and you'll see it is not highlighted

The Error Text/Stacktrace

No response

Chat Program

Server

The version of Strawberry Chat you used

v1.8.0b3+u1

Python Version

3.11.x

Operating System

Debian

Operating System Version

12

Used Operating System (Only fill when selected "other")

No response

Before submitting a bug report

  • This bug wasn't already reported (I have searched bug reports on GitHub).

  • This bug isn't fixed in the latest version of Strawberry Chat (including git)

UTF-8 only protection

A protection that you can only send messages that are UTF-8 compliant. If not, the user should be kicked

Sometimes logs get spammed with empty messages after a user connected/disconnected

Describe the bug

image

Steps to reproduce

Join the server

The Error Text/Stacktrace

No response

Chat Program

Server

The version of Strawberry Chat you used

master

Python Version

3.11

Operating System

macOS

Operating System Version

No response

Used Operating System (Only fill when selected "other")

No response

Before submitting a bug report

  • This bug wasn't already reported (I have searched bug reports on GitHub).

  • This bug isn't fixed in the latest version of Strawberry Chat (including git)

Feature: Strawbery ID Connection/Link

Description

Strawbery ID/Network (Stawberry Network is comming soon) Connection/Link for user profile with real authentication

Why should this feature be added?

So other users can see your user tag

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Feature Request: Arrows up and down retrieve latest messages

Description

Arrows up and down retrieve latest messages

This Feature already "exists" under Windows 10+ (PowerShell), but not in Linux/macOS

Why should this feature be added?

to get the last message you've written

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Feature: Strawberry Chat+

If you are a relatively active user, you start with SBC+ Basic. The more activity, the higher the chance to get the "normal" SBC+.
It will be a kind of level system, which counts and evaluates the messages of users, with random points. Sometimes less, sometimes more.
Also, spamming is useless because you can only get points every 30s or so. How I do that I still have to think about.
The introduction starts with v1.8.0, so the next version after v1.7.0.

JSON Communication

Deutsch

Kommunizierung über das Format JSON

Die Idee dahinter ist relativ einfach. Aktuell werden Nachrichten mit dem Usernamen zusammen als eine feste Nachricht gesendet. Dem aktuellen Standard gemäß sieht das so aus:
Image

Die Überlegung hinter @json-communication ist das der Server die Nachrichten nun nicht mehr so als feste Nachrichten sendet, sondern als JSON. Dies könnte folgendermaßen aufgebaut sein:

{
  "username": "julian",
  "nickname": "Yiülian",
  "badge": "👑",
  "role_color": "red"
  "message": {
    "content": "Hallo"
  }
}

Der jeweilige Client empfängt diese JSON Daten und baut damit eine Nachricht auf.
Diese könnte, wie das obere gezeigte Normalstandard aussehen, aber auch komplett anders, wie z.B.

# Beispielformat 1
[👑] Julian (@julian) Today at 00:37
  Hallo
# Beispielformat 2
Mo, 00:37: Julian (@julian) -> Hallo
# Beispielformat 3
[👑] @julian (00:37)
  Hallo

Dadurch würde es eine enorme Möglichkeit geben das Anzeigen der Nachrichten zu personalisieren. Dies könnte ein Vorteil gegenüber kleineren Bildschirmen haben, wenn man ein passendes Format dafür nutzt. wie z.B. Beispielformat 3

Allerdings weiß ich bezüglich Sicherheit nicht, ob dies das richtige ist. Damit alte Clients weiterhin funktionieren könnten bräuchte ich ein Versionscheck den wir aktuell überlegen.

More modularity + Command Decorators

Description

More modularity for better Code readability and command decorators for better Command Management

See Branch strawberry-chat@commands-decorators and Pull Request #29 (Less modularity (rewrite command system))

Why should this feature be added?

More modularity for better Code readability and command decorators for better Command Management

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Feature Request: Direct/Private messages with a user

Description

Direct/Private messages with a user

Why should this feature be added?

Before submitting a suggestion

  • This feature does not exist in the latest version of Strawberry Chat

  • This feature was not already suggested

  • This feature is not on our todo-list (Check our GitHub project page!!!)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.