- Topic, Werbung und Stream-Command(!stream) kann indivudell angepasst werden (Mit Color etc)
Im MainChannel wird das Topic gechanged im AusgabeChannel nicht.
!stream; !listener; !listen/!listen.pls; !peak; !wunsch/!wish; !gruss/!gruß; !homepage/!hp; !song; !playlist
So nun aber zum Script...
Code:
'+-------------------------------------+
'¦ Radio-Stream-Script 1.0 © by sts
'¦
'¦ Don`t change the author!
'¦
'¦ Website : www.angelbot.dyndns.org
'¦-------------------------------------+
'¦ PartyLine Setup ------------[x]
'¦ Anlegung einer INI-Datei ---[x]
'¦ Channeleinstellungen ------ [x]
'¦-------------------------------------+
'##############Einstellungen##################
Const INI = "radio.ini"
Const DebugIt = False
'###############Don't Change!!################
Const Version = "Radio-Stream-Script 1.0 © by sts"
Const ScriptName = "Radio-Stream-Script 1.0 © by sts"
Dim LastNews, Recieved, tmp_Listener, tmp_Song, tmp_Peak
Sub Init()
Script "7 " & ScriptName
Hook "Commands"
Hook "Nick"
Hook "Chan_Msg"
AddCommand "radio", Cl_Mas, "+m", "2*** .radio##14Zeigt das " & ScriptName & " Setup"
SpreadFlagMessage 0, "+m", "7 " & ScriptName & " loaded"
GetNews
aTime = ReadINIString("Advertisment", "Time", "300", INI)
TimedCommand "Advertisment", aTime
End Sub
Sub Commands(vSock, RegUser, Flags, Line)
If LCase(Param(Line, 1)) = ".radio" Then
GrabUser vSock, "" & ScriptName & " Setup", "Setup"
SetSockTag vSock, "MainMenu"
Setup vSock, RegUser, Flags, ""
End If
End Sub
Sub Setup(vSock, RegUser, Flags, Line)
If Param(Line, 1) = "0" Then
TU vsock, "10*** Saving settings..."
ReleaseUser vSock
Exit Sub
End If
Select Case LCase(Param(GetSockTag(vSock), 1))
Case "mainmenu"
TU vSock, " 4,1©4,14©4,15©4,0 sts 4,15©4,14©4,1© 1,1___||______________________________4,1©4,14©4,15©4,0sts4,15©4,14©4,1©"
TU vSock, " 4,1©4,14©4,15©4,0 sts 4,15©4,14©4,1© 0,1 " & ScriptName & " Setup 4,1©4,14©4,15©4,0sts4,15©4,14©4,1©"
TU vSock, " 4,1©4,14©4,15©4,0 sts 4,15©4,14©4,1© 1,1___||______________________________4,1©4,14©4,15©4,0sts4,15©4,14©4,1©"
TU vSock, " "
TU vSock, "Willkommen im Setup vom " & Version & "!"
TU vSock, "Du befindest dich im Hauptmenü."
TU vSock, " "
TU vSock, " - 1 um ins Channelsetup zu gelangen"
TU vSock, " - 2 um ins Streamsetup zu gelangen"
TU vSock, " - 3 um ins Topicsetup zu gelangen"
TU vSock, " - 4 um ins Layoutsetup zu gelangen"
TU vSock, " "
TU vSock, " - 0 um zurück auf die Partyline zu kommen."
SetSockTag vSock, "MainMenuOption"
Case "mainmenuoption"
Select Case LCase(Param(Line, 1))
Case "1"
SetSockTag vSock, "channel"
Setup vSock, RegUser, Flags, ""
Case "2"
SetSockTag vSock, "stream"
Setup vSock, RegUser, Flags, ""
Case "3"
SetSockTag vSock, "topic"
Setup vSock, RegUser, Flags, ""
Case "4"
SetSockTag vSock, "layout"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "channel"
TU vSock, " "
TU vSock, "Willkommen im Setup vom " & Version & "!"
TU vSock, "Du befindest dich im Channelsetup."
TU vSock, " "
TU vSock, "Um zurück ins Hauptmenü zu gelangen gebe 1 ein "
TU vSock, " "
TU vSock, "0,1Aktuelle Einstellungen:"
SetSockTag vSock, "ChannelMenuOption"
Main = ReadINIString("Channels", "Main", "", INI)
Intern = ReadINIString("Channels", "Intern", "", INI)
Ausgabe = ReadINIString("Channels", "Ausgabe", "", INI)
Dummy = Split(Main, " ")
For i = LBound(Dummy) To UBound(Dummy)
TU vSock, "14 - MainChannel/s: " & Dummy(i)
Next
TU vSock, "14 - Interner Channel: " & Intern
Dummy = Split(Ausgabe, " ")
For i = LBound(Dummy) To UBound(Dummy)
TU vSock, "14 - AusgabeChannel/s: " & Dummy(i)
Next
TU vSock, " "
TU vSock, "0,1Einstellungen - InternChannels:"
TU vSock, " - chan intern set <#channel> um den internen Channel zusetzten."
TU vSock, " "
TU vSock, "0,1Einstellungen - MainChannels:"
TU vSock, " - chan add main <#channel> um einen MainChannel der Liste hinzuzufügen"
TU vSock, " - chan del main <#channel> um einen MainChannel aus Liste zu löschen"
TU vSock, " "
TU vSock, "0,1Einstellungen - AusgabeChannels:"
TU vSock, " - chan add ausgabe <#channel> um einen AusgabeChannel der Liste hinzuzufügen"
TU vSock, " - chan del ausgabe <#channel> um einen AusgabeChannel aus Liste zu löschen"
Case "channelmenuoption"
Select Case LCase(Param(Line, 1))
Case "chan"
Select Case LCase(Param(Line, 2))
Case "add"
Select Case LCase(Param(Line, 3))
Case "main"
Channels = ReadINIString("Channels", "Main", "", INI)
Channels = Trim3(Channels & " " & Param(Line, 4))
WriteINIString "Channels", "Main", Channels, INI
TU vSock, "3*** Channel " & LCase(Param(Line, 4)) & " wurde als MainChannel hinzugefügt"
SetSockTag vSock, "channel"
Setup vSock, RegUser, Flags, ""
Case "ausgabe"
Channels = ReadINIString("Channels", "Ausgabe", "", INI)
Channels = Trim3(Channels & " " & Param(Line, 4))
WriteINIString "Channels", "Ausgabe", Channels, INI
TU vSock, "3*** Channel " & LCase(Param(Line, 4)) & " wurde als AusgabeChannel hinzugefügt"
SetSockTag vSock, "channel"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Syntax: chan add <main | ausgabe | trigger> <#channel>"
End Select
Case "del"
Select Case LCase(Param(Line, 3))
Case "main"
Channels = ReadINIString("Channels", "Main", "", INI)
Channels = Trim3(Replace(LCase(Channels), LCase(Param(Line, 4)), ""))
WriteINIString "Channels", "Main", Channels, INI
TU vSock, "3*** Channel " & LCase(Param(Line, 4)) & " wurde als MainChannel entfernt"
SetSockTag vSock, "channel"
Setup vSock, RegUser, Flags, ""
Case "ausgabe"
Channels = ReadINIString("Channels", "Ausgabe", "", INI)
Channels = Trim3(Replace(LCase(Channels), LCase(Param(Line, 4)), ""))
WriteINIString "Channels", "Ausgabe", Channels, INI
TU vSock, "3*** Channel " & LCase(Param(Line, 4)) & " wurde als AusgabeChannel entfernt"
SetSockTag vSock, "channel"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "intern"
If LCase(Param(Line,3)) = "set" Then
WriteINIString "Channels", "Intern", GetRest(Line,4), INI
TU vSock, "3*** Channel " & LCase(Param(Line, 4)) & " wurde als interner Channel gesetzt"
Else
TU vSock, "5*** Syntax: chan set intern <#channel>"
End If
End Select
Case "1"
SetSockTag vSock, "MainMenu"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "stream"
TU vSock, " "
TU vSock, "Willkommen im Setup vom " & Version & "!"
TU vSock, "Du befindest dich im Streamsetup."
TU vSock, " "
TU vSock, "Um zurück ins Hauptmenü zu gelangen gebe 1 ein "
TU vSock, " "
TU vSock, "0,1Aktuelle Einstellungen:"
TU vSock, " "
TU vSock, "Homepage: " & ReadINIString("Stream", "Homepage", "[Keine gesetzt]", INI)
TU vSock, "Stream-Name: " & ReadINIString("Stream", "Name", "[Keinen gesetzt]", INI)
TU vSock, "Listen.pls: " & ReadINIString("Stream", "Listen", "[Keine gesetzt]", INI)
TU vSock, "Streaminformationpage: " & ReadINIString("Stream", "Server", "[Keine gesetzt]", INI)
TU vSock, "Streamport: " & ReadINIString("Stream", "Port", "[Keinen gesetzt]", INI)
TU vSock, " "
TU vSock, "Songanzeige: " & ReadINIString("Setting", "Song", "[On]", INI)
TU vSock, "0,1Einstellungen - Streamdaten:"
TU vSock, " - set name um den Namen Deines Radios anzugeben"
TU vSock, " - set page um die Homepage zu deinem Radio anzugeben (komplette Adresse)"
TU vSock, " - set server um Server/Host zu den Streaminformationen anzugeben (ohne http://)"
TU vSock, " - set port um den Port anzugeben"
TU vSock, " - set listen um die Adresse zur Listen.pls anzugeben (komplette Adresse) anzugeben"
TU vSock, " - set informationpage um Informationspage anzugeben. (Streaminformationen: [nicht die komplette Adresse. z.B. index.html])"
TU vSock, " - set playlist um einen Link zur Playlist anzugeben"
TU vSock, " "
TU vSock, "0,1Einstellungen - Songanzeige"
TU vSock, "- song on damit der aktuelle Song in die Main/Ausgabechannels gepostet wird."
TU vSock, "- song off damit der Song nicht gepostet wird."
SetSockTag vSock, "StreamMenuOption"
Case "streammenuoption"
Select Case LCase(Param(Line, 1))
Case "set"
Select Case LCase(Param(Line, 2))
Case "name"
WriteINIString "Stream", "Name", GetRest(Line,3), INI
TU vSock, "3*** Radioname zu " & GetRest(Line,3) & " geändert"
Case "page"
WriteINIString "Stream", "HomePage", GetRest(Line,3), INI
TU vSock, "3*** Homepage des Radios zu " & GetRest(Line,3) & " geändert "
Case "port"
WriteINIString "Stream", "Port", GetRest(Line,3) , INI
TU vSock, "3*** Port geändert zu " & GetRest(Line,3)
Case "listen"
WriteINIString "Stream", "Listen", GetRest(Line,3) , INI
TU vSock, "3*** Listen.pls geändert zu " & GetRest(Line,3)
Case "server"
WriteINIString "Stream", "Server", GetRest(Line,3) , INI
TU vSock, "3*** Serveradresse geändert zu " & GetRest(Line,3)
Case "informationpage"
WriteINIString "Stream", "Page", GetRest(Line,3) , INI
TU vSock, "3*** Informationspage geändert zu " & GetRest(Line,3)
Case "playlist"
If Param(Line,3) = "" Then
WriteINIString "Stream", "Playlist", "[Keine Playlist angegeben]" , INI
Else
WriteINIString "Stream", "Playlist", GetRest(Line,3) , INI
End If
TU vSock, "3*** PlaylistLink geändert zu " & GetRest(Line,3)
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "song"
Select Case LCase(Param(Line, 2))
Case "on"
WriteINIString "Setting", "Song", "on", INI
TU vSock, "3*** Songanzeige: ON"
Case "off"
WriteINIString "Setting", "Song", "on", INI
TU vSock, "3*** Songanzeige: OFF"
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "1"
SetSockTag vSock, "MainMenu"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "topic"
TU vSock, " "
TU vSock, "Willkommen im Setup vom " & Version & "!"
TU vSock, "Du befindest dich im Topicsetup."
TU vSock, " "
TU vSock, "Um zurück ins Hauptmenü zu gelangen gebe 1 ein "
TU vSock, " "
TU vSock, "0,1Aktuelle Einstellungen:"
TU vSock, " "
TU vSock, "Topic Online: " & ReadINIString("Topic", "Online", "[Kein gesetzt]", INI)
TU vSock, "Topic Offline: " & ReadINIString("Topic", "Offline", "[Kein gesetzt]", INI)
TU vSock, " "
TU vSock, " "
TU vSock, "0,1Einstellungen - Topic:"
TU vSock, "- topic online setzt das Topic in den MainChannels wenn das Radio Online ist"
TU vSock, "- topic offline setzt das Topic in den MainChannels wenn das Radio Offline ist"
TU vSock, "- news <on/off> aktiviert oder deaktivert die News im Topic."
TU vSock, "- news set setzt die News für das Topic"
TU vSock, " "
TU vSock, "Verfügbare Variablen: "
TU vSock, " "
TU vSock, "##DJ## --> Für den aktuell gesetzten DJ "
TU vSock, "##SENDUNG## --> Für die aktuell gesetzte Sendung"
TU vSock, "##STREAM## --> Für die Listen.pls zum Radio"
TU vSock, "##HOMEPAGE## --> Für die Homepage des Radios"
TU vSock, "##NEWS## --> Für aktuelle News"
SetSockTag vSock, "TopicMenuOption"
Case "topicmenuoption"
Select Case LCase(Param(Line, 1))
Case "topic"
Select Case LCase(Param(Line, 2))
Case "online"
Status = ReadINIString("Topic", "Status", "on", INI)
If Status = "off" Then
If InStr(1, GetRest(Line,3), "##NEWS##") > 0 Then
TU vSock, "5*** Du verwendest die Variable ##NEWS##, aber du hast News im Topic nicht aktiviert. Bitte ändere ggf. die Einstellung oder entferne die Variable."
Else
WriteINIString "Topic", "Online", GetRest(Line,3), INI
TU vSock, "3*** Das OnlineTopic wurde geändert zu: " & GetRest(Line,3)
End If
Else
WriteINIString "Topic", "Online", GetRest(Line,3), INI
TU vSock, "3*** Das OnlineTopic wurde geändert zu: " & GetRest(Line,3)
End If
Case "offline"
Status = ReadINIString("Topic", "Status", "on", INI)
If Status = "off" Then
If InStr(1, GetRest(Line,3), "##NEWS##") > 0 Then
TU vSock, "5*** Du verwendest die Variable ##NEWS##, aber du hast News im Topic nicht aktiviert. Bitte ändere ggf. die Einstellung oder entferne die Variable."
Else
WriteINIString "Topic", "Offline", GetRest(Line,3), INI
TU vSock, "3*** Das OfflineTopic wurde geändert zu: " & GetRest(Line,3)
End If
Else
WriteINIString "Topic", "Offline", GetRest(Line,3), INI
TU vSock, "3*** Das OfflineTopic wurde geändert zu: " & GetRest(Line,3)
End If
Case "show"
If LCase(Param(Line,3)) = "online" Then
TU vSock, "3*** OnlineTopic: " & ReadINIString("Topic", "Online", "[Keins gesetzt]", INI)
ElseIf LCase(Param(Line,3)) = "offline" Then
TU vSock, "3*** OfflineTopic: " & ReadINIString("Topic", "Offline", "[Keins gesetzt]", INI)
End If
End Select
Case "news"
Select Case LCase(Param(Line, 2))
Case "on"
WriteINIString "Topic", "Status", "on", INI
TU vSock, "3*** Topicnews wurde aktiviert"
Case "off"
WriteINIString "Topic", "Status", "off", INI
TU vSock, "3*** Topicnews wurde deaktiviert"
Case "set"
If LCase(Param(Line,3)) = "news" Then
WriteINIString "Topic", "News", GetRest(Line,4), INI
TU vSock, "3*** Topicnews wgeändert zu: " & GetRest(Line,4)
Else
TU vSock, "5*** Ungültiger Befehl"
End If
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "1"
SetSockTag vSock, "MainMenu"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "layout"
TU vSock, " "
TU vSock, "Willkommen im Setup vom " & Version & "!"
TU vSock, "Du befindest dich im Advertisment- & Layoutsetup."
TU vSock, " "
TU vSock, "Um zurück ins Hauptmenü zu gelangen gebe 1 ein "
TU vSock, " "
TU vSock, "0,1Aktuelle Einstellungen:"
TU vSock, " "
TU vSock, "0,1Advertisment:"
TU vSock, "Online Message: " & ReadINIString("Advertisement", "Online", "[Keine gesetzt]", INI)
TU vSock, "Offline Message: " & ReadINIString("Advertisement", "Offline", "[Keine gesetzt]", INI)
TU vSock, "WerveTime: " & ReadINIString("Advertisement", "Time", "[Keine gesetzt]", INI)
TU vSock, "WerbeStatus: " & ReadINIString("Advertisement", "Status", "on", INI)
TU vSock, " "
TU vSock, " "
TU vSock, "0,1Einstellungen - Advertisement"
TU vSock, " - werbung online setzt die Werbung wärdend das Radion Online ist."
TU vSock, " - werbung offline setzt Werbung wärend das Radio Offline ist"
TU vSock, " - werbung time setzt den Zeitinterval für die Werbung (in s)"
TU vSock, " - werbung <on/off> aktiviert oder deaktiviert die Werbung."
TU vSock, " "
TU vSock, " "
TU vSock, "0,1Einstellungen - !Streamcommand:"
TU vSock, " - stream lines setzt die Anzahl der Zeilen."
TU vSock, " - stream line1 setzt die erste Zeile des Streamcommands"
TU vSock, " - stream line2 setzt die zweite Zeile des Streamcommands"
TU vSock, " - stream line3 setzt die dritte Zeile des Streamcommands"
TU vSock, " - stream line4 setzt die vierte Zeile des Streamcommands"
TU vSock, " - stream line5 setzt die fünfte Zeile des Streamcommands"
TU vSock, " "
TU vSock, "Verfügbare Variablen: "
TU vSock, " "
TU vSock, "##DJ## --> Für den aktuell gesetzten DJ "
TU vSock, "##SENDUNG## --> Für die aktuell gesetzte Sendung"
TU vSock, "##STREAM## --> Für die Listen.pls zum Radio"
TU vSock, "##HOMEPAGE## --> Für die Homepage des Radios"
TU vSock, "##SONG## --> Für den aktuellen Song"
TU vSock, "##LISTENER## --> Für die aktuelle Listener"
TU vSock, "##PEAK## --> Für den aktuellen Peak"
TU vSock, "##NEWS## --> Für aktuelle News"
SetSockTag vSock, "LayoutMenuOption"
Case "layoutmenuoption"
Select Case LCase(Param(Line, 1))
Case "werbung"
Select Case LCase(Param(Line, 2))
Case "online"
WriteINIString "Advertisement", "Online", GetRest(Line,3), INI
TU vSock, "3*** Der Werbetext im Onlinestatus wurde geändert zu: " & GetRest(Line,3)
Case "offline"
WriteINIString "Advertisement", "Offline", GetRest(Line,3), INI
TU vSock, "3*** Der Werbetext im Offlinestatus wurde geändert zu: " & GetRest(Line,3)
Case "time"
WriteINIString "Advertisement", "Time", GetRest(Line,3), INI
TU vSock, "3*** Das Zeitinterval für die Werbung wurde auf " & Getrest(Line,3) & " gesetzt"
Case "on"
TU vSock, "3*** Die Werbung wurde aktiviert"
WriteINIString "Advertisement", "Status", "on", INI
Case "off"
TU vSock, "3*** Die Werbung wurde deaktiviert"
WriteINIString "Advertisement", "Status", "off", INI
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
Case "stream"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
Select Case LCase(Param(Line, 2))
Case "lines"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Param(Line,3) > 5 Then
TU vSock, "5*** Es sind maximal 5 Zeilen möglich"
Else
WriteINIString "Stream_cmd", "Lines", Param(Line,3), INI
TU vSock, "3*** Zeilenanzahl geändert zu: " & GetRest(Line,3)
End If
Case "line1"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Lines = 1 Or Lines > 1 Then
WriteINIString "Stream_cmd", "Line1", GetRest(Line,3), INI
TU vSock, "3*** Zeile 1 geändert zu: " & GetRest(Line,3)
ElseIf Lines < 1 Then
TU vSock, "5***Zeilenanzahl auf " & Lines & " eingestellt. Bitte ändere ggf. die Einstellung."
End If
Case "line2"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Lines = 2 Or Lines > 2 Then
WriteINIString "Stream_cmd", "Line2", GetRest(Line,3), INI
TU vSock, "3*** Zeile 2 geändert zu: " & GetRest(Line,3)
ElseIf Lines < 2 Then
TU vSock, "5***Zeilenanzahl auf " & Lines & " eingestellt. Bitte ändere ggf. die Einstellung."
End If
Case "line3"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Lines = 3 Or Lines > 3 Then
WriteINIString "Stream_cmd", "Line3", GetRest(Line,3), INI
TU vSock, "3*** Zeile 3 geändert zu: " & GetRest(Line,3)
ElseIf Lines < 3 Then
TU vSock, "5***Zeilenanzahl auf " & Lines & " eingestellt. Bitte ändere ggf. die Einstellung."
End If
Case "line4"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Lines = 4 Or Lines > 4 Then
WriteINIString "Stream_cmd", "Line4", GetRest(Line,3), INI
TU vSock, "3*** Zeile 4 geändert zu: " & GetRest(Line,3)
ElseIf Lines < 4 Then
TU vSock, "5***Zeilenanzahl auf " & Lines & " eingestellt. Bitte ändere ggf. die Einstellung."
End If
Case "line5"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
If Lines = 5 Then
WriteINIString "Stream_cmd", "Line5", GetRest(Line,3), INI
TU vSock, "3*** Zeile 5 geändert zu: " & GetRest(Line,3)
ElseIf Lines < 5 Then
TU vSock, "5***Zeilenanzahl auf " & Lines & " eingestellt. Bitte ändere ggf. die Einstellung."
End If
End Select
Case "1"
SetSockTag vSock, "MainMenu"
Setup vSock, RegUser, Flags, ""
Case Else
TU vSock, "5*** Ungültiger Befehl"
End Select
End Select
End Sub
Sub Nick(Chan, OldNick, NewNick, RegUser, Flags, Count)
all = ReadINIString("Channels", "Main", "", INI) & " " & ReadINIString("Channels", "Ausgabe", "", INI) & " " & ReadINIString("Channels", "Intern", "", INI)
Status = ReadINIString("Setting", "Status", "0", INI)
DJ = ReadINIString("Setting", "DJ", "", INI)
If Status = 0 Then Exit Sub
If LCase(DJ) = LCase(OldNick) Then
Intern = ReadINIString("Channels", "Intern", "", INI)
Sendline "PrivMsg " & Intern & " : Nickänderung beim DJ: Neuer DJ-Nick: [" & NewNick & "]",3
End If
End SUb
Sub Chan_Msg(Chan, Nick, RegUser, Line)
Intern = ReadINIString("Channels", "Intern", "", INI)
If LCase(Chan) = LCase(Intern) Then
Intern = ReadINIString("Channels", "Intern", "", INI)
If LCase(Param(Line, 1)) = "!set" Then
If LCase(Param(Line,2)) = "dj" Then
If Param(Line, 3) = "" Then
WriteINIString "Setting", "DJ", Nick, INI
Sendline "PrivMsg " & Chan & " : Neuer DJ gsetzt: [" & ReadINIString( "Setting", "DJ", "Keiner", INI) & "]", 3
Else
WriteINIString "Setting", "DJ", Param(Line,3), INI
If Not Nick = Param(Line, 3) Then
Sendline "Notice " & Nick & " : Dein Nick stimmt nicht mit dem DJ-Nick überein. Beachte das dich nun keine Wünsche oder Grüße erreichen.",3
End If
End If
ElseIf LCase(Param(Line,2)) = "sendung" Then
If Param(Line,2) = "" Then
Sendline "Notice " & Nick & " : Bitte eine Namen der Sendung angeben",3
Else
WriteINIString "Setting", "Sendung", GetRest(Line,3), INI
Sendline "PrivMsg " & Chan & " : Neue Sendung gewählt: [" & ReadINIString("Setting", "Sendung", "Keine", INI) & "]",3
End If
End If
aTopic = ReadINIString("Topic", "Online", "", INI)
cTopic = ReadINIString("Topic", "Offline", "", INI)
ElseIf LCase(Param(Line,1)) = "!online" Then
WriteINIString "Setting", "Status", 1, INI
Sendline "PrivMsg " & Chan & " : Der Stream wurde [Online] gesetzt",3
NewTopic aTopic, 1
GetNews
ElseIf LCase(Param(Line,1)) = "!offline" Then
WriteINIString "Setting", "Status", 0, INI
GetNews
NewTopic cTopic, 2
Sendline "PrivMsg " & Chan & " : Der Stream wurde [Offline] gesetzt",3
ElseIf LCase(Param(Line,1)) = "!stream" Then
Dim Lines
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
For i = 1 to Lines
Sendline "PrivMsg " & Chan & " : " & ReadINIString("Stream_cmd", "Line" & i, "", INI),3
Next
End If
If LCase(Param(Line,1)) = "!countdown" Then
If Not Param(Line,2) = "" Then
If InStr(1, Param(Line,2), ":") > 0 Then
If Status = False Then
aTime = Split(Param(Line,2), ":")
Min = aTime(0)
Sec = aTime(1)
Gesamt = Min * 60 + Sec
SendLine "PrivMsg " & Chan & " : Start Countdown: " & Param(Line,2) & " Min (" & Gesamt & "s)",3
RemainingSec = Gesamt
Status = True
Countdown
Else
Sendline "Notice " & Nick & " : Der Countdown ist bereits aktiv. Um den Status zu überprüfen gebe '!countdown_end' ein",3
End If
Else
Sendline "Notice " & Nick & " : Bitte benutze folgendes Zeitformat <Minute:Sekunden> (Bsp. 3:45, 10:03)",3
End If
End If
End If
If LCase(Param(Line,1)) = "!countdown_end" Then
Status = False
Sendline "PrivMsg " & aChan & " : Countdown wurde vorzeitig beendet",3
Countdown
End If
If LCase(Param(Line,1)) = "!countdown_status" Then
If Status = True Then
Text = RemainingSec / 60
nTime = Split(Text, ",")
Mins = nTime(0)
Sec = "0," & nTime(1)
Sec = Sec * 60
Sendline "Notice " & Nick & " : Noch " & Mins & " Minute(n) und " & Round(Sec, 0) & " Sekunden",3
Else
Sendline "Notice " & Nick & " : Der Countdown ist zurzeit nicht aktiv.",3
End If
End If
End If
all = ReadINIString("Channels", "Main", "", INI) & " " & ReadINIString("Channels", "Ausgabe", "", INI) & " " & ReadINIString("Channels", "Intern", "", INI)
If InStr(1, LCase(all), LCase(Chan)) > 0 Then
Status = ReadINIString("Setting", "Status", "0", INI)
If Status = 1 Then
Select Case LCase(Param(Line,1))
Case "!wunsch"
Sendline "PrivMsg " & DJ & " : Wunsch von [" & Nick & "] mit [" & GetRest(Line,2) & "]",3
Case "!gruss"
Sendline "PrivMsg " & DJ & " : Neuer Gruß: [" & GetRest(Line,2) & "]",3
Case "!gruß"
Sendline "PrivMsg " & DJ & " : Neuer Gruß: [" & GetRest(Line,2) & "]",3
Case "!dj"
Sendline "Notice " & Nick & " : Aktueller DJ: " & ReadINIString("Setting", "DJ", "Kein DJ gesetzt]", INI),3
Case "!sendung"
Sendline "Notice " & Nick & " : Aktuelle Sendung: " & ReadINIString("Setting", "Sendung", "[Keine gesetzt]", INI),3
Case "!homepage"
Sendline "Notice " & Nick & " : Unser Homepage: " & ReadINIString("Stream", "HomePage", "[Keine gesetzt]", INI),3
Case "!hp"
Sendline "Notice " & Nick & " : Unser Homepage: " & ReadINIString("Stream", "HomePage", "[Keine gesetzt]", INI),3
Case "!listen"
Sendline "Notice " & Nick & " : Unsere Listen.pls: " & ReadINIString("Stream", "Listen", "[Keine Listen.pls gesetzt]", INI),3
Case "!listen.pls"
Sendline "Notice " & Nick & " : Unsere Listen.pls: " & ReadINIString("Stream", "Listen", "[Keine Listen.pls gesetzt]", INI),3
Case "!peak"
Sendline "Notice " & Nick & " : Peak: " & tmp_Peak,3
Case "!listener"
Sendline "PrivMsg " & Chan & " : " & tmp_Listener,3
Case "!song"
Sendline "Notice " & Nick & " : Aktueller Song: " & tmp_Song,3
Case "!playlist"
Sendline "PrivMsg " & Chan & " : Unsere Playlist findest du unter " & ReadINIString("Stream", "Playlist", "[Keine Playlist angegeben]", INI),3
Case "!stream"
Lines = ReadINIString("Stream_cmd", "Lines", "1", INI)
For i = 1 to Lines
Sendline "PrivMsg " & Chan & " : " & ReplaceVars(ReadINIString("Stream_cmd", "Line" & i, "", INI)),3
Next
End Select
Else
Select Case LCase(Param(Line,1))
Case "!wunsch"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
Case "!playlist"
Sendline "PrivMsg " & Chan & " : Unsere Playlist findest du unter " & ReadINIString("Stream", "Playlist", "[Keine Playlist angegeben]", INI),3
Case "!gruss"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
Case "!dj"
Sendline "Notice " & Nick & " : Radio ist zur Zeit offline",3
Case "!sendung"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
Case "!homepage"
Sendline "Notice " & Nick & " : Unser Homepage: " & ReadINIString("Stream", "HomePage", "[Keine gesetzt]", INI),3
Case "!hp"
Sendline "Notice " & Nick & " : Unser Homepage: " & ReadINIString("Stream", "HomePage", "[Keine gesetzt]", INI),3
Case "!listen"
Sendline "Notice " & Nick & " : Unsere Listen.pls: " & ReadINIString("Stream", "Listen", "[Keine Listen.pls gesetzt]", INI),3
Case "!listen.pls"
Sendline "Notice " & Nick & " : Unsere Listen.pls: " & ReadINIString("Stream", "Listen", "[Keine Listen.pls gesetzt]", INI),3
Case "!peak"
Sendline "Notice " & Nick & " : Peak: " & tmp_Peak,3
Case "!listener"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
Case "!song"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
Case "!stream"
Sendline "PrivMsg " & DJ & " : Radio ist zur Zeit offline",3
End Select
End If
End If
End Sub
Sub GetNews()
Host = ReadINIString("Stream", "Server", "", INI)
Port = ReadINIString("Stream", "Port", "", INI)
vSock = SockConnect(Host, Port, "SockEvent")
If vSock = 0 Then
SpreadFlagMessage 0, "+m", "5*** StreamScript: Couldn't create socket"
TimedCommand "GetNews", 30
End If
End Sub
Sub SockEvent(vSock, SEvent, SData)
Dim Header2
Select Case SEvent
Case SE_ConnectFailed
SpreadFlagMessage 0, "+m", "5*** ShoutCast: Connection to " & StreamHost & " failed"
TimedCommand "GetNews", 30
Case SE_Connected
SockWrite vSock, "GET /" & ReadINIString("Stream", "Page", "", INI) & " HTTP/1.0" & vbCrLf & _
"Accept: text/html" & vbCrLf & _
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; AnGeL-Bot)" & vbCrLf & vbCrLf
Case SE_Read
Recieved = Recieved & SData
Case SE_Closed
If ReadINIString("Setting", "Status", "0", INI) = 0 Then Exit Sub
If Not InStr(1, Recieved, "Server is currently down") > 0 Then
Recieved = Replace(Recieved, vbCrLf, vbNullString)
Dummy = "Server is currently up"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
Dummy = "<font class=default>Stream Status:"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
Dummy = "<font class=default>"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
tmp_Listener = ReplaceHTMLCode(Left(Recieved, InStr(1, Recieved, "</b>") - 1 ))
If DebugIt Then SpreadFlagMessage 0, "+m", "Listener: " & tmp_Listener
Dummy = "<font class=default>"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
tmp_Peak = ReplaceHTMLCode(Left(Recieved, InStr(1, Recieved, "</b>") - 1 ))
If DebugIt Then SpreadFlagMessage 0, "+m", "Peak: " & tmp_Peak
Dummy = "<font class=default>Current Song:"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
Dummy = "<font class=default>"
Recieved = Right(Recieved, Len(Recieved) - InStr(1, Recieved, Dummy) - Len(Dummy) + 1)
tmp_Song = ReplaceHTMLCode(Left(Recieved, InStr(1, Recieved, "</b>") - 1 ))
If DebugIt Then SpreadFlagMessage 0, "+m", "Song: " & tmp_Song
If aktuell < Int(Stream_Peak) Then
If DebugIt Then SpreadFlagMessage 0, "+m", "Peak: Write in INI-Datei"
WriteINIString "Peak", "Peak", Stream_Peak, INIFile
End If
Dummy = tmp_Song
If Dummy <> LastNews Then
LastNews = Dummy
If ReadINIString("Setting", "Song", "on", INI) = "on" Then
If DebugIt Then SpreadFlagMessage 0, "+m", "Sending to " & Dummy & " :" & "PRIVMSG " & Dummy & " :" & LastNews
If ReadINIString("Setting", "Status", "0", INI) = 0 Then Exit Sub
Channels = ReadINIString("Channels", "Main", "", INI) & " " & ReadINIString("Channels", "Ausgabe", "", INI)
Dummy = Split(Channels, " ")
For i = LBound(Dummy) To UBound(Dummy)
Sendline "PrivMsg " & Dummy(i) & " : Aktueller Song: " & tmp_Song,3
Next
End If
End If
Else
SpreadFlagMessage 0, "+m", "5*** HTML-Page is not Complete and Radio is Offline!"
End If
Recieved = vbNullString
TimedCommand "GetNews", 30
End Select
End Sub
Sub Advertisment()
Status = ReadINIString("Setting", "Status", "0", INI)
aStatus = ReadINIString("Advertisement", "Status", "on", INI)
If aStatus = "on" Then
If Status = 1 Then
Message = ReadINIString("Advertisement", "Online", "[Keine OnlineWerbung gesetzt]", INI)
Channels = ReadINIString("Channels", "Main", "", INI) & " " & ReadINIString("Channels", "Ausgabe", "", INI)
Dummy = Split(Channels, " ")
For i = LBound(Dummy) To UBound(Dummy)
Sendline "PrivMsg " & Dummy(i) & " : " & ReplaceVars(Message),3
Next
ElseIf Status = 0 Then
Message = ReadINIString("Advertisement", "Offline", "[Keine OfflineWerbung gesetzt]", INI)
Channels = ReadINIString("Channels", "Main", "", INI) & " " & ReadINIString("Channels", "Ausgabe", "", INI)
Dummy = Split(Channels, " ")
For i = LBound(Dummy) To UBound(Dummy)
Sendline "PrivMsg " & Dummy(i) & " : " & ReplaceVars(Message),3
Next
End If
aTime = ReadINIString("Advertisement", "Time", "300", INI)
TimedCommand "Advertisment", aTime
ElseIf aStatus = "off" Then
aTime = ReadINIString("Advertisement", "Time", "300", INI)
TimedCommand "Advertisment", aTime
End If
End Sub
Sub Countdown()
If Status = True Then
sSec = RemainingSec
If sSec <= 2701 And sSec > 1801 Then
Interval = "2700 1800"
If InStr(1, Interval, sSec) > 0 Then
nTime = sSec / 60
Sendline "PrivMsg " & aChan & " : Noch " & nTime & " Minuten",3
End If
ElseIf sSec < 901 And sSec > 119 Then
Interval = "900 600 300 240 180 120"
If InStr(1, Interval, sSec) > 0 Then
nTime = sSec / 60
Sendline "PrivMsg " & aChan & " : Noch " & nTime & " Minuten",3
End If
ElseIf sSec < 106 And sSec > 74 Then
Interval = "105 90 75"
If InStr(1, Interval, sSec) > 0 Then
NewTime sSec
End If
ElseIf sSec < 61 And sSec > 6 Then
Interval = "60 45 30 20 15 10"
If InStr(1, Interval, sSec) > 0 Then
Sendline "PrivMsg " & aChan & " : Noch " & sSec & " Sekunden",3
End If
ElseIf sSec < 6 And sSec > 0 Then
Interval = "5 4 3 2 1"
If InStr(1, Interval, sSec) > 0 Then
Sendline "PrivMsg " & aChan & " : Noch " & sSec & " Sekunde(n)",3
End If
ElseIf sSec = 0 Then
Sendline "PrivMsg " & aChan & " : Countdown end... go.. go.. go..",3
Status = False
Exit Sub
End If
RemainingSec = RemainingSec - 1
If DebugIt Then SpreadFlagMessage 0, "+m", "[" & Time & ":] " & RemainingSec
TimedCommand "Countdown", 1
ElseIf Status = False Then
Exit Sub
End If
End Sub
Function NewTopic(Text, Topic)
aTopic = ReadINIString("Topic", "Online", "", INI)
cTopic = ReadINIString("Topic", "Offline", "", INI)
If Topic = 1 Then
Main = ReadINIString("Channels", "Main", "", INI)
Dummy = Split(Main, " ")
For i = LBound(Dummy) To UBound(Dummy)
Sendline "Topic " & Dummy(i) & " : " & ReplaceVars(aTopic),3
Next
ElseIf Topic = 2 Then
Main = ReadINIString("Channels", "Main", "", INI)
Dummy = Split(Main, " ")
For i = LBound(Dummy) To UBound(Dummy)
Sendline "Topic " & Dummy(i) & " : " & ReplaceVars(cTopic),3
Next
End If
End Function
Function ReplaceVars(Text)
If InStr(1, LCase(Text), LCase("##DJ##")) > 0 Then
Text = Replace(Text, "##DJ##", ReadINIString("Setting", "DJ", "", INI))
End If
If InStr(1, LCase(Text), LCase("##SENDUNG##")) > 0 Then
Text = Replace(Text, "##SENDUNG##", ReadINIString("Setting", "Sendung", "", INI))
End If
If InStr(1, LCase(Text), LCase("##STREAM##")) > 0 Then
Text = Replace(Text, "##STREAM##", ReadINIString("Stream", "Listen", "", INI))
End If
If InStr(1, LCase(Text), LCase("##HOMEPAGE##")) > 0 Then
Text = Replace(Text, "##HOMEPAGE##", ReadINIString("Stream", "HomePage", "", INI))
End If
If InStr(1, LCase(Text), LCase("##NAME##")) > 0 Then
Text = Replace(Text, "##NAME##", ReadINIString("Stream", "Name", "", INI))
End If
If InStr(1, LCase(Text), LCase("##SONG##")) > 0 Then
Text = Replace(Text, "##SONG##", tmp_Song)
End If
If InStr(1, LCase(Text), LCase("##LISTENER##")) > 0 Then
Text = Replace(Text, "##LISTENER##", tmp_Listener)
End If
If InStr(1, LCase(Text), LCase("##PEAK##")) > 0 Then
Text = Replace(Text, "##PEAK##", tmp_Peak)
End If
Status = ReadINIString("Topic", "Status", "on", INI)
If Status = "on" Then
If InStr(1, LCase(Text), LCase("##NEWS##")) > 0 Then
Text = Replace(Text, "##NEWS##", ReadINIString("Topic", "News", "", INI))
End If
End If
ReplaceVars = Text
End Function
Function ReplaceHTMLCode(Text)
Text = Replace(Text, "<b>", "")
Text = Replace(Text, "</b>", "")
Text = Replace(Text, "<td>", "")
Text = Replace(Text, "</td>", "")
Text = Replace(Text, "<front>", "")
Text = Replace(Text, "</front>", "")
Text = Replace(Text, "<B>", "")
Text = Replace(Text, "</B>", "")
ReplaceHTMLCode = Text
End Function
Function Trim3(Text)
Trim3 = Replace(Replace(Trim(Text), " ", " "), " ", " ")
End Function
Function NewTime(Text)
Text = Text / 60
nTime = Split(Text, ",")
Mins = nTime(0)
Sec = "0," & nTime(1)
Sec = Sec * 60
Text = Mins & " Minute und " & Round(Sec, 0) & " Sekunden"
If DebugIt Then SpreadFlagMessage 0, "+m", Text
Sendline "PrivMsg " & aChan & " : Noch " & Text,3
End Function