import json
import os
from lib.db.pickle_db import PickleDatabase
from lib.utils.general.utils import (
format_season_episode,
parse_time,
set_pluging_category,
)
from lib.utils.kodi.last_files_actions import add_last_files_context_menu
from lib.utils.kodi.utils import (
ADDON_PATH,
add_directory_items_batch,
apply_section_view,
build_url,
end_of_directory,
make_list_item,
translation,
)
pickle_db = PickleDatabase()
def show_last_files():
set_pluging_category(translation(90071))
directory_items = []
list_item = make_list_item(label="Clear Files")
list_item.setArt({"icon": os.path.join(ADDON_PATH, "resources", "img", "clear.png")})
directory_items.append((build_url("clear_history", type="lfh"), list_item, True))
all_items = list(reversed(pickle_db.get_key("jt:lfh").items()))
items = sorted(all_items, key=parse_time, reverse=True)
for title, data in items:
formatted_time = data["timestamp"]
tv_data = data.get("tv_data", {})
if tv_data:
name = tv_data.get("name", "")
episode_label = format_season_episode(tv_data.get("season"), tv_data.get("episode"))
if episode_label:
label = f"{title} {episode_label} - {name} — {formatted_time}"
else:
label = f"{title} - {name} — {formatted_time}"
else:
label = f"{title}—{formatted_time}"
list_item = make_list_item(label=label)
list_item.setArt({"icon": os.path.join(ADDON_PATH, "resources", "img", "magnet.png")})
list_item.setProperty("IsPlayable", "true")
list_item.addContextMenuItems(add_last_files_context_menu(data))
directory_items.append(
(
build_url(
"play_media",
data=json.dumps(data),
),
list_item,
False,
)
)
add_directory_items_batch(directory_items)
end_of_directory()
apply_section_view("view.history")