14 Commits
1.1.3 ... 1.2.6

Author SHA1 Message Date
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
Torben Pi Jensen
829e9c599b Added playlist 2024-02-03 14:32:03 +01:00
Torben Pi Jensen
9345dd1fd0 Added playlist 2024-02-03 10:31:20 +01:00
Torben Pi Jensen
9ce896cd33 Added playlist 2024-02-03 10:31:04 +01:00
Torben Pi Jensen
29d8ee56f6 package 2023-12-04 21:45:03 +01:00
Torben Pi Jensen
4b88313d0e add like 2023-12-04 21:22:39 +01:00
Torben Pi Jensen
a671b53634 add like 2023-12-04 21:22:34 +01:00
Torben Pi Jensen
e52358c620 add like 2023-12-04 20:44:18 +01:00
Torben Pi Jensen
e436719506 add Skip 2023-11-12 13:33:31 +01:00
11 changed files with 304 additions and 13 deletions

View File

@@ -21,3 +21,12 @@ export class PlayingSong extends QueuedSong {
super(type, title, songId, image, listener); super(type, title, songId, image, listener);
} }
} }
export class Playlist {
constructor(public title: string, public listener: string, public songs: Song[]) {
}
}
export class PlaylistDescription {
constructor(public title: string, public listener: string) {
}
}

11
dist/dataTypes.d.ts vendored
View File

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

19
dist/dataTypes.js vendored
View File

