Skip to content

Releases: Strawberry-Foundations/strawberry-chat

Strawberry Chat v1.11.1

06 Jun 20:05
Compare
Choose a tag to compare

Strawberry Chat - v1.11.1 Stable

Hey! v1.11.1 of Strawberry Chat is released with a little delay.
This version is a minor version and contains small changes.

Changelog

  • Added user status system (#139)

  • Added a minimum of required args to command system (#144)

  • Added remaining admin commands (role, badge, ...) (#143)

  • Added remaining user settings subcommands (#142)

  • Fixed several bugs

  • General QoL improvements

TL;DR

  • Ported some commands from the legacy python version
  • Some improvements to the code base

Next release?

v1.12 will probably be released in June - August.

Full Changelog: v1.11.0...v1.11.1

Thanks to @Paddyk45 and @matteodev8
Released by @Juliandev02

Strawberry Chat v1.11.0

19 Apr 16:04
Compare
Choose a tag to compare

Strawberry Chat - v1.11.0 Stable

Hey! Today we are releasing v1.11.0 of Strawberry Chat, which is the result of 5 months of development.

Version 1.11.0 brings many changes - including a completely new codebase written in Rust, and much more.

We have also published version 3 of our Communication Standard.
Now server and client communicate bidirectionally with JSON data.

Due to a spontaneous decision at the end of December 2023, we had to stop the development of v1.10 early,
as we had already started with this version. We were therefore unable to make a Rust release from this version,
as we had started writing v1.10 in Python. So don't be surprised if there is no 'official' v1.10 but this changelog still
contains changes from v1.10.

Changelog - v1.10

  • Added config file error when using an outdated config file (#106)
  • Added IP-Banning (#111)
  • Added Windows/Mac/Linux System Notification when getting pinged (configurable) (#114)
  • Added error handling if address is already in use
  • Added system notification when receiving a dm (#116)
  • Added specific restrictions for username (only lowercase, a - z, 0 - 9, dots, underscore) (#122)
  • Added username length checking
  • Added max_username_length & max_password_length config + moved some values to config yml
  • Added rate limiting (#129)
  • Added configuration for ratelimit (Enabling or disabling ratelimit + ratelimit timeout)

Changelog - v1.11 (Rusty)

  • Changed code base language to Rust (see #135)

  • Complete new code structure (core-based structure)

  • We changed our Communication Standard to v3 (German documentation for v3)

  • MySQL Database as main database (#99)

  • New rust-based clients for rust-based Strawberry Chat (CLI and TUI)

  • Added improved Automod (Security)

  • Added login verification (check if you're really logged in) (Security)

  • Added improved message verification (Security)

  • Added Watchdog (Security)

  • Added automatic config creation (if no config exists)

  • Added msgpack as a compression method

  • Added small but fine cli "windows"

  • Added new logging system (stblib)

  • Custom Strawberry Chat rust library for accessing Strawberry Chat's packets

  • Removed server settings (security risk)

  • Removed admin user settings (security risk)

  • Sometimes you cannot write after mentioning a user (#125) (fixed by Rust-rewrite)

  • Fixed add automatic command for invalid session removal (#130) (fixed by Rust-rewrite)

  • Memory safety!

  • Improve performance by not accessing the database every time when writing something (instead use caching) (#98) (fixed by Rust-rewrite)

  • Improved error handling

  • Scapi API Wrapper for scs.v3 (Python)

  • Added Rust API for scs.v3

  • Added Python API for scs.v3

  • Added Java API for scs.v3

Pull requests

TL;DR

  • Rewrite in the Rust programming language
  • New communication standard (v3), now the client also sends JSON data to the server
  • No backwards compatibility with old v2 clients
  • More stability, fewer bugs, safer

Next release?

v1.12 will probably be released in June - July, in the period from April - May v1.11.1 will be released at most.
I don't have time for another 'big' release due to some personal things that are more important, so June at the earliest

Full Changelog: v1.9.0...v1.11.0

A big thank you to @Paddyk45 for helping with the development for v1.11.0 - without you none of this would have been possible.
Released by @Juliandev02

Strawberry Chat v1.8.3

10 Dec 11:39
Compare
Choose a tag to compare

Strawberry Chat - v1.8.3 Stable/Legacy

Hey. This is probably the last release of the v1.8.x era.
This update contains some bugfixes and a few changes from v1.9.0 & v1.10.0!

  • Added input_regen_database() function from main branch

  • Added special_messages from main branch

  • Added error handling if address is already in use

  • Removed signing configuration

  • Fixed Connection refused when starting Strawberry Chat v1.8.2 (#119)

  • Fixed case-sensitive user mentioning

  • Cleanup & code formatting improvements

  • Moved open_blacklist() to src.functions

  • Moved userNickname, isMuted, isAccountEnabled to src.functions

Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.3.txt
Git Changelog: v1.8.2...v1.8.3

Strawberry Chat v1.9.0

01 Dec 16:35
Compare
Choose a tag to compare

Strawberry Chat - v1.9.0 Stable

Hey, today after exactly 2 months we are releasing the next major version of Strawberry Chat, v1.9.0. This update includes many new features, bug fixes, security fixes and much more!

With v1.9.0 we have introduced a new system of communication. This is called json-communication or stbmv2.
You can read our documentation to learn more about it.
But now we should start with the long changelog :-)

Changelog

  • New communication system (json) (See https://developers.strawberryfoundations.xyz/json-communication/introduction)

  • Added ClientSender Object Class for more Python OOP & better Server message handling

  • Added Stopwatch Class for counting how long you're in the queue

  • Added maximal user feature (configurable) (#71)

  • Added queue so users can wait until a "slot" is free (#75)

  • Added some basic maximal user counts for online command, memberlist command, ... (#76)

  • Added experimental user avatars for chat to chat bridges (e.g. Discord) & Strawberry ID (#66)

  • Added server settings command (start with serversettings show command) (#77)

  • Added queue command

  • Added function to set max_users value to -1 for no max_users (#82)

  • Added 2 new configuration variables to configure if admins/bots have to wait in the queue

  • Added max. registered user feature (#87)

  • Added additional alias for /nick remove (--> /nick reset)

  • dded Pinging user should not be case-sensitive (#95)

  • Replaced ipify global ip api with our own global ip api

  • Removed case-sensitive username for dm command (#96)

  • General removal of case-sensitive things (#97)

  • More Object Oriented Programming (Queue Class, Stopwatch Class, ...)

  • Moved open_blacklist() to src.functions

  • Added LogMessages Class for standardized log messages

  • Fixed console logger prints static time instead of the real time (#63)

  • Fixed a color formatting bug that occurrs when using htpf (client-side fix)

  • Fixed deleting any kind of system message if it is the same as the message before (client-side fix)

  • Fixed CRITICAL: Chat Hashtag Placeholder Format Colors wont be sent correctly (for more look issue description) (#81)

  • Fixed TypeError: a bytes-like object is required, not 'str' when using /dm (#83)

  • Fixed UnboundLocalError: cannot access local variable 'has_dm_enabled' (#84)

  • Fixed registration (check for used usernames is not working) (#85)

  • Fixed IndexError: list index out of range when just typing / into chat (#72)

  • Fixed table_query is not correctly according to the newest database (#91)

  • Fixed cannot change nickname to an nickname with whitespaces (#90)

  • Fixed when no user entry in database, you cannot register (#89)

  • Fixed When using --regen-database; UnboundLocalError: cannot access local variable 'input' where it is not associated with a value (#92)

  • Fixed stbexceptions::client_error (004) -> 'NoneType' object is not subscriptable (#93)

  • Fixed database will not be correctly generated when starting server without user db (#88)

  • Fully fixed When using Ctrl + C in client, the server will crash (BrokenPipe) (#1)

  • Merged welcome message to one message to fix the extra line bug (Fixed #70)

  • Some fixes to welcome message

  • Added reset_color argument to replace_htpf to fix not resetting the color correctly

  • Fixed strawberryIdLogin message sender

  • Added function to use the old Strawberry Communication System (stbmv1)

  • Added direct messages (#79) + exit command

  • Added correct logic of logging messages if log_recv_msg is enabled + changed flag names when starting scapi bot

  • Added a new way for scapi message events (replacement for old legacy "commands" method) (#64)

  • Added a config do enable/disable check on capital letters in message for new on_message method (#78)

  • Added real prefix recognition in scapi (#80)

  • Moved event_registry and command_registry to init

  • Fixed json & non-json message receiving

  • Improved startup speed of scapi

  • Many code optimizations

  • Removed unnecessary imports

  • Some general formatting fixes for src.functions

  • Some major updates & fixes to news

  • Updated api protocol from http to https (scapi & server)

Pull Requests

Full Commit Changelog: v1.8.2...v1.9.0

See you again for v1.10.0 in January or February :-) (or maybe for v1.8.3 this month ;))

And a big thanks to @matteodev8 and @Paddyk45 for helping
Released by @Juliandev02

Strawberry Chat v1.8.2

20 Nov 19:56
Compare
Choose a tag to compare

Strawberry Chat - v1.8.2 Stable

Hey, time for an update!
Strawberry Chat has been updated. There are only a few small corrections to (eventually) complete the v1.8.x series and make the Legacy series official.

As mentioned in the last release, we have documentation. This has now been significantly expanded and now offers good documentation for Scapi: https://developers.strawberryfoundations.xyz/

  • Fixed Console Logger prints static time instead of the real time (#63)"
  • Full update of Scapi for the legacy release of Scapi 1.0.0 (stbmv1)
  • Code optimizations for legacy release

Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.2.txt
Git Changelog: v1.8.1...v1.8.2

Strawberry Chat v1.8.1

12 Nov 11:46
Compare
Choose a tag to compare

Strawberry Chat - v1.8.1 Stable

Hey, time for an update!
Strawberry Chat has been updated. We worked on it and fixed many known bugs and improved the user experience.
We have now fully ported all commands to the new system. Please report any issues you find.

Oh and by the way we now have documentation for our products. It's not quite ready yet, but you can access it at http://developers.strawberryfoundations.xyz/ or https://strawberryfoundations.mintlify.app/introduction!

  • Bug #1 has been partially fixed. (BrokenPipe)

  • All commands has been ported to the new command system

  • Added memberListBadge and hasBadge function, fixing #47

  • Added escape_htpf function

  • Added prevention of sending messages with just whitespaces, fixing #50

  • Added stbexceptions class for better exception handling

  • Removed escape_htpf for loggin

  • Removed unused code

  • Removed chat text commands (/shrug, /tableflip, ...)

  • Removed sql_error() + replaced it with normal log.error & debug_logger

  • Removed opening the config in main file

  • Removed unnessecary init variables, e.g. address in main file

  • Ported /kick command to new command system + added leave message when kicking someone

  • Ported /debug and /clientinfo to new command system

  • Ported /user command to new command system

  • Ported /ban command to new command system

  • Ported /deleteaccount command

  • Ported /nickname command + added function to remove other's nickname as an admin

  • Ported /role command + added role and color checking if role/color exists

  • Ported /badge command + some optimizations

  • Ported /bwords command + some optimizations

  • Moved Logging System to init.py

  • Moved some more variables to init.py

  • Moved debug_logger to init.py

  • Fixed showing "None" as main badge in Memberlist when no main badge is set (#47)

  • Fixed Bad File Descriptor when logging out (#49)

  • Fixed "Sometimes logs get spammed with empty messages after a user connected/disconnected" (#39)

  • Completly (hopefully) fixed broken formatting of log messages in console (#45)

  • Fixed kick and exit command, will now log when user leaves the chat

  • Updated Logger

  • Fixed message class

  • Replaced long if-clause with match-case pattern, fixing #44

  • Added optional ready_func function passing

  • Better formatting for logger

  • Updated Discord Bridge

  • Renamed src.commands.admin.broadcast to src.commands.admin.broadcast_cmd to get not confused by the broadcast function

  • Renamed src.commands.default.exit to src.commands.default.exit to get not confused by python's exit function

  • Renamed thread creation vars according to python's standards

  • Renamed serverSocket to server_socket according to python's standards

Known Issues

  • #63 (Fixed in Canary Release v1.9.0)

Released by @Juliandev02
Full Changelog: https://github.com/Strawberry-Foundations/strawberry-chat/blob/main/server/changelogs/CHANGELOG_1.8.1.txt
Git Changelog: v1.8.0...v1.8.1

Strawberry Chat v1.8.0

01 Oct 15:00
Compare
Choose a tag to compare

Strawberry Chat - v1.8.0 Stable

Hello. Today I will release Strawberry Chat v1.8.
After a long development period and many rewrites of code pieces, it's time for the official release.
There are many new changes and fixes that greatly improve the user experience.
Lets start with the changelog!

Changelog

  • Complete new command system

  • Much more code modularity

  • Added password hashing (#24, #40, #41, #42)

  • Added a complete new login system, which fixed security issue #42

  • Added memberlist command with beatiful representation of registered members and their roles

  • Added direct messages to send private/direct messages to members, instead sending it to everyone

  • Added message counter

  • Added online member count to memberlist

  • Added stbchat plus user badge

  • Added account creation date to user profile

  • Added "Member since" to user profile

  • Added many new commands to help section

  • Added dm activation and disactivation

  • Added strawberry badge

  • Added online/offline/afk status to user profile command

  • Added isOnline func to userinfo + changed string

  • Added strawberry id connection to user profile

  • Added reworked kick command

  • Added changelog command

  • Added user mentioning (If you mention a user (e.g. @ someuser), it will be highlighted)

  • Added variable source file for modularity

  • Added automatic user id allocation

  • Added functions source file for modularity

  • Added user creation date to user profile

  • Added Hashtag Placeholder Format Support (HTPF) for chat messages and broadcast command, to send colorized messages or the current time (e.g. #today or #red)

  • Added an (unstable) Bard chat bot

  • Added that bots will no longer be affected of stripping new lines

  • Added custom database wrapper (currently in development)

  • Added Feature/Edition Key for better User Experience

  • Added username changing feature

  • Added password changing feature

  • Added settings command for easier management of user flags (#27)

  • Added server command input, for example updating the server or getting information about the server

  • Removed time class and time functions

  • Removed command alias "/userinfo"

  • Updated /user command so it can now be used without argument to show your user profile

  • Applied repl_htpf function to broadcast command

  • The response url for getting versions from the stbapi will now be the url from src.vars

  • Improved user register system

  • Moved escape_ansi function to functions source file

  • Moved help sections to vars source file

  • Added repl_htpf to replace placeholders from the Hashtag Placeholders Format

  • Removed regen database code "procedure" and created function for database regeneration in functions source file

  • Added init.py file for very specificed "init things"

  • Moved "some" online mode functions so separate file (src/online.py)

  • Added broadcast_all function to functions.py for using the broadcast function in commands

  • Moved afks variable to init

  • Moved users variable to init.py

  • Moved many functions from server.py to src/functions.py

  • Separated clientRegister function from the clientLogin function

  • Fixed wrong time/date formatting for file logging (!!!)

  • Fixed duplicated code which led to formatting errors

  • Fixed wrong formatting with carriage return usage in custom clients

  • sqlite3.ProgrammingError: Recursive use of cursors not allowed + fixed illegal rule of multiple reusing c

  • Removed duplicated cursor creation and db variable assignment

  • re-definition of global db variable now at the top of the clientThread function

  • Removed duplicate import (os & os.path.exists)

  • Fixed closing database when registering a new user

  • Forgot to add to_kick.close() to close the connection between server and client (from kicked client)

  • Fixed memberlist command when offline mode is disabled

  • Fixed illegal ansi usage in dm command (message)

  • Fixed sending dm message to non-existent user

  • Fixed using forbidden \n in message with custom clients

  • Fixed not escaping ansi + stripping \n when logging messages to console

  • Fixed correct arrangement of log messages when leaving the chat

  • Fixed wrong user id allocation (allocated new user id to message count)

  • Fixed showing badges when you dont have badges in user command (displays buggy "None")

  • Fixed allowing ansi escape codes and \n while logging in

  • Fixed not saving log file to server directory when executing server from another directory

  • Fixed bug for receiving raw messages (hidden ansi chars)

  • Added get_username_by_msg function

  • Rework of command system, now with decorators

  • Fixed printing "Message could not be sent" when exiting/stopping the bot

  • Unimported readline because it makes problems

  • Removed example database, because the server will now create the database when the database does not exist

  • Moved table_query to top, added new sys argument to regenerate the database

  • Correct names for the database variables

  • Created separate variables for help messages at the top of the code

  • reodered some commands in the code

  • Removed duplicate of code piece (userRoleColor)

  • Test mode will now only be 10 seconds (better for GitHub Actions)

  • Updated important information header of server.py file

  • Registration updated; will now set msg_count to 0 when registering

  • Added function to get IP

  • from our products (e.g. strawberry-chat server/client, ...)

Known Issues

  • When using Ctrl + C in client, the server will crash (BrokenPipe) #1

Feature Requests & Ideas

  • Strawberry Chat+ #21
  • Documentation for d...
Read more