Add all-time playlist
Signed-off-by: Abdulkadir Furkan Şanlı <me@abdulocra.cy>
This commit is contained in:
parent
5a3ace4297
commit
f84b214ab0
24
main.py
24
main.py
@ -139,7 +139,7 @@ def make_playlist(youtube, title):
|
|||||||
|
|
||||||
|
|
||||||
def get_or_make_playlist(conn, cursor, youtube, playlist_date):
|
def get_or_make_playlist(conn, cursor, youtube, playlist_date):
|
||||||
"""Get ID of playlist for given Monday's week, make if doesn't exist."""
|
"""Get ID of playlist with given named suffix, make if doesn't exist."""
|
||||||
title = f"{YOUTUBE_PLAYLIST_TITLE} {playlist_date.strftime('%Y-%m-%d')}"
|
title = f"{YOUTUBE_PLAYLIST_TITLE} {playlist_date.strftime('%Y-%m-%d')}"
|
||||||
|
|
||||||
cursor.execute("SELECT playlist_id FROM playlists WHERE title = ?", (title,))
|
cursor.execute("SELECT playlist_id FROM playlists WHERE title = ?", (title,))
|
||||||
@ -232,6 +232,16 @@ async def send_playlist_of_week(client, sender, room_id, playlist_id):
|
|||||||
content={"msgtype": "m.text", "body": reply_msg},
|
content={"msgtype": "m.text", "body": reply_msg},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def send_playlist_of_week(client, sender, room_id, playlist_id):
|
||||||
|
"""Sends playlist of all time in reply to sender, in room with room_id."""
|
||||||
|
playlist_link = f"https://www.youtube.com/playlist?list={playlist_id}"
|
||||||
|
reply_msg = f"{sender}, here's the playlist of all time: {playlist_link}"
|
||||||
|
await client.room_send(
|
||||||
|
room_id=room_id,
|
||||||
|
message_type="m.room.message",
|
||||||
|
content={"msgtype": "m.text", "body": reply_msg},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
async def message_callback(conn, cursor, youtube, client, room, event):
|
async def message_callback(conn, cursor, youtube, client, room, event):
|
||||||
"""Event handler for received messages."""
|
"""Event handler for received messages."""
|
||||||
@ -242,6 +252,9 @@ async def message_callback(conn, cursor, youtube, client, room, event):
|
|||||||
playlist_id = get_or_make_playlist(
|
playlist_id = get_or_make_playlist(
|
||||||
conn, cursor, youtube, monday_date(timestamp)
|
conn, cursor, youtube, monday_date(timestamp)
|
||||||
)
|
)
|
||||||
|
all_playlist_id = get_or_make_playlist(
|
||||||
|
conn, cursor, youtube, datetime.datetime.fromtimestamp(0)
|
||||||
|
)
|
||||||
|
|
||||||
timestamp_sec = datetime.datetime.fromtimestamp(
|
timestamp_sec = datetime.datetime.fromtimestamp(
|
||||||
event.server_timestamp / 1000, datetime.UTC # millisec to sec
|
event.server_timestamp / 1000, datetime.UTC # millisec to sec
|
||||||
@ -253,7 +266,11 @@ async def message_callback(conn, cursor, youtube, client, room, event):
|
|||||||
await send_intro_message(client, sender, room.room_id)
|
await send_intro_message(client, sender, room.room_id)
|
||||||
return
|
return
|
||||||
|
|
||||||
if body == "!pow" and recent:
|
if body == "!week" and recent:
|
||||||
|
await send_playlist_of_week(client, sender, room.room_id, playlist_id)
|
||||||
|
return
|
||||||
|
|
||||||
|
if body == "!all" and recent:
|
||||||
await send_playlist_of_week(client, sender, room.room_id, playlist_id)
|
await send_playlist_of_week(client, sender, room.room_id, playlist_id)
|
||||||
return
|
return
|
||||||
|
|
||||||
@ -270,8 +287,9 @@ async def message_callback(conn, cursor, youtube, client, room, event):
|
|||||||
if in_playlist(cursor, video_id, playlist_id):
|
if in_playlist(cursor, video_id, playlist_id):
|
||||||
print(f"Track is already in this week's playlist: {link}")
|
print(f"Track is already in this week's playlist: {link}")
|
||||||
else:
|
else:
|
||||||
# Add video to playlist and record it in the database
|
# Add video to playlists and record it in the database
|
||||||
add_video_to_playlist(youtube, playlist_id, video_id)
|
add_video_to_playlist(youtube, playlist_id, video_id)
|
||||||
|
add_video_to_playlist(youtube, all_playlist_id, video_id)
|
||||||
with conn:
|
with conn:
|
||||||
cursor.execute(
|
cursor.execute(
|
||||||
(
|
(
|
||||||
|
Loading…
Reference in New Issue
Block a user