-
My code formatting in this post apparently suck! Oops.
I could say:
' Hey Google tell trigger command movie with parameter die hard' the movie should be found and played.{ "trigger": "Movie", "command": "PlayMovie.vbs", "ground": "foreground", "voice": "movie", "allowParams": "true" }Create PlayMovie.vbs with these contents:
'***************************************************************************** ' Author: Allan McFarlane (2018) ' Purpose: Locates And Play First Movie Whose Title Or ' SubTitle Matches The Passed Parameter(s). ' If There Is No Parameter A Random Movie Is Played. ' Inputs: Complete Or Partial Movie Title Or SubTitle, Or None. ' Returns: Message Box Will Be Shown If No Match Was Found. ' Notes: I Use MediaPlayerLite As A Player, It's Installer Offers To Install ' Crapware That Can Be Declined When Installing. ' All Movies Are Stored In A Single Folder Called 'Movies'. ' Each Movie File Is Stored In It's Own Folder In The Movies Folder. ' Searching Is Based Only On The Folder Name. ' Movie Year Should Not Be A Parameter. ' The Words 'The' And 'A' Can Be Used, But, Will Be Internally Dropped. ' Only The 'MP4' Encoded Video File Types Are Played By This Script. ' ' Movie Folders Follow The Following Naming Conventions: ' Butterfly Effect 2, The (2006) ' Catwoman (2004) ' Poison Ivy 4 _ The Secret Society (2008) ' Pirates of the Caribbean 1 _ The Curse of the Black Pearl (2003) ' RoboCop REMAKE (2014) ' Simple Plan, A (1998) ' Spider-Man 2 (2004) ' Nine And A Half Weeks (1986) '***************************************************************************** ' root needs to be set as the path to the 'Movies' folder root = "\\GOFLEX_HOME\GoFlex Home Public\Movies\" For Each a In WScript.Arguments arg = arg & a & " " Next 'a arg = LCase(Trim(arg)) If Left(arg, 4) = "the " Then 'discard superfluous leading THE from parameter arg = Right(arg, Len(arg) - 4) padding2 = 5 ElseIf Left(arg, 2) = "a " Then 'discard superfluous leading A from parameter arg = Right(arg, Len(arg) - 2) padding2 = 3 End If Set fso = CreateObject("Scripting.FileSystemObject") Set oFolders = fso.GetFolder(root) 'main folder that contains all sub folders, which contain the actual movie success = 0 If arg <> "" Then For Each oFolder In oFolders.SubFolders 'loop through sub folder list padding = padding2 If padding = 0 Then 'account for lenght of possible trailing text THE or A If InStr(LCase(oFolder.Name), ", a") > 0 Then padding = 3 End If If InStr(LCase(oFolder.Name), ", the") > 0 Then padding = 5 End If End If If InStr(oFolder.Name, "(") > 0 Then 'prepare for exclusion of trying to match release year ie: (2006) padding = padding + 7 End If subStart = 0 subTitle = "" subStart = InStr(oFolder.Name, "_") 'test for existence of possible subtitle If subStart > 0 Then 'fetch simple title and subtitle if present Title = LCase(Left(oFolder.Name, subStart - 1)) subTitle = LCase(Mid(oFolder.Name, subStart + 1, Len(oFolder.Name) - subStart - padding)) Else Title = LCase(oFolder.Name) End If 'does this folder's title or subtile contains a match to the parameter? If InStr(Title, arg) > 0 Or InStr(subTitle, arg) > 0 Then Set oFiles = oFolder.Files For Each oFile In oFiles 'loop through filenames to find my MP4 encoded movie If InStr(LCase(oFile.Name), ".mp4") > 0 Then arg = root & oFolder.Name & "\" & oFile.Name 'build path to movie file 'build string for specific executable with compatible command line arguments success = 1 arg = Chr(34) & "C:\Program Files\MediaPlayerLite\mpl.exe " & Chr(34) & " " & Chr(34) & arg & Chr(34) & " /fullscreen" CreateObject("Wscript.Shell").Run arg 'run it! Exit For End If Next Exit For End If Next Else 'No movie to search for, so play a random movie folderCount = oFolders.SubFolders.Count Randomize folderNum = Int((folderCount - 1 + 1) * Rnd + 1) curFolderNum = 0 For Each oFolder In oFolders.SubFolders 'loop through sub folder list curFolderNum = curFolderNum + 1 If curFolderNum = folderNum Then Set oFiles = oFolder.Files For Each oFile In oFiles 'loop through filenames to find the MP4 encoded movie If InStr(LCase(oFile.Name), ".mp4") > 0 Then arg = root & oFolder.Name & "\" & oFile.Name 'build path to movie file 'build string for specific executable with compatible command line arguments success = 1 arg = Chr(34) & "C:\Program Files\MediaPlayerLite\mpl.exe " & Chr(34) & " " & Chr(34) & arg & Chr(34) & " /fullscreen" CreateObject("Wscript.Shell").Run arg 'run it! Exit For End If Next Exit For End If Next End If Set fso = Nothing If success = 0 Then WScript.Echo "No Match Found!" & vbCrLf & arg End If -
@a-mcf, I hope you don't mind. I re-formatted your post a little bit. I just added ``` before and after the big code block to make it look like code.
Also, nice job on the movie player script!
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login