Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Download and get help for different MediaMonkey Addons.

Moderators: Peke, Gurus

homersheineken

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by homersheineken » Thu May 07, 2009 6:47 am

Hey,
The download link isn't working. Is there an alternative?
thx!

Fa

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by Fa » Tue May 26, 2009 11:08 pm

Hey Dude... I added some code in order to create a toolbar button to simplify access to the script, hope you don't mind... please feel free to include it to your next version of this Great script!

Code: Select all

Option Explicit

Dim sPath : sPath = sdb.ApplicationPath & "Scripts\Auto\Lyricator.vbs"
Dim sHTML : sHTML = sdb.ApplicationPath & "Scripts\Lyricator\temp.html"
Dim sLoad : sLoad = sdb.ApplicationPath & "Scripts\Lyricator\loading.gif"

Const mmAnchorRight = 4
Const mmAnchorBottom = 8
Const mmAlignTop = 1
Const mmAlignBottom = 2
Const mmAlignClient = 5
Const mmListDropdown = 2
Const mmFormScreenCenter = 4

Sub Destroy
	SDB.Objects("LyricatorForm") = Nothing
	SDB.Objects("LyricatorWB") = Nothing
	SDB.Objects("LyricatorTracks") = Nothing
	SDB.Objects("LyricatorStatus") = Nothing
  Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
	
  fso.DeleteFile(sHTML)
End Sub

Sub OnClear(Btn)
	Dim tracks: Set tracks = SDB.Objects("LyricatorTracks")
  
	Dim i
	For i = 0 to tracks.count - 1
		tracks.Item(i).Lyrics = ""
		tracks.Item(i).UpdateDB
		tracks.Item(i).WriteTags
	Next
End Sub

Sub OnSave(Btn)
	Btn.Caption = SDB.Localize("Saving ...")
  Btn.Common.Enabled = False  

	Dim ini : Set ini = SDB.IniFile
	Dim TryAutoClose : TryAutoClose = ini.BoolValue("Lyricator", "TryAutoClose")

	Dim doc : Set doc = SDB.Objects("LyricatorWB").Interf.Document
	Dim tracks: Set tracks = SDB.Objects("LyricatorTracks")
	Dim status : Set status = SDB.Objects("LyricatorStatus")
  
  Dim cnt : cnt = 0
  
	Dim interval : interval = 1
	If tracks.count > 10000 Then
		interval = 100
	ElseIf tracks.count > 1000 Then
		interval = 25
	ElseIf tracks.count > 100 Then
		interval = 10
	End If
	
	Dim i
	For i = 0 to tracks.count - 1
		SDB.ProcessMessages

	  If (i + 1) Mod interval = 0 Then
			status.Caption = SDB.Localize("Writing " & (i+1) & "/" & (tracks.count+1) & " ...")
		End If
		
		Dim t : Set t = doc.getElementById(tracks.Item(i).ID)
		Dim d : Set d = t.getElementsByTagName("div")
		Dim c : Set c = d(0).getElementsByTagName("input")(0)
		
		If c.checked Then
			cnt = cnt + 1
			Dim l : l = Replace(d(3).innerHTML, "<BR>", vbNewLine)
			l = Replace(l, "<BR/>", vbNewLine)
			l = Replace(l, "<BR />", vbNewLine)
			tracks.Item(i).Lyrics = l
			tracks.Item(i).UpdateDB
			tracks.Item(i).WriteTags
		End If
		
	Next
	
	status.Caption = cnt & " Lyrics Saved"
	
	If TryAutoClose Then
		Destroy
	End If
End Sub

Sub OnCancel(Btn)
  Destroy
End Sub

Sub OnAbort(Btn)
	SDB.Objects("LyricatorWB") = Nothing

  Btn.Caption = SDB.Localize("C&lose")
  Btn.OnClickFunc = "OnCancel"
End Sub

