8 Commits
1.2.1 ... 1.2.8

Author SHA1 Message Date
Torben Pi Jensen
01b8319aef Added shuffle 2024-02-03 19:18:22 +01:00
Torben Pi Jensen
993501f049 Added tags 2024-02-03 17:06:07 +01:00
Torben Pi Jensen
343126bee3 Fix? 2024-02-03 15:40:38 +01:00
Torben Pi Jensen
588c778122 Fix? 2024-02-03 15:37:46 +01:00
Torben Pi Jensen
2ec9585c74 Fix? 2024-02-03 15:37:38 +01:00
Torben Pi Jensen
d5b4cfefc3 Added playlist 2024-02-03 14:47:27 +01:00
Torben Pi Jensen
807cd568e1 Added playlist 2024-02-03 14:45:02 +01:00
Torben Pi Jensen
04253f753a Added playlist 2024-02-03 14:42:42 +01:00
9 changed files with 110 additions and 20 deletions

View File

@@ -17,7 +17,7 @@ export class QueuedSong extends Song {
}
export class PlayingSong extends QueuedSong {
constructor(type: SongType, title: string, songId: string, image: string, listener: string, public length: number, public position: number) {
constructor(type: SongType, title: string, songId: string, image: string, listener: string, public length: number, public position: number, public tags: string[]) {
super(type, title, songId, image, listener);
}
}
@@ -27,12 +27,6 @@ export class Playlist {
}
}
export class PlaylistDescription {
public title: string;
public listener: string;
constructor(title: string, listener: string) {
this.title = title;
this.listener = listener;
constructor(public title: string, public listener: string) {
}
}

8
dist/dataTypes.d.ts vendored
View File

@@ -16,7 +16,8 @@ export declare class QueuedSong extends Song {
export declare class PlayingSong extends QueuedSong {
length: number;
position: number;
constructor(type: SongType, title: string, songId: string, image: string, listener: string, length: number, position: number);
tags: string[];
constructor(type: SongType, title: string, songId: string, image: string, listener: string, length: number, position: number, tags: string[]);
}
export declare class Playlist {
title: string;
@@ -24,3 +25,8 @@ export declare class Playlist {
songs: Song[];
constructor(title: string, listener: string, songs: Song[]);
}
export declare class PlaylistDescription {
title: string;
listener: string;
constructor(title: string, listener: string);
}

13
dist/dataTypes.js vendored
View File

@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
};
})();
exports.__esModule = true;
exports.Playlist = exports.PlayingSong = exports.QueuedSong = exports.Song = exports.SongType = void 0;
exports.PlaylistDescription = exports.Playlist = exports.PlayingSong = exports.QueuedSong = exports.Song = exports.SongType = void 0;
var SongType;
(function (SongType) {
SongType[SongType["YouTube"] = 0] = "YouTube";
@@ -43,10 +43,11 @@ var QueuedSong = /** @class */ (function (_super) {
exports.QueuedSong = QueuedSong;
var PlayingSong = /** @class */ (function (_super) {
__extends(PlayingSong, _super);
function PlayingSong(type, title, songId, image, listener, length, position) {
function PlayingSong(type, title, songId, image, listener, length, position, tags) {
var _this = _super.call(this, type, title, songId, image, listener) || this;
_this.length = length;
_this.position = position;
_this.tags = tags;
return _this;
}
return PlayingSong;
@@ -61,3 +62,11 @@ var Playlist = /** @class */ (function () {
return Playlist;
}());
exports.Playlist = Playlist;
var PlaylistDescription = /** @class */ (function () {
function PlaylistDescription(title, listener) {
this.title = title;
this.listener = listener;
}
return PlaylistDescription;
}());
exports.PlaylistDescription = PlaylistDescription;

View File

@@ -1,5 +1,5 @@
import { Song, PlayingSong, QueuedSong, Playlist } from "./dataTypes";
export declare type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong | SkipSong | SongLikes | CreatePlaylist | ToggleSongLike | AddSongToPlaylist | RemoveSongFromPlaylist | Playlists;
import { Song, PlayingSong, QueuedSong, Playlist, PlaylistDescription } from "./dataTypes";
export declare type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong | SkipSong | SongLikes | ToggleSongLike | CreatePlaylist | AddSongToPlaylist | RemoveSongFromPlaylist | Playlists | GetPlaylist | PlaylistSongs | ToggleTag | Shuffle;
export declare abstract class StuenMessage {
type: string;
constructor(type: string);
@@ -74,8 +74,16 @@ export declare class CreatePlaylist extends StuenMessage {
constructor(title: string);
}
export declare class Playlists extends StuenMessage {
playlists: Playlist[];
constructor(playlists: Playlist[]);
playlists: PlaylistDescription[];
constructor(playlists: PlaylistDescription[]);
}
export declare class GetPlaylist extends StuenMessage {
playlist: PlaylistDescription;
constructor(playlist: PlaylistDescription);
}
export declare class PlaylistSongs extends StuenMessage {
playlist: Playlist;
constructor(playlist: Playlist);
}
export declare class AddSongToPlaylist extends StuenMessage {
song: Song;
@@ -87,3 +95,11 @@ export declare class RemoveSongFromPlaylist extends StuenMessage {
playlist: string;
constructor(song: Song, playlist: string);
}
export declare class ToggleTag extends StuenMessage {
song: Song;
tag: string;
constructor(song: Song, tag: string);
}
export declare class Shuffle extends StuenMessage {
constructor();
}

43
dist/messageTypes.js vendored
View File

@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
};
})();
exports.__esModule = true;
exports.RemoveSongFromPlaylist = exports.AddSongToPlaylist = exports.Playlists = exports.CreatePlaylist = exports.SongLikes = exports.ToggleSongLike = exports.SkipSong = exports.ReorderSong = exports.UnqueueSong = exports.CurrentSong = exports.CurrentQueue = exports.QueueSong = exports.SearchSongResult = exports.SearchSong = exports.ChatMessage = exports.SendChatMessage = exports.ListenerList = exports.ListenerLeft = exports.ListenerJoined = exports.Join = exports.StuenMessage = void 0;
exports.Shuffle = exports.ToggleTag = exports.RemoveSongFromPlaylist = exports.AddSongToPlaylist = exports.PlaylistSongs = exports.GetPlaylist = exports.Playlists = exports.CreatePlaylist = exports.SongLikes = exports.ToggleSongLike = exports.SkipSong = exports.ReorderSong = exports.UnqueueSong = exports.CurrentSong = exports.CurrentQueue = exports.QueueSong = exports.SearchSongResult = exports.SearchSong = exports.ChatMessage = exports.SendChatMessage = exports.ListenerList = exports.ListenerLeft = exports.ListenerJoined = exports.Join = exports.StuenMessage = void 0;
var StuenMessage = /** @class */ (function () {
function StuenMessage(type) {
this.type = type;
@@ -203,6 +203,26 @@ var Playlists = /** @class */ (function (_super) {
return Playlists;
}(StuenMessage));
exports.Playlists = Playlists;
var GetPlaylist = /** @class */ (function (_super) {
__extends(GetPlaylist, _super);
function GetPlaylist(playlist) {
var _this = _super.call(this, 'GetPlaylist') || this;
_this.playlist = playlist;
return _this;
}
return GetPlaylist;
}(StuenMessage));
exports.GetPlaylist = GetPlaylist;
var PlaylistSongs = /** @class */ (function (_super) {
__extends(PlaylistSongs, _super);
function PlaylistSongs(playlist) {
var _this = _super.call(this, 'PlaylistSongs') || this;
_this.playlist = playlist;
return _this;
}
return PlaylistSongs;
}(StuenMessage));
exports.PlaylistSongs = PlaylistSongs;
var AddSongToPlaylist = /** @class */ (function (_super) {
__extends(AddSongToPlaylist, _super);
function AddSongToPlaylist(song, playlist) {
@@ -217,7 +237,7 @@ exports.AddSongToPlaylist = AddSongToPlaylist;
var RemoveSongFromPlaylist = /** @class */ (function (_super) {
__extends(RemoveSongFromPlaylist, _super);
function RemoveSongFromPlaylist(song, playlist) {
var _this = _super.call(this, 'RemoveSongToPlaylist') || this;
var _this = _super.call(this, 'RemoveSongFromPlaylist') || this;
_this.song = song;
_this.playlist = playlist;
return _this;
@@ -225,3 +245,22 @@ var RemoveSongFromPlaylist = /** @class */ (function (_super) {
return RemoveSongFromPlaylist;
}(StuenMessage));
exports.RemoveSongFromPlaylist = RemoveSongFromPlaylist;
var ToggleTag = /** @class */ (function (_super) {
__extends(ToggleTag, _super);
function ToggleTag(song, tag) {
var _this = _super.call(this, 'ToggleTag') || this;
_this.song = song;
_this.tag = tag;
return _this;
}
return ToggleTag;
}(StuenMessage));
exports.ToggleTag = ToggleTag;
var Shuffle = /** @class */ (function (_super) {
__extends(Shuffle, _super);
function Shuffle() {
return _super.call(this, 'Shuffle') || this;
}
return Shuffle;
}(StuenMessage));
exports.Shuffle = Shuffle;

View File

@@ -39,12 +39,20 @@ function parseMessage(message) {
return new messageTypes_1.SongLikes(data.listeners);
case 'Playlists':
return new messageTypes_1.Playlists(data.playlists);
case 'GetPlaylist':
return new messageTypes_1.GetPlaylist(data.playlist);
case 'PlaylistSongs':
return new messageTypes_1.PlaylistSongs(data.playlist);
case 'CreatePlaylist':
return new messageTypes_1.CreatePlaylist(data.title);
case 'AddSongToPlaylist':
return new messageTypes_1.AddSongToPlaylist(data.song, data.playlist);
case 'RemoveSongFromPlaylist':
return new messageTypes_1.RemoveSongFromPlaylist(data.song, data.playlist);
case 'ToggleTag':
return new messageTypes_1.ToggleTag(data.song, data.tag);
case 'Shuffle':
return new messageTypes_1.Shuffle();
default:
console.error('Unknown message type:', data.type);
return null;

View File

@@ -22,6 +22,8 @@ export type StuenMessages =
| Playlists
| GetPlaylist
| PlaylistSongs
| ToggleTag
| Shuffle
export abstract class StuenMessage {
constructor(public type: string) {
@@ -161,3 +163,15 @@ export class RemoveSongFromPlaylist extends StuenMessage {
super('RemoveSongFromPlaylist');
}
}
export class ToggleTag extends StuenMessage {
constructor(public song: Song, public tag: string) {
super('ToggleTag');
}
}
export class Shuffle extends StuenMessage {
constructor() {
super('Shuffle');
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "stuen-common",
"version": "1.2.1",
"version": "1.2.8",
"main": "dist/common.js",
"type": "commonjs",
"types": "dist/common.d.ts",

View File

@@ -16,11 +16,11 @@ import {
ReorderSong,
SearchSong,
SearchSongResult,
SendChatMessage,
SendChatMessage, Shuffle,
SkipSong,
SongLikes,
StuenMessage,
ToggleSongLike,
ToggleSongLike, ToggleTag,
UnqueueSong
} from "./messageTypes";
@@ -73,6 +73,10 @@ export default function parseMessage(message: string): StuenMessage | null {
return new AddSongToPlaylist(data.song, data.playlist);
case 'RemoveSongFromPlaylist':
return new RemoveSongFromPlaylist(data.song, data.playlist);
case 'ToggleTag':
return new ToggleTag(data.song, data.tag);
case 'Shuffle':
return new Shuffle();
default:
console.error('Unknown message type:', data.type);
return null;