diff --git a/youtube/common.py b/youtube/common.py index d3e3c0d..6e0f4eb 100644 --- a/youtube/common.py +++ b/youtube/common.py @@ -42,7 +42,8 @@ URL_ORIGIN = "/https://www.youtube.com" # first_video_id - +with open('yt_basic_template.html', 'r', encoding='utf-8') as file: + yt_basic_template = Template(file.read()) diff --git a/youtube/local_playlist.py b/youtube/local_playlist.py index 5a4182b..926c93f 100644 --- a/youtube/local_playlist.py +++ b/youtube/local_playlist.py @@ -1,7 +1,12 @@ import os import json +from youtube.template import Template +from youtube import common +import html playlists_directory = os.path.normpath("data/playlists") +with open('yt_local_playlist_template.html', 'r', encoding='utf-8') as file: + local_playlist_template = Template(file.read()) def add_to_playlist(name, video_info_list): with open(os.path.join(playlists_directory, name + ".txt"), "a", encoding='utf-8') as file: @@ -9,11 +14,74 @@ def add_to_playlist(name, video_info_list): file.write(info + "\n") -def get_playlist_page(name): - pass +def get_local_playlist_page(name): + videos_html = '' + with open(os.path.join(playlists_directory, name + ".txt"), 'r', encoding='utf-8') as file: + videos = file.read() + videos = videos.splitlines() + for video in videos: + try: + info = json.loads(video) + info['thumbnail'] = common.get_thumbnail_url(info['id']) + videos_html += common.video_item_html(info, common.small_video_item_template) + except json.decoder.JSONDecodeError: + pass + return local_playlist_template.substitute( + page_title = name + ' - Local playlist', + header = common.get_header(), + videos = videos_html, + title = name, + page_buttons = '' + ) def get_playlist_names(): for item in os.listdir(playlists_directory): name, ext = os.path.splitext(item) if ext == '.txt': - yield name \ No newline at end of file + yield name + +''' + main{ + display:grid; + grid-template-columns: 3fr 1fr; + } + + header{ + grid-template-columns: 3fr 1fr; + } + + #left{ + grid-column: 1; + grid-row: 1; + + display: grid; + grid-template-columns: 1fr 800px; + grid-template-rows: 0fr 1fr 0fr; + } + + #right{ + grid-column: 2; + grid-row: 1; + } +''' +def get_playlists_list_page(): + page = '''