Added old code
This commit is contained in:
21
examples/inner_test.py
Normal file
21
examples/inner_test.py
Normal file
@@ -0,0 +1,21 @@
|
||||
import shadowtube.preprocess as prep
|
||||
import shadowtube.recommend as rec
|
||||
|
||||
raw_history = prep.parse_database("./short.db")
|
||||
|
||||
# print(raw_history[0]["title"] + ": " + str(prep.relevancy(raw_history[0], raw_history)))
|
||||
# print(
|
||||
# raw_history[28]["title"] + ": " + str(prep.relevancy(raw_history[28], raw_history))
|
||||
# )
|
||||
|
||||
# for i in range(0, 10):
|
||||
# print(prep.get_similarity(raw_history[i], raw_history))
|
||||
|
||||
history = prep.sort_history(raw_history)
|
||||
print(len(history))
|
||||
|
||||
# print(recommend(history))
|
||||
|
||||
recommendations = rec.recommend(history, verbose=False)
|
||||
|
||||
print(recommendations)
|
82
examples/tkinter_preview.py
Normal file
82
examples/tkinter_preview.py
Normal file
@@ -0,0 +1,82 @@
|
||||
import requests
|
||||
from io import BytesIO
|
||||
from PIL import Image, ImageTk
|
||||
import tkinter as tk
|
||||
import yt_dlp
|
||||
import shadowtube.recommend as rec
|
||||
import shadowtube.preprocess as prep
|
||||
|
||||
# kjdshfgklshdfjkglkadshf
|
||||
|
||||
import webbrowser
|
||||
|
||||
# List of 8 YouTube video IDs
|
||||
video_ids = rec.recommend(
|
||||
prep.sort_history(
|
||||
prep.parse_database(
|
||||
"/home/fedir/.var/app/io.freetubeapp.FreeTube/config/FreeTube/history.db"
|
||||
)
|
||||
),
|
||||
verbose=True,
|
||||
count=8,
|
||||
)
|
||||
|
||||
print(video_ids)
|
||||
|
||||
|
||||
def get_video_info(video_id):
|
||||
"""Fetch the title and thumbnail URL of a YouTube video using yt_dlp."""
|
||||
ydl_opts = {"quiet": True, "no_warnings": True, "extract_flat": True}
|
||||
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
info = ydl.extract_info(
|
||||
f"https://www.youtube.com/watch?v={video_id}", download=False
|
||||
)
|
||||
return info.get("title", "Title Not Found"), info.get("thumbnail", "")
|
||||
|
||||
|
||||
def open_video(event, video_id):
|
||||
"""Open the YouTube video in the default web browser when clicked."""
|
||||
webbrowser.open(f"https://www.youtube.com/watch?v={video_id}")
|
||||
|
||||
|
||||
def show_video_preview(video_id, row, col):
|
||||
"""Fetch and display a video's title and thumbnail in a grid layout."""
|
||||
title, thumbnail_url = get_video_info(video_id)
|
||||
|
||||
# Fetch thumbnail
|
||||
response = requests.get(thumbnail_url)
|
||||
if response.status_code == 200:
|
||||
image_data = Image.open(BytesIO(response.content))
|
||||
image_data = image_data.resize((200, 112)) # Resize for grid
|
||||
photo = ImageTk.PhotoImage(image_data)
|
||||
else:
|
||||
photo = None
|
||||
|
||||
# Create thumbnail label (clickable)
|
||||
thumbnail_label = tk.Label(root, image=photo, cursor="hand2")
|
||||
thumbnail_label.image = photo # Keep reference
|
||||
thumbnail_label.grid(row=row, column=col, padx=10, pady=10)
|
||||
thumbnail_label.bind("<Button-1>", lambda event, v=video_id: open_video(event, v))
|
||||
|
||||
# Create title label (wrapped text)
|
||||
title_label = tk.Label(
|
||||
root, text=title, font=("Arial", 10, "bold"), wraplength=200, justify="center"
|
||||
)
|
||||
title_label.grid(row=row + 1, column=col, padx=10, pady=5)
|
||||
|
||||
|
||||
# Create Tkinter window
|
||||
root = tk.Tk()
|
||||
root.title("YouTube Video Previews")
|
||||
|
||||
# Add all 8 videos in a 2x4 grid
|
||||
for index, video_id in enumerate(video_ids):
|
||||
row = (index // 4) * 2 # Every second row for the title
|
||||
col = index % 4
|
||||
show_video_preview(video_id, row, col)
|
||||
|
||||
root.mainloop()
|
||||
|
||||
|
||||
# kjdhfglkjsdhfgkljhsdkfg
|
Reference in New Issue
Block a user