AnGelBot-Portal²

Normale Version: Frage zu tv Script
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen

Ich bin neu hier,und zuerst mal ein kompliment: Super Bot den ihr da gebastelt habt Smile

So jetzt aber zu meiner Frage und zwar beim TV Script hab ich das Problem dass ich auf ein Deutsches Fernsehprogramm zugreife, da ich aber Schweizer bin möchte ich auf eine schweizer Seite zugreifen (z.B. Tele.ch) nur hab ich keine Ahnung welche Zeilen ich wie ändern muss :(
Ich hoffe ihr könnt mir da weiterhelfen...
Danke im vorraus!!

gruss
Nicolai

PS: falls es euch etwas nützt hier ist der Code:

Code:
''''''''''''''''''''''''''''''''''''''''''''''
'' TVProgramm 1.0d                          ''
''''''''''''''''''''''''''''''''''''''''''''''
'' Version 1.0d                             ''
'' (C) 2001 Benedikt "SailorCM" Hübschen    ''
'' (C) 2001 [cInYx]                ''
'' (C) 2002 Sp33d                        ''
''                                          ''
''''''''''''''''''''''''''''''''''''''''''''''

Dim Sender, ServerContent, ToChannel, ToNick, Sent, LineToSend
Dim Uhrzeit, WhatDoYouWant, Term, FloodCounter, LastRequest, FloodTriggered
Dim FloodCounter2, LastRequest2, FloodTriggered2

Sub init()
  Script "TVProgramm 1.0d by Sp33d"
  Hook "Chan_Msg"
  SpreadFlagMessage 0, "+m", "3*** TVProgramm 1.0d by Sp33d running..."
End Sub

Sub Chan_msg(Chan, Nick, RegUser, Line)
  If LCase(Param(Line, 1)) = "!tv" Then
    If Param(Line, 2) = "" or LCase(Param(Line, 2)) = "help" Then
      SendLine "PRIVMSG " & Chan & " :" & Nick & ": Benutzung: !tv <sender> <stunde>", 3
      SendLine "PRIVMSG " & Chan & " :" & Nick & ": Ausgabe: Sender: Uhrzeit - Programmname (ShowView)", 3
    Else
      If Param(Line, 3) = "" Then
        WhatDoYouWant = "TVCOMPLETE"
        Sender = GetSender(LCase(Param(Line, 2)))  
    
        If Sender = "abort" Then
          SendLine "PRIVMSG " & Chan & " :" & Nick & ": Ungültiger Sender" , 3
          Exit Sub
        End If

    If FloodTriggered Then Exit Sub
    If LastRequest = Nick Then
      Sendline "NOTICE " & Nick & " :Sry, just posted results. Retry in some minutes...", 3
      Exit Sub
        End If
        LastRequest = Nick
        FloodCounter = FloodCounter + 1
        If FloodCounter > 4 Then
          FloodTriggered = True
          Sendline "PRIVMSG " & Nick & " :Floodprotection engaged. Retry in some minutes...", 3
          TimedCommand "FloodTriggered = False", 120
          TimedCommand "CheckFlood", 120
          Exit Sub
        End if
        TimedCommand "ResetLastRequest", 180
            
        Uhrzeit = Hour(Now)
        Sender = RPL(Sender)
        ToNick = Nick
        ToChannel = Chan

        If Hour(Now) > CInt(Uhrzeit) Then
          Tag = 1
        Else
          Tag = 0
        End If

        LineToSend = "GET /tv/programm/programm.php?ztag=" & Tag & "&sparte=alle&uhrzeit=Ax" & Uhrzeit & "&sender=" & Sender & " HTTP/1.0"& vbCrLf & "Host: www.tvtoday.de" & vbCrLf & "Connection: keep-alive" & vbCrLf & vbCrLf
        TheSock = SockConnect("www.tvtoday.de", 80, "SockEvent")
        If TheSock = 0 Then
          SendLine "PRIVMSG " & Chan & " :Fehler: Verbindung fehlgeschlagen.", 3
        End If
      Else
        Uhrzeit = Param(Line, 3)
  
        If IsNumeric(Uhrzeit) Then
          If Len(Uhrzeit) = 1 Then Uhrzeit = "0" & Uhrzeit
          If Uhrzeit < 0 Or Uhrzeit > 23 Then
            SendLine "PRIVMSG " & Chan & " :" & Nick & ": Mögliche Uhrzeiten: 0 bis 23", 3
            Exit Sub
          End If
        Else
          SendLine "PRIVMSG " & Chan & " :" & Nick & ": Mögliche Uhrzeiten: 0 bis 23", 3
          Exit Sub
        End If
  
        WhatDoYouWant = "TV"
        Sender = GetSender(LCase(Param(Line, 2)))  
    
        If Sender = "abort" Then
          SendLine "PRIVMSG " & Chan & " :" & Nick & ": Ungültiger Sender" , 3
          Exit Sub
        End If

    If FloodTriggered Then Exit Sub
    If LastRequest = Nick Then
      Sendline "NOTICE " & Nick & " :Sry, just posted results. Retry in some minutes...", 3
      Exit Sub
    End If
    LastRequest = Nick
    FloodCounter = FloodCounter + 1
    If FloodCounter > 4 Then
      FloodTriggered = True
      Sendline "PRIVMSG " & Nick & " :Floodprotection engaged. Retry in some minutes...", 3
      TimedCommand "FloodTriggered = False", 120
      TimedCommand "CheckFlood", 120
      Exit Sub
    End if
    TimedCommand "ResetLastRequest", 180
            
        Sender = RPL(Sender)
        ToNick = Nick
        ToChannel = Chan

        LineToSend = "GET /tv/programm/programm.php?ztag=0&sparte=alle&uhrzeit=Ax" & Uhrzeit & "&sender=" & Sender & " HTTP/1.0"& vbCrLf & "Host: www.tvtoday.de" & vbCrLf & "Connection: keep-alive" & vbCrLf & vbCrLf
        TheSock = SockConnect("www.tvtoday.de", 80, "SockEvent")
        If TheSock = 0 Then
          SendLine "PRIVMSG " & Chan & " :Fehler: Verbindung fehlgeschlagen.", 3
        End If
      End If
    End If
  ElseIf LCase(Param(Line, 1)) = "!tvsearch" Then
    If Param(Line, 2) = "" or LCase(Param(Line, 2)) = "help" Then
      SendLine "PRIVMSG " & Chan & " :" & Nick & ": Benutzung: !tvsearch <sendung>", 3
      SendLine "PRIVMSG " & Chan & " :" & Nick & ": Ausgabe: [Datum] Uhrzeit - Programmname (ShowView)", 3
    Else
      If Len(Param(Line, 2)) <= 2 Or Len(Param(Line, 2)) > 15 Then
        SendLine "PRIVMSG " & Chan & " :" & Nick & ": Och so mindestens 3 Zeichen dürfens doch sein,...aber man sollte es nicht übertreiben ;)", 3
        Exit Sub
      End If
      If Param(Line, 3) <> "" Then
        If LCase(Param(Line, 3)) = "hs" Then
          Sender = "HS"
        ElseIf Instr(1, LCase(Param(Line, 3)), "all") > 0 Then
          Sender = "ALLE"
        Else
          Sender = GetSender(Param(Line, 3))
          If Sender = "abort" Then
            SendLine "PRIVMSG " & Chan & " :" & Nick & ": Ungültiger Sender. Siehe !tvsearch help", 3
          End If
        End If
      Else
        Sender = "ALLE"
      End If

      If FloodTriggered2 Then Exit Sub
      If LastRequest2 = Nick Then
        Sendline "NOTICE " & Nick & " :Sry, just posted results. Retry in some minutes...", 3
        Exit Sub
      End If
      LastRequest2 = Nick
      FloodCounter2 = FloodCounter2 + 1
      If FloodCounter2 > 4 Then
        FloodTriggered2 = True
        Sendline "PRIVMSG " & Nick & " :Floodprotection engaged. Retry in some minutes...", 3
        TimedCommand "FloodTriggered2 = False", 120
        TimedCommand "CheckFlood", 120
        Exit Sub
      End If
      TimedCommand "ResetLastRequest", 180
    
      ToNick = Nick
      ToChannel = Chan
      
      WhatDoYouWant = "TVSEARCH"
      Term = RPL(UCase(Param(Line,2)))
      
      LineToSend = "GET /tv/programm/programm.php?ztag=0&uhrzeit=jetzt&sparte=alle&suchbegriff=" & Term & " HTTP/1.0"& vbCrLf & "Host: www.tvtoday.de" & vbCrLf & "Connection: keep-alive" & vbCrLf & vbCrLf
      
      TheSock = SockConnect("www.tvtoday.de", 80, "SockEvent")
      If TheSock = 0 Then
        SendLine "PRIVMSG " & Chan & " :" & Nick & ": Verbindung fehlgeschlagen.", 3
      End If
    End If
  End If
End Sub

Sub SockEvent(vsock, SEvent, SData)
  Select Case SEvent
    Case SE_ConnectFailed
      SendLine "PRIVMSG " & Chan & " :" & Nick & ": Verbindung fehlgeschlagen.", 3
    Case SE_Connected
      ServerContent = ""
      SockWrite vsock, LineToSend
    Case SE_Read
      ServerContent = ServerContent & SData
    Case SE_Closed
      If InStr(ServerContent, "P R O G R A M M") Then
        Sent   = False
    
        Dummy  = "<td valign=" & Chr(34) & "top" & Chr(34) & " bgcolor=" & Chr(34) & "#a8a8a8" & Chr(34) & ">"  
        Result = Right(ServerContent, Len(ServerContent) - Instr(1, ServerContent, Dummy) + 1)
        GoOn   = True
        i = 0
        
        Prog_Entry = Split(Result, Dummy)
      Else
        SendLine "PRIVMSG " & ToChannel & " :" & ToNick & ": Daten vom Server entsprachen nicht den Erwartungen...", 3
        Exit Sub
      End If
      
      If WhatDoYouWant = "TV" Then
        For i = 1 To UBound(Prog_Entry)
          Dummy  = "<span class=" & Chr(34) & "text-grau" & Chr(34) & ">"  
    
          Result = Right(Prog_Entry(i), Len(Prog_Entry(i)) - Instr(1, Prog_Entry(i), Dummy)  - Len(Dummy) + 1)
    
          If Left(Result, 2) = Uhrzeit Then
            res_Uhrzeit = Left(Result, 5) & " Uhr"
            Result = Replace(Result, "<td valign=" & Chr(34) & "middle" & Chr(34) & " width=" & Chr(34) & "476" & Chr(34) & "><span class=" & Chr(34) & "headline" & Chr(34) & ">","")
        
            If Instr(1, Result, "<a") > 0 Then
              Dummy = "<span class=" & Chr(34) & "link-intern" & Chr(34) & "><u>"
              Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - Len(Dummy) + 1)
    
              Dummy = "</u></span>"
              res_Programmname = Left(Result, Instr(1, Result, Dummy) - 2) & " - "
            Else
              Dummy = "<span class=" & Chr(34) & "headline" & Chr(34) & ">"
              Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - Len(Dummy) + 1)
    
              Dummy = "</span></span>"
              res_Programmname = Left(Result, Instr(1, Result, Dummy) - 2) & " - "
            End If
    
            Result = Right(Result, Len(Result) - Instr(1, Result," ShowView ")  - Len(" ShowView ") + 1)
    
            Dummy = "<br></span>"
            res_ShowView = Left(Result, Instr(1, Result, Dummy) - 1)
          
            SendLine "PRIVMSG " & ToChannel & " :" & ReRPL(Sender) & ": " & res_Uhrzeit & " - " & res_Programmname & res_Showview & ")", 3
          Else
              If i = 1 Then SendLine "PRIVMSG " & ToChannel & " :" & ReRPL(Sender) & ": Um " & Uhrzeit & " Uhr laufen auf " & reRPL(Sender) & " keine Sendungen...", 3
              'Exit For
      End If
    Next
      ElseIf WhatDoYouWant = "TVSEARCH" Then
        On Error Resume Next
        For i = 1 To UBound(Prog_Entry)
          Dummy  = "<span class=" & Chr(34) & "text-grau" & Chr(34) & ">"  

          Result = Right(Prog_Entry(i), Len(Prog_Entry(i)) - Instr(1, Prog_Entry(i), Dummy)  - Len(Dummy) +1)          
          
          If IsNumeric(Left(Result, 2)) Then
            res_Date = Left(Result, 8)
            Result = Right(Result, Len(Result) - 12)
          
            res_Uhrzeit = Left(Result, 5) & " Uhr"
            'Result = Replace(Result, "<td valign=" & Chr(34) & "middle" & Chr(34) & " width=" & Chr(34) & "476" & Chr(34) & "><span class=" & Chr(34) & "headline" & Chr(34) & ">","")
       
            If Instr(1, Result, "link-intern") > 0 Then        
              Dummy = "<span class=" & Chr(34) & "link-intern" & Chr(34) & "><u>"
              Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - Len(Dummy) + 1)

              Dummy = "</u><br>"
              res_Programmname = Left(Result, Instr(1, Result, Dummy) - Len(Dummy) + 6) & " - "            
            Else
              Dummy = "<span class=" & Chr(34) & "headline" & Chr(34) & ">"
              Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - 2*Len(Dummy) + 1)
    
              Dummy = "</span></span>"
              res_Programmname = Left(Result, Instr(1, Result, Dummy) - 6) & " - "
            End If
    
            Result = Right(Result, Len(Result) - Instr(1, Result,">ShowView ")  - Len(">ShowView ") + 1)
    
            Dummy = "<br></span>"
            res_ShowView = Left(Result, Instr(1, Result, Dummy) - 1)
          
            SendLine "PRIVMSG " & ToChannel & " :TVSearch: [" & res_Date & "] " & res_Uhrzeit & " - " & res_Programmname & res_Showview & ")", 3
          Else
              If i = 1 Then SendLine "PRIVMSG " & ToChannel & " :TVSearch: Konnte keine entsprechende Sendung finden", 3
              'Exit For
      End If
    Next
      ElseIf WhatDoYouWant = "TVCOMPLETE" Then
        On Error Resume Next
        For i = 1 To UBound(Prog_Entry)
          Dummy  = "<span class=" & Chr(34) & "text-grau" & Chr(34) & ">"  
    
          Result = Right(Prog_Entry(i), Len(Prog_Entry(i)) - Instr(1, Prog_Entry(i), Dummy)  - Len(Dummy) + 1)
    
          res_Uhrzeit = Left(Result, 5) & " Uhr"
          Result = Replace(Result, "<td valign=" & Chr(34) & "middle" & Chr(34) & " width=" & Chr(34) & "476" & Chr(34) & "><span class=" & Chr(34) & "headline" & Chr(34) & ">","")
        
          If Instr(1, Result, "<a") > 0 Then
            Dummy = "<span class=" & Chr(34) & "link-intern" & Chr(34) & "><u>"
            Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - Len(Dummy) + 1)

            Dummy = "</u></span>"
            res_Programmname = Left(Result, Instr(1, Result, Dummy) - 2) & " - "
          Else
            Dummy = "<span class=" & Chr(34) & "headline" & Chr(34) & ">"
            Result = Right(Result, Len(Result) - Instr(1, Result, Dummy) - Len(Dummy) + 1)
    
            Dummy = "</span></span>"
            res_Programmname = Left(Result, Instr(1, Result, Dummy) - 2) & " - "
          End If
    
          Result = Right(Result, Len(Result) - Instr(1, Result," ShowView ")  - Len(" ShowView ") + 1)
    
          Dummy = "<br></span>"
          res_ShowView = Left(Result, Instr(1, Result, Dummy) - 1)
          
          SendLine "PRIVMSG " & ToChannel & " :" & ReRPL(Sender) & ": " & res_Uhrzeit & " - " & res_Programmname & res_Showview & ")", 3
    Next        
      End If
      SockClose vsock
      ServerContent = ""
  End Select
End Sub

Function RPL(DAT)
  For i = 1 To Len(DAT)
    Select Case Mid(DAT, i, 1)
      Case "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "_", "-", ".", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0": F = F & Mid(DAT, i, 1)
      Case Else: F = F & "%" & Hex(Asc(Mid(DAT, i, 1)))
    End Select
  Next
  RPL = F
End Function

Function ReRPL(DAT)
  For i = 1 To Len(DAT)
    If Mid(DAT, i, 1) = "%" Then
      F = F & Chr(CInt("&H" & Mid(DAT, i + 1, 2)))
      i = i + 2
    Else
      F = F & Mid(DAT, i, 1)
    End If
  Next
  ReRPL = UCase(F)
End Function

Function GetSender(vSender)
  Select Case LCase(vSender)
    Case "rtl"
      vSender = "RTL"
    Case "vox"
      vSender = "VOX"
    Case "rtl-2", "rtl2"
      vSender = "RTL 2"
    Case "pro7", "p7", "pro.7"
      vSender = "Pro 7"
    Case "sat1", "sat.1"
      vSender = "SAT.1"
    Case "sw3", "swiii"
      vSender = "SW III"
    Case "viva2", "v2"
      vSender = "VIVA II"
    Case "kinderkanal", "kika"
      vSender = "KINDER KANAL"
    Case "ard"
      vSender = "ARD"
    Case "wdr"
      vSender = "WDR"
    Case "zdf"
      vSender = "ZDF"
    Case "k1", "kabel1"
      vSender = "KABEL 1"
    Case "srtl", "superrtl", "super-rtl"
      vSender = "S-RTL"
    Case "k1", "kabel1"
      vSender = "KABEL 1"
    Case "arte"
      vSender = "ARTE"
    Case "9live", "neunlive"
      vSender = "NEUNLIVE"
    Case "3sat"
      vSender = "3SAT"
    Case "ndr"
      vSender = "NDR"
    Case "west"
      vSender = "WEST"
    Case "bayern"
      vSender = "BAYERN"
    Case "mdr"
      vSender = "MDR"
    Case "hessen", "hr"
      vSender = "HESSEN"
    Case "tvb", "tvberlin", "tv-berlin"
      vSender = "TV BERLIN"
    Case "tvm", "tvmünchen", "tv-münchen"
      vSender = "MUNCHEN"
    Case "hh1"
      vSender = "HH1"
    Case "sfb1"
      vSender = "SFB1"
    Case "orb"
      vSender = "ORB"
    Case "fab"
      vSender = "FAB"
    Case "ok-berlin", "okb", "ok-berl"
      vSender = "OK-BERL"
    Case "franken"
      vSender = "FRANKEN"
    Case "mtv"
      vSender = "MTV"
    Case "mtv2", "mtv-2"
      vSender = "MTV2"
    Case "vivaplus", "viva-plus", "vp"
      vSender = "VIVAPLUS"
    Case "premiere"
      vSender = "PREMIERE"
    Case "dsf"
      vSender = "DSF"
    Case "eurosport", "e-sport"
      vSender = "E-SPORT"
    Case "ntv", "n-tv", "news-tv"
      vSender = "N-TV"
    Case "euronews", "e-news"
      vSender = "E-NEWS"
    Case "phoenix"
      vSender = "PHOENIX"
    Case "cnn"
      vSender = "CNN"
    Case "nbc"
      vSender = "NBC"
    Case "tnt"
      vSender = "TNT"
    Case "cartoon", "cartoon-network"
      vSender = "CARTOON"
    Case "france2", "france-2", "f2", "fr2"
      vSender = "FRANCE 2"
    Case "fr3", "france3", "france-3", "f3"
      vSender = "FR3"
    Case "tv5", "tv-5"
      vSender = "TV5"
    Case "tf1", "tf1.fr"
      vSender = "TF1"
    Case "orf1", "orf-1"
      vSender = "ORF1"
    Case "orf2", "orf-2"
      vSender = "orf2"
    Case "tsr"
      vSender = "TSR"
    Case "dk1", "dk-1"
      vSender = "DK1"
    Case "dk2", "dk-2"
      vSender = "DK2"
    Case "sf1", "sf-1"
      vSender = "SF1"
    Case "nl1", "nl-1"
      vSender = "NL1"
    Case "nl2", "nl-2"
      vSender = "NL2"
    Case "nl3", "nl-3"
      vSender = "NL3"
    Case "trt"
      vSender = "TRT"
    Case "tsi1", "tsi-1"
      vSender = "TSI1"
    Case Else
      vSender = "abort"
  End Select
  GetSender = vSender
End Function

Sub ResetLastRequest
  LastRequest = ""
  LastRequest2 = ""
End Sub

Sub CheckFlood
  If FloodCounter > 0 Then FloodCounter = FloodCounter - 1
  If FloodCounter2 > 0 Then FloodCounter2 = FloodCounter2 - 1
  TimedCommand "CheckFlood", 120
End Sub
Referenz-URLs