Bundesliga tabellen plugin (need help) !

    • Bundesliga tabellen plugin (need help) !

      hi,

      Ich versuche mich immer mehr mit python anzufreunden smile
      im bereich engima2 und gui habe ich meine probleme unglücklich
      evtl. kann mir einer von euch weiterhelfen..

      Ich bastel hier gerade ein kleines Bundesliga Tabellen plugin.

      [Blockierte Grafik: http://www7.pic-upload.de/24.04.11/lzy1i4i2iqg3.jpg]

      Python-Quellcode

      1. # -*- coding: utf-8 -*-
      2. from Screens.Screen import Screen
      3. from Components.ActionMap import ActionMap
      4. from Components.Label import Label
      5. from Components.Button import Button
      6. from Components.Sources.List import List
      7. from Components.MultiContent import MultiContentEntryText, MultiContentEntryPixmapAlphaTest
      8. from Plugins.Plugin import PluginDescriptor
      9. from Screens.Screen import Screen
      10. from enigma import eListboxPythonMultiContent, eListbox, gFont, RT_HALIGN_LEFT, RT_HALIGN_RIGHT, RT_HALIGN_CENTER
      11. import urllib, re, time
      12. class startDemoScreen(Screen):
      13. skin = """
      14. <screen position="center,center" size="600,450" title="%s" >
      15. <widget source="tab1" render="Listbox" scrollbarMode="showOnDemand" position="15,5" size="580,450" zPosition="3" transparent="1" backgroundColor="black" >
      16. <convert type="TemplatedMultiContent">
      17. { "templates":
      18. {"default": (20, [
      19. MultiContentEntryText(pos = (0, 0), size = (580, 20), font = 0, flags = RT_HALIGN_LEFT, text = 0, backcolor=0xFF000005, color=0xFF000006),
      20. ], False, "showNever"),
      21. "notselected": (20, [
      22. MultiContentEntryText(pos = (0, 0), size = (580, 20), font = 0, flags = RT_HALIGN_LEFT, text = 0, backcolor=0xFF000005, color=0xFF000006),
      23. ], True, "showNever")
      24. },
      25. "fonts": [gFont("Regular", 18)],
      26. "itemHeight": 20
      27. }
      28. </convert>
      29. </widget>
      30. <ePixmap name="red" position="5,400" zPosition="4" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
      31. <widget name="key_red" position="5,400" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
      32. <ePixmap name="green" position="150,400" zPosition="4" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
      33. <widget name="key_green" position="150,400" zPosition="5" size="140,40" valign="center" halign="center" font="Regular;21" transparent="1" foregroundColor="white" shadowColor="black" shadowOffset="-1,-1" />
      34. </screen>"""% _("Bundesliga Portal")
      35. def __init__(self, session, plugin_path):
      36. self.skin_path = plugin_path
      37. self.plugin_path = plugin_path
      38. Screen.__init__(self, session)
      39. self["actions"] = ActionMap(["SetupActions", "ColorActions"],
      40. {
      41. "green": self.settings,
      42. "cancel": self.close,
      43. }, -1)
      44. self.url = "http://fussballdaten.de/bundesliga/"
      45. self["key_green"] = Button(_("Start"))
      46. self["key_red"] = Button(_("Cancel"))
      47. self["tab1"] = List([])
      48. def settings(self):
      49. tab1 = []
      50. tab1.append(("", "", 0x80ffcc00, 0x000000))
      51. data = urllib.urlopen(self.url).read()
      52. platz = re.findall("<tr.*?<td class=.Platz.*?.>(.*?)</td>", data)
      53. lplatz = re.findall("<td class=.VPlatz.>(.*?)</td>", data)
      54. tendenz = re.findall("<td class=.Tendenz.>(.*?)</td>", data)
      55. logoverein = re.findall("<td class=.Verein.><span class=.Logo.><img alt=.*? src=./bilder/t-vereine/15x15/(.*?)...>", data)
      56. verein = re.findall("<td class=.Verein.><span class=.Logo.><img alt=.*?src=.*?></span><a href=.*?>(.*?)</a></td>", data)
      57. spiele = re.findall("<td class=.Spiele.>(.*?)</td>", data)
      58. siege = re.findall("<td class=.S.>(.*?)</td>", data)
      59. unen = re.findall("<td class=.U.>(.*?)</td>", data)
      60. nieder = re.findall("<td class=.N.>(.*?)</td>", data)
      61. torver = re.findall("<td class=.Torverhaeltnis.>(.*?)</td>", data)
      62. diff = re.findall("<td class=.Diff.>(.*?)</td>", data)
      63. punkte = re.findall("<td class=.Punkte.>(.*?)</td>", data)
      64. count = 0
      65. while (count < 18):
      66. tmp_platz = platz[count]
      67. tmp_lplatz = lplatz[count]
      68. tmp_vereinslogo = logoverein[count]
      69. tmp_vereinsname = verein[count]
      70. tmp_spiele = spiele[count]
      71. tmp_siege = siege[count]
      72. tmp_u = unen[count]
      73. tmp_n = nieder[count]
      74. tmp_torv = torver[count]
      75. tmp_diff = diff[count]
      76. tmp_punkte = punkte[count]
      77. tmp = tmp_platz + " " + tmp_lplatz + " " + tmp_vereinsname + " " + tmp_spiele + " " + tmp_siege + " " + tmp_u + " " + tmp_n + " " + tmp_torv + " " + tmp_diff + " " + tmp_punkte
      78. count = count + 1
      79. tab1.append((tmp , 0x80615e5e) )
      80. self["tab1"].setList(tab1)
      81. def main(session, **kwargs):
      82. session.open(startDemoScreen, plugin_path)
      83. def Plugins(path,**kwargs):
      84. global plugin_path
      85. plugin_path = path
      86. return [
      87. PluginDescriptor(name="Bundesliga Portal",description="Bundesliga", where = [ PluginDescriptor.WHERE_PLUGINMENU ], fnc = main),
      88. PluginDescriptor(name="Bundesliga Portal", where = PluginDescriptor.WHERE_EXTENSIONSMENU, fnc=main)
      89. ]
      Alles anzeigen


      in der variable "tmp_vereinslogo" steht der filename vom gif z.b "3026.gif"

      die vereinlogos wollte ich nun vor jedem verein darstellen.
      die logos liegen alle im script ordner /logos/..

      desweiteren wollte ich das alles noch etwas sauberer darstellen wenn dazu evtl. noch jemand eine idee hat. Augenzwinkern

      so:
      1. (1.) Borussia Dortmund 31 21 6 4 62:19 +43 69
      2. (2.) Bayer Leverkusen 31 19 7 5 62:41 +21 64
      Du brauchst hilfe ?? !!
      JOIN unseren irc channel #newnigma2 @ irc0.brn.ch.swissirc.net

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

    • als graphik empfiehlt sich ein png zu verwenden und dann eine eListboxPythonMultiContent zu verwenden.

      im lancontrol2 hab ich z.b. eine solche in verwendung:

      Python-Quellcode

      1. class LanControlServerList(MenuList):
      2. def __init__(self, list):
      3. MenuList.__init__(self, list, False, eListboxPythonMultiContent)
      4. self.l.setFont(0, gFont("Regular", 18))
      5. self.l.setItemHeight(20)
      6. def LanControlServerListEntry(ipaddress, macaddress, status="yellow"):
      7. res = [ (ipaddress, macaddress, status) ]
      8. png = "/usr/share/enigma2/skin_default/buttons/button_%s.png" %(status)
      9. if fileExists(png):
      10. res.append(MultiContentEntryPixmapAlphaTest(pos=(2, 2), size=(20, 20), png=loadPNG(png)))
      11. res.append(MultiContentEntryText(pos=(20, 0), size=(240, 20), font=0, text=ipaddress))
      12. res.append(MultiContentEntryText(pos=(260, 0), size=(240, 20), font=0, text=macaddress, flags=RT_HALIGN_RIGHT))
      13. return res
      Alles anzeigen


      dadurch kannst du auch die formatierung steuern.

      du könntest auch mittels %*s den string immer gleich lang machen. wird dir aber bei den meisten schriftarten nichts bringen.
      Gruss
      Dre

      Boxen: diverse
      Developer Project Merlin
    • DANKE :)

      kannst du mir evtl. ein bsp.für mein plugin machen.. ich habe wirklich große schwierigkeiten mit der gui :(

      ein script zu bauen bekomme ich hin nur mich hindert überall die gui :(
      Du brauchst hilfe ?? !!
      JOIN unseren irc channel #newnigma2 @ irc0.brn.ch.swissirc.net

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

    • zack
      Dateien
      • plugin.rar

        (1,75 kB, 287 mal heruntergeladen, zuletzt: )
      Du brauchst hilfe ?? !!
      JOIN unseren irc channel #newnigma2 @ irc0.brn.ch.swissirc.net

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

    • zack und nochh später :)
      Dateien
      • plugin.rar

        (1,92 kB, 263 mal heruntergeladen, zuletzt: )
      • vlogos.rar

        (9,81 kB, 552 mal heruntergeladen, zuletzt: )
      Du brauchst hilfe ?? !!
      JOIN unseren irc channel #newnigma2 @ irc0.brn.ch.swissirc.net

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

    • ich würde das ganz so lösen wie im anhang. ein paar logos werden noch nicht dargestellt. zudem muss die darstellung noch ein bisschen angepasst werden.

      es empfiehlt sich übrigens keine imports zu machen, die nur in einem bestimmten image funktionieren.
      Dateien
      • buli.rar

        (11,9 kB, 582 mal heruntergeladen, zuletzt: )
      Gruss
      Dre

      Boxen: diverse
      Developer Project Merlin