@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
}; };
})(); })();
exports.__esModule = true; exports.__esModule = true;
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; var SongType;
(function (SongType) { (function (SongType) {
SongType[SongType["YouTube"] = 0] = "YouTube"; SongType[SongType["YouTube"] = 0] = "YouTube";
@@ -52,3 +52,20 @@ var PlayingSong = /** @class */ (function (_super) {
return PlayingSong; return PlayingSong;
}(QueuedSong)); }(QueuedSong));
exports.PlayingSong = PlayingSong; exports.PlayingSong = PlayingSong;
var Playlist = /** @class */ (function () {
function Playlist(title, listener, songs) {
this.title = title;
this.listener = listener;
this.songs = songs;
}
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 } from "./dataTypes"; import { Song, PlayingSong, QueuedSong, Playlist, PlaylistDescription } from "./dataTypes";
export declare type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong; 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;
export declare abstract class StuenMessage { export declare abstract class StuenMessage {
type: string; type: string;
constructor(type: string); constructor(type: string);
@@ -59,3 +59,39 @@ export declare class ReorderSong extends StuenMessage {
placePosition: number; placePosition: number;
constructor(positionToMove: number, placePosition: number); constructor(positionToMove: number, placePosition: number);
} }
export declare class SkipSong extends StuenMessage {
constructor();
}
export declare class ToggleSongLike extends StuenMessage {
constructor();
}
export declare class SongLikes extends StuenMessage {
listeners: string[];
constructor(listeners: string[]);
}
export declare class CreatePlaylist extends StuenMessage {
title: string;
constructor(title: string);
}
export declare class Playlists extends StuenMessage {
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;
playlist: string;
constructor(song: Song, playlist: string);
}
export declare class RemoveSongFromPlaylist extends StuenMessage {
song: Song;
playlist: string;
constructor(song: Song, playlist: string);
}

90
dist/messageTypes.js vendored
View File

@@ -15,7 +15,7 @@ var __extends = (this && this.__extends) || (function () {
}; };
})(); })();
exports.__esModule = true; exports.__esModule = true;
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.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 () { var StuenMessage = /** @class */ (function () {
function StuenMessage(type) { function StuenMessage(type) {
this.type = type; this.type = type;
@@ -157,3 +157,91 @@ var ReorderSong = /** @class */ (function (_super) {
return ReorderSong; return ReorderSong;
}(StuenMessage)); }(StuenMessage));
exports.ReorderSong = ReorderSong; exports.ReorderSong = ReorderSong;
var SkipSong = /** @class */ (function (_super) {
__extends(SkipSong, _super);
function SkipSong() {
return _super.call(this, 'SkipSong') || this;
}
return SkipSong;
}(StuenMessage));
exports.SkipSong = SkipSong;
var ToggleSongLike = /** @class */ (function (_super) {
__extends(ToggleSongLike, _super);
function ToggleSongLike() {
return _super.call(this, 'ToggleSongLike') || this;
}
return ToggleSongLike;
}(StuenMessage));
exports.ToggleSongLike = ToggleSongLike;
var SongLikes = /** @class */ (function (_super) {
__extends(SongLikes, _super);
function SongLikes(listeners) {
var _this = _super.call(this, 'SongLikes') || this;
_this.listeners = listeners;
return _this;
}
return SongLikes;
}(StuenMessage));
exports.SongLikes = SongLikes;
var CreatePlaylist = /** @class */ (function (_super) {
__extends(CreatePlaylist, _super);
function CreatePlaylist(title) {
var _this = _super.call(this, 'CreatePlaylist') || this;
_this.title = title;
return _this;
}
return CreatePlaylist;
}(StuenMessage));
exports.CreatePlaylist = CreatePlaylist;
var Playlists = /** @class */ (function (_super) {
__extends(Playlists, _super);
function Playlists(playlists) {
var _this = _super.call(this, 'Playlists') || this;
_this.playlists = playlists;
return _this;
}
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) {
var _this = _super.call(this, 'AddSongToPlaylist') || this;
_this.song = song;
_this.playlist = playlist;
return _this;
}
return AddSongToPlaylist;
}(StuenMessage));
exports.AddSongToPlaylist = AddSongToPlaylist;
var RemoveSongFromPlaylist = /** @class */ (function (_super) {
__extends(RemoveSongFromPlaylist, _super);
function RemoveSongFromPlaylist(song, playlist) {
var _this = _super.call(this, 'RemoveSongFromPlaylist') || this;
_this.song = song;
_this.playlist = playlist;
return _this;
}
return RemoveSongFromPlaylist;
}(StuenMessage));
exports.RemoveSongFromPlaylist = RemoveSongFromPlaylist;

View File

@@ -1 +1 @@
{"version":3,"file":"messageTypes.js","sourceRoot":"","sources":["../messageTypes.ts"],"names":[],"mappings":"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"} {"version":3,"file":"messageTypes.js","sourceRoot":"","sources":["../messageTypes.ts"],"names":[],"mappings":"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"}

18
dist/parseMessage.js vendored
View File

@@ -31,6 +31,24 @@ function parseMessage(message) {
return new messageTypes_1.UnqueueSong(data.position, data.all); return new messageTypes_1.UnqueueSong(data.position, data.all);
case 'ReorderSong': case 'ReorderSong':
return new messageTypes_1.ReorderSong(data.positionToMove, data.placePosition); return new messageTypes_1.ReorderSong(data.positionToMove, data.placePosition);
case 'SkipSong':
return new messageTypes_1.SkipSong();
case 'ToggleSongLike':
return new messageTypes_1.ToggleSongLike();
case 'SongLikes':
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);
default: default:
console.error('Unknown message type:', data.type); console.error('Unknown message type:', data.type);
return null; return null;

View File

@@ -1 +1 @@
{"version":3,"file":"parseMessage.js","sourceRoot":"","sources":["../parseMessage.ts"],"names":[],"mappings":";;AAAA,+CAQwB;AAExB,SAAwB,YAAY,CAAC,OAAe;IAChD,IAAI;QACA,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,MAAM;gBACP,OAAO,IAAI,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,gBAAgB;gBACjB,OAAO,IAAI,6BAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,iBAAiB;gBAClB,OAAO,IAAI,8BAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,YAAY;gBACb,OAAO,IAAI,yBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,kBAAkB;gBACnB,OAAO,IAAI,+BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,WAAW;gBACZ,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvC,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC;gBACI,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;SACnB;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,wBAAwB;KACxC;AACL,CAAC;AAnCD,+BAmCC"} {"version":3,"file":"parseMessage.js","sourceRoot":"","sources":["../parseMessage.ts"],"names":[],"mappings":";;AAAA,+CAQwB;AAExB,SAAwB,YAAY,CAAC,OAAe;IAChD,IAAI;QACA,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,QAAQ,IAAI,CAAC,IAAI,EAAE;YACf,KAAK,MAAM;gBACP,OAAO,IAAI,mBAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,KAAK,gBAAgB;gBACjB,OAAO,IAAI,6BAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,KAAK,iBAAiB;gBAClB,OAAO,IAAI,8BAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7C,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpD,KAAK,YAAY;gBACb,OAAO,IAAI,yBAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,kBAAkB;gBACnB,OAAO,IAAI,+BAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,WAAW;gBACZ,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpC,KAAK,cAAc;gBACf,OAAO,IAAI,2BAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACvC,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,KAAK,aAAa;gBACd,OAAO,IAAI,0BAAW,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACpE,KAAK,UAAU;gBACX,OAAO,IAAI,uBAAQ,EAAE,CAAC;YAC1B,KAAK,gBAAgB;gBACjB,OAAO,IAAI,6BAAc,EAAE,CAAC;YAChC,KAAK,WAAW;gBACZ,OAAO,IAAI,wBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC;gBACI,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAClD,OAAO,IAAI,CAAC;SACnB;KACJ;IAAC,OAAO,KAAK,EAAE;QACZ,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,KAAK,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,CAAC,wBAAwB;KACxC;AACL,CAAC;AA7CD,+BA6CC"}

View File

@@ -1,8 +1,31 @@
import {Song, PlayingSong, QueuedSong} from "./dataTypes"; import {Song, PlayingSong, QueuedSong, Playlist, PlaylistDescription} from "./dataTypes";
export type StuenMessages =
ListenerLeft
| ListenerList
| ListenerJoined
| SendChatMessage
| SearchSong
| SearchSongResult
| Join
| QueueSong
| CurrentQueue
| CurrentSong
| UnqueueSong
| ReorderSong
| SkipSong
| SongLikes
| ToggleSongLike
| CreatePlaylist
| AddSongToPlaylist
| RemoveSongFromPlaylist
| Playlists
| GetPlaylist
| PlaylistSongs
export type StuenMessages = ListenerLeft | ListenerList | ListenerJoined | SendChatMessage | SearchSong | SearchSongResult | Join | QueueSong | CurrentQueue | CurrentSong | UnqueueSong | ReorderSong;
export abstract class StuenMessage { export abstract class StuenMessage {
constructor(public type: string) {} constructor(public type: string) {
}
} }
export class Join extends StuenMessage { export class Join extends StuenMessage {
@@ -10,6 +33,7 @@ export class Join extends StuenMessage {
super('Join'); super('Join');
} }
} }
export class ListenerJoined extends StuenMessage { export class ListenerJoined extends StuenMessage {
constructor(public name: string) { constructor(public name: string) {
super('ListenerJoined'); super('ListenerJoined');
@@ -78,8 +102,62 @@ export class UnqueueSong extends StuenMessage {
super('UnqueueSong'); super('UnqueueSong');
} }
} }
export class ReorderSong extends StuenMessage { export class ReorderSong extends StuenMessage {
constructor(public positionToMove: number, public placePosition: number) { constructor(public positionToMove: number, public placePosition: number) {
super('ReorderSong'); super('ReorderSong');
} }
} }
export class SkipSong extends StuenMessage {
constructor() {
super('SkipSong');
}
}
export class ToggleSongLike extends StuenMessage {
constructor() {
super('ToggleSongLike');
}
}
export class SongLikes extends StuenMessage {
constructor(public listeners: string[]) {
super('SongLikes');
}
}
export class CreatePlaylist extends StuenMessage {
constructor(public title: string) {
super('CreatePlaylist');
}
}
export class Playlists extends StuenMessage {
constructor(public playlists: PlaylistDescription[]) {
super('Playlists');
}
}
export class GetPlaylist extends StuenMessage {
constructor(public playlist: PlaylistDescription) {
super('GetPlaylist');
}
}
export class PlaylistSongs extends StuenMessage {
constructor(public playlist: Playlist) {
super('PlaylistSongs');
}
}
export class AddSongToPlaylist extends StuenMessage {
constructor(public song: Song, public playlist: string) {
super('AddSongToPlaylist');
}
}
export class RemoveSongFromPlaylist extends StuenMessage {
constructor(public song: Song, public playlist: string) {
super('RemoveSongFromPlaylist');
}
}

View File

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

View File

@@ -1,11 +1,27 @@
import { import {
ChatMessage, CurrentQueue, CurrentSong, AddSongToPlaylist,
ChatMessage,
CreatePlaylist,
CurrentQueue,
CurrentSong,
GetPlaylist,
Join, Join,
ListenerJoined, ListenerJoined,
ListenerLeft, ListenerLeft,
ListenerList, QueueSong, ReorderSong, SearchSong, SearchSongResult, ListenerList,
Playlists,
PlaylistSongs,
QueueSong,
RemoveSongFromPlaylist,
ReorderSong,
SearchSong,
SearchSongResult,
SendChatMessage, SendChatMessage,
StuenMessage, UnqueueSong SkipSong,
SongLikes,
StuenMessage,
ToggleSongLike,
UnqueueSong
} from "./messageTypes"; } from "./messageTypes";
export default function parseMessage(message: string): StuenMessage | null { export default function parseMessage(message: string): StuenMessage | null {
@@ -39,6 +55,24 @@ export default function parseMessage(message: string): StuenMessage | null {
return new UnqueueSong(data.position, data.all); return new UnqueueSong(data.position, data.all);
case 'ReorderSong': case 'ReorderSong':
return new ReorderSong(data.positionToMove, data.placePosition); return new ReorderSong(data.positionToMove, data.placePosition);
case 'SkipSong':
return new SkipSong();
case 'ToggleSongLike':
return new ToggleSongLike();
case 'SongLikes':
return new SongLikes(data.listeners);
case 'Playlists':
return new Playlists(data.playlists);
case 'GetPlaylist':
return new GetPlaylist(data.playlist);
case 'PlaylistSongs':
return new PlaylistSongs(data.playlist);
case 'CreatePlaylist':
return new CreatePlaylist(data.title);
case 'AddSongToPlaylist':
return new AddSongToPlaylist(data.song, data.playlist);
case 'RemoveSongFromPlaylist':
return new RemoveSongFromPlaylist(data.song, data.playlist);
default: default:
console.error('Unknown message type:', data.type); console.error('Unknown message type:', data.type);
return null; return null;