Sub Lyricator
	Dim ini : Set ini = SDB.IniFile
	Dim UI : Set UI = SDB.UI
  Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
	
	Dim TryAllArtists : TryAllArtists = ini.BoolValue("Lyricator", "TryAllArtists")
	Dim TryCommaArtists : TryCommaArtists = ini.BoolValue("Lyricator", "TryCommaArtists")
	Dim TryCleanupWhiteSpace : TryCleanupWhiteSpace = ini.BoolValue("Lyricator", "TryCleanupWhiteSpace")
	Dim TryRejectSingleLine : TryRejectSingleLine = ini.BoolValue("Lyricator", "TryRejectSingleLine")

	Dim TrySingleLineSearch : TrySingleLineSearch = ini.StringValue("Lyricator", "TrySingleLineSearch")
	Dim TrySingleLineReplace : TrySingleLineReplace = ini.StringValue("Lyricator", "TrySingleLineReplace")

	Dim TryParensA : TryParensA = ini.BoolValue("Lyricator", "TryParensA")
	Dim TryBracketsA : TryBracketsA = ini.BoolValue("Lyricator", "TryBracketsA")
	Dim TryBracesA : TryBracesA = ini.BoolValue("Lyricator", "TryBracesA")
	Dim TryQuotesA : TryQuotesA = ini.BoolValue("Lyricator", "TryQuotesA")
	Dim TrySplitArrayA : TrySplitArrayA = ini.StringValue("Lyricator", "TrySplitArrayA")
	Dim TryBlackListA : TryBlackListA = ini.StringValue("Lyricator", "TryBlackListA")

	Dim TryParensT : TryParensT = ini.BoolValue("Lyricator", "TryParensT")
	Dim TryBracketsT : TryBracketsT = ini.BoolValue("Lyricator", "TryBracketsT")
	Dim TryBracesT : TryBracesT = ini.BoolValue("Lyricator", "TryBracesT")
	Dim TryQuotesT : TryQuotesT = ini.BoolValue("Lyricator", "TryQuotesT")
	Dim TrySplitArrayT : TrySplitArrayT = ini.StringValue("Lyricator", "TrySplitArrayT")
	Dim TryBlackListT : TryBlackListT = ini.StringValue("Lyricator", "TryBlackListT")

	Dim TryLyricsPlugin : TryLyricsPlugin = ini.BoolValue("Lyricator", "TryLyricsPlugin")
	Dim TryLyricsWiki : TryLyricsWiki = ini.BoolValue("Lyricator", "TryLyricsWiki")
	Dim TryLyricsSongs : TryLyricsSongs = ini.BoolValue("Lyricator", "TryLyricsSongs")
	
	Dim TryAutoClose : TryAutoClose = ini.BoolValue("Lyricator", "TryAutoClose")

  Dim FormWidth : FormWidth = 800
  Dim FormHeight : FormHeight = 600

  Dim frmMain : Set frmMain = UI.NewForm
  frmMain.Common.SetRect 50, 50, FormWidth, FormHeight
  frmMain.Common.MinWidth = 200
  frmMain.Common.MinHeight = 150
  frmMain.FormPosition = mmFormScreenCenter
  frmMain.Caption = SDB.Localize("Lyricator")
  frmMain.StayOnTop = True
	frmMain.Common.Visible = True
	
  Dim WB : Set WB = UI.NewActiveX(frmMain, "Shell.Explorer")
  WB.Common.Align = mmAlignClient
  WB.Common.ControlName = "WB"
  
  WB.Interf.Navigate(sLoad)

  Dim pnlFooter : Set pnlFooter = UI.NewPanel(frmMain)
  pnlFooter.Common.Align = mmAlignBottom
  pnlFooter.Common.Height = 37

