CollinHeist / TitleCardMaker

Automated title card maker for Plex, Jellyfin, and Emby
https://titlecardmaker.com/
GNU General Public License v3.0
495 stars 23 forks source link

Create a Web Interface #311

Open CollinHeist opened 1 year ago

CollinHeist commented 1 year ago

This will be a pretty huge endeavor, but ideally TCM should move away from YAML files and command-line scripts and be interacted with via a web UI/interface, like all the -arr apps. It's derivative, but I think the Sonarr interface is good inspiration for a general layout.

I think the server-side API should using FastAPI to handle the requests and HTML content delivery.

Outstanding Tasks

CollinHeist commented 1 year ago

I think a toggleable dark/light mode could probably be accomplished like so:

$('.ui').toggleClass('inverted', true);  // Dark mode
$('.ui').toggleClass('inverted', false); // Light mode

Although any CSS selectors using the class might need to be revised, along with any hard-coded class name assignment in JS (e.g. elem.className = "...")

CollinHeist commented 1 year ago

Task scheduling might be doable with BackgroundTasks objects, but this is limited in terms of periodic scheduling and task monitoring.

The APScheduler module looks like a good solution; here is a good example of the basic object utilization with scheduling API endpoints.

CollinHeist commented 1 year ago

Looks like APScheduler will not be able to write to the database at all, which is problematic. The problem is that SQL Alchemy is not multi thread/process safe; leading to a ton of issues when scheduling writes in separate processes.

Might change the SQL backend, or find a different solution, but for now starlette BackgroundTasks will have to do for background DB writes.

CollinHeist commented 1 year ago

Created the https://github.com/CollinHeist/TitleCardMaker-CardTypes/tree/web-ui branch on the TitleCardMaker-CardTypes repository; and added a JSON file in 563e0d1e4e80e0d9fda34daf32352b1aaed6a6d2 which defines a JSON file containing card details for all user-created cards. This should be parsed on the webpage.


I'll need to reach out to the card creators and get their feedback on the card/extra descriptions, as well as the example images they want used.


I think users should be able to toggle which card types they do/do not want shown in card type dropdowns. This should be added to the Settings page. Card type dropdowns should also be searchable.

CollinHeist commented 1 year ago

I think users should also be able to turn off logo downloading within the TMDb settings

CollinHeist commented 1 year ago

264538128-64d88162-08e2-4745-aed7-06e136c21b2e 265131184-13375bd9-7fba-4cf7-b446-5837e740bf6d 270040388-57f6fe01-bb14-47ae-aad0-d247903872c1 270040595-eb540414-c472-4970-82dc-9d93a6453971 268150144-8cd0c2b5-bd48-4c58-9e5b-bf1e0ebf322d

CollinHeist commented 1 year ago

https://github.com/CollinHeist/TitleCardMaker/assets/17693271/1b39ea68-bfd3-41bc-99ce-bd7d6af01415

CollinHeist commented 11 months ago

banner graph inset shape 286067627-69665175-c0b1-4efb-8f9f-bc5423a24760 287941986-8acff66c-ad5a-4698-83f1-ac50b4807cfa Mr  Robot (2015) - S04E06 add-series formula notification set shape-new shape-old

CollinHeist commented 3 months ago

webhook

CollinHeist commented 1 week ago
SCR-20241120-kclu