mirror of
https://github.com/Benexl/FastAnime.git
synced 2025-12-28 05:33:12 -08:00
99 lines
3.0 KiB
Python
99 lines
3.0 KiB
Python
from kivy.properties import ObjectProperty, StringProperty, DictProperty, ListProperty
|
|
from kivy.utils import get_hex_from_color
|
|
from kivy.factory import Factory
|
|
|
|
from kivymd.uix.boxlayout import MDBoxLayout
|
|
from kivymd.uix.label import MDLabel
|
|
|
|
|
|
class HeaderLabel(MDBoxLayout):
|
|
text = StringProperty()
|
|
halign = StringProperty("center")
|
|
|
|
|
|
Factory.register("HeaderLabel", HeaderLabel)
|
|
|
|
|
|
class SideBarLabel(MDLabel):
|
|
pass
|
|
|
|
|
|
# TODO:Switch to using the kivy_markup_module
|
|
class AnimeSideBar(MDBoxLayout):
|
|
screen = ObjectProperty()
|
|
image = StringProperty()
|
|
alternative_titles = DictProperty(
|
|
{
|
|
"synonyms": "",
|
|
"english": "",
|
|
"japanese": "",
|
|
}
|
|
)
|
|
information = DictProperty(
|
|
{
|
|
"episodes": "",
|
|
"status": "",
|
|
"aired": "",
|
|
"nextAiringEpisode": "",
|
|
"premiered": "",
|
|
"broadcast": "",
|
|
"countryOfOrigin": "",
|
|
"hashtag": "",
|
|
"studios": "", # { "name": "Sunrise", "isAnimationStudio": true }
|
|
"source": "",
|
|
"genres": "",
|
|
"duration": "",
|
|
"producers": "",
|
|
}
|
|
)
|
|
statistics = ListProperty()
|
|
statistics_container = ObjectProperty()
|
|
external_links = ListProperty()
|
|
external_links_container = ObjectProperty()
|
|
tags = ListProperty()
|
|
tags_container = ObjectProperty()
|
|
|
|
def on_statistics(self, instance, value):
|
|
self.statistics_container.clear_widgets()
|
|
header = HeaderLabel()
|
|
header.text = "Rankings"
|
|
self.statistics_container.add_widget(header)
|
|
for stat in value:
|
|
# stat (rank,context)
|
|
label = SideBarLabel()
|
|
label.text = "[color={}]{}:[/color] {}".format(
|
|
get_hex_from_color(label.theme_cls.primaryColor),
|
|
stat[0].capitalize(),
|
|
f"{stat[1]}",
|
|
)
|
|
self.statistics_container.add_widget(label)
|
|
|
|
def on_tags(self, instance, value):
|
|
self.tags_container.clear_widgets()
|
|
header = HeaderLabel()
|
|
header.text = "Tags"
|
|
self.tags_container.add_widget(header)
|
|
for tag in value:
|
|
label = SideBarLabel()
|
|
label.text = "[color={}]{}:[/color] {}".format(
|
|
get_hex_from_color(label.theme_cls.primaryColor),
|
|
tag[0].capitalize(),
|
|
f"{tag[1]} %",
|
|
)
|
|
self.tags_container.add_widget(label)
|
|
|
|
def on_external_links(self, instance, value):
|
|
self.external_links_container.clear_widgets()
|
|
header = HeaderLabel()
|
|
header.text = "External Links"
|
|
self.external_links_container.add_widget(header)
|
|
for site in value:
|
|
# stat (rank,context)
|
|
label = SideBarLabel()
|
|
label.text = "[color={}]{}:[/color] {}".format(
|
|
get_hex_from_color(label.theme_cls.primaryColor),
|
|
site[0].capitalize(),
|
|
site[1],
|
|
)
|
|
self.external_links_container.add_widget(label)
|