Skip to content

Releases: zekroTJA/shinpuru

1.21.1

12 Aug 08:50
Compare
Choose a tag to compare

Changes

Configuration Update

The .database.redis configuration has now been moved to .cache.redis, because the redis instance is also used for state caching and not only for database caching anymore. Also, .database.redis has now been marked as deprecated and will be completely removed in upcoming patches.

Also, a new settings key .cache.cachedatabase (type: boolean, default: true) has been added which enables or disables database request caching in Redis.

From config/config.example.yaml

# Caching prefrences.
cache:
  # Redis connection configuration.
  redis:
    # Redis host address
    addr: "localhost:6379"
    # Redis password
    password: "myredispassword"
    # Database type
    type: 0
  # If enabled, most frequently used database
  # requests are automatically cached in redis
  # to minimize load on the database as well as
  # request times.
  # It is recomendet to leave this enabled. If
  # you want to disable it for whatever reason,
  # you can do it here.
  cachedatabase: true

Bugfixes

  • In the guild settings page, the navbar now only shows the sections the current user actually has permission access to. [#268]
  • "Anonymous Reports" have now been renamed to "Ghost Reports" to prevent missunderstandings. Also added a feature explanation to the Ghost Report modal. [#270, #271]
  • The global search checks now for login status before being shown. [#273]

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.21.1

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.21.1

1.21.0

05 Aug 18:36
665b519
Compare
Choose a tag to compare

Changes

Added Global Search

By pressing CTRL + F anywhere in the web interface, you can now bring up a global fuzzy search which will search through all accessable guilds and their members. You can even navigate in the search only by using the keyboard! 😉

image

Public Guild API

You can now enable a public API endpoint which exposes general information about your Guild via shinpuru's REST API.

image

The output of the endpoint will then look as following.

image

Updated the Style of the Notifications

The design of the notifications now fits in better with the general design language of the web app. Also the space around the notification box was adjusted to fit under the new header.

Updated the Style of some Icons

Also some of the used Icons did not fit in the new design anymore and have been adjusted. As an example, below you can see the old vs. the new drop down icon.

Bugfixes

  • Vulnerability Fix: OTA tokens now support scoping and scope validation so that they can only be used for the exact purpose they were originally issued for. [#264]
  • Added message reaction tracking to dgrs to fix starboard functionality.
  • Starboard guild settings are now also properly saved to the database instead only to cache.
  • Fix the heading content of the invite blocking toggle notification.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.21.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.21.0

1.20.0

30 Jul 16:23
Compare
Choose a tag to compare

Changes

Because embedded video files are not shown here for some reason, please read the changelogs here if you want to see them. 😉

Using Reactions to control clear command [#249]

You can now either select single messages to be deleted by adding the ❌ reaction to the messages or you can delete all messages after (and including) the message marked with the 🔻 reaction. The delete action is then performed on entering the clear selected command.

Screen.Recording.2021-07-25.at.10.34.36.mov
Screen.Recording.2021-07-25.at.10.35.37.mov

Setting multiple autoroles [#147]

You can now set multiple autoroles in the web interface as well as via the autorole command.

Screen.Recording.2021-07-30.at.17.54.15.mov

Invite Badge

As you might know, when the web interface is enabled, you can use <address>/invite as redirect link to the invite link of the bot instance (see https://shnp.de/invite, for example). Additional to that, an endpoint was added which generates a badge with the current guild count of the instance.

Examples:

  • https://shnp.de/invite/badge.svg
  • https://c.shnp.de/invite/badge.svg?title=invite%20(canary)&color=orange

Bugfixes

  • shireikan now also uses dgrs state when passed.
  • Hydrated guild states are now obtained where required.
  • The tagxinput component has now proper item alignment.
  • Setting @everyone as autorole is no more possible.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.20.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.20.0

1.19.0

23 Jul 12:26
15d23e1
Compare
Choose a tag to compare

Minor Changes

  • Updated the visual representation of the guild dropdown.

  • Use skeleton tiles as loading indicators instead of spinners.

Bug Fixes

  • Role position diffs are now properly checked on each ban/kick/mute/unmute report execution.

  • Fixed guild settings button alignment.

  • Fixed guild tiles alignment in home view.

  • Fixed displaying animated guild icons.

  • The menu dropdown now properly closes when clicking on the user tile.

  • Anonymous report creation will no more result in a 404 Member not found error.

  • Report timeouts can now also be defined when creating anonymous reports.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.19.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.19.0

1.18.0

20 Jul 08:47
Compare
Choose a tag to compare

Major Changes

Ban/Mute Timeout [#246]

You can now specify a timeout duration or date to mute and ban reports. After this time, the victim is automatically unbanned or unmuted, but the report will not be removed.

Here you can read on how to use timeouts in the mute and ban command.

The expiration of reports is defaultly checked every 5 minutes, but you can specify an other schedule in the config.

schedules:
  reportsexpiration: "@every 5m"

SQLite3 Deprecation

The SQLite3 driver was marked as deprecated in patch 1.16.0 and has now fully been removed. If you need information why this step was taken and how to switch to MariaDB for development, please read this document.

Minor Changes

  • Add loading indicator in the web interface.

  • dgrs was now updated to v0.3.0 which allows dehydration of removed objects and caching of User→GuildIDs relationships.

  • Hence, the load time of the guild list in the web interface should be significantly faster. [#257]

  • Messages are now only cached for 14 Days in state.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.18.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.18.0

1.17.1

10 Jul 10:57
198a61c
Compare
Choose a tag to compare

Minor Changes

  • Refine request logging (only in debug log channel).

Bugfixes

  • Fix critical bug where occasionally, none or only a fraction of guilds were detected for member fetching on ready. [#252]
  • Fix command logging which was not existent even when enabled by config. [#253]

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.17.1

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.17.1

1.17.0

09 Jul 14:44
Compare
Choose a tag to compare

Major Changes

New State Management

Even though this change is not primarily visible to users, I want to highlight it here because it is a huge step for shinpuru's development.

A Discord bot requires a so called state which caches retrieved objects from the Discord API to improve the user experience and to avoid running into rate limitations on the Discord API. Before, shinpuru relied on the internal state manager of discordgo. This was swapped out with a custom state mamnager called dgrs which stores state objects in Redis. Here you can read more about the advantages of this implementation.

Also, this implementation allows to run shinpuru without the privileged presence intent. This strongly reduces incomming event traffic. Also, this might make it more easy to get shinpuru verified some time. :)

Because this implementation needs a lot more testing and might be still unstable, there is a new command for bot admins named maintenance which groups a collection of sub commands to flush the state cache, reconnect the Discord session or kill the bot instance to perform a hard-restart.

Minor Changes

  • Added metrics for REST API and Redis connection.

Bugfixes

  • Fixed issue that clear command removed one message less than expected. [#248]
  • Fixed login page to fit into new style.
  • Fixed metrics endpoint server.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.17.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.17.0

1.16.0

18 Jun 08:04
ac21ff2
Compare
Choose a tag to compare

Major Changes

SQLite Deprecation

The SQLite Database driver, which is neither continuously maintained, nor tested, nor recommendet to be used in a production scenario, is now marked as deprecated and will be removed in the upcoming version!

For development environments, please use the provided docker-compose.dev.yml to easily set up a development environment for shinpuru.

Web Frontend

This release contains further design changes of the web frontend.

First of all, I've finally changed the background color scheme. Originally, shinpurus web frontend should have followed the original Discord desogn language. Thats why still most colors are derived from them. Though, my view has changed a bit on the blue-gray background colors. To be honest, I really started hating them so much so that I've changed them to a more 'classical' dark-gray.

Also, as you might have noticed, the header is now split up into two "floating" parts. In my opinion, the central part of the header was just a useless waste of space, so now, it's a bit more condensed and fits better into the general design.

Also the guild settings page got a massive redesign. First of all, the navigation bar is now also a floating navigation menu. The page content is now centered to be consistent with other content orientations.

Also, I've done a lot to make the guild settings more responsive to mobile devices. It's not perfect though, but better than before. ^^

Bug Fixes

  • Code execution can now only be triggered by the author of the code message. [#244]

  • The route /invite now redirects to the bot's invite link again. [#245]

Backstage

  • All report utilities are now summarized in a report module which is registered in the DI container. This makes further modifications and implementations with the report system more easy.

  • shinpuru now uses a new version of timedmap which should bring some performance improvements.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.16.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.16.0

1.15.0

04 Jun 10:45
7d28c0f
Compare
Choose a tag to compare

Minor Changes

  • If you are not present on the karma scoreboard in the web interface, your current karma score for that guild is now displayed above the scoreboard. [#240]

  • In the karma preferences, you can now enable a Karma penalty. When enabled and when a user decreases the karma of another user by giving them a downvote, the executor of the downvote pays with 1 Karma point from their own karma account. So you give someone -1 Karma and you will also get -1 Karma. This is introduced to reduce karma trolling and uncontrolled downvoting of members.

Bug Fixes

  • Votes should now be saved properly in the database. [#242]

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.15.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.15.0

1.14.0

21 May 09:22
4c06f8c
Compare
Choose a tag to compare

Major Changes

Guild Logs [#229]

Errors occuring in scope of guilds like, for example, failing backups, errors on setting autoroles, fails on sending messages in channels due to missing permissions, and so on, are now collected in the database and are visible in the guild admin panel.

Also, it will help spotting bugs in shinpuru by giving occuring errors more exposure.

You can also delete single or all entries of the error logs if there are any confidential information you do not want to be displayed in there.

Also, there are plans to display guild settings audit information in there like who changed when which guild setting.

Guild Settings Relocation [#194]

General guild settings like guild prefix, autorole or join and leave messages are now moved to the guild settings route.

The Guild Settings dropdown is now removed and you can now find a settings button next to the guild heading (if you have permissional access to any guild settings), where you can now get to the guild settings route.

Privacy Considerations [#229]

Because I try to take privacy very serious myself, I want to take a step forward to also do so with shinpuru.

There is now a new tab in the guild settings called Data. There, you are now able to file a database flush of all data correlated to the guild.

This includes all reports and associated image data; all backups and associated backup files; all karma scores, settings, rules and blocklist; all starboard entries and configuration; all guild settings and permission specifications; tags; antiraid settings and joinlog and all unban requests.

Also, you can now find a Privacy Statement in shinpurus repository where I tried to point down as much details about which personal data is stroed in the shinpuru services as well as why they are stored and how they are stroed. Also I linked some contact information if you want to have data removed which is linked to your identity.

Minor Changes

  • Updated and unified some more frontend designs like capitalization of headings, for example.

Bug Fixes

  • Error messages in the web interface now actually give information about the error.
  • Karma rules are now length-capped in the web interface so they will not overflow anymore.
  • Fix the style of the pro tip overlays.

Docker

Here you can find the docker hub page of shinpuru and here you can find Docker images released on the GHCR.

Pull the docker image of this release:

From DockerHub:

$ docker pull zekro/shinpuru:1.14.0

From GHCR:

$ docker pull ghcr.io/zekrotja/shinpuru:1.14.0