Countdown Converter für Feiertage uns sonstige Ereignisse eines Jahres

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

    • Countdown Converter für Feiertage uns sonstige Ereignisse eines Jahres

      Ich habe Vorlagen von @Maggy und @Highlander55 aufgegriffen und den Contdown-Converter erweitert, sodass jetzt verschiedene Ereignisse eines Jahres einstellbar sind und automatisch immer das gerade aktuelle bzw. das nächstgelegene Ereignis angezeigt wird.

      Die angehängte Datei (py) nach usr/lib/enigma2/python/Components/Converter/ kopieren.

      Im skin einfügen:

      <widget source="global.CurrentTime" render="Label" position="60,18" size="1180,30" font="Regular; 26" halign="left" valign="left" foregroundColor="green" backgroundColor="background" transparent="1">
      <convert type="CountdownToMultipleEvents">Alle</convert>
      </widget>

      Anstelle von 'Alle' kann auch ein einzelnes, konkretes Ereignis (z. B. 'Weihnachten') eingestellt werden.

      Ich habe die gesetzlichen Feiertage für Deutschland, Österreich und die Schweiz und einige zusätzliche Feiertage sowie eine Geburtstagsvorlage eingerichtet.
      Im Unterprogramm 'Ereignisse festlegen' können vorhandene Ereignisse aktiviert (use = True) oder deaktiviert (use = False) werden.
      Wenn aktuell kein Ereignis ist wird das Ereignis mit 'Es sind noch x Tage bis Ereignisxyz' angezeigt, das als nächstes stattfindet und für das 'show_future' True ist.
      Die Einschränkungen für 'use' und 'show_future gelten nur bei 'Alle'.
      Für überschneidende Ereignisse kann im level definiert werden, was Priorität hat (niedriger level hat hohe Priorität).
      Der Rest ist im Unterprogramm kommentiert.
      Ereignisse können als fixer Tag oder in Abhängigkeit vom Ostersonntag oder 1. Adventsonntag festgelegt werden.

      Die Zusammenstellung des Textes ist im Unterprogramm 'calculate' definiert und kann dort adaptiert werden.

      im self.__init__ wird der heutige Tag definiert:
      self.heute = date.today()
      #self.heute = date(2021, 12, 28)
      Die auskommentierte Zeile kann aktiviert werden, um Einstellungen auszutesten.

      Der Converter ist für skinner gedacht, gewünschte Anpassungen bitte selbst vornehmen.

      Viel Spass damit!
      Dateien
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

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

    • hallo
      wollte den conv. mal testen,bekomme aber ein bluescreen
      zeile 60 return "Es ist nur noch ein Tag bis " + E1 + textZsatz


      line 60
      return "Es ist nur noch ein Tag bis " + E1 +
      ^
      SyntaxError: invalid syntax
      kannst du dir das mal bitte anschauen?
      <convert type="CountdownToMultipleEvents">Alle</convert> geht nicht
      <convert type="CountdownToMultipleEvents">'Weihnachten</convert> geht nicht
      cu#
      speedy005

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

    • In Zeile 60 ist ein Tippfehler drin - sollte heissen:

      return "Es ist nur noch ein Tag bis " + E1 + textZusatz

      Da der Fehler nur genau am Tag vor Beginn eines Ereignisses auftritt ist er beim Testen nicht aufgefallen.

      Im Skin für das Ereignis ohne ' eingeben (Alle passt, 'Weihnachten geht nicht)

      Anbei die korrigierte Version.
      Dateien
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • hi
      danke für den fix
      klappt nun
      cu
      speedy005

      wie kann ich mehrer Geburtstage hinzufügen?
      Spoiler anzeigen

      name = "Geburtstag"
      use = True
      if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      mon = 12
      tag = 25
      text = [["zum Geburtstag von Julia"], "Alles Gute zum Geburtstag, liebe Julia!"]
      show_future = False
      level = 4
      self.Ereignis_fest(name, mon, tag, show_future, level, text)
      if name == self.Auswahl:
      break



      einfach
      Spoiler anzeigen

      name = "Geburtstag"
      use = True
      if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      mon = 12
      tag = 25
      text = [["zum Geburtstag von Julia"], "Alles Gute zum Geburtstag, liebe Julia!"]
      show_future = False
      level = 4
      self.Ereignis_fest(name, mon, tag, show_future, level, text)
      if name == self.Auswahl:
      break
      name = "Geburtstag"
      use = True
      if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      mon = 10
      tag = 70
      text = [["zum Geburtstag von Chris"], "Alles Gute zum Geburtstag, lieber Chris!"]
      show_future = False
      level = 4
      self.Ereignis_fest(name, mon, tag, show_future, level, text)
      if name == self.Auswahl:
      break
      name = "Geburtstag"
      use = True
      if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      mon = 05
      tag = 13
      text = [["zum Geburtstag von Laura"], "Alles Gute zum Geburtstag, liebe Laura!"]
      show_future = False
      level = 4
      self.Ereignis_fest(name, mon, tag, show_future, level, text)
      if name == self.Auswahl:
      break


      oder ist das so falsch?

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

    • Jeder Name darf nur 1 x vorkommen. Benenne sie einfach Geburtstag1, Geburtstag2 usw.

      Wenn du ich noch die Anzeige möchtest, wann der nächste Geburtstag ist, dann show_future auf True setzen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Du hast bei allen Geburtstagen 'zum Geburtstag von Christian' drin. Nur wenn der Tag tatsächlich erreicht ist verwendest du unterschiedliche Namen.

      So wie eingestellt müsste heute die Meldung kommen: Heute ist der Heilige Abend.

      Und ab 27.12: Es sind noch xx Tage bis Neujahr im nächsten Jahr.

      Testen kannst du durch Aktivierung (# weg) des Parameters in Zeile 12.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Wie kann ich den mehrere Geburtstage eintragen sodas sie an dem jeweiligen Geburtstag angezeigt werden`?
      "/usr/lib/enigma2/python/Components/Converter/CountdownToMultipleEvents.py", line 238
      name = "Geburtstag1"
      cu
      speedy005

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

    • im skin:
      <convert type="CountdownToMultipleEvents">Alle</convert>

      Und nur bei den Ereignissen, die du angezeigt haben willst, use = True setzen.

      text = [["zum Geburtstag von Christian"], "Alles Gute zum Geburtstag, liebe Laura!"]:

      Der EIntrag in der inneren eckingen Klammer wird angezeigt, wenn es noch xx Tage bis zum Ereignis sind.
      Alle folgenden, wenn das Ereignis erreicht ist.
      Wie lange das Ereignis dauert definierst du mit der Anzahl der Einträge nach der inneren eckigen Klammer (siehe Weihnachten).

      Ausnahme ist der Advent - hier werden die Texte im Unterprogramm erzeugt, weil der Advent jedes Jahr unterschiedlich lang ist.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Ich schicke dir einen converter (Konversation anschauen), bei dem nur die von dir eingestellten Geburtstage aktiv sind.

      In einen bestehenden Skin, z. B. für die Anzeige der infobar, ergänzt du dann:

      <widget source="global.CurrentTime" render="Label" position="60,18"
      size="1180,30" font="Regular; 26" halign="left" valign="left"
      foregroundColor="green" backgroundColor="background" transparent="1">
      <convert type="CountdownToMultipleEvents">Alle</convert>
      </widget>

      Positionen natürlich anpassen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Hier auch für alle:

      Wenn neue Ereignisse eingefügt werden, Einrückungen unbedingt mit TAB und nicht mit Leerzeichen machen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • Super für den nächsten Stammtisch.


      ;rolleyes: Anfänger machen Fehler - Könner verursachen Katastrophen ;_)
    • Tage und Monate (Zahlen generell) in der Ereignisdefinition nicht mit führenden Nullen eintragen - das ist für Python dann keine Zahl mehr.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter
    • bei mir gibt es leider eine LS dauerschleife wenn ich den converter mit Geburtstagen erweitert habe.
      habe ich etwas falsch gemacht ?

      Python-Quellcode

      1. # -*- coding: utf-8 -*-
      2. from Converter import Converter
      3. from Components.Element import cached
      4. from datetime import time, date, timedelta
      5. class CountdownToMultipleEvents(Converter, object):
      6. def __init__(self, type):
      7. Converter.__init__(self, type)
      8. self.heute = date.today()
      9. #self.heute = date(2021, 12, 28)
      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. # Ereignis liegt in der Zukunft (1. Eintrag in text)
      49. if Tage_bis > 1:
      50. return "Es sind noch " + str(Tage_bis) + " Tage bis " + E1 + textZusatz
      51. elif Tage_bis > 0:
      52. return "Es ist nur noch ein Tag bis " + E1 + textZusatz
      53. # Ereignis ist aktuell (in text Einträge nach [.....])
      54. elif Tage_bis >= (-dauer + 1):
      55. return Ereignisbeschreibung[1 - Tage_bis]
      56. else:
      57. return "Fehler in der Ereignisdefinition"
      58. def EreignisseFestlegen(self, heute):
      59. # Hier können Ereignisse definiert werden
      60. # use = False: Ereignisse werden bei 'Alle' nicht berücksichtigt
      61. # show_future = False: Ereignisse werden bei "Alle" berücksichtigt, wenn aktuell, aber nicht für die Anzeige der Tage bis dorthin
      62. # text: [[ta], tb1 ... tbx]] (x = Dauer des Ereignisses)
      63. # level: wenn zwei Ereignisse gleichzeitig aktuell sind (z. B. Geburtstag während Weihnachten) hat der mit dem niedrigsten Eintrag Priorität
      64. # ta: Es sind noch x Tage bis ta ...
      65. # tb1 ... tbn: Wenn das Ereignis aktuell ist: der 1. bis n-te Tag (vollständiger Text)
      66. # die Dauer des Ereignisses wird von der Anzahl tb abgeleitet
      67. # für Advent wird der Text und die Dauer im Modul calcAdvent ermittelt
      68. # der Text wird im Modul calculate zusammengebaut (Rahmentext dort gestaltbar)
      69. self.EreignisseJahr = []
      70. while True:
      71. # Fester Tag #######################################################
      72. name = "Neujahr"
      73. use = True
      74. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      75. mon = 1
      76. tag = 1
      77. text = [["Neujahr"], "Heute ist Neujahr, alles Gute"]
      78. show_future = True
      79. level = 3
      80. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      81. if name == self.Auswahl:
      82. break
      83. name = "Hl3K"
      84. use = True
      85. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      86. mon = 1
      87. tag = 6
      88. text = [["zum Fest der Heiligen Drei Könige"], "Heute ist das Fest der Heiligen Drei Könige"]
      89. show_future = False
      90. level = 3
      91. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      92. if name == self.Auswahl:
      93. break
      94. name = "1Mai"
      95. use = True
      96. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      97. mon = 5
      98. tag = 1
      99. text = [["zum Tag der Arbeit"], "Heute ist der Tag der Arbeit"]
      100. show_future = False
      101. level = 3
      102. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      103. if name == self.Auswahl:
      104. break
      105. name = "Bundesfeier"
      106. use = False
      107. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      108. mon = 8
      109. tag = 1
      110. text = [["zur Bundesfeier"], "Heute ist die Bundesfeier, unser Nationalfeiertag"]
      111. show_future = False
      112. level = 3
      113. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      114. if name == self.Auswahl:
      115. break
      116. name = "MariaHimmelfahrt"
      117. use = False
      118. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      119. mon = 8
      120. tag = 15
      121. text = [["Mariä Himmelfahrt"], "Heute ist das Fest Mariä Himmelfahrt"]
      122. show_future = False
      123. level = 3
      124. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      125. if name == self.Auswahl:
      126. break
      127. name = "DeutscheEinheit"
      128. use = False
      129. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      130. mon = 10
      131. tag = 3
      132. text = [["zum Tag der Deutschen Einheit"], "Heute ist Tag der Deutschen Einheit, unser Nationalfeiertag"]
      133. show_future = False
      134. level = 3
      135. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      136. if name == self.Auswahl:
      137. break
      138. name = "NationalfeiertagAT"
      139. use = False
      140. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      141. mon = 10
      142. tag = 26
      143. text = [["Nationalfeiertag"], "Heute ist in Österreich Nationalfeiertag"]
      144. show_future = False
      145. level = 3
      146. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      147. if name == self.Auswahl:
      148. break
      149. name = "Allerheiligen"
      150. use = False
      151. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      152. mon = 11
      153. tag = 1
      154. text = [["Allerheiligen"], "Heute ist Allerheiligen, wir gedenken userer Heiligen", "Heute ist Allerseelen, wir gedenken unserer lieben Verstorbenen"]
      155. show_future = False
      156. level = 3
      157. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      158. if name == self.Auswahl:
      159. break
      160. name = "Nikolaus"
      161. use = True
      162. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      163. mon = 12
      164. tag = 6
      165. text = [["zum Nikolaus-Tag"], "Heute ist das Fest des Heiligen Nikolaus"]
      166. show_future = False
      167. level = 3
      168. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      169. if name == self.Auswahl:
      170. break
      171. name = "Maria Himmelfahrt"
      172. use = False
      173. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      174. mon = 12
      175. tag = 8
      176. text = [["Mariä Himmelfahrt"], "Heute ist das Fest Mariä Himmelfahrt"]
      177. show_future = False
      178. level = 3
      179. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      180. if name == self.Auswahl:
      181. break
      182. name = "Weihnachten"
      183. use = True
      184. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      185. mon = 12
      186. tag = 24
      187. text = [["Weihnachten"], "Heute ist Heilig Abend", "Heute ist der 1. Weihnachtstag", "Heute ist der 2. Weihnachtstag"]
      188. show_future = True
      189. level = 2
      190. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      191. if name == self.Auswahl:
      192. break
      193. name = "Silvester"
      194. use = True
      195. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      196. mon = 12
      197. tag = 31
      198. text = [["Silvester"], "Heute ist Silvester, der letzte Tag im Jahr"]
      199. show_future = False
      200. level = 3
      201. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      202. if name == self.Auswahl:
      203. break
      204. name = "Geburtstag"
      205. use = True
      206. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      207. mon = 07
      208. tag = 24
      209. text = [["zum Geburtstag von max"], "Alles Gute zum Geburtstag, lieber meier!"]
      210. show_future = False
      211. level = 4
      212. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      213. if name == self.Auswahl:
      214. break
      215. name = "Geburtstag"
      216. use = True
      217. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      218. mon = 10
      219. tag = 22
      220. text = [["zum Geburtstag von max"], "Alles Gute zum Geburtstag, lieber muster!"]
      221. show_future = False
      222. level = 4
      223. self.Ereignis_fest(name, mon, tag, show_future, level, text)
      224. if name == self.Auswahl:
      225. break
      226. # Abhängig von Ostern ####################################################
      227. name = "Ostern"
      228. use = True
      229. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      230. diffTage = 0
      231. text = [["Ostern"], "Heute ist Ostersonntag","Heute ist Ostermontag"]
      232. show_future = True
      233. level = 3
      234. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      235. if name == self.Auswahl:
      236. break
      237. name = "Aschermittwoch"
      238. use = False
      239. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      240. diffTage = -46
      241. text = [["Aschermittwoch"], "Heute ist Aschermittwoch"]
      242. show_future = False
      243. level = 3
      244. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      245. if name == self.Auswahl:
      246. break
      247. name = "Carfreitag"
      248. use = True
      249. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      250. diffTage = -2
      251. text = [["Carfreitag"], "Heute ist Carfreitag"]
      252. show_future = False
      253. level = 3
      254. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      255. if name == self.Auswahl:
      256. break
      257. name = "Palmsonntag"
      258. use = False
      259. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      260. diffTage = -7
      261. text = [["zum Palmsonntag"], "Heute ist Palmsonntag"]
      262. show_future = False
      263. level = 3
      264. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      265. if name == self.Auswahl:
      266. break
      267. name = "Vatertag"
      268. use = True
      269. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      270. diffTage = 39
      271. text = [["Vatertag"], "Heute ist Vatertag"]
      272. show_future = False
      273. level = 3
      274. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      275. if name == self.Auswahl:
      276. break
      277. name = "Pfingsten"
      278. use = True
      279. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      280. diffTage = 39
      281. text = [["Pfingsten"], "Heute ist Pfingstsonntag", "Heute ist Pfingstmontag"]
      282. show_future = True
      283. level = 3
      284. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      285. if name == self.Auswahl:
      286. break
      287. name = "Fronleichnam"
      288. use = False
      289. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      290. diffTage = 39
      291. text = [["FronleichnamFronleichnam"], "Heute ist Fronleichnam"]
      292. show_future = False
      293. level = 3
      294. self.Ereignis_Ostern(name, diffTage, show_future, level, text)
      295. if name == self.Auswahl:
      296. break
      297. # Abhängig vom Adventbeginn = 1. Adventsonntag
      298. name = "Advent"
      299. use = False
      300. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      301. diffTage = 0
      302. text = "" # wenn difftage <> 0 text hier eingeben [["Ereignis"], "Heute ist ..."]
      303. show_future = False
      304. level = 3
      305. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      306. if name == self.Auswahl:
      307. break
      308. name = "1Adventsonntag"
      309. use = True
      310. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      311. diffTage = 0
      312. text = [["zum 1. Adventsonntag"], "Heute ist der erste Adventsonntag"]
      313. show_future = False
      314. level = 4
      315. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      316. if name == self.Auswahl:
      317. break
      318. name = "2Adventsonntag"
      319. use = True
      320. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      321. diffTage = 7
      322. text = [["zum 2. Adventsonntag"], "Heute ist der zweite Adventsonntag"]
      323. show_future = False
      324. level = 3
      325. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      326. if name == self.Auswahl:
      327. break
      328. name = "3Adventsonntag"
      329. use = True
      330. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      331. diffTage = 14
      332. text = [["zum 3. Adventsonntag"], "Heute ist der vierte Adventsonntag"]
      333. show_future = False
      334. level = 3
      335. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      336. if name == self.Auswahl:
      337. break
      338. name = "4Adventsonntag"
      339. use = True
      340. if name == self.Auswahl or (self.Auswahl == "Alle" and use == True):
      341. diffTage = 21
      342. text = [["zum 2. Adventsonntag"], "Heute ist der zweite Adventsonntag"]
      343. show_future = False
      344. level = 3
      345. self.Ereignis_Advent(name, diffTage, show_future, level, text)
      346. if name == self.Auswahl:
      347. break
      348. break
      349. self.EreignisseJahr.sort()
      350. self.aktEreignis = []
      351. cnt = len(self.EreignisseJahr)
      352. if cnt == 0:
      353. return
      354. prio = 999
      355. if self.Auswahl == "Alle":
      356. for idx in range(0, cnt):
      357. jahr = self.EreignisseJahr[idx][0]
      358. monat = self.EreignisseJahr[idx][1]
      359. tag = self.EreignisseJahr[idx][2]
      360. level = self.EreignisseJahr[idx][3]
      361. if date(jahr, monat, tag) <= self.heute:
      362. if level < prio:
      363. prio = level
      364. aktIdx = idx
      365. else:
      366. break
      367. if prio == 999:
      368. for idx in range(0, cnt):
      369. jahr2 = self.EreignisseJahr[idx][0]
      370. monat2 = self.EreignisseJahr[idx][1]
      371. tag2 = self.EreignisseJahr[idx][2]
      372. level = self.EreignisseJahr[idx][3]
      373. if date(jahr, monat, tag) == date(jahr2, monat2, tag2):
      374. if level < prio:
      375. prio = level
      376. aktIdx = idx
      377. else:
      378. break
      379. if prio == 999:
      380. aktIdx = 0
      381. self.aktEreignis.append(self.EreignisseJahr[aktIdx])
      382. def Ereignis_fest(self, name, mon, tag, show_future, level, text):
      383. dauer = len(text) - 1
      384. if dauer < 1:
      385. return
      386. jahr = self.aktJahr
      387. if self.heute > (date(jahr, mon, tag) + timedelta(dauer - 1)):
      388. jahr += 1
      389. if (self.Auswahl <> "Alle") or show_future or (self.heute >= date(jahr, mon, tag)) and (self.heute <= (date(jahr, mon, tag) + timedelta(dauer - 1))):
      390. self.EreignisseJahr.append([jahr, mon, tag, level, dauer, name, show_future, text])
      391. def Ereignis_Ostern(self, name, diffTage, show_future, level, text):
      392. dauer = len(text) - 1
      393. if dauer < 1:
      394. return
      395. jahr, mon, tag = self.calcEaster(self.aktJahr, diffTage)
      396. if self.heute > (date(jahr, mon, tag) + timedelta(dauer - 1)):
      397. jahr, mon, tag = self.calcEaster(self.aktJahr + 1, diffTage)
      398. if (self.Auswahl <> "Alle") or show_future or (self.heute >= date(jahr, mon, tag)) and (self.heute <= (date(jahr, mon, tag) + timedelta(dauer - 1))):
      399. self.EreignisseJahr.append([jahr, mon, tag, level, dauer, name, show_future, text])
      400. def Ereignis_Advent(self, name, diffTage, show_future, level, text):
      401. dauer = 0
      402. if len(text) > 1:
      403. dauer = len(text) - 1
      404. jahr, mon, tag, new_dauer, text2 = self.calcAdvent(self.aktJahr, diffTage, dauer)
      405. if self.heute > (date(jahr, mon, tag) + timedelta(new_dauer - 1)):
      406. jahr, mon, tag, new_dauer, text2 = self.calcAdvent(self.aktJahr + 1, diffTage, dauer)
      407. dauer = new_dauer
      408. if dauer < 1:
      409. return
      410. if len(text2) > 1:
      411. text = text2
      412. del text2
      413. if (self.Auswahl <> "Alle") or show_future or (self.heute >= date(jahr, mon, tag)) and (self.heute <= (date(jahr, mon, tag) + timedelta(dauer - 1))):
      414. self.EreignisseJahr.append([jahr, mon, tag, level, dauer, name, show_future, text])
      415. def calcEaster(self, jahr, diffTage = 0):
      416. vb = jahr % 19
      417. vc = int(jahr / 100)
      418. vd = jahr % 100
      419. ve = int(vc / 4)
      420. vf = vc % 4
      421. vg = int((vc + 8) / 15)
      422. vh = int((vc - vg + 1) / 3)
      423. vi = (vb *19 + vc - ve - vh + 15) % 30
      424. vj = int(vd / 4)
      425. vk = vd % 4
      426. vl = (32 + vf * 2 + vj * 2 - vi - vk) % 7
      427. vm = int((vb + vi * 11 + vl * 22) / 451)
      428. monat = int((vi + vl - vm * 7 + 114) / 31)
      429. tag = (vi + vl + vm * 7 + 114) % 31
      430. temp = date(jahr, monat, tag) + timedelta(diffTage + 1)
      431. return temp.year, temp.month, temp.day
      432. def calcAdvent(self, jahr, diffTage = 0, dauer_in = 0):
      433. monat = 12
      434. tag = 24
      435. vday = date(jahr, monat, tag).isoweekday() # monday = 1
      436. dauer_adv = 21 + vday % 7 + (vday == 7)
      437. anfang = date(jahr, monat, tag) - timedelta(dauer_adv - (vday == 7))
      438. if diffTage == 0 and dauer_in == 0:
      439. Ereignisbeschreibung = [["zum Advent", "Der Advent", "Advent"]]
      440. dauer = dauer_adv
      441. for x in range(1, dauer_adv + 1):
      442. if (x % 7) == 1:
      443. Ereignisbeschreibung.append("Heute ist der " + str(int(x / 7) + 1) + ". Adventsonntag")
      444. else:
      445. Ereignisbeschreibung.append("Wir sind in der " + str(int((x - 1) / 7) + 1) +". Adventwoche")
      446. else:
      447. Ereignisbeschreibung = ""
      448. dauer = dauer_in
      449. temp = anfang + timedelta(diffTage)
      450. return temp.year, temp.month, temp.day, dauer, Ereignisbeschreibung
      Alles anzeigen
      Dateien

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

    • :D

      Besonders nett ist ja "Heute ist Carfreitag".

      Wahrscheinlich ein Feiertag für alle, die ihren Wagen in einem Karport unterstellen.

      Gibt sogar eine Wikipedia-Seite darüber.
      Eventuelle Ratschläge gebe ich nach bestem Wissen und Gewissen aber ohne jede Gewähr. Bei Fragen fragen.
      Tipps:
      Screenshots erstellen VU+ Wiki

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

    • Wenn im Skin Alles verwendet wird:

      Bei EreignisseFestlegen:

      use = .... definiert, ob ein Ereignis verwendet wird

      show_future = ... definiert, ob angezeigt wird, wieviele Tage es noch bis zu diesem Ereignis sind, wenn aktuell kein anderes (aktives)
      Ereignis ist und dieses Ereignis das ist, das von allen (mit use selektierten) das nächste ist

      Also bei Neujahr show_future auf False setzen.
      Skin: Nemesis FHD (mit vielen eigenen Skinparts), MyEPG, EMC, OScam 1.20 rev.11682, ORF-Karte, MCC MovieCutCenter

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von WeFraJo ()