'  Dim btnClear : Set btnClear = UI.NewButton(pnlFooter)
'  btnClear.Caption = SDB.Localize("Clear")
'  btnClear.Common.SetRect FormWidth - 305, 6, 85, 25
'  btnClear.Common.Anchors = mmAnchorRight & mmAnchorBottom
'  btnClear.UseScript = sPath
'  btnClear.OnClickFunc = "OnClear"
'  btnClear.Default = true

  Dim lblStatus : Set lblStatus = UI.NewLabel(pnlFooter)
  lblStatus.Caption = ""
  lblStatus.Common.SetRect FormWidth - 450, 16, 120, 25
  lblStatus.Common.Anchors = mmAnchorRight + mmAnchorBottom

  Dim btnSave : Set btnSave = UI.NewButton(pnlFooter)
  btnSave.Caption = SDB.Localize("&Save")
  btnSave.Common.SetRect FormWidth - 280, 6, 120, 25
  btnSave.Common.Anchors = mmAnchorRight + mmAnchorBottom
  btnSave.UseScript = sPath
  btnSave.OnClickFunc = "OnSave"
  btnSave.Default = true

  Dim btnCancel : Set btnCancel = UI.NewButton(pnlFooter)
  btnCancel.Caption = SDB.Localize("C&lose")
  btnCancel.Common.SetRect FormWidth - 150, 6, 120, 25
  btnCancel.Common.Anchors = mmAnchorRight + mmAnchorBottom
  btnCancel.UseScript = sPath
  btnCancel.OnClickFunc = "OnCancel"
  btnCancel.Cancel = true

	btnSave.Caption = SDB.Localize("Loading ...")
  btnSave.Common.Enabled = False  

	btnCancel.Caption = SDB.Localize("Abort")
  btnCancel.OnClickFunc = "OnAbort"

	SDB.Objects("LyricatorStatus") = lblStatus
	SDB.Objects("LyricatorForm") = frmMain
	SDB.Objects("LyricatorWB") = WB

  Dim tracks : Set tracks = SDB.SelectedSongList
  
	Dim html : html = ""
	
	html = html & "<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"
	html = html & "<html>"
	html = html & "	<head>"
	html = html & "		<script type=""text/javascript"" src=""moo.js""></script>"
	html = html & "		<script type=""text/javascript"" src=""lyricator.js""></script>"
	html = html & "		<link type=""text/css"" rel=""stylesheet"" href=""lyricator.css"" />"
	
	html = html & "<script type=""text/javascript"">"
	If TryAllArtists Then html = html & "tryAllArtists = true;" End If
	If TryCommaArtists Then html = html & "tryCommaArtists = true;" End If
	If TryCleanupWhiteSpace Then html = html & "tryCleanupWhiteSpace = true;" End If
	If TryRejectSingleLine Then html = html & "tryRejectSingleLine = true;" End If

	If TrySingleLineSearch <> "" Then html = html & "trySingleLineSearch = '" & TrySingleLineSearch & "';" End If
	If TrySingleLineReplace <> "" Then html = html & "trySingleLineReplace = '" & TrySingleLineReplace & "';" End If

	If TryParensA Then html = html & "tryParensA = true;" End If
	If TryBracketsA Then html = html & "tryBracketsA = true;" End If
	If TryBracesA Then html = html & "tryBracesA = true;" End If
	If TryQuotesA Then html = html & "tryQuotesA = true;" End If
	If TrySplitArrayA <> "" Then html = html & "trySplitArrayA = '" & TrySplitArrayA & "';" End If
	If TryBlackListA <> "" Then html = html & "tryBlackListA = '" & TryBlackListA & "';" End If

	If TryParensT Then html = html & "tryParensT = true;" End If
	If TryBracketsT Then html = html & "tryBracketsT = true;" End If
	If TryBracesT Then html = html & "tryBracesT = true;" End If
	If TryQuotesT Then html = html & "tryQuotesT = true;" End If
	If TrySplitArrayT <> "" Then html = html & "trySplitArrayT = '" & TrySplitArrayT & "';" End If
	If TryBlackListT <> "" Then html = html & "tryBlackListT = '" & TryBlackListT & "';" End If

	If TryLyricsPlugin Then html = html & "tryLyricsPlugin = true;" End If
	If TryLyricsWiki Then html = html & "tryLyricsWiki = true;" End If
	If TryLyricsSongs Then html = html & "tryLyricsSongs = true;" End If

	html = html & "</script>"
	html = html & "	</head>"
	html = html & "	<body>"
	html = html & "	<div id=""Header""></div>"
	html = html & "	<div id=""Popup""></div>"
	html = html & "	<div id=""Hidden""></div>"
	html = html & "	<div id=""Status""></div>"
	html = html & " <div id=""DataScroll"">"
	html = html & " <div id=""Data"">"

	Dim abort : abort = false
	Dim interval : interval = 1
	If tracks.count > 10000 Then
		interval = 100
	ElseIf tracks.count > 1000 Then
		interval = 25
	ElseIf tracks.count > 100 Then
		interval = 10
	End If
	
	Dim status : Set status = SDB.Objects("LyricatorStatus")
	  
	Dim i
	For i = 0 to tracks.count - 1
		SDB.ProcessMessages
		If SDB.Objects("LyricatorWB") is nothing Then 
			abort = true
			Exit For 
		End If

	  If (i + 1) Mod interval = 0 Then
			status.Caption = SDB.Localize("Loading " & (i+1) & "/" & (tracks.count) & " ...")
		End If

		With tracks.item(i)
			html = html & "<div id=""" & .ID & """ class=""track"">"
			html = html & "<div class=""checkbox""><input type=""checkbox"" disabled=""true"" /></div>"
			html = html & "<div class=""artist"">" & .ArtistName 
			If TryAllArtists Then
				If .Conductor <> "" Then html = html & ";" & .Conductor End If
				If .InvolvedPeople <> "" Then html = html & ";" & .InvolvedPeople End If
				If .Lyricist <> "" Then html = html & ";" & .Lyricist End If
				If .MusicComposer <> "" Then html = html & ";" & .MusicComposer End If
				If .OriginalArtist <> "" Then html = html & ";" & .OriginalArtist End If
				If .OriginalLyricist <> "" Then html = html & ";" & .OriginalLyricist End If
			End If
			html = html & "</div>"
			html = html & "<div class=""title"">" & .Title & "</div>"
			html = html & "<div class=""lyrics""></div>"
			html = html & "</div>"
		End With
	Next
	html = html & " </div>"
	html = html & " </div>"
	html = html & "	</body>"
	html = html & "</html>"

	status.Caption = ""
	SDB.ProcessMessages
	SDB.Objects("LyricatorTracks") = tracks
	
	html = Replace(html, ChrW(-257), "")

	Dim f : Set f = fso.OpenTextFile(sHTML, 2, true)
	f.WriteLine html
	f.close

	If Not abort Then
	  btnSave.Caption = SDB.Localize("&Save")
	  btnSave.Common.Enabled = True

	  btnCancel.Caption = SDB.Localize("C&lose")
	  btnCancel.OnClickFunc = "OnCancel"
	  
  	WB.Interf.Navigate(sHTML)
  End If
End Sub 

Function INIDefault(v, d)
	If v = "" Or v = "False" Then
	Debug v
		v = d
	End If
	INIDefault = v
End Function

Function Debug(s)
	Call SDB.MessageBox(s, mtInformation, Array(mbOk))
End Function

Sub OnStartUp
	Dim i : i = SDB.UI.AddOptionSheet("Lyricator", Script.ScriptPath, "InitSheet", "SaveSheet", -3)
	 'add toolbar button
  Dim but : Set but = SDB.Objects("Lyricator_BT")
  If but Is Nothing Then
    Set but = SDB.UI.AddMenuItem(SDB.UI.Menu_TbStandard,0,0)
    but.Caption = "Lyricator"
    but.IconIndex = 12
    but.UseScript = Script.ScriptPath
    but.OnClickFunc = "LyricatorToolbar"
    but.Visible = true
    Set SDB.Objects("Lyricator_BT") = but
    End If 
    'end toolbar button
    
End Sub
	'add toolbar butt
Sub LyricatorToolbar(but)
  Call Lyricator()
End Sub
    'end toolbar button
    
Sub InitSheet(Sheet)
	Dim UI : Set UI = SDB.UI
	Dim ini : Set ini = SDB.IniFile
	'added for button
    Dim edt : Set edt = ui.NewCheckBox(Sheet)

	
	Dim TryAllArtists : TryAllArtists = ini.BoolValue("Lyricator", "TryAllArtists")
	Dim TryCommaArtists : TryCommaArtists = ini.BoolValue("Lyricator", "TryCommaArtists")
	Dim TryCleanupWhiteSpace : TryCleanupWhiteSpace = ini.BoolValue("Lyricator", "TryCleanupWhiteSpace")
	Dim TryRejectSingleLine : TryRejectSingleLine = ini.BoolValue("Lyricator", "TryRejectSingleLine")
	
	Dim TrySingleLineSearch : TrySingleLineSearch = ini.StringValue("Lyricator", "TrySingleLineSearch")
	Dim TrySingleLineReplace : TrySingleLineReplace = ini.StringValue("Lyricator", "TrySingleLineReplace")

	Dim TryParensA : TryParensA = ini.BoolValue("Lyricator", "TryParensA")
	Dim TryBracketsA : TryBracketsA = ini.BoolValue("Lyricator", "TryBracketsA")
	Dim TryBracesA : TryBracesA = ini.BoolValue("Lyricator", "TryBracesA")
	Dim TryQuotesA : TryQuotesA = ini.BoolValue("Lyricator", "TryQuotesA")
	Dim TrySplitArrayA : TrySplitArrayA = ini.StringValue("Lyricator", "TrySplitArrayA")
	Dim TryBlackListA : TryBlackListA = ini.StringValue("Lyricator", "TryBlackListA")

	Dim TryParensT : TryParensT = ini.BoolValue("Lyricator", "TryParensT")
	Dim TryBracketsT : TryBracketsT = ini.BoolValue("Lyricator", "TryBracketsT")
	Dim TryBracesT : TryBracesT = ini.BoolValue("Lyricator", "TryBracesT")
	Dim TryQuotesT : TryQuotesT = ini.BoolValue("Lyricator", "TryQuotesT")
	Dim TrySplitArrayT : TrySplitArrayT = ini.StringValue("Lyricator", "TrySplitArrayT")
	Dim TryBlackListT : TryBlackListT = ini.StringValue("Lyricator", "TryBlackListT")

	Dim TryLyricsPlugin : TryLyricsPlugin = ini.BoolValue("Lyricator", "TryLyricsPlugin")
	Dim TryLyricsWiki : TryLyricsWiki = ini.BoolValue("Lyricator", "TryLyricsWiki")
	Dim TryLyricsSongs : TryLyricsSongs = ini.BoolValue("Lyricator", "TryLyricsSongs")
	
	Dim TryAutoClose : TryAutoClose = ini.BoolValue("Lyricator", "TryAutoClose")

	Dim a : Set a = UI.NewGroupBox(Sheet) : a.Caption = "Artist Settings" : a.Common.SetRect 10, 10, 230, 210
	Dim t : Set t = UI.NewGroupBox(Sheet) : t.Caption = "Title Settings"  : t.Common.SetRect 250, 10, 230, 210
	Dim l : Set l = UI.NewGroupBox(Sheet) : l.Caption = "Lyrics" : l.Common.SetRect 10, 225, 230, 170
	Dim s : Set s = UI.NewGroupBox(Sheet) : s.Caption = "Sources"  : s.Common.SetRect 250, 225, 230, 90
	Dim g : Set g = UI.NewGroupBox(Sheet) : g.Caption = "General"  : g.Common.SetRect 250, 320, 230, 75
	Dim ls : Set ls = UI.NewGroupBox(l) : ls.Caption = "Single-Line Lyrics"  : ls.Common.SetRect 10, 50, 210, 110

  Dim e
  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryParensA"
  e.Common.Hint = "Remove anything within parentheses ()"
  e.Caption = Translate("Remove Within Parentheses")
  e.Checked = TryParensA

  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 40, 250, 20
  e.Common.ControlName = "TryBracketsA"
  e.Common.Hint = "Remove anything within brackets []"
  e.Caption = Translate("Remove Within Brackets")
  e.Checked = TryBracketsA

  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 60, 250, 20
  e.Common.ControlName = "TryBracesA"
  e.Common.Hint = "Remove anything within braces {}"
  e.Caption = Translate("Remove Within Braces")
  e.Checked = TryBracesA

  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 80, 250, 20
  e.Common.ControlName = "TryQuotesA"
  e.Common.Hint = "Ignore single- and double-quotation marks"
  e.Caption = Translate("Ignore Single/Double Quotes")
  e.Checked = TryQuotesA

  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 100, 250, 20
  e.Common.ControlName = "TryAllArtists"
  e.Common.Hint = "Attempt all artists (separated by semi-colon)"
  e.Caption = Translate("Attempt All Artists")
  e.Checked = TryAllArtists

  Set e = UI.NewCheckbox(a)
  e.Common.SetRect 15, 120, 250, 20
  e.Common.ControlName = "TryCommaArtists"
  e.Common.Hint = "Convert ""Surname, Name"" to ""Name Surname"""
  e.Caption = Translate("Fix Comma Surnames")
  e.Checked = TryCommaArtists

  Set e = UI.NewLabel(a)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 150, 200, 20
  e.Caption = Translate("Delimiter Array") & ":"
  
  Set e = ui.NewEdit(a)
  e.Common.SetRect 100, 147, 100, 17
  e.Common.ControlName = "TrySplitArrayA"
  e.Common.Hint = "Semi-colon-separated delimeter array"
  e.Text = TrySplitArrayA

  Set e = UI.NewLabel(a)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 180, 200, 20
  e.Caption = Translate("Black List") & ":"
  
  Set e = ui.NewEdit(a)
  e.Common.SetRect 100, 177, 100, 17
  e.Common.ControlName = "TryBlackListA"
  e.Common.Hint = "Semi-colon-separated Black List (ignore these words)"
  e.Text = TryBlackListA

  Set e = UI.NewCheckbox(t)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryParensT"
  e.Common.Hint = "Remove anything within parentheses ()"
  e.Caption = Translate("Remove Within Parentheses")
  e.Checked = TryParensT

  Set e = UI.NewCheckbox(t)
  e.Common.SetRect 15, 40, 250, 20
  e.Common.ControlName = "TryBracketsT"
  e.Common.Hint = "Remove anything within brackets []"
  e.Caption = Translate("Remove Within Brackets")
  e.Checked = TryBracketsT

  Set e = UI.NewCheckbox(t)
  e.Common.SetRect 15, 60, 250, 20
  e.Common.ControlName = "TryBracesT"
  e.Common.Hint = "Remove anything within braces {}"
  e.Caption = Translate("Remove Within Braces")
  e.Checked = TryBracesT

  Set e = UI.NewCheckbox(t)
  e.Common.SetRect 15, 80, 250, 20
  e.Common.ControlName = "TryQuotesT"
  e.Common.Hint = "Ignore single- and double-quotation marks"
  e.Caption = Translate("Ignore Single/Double Quotes")
  e.Checked = TryQuotesT

  Set e = UI.NewLabel(t)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 150, 200, 20
  e.Caption = Translate("Delimiter Array") & ":"
  
  Set e = ui.NewEdit(t)
  e.Common.SetRect 100, 147, 100, 17
  e.Common.ControlName = "TrySplitArrayT"
  e.Common.Hint = "Semi-colon-separated delimeter array"
  e.Text = TrySplitArrayT
    
  Set e = UI.NewLabel(t)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 180, 200, 20
  e.Caption = Translate("Black List") & ":"
  
  Set e = ui.NewEdit(t)
  e.Common.SetRect 100, 177, 100, 17
  e.Common.ControlName = "TryBlackListT"
  e.Common.Hint = "Semi-colon-separated Black List (ignore these words)"
  e.Text = TryBlackListT

  Set e = UI.NewCheckbox(l)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryCleanupWhiteSpace"
  e.Common.Hint = "Consolidate excess white-space (e.g. three or more line breaks)"
  e.Caption = Translate("Cleanup Whitespace")
  e.Checked = TryCleanupWhiteSpace

  Set e = UI.NewCheckbox(ls)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryRejectSingleLine"
  e.Common.Hint = "Ignore lyrics that contain only one single line"
  e.Caption = Translate("Ignore")
  e.Checked = TryRejectSingleLine

  Set e = UI.NewLabel(ls)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 50, 200, 20
  e.Caption = Translate("Search String") & ":"
  
  Set e = ui.NewEdit(ls)
  e.Common.SetRect 100, 47, 100, 17
  e.Common.ControlName = "TrySingleLineSearch"
  e.Common.Hint = "Single-Line Search String"
  e.Text = TrySingleLineSearch

  Set e = UI.NewLabel(ls)
  e.Alignment = 0
  e.Autosize = False
  e.Common.SetRect 15, 80, 200, 20
  e.Caption = Translate("Replace String") & ":"
  
  Set e = ui.NewEdit(ls)
  e.Common.SetRect 100, 77, 100, 17
  e.Common.ControlName = "TrySingleLineReplace"
  e.Common.Hint = "Single-Line Replace String"
  e.Text = TrySingleLineReplace

  Set e = UI.NewCheckbox(s)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryLyricsPlugin"
  e.Common.Hint = "Search using www.LyricsPlugin.com"
  e.Caption = Translate("www.LyricsPlugin.com")
  e.Checked = TryLyricsPlugin

  Set e = UI.NewCheckbox(s)
  e.Common.SetRect 15, 40, 250, 20
  e.Common.ControlName = "TryLyricsWiki"
  e.Common.Hint = "Search using www.LyricWiki.org"
  e.Caption = Translate("www.LyricWiki.org")
  e.Checked = TryLyricsWiki

  Set e = UI.NewCheckbox(s)
  e.Common.SetRect 15, 60, 250, 20
  e.Common.ControlName = "TryLyricsSongs"
  e.Common.Hint = "Search using www.Lyrics-Songs.com (Careful -- Slow with Many False Positives)"
  e.Caption = Translate("www.Lyrics-Songs.com (Unreliable!)")
  e.Checked = TryLyricsSongs

  Set e = UI.NewCheckbox(g)
  e.Common.SetRect 15, 20, 250, 20
  e.Common.ControlName = "TryAutoClose"
  e.Common.Hint = "Auto-Close when done saving lyrics"
  e.Caption = Translate("Auto-Close After Save")
  e.Checked = TryAutoClose
