Ankündigung

Einklappen
Keine Ankündigung bisher.

Bundesliga Visu-Seite (Spielpaarungen) mit Smarthome-Logik

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Bundesliga Visu-Seite (Spielpaarungen) mit Smarthome-Logik

    Zwar knapp vor aber noch pünktlich zum Start der Bundesliga: Eine kleine Visu-Seite
    (...die eigentlich keiner braucht und den WAF vermutlich unbeeindruckt läßt...)

    Die Spielpaarungen inkl. Ergebnisse des jeweils aktuellen Spieltags (Bild s.u.),
    eingebunden auf die eigene Visu-Seite.

    So kann man es machen:

    1. Visu-Seite in Form einer Tabelle (Auschnitt der ersten beiden Spiele)
    Code:
    ...
    <table width=100%>
       <tr>
           <td align=right width=21%>
               {{ basic.value('Spiel_11', 'Bundesliga.Spieltag.Spiel1_Verein1', '', '') }}
           </td>
           <td align=center width=4%>
               -
           </td>
           <td align=left width=21%>
               {{ basic.value('Spiel_12', 'Bundesliga.Spieltag.Spiel1_Verein2', '', '') }}
           </td>
           <td align=center width=8%>
               {{ basic.value('Spiel_13', 'Bundesliga.Spieltag.Spiel1_Ergebnis', '', '') }}
           </td>
           <td align=center>
               &nbsp;
           </td>
       </tr>
       <tr>
           <td align=right>
               {{ basic.value('Spiel_21', 'Bundesliga.Spieltag.Spiel2_Verein1', '', '') }}
           </td>
           <td align=center>
               -
           </td>
           <td align=left>
               {{ basic.value('Spiel_22', 'Bundesliga.Spieltag.Spiel2_Verein2', '', '') }}
           </td>
           <td align=center>
               {{ basic.value('Spiel_23', 'Bundesliga.Spieltag.Spiel2_Ergebnis', '', '') }}
           </td>
           <td align=center>
               &nbsp;
           </td>
       </tr>
    ...
     </table>   
    ...
    2. Die Items (auch hier nur die Items der ersten beiden Spiele)
    Code:
    [Bundesliga]
       name = Bundesliga
       [[Spieltag]]
         name = Spieltag
         [[[Spiel1_Verein1]]]
            type = str
            visu = yes
         [[[Spiel1_Verein2]]]
            type = str
            visu = yes
         [[[Spiel1_Ergebnis]]]
            type = str
            visu = yes
         [[[Spiel2_Verein1]]]
            type = str
            visu = yes
         [[[Spiel2_Verein2]]]
            type = str
            visu = yes
         [[[Spiel2_Ergebnis]]]
            type = str
            visu = yes
    ...
    3. Die Logik (auch hier nur die ersten beiden Spielpaarungen)
    Code:
    #!/usr/bin/env python
    # coding: utf8
    #
    # ------------------------------------------------
    # Python-Script für das Auslesen der DFB-Homepage:
    # 1. Bundesliga: Spielpaarungen aktueller Spieltag
    # ------------------------------------------------
    #
    from BeautifulSoup import BeautifulSoup
    #
    # (1) Homepage definieren und einlesen
    # ------------------------------------
    page = sh.tools.fetch_url('http://www.dfb.de/index.php?id=511699')
    soup = BeautifulSoup(page)
    #
    # (2) Vereine mit Tag erkennen:  width="30%"
    # ------------------------------------------
    vereine=soup.findAll(width="30%")
    #
    # (3) Vereinsnamen auslesen
    # -------------------------
    B_Spiel1_Verein1 = vereine[0].renderContents()
    B_Spiel1_Verein2 = vereine[1].renderContents()
    #
    B_Spiel2_Verein1 = vereine[2].renderContents()
    B_Spiel2_Verein2 = vereine[3].renderContents()
    
    ...
    
    #
    # (4) Spielergebnisse mit Tag erkennen:  nowrap="nowrap"
    # ------------------------------------------------------
    ergebnisse=soup.findAll(nowrap="nowrap")
    #
    # (5) Spielergebnis auslesen
    # --------------------------
    B_Spiel1_Ergebnis = ergebnisse[0].renderContents().split(';')[1]
    B_Spiel2_Ergebnis = ergebnisse[1].renderContents().split(';')[1]
    
    ...
    
    #
    # Ausgabe auf items
    # -----------------
    # Spiel 1
    sh.Bundesliga.Spieltag.Spiel1_Verein1(B_Spiel1_Verein1.decode('utf-8'))
    sh.Bundesliga.Spieltag.Spiel1_Verein2(B_Spiel1_Verein2.decode('utf-8'))
    sh.Bundesliga.Spieltag.Spiel1_Ergebnis(B_Spiel1_Ergebnis)
    # Spiel 2
    sh.Bundesliga.Spieltag.Spiel2_Verein1(B_Spiel2_Verein1.decode('utf-8'))
    sh.Bundesliga.Spieltag.Spiel2_Verein2(B_Spiel2_Verein2.decode('utf-8'))
    sh.Bundesliga.Spieltag.Spiel2_Ergebnis(B_Spiel2_Ergebnis)
    
    ...
    4. Logik triggern (z.B. beim Aufruf der Visu-Seite; s. Thema "Wert eines Items ändern, durch einen Seitenaufruf" ;-) )

    5. Was fehlt: Die aktuelle Tabelle (habe ich selbst noch nicht)

    6. Viel Spaß damit
    Angehängte Dateien

    #2
    +1 für die Idee

    Gruss
    Join smartVISU on facebook. Web: smartvisu.de.
    Dir gefällt smartVISU? Bitte spenden für die Weiterentwicklung.

    Kommentar


      #3
      Habe gerade gesehen, dass mit der Logik nur das Halbzeitergebnis geliefert wird. Da muss ich wohl noch nachbessern ...

      Hier nun der Vorschlag für die Logikanpassung, wieder nur für die ersten beiden Spiele (Auslesen der Spielergebnisse):
      Code:
      # (5) Spielergebnis auslesen
      # --------------------------
      B_Spiel1_Ergebnis = ergebnisse[0].renderContents().split('&nbsp;')[0]
      if (B_Spiel1_Ergebnis == '') :
          B_Spiel1_Ergebnis = '-:-'
      #
      B_Spiel2_Ergebnis = ergebnisse[1].renderContents().split('&nbsp;')[0]
      if (B_Spiel2_Ergebnis == '') :
          B_Spiel2_Ergebnis = '-:-'

      Kommentar

      Lädt...
      X