From b13dad4c34d5341359a5af27e010b577f08be838 Mon Sep 17 00:00:00 2001 From: geoffrey45 Date: Tue, 10 May 2022 13:20:07 +0300 Subject: [PATCH] move "determining last updated date" to the server --- server/app/api/playlist.py | 6 ++++-- server/app/db/playlists.py | 19 +++++++++---------- server/app/helpers.py | 18 +++++------------- server/app/models.py | 1 + src/components/modals/updatePlaylist.vue | 2 -- src/composables/perks.js | 14 -------------- src/composables/playlists.ts | 4 +--- 7 files changed, 20 insertions(+), 44 deletions(-) diff --git a/server/app/api/playlist.py b/server/app/api/playlist.py index 8a253733..d8462414 100644 --- a/server/app/api/playlist.py +++ b/server/app/api/playlist.py @@ -12,6 +12,8 @@ from app.lib import playlistlib from flask import Blueprint from flask import request +from app.helpers import create_new_date + playlist_bp = Blueprint("playlist", __name__, url_prefix="/") PlaylistExists = exceptions.PlaylistExists @@ -38,7 +40,7 @@ def create_playlist(): "name": data["name"], "description": "", "pre_tracks": [], - "lastUpdated": data["lastUpdated"], + "lastUpdated": create_new_date(), "image": "", "thumb": "", } @@ -99,7 +101,7 @@ def update_playlist(playlistid: str): playlist = { "name": str(data.get("name")).strip(), "description": str(data.get("description").strip()), - "lastUpdated": str(data.get("lastUpdated")), + "lastUpdated": create_new_date(), "image": None, "thumb": None, } diff --git a/server/app/db/playlists.py b/server/app/db/playlists.py index 4e076fa6..7447b46c 100644 --- a/server/app/db/playlists.py +++ b/server/app/db/playlists.py @@ -5,6 +5,8 @@ from app import db from app import models from bson import ObjectId +from app.helpers import create_new_date + convert_many = db.convert_many convert_one = db.convert_one @@ -23,12 +25,8 @@ class Playlists(db.Mongo): Inserts a new playlist object into the database. """ return self.collection.update_one( - { - "name": playlist["name"] - }, - { - "$set": playlist - }, + {"name": playlist["name"]}, + {"$set": playlist}, upsert=True, ).upserted_id @@ -50,12 +48,13 @@ class Playlists(db.Mongo): """ Adds a track to a playlist. """ + date = create_new_date() return self.collection.update_one( - {"_id": ObjectId(playlistid)}, - {"$push": { - "pre_tracks": track - }}, + { + "_id": ObjectId(playlistid), + }, + {"$push": {"pre_tracks": track}, "$set": {"lastUpdated": date}}, ) def get_playlist_by_name(self, name: str) -> dict: diff --git a/server/app/helpers.py b/server/app/helpers.py index 0d74865e..e6278fee 100644 --- a/server/app/helpers.py +++ b/server/app/helpers.py @@ -1,7 +1,7 @@ """ This module contains mini functions for the server. """ -import datetime +from datetime import datetime import os import random import threading @@ -114,21 +114,13 @@ def check_artist_image(image: str) -> str: return img_name -class Timer: - begin: int = 0 - end: int = 0 - - def start(self): - self.begin = time.time() - - def stop(self): - self.end = time.time() - print(str(datetime.timedelta(seconds=round(self.end - self.begin)))) - - def create_album_hash(title: str, artist: str) -> str: """ Creates a simple hash for an album """ return (title + artist).replace(" ", "").lower() +def create_new_date(): + now = datetime.now() + str = now.strftime("%Y-%m-%d %H:%M:%S") + return str \ No newline at end of file diff --git a/server/app/models.py b/server/app/models.py index 95c4a285..d3d3a35f 100644 --- a/server/app/models.py +++ b/server/app/models.py @@ -145,6 +145,7 @@ class Playlist: if track not in self._pre_tracks: self._pre_tracks.append(track) self.update_count() + self.lastUpdated = helpers.create_new_date() else: raise TrackExistsInPlaylist("Track already exists in playlist") diff --git a/src/components/modals/updatePlaylist.vue b/src/components/modals/updatePlaylist.vue index 07cb5cd6..fd0b1249 100644 --- a/src/components/modals/updatePlaylist.vue +++ b/src/components/modals/updatePlaylist.vue @@ -49,7 +49,6 @@ import { onMounted, ref } from "vue"; import { Playlist } from "../../interfaces"; import { updatePlaylist } from "../../composables/playlists"; import usePStore from "../../stores/p.ptracks"; -import { getCurrentDate } from "../../composables/perks"; const pStore = usePStore(); @@ -103,7 +102,6 @@ function update_playlist(e: Event) { const formData = new FormData(form); formData.append("image", image); - formData.append("lastUpdated", getCurrentDate()); if (formData.get("name").toString().trim() !== "") { updatePlaylist(props.playlist.playlistid, formData, pStore).then(() => { diff --git a/src/composables/perks.js b/src/composables/perks.js index a41461ae..df6af90c 100644 --- a/src/composables/perks.js +++ b/src/composables/perks.js @@ -75,24 +75,10 @@ function formatSeconds(seconds) { } } -export function getCurrentDate() { - const date = new Date(); - - const yyyy = date.getFullYear(); - const mm = date.getMonth() + 1; - const dd = date.getDate(); - - const hh = date.getHours(); - const min = date.getMinutes(); - const sec = date.getSeconds(); - - return `${yyyy}-${mm}-${dd} ${hh}:${min}:${sec}`; -} export default { putCommas, focusCurrent, formatSeconds, getElem, - getCurrentDate, }; diff --git a/src/composables/playlists.ts b/src/composables/playlists.ts index a88202d2..6dd475f2 100644 --- a/src/composables/playlists.ts +++ b/src/composables/playlists.ts @@ -2,7 +2,6 @@ import axios from "axios"; import { Playlist, Track } from "../interfaces"; import { Notification, NotifType } from "../stores/notification"; import state from "./state"; -import { getCurrentDate } from "../composables/perks"; /** * Creates a new playlist on the server. * @param playlist_name The name of the playlist to create. @@ -13,7 +12,6 @@ async function createNewPlaylist(playlist_name: string, track?: Track) { await axios .post(state.settings.uri + "/playlist/new", { name: playlist_name, - lastUpdated: getCurrentDate(), }) .then((res) => { new Notification("✅ Playlist created successfullly!"); @@ -29,7 +27,7 @@ async function createNewPlaylist(playlist_name: string, track?: Track) { .catch((err) => { if (err.response.status == 409) { new Notification( - "That playlist already exists ... you might want to try another name!", + "That playlist already exists", NotifType.Error ); }