End Sub

Sub SaveSheet(Sheet)
	Dim ini : Set ini = SDB.IniFile

  ini.BoolValue("Lyricator", "TryAllArtists") = Sheet.Common.ChildControl("TryAllArtists").Checked
  ini.BoolValue("Lyricator", "TryCommaArtists") = Sheet.Common.ChildControl("TryCommaArtists").Checked
  ini.BoolValue("Lyricator", "TryCleanupWhiteSpace") = Sheet.Common.ChildControl("TryCleanupWhiteSpace").Checked
  ini.BoolValue("Lyricator", "TryRejectSingleLine") = Sheet.Common.ChildControl("TryRejectSingleLine").Checked

  ini.StringValue("Lyricator", "TrySingleLineSearch") = Sheet.Common.ChildControl("TrySingleLineSearch").Text
  ini.StringValue("Lyricator", "TrySingleLineReplace") = Sheet.Common.ChildControl("TrySingleLineReplace").Text

  ini.BoolValue("Lyricator", "TryParensA") = Sheet.Common.ChildControl("TryParensA").Checked
  ini.BoolValue("Lyricator", "TryBracketsA") = Sheet.Common.ChildControl("TryBracketsA").Checked
  ini.BoolValue("Lyricator", "TryBracesA") = Sheet.Common.ChildControl("TryBracesA").Checked
  ini.BoolValue("Lyricator", "TryQuotesA") = Sheet.Common.ChildControl("TryQuotesA").Checked
  ini.StringValue("Lyricator", "TrySplitArrayA") = Sheet.Common.ChildControl("TrySplitArrayA").Text
  ini.StringValue("Lyricator", "TryBlackListA") = Sheet.Common.ChildControl("TryBlackListA").Text

  ini.BoolValue("Lyricator", "TryParensT") = Sheet.Common.ChildControl("TryParensT").Checked
  ini.BoolValue("Lyricator", "TryBracketsT") = Sheet.Common.ChildControl("TryBracketsT").Checked
  ini.BoolValue("Lyricator", "TryBracesT") = Sheet.Common.ChildControl("TryBracesT").Checked
  ini.BoolValue("Lyricator", "TryQuotesT") = Sheet.Common.ChildControl("TryQuotesT").Checked
  ini.StringValue("Lyricator", "TrySplitArrayT") = Sheet.Common.ChildControl("TrySplitArrayT").Text
  ini.StringValue("Lyricator", "TryBlackListT") = Sheet.Common.ChildControl("TryBlackListT").Text

  If Not Sheet.Common.ChildControl("TryLyricsPlugin").Checked And Not Sheet.Common.ChildControl("TryLyricsWiki").Checked And Not Sheet.Common.ChildControl("TryLyricsSongs").Checked Then
  	Debug "You Must Have One Lyric Server Checked" & vbnewline & vbnewline & "Defaulting to Lyrics Plugin"
  	Sheet.Common.ChildControl("TryLyricsPlugin").Checked = True
  End If
  
  ini.BoolValue("Lyricator", "TryLyricsPlugin") = Sheet.Common.ChildControl("TryLyricsPlugin").Checked
  ini.BoolValue("Lyricator", "TryLyricsWiki") = Sheet.Common.ChildControl("TryLyricsWiki").Checked
  ini.BoolValue("Lyricator", "TryLyricsSongs") = Sheet.Common.ChildControl("TryLyricsSongs").Checked

  ini.BoolValue("Lyricator", "TryAutoClose") = Sheet.Common.ChildControl("TryAutoClose").Checked
