mirror of
https://github.com/ReVanced/revanced-bots.git
synced 2026-01-11 21:56:17 +00:00
Compare commits
6 Commits
@revanced/
...
@revanced/
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00118b4a1b | ||
|
|
65288ec424 | ||
|
|
a5067889b2 | ||
|
|
8efa9091a4 | ||
|
|
0e44bb5ffe | ||
|
|
8942d27453 |
13
.github/workflows/release.yml
vendored
13
.github/workflows/release.yml
vendored
@@ -50,22 +50,11 @@ jobs:
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
|
||||
- name: Build and release
|
||||
- name: Build, release, publish
|
||||
env:
|
||||
RELEASE_WORKFLOW_STEP: release
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
DOCKER_REGISTRY_USER: ${{ github.repository_owner }}
|
||||
DOCKER_REGISTRY_PASSWORD: ${{ secrets.GITHUB_TOKEN }}
|
||||
DEBUG: semantic-release:*
|
||||
run: bunx multi-semantic-release --debug
|
||||
|
||||
# We call multi-semantic-release twice to publish in a different step
|
||||
# An environment variable determines which plugins in the config to run
|
||||
- name: Trigger Portainer webhooks
|
||||
if: github.ref == 'refs/heads/main'
|
||||
env:
|
||||
RELEASE_WORKFLOW_STEP: publish
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
WEBSOCKET_API_PORTAINER_WEBHOOK_URL: ${{ secrets.WEBSOCKET_API_PORTAINER_WEBHOOK_URL }}
|
||||
DISCORD_BOT_PORTAINER_WEBHOOK_URL: ${{ secrets.DISCORD_BOT_PORTAINER_WEBHOOK_URL }}
|
||||
run: bunx multi-semantic-release
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
Continuing the legacy of Vanced
|
||||
</p>
|
||||
|
||||
# 🤖 ReVanced Helper
|
||||
# 🤖 ReVanced Bots
|
||||
|
||||
Bots assisting ReVanced on multiple platforms.
|
||||
|
||||
@@ -67,4 +67,4 @@ Bots assisting ReVanced on multiple platforms.
|
||||
Thank you for considering! This project is made in TypeScript and we use the [Bun](https://bun.sh) JavaScript runtime.
|
||||
|
||||
Please refer to the [documentation](./docs) for more information.
|
||||
You can find projects under the [`apis`](./apis/), [`bots`](./bots), and [`packages`](./packages/) directories.
|
||||
You can find projects under the [`apis`](./apis/), [`bots`](./bots), and [`packages`](./packages/) directories.
|
||||
|
||||
@@ -1,32 +1,28 @@
|
||||
import defineSubprojectReleaseConfig from '../../semantic-release-config.js'
|
||||
|
||||
export default defineSubprojectReleaseConfig({
|
||||
plugins:
|
||||
process.env.RELEASE_WORKFLOW_STEP === 'publish'
|
||||
? [
|
||||
[
|
||||
'@semantic-release/exec',
|
||||
{
|
||||
publishCmd: 'bun run scripts/trigger-portainer-webhook.ts',
|
||||
},
|
||||
],
|
||||
]
|
||||
: [
|
||||
[
|
||||
'@codedependant/semantic-release-docker',
|
||||
{
|
||||
dockerImage: 'revanced-bot-websocket-api',
|
||||
dockerRegistry: 'ghcr.io',
|
||||
dockerProject: 'revanced',
|
||||
dockerContext: '../..',
|
||||
dockerPlatform: ['linux/amd64', 'linux/arm64'],
|
||||
dockerBuildQuiet: false,
|
||||
dockerTags: [
|
||||
'{{#if prerelease.[0]}}dev{{else}}main{{/if}}',
|
||||
'{{#unless prerelease.[0]}}latest{{/unless}}',
|
||||
'{{version}}',
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
plugins: [
|
||||
[
|
||||
'@codedependant/semantic-release-docker',
|
||||
{
|
||||
dockerImage: 'revanced-bot-websocket-api',
|
||||
dockerRegistry: 'ghcr.io',
|
||||
dockerProject: 'revanced',
|
||||
dockerContext: '../..',
|
||||
dockerPlatform: ['linux/amd64', 'linux/arm64'],
|
||||
dockerBuildQuiet: false,
|
||||
dockerTags: [
|
||||
'{{#if prerelease.[0]}}dev{{else}}main{{/if}}',
|
||||
'{{#unless prerelease.[0]}}latest{{/unless}}',
|
||||
'{{version}}',
|
||||
],
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/exec',
|
||||
{
|
||||
successCmd: 'bun run scripts/trigger-portainer-webhook.ts',
|
||||
},
|
||||
],
|
||||
],
|
||||
})
|
||||
|
||||
@@ -1,6 +1,13 @@
|
||||
## @revanced/bot-websocket-api [1.0.1](https://github.com/revanced/revanced-bots/compare/@revanced/bot-websocket-api@1.0.0...@revanced/bot-websocket-api@1.0.1) (2025-04-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bots/discord:** attempt to fix sticky messages again ([7564b1a](https://github.com/revanced/revanced-bots/commit/7564b1a8f066183df390887ddfd4d73e0baa87ac))
|
||||
|
||||
## @revanced/bot-websocket-api [1.0.1](https://github.com/revanced/revanced-bots/compare/@revanced/bot-websocket-api@1.0.0...@revanced/bot-websocket-api@1.0.1) (2025-04-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bots/discord:** attempt to fix sticky messages again ([7564b1a](https://github.com/revanced/revanced-bots/commit/7564b1a8f066183df390887ddfd4d73e0baa87ac))
|
||||
|
||||
@@ -1,32 +1,28 @@
|
||||
import defineSubprojectReleaseConfig from '../../semantic-release-config.js'
|
||||
|
||||
export default defineSubprojectReleaseConfig({
|
||||
plugins:
|
||||
process.env.RELEASE_WORKFLOW_STEP === 'publish'
|
||||
? [
|
||||
[
|
||||
'@semantic-release/exec',
|
||||
{
|
||||
publishCmd: 'bun run scripts/trigger-portainer-webhook.ts',
|
||||
},
|
||||
],
|
||||
]
|
||||
: [
|
||||
[
|
||||
'@codedependant/semantic-release-docker',
|
||||
{
|
||||
dockerImage: 'revanced-bot-discord',
|
||||
dockerRegistry: 'ghcr.io',
|
||||
dockerProject: 'revanced',
|
||||
dockerContext: '../..',
|
||||
dockerPlatform: ['linux/amd64', 'linux/arm64'],
|
||||
dockerBuildQuiet: false,
|
||||
dockerTags: [
|
||||
'{{#if prerelease.[0]}}dev{{else}}main{{/if}}',
|
||||
'{{#unless prerelease.[0]}}latest{{/unless}}',
|
||||
'{{version}}',
|
||||
],
|
||||
},
|
||||
],
|
||||
],
|
||||
plugins: [
|
||||
[
|
||||
'@codedependant/semantic-release-docker',
|
||||
{
|
||||
dockerImage: 'revanced-bot-discord',
|
||||
dockerRegistry: 'ghcr.io',
|
||||
dockerProject: 'revanced',
|
||||
dockerContext: '../..',
|
||||
dockerPlatform: ['linux/amd64', 'linux/arm64'],
|
||||
dockerBuildQuiet: false,
|
||||
dockerTags: [
|
||||
'{{#if prerelease.[0]}}dev{{else}}main{{/if}}',
|
||||
'{{#unless prerelease.[0]}}latest{{/unless}}',
|
||||
'{{version}}',
|
||||
],
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/exec',
|
||||
{
|
||||
successCmd: 'bun run scripts/trigger-portainer-webhook.ts',
|
||||
},
|
||||
],
|
||||
],
|
||||
})
|
||||
|
||||
@@ -1,3 +1,12 @@
|
||||
## @revanced/discord-bot [1.0.3](https://github.com/revanced/revanced-bots/compare/@revanced/discord-bot@1.0.2...@revanced/discord-bot@1.0.3) (2025-04-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **bots/discord:** attempt to fix sticky messages one last time ([65288ec](https://github.com/revanced/revanced-bots/commit/65288ec4242b32d0b5e213b3d7af602bb9a829ca))
|
||||
|
||||
## @revanced/discord-bot [1.0.2](https://github.com/revanced/revanced-bots/compare/@revanced/discord-bot@1.0.1...@revanced/discord-bot@1.0.2) (2025-04-09)
|
||||
|
||||
## @revanced/discord-bot [1.0.1](https://github.com/revanced/revanced-bots/compare/@revanced/discord-bot@1.0.0...@revanced/discord-bot@1.0.1) (2025-04-09)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "@revanced/discord-bot",
|
||||
"type": "module",
|
||||
"private": true,
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.3",
|
||||
"description": "🤖 Discord bot assisting ReVanced",
|
||||
"main": "src/index.ts",
|
||||
"scripts": {
|
||||
|
||||
@@ -9,37 +9,25 @@ withContext(on, 'messageCreate', async ({ discord, logger }, msg) => {
|
||||
|
||||
if (store.timerActive) {
|
||||
// Timer is already active, so we try to start the force timer
|
||||
if (store.forceTimerMs) {
|
||||
if (store.forceTimerMs && !store.forceTimerActive) {
|
||||
// Force timer isn't active, so we start it
|
||||
if (!store.forceTimerActive) {
|
||||
logger.debug(
|
||||
`Channel ${msg.channelId} in guild ${msg.guildId} is active, starting force send timer and clearing existing timer`,
|
||||
)
|
||||
logger.debug(
|
||||
`Channel ${msg.channelId} in guild ${msg.guildId} is active, starting force send timer and clearing existing timer`,
|
||||
)
|
||||
|
||||
// Clear the timer
|
||||
clearTimeout(store.timer)
|
||||
store.timerActive = false
|
||||
// Clear the timer
|
||||
clearTimeout(store.timer)
|
||||
store.timerActive = false
|
||||
|
||||
// (Re)start the force timer
|
||||
store.forceTimerActive = true
|
||||
if (!store.forceTimer)
|
||||
store.forceTimer = setTimeout(
|
||||
() =>
|
||||
store.send(true).then(() => {
|
||||
store.forceTimerActive = false
|
||||
}),
|
||||
store.forceTimerMs,
|
||||
) as NodeJS.Timeout
|
||||
else store.forceTimer.refresh()
|
||||
} else {
|
||||
// Force timer is already active, so we clear the force timer
|
||||
store.forceTimerActive = false
|
||||
clearTimeout(store.forceTimer)
|
||||
// and force send
|
||||
store.send(true)
|
||||
}
|
||||
// Start the force timer
|
||||
store.forceTimerActive = true
|
||||
// biome-ignore lint/suspicious/noAssignInExpressions: This works fine
|
||||
;(store.forceTimer ??= setTimeout(store.send, store.forceTimerMs)).refresh()
|
||||
}
|
||||
} else if (!store.forceTimerActive) {
|
||||
} else if (store.forceTimerActive) {
|
||||
// Force timer is already active, so force send the message, and clear the force timer
|
||||
store.send(true)
|
||||
} else {
|
||||
// Both timers aren't active, so we start the timer
|
||||
store.timerActive = true
|
||||
if (!store.timer) store.timer = setTimeout(store.send, store.timerMs) as NodeJS.Timeout
|
||||
|
||||
@@ -45,11 +45,11 @@ export default withContext(on, 'ready', async ({ config, discord, logger }, clie
|
||||
|
||||
if (!forced)
|
||||
logger.debug(
|
||||
`Timeout ended for sticky message in channel ${channelId} in guild ${guildId}, channel is inactive`,
|
||||
`Timer ended for sticky message in channel ${channelId} in guild ${guildId}, channel is inactive`,
|
||||
)
|
||||
else
|
||||
logger.debug(
|
||||
`Forced send timeout for sticky message in channel ${channelId} in guild ${guildId} ended, channel is too active`,
|
||||
`Force timer for sticky message in channel ${channelId} in guild ${guildId} hasn't ended but a message was sent, channel is too active`,
|
||||
)
|
||||
|
||||
logger.debug(`Sent sticky message to channel ${channelId} in guild ${guildId}`)
|
||||
|
||||
@@ -11,55 +11,52 @@ const Options = {
|
||||
prerelease: true,
|
||||
},
|
||||
],
|
||||
plugins:
|
||||
process.env['RELEASE_WORKFLOW_STEP'] !== 'publish'
|
||||
? [
|
||||
[
|
||||
'@semantic-release/commit-analyzer',
|
||||
{
|
||||
releaseRules: [{ type: 'build', scope: 'Needs bump', release: 'patch' }],
|
||||
},
|
||||
],
|
||||
'@semantic-release/release-notes-generator',
|
||||
'@semantic-release/changelog',
|
||||
[
|
||||
'@semantic-release/npm',
|
||||
{
|
||||
npmPublish: false,
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/git',
|
||||
{
|
||||
assets: ['CHANGELOG.md', 'package.json', '../../bun.lockb'],
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/github',
|
||||
{
|
||||
assets: [
|
||||
{
|
||||
path: 'dist/*',
|
||||
},
|
||||
],
|
||||
successComment: false,
|
||||
},
|
||||
],
|
||||
// This unfortunately has to run multiple times, even though it needs to run only once.
|
||||
[
|
||||
'@saithodev/semantic-release-backmerge',
|
||||
{
|
||||
backmergeBranches: [
|
||||
{
|
||||
from: 'main',
|
||||
to: 'dev',
|
||||
},
|
||||
],
|
||||
clearWorkspace: true,
|
||||
},
|
||||
],
|
||||
]
|
||||
: [],
|
||||
plugins: [
|
||||
[
|
||||
'@semantic-release/commit-analyzer',
|
||||
{
|
||||
releaseRules: [{ type: 'build', scope: 'Needs bump', release: 'patch' }],
|
||||
},
|
||||
],
|
||||
'@semantic-release/release-notes-generator',
|
||||
'@semantic-release/changelog',
|
||||
[
|
||||
'@semantic-release/npm',
|
||||
{
|
||||
npmPublish: false,
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/git',
|
||||
{
|
||||
assets: ['CHANGELOG.md', 'package.json', '../../bun.lockb'],
|
||||
},
|
||||
],
|
||||
[
|
||||
'@semantic-release/github',
|
||||
{
|
||||
assets: [
|
||||
{
|
||||
path: 'dist/*',
|
||||
},
|
||||
],
|
||||
successComment: false,
|
||||
},
|
||||
],
|
||||
// This unfortunately has to run multiple times, even though it needs to run only once.
|
||||
[
|
||||
'@saithodev/semantic-release-backmerge',
|
||||
{
|
||||
backmergeBranches: [
|
||||
{
|
||||
from: 'main',
|
||||
to: 'dev',
|
||||
},
|
||||
],
|
||||
clearWorkspace: true,
|
||||
},
|
||||
],
|
||||
],
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -70,6 +67,6 @@ export default function defineSubprojectReleaseConfig(subprojectOptions) {
|
||||
return {
|
||||
...Options,
|
||||
...subprojectOptions,
|
||||
plugins: [...(subprojectOptions.plugins || []), ...(Options.plugins || [])],
|
||||
plugins: [...(Options.plugins || []), ...(subprojectOptions.plugins || [])],
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user