1
0
Fork 1
mirror of https://github.com/TeamOctolings/Octobot.git synced 2025-01-31 00:19:00 +03:00
Commit graph

325 commits

Author SHA1 Message Date
bf818401d8
Bump TargetFramework from 8.0 to 9.0 (#344)
Simple and self-explanatory.

Closes #342

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-12-01 19:52:47 +03:00
5c235b9f98
Downgrade GitInfo from 3.5.0 to 3.3.5 (#343)
This pull request downgrades GitInfo from 3.5.0 to 3.3.5 due to a
decision from the maintainers to lock features behind a paywall.

![image](https://github.com/user-attachments/assets/f90eba84-1a1e-43eb-950e-e233a02feb9a)
2024-12-01 19:48:25 +03:00
dependabot[bot]
ed298202fc
Bump JetBrains.Annotations from 2024.2.0 to 2024.3.0 (#339) 2024-11-15 14:41:36 +00:00
dependabot[bot]
9fc97bc908
Bump GitInfo from 3.3.5 to 3.5.0 (#340) 2024-11-15 14:35:06 +00:00
bfee889149
ssh-keyscan is a dumb command (#338)
Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-10-28 08:04:08 +03:00
8a42ecd1ab
Retrieve SSH port from environment secrets (#337)
Fixes current deployment failure due to use of non-standard SSH port on
our production host.

`ssh-keyscan` command was moved out to its own step to help
troubleshooting in the future.

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-10-28 07:51:24 +03:00
84dc248038
Add Dockerfile and compose.yaml (#335)
This PR adds Dockerfile, to run Octobot within a Docker container, and
compose.yaml, to run the Octobot container along with any services that
the user may require.

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
Co-authored-by: mctaylors <cantsendmails@mctaylors.ru>
2024-10-27 22:31:04 +05:00
9e44d49039
Update dependencies (#334)
this is supposed to be Dependabot's job, but ig something happened to it

Bumps `JetBrains.Annotations` from `2023.3.0` to `2024.2.0`
<details><summary>Changelog</summary>
• Added DefaultEqualityUsageAttribute for equality members usage
analysis.
• MustDisposeResourceAttribute is now allowed on struct types.
• Added ability to specify the description for UsedImplicitlyAttribute
(new 'Reason' property).
• Added copyright information to nuspec.
</details>

Bumps `Remora.Commands` from `10.0.5` to `10.0.6`
<details><summary>Changelog</summary>
Upgrade Remora.Sdk.
           Upgrade nuget packages.
</details>

Bumps `Remora.Discord.Extensions` from `5.3.5` to `5.3.6`
Bumps `Remora.Discord.Interactivity` from `4.5.4` to `5.0.0`
<details><summary>Changelog</summary>
Update dependencies.
BREAKING: Rework deletion logic for data leases to prevent deadlocks.
</details>

The breaking change in Remora should not affect us.

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-10-03 21:18:25 +03:00
dependabot[bot]
450f1da54d
Bump muno92/resharper_inspectcode from 1.11.12 to 1.12.0 (#332) 2024-09-23 18:59:32 +00:00
8028d47ba1
Fix redundant type specification (#333)
This PR fixes failing checks for #332
2024-09-23 23:55:58 +05:00
086cb672f0
Fix wrong private key file name (#330)
The key used for deploy is Ed25519, not RSA

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-08-25 16:03:31 +05:00
0fc53990b9
Update song list with new Splatoon™ soundtracks (#266)
Changes in the list:
1. Fly Octo Fly ~ Ebb & Flow (Octo) / Off the Hook → Spectrum Obligato ~
Ebb & Flow (Out of Order) / Off the Hook feat. Dedf1sh
2. `#47` onward / Dedf1sh feat. Off the Hook
3. EchΘ Θnslaught / Free Association
4. Short Order / Off the Hook
5. Fins in the Air / Deep Cut

Signed-off-by: Macintxsh <95250141+mctaylors@users.noreply.github.com>
2024-08-25 07:11:54 +00:00
afd0141c13
/about: Replace repo link with website link (#328)
A some sort of UX change. Repository link will be still accessible from
the website.
2024-08-24 15:50:32 +00:00
d1133124b8
Apply new inspection fixes (#329)
Rider and R# 2024.2 have introduced new inspections, causing current
builds to fail. This PR applies fixes for issues caught by these
inspections.
2024-08-24 20:48:47 +05:00
e457b4609e
Don't log stack traces for cancelled operations (#327)
This PR fixes an issue where the `LogResultStackTrace` method would log
stack traces for results that encountered an error due to a cancelled
operation/task. The `LoggerExtensions` class already skipped
`TaskCanceledException`s, but didn't skip `OperationCanceledException`s
(which is a parent of `TaskCanceledException`).

The patch specifically does not affect *inner* results which are
canceled. Skipping logging these could hide the true cause of an error
which appears important
2024-07-31 23:57:21 +05:00
d6d2660fb0
Show an error when entering the same value from the settings (#326)
Closes #324
2024-07-31 14:13:29 +05:00
07e8784d2e
Redesign reminder-related commands (#321)
In this PR, I redesigned the reminder-related commands and they will now
have a quote block instead of a inline code block (to avoid some visual
bugs). Except /listremind. It just has the inline code block removed.

![image](https://github.com/TeamOctolings/Octobot/assets/95250141/3521af97-ee11-405f-8cc2-7bf9a747e757)
2024-07-03 17:12:32 +00:00
930b7ca6ed
Bump InspectCode from 1.11.10 to 1.11.12 (#323)
I <3 breaking changes.
2024-07-03 22:09:39 +05:00
a0e7b3a611
Always default cancellation tokens (#319)
This PR makes sure that a cancellation token is never *required* to use
an `async` method. This does not affect user experience in any way, only
code quality.

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-06-25 15:09:45 +05:00
a953053f1d
Handle audit log entries for message deletion being empty (#317)
In order to determine who deleted a message, Octobot fetches the audit
log with a filter on the action "Message Delete", gets the latest entry
and uses its author if the timestamps roughly match. However, if the
filter returns no entries (as in, no message deletions are present in
the audit log), `Single()` will throw an exception with the message
`Sequence contains no elements`. To fix this, this PR replaces
`Single()` with `SingleOrDefault()` and adds a null-check on `auditLog`
in the form of a pattern access

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-06-21 19:28:29 +00:00
2b0c4b62d3
README: Refer to the Octobot's Wiki in Building Octobot (#316)
Signed-off-by: Fakeintxsh <95250141+mctaylors@users.noreply.github.com>
2024-06-11 11:28:06 +05:00
29a1eb9869
Add description to /clear's author to clarify its functionality (#315)
Closes #314

What? The title speaks for itself.
2024-05-31 21:46:12 +05:00
daef4f1d48
Upgrade NuGet dependencies (#313)
Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-05-30 15:32:27 +05:00
ea9302e185
Use MemberData roles when checking permissions & interactions (#312)
Closes #311 

This change fixes unexpected behavior when a member's Discord roles get
desynchronized with their MemberData roles (e.g. when a member gets
role-muted). In addition this results in less API requests being made
when there are cache misses (commands should execute faster)

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-05-23 18:21:52 +05:00
d03e2504fc
Seal implicitly used classes (#309)
Apparently the `[UsedImplicitly]` annotation suppresses the "Class has
no inheritors and can be marked sealed" warning. Cool to know.

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-05-23 17:47:51 +05:00
ebcdcb35f7
Separate /*info commands from ToolsCommandGroup (#308)
who tf thought that putting 1234915912 methods responsible for 23981
commands in a single class was a good idea???????

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-05-18 21:12:38 +05:00
793afd0e06
Apply official naming guidelines to Octobot (#306)
1. The root namespace was changed from `Octobot` to
`TeamOctolings.Octobot`:
> DO prefix namespace names with a company name to prevent namespaces
from different companies from having the same name.
2. `Octobot.cs` was renamed to `Program.cs`:
> DO NOT use the same name for a namespace and a type in that namespace.
3. `IOption`, `Option` were renamed to `IGuildOption` and `GuildOption`
respectively:
> DO NOT introduce generic type names such as Element, Node, Log, and
Message.
4. `Utility` was moved out of the `Services` namespace. It didn't belong
there anyway
5. `Program` static fields were moved to `Utility`
6. Localisation files were moved back to the project source files. Looks
like this fixed `Message.Designer.cs` code generation

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-05-16 20:34:26 +05:00
19fadead91
Enable result stacktraces in release mode (#305)
Originally I did not enable because "stack traces are expensive to
retrieve", but let's be honest, who cares, this is a Discord bot,
there's no such thing as "good performance"
2024-05-13 18:10:41 +05:00
2502beb5df
Dependabot: ignore patch updates (#304)
This PR *should* disable creating Dependabot PRs for patch updates.
These updates often don't contain significant changes and only clutter
the PR feed in addition to taking the maintainers' time
2024-05-13 12:43:59 +00:00
dependabot[bot]
3029089385
Bump muno92/resharper_inspectcode from 1.11.8 to 1.11.10 (#302) 2024-05-13 12:41:55 +00:00
508edcbd68
Don't hardcode logo's link in /about (#301)
In this PR, I made the logo link in /about use HEAD instead of hardcoded
branch.

---------

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
Co-authored-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-04-08 14:02:31 +03:00
defa3c2e4a
Listen to Maritime Memory on Wii U Discontinuation Day (#299)
Due to the shutdown of Wii U online services on April 8 at 23:00 UTC
(which affects Splatoon for Wii U), I'm opening a PR to memorialize
Splatoon multiplayer on Wii U by replacing bot music with Maritime
Memory on April 8-9.

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
2024-04-07 13:51:28 +03:00
d3053d87e8
Remove mctaylors' version of the Russian language (#297)
295 PR/issues ~(not 300, however)~ or ~1.5 years ago, I made #2, the
Russian language replacement aka mctaylors-ru. This was my first
contribution to the Octobot project (formerly known as Boyfriend). This
was to add some sort of unique, unusual feature to Octobot, which
doesn't have any moderator bots. Everyone loved the language. But it
just became difficult to maintain. I certainly don't want to get rid of
it, but it leaves me no other choice. This isn't a joke or anything like
that. I'm tired of maintaining it. And I'm sure the other contributors
are too.

This PR removes the mctaylors-ru language.

---------

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
Co-authored-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-04-01 22:20:41 +03:00
96680d3beb
Make the logo in /about independent of image hosting (#296)
PR's name speaks for itself. It might also be useful to update the logo
more easily.

---------

Signed-off-by: Macintxsh <95250141+mctaylors@users.noreply.github.com>
Co-authored-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-04-01 12:59:19 +00:00
70fccf8335
Use unicode codes instead of emojis (#295)
This change was made to avoid using emoji in the code, which may not
render correctly depending on the IDE and/or operating system.
2024-04-01 15:57:49 +03:00
9429dfe8d8
Fix "No operation context has been set for this scope." crash on startup (#293)
Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-26 15:35:31 +05:00
dependabot[bot]
cccc4d6205
Bump muno92/resharper_inspectcode from 1.11.7 to 1.11.8 (#292)
Bumps
[muno92/resharper_inspectcode](https://github.com/muno92/resharper_inspectcode)
from 1.11.7 to 1.11.8.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/muno92/resharper_inspectcode/releases">muno92/resharper_inspectcode's
releases</a>.</em></p>
<blockquote>
<h2>1.11.8</h2>
<!-- raw HTML omitted -->
<h2>What's Changed</h2>
<ul>
<li>the input <code>cacheHome</code> should be <code>cachesHome</code>
[sic] by <a href="https://github.com/n0099"><code>@​n0099</code></a> in
<a
href="https://redirect.github.com/muno92/resharper_inspectcode/pull/458">muno92/resharper_inspectcode#458</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/n0099"><code>@​n0099</code></a> made
their first contribution in <a
href="https://redirect.github.com/muno92/resharper_inspectcode/pull/458">muno92/resharper_inspectcode#458</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/muno92/resharper_inspectcode/compare/1.11.7...1.11.8">https://github.com/muno92/resharper_inspectcode/compare/1.11.7...1.11.8</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/muno92/resharper_inspectcode/blob/main/CHANGELOG.md">muno92/resharper_inspectcode's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/muno92/resharper_inspectcode/compare/1.11.7...1.11.8">1.11.8</a>
- 2024-03-23</h2>
<ul>
<li>the input <code>cacheHome</code> should be <code>cachesHome</code>
[sic] by <a href="https://github.com/n0099"><code>@​n0099</code></a> in
<a
href="https://redirect.github.com/muno92/resharper_inspectcode/pull/458">muno92/resharper_inspectcode#458</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="1aa09d0e3f"><code>1aa09d0</code></a>
Merge pull request <a
href="https://redirect.github.com/muno92/resharper_inspectcode/issues/459">#459</a>
from muno92/tagpr-from-1.11.7</li>
<li><a
href="b5d9f05274"><code>b5d9f05</code></a>
Compile</li>
<li><a
href="cf28f1048a"><code>cf28f10</code></a>
[tagpr] update CHANGELOG.md</li>
<li><a
href="d41935b2e5"><code>d41935b</code></a>
[tagpr] prepare for the next release</li>
<li><a
href="5685c9cc42"><code>5685c9c</code></a>
Merge pull request <a
href="https://redirect.github.com/muno92/resharper_inspectcode/issues/458">#458</a>
from n0099/main</li>
<li><a
href="d433d7b7fd"><code>d433d7b</code></a>
Update README.md</li>
<li>See full diff in <a
href="https://github.com/muno92/resharper_inspectcode/compare/1.11.7...1.11.8">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=muno92/resharper_inspectcode&package-manager=github_actions&previous-version=1.11.7&new-version=1.11.8)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-25 10:47:05 +03:00
e76fccd622
Rename currentMember to botMember (#291)
Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
2024-03-24 21:40:04 +03:00
171cfaea1a
Add 'ModeratorRole' guild setting (#290)
Octobot has various moderation commands such as /ban, /mute, /kick.
These commands add multiple features to Discord's built-in functions
(such as durations and logging). Some admins may want to force their
users to use Octobot's commands instead of Discord UI functions.
However, due to the current design, they can't take away the permissions
as that remove access to the respective command.

This PR adds the `ModeratorRole` option which allows anyone who has
`ManageMessages` permission and the role to perform any moderator
action.

If the role is not set, the Discord permissions are checked instead. If
the user doesn't have the role, but has the permission, they can still
run the command.

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-24 23:29:10 +05:00
5e4d0a528c
Split message clear log when cleared messages are too long (#288)
This change makes Octobot split the message clear log into multiple
messages when the combined length of cleared messages exceeds the
maximum length for an embed description.

Closes #180
2024-03-24 15:48:32 +00:00
c2f7aadaea
Do not use ResultError#IsUserOrEnvironmentError (#289)
In LoggerExtensions#LogResult we skip logging the result if the error is
"user or environment error". What matches that criteria is defined by
Remora's implementation.

However, none of errors defined by the implementation should *ever* happen or be ignored:
* CommandNotFoundError: The client shouldn't send us non-existing
commands. This *can* happen because the client's command list can get
out of sync with the server's, but this happens rarely.
* AmbiguousCommandInvocationError: We don't have commands that would
trigger this error
* RequiredParameterValueMissingError: The client shouldn't send us
commands without required paremeters
* ParameterParsingError: See #220
* ConditionNotSatisfiedError: The client shouldn't send us commands that
don't satisfy our conditions

Closes #220
2024-03-24 15:38:51 +00:00
844615e8bf
fix: do not use RepositoryUrl from GitInfo (#287)
GitInfo's `RepositoryUrl` string depends on origin URL, which is
unvalidated user input that isn't even guaranteed to exist. This can
cause issues that are almost impossible to
debug

Closes #281
2024-03-24 17:39:26 +05:00
a9509deb1c
Don't use BannedUntil in MemberData.<init> (#286)
Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
2024-03-24 13:11:00 +03:00
ac8621a2ec
Pre-Wiki Update (#285)
This PR has been opened to finally update Octobot's Wiki.

Current changes summary:
- correct minor spelling issues in some command descriptions
- /about: add Octobot's Wiki button

---------

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
2024-03-23 21:45:39 +03:00
e0232f6008
Merge some sequential 'if' statements (#284)
i thought there would be a lot of statements that could be merged, but
these are only ones I could find, apparently

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-21 21:31:17 +05:00
a80debf1b1
Use Result.Success property instead of Result.FromSuccess() (#283)
Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-21 20:55:34 +05:00
309d900067
Log result failures with stack traces (#282)
This feature will improve the debugging experience for developers by
providing the information about *where exactly* a result has failed

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-20 18:08:16 +00:00
5cc04e9cc3
Change position of "Jump to ..." action for better consistency (#279)
This will better align with how a normal moderator would respond to the
log:

Before: "see log" -> "jump to message without knowing what changed" ->
"read message diff"
After: "see log" -> "read message diff" -> "jump to message for context"

In addition, the change improves consistency with how reminders are
shown.

---------

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-20 22:34:22 +05:00
0a930dcab1
Allow using expression-bodied properties (#280)
This change significantly reduces the code space used by properties
while maintaining clarity on types. Since only properties are allowed to
use expression bodies, it is clear to developers that what they are
looking at is a property or not

Signed-off-by: Octol1ttle <l1ttleofficial@outlook.com>
2024-03-20 21:08:59 +05:00
ca49231c86
Disable issue report button if dirty version detected (#275)
In this PR, I'm disabling the Report Issue button if a "dirty" version
is detected. This is done just in case so that "smart" developers don't
accidentally report a bug that they themselves created.

---------

Signed-off-by: mctaylors <cantsendmails@mctaylors.ru>
2024-03-20 15:59:25 +03:00