End Sub

Function Translate(str)
  Translate = str
  Dim dic : Set dic = SDB.Objects("LyrDict")
  If Not (dic Is Nothing) Then
    If dic.Exists(str) Then
      Translate = dic.Item(str)
    End If
  End If
End Function

Sub Install()
	Dim iniFile : iniFile = SDB.ApplicationPath & "Scripts\Scripts.ini"
  Dim f : Set f = SDB.Tools.IniFileByPath(iniFile)
  If Not (f Is Nothing) Then
    f.StringValue("Lyricator", "Filename") = "Auto\Lyricator.vbs"
    f.StringValue("Lyricator", "Procname") = "Lyricator"
    f.StringValue("Lyricator", "Order") = "99"
    f.StringValue("Lyricator", "DisplayName") = "Lyricator"
    f.StringValue("Lyricator", "Description") = "Batch Import Lyrics"
    f.StringValue("Lyricator", "Language") = "VBScript"
    f.StringValue("Lyricator", "ScriptType") = "0"
    SDB.RefreshScriptItems
  End If

	Dim ini : Set ini = SDB.IniFile

  If Not ini.BoolValue("Lyricator", "TryAllArtists") Then ini.BoolValue("Lyricator", "TryAllArtists") = True End If
  If Not ini.BoolValue("Lyricator", "TryCommaArtists") Then ini.BoolValue("Lyricator", "TryCommaArtists") = True End If
  If Not ini.BoolValue("Lyricator", "TryCleanupWhiteSpace") Then ini.BoolValue("Lyricator", "TryCleanupWhiteSpace") = True End If
  If Not ini.BoolValue("Lyricator", "TryRejectSingleLine") Then ini.BoolValue("Lyricator", "TryRejectSingleLine") = False End If

  If ini.StringValue("Lyricator", "TrySingleLineSearch") = "" Then ini.StringValue("Lyricator", "TrySingleLineSearch") = "Instr" End If
  If ini.StringValue("Lyricator", "TrySingleLineReplace") = "" Then ini.StringValue("Lyricator", "TrySingleLineReplace") = "[Instrumental]" End If

  If Not ini.BoolValue("Lyricator", "TryParensA") Then ini.BoolValue("Lyricator", "TryParensA") = False End If
  If Not ini.BoolValue("Lyricator", "TryBracketsA") Then ini.BoolValue("Lyricator", "TryBracketsA") = False End If
  If Not ini.BoolValue("Lyricator", "TryBracesA") Then ini.BoolValue("Lyricator", "TryBracesA") = False End If
  If Not ini.BoolValue("Lyricator", "TryQuotesA") Then ini.BoolValue("Lyricator", "TryQuotesA") = False End If
  If ini.StringValue("Lyricator", "TrySplitArrayA") = "" Then ini.StringValue("Lyricator", "TrySplitArrayA") = "and;&" End If
  If ini.StringValue("Lyricator", "TryBlackListA") = "" Then ini.StringValue("Lyricator", "TryBlackListA") = "" End If

  If Not ini.BoolValue("Lyricator", "TryParensT") Then ini.BoolValue("Lyricator", "TryParensT") = True End If
  If Not ini.BoolValue("Lyricator", "TryBracketsT") Then ini.BoolValue("Lyricator", "TryBracketsT") = True End If
  If Not ini.BoolValue("Lyricator", "TryBracesT") Then ini.BoolValue("Lyricator", "TryBracesT") = True End If
  If Not ini.BoolValue("Lyricator", "TryQuotesT") Then ini.BoolValue("Lyricator", "TryQuotesT") = True End If
  If ini.StringValue("Lyricator", "TrySplitArrayT") = "" Then ini.StringValue("Lyricator", "TrySplitArrayT") = "" End If
  If ini.StringValue("Lyricator", "TryBlackListT") = "" Then ini.StringValue("Lyricator", "TryBlackListT") = "Medley" End If

  If Not ini.BoolValue("Lyricator", "TryLyricsPlugin") Then ini.BoolValue("Lyricator", "TryLyricsPlugin") = True End If
  If Not ini.BoolValue("Lyricator", "TryLyricsWiki") Then ini.BoolValue("Lyricator", "TryLyricsWiki") = True End If
  If Not ini.BoolValue("Lyricator", "TryLyricsSongs") Then ini.BoolValue("Lyricator", "TryLyricsSongs") = False End If

  If Not ini.BoolValue("Lyricator", "TryAutoClose") Then ini.BoolValue("Lyricator", "TryAutoClose") = True End If
