Skip to content

Commit 76f45d9

Browse files
committed
Kick.bot 1.0 RELEASE
- New configuration UI ; - Support for Streamer & Bot account simultaneously ; - Added support for Rewards, Predictions and some new methods ; - Code refactoring : only one project remains, all sources are now open Check release page for more detailed information.
1 parent f7110b8 commit 76f45d9

64 files changed

Lines changed: 7512 additions & 1672 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitmodules

Lines changed: 0 additions & 4 deletions
This file was deleted.

.idea/.idea.Kick.bot/.idea/.gitignore

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.Kick.bot/.idea/indexLayout.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/.idea.Kick.bot/.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

API/Events/BannedUserEvent.cs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
using Newtonsoft.Json;
19+
using System;
20+
21+
namespace Kick.API.Events
22+
{
23+
public class BannedUserEvent : KickBaseEvent
24+
{
25+
[JsonProperty("ban")]
26+
public UserBan Ban { get; internal set; }
27+
[JsonProperty("banned")]
28+
public EventUser Banned { get; internal set; }
29+
public bool IsBanned => Ban != null;
30+
}
31+
32+
public class UserBan
33+
{
34+
[JsonProperty("reason")]
35+
public string Reason { get; internal set; } = string.Empty;
36+
[JsonProperty("created_at")]
37+
public DateTime BannedSince { get; internal set; } = DateTime.Now;
38+
[JsonProperty("expires_at")]
39+
public DateTime? BannedUntil { get; internal set; }
40+
[JsonProperty("type")]
41+
public string Type { get; internal set; } = "complete";
42+
}
43+
44+
public class UserBanResult : UserBan
45+
{
46+
[JsonProperty("id")]
47+
public string Id { get; internal set; }
48+
[JsonProperty("permanent")]
49+
public bool Permanent { get; internal set; }
50+
[JsonProperty("banner_id")]
51+
public string BannerId { get; internal set; }
52+
[JsonProperty("banned_id")]
53+
public string BannedId { get; internal set; }
54+
[JsonProperty("chat_id")]
55+
public string ChatId { get; internal set; }
56+
}
57+
}

API/Events/BannedWordEvent.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
using Newtonsoft.Json;
19+
20+
namespace Kick.API.Events
21+
{
22+
public class BannedWordEvent : KickBaseEvent
23+
{
24+
[JsonProperty("word")]
25+
public string Word { get; internal set; }
26+
27+
public bool IsWordBanned { get; internal set; } = true;
28+
}
29+
}

API/Events/ChannelFollowEvent.cs

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
using Newtonsoft.Json;
19+
20+
namespace Kick.API.Events
21+
{
22+
public class ChannelFollowEvent : KickBaseEvent
23+
{
24+
[JsonProperty("followers_count")]
25+
public long FollowersCount { get; internal set; }
26+
27+
public bool IsFollowing { get; internal set; } = true;
28+
}
29+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
using Newtonsoft.Json;
19+
20+
namespace Kick.API.Events
21+
{
22+
public class ChatMessageDeletedEvent
23+
{
24+
[JsonProperty("id")]
25+
public string Id { get; internal set; }
26+
[JsonProperty("message")]
27+
public ChatMessageDeletedInfos Message { get; internal set; }
28+
}
29+
30+
public class ChatMessageDeletedInfos
31+
{
32+
[JsonProperty("id")]
33+
public string Id { get; internal set; }
34+
}
35+
}

API/Events/ChatMessageEvent.cs

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
using Newtonsoft.Json;
19+
using System;
20+
21+
namespace Kick.API.Events
22+
{
23+
public class ChatMessageEvent
24+
{
25+
[JsonProperty("id")]
26+
public string Id { get; internal set; }
27+
[JsonProperty("chatroom_id")]
28+
public long ChatroomId { get; internal set; }
29+
[JsonProperty("content")]
30+
public string Content { get; internal set; }
31+
[JsonProperty("type")]
32+
public string Type { get; internal set; }
33+
[JsonProperty("created_at")]
34+
public DateTime CreatedAt { get; internal set; }
35+
[JsonProperty("sender")]
36+
public ChatUser Sender { get; internal set; }
37+
38+
[JsonProperty("metadata")]
39+
public MessageMetadata Metadata { get; internal set; }
40+
41+
[JsonIgnore]
42+
public bool IsReply
43+
{
44+
get
45+
{
46+
return Type == "reply";
47+
}
48+
}
49+
50+
public class MessageMetadata
51+
{
52+
[JsonProperty("original_message")]
53+
public OriginalMessage OriginalMessage;
54+
[JsonProperty("original_sender")]
55+
public OriginalSender OriginalSender;
56+
}
57+
58+
public class OriginalMessage
59+
{
60+
[JsonProperty("id")]
61+
public string Id { get; internal set; }
62+
[JsonProperty("content")]
63+
public string Content { get; internal set; }
64+
}
65+
66+
public class OriginalSender
67+
{
68+
[JsonProperty("id")]
69+
public string Id { get; internal set; }
70+
[JsonProperty("username")]
71+
public string Username { get; internal set; }
72+
}
73+
}
74+
}

API/Events/ChatModeChangedEvent.cs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/*
2+
Copyright (C) 2023-2025 Sehelitar
3+
4+
This program is free software: you can redistribute it and/or modify
5+
it under the terms of the GNU Affero General Public License as published
6+
by the Free Software Foundation, either version 3 of the License, or
7+
(at your option) any later version.
8+
9+
This program is distributed in the hope that it will be useful,
10+
but WITHOUT ANY WARRANTY; without even the implied warranty of
11+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12+
GNU Affero General Public License for more details.
13+
14+
You should have received a copy of the GNU Affero General Public License
15+
along with this program. If not, see <https://www.gnu.org/licenses/>.
16+
*/
17+
18+
namespace Kick.API.Events
19+
{
20+
public class ChatModeChangedEvent : KickBaseEvent
21+
{
22+
public ChatMode ChatMode { get; internal set; }
23+
}
24+
25+
public enum ChatMode
26+
{
27+
SlowModeEnabled,
28+
SlowModeDisabled,
29+
EmotesOnlyEnabled,
30+
EmotesOnlyDisabled,
31+
FollowersOnlyEnabled,
32+
FollowersOnlyDisabled,
33+
SubsOnlyEnabled,
34+
SubsOnlyDisabled,
35+
AllowLinksActivated,
36+
AllowLinksDeactivated
37+
}
38+
}

0 commit comments

Comments
 (0)