|
@@ -2733,47 +2733,48 @@ export default {
|
|
|
clearAndRefillArtistPlaylist: useHasPermission(
|
|
|
"playlists.clearAndRefill",
|
|
|
async function index(session, playlistId, cb) {
|
|
|
- async.waterfall(
|
|
|
- [
|
|
|
- next => {
|
|
|
- if (!playlistId) next("Please specify a playlist id");
|
|
|
- else {
|
|
|
- PlaylistsModule.runJob("CLEAR_AND_REFILL_ARTIST_PLAYLIST", { playlistId }, this)
|
|
|
- .then(() => {
|
|
|
- next();
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- next(err);
|
|
|
- });
|
|
|
+ async.waterfall(
|
|
|
+ [
|
|
|
+ next => {
|
|
|
+ if (!playlistId) next("Please specify a playlist id");
|
|
|
+ else {
|
|
|
+ PlaylistsModule.runJob("CLEAR_AND_REFILL_ARTIST_PLAYLIST", { playlistId }, this)
|
|
|
+ .then(() => {
|
|
|
+ next();
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ next(err);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ async err => {
|
|
|
+ if (err) {
|
|
|
+ err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
|
|
|
+
|
|
|
+ this.log(
|
|
|
+ "ERROR",
|
|
|
+ "PLAYLIST_CLEAR_AND_REFILL_ARTIST_PLAYLIST",
|
|
|
+ `Clearing and refilling artist playlist "${playlistId}" failed for user "${session.userId}". "${err}"`
|
|
|
+ );
|
|
|
+
|
|
|
+ return cb({ status: "error", message: err });
|
|
|
}
|
|
|
- }
|
|
|
- ],
|
|
|
- async err => {
|
|
|
- if (err) {
|
|
|
- err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
|
|
|
|
|
|
this.log(
|
|
|
- "ERROR",
|
|
|
+ "SUCCESS",
|
|
|
"PLAYLIST_CLEAR_AND_REFILL_ARTIST_PLAYLIST",
|
|
|
- `Clearing and refilling artist playlist "${playlistId}" failed for user "${session.userId}". "${err}"`
|
|
|
+ `Successfully cleared and refilled artist playlist "${playlistId}" for user "${session.userId}".`
|
|
|
);
|
|
|
|
|
|
- return cb({ status: "error", message: err });
|
|
|
+ return cb({
|
|
|
+ status: "success",
|
|
|
+ message: "Playlist has been successfully cleared and refilled"
|
|
|
+ });
|
|
|
}
|
|
|
-
|
|
|
- this.log(
|
|
|
- "SUCCESS",
|
|
|
- "PLAYLIST_CLEAR_AND_REFILL_ARTIST_PLAYLIST",
|
|
|
- `Successfully cleared and refilled artist playlist "${playlistId}" for user "${session.userId}".`
|
|
|
- );
|
|
|
-
|
|
|
- return cb({
|
|
|
- status: "success",
|
|
|
- message: "Playlist has been successfully cleared and refilled"
|
|
|
- });
|
|
|
- }
|
|
|
- );
|
|
|
- }),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ ),
|
|
|
|
|
|
/**
|
|
|
* Clears and refills all station playlists
|
|
@@ -2972,111 +2973,114 @@ export default {
|
|
|
* @param {object} session - the session object automatically added by socket.io
|
|
|
* @param {Function} cb - gets called with the result
|
|
|
*/
|
|
|
- clearAndRefillAllArtistPlaylists: useHasPermission("playlists.clearAndRefillAll", async function index(session, cb) {
|
|
|
- this.keepLongJob();
|
|
|
- this.publishProgress({
|
|
|
- status: "started",
|
|
|
- title: "Clear and refill all artist playlists",
|
|
|
- message: "Clearing and refilling all artist playlists.",
|
|
|
- id: this.toString()
|
|
|
- });
|
|
|
- await CacheModule.runJob("RPUSH", { key: `longJobs.${session.userId}`, value: this.toString() }, this);
|
|
|
- await CacheModule.runJob(
|
|
|
- "PUB",
|
|
|
- {
|
|
|
- channel: "longJob.added",
|
|
|
- value: { jobId: this.toString(), userId: session.userId }
|
|
|
- },
|
|
|
- this
|
|
|
- );
|
|
|
-
|
|
|
- async.waterfall(
|
|
|
- [
|
|
|
- next => {
|
|
|
- PlaylistsModule.runJob("GET_ALL_ARTIST_PLAYLISTS", {}, this)
|
|
|
- .then(response => {
|
|
|
- next(null, response.playlists);
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- next(err);
|
|
|
- });
|
|
|
+ clearAndRefillAllArtistPlaylists: useHasPermission(
|
|
|
+ "playlists.clearAndRefillAll",
|
|
|
+ async function index(session, cb) {
|
|
|
+ this.keepLongJob();
|
|
|
+ this.publishProgress({
|
|
|
+ status: "started",
|
|
|
+ title: "Clear and refill all artist playlists",
|
|
|
+ message: "Clearing and refilling all artist playlists.",
|
|
|
+ id: this.toString()
|
|
|
+ });
|
|
|
+ await CacheModule.runJob("RPUSH", { key: `longJobs.${session.userId}`, value: this.toString() }, this);
|
|
|
+ await CacheModule.runJob(
|
|
|
+ "PUB",
|
|
|
+ {
|
|
|
+ channel: "longJob.added",
|
|
|
+ value: { jobId: this.toString(), userId: session.userId }
|
|
|
},
|
|
|
+ this
|
|
|
+ );
|
|
|
|
|
|
- (playlists, next) => {
|
|
|
- async.eachLimit(
|
|
|
- playlists,
|
|
|
- 1,
|
|
|
- (playlist, next) => {
|
|
|
- this.publishProgress({
|
|
|
- status: "update",
|
|
|
- message: `Clearing and refilling "${playlist._id}"`
|
|
|
+ async.waterfall(
|
|
|
+ [
|
|
|
+ next => {
|
|
|
+ PlaylistsModule.runJob("GET_ALL_ARTIST_PLAYLISTS", {}, this)
|
|
|
+ .then(response => {
|
|
|
+ next(null, response.playlists);
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ next(err);
|
|
|
});
|
|
|
- PlaylistsModule.runJob(
|
|
|
- "CLEAR_AND_REFILL_ARTIST_PLAYLIST",
|
|
|
- { playlistId: playlist._id },
|
|
|
- this
|
|
|
- )
|
|
|
- .then(() => {
|
|
|
- next();
|
|
|
- })
|
|
|
- .catch(err => {
|
|
|
- next(err);
|
|
|
+ },
|
|
|
+
|
|
|
+ (playlists, next) => {
|
|
|
+ async.eachLimit(
|
|
|
+ playlists,
|
|
|
+ 1,
|
|
|
+ (playlist, next) => {
|
|
|
+ this.publishProgress({
|
|
|
+ status: "update",
|
|
|
+ message: `Clearing and refilling "${playlist._id}"`
|
|
|
});
|
|
|
- },
|
|
|
- next
|
|
|
- );
|
|
|
- }
|
|
|
- // next => {
|
|
|
- // // PlaylistsModule.runJob("CREATE_MISSING_ARTIST_PLAYLISTS", {}, null)
|
|
|
- // // .then()
|
|
|
- // // .catch()
|
|
|
- // // .finally(() => {
|
|
|
- // // SongsModule.runJob("GET_ALL_ARTISTS", {}, null)
|
|
|
- // // .then(response => {
|
|
|
- // // const { artists } = response;
|
|
|
- // // artists.forEach(artist => {
|
|
|
- // // PlaylistsModule.runJob("AUTOFILL_ARTIST_PLAYLIST", { artist }, null).then().catch();
|
|
|
- // // });
|
|
|
- // // })
|
|
|
- // // .catch();
|
|
|
- // // });
|
|
|
- // PlaylistsModule.runJob("GET_MISSING_ARTIST_PLAYLISTS", {}, this).then(response => {
|
|
|
- // console.log(response);
|
|
|
- // });
|
|
|
- // }
|
|
|
- ],
|
|
|
- async err => {
|
|
|
- if (err) {
|
|
|
- err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
|
|
|
+ PlaylistsModule.runJob(
|
|
|
+ "CLEAR_AND_REFILL_ARTIST_PLAYLIST",
|
|
|
+ { playlistId: playlist._id },
|
|
|
+ this
|
|
|
+ )
|
|
|
+ .then(() => {
|
|
|
+ next();
|
|
|
+ })
|
|
|
+ .catch(err => {
|
|
|
+ next(err);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ next
|
|
|
+ );
|
|
|
+ }
|
|
|
+ // next => {
|
|
|
+ // // PlaylistsModule.runJob("CREATE_MISSING_ARTIST_PLAYLISTS", {}, null)
|
|
|
+ // // .then()
|
|
|
+ // // .catch()
|
|
|
+ // // .finally(() => {
|
|
|
+ // // SongsModule.runJob("GET_ALL_ARTISTS", {}, null)
|
|
|
+ // // .then(response => {
|
|
|
+ // // const { artists } = response;
|
|
|
+ // // artists.forEach(artist => {
|
|
|
+ // // PlaylistsModule.runJob("AUTOFILL_ARTIST_PLAYLIST", { artist }, null).then().catch();
|
|
|
+ // // });
|
|
|
+ // // })
|
|
|
+ // // .catch();
|
|
|
+ // // });
|
|
|
+ // PlaylistsModule.runJob("GET_MISSING_ARTIST_PLAYLISTS", {}, this).then(response => {
|
|
|
+ // console.log(response);
|
|
|
+ // });
|
|
|
+ // }
|
|
|
+ ],
|
|
|
+ async err => {
|
|
|
+ if (err) {
|
|
|
+ err = await UtilsModule.runJob("GET_ERROR", { error: err }, this);
|
|
|
+
|
|
|
+ this.log(
|
|
|
+ "ERROR",
|
|
|
+ "PLAYLIST_CLEAR_AND_REFILL_ALL_ARTIST_PLAYLISTS",
|
|
|
+ `Clearing and refilling all artist playlists failed for user "${session.userId}". "${err}"`
|
|
|
+ );
|
|
|
+ this.publishProgress({
|
|
|
+ status: "error",
|
|
|
+ message: err
|
|
|
+ });
|
|
|
+ return cb({ status: "error", message: err });
|
|
|
+ }
|
|
|
|
|
|
this.log(
|
|
|
- "ERROR",
|
|
|
+ "SUCCESS",
|
|
|
"PLAYLIST_CLEAR_AND_REFILL_ALL_ARTIST_PLAYLISTS",
|
|
|
- `Clearing and refilling all artist playlists failed for user "${session.userId}". "${err}"`
|
|
|
+ `Successfully cleared and refilled all artist playlists for user "${session.userId}".`
|
|
|
);
|
|
|
this.publishProgress({
|
|
|
- status: "error",
|
|
|
- message: err
|
|
|
+ status: "success",
|
|
|
+ message: "Playlists have been successfully cleared and refilled."
|
|
|
+ });
|
|
|
+ return cb({
|
|
|
+ status: "success",
|
|
|
+ message: "Playlists have been successfully cleared and refilled"
|
|
|
});
|
|
|
- return cb({ status: "error", message: err });
|
|
|
}
|
|
|
-
|
|
|
- this.log(
|
|
|
- "SUCCESS",
|
|
|
- "PLAYLIST_CLEAR_AND_REFILL_ALL_ARTIST_PLAYLISTS",
|
|
|
- `Successfully cleared and refilled all artist playlists for user "${session.userId}".`
|
|
|
- );
|
|
|
- this.publishProgress({
|
|
|
- status: "success",
|
|
|
- message: "Playlists have been successfully cleared and refilled."
|
|
|
- });
|
|
|
- return cb({
|
|
|
- status: "success",
|
|
|
- message: "Playlists have been successfully cleared and refilled"
|
|
|
- });
|
|
|
- }
|
|
|
- );
|
|
|
- }),
|
|
|
+ );
|
|
|
+ }
|
|
|
+ ),
|
|
|
|
|
|
/**
|
|
|
* Create missing genre playlists
|