Animierte Bilder.png anstatt von Text anzeigen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Animierte Bilder.png anstatt von Text anzeigen

      Hallo Vu+ Team, erstmal ein gutes Neues Jahr allen Miteinander.

      Ich würde gerne wissen ob es möglich ist anstatt eines Textes z. B. (Heute ist der 1. Advent) ein animiertes Bild (bestehend aus 3 od. 4 xxxx.png Bilder) auf dem Skin anzuzeigen.
      Das ganze natürlich am 1., 2., 3. und 4. Advent.

      Ich hoffe das mir hier jemand weiterhelfen kann.
      Schon jetzt vielen Dank, Highlander55 ;rolleyes:


      Python-Quellcode: CountdownToAdvent.py

      1. # -*- coding: utf-8 -*-
      2. from Converter import Converter
      3. from Components.Element import cached
      4. from datetime import time, date, timedelta
      5. class CountdownToAdvent(Converter, object):
      6. def __init__(self, type):
      7. Converter.__init__(self, type)
      8. self.heute = date.today()
      9. #self.heute = date(2021, 1, 1) # Datum verändern zum Testen
      10. self.aktJahr = self.heute.year
      11. self.Auswahl = type
      12. @cached
      13. def getText(self):
      14. time = self.source.time
      15. if time is None:
      16. return ""
      17. self.EreignisseFestlegen(self.heute)
      18. if len(self.EreignisseJahr) == 0:
      19. return "Ereignis " + self.Auswahl + " fehlt oder falsche Eingabe im Skin"
      20. else:
      21. return self.calculate()
      22. text = property(getText)
      23. def calculate(self):
      24. idx = 0
      25. Ereignisbeschreibung = self.aktEreignis[idx][7]
      26. jahr = self.aktEreignis[idx][0]
      27. monat = self.aktEreignis[idx][1]
      28. tag = self.aktEreignis[idx][2]
      29. dauer = self.aktEreignis[idx][4]
      30. if jahr > self.heute.year:
      31. textZusatz = " im nächsten Jahr"
      32. else:
      33. textZusatz = ""
      34. if dauer < 1:
      35. return "Ereignisbeschreibung " + self.Auswahl + " unvollständig"
      36. anz = len(Ereignisbeschreibung[0])
      37. E1 = Ereignisbeschreibung[0][0]
      38. if anz > 1:
      39. E2 = Ereignisbeschreibung[0][1]
      40. else:
      41. E2 = E1
      42. if anz > 2:
      43. E3 = Ereignisbeschreibung[0][2]
      44. else:
      45. E3 = E2
      46. Ereignis = date(jahr, monat, tag)
      47. Tage_bis = (Ereignis - self.heute).days
      48. if Tage_bis > 1:
      49. return "Es sind noch " + str(Tage_bis) + " Tage bis " + E1 + textZusatz
      50. elif Tage_bis > 0:
      51. return "Es ist nur noch ein Tag bis " + E1 + textZusatz
      52. elif Tage_bis >= (-dauer + 1):
      53. return Ereignisbeschreibung[1 - Tage_bis]
      54. else:
      55. return "Fehler in der Ereignisdefinition"
      56. def EreignisseFestlegen(self, heute):
      57. self.EreignisseJahr = []
      58. while True:
      59. name = "Advent"
      60. use = False
      61. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      62. diffTage = 0
      63. text = "" # wenn difftage <> 0 text hier eingeben [["Ereignis"], "Heute ist ..."]
      64. show_future = False
      65. level = 3
      66. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      67. if name == self.Auswahl:
      68. break
      69. name = "1Adventsonntag"
      70. use = True
      71. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      72. diffTage = 0
      73. text = [["zum 1. Adventsonntag"], "Advent, Advent, das erste Lichtlein brennt!"] # anstatt Text ein AnimatedPictures anzeigen
      74. show_future = False
      75. level = 4
      76. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      77. if name == self.Auswahl:
      78. break
      79. name = "2Adventsonntag"
      80. use = True
      81. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      82. diffTage = 7
      83. text = [["zum 2. Adventsonntag"], "Advent, Advent, das zweite Lichtlein brennt!"] # anstatt Text ein AnimatedPictures anzeigen
      84. show_future = False
      85. level = 3
      86. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      87. if name == self.Auswahl:
      88. break
      89. name = "3Adventsonntag"
      90. use = True
      91. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      92. diffTage = 14
      93. text = [["zum 3. Adventsonntag"], "Advent, Advent, das dritte Lichtlein brennt!"] # anstatt Text ein AnimatedPictures anzeigen
      94. show_future = False
      95. level = 3
      96. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      97. if name == self.Auswahl:
      98. break
      99. name = "4Adventsonntag"
      100. use = True
      101. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      102. diffTage = 21
      103. text = [["zum 4. Adventsonntag"], "Advent, Advent, das vierte Lichtlein brennt!"] # anstatt Text ein AnimatedPictures anzeigen
      104. show_future = False
      105. level = 3
      106. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      107. if name == self.Auswahl:
      108. break
      109. break
      110. self.EreignisseJahr.sort()
      111. self.aktEreignis = []
      112. cnt = len(self.EreignisseJahr)
      113. if cnt == 0:
      114. return
      115. prio = 999
      116. if self.Auswahl == "Alle":
      117. for idx in range(0, cnt):
      118. jahr = self.EreignisseJahr[idx][0]
      119. monat = self.EreignisseJahr[idx][1]
      120. tag = self.EreignisseJahr[idx][2]
      121. level = self.EreignisseJahr[idx][3]
      122. if date(jahr, monat, tag) <= self.heute:
      123. if level < prio:
      124. prio = level
      125. aktIdx = idx
      126. else:
      127. break
      128. if prio == 999:
      129. for idx in range(0, cnt):
      130. jahr2 = self.EreignisseJahr[idx][0]
      131. monat2 = self.EreignisseJahr[idx][1]
      132. tag2 = self.EreignisseJahr[idx][2]
      133. level = self.EreignisseJahr[idx][3]
      134. if date(jahr, monat, tag) == date(jahr2, monat2, tag2):
      135. if level < prio:
      136. prio = level
      137. aktIdx = idx
      138. else:
      139. break
      140. if prio == 999:
      141. aktIdx = 0
      142. self.aktEreignis.append(self.EreignisseJahr[aktIdx])
      143. def Ereignis_fest(self, name, mon, tag, show_future, level, text):
      144. dauer = len(text) - 1
      145. if dauer < 1:
      146. return
      147. jahr = self.aktJahr
      148. if self.heute > (date(jahr, mon, tag) + timedelta(dauer - 1)):
      149. jahr += 1
      150. if (self.Auswahl <> "Alle") or show_future or (self.heute >= date(jahr, mon, tag)) and (self.heute <= (date(jahr, mon, tag) + timedelta(dauer - 1))):
      151. self.EreignisseJahr.append([jahr, mon, tag, level, dauer, name, show_future, text])
      152. def Ereignis_Advent(self, name, diffTage, show_future, level, text):
      153. dauer = 0
      154. if len(text) > 1:
      155. dauer = len(text) - 1
      156. jahr, mon, tag, new_dauer, text2 = self.calcAdvent(self.aktJahr, diffTage, dauer)
      157. if self.heute > (date(jahr, mon, tag) + timedelta(new_dauer - 1)):
      158. jahr, mon, tag, new_dauer, text2 = self.calcAdvent(self.aktJahr + 1, diffTage, dauer)
      159. dauer = new_dauer
      160. if dauer < 1:
      161. return
      162. if len(text2) > 1:
      163. text = text2
      164. del text2
      165. if (self.Auswahl <> "Alle") or show_future or (self.heute >= date(jahr, mon, tag)) and (self.heute <= (date(jahr, mon, tag) + timedelta(dauer - 1))):
      166. self.EreignisseJahr.append([jahr, mon, tag, level, dauer, name, show_future, text])
      167. def calcAdvent(self, jahr, diffTage = 0, dauer_in = 0):
      168. monat = 12
      169. tag = 24
      170. vday = date(jahr, monat, tag).isoweekday() # monday = 1
      171. dauer_adv = 21 + vday % 7 + (vday == 7)
      172. anfang = date(jahr, monat, tag) - timedelta(dauer_adv - (vday == 7))
      173. if diffTage == 0 and dauer_in == 0:
      174. Ereignisbeschreibung = [["zum 1. Adventsonntag"]] #Ereignisbeschreibung = [["zum 1. Adventsonntag", "Der Advent", "Advent"]]
      175. dauer = dauer_adv
      176. for x in range(1, dauer_adv + 1):
      177. if (x % 7) == 1:
      178. Ereignisbeschreibung.append("Heute ist der " + str(int(x / 7) + 1) + ". Adventsonntag")
      179. else:
      180. Ereignisbeschreibung.append("Wir befinden uns nun in der " + str(int((x - 1) / 7) + 1) +". Adventswoche")
      181. else:
      182. Ereignisbeschreibung = ""
      183. dauer = dauer_in
      184. temp = anfang + timedelta(diffTage)
      185. return temp.year, temp.month, temp.day, dauer, Ereignisbeschreibung
      Alles anzeigen
    • PeEf schrieb:

      du bist hier nicht bei VU+
      Da auf der Foren-Hauptseite unter "Team-Mitglieder online" die meisten den Rang "Vu+ Team" tragen, war seine Schlussfolgerung zumindest nachvollziehbar, wenn auch trotzdem nicht korrekt. ;)
      Andererseits hätte er es wissen können/sollen/müssen, da er seit 2013 registriert ist...
      Gruß
      A.

      "Schweigen ist der vollkommenste Ausdruck der Verachtung"
      George Bernard Shaw

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von bieristalle ()