added history

This commit is contained in:
Patryk Koreń
2026-01-27 21:27:36 +01:00
parent bb2b31bb61
commit cbf39d2bae
5 changed files with 44 additions and 4 deletions

View File

@@ -22,7 +22,7 @@ jobs:
- name: Build container image
env:
IMAGE_NAME: papryk/dj-spangebob
TAG: ${{ gitea.ref_name }}
TAG: ${{ github.ref_name }}
run: |
docker build -t "$IMAGE_NAME:$TAG" .
@@ -38,7 +38,7 @@ jobs:
env:
REGISTRY: https://gitea.papryk.com
IMAGE_NAME: Papryk/dj-spangebob
TAG: ${{ gitea.ref_name }}
TAG: ${{ github.ref_name }}
run: |
docker push "$REGISTRY/$IMAGE_NAME:$TAG"

5
src/global.d.ts vendored
View File

@@ -14,3 +14,8 @@ type Queue = {
current: AudioFile | null,
}
type HistoryObject = {
interaction: ChatInputCommandInteraction<CacheType>,
url: string,
}

View File

@@ -9,6 +9,7 @@ import { updatePlayer } from './playback';
import SpotifyWebApi from 'spotify-web-api-node';
export const DATA_DIR = "./data";
export const HISTORY_DIR_PATH = process.env.HISTORY_DIR_PATH ?? "./history";
// AUDIO
export const player = createAudioPlayer();

View File

@@ -3,6 +3,7 @@ import { player } from "./main";
import { CacheType, ChatInputCommandInteraction } from "discord.js";
import { getAudioFile } from "./util/downloader";
import { playSong } from "./util/helpers";
import { add_to_history } from "./util/history";
const queue: Queue = {
songList: [],
@@ -11,12 +12,14 @@ const queue: Queue = {
export async function requestSong(
interaction: ChatInputCommandInteraction<CacheType>,
url: string) {
url: string,
user?: any
) {
const path = await getAudioFile(url)
queue.songList.push({ path, url })
add_to_history({ interaction, url })
updatePlayer()
}
export async function forceRequestSong(

31
src/util/history.ts Normal file
View File

@@ -0,0 +1,31 @@
import path from "node:path";
import fs from "node:fs";
import { HISTORY_DIR_PATH } from "../main";
export async function add_to_history(history: HistoryObject) {
const today = new Date();
const day = String(today.getDate()).padStart(2, '0');
const month = String(today.getMonth() + 1).padStart(2, '0');
const year = today.getFullYear();
const file_name = `${day}-${month}-${year}.json`;
const file_path = path.join(HISTORY_DIR_PATH, file_name)
if (!fs.existsSync(HISTORY_DIR_PATH)) {
fs.mkdirSync(HISTORY_DIR_PATH);
}
let data = [];
try {
const content = fs.readFileSync(file_path, 'utf8');
data = JSON.parse(content);
} catch (err) {
data = [];
}
data.push(history)
fs.writeFileSync(file_path, JSON.stringify(data, null, 2));
}