End Sub

homersheineken

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by homersheineken » Tue Jun 02, 2009 10:43 am

Do you have a link to download this script (or your updated one) ?

powerpill-pacman
Posts: 154
Joined: Mon Feb 21, 2005 1:07 pm
Location: berlin, germany
Contact:

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by powerpill-pacman » Wed Jun 03, 2009 3:21 am

I don't know whether this is a unique problem with my machine, but Lyricator doesn't work in the newest RC (3.1.0.1250) on Windows 7 RC-1. I know that it did work on the Windows 7 RC, but not until which version of MM's RCs.
Any solution?
Windows 7 Ultimate (64bit) - MediaMonkey 3.2.4.1304
My music on Soundcloud
some more on Last.fm
if you really like my music...

sommo

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by sommo » Fri Jun 05, 2009 2:14 pm

Download Link
Zip (MMIP file is inside)

Code: Select all

http://tiptoes.hobby-site.com/mbz/lastfm/lyricator.zip
MMIP

Code: Select all

http://www.mediafire.com/?jjjwzmg5wnn
:)

nohitter151
Posts: 23640
Joined: Wed Aug 09, 2006 10:20 am
Location: NJ, USA
Contact:

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by nohitter151 » Fri Jun 05, 2009 2:18 pm

powerpill-pacman wrote:I don't know whether this is a unique problem with my machine, but Lyricator doesn't work in the newest RC (3.1.0.1250) on Windows 7 RC-1. I know that it did work on the Windows 7 RC, but not until which version of MM's RCs.
Any solution?
Hm, works fine here, I'm using both Win 7 build 7100 and MM build 1250.
MediaMonkey user since 2006
Need help? Got a suggestion? Can't find something?

