Browse Source

fix(Station page): official stations now skip correctly, no difference in format of Date values

Signed-off-by: Jonathan <theflametrooper@gmail.com>
Jonathan 4 năm trước cách đây
mục cha
commit
84d5dd3b3a

+ 2 - 2
backend/logic/db/schemas/station.js

@@ -16,7 +16,7 @@ export default {
 		likes: { type: Number, default: -1 },
 		dislikes: { type: Number, default: -1 },
 		skipVotes: [{ type: String }],
-		requestedAt: { type: Number }
+		requestedAt: { type: Date }
 	},
 	currentSongIndex: { type: Number, default: 0, required: true },
 	timePaused: { type: Number, default: 0, required: true },
@@ -38,7 +38,7 @@ export default {
 			likes: { type: Number, default: -1 },
 			dislikes: { type: Number, default: -1 },
 			requestedBy: { type: String, required: true },
-			requestedAt: { type: Number }
+			requestedAt: { type: Date }
 		}
 	],
 	owner: { type: String },

+ 5 - 2
backend/logic/stations.js

@@ -862,6 +862,7 @@ class _StationsModule extends CoreClass {
 								requestedAt: song.requestedAt
 							};
 						}
+
 						if (currentSongIndex >= 0) $set.currentSongIndex = currentSongIndex;
 						$set.startedAt = Date.now();
 						$set.timePaused = 0;
@@ -870,8 +871,10 @@ class _StationsModule extends CoreClass {
 					},
 
 					($set, station, next) => {
-						StationsModule.stationModel.updateOne({ _id: station._id }, { $set }, () => {
-							StationsModule.runJob(
+						StationsModule.stationModel.updateOne({ _id: station._id }, { $set }, err => {
+							if (err) return next(err);
+
+							return StationsModule.runJob(
 								"UPDATE_STATION",
 								{
 									stationId: station._id

+ 10 - 5
frontend/src/pages/Station/components/CurrentlyPlaying.vue

@@ -33,9 +33,13 @@
 			<p id="song-request-time">
 				Requested
 				<strong>{{
-					formatDistance(currentSong.requestedAt, Date.now(), {
-						addSuffix: true
-					})
+					formatDistance(
+						parseISO(currentSong.requestedAt),
+						Date.now(),
+						{
+							addSuffix: true
+						}
+					)
 				}}</strong>
 			</p>
 			<div id="song-actions">
@@ -69,7 +73,7 @@
 
 <script>
 import { mapState, mapActions } from "vuex";
-import { formatDistance } from "date-fns";
+import { formatDistance, parseISO } from "date-fns";
 
 export default {
 	computed: {
@@ -82,7 +86,8 @@ export default {
 	},
 	methods: {
 		...mapActions("modals", ["openModal"]),
-		formatDistance
+		formatDistance,
+		parseISO
 	}
 };
 </script>

+ 10 - 5
frontend/src/pages/Station/components/Sidebar/Queue/QueueItem.vue

@@ -32,9 +32,13 @@
 							:link="true"
 						/>
 						{{
-							formatDistance(song.requestedAt, new Date(), {
-								addSuffix: true
-							})
+							formatDistance(
+								parseISO(song.requestedAt),
+								new Date(),
+								{
+									addSuffix: true
+								}
+							)
 						}}
 					</strong>
 				</p>
@@ -56,7 +60,7 @@
 </template>
 
 <script>
-import { formatDistance } from "date-fns";
+import { formatDistance, parseISO } from "date-fns";
 
 import UserIdToUsername from "../../../../../components/common/UserIdToUsername.vue";
 import utils from "../../../../../../js/utils";
@@ -81,7 +85,8 @@ export default {
 		};
 	},
 	methods: {
-		formatDistance
+		formatDistance,
+		parseISO
 	}
 };
 </script>