You guys wanted a news anchor , welll . Have u ever known one to stfu?
![Huh ???](http://www.ultrahal.com/community/Smileys/default/huh.gif)
lolol
Troll plugin,,,lol. Hal gonna test ur nerves... hehehe
Rem Type=Plugin
Rem Name=MP4
Rem Author=modded by cyberjedi
Rem Host=Assistant
'This sub setups the plug-ins option panel in Hal's options dialog
Sub OptionsPanel()
'------------------
' Define the Help
'------------------
lblPlugin(0).Caption = "Hal will be able to play your favourite movies. Click below for more info"
lblPlugin(0).Move 120, 120, 3300, 1000
lblPlugin(0).WordWrap = True
lblPlugin(0).Visible = True
cmdPlugin(0).Move 320, 650, 2100, 375
cmdPlugin(0).Caption = "Help on this plugin"
cmdPlugin(0).Visible = True
'------------------
' Define the Musical Mood listbox
'------------------
lblPlugin(1).Caption = "Hal Movie Mood level"
lblPlugin(1).Move 320, 1300, 4000, 1000
lblPlugin(1).WordWrap = True
lblPlugin(1).Visible = True
cboPlugin(0).Move 320, 1600, 1800
cboPlugin(0).AddItem "Very high"
cboPlugin(0).AddItem "High"
cboPlugin(0).AddItem "Average"
cboPlugin(0).AddItem "Low"
cboPlugin(0).AddItem "No Movie
cboPlugin(0).Visible = True
cmdPlugin(1).Caption = "Apply Changes"
cmdPlugin(1).Move 320, 2100, 1600, 375
cmdPlugin(1).Visible = True
'------------------
' Update the listbox with the current value stored in the table
'------------------
If HalBrain.CheckTableExistence("vrParameter") = True Then
vrMovieMood = HalBrain.TopicSearch("Movie", "vrParameter")
If vrMovieMood = "" Then vrMovieMood = 1
Select Case vrMovieMood
Case 8
cboPlugin(0).Text = "Very high"
Case 5
cboPlugin(0).Text = "High"
Case 2
cboPlugin(0).Text = "Average"
Case 1
cboPlugin(0).Text = "Low"
Case 0
cboPlugin(0).Text = "No movie"
End Select
End If
End Sub
Sub cmdPlugin_Click(Index)
Dim vrTempQuery()
Dim vrMovie, vrMovieMood
Select Case Index
Case 0
HalMenu.HalCommand "<RUNPROG>vrMP4Help.html</RUNPROG>"
Case 1
'------------------
' Convert the listbox in a value
'------------------
Select Case cboPlugin(0).Text
Case "Very high"
vrMovieMood = 8
Case "High"
vrMovieMood = 5
Case "Average"
vrMovieMood = 2
Case "Low"
vrMovieMood = 1
Case "No music"
vrMovieMood = 0
End Select
'------------------
' If the Parameter table does not exist, I create it
'------------------
HalBrain.ReadOnlyMode = False
vrTableName = "vrParameter"
If HalBrain.CheckTableExistence(vrTableName) = False Then
'Create table if it doesn't exist
HalBrain.CreateTable vrTableName, "TopicSearch", "miscData"
End If
'------------------
' Search if it contains the MovieMood parameter
'------------------
vrMovie = "MOVIE"
If HalBrain.TopicSearch(vrMusic, vrTableName) = "" Then
'------------------
'Creates the record storing the new value
'------------------
HalBrain.AddToTable vrTableName, "TopicSearch", vrMovie, vrMovieMood
Else
'------------------
'Updates the record storing the new value
'------------------
HalBrain.RunQuery "UPDATE " & vrTableName & " SET topic = " & vrMovieMood & " WHERE searchString = " & """" & vrMovie & """", vrTempQuery
End If
End Select
End Sub
Rem PLUGIN: PLUGINAREA1
'The comment above tells Ultra Hal Assistant to insert the following code
'on-the-fly into the main brain code in the section referenced.
'------------------
' Check if the user asked for reorganizing the MP4 table
'------------------
vrMp4 = False
If InStr(UserSentence, " INDEX ") <> 0 And InStr(UserSentence, " MP4 ") <> 0 Then vrMP4 = True
If vrMP4 = True Then
'------------------
' If the MP4 table does not exist, I create it
'------------------
HalBrain.ReadOnlyMode = False
vrTableName = "vrMp4"
If HalBrain.CheckTableExistence(vrTableName) = False Then
' Create table if it doesn't exist
' It must be of type Brain, to allow partial text search
HalBrain.CreateTable vrTableName, "Brain", "miscData"
Else
' The 260 parameter is 256 + 4 = Yes/No with Default = No
vrAnswer = MsgBox("Shall I delete the existing index and recreate it from scratch?", 260, "MP4 Reindexing")
If vrAnswer = 6 Then
HalBrain.RunQuery "DELETE FROM " & vrTableName, vrTempQuery
End If
End If
'------------------
' Ask which is the main MP4 folder
'------------------
vrMp4Folder = InputBox("Which main folder to you want to reindex?", "MP4 Reindexing", "c:\MP4")
'------------------
' Read the main MP4 folder
'------------------
Set vrFso = CreateObject("Scripting.FileSystemObject")
If vrFso.FolderExists(vrMp4Folder) Then
GetResponse = "I have indexed all the MP4 files in the specified folder and subfolders. "
HalBrain.ReadOnlyMode = False
vrCurrentFolder = vrMp4Folder
Call ReadFolder(vrCurrentFolder, vrMp4Folder)
Else
GetResponse = "The folder " & vrMp4Folder & " does not exist on your computer. "
End If
HalBrain.ReadOnlyMode = True
End If
'------------------
' Check if the user asked for playing a song
'------------------
vrMp4 = False
vrToPlay = ""
vrNameToPlay = ""
vrToPlay = UCase(HalBrain.SearchPattern(UserSentence, "PLAY * MOVIE *", 2))
If vrToPlay <> "" Then
If HalBrain.CheckTableExistence("vrMp4") = False Then
GetResponse = "I don't find any MP4 index in our brain. "
Else
vrNameToPlay = HalBrain.QABrain(vrToPlay, "vrMp4", 0)
If vrNameToPlay <> "" Then
GetResponse = " "
HalCommands = HalCommands & "<RUNPROG>" & vrNameToPlay & "</RUNPROG>"
End If
End If
HalBrain.ReadOnlyMode = True
End If
'------------------
' From time to time, Hal will play a movie, according to some word you say
' For example, you say: "I am going to California"
' Hal will play "California Dreaming"
'------------------
'------------------
' check the current movie mood factor
'------------------
vrMovieMood = HalBrain.TopicSearch("MOVIE", "vrParameter")
If vrMovieMood = "" Then vrMovieMood = 0
vrMovieMood = CInt(vrMovieMood)
If vrMovieMood > 0 Then
j = Int(Rnd * 10) ' generate a random integer between 0 and 9
If j < vrMovieMood Then
vrKeywords = HalBrain.RemoveExtraSpaces(HalBrain.ExtractKeywords(" " & UserSentence & " "))
vrKeywordList = Split(vrKeywords, " ")
For i = Ubound(vrKeywordList) To Lbound(vrKeywordList)
vrNameToPlay = HalBrain.QABrain(vrKeywordList(i), "vrMp4", 0)
If vrNameToPlay <> "" Then
GetResponse = "You talked about " & vrKeywordList(i) & " and this reminds me this movie. "
HalCommands = HalCommands & "<RUNPROG>" & vrNameToPlay & "</RUNPROG>"
Exit For
End If
Next
End If
End If
Rem PLUGIN: FUNCTIONS
'The preceding comment is actually a plug-in directive for
'the Ultra Hal host application. It allows for code snippets
'to be inserted here on-the-fly based on user configuration.
Function ReadFolder(vrCurrentFolder, vrMp4Folder)
Set vrFso = CreateObject("Scripting.FileSystemObject")
Set vrFolder = vrFso.GetFolder(vrCurrentFolder)
'------------------
' Read all the files in the current folder
'------------------
Set vrFiles = vrFolder.Files
For Each vrFile in vrFiles
'------------------
' It's an MP4 file; I add it to the table
'------------------
If UCase(Right(vrFile, 3)) = "MP4" Then
vrSong = Ucase(vrFile)
vrSong = Replace(vrSong, ".MP4", "")
vrLen = Len(vrSong)
vrPos = InStrRev(vrSong, "\")
vrRight = vrLen - vrPos
vrSong = LTrim(Right(vrSong, vrRight))
HalBrain.AddToTable "vrMp4", "Brain", vrSong, vrFile
End If
Next
'------------------
' Read all the subfolders in the current folder
'------------------
Set vrSubFolders = vrFolder.SubFolders
For Each vrFolderObject in vrSubFolders
'------------------
' Pay attetion here: This is recursive! We must be sure that it will get to an end
' Since we are reading directories on a hard disk, the number of recursions
' should never be infinite. However, a very big number of subfolders and files
' might lead to memory problems or to performances bottlenecks.
' I've tested it on a folder containing about 100 subfolders and 3.000 files,
' and got acceptable performances (less than 5 minutes)
'------------------
Call ReadFolder(vrFolderObject, vrMp4Folder)
Next
End Function