Please no PMs in reply to a post. Just reply in the thread.

homersheineken

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by homersheineken » Tue Jun 09, 2009 11:28 am

Thx sommo, that worked,
I couldn't get the one on the front page to work, but I'm good now!

ambrose
Posts: 19
Joined: Fri Jun 12, 2009 8:18 am

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by ambrose » Fri Jun 12, 2009 7:57 pm

Hi, I love this script! Thank you. Does anyone know if its possible to have associate a keyboard shortcut, or a dockable shortcut?
Thanks

nynaevelan
Posts: 5559
Joined: Wed Feb 07, 2007 11:07 pm
Location: New Jersey, USA
Contact:

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by nynaevelan » Fri Jun 12, 2009 8:45 pm

If you use the Right Click for Scripts script, you can add a toolbar button with that script.

Nyn
3.2x - Win7 Ultimate (Zen Touch 2 16 GB/Zen 8GB)
Link to Favorite Scripts/Skins

Join Dropbox, the online site to share your files

DrewK

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by DrewK » Thu Jul 02, 2009 2:53 pm

Das Monkey's site is down. Can someone please upload the file point me to a site where I can download it?

Thanks

nyCecilia
Posts: 31
Joined: Fri May 16, 2008 10:21 pm

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by nyCecilia » Tue Jul 07, 2009 9:26 pm

Anyone know of a way I can add a lyrics server to Lyricator? I found this site (www.musica.com) that has a lot of my music, if only I could get lyricator to pull from there, I'd be in double-dog heaven!

Goatboy
Posts: 3
Joined: Tue Jul 07, 2009 10:33 am

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by Goatboy » Wed Jul 08, 2009 1:31 pm

This has completely stopped working for me today and I've got no idea why. When I run the script I get the normal pop up box but it's just a white screen and nothing happens. Anyone know what may be wrong or is anyone else having trouble?

edit - just to be clear here is a picture of the window I now get:
Image

jgangstahippie

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by jgangstahippie » Wed Jul 08, 2009 6:41 pm

I am currently using MediaMonkey Gold 3.1.0.1256 on Vista
I am able to install the script, and it is recognized under options, but I am unable to use it. I can't find it with my right click for scripts, and it is not on the toolbar so can any of you guys help?

nohitter151
Posts: 23640
Joined: Wed Aug 09, 2006 10:20 am
Location: NJ, USA
Contact:

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by nohitter151 » Wed Jul 08, 2009 7:19 pm

jgangstahippie wrote:I am currently using MediaMonkey Gold 3.1.0.1256 on Vista
I am able to install the script, and it is recognized under options, but I am unable to use it. I can't find it with my right click for scripts, and it is not on the toolbar so can any of you guys help?
Tools | Scripts | Lyricator.
MediaMonkey user since 2006
Need help? Got a suggestion? Can't find something?

Please no PMs in reply to a post. Just reply in the thread.

jgangstahippie7:18
Posts: 4
Joined: Sun Nov 30, 2008 3:51 pm

Re: Lyricator - Batch Lyrics Updater v0.9.6b [MM3]

Post by jgangstahippie7:18 » Wed Jul 08, 2009 8:50 pm

nohitter151 wrote:
jgangstahippie wrote:I am currently using MediaMonkey Gold 3.1.0.1256 on Vista
I am able to install the script, and it is recognized under options, but I am unable to use it. I can't find it with my right click for scripts, and it is not on the toolbar so can any of you guys help?
Tools | Scripts | Lyricator.
It's not located there for some reason
***Nevermind***fixed it!
Sorry for the double user name thing.
I was logged in on this username, but it prompted me to use another sn on my first post

Locked