Then it converts the song into the format for EasiSlides, and fills in all the information.
Here is the script:
CODE: AutoIt
#cs ----------------------------------------------------------------------------
Script Name:
CCLI Importer
Script Description:
Imports songs from the CCLI database.
Instructions:
Edit settings.ini to your needs.
Author:
Sean "On_fire" Goheen <projects@onfire.us>
AutoIt Version:
3.1.1.0
License:
Copyright © 2007 Sean Goheen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ce ----------------------------------------------------------------------------
#include <ANYGUIv2.8.au3>
#include <Array.au3>
#include <File.au3>
#include <GUIConstants.au3>
#Include <GuiListView.au3>
#include <IE.au3>
#include <Misc.au3>
_Singleton( "CCLI Importer" )
_IEErrorHandlerRegister()
_IEErrorNotify(0)
FileInstall( "CCLI.ico", "CCLI.ico" )
FileInstall( "settings.ini", "settings.ini" )
Global $oIE, $criteria, $songListTable, $ResultsList = 0, $loggedIn = 0, $curPage = 1
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Display Inline Images","REG_SZ","no")
$programExe = IniRead ( "settings.ini", "Settings", "programLocation", @ProgramFilesDir & "\Easislides\Easislides.exe" )
If Not FileExists ( $programExe ) Then
MsgBox(48,"Unable to locate EasiSlides.","Unable to automatically locate the EasiSlides program, please locate it now." & @CRLF & @CRLF & "If you are unsure of where to look, click " & '"' & "Start" & '"' & " and then " & '"' & "Search" & '"' & " and search for EasiSlides.exe." & @CRLF & "Once it has been found, look at the " & '"' & "In Folder" & '"' & " coloumn and type what is there in the next dialog.")
$programExe = FileOpenDialog ( "Please select EasiSlides.exe", "C:", "Easislides.exe" )
IniWrite ( "settings.ini", "Settings", "programLocation", $programExe )
EndIf
$un=IniRead("settings.ini","Settings","username","")
if $un = "" Then IniWrite("settings.ini","Settings","username",InputBox("CCLI Importer","Please enter your Username for CCLI:",""," M","-1","-1","-1","-1"))
$pw=IniRead("settings.ini","Settings","password","")
if $pw = "" Then IniWrite("settings.ini","Settings","password",InputBox("CCLI Importer","Please enter your Password for CCLI:","","*M","-1","-1","-1","-1"))
#region Per Program Settings
$mainWindow = "EasiSlides"
$childWindow = "Edit Database Item"
$clientCoordsX = 15 ;point x to check in CLIENT COORDS
$clientCoordsY = 30 ;point y to check in CLIENT COORDS
$btnName = "Import from CCLI"
$btnX = 417
$btnY = 2
$btnW = 21
$btnH = 21
$importName = "WindowsForms10.EDIT.app.0.378734a4"
$importAuthor = "WindowsForms10.EDIT.app.0.378734a2"
$importCatalog = "none"
$importCopyright = "WindowsForms10.EDIT.app.0.378734a1"
$importCCLI = "WindowsForms10.EDIT.app.0.378734a5"
$importKey = "WindowsForms10.COMBOBOX.app.0.378734a5"
$importKeyLine = "none"
$importThemes = "none"
$importLyrics = "WindowsForms10.RichEdit20W.app.0.378734a1"
$importAdmin = "none"
#endregion
$programDrive = ""
$programDirectory = ""
$programName = ""
$programExtension = ""
_PathSplit ( $programExe , $programDrive, $programDirectory, $programName, $programExtension)
If ProcessExists ( $programName & $programExtension ) = 0 Then
Run ( $programExe )
WinWait ( $mainWindow )
EndIf
$ie = load()
If $ie = -1 Then MsgBox(16, "CCLI Importer", 'Connection to "http://ccli.com" failed.'&@CRLF&'Please check your internet connection and try again.')
While WinExists($mainWindow)
Dim $coords[2]
$coords[0] = $clientCoordsX ;point x to check in CLIENT COORDS
$coords[1] = $clientCoordsY
If WinWaitActive ( $childWindow, "", 5 ) = 1 Then
$Ctrltarget = _GuiTarget($childWindow, "", "", $coords)
$btn = _TargetaddButton($btnName, $btnX, $btnY, $btnW, $btnH, BitOR ( $BS_FLAT, $BS_ICON ), -1, $Ctrltarget)
GUICtrlSetImage ( $btn[0], "CCLI.ico" )
GUISetState(@SW_SHOW, $btn)
WinActivate ( $childWindow )
While WinExists($childWindow)
$msg = GUIGetMsg()
Select
Case $msg = $btn[0]
newSearch()
EndSelect
WEnd
GUIDelete($btn[2])
$btn = ""
$Ctrltarget = ""
EndIf
WEnd
Exit
; Login into CCLI
Func load()
$un=IniRead("settings.ini","Settings","username","")
if $un = "" Then IniWrite("settings.ini","Settings","username",InputBox("CCLI Importer","Please enter your Username for CCLI:",""," M","-1","-1","-1","-1"))
$pw=IniRead("settings.ini","Settings","password","")
if $pw = "" Then IniWrite("settings.ini","Settings","password",InputBox("CCLI Importer","Please enter your Password for CCLI:","","*M","-1","-1","-1","-1"))
ProgressOn("CCLI Importer","CCLI Importer is loading...","Please wait...")
Global $oIE = _IECreate("http://www.ccli.com/ccli_services/",0,0,0)
$i = 0
$formHandeled = 0
While 1
If $formHandeled = 0 Then
$form = _IEFormGetObjByName($oIE, "loginInfo")
If @error = 0 Then
$formHandeled = 1
ProgressSet (33,"Login Page Loaded...")
$Javascript = _IEFormElementGetObjByName($form, "javascript")
_IEFormElementSetValue($Javascript, "yes")
$formAction = _IEFormElementGetObjByName($form, "formAction")
_IEFormElementSetValue($formAction, "login")
$userId = _IEFormElementGetObjByName($form, "LoginID")
_IEFormElementSetValue($userId, $un)
$pass = _IEFormElementGetObjByName($form, "password")
_IEFormElementSetValue($pass, $pw)
_IEFormSubmit($form, 0)
$formHandeled = 1
EndIf
EndIf
_IELinkClickByText($oIE,"Launch SongSelect", "", 0)
If @error = 0 Then
If $formHandeled = 0 Then
ProgressSet(50,"Welcome Page Loaded...")
Else
ProgressSet(66,"Welcome Page Loaded...")
EndIf
$loggedIn = 1
ExitLoop
Else
$i = $i + 1
If $i > 60 Then ExitLoop
Sleep(500)
EndIf
WEnd
ProgressOff()
Return $oIE
EndFunc
; Open a search dialoge asking for search terms
Func newSearch()
; == GUI generated with Koda ==
$SongSearch = GUICreate("Song Search", 242, 71, 360, 270)
GUICtrlCreateGroup("Search", 0, 0, 242, 70)
$SearchFor = GUICtrlCreateInput("", 8, 40, 225, 21, -1, $WS_EX_CLIENTEDGE)
$SearchType = GUICtrlCreateCombo("CCLI Number", 8, 16, 145, 21,$CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "Title & AKA|Title|Lyrics|Author|Catalog|Theme")
$SearchButton = GUICtrlCreateButton("Search", 158, 16, 75, 21, $BS_DEFPUSHBUTTON )
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
GUIDelete($SongSearch)
Return 10
Case $msg = $SearchButton
GUICtrlSetState($SearchFor, $GUI_DISABLE)
GUICtrlSetState($SearchType, $GUI_DISABLE)
GUICtrlSetState($SearchButton, $GUI_DISABLE)
GUICtrlSetData($SearchFor,StringStripWS(GUICtrlRead($SearchFor),7))
Switch Validate(GUICtrlRead($SearchType),GUICtrlRead($SearchFor))
Case 0
Switch GUICtrlRead($SearchType)
Case "Title & AKA"
$SearchType = "Title"
Case "Title"
$SearchType = "TitleOnly"
Case "Lyrics"
$SearchType = "Text"
Case "Author"
$SearchType = "Author"
Case "Catalog"
$SearchType = "Catalog"
Case "Theme"
$SearchType = "Theme"
Case "CCLI Number"
$SearchType = "CCLI Number"
EndSwitch
$criteria = _ArrayCreate($SearchType,GUICtrlRead($SearchFor))
$i = 0
While _IEFormGetObjByName($oIE, "fSearchBasic") = 0
$i = $i + 1
If $i > 60 Then ExitLoop
Sleep(500)
WEnd
ProgressSet(100,"Search Page Loaded...")
ProgressOff()
GUIDelete($SongSearch)
Return submitSearch($criteria)
Case 1
MsgBox(262208,"Error","You have entered an invalid CCLI song number." & @CRLF & "Only digits (or numbers, your choice) may be entered.")
GUICtrlSetState($SearchFor, $GUI_ENABLE)
GUICtrlSetState($SearchType, $GUI_ENABLE)
GUICtrlSetState($SearchButton, $GUI_ENABLE)
GUICtrlSetState($SearchFor, $GUI_FOCUS)
Case 2
MsgBox(262208,"Error","Please enter a search word of more than one character.")
GUICtrlSetState($SearchFor, $GUI_ENABLE)
GUICtrlSetState($SearchType, $GUI_ENABLE)
GUICtrlSetState($SearchButton, $GUI_ENABLE)
GUICtrlSetState($SearchFor, $GUI_FOCUS)
EndSwitch
EndSelect
Sleep(50)
If _IEFormGetObjByName($oIE, "fSearchBasic") <> 0 Then
ProgressSet(100,"Search Page Loaded...")
ProgressOff()
EndIf
WEnd
EndFunc
; Validate the search
Func Validate($SearchType,$SearchFor)
If $SearchType = "CCLI Number" Then
If StringIsDigit($SearchFor) = 0 Then Return 1
Else
If StringLen($SearchFor) < 2 Then Return 2
EndIf
Return 0
EndFunc
; Submit the search
Func submitSearch($criteria)
If $criteria <> 0 Then
$form = _IEFormGetObjByName($oIE, "fSearchBasic")
$search_words = _IEFormElementGetObjByName($form, "search_words")
_IEFormElementSetValue($search_words, $criteria[1])
$search_type = _IEFormElementGetObjByName($form, "search_type")
;~ _IEFormElementSetValue($search_type, $criteria[0])
_IEFormElementOptionselect($search_type, $criteria[0], 1, "byText", 1)
If $criteria[0] <> "Text" Then
$search_method = _IEFormElementGetObjByName($form, "search_method")
_IEFormElementSetValue($search_method, "exact")
EndIf
$resetPage = _IEFormElementGetObjByName($form, "resetPage")
_IEFormElementSetValue($resetPage, "yes")
$searchby = _IEFormElementGetObjByName($form, "searchby")
_IEFormElementSetValue($searchby, "")
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
_IEFormSubmit($form,0)
_IELoadWait($oIE,"",3000)
Return dispResults()
EndIf
Return 0
EndFunc
; Take the results and phrase, then display them.
Func dispResults()
$i = 0
ProgressSet(25,"Results Page Loaded...")
$frame = _IEFrameGetObjByName($oIE,"contentFrame")
_IELoadWait($frame)
$headderTable1 = _IETableGetCollection($frame,2)
$totalEntrees1 = _IETagNameGetCollection($headderTable1, "Span", 1)
$totalEntrees = StringReplace(StringStripWS($totalEntrees1.innerHtml, 2), " ", " ")
$results = ""
$mainTable1 = _IETableGetCollection($frame,3)
$totalRows = _IETagNameGetCollection($mainTable1, "Tr")
$reg = StringRegExp ( $totalEntrees, "Songs: .* - (.*) of (.*)", 1 )
If $reg[0] = $reg[1] Then
$footerSize = 5
Else
$footerSize = 6
EndIf
For $rowNum = 1 To ($totalRows.length-$footerSize)
ProgressSet( (((100/(($totalRows.length)-$footerSize))*$rowNum)*.75)+25 , "Processing Results...")
$curRow = _IETagNameGetCollection($mainTable1, "Tr", $rowNum)
$nameAuthorCatalog = _IETagNameGetCollection($curRow, "Td", 0)
$nameAuthorCatalog = _IETagNameGetCollection($curRow, "A", 0)
$ccliNumber = $nameAuthorCatalog.href
$ccliNumber = StringRegExpReplace ( $ccliNumber, "(.*song_id=)", "" )
$name = _IETagNameGetCollection($nameAuthorCatalog, "STRONG", 0)
$name = $name.innerHtml
$author = $nameAuthorCatalog.innerHtml
$authorL = StringInStr($author, "<BR>", 1)+3
$authorR = StringLen($author) + 1 - StringInStr($author, "<BR>", 1, -1)
$author = StringTrimLeft($author, $authorL)
$author = StringTrimRight($author, $authorR)
$author = StringReplace($author,"|","&")
$catalog = _IETagNameGetCollection($nameAuthorCatalog, "SPAN", 0)
$catalog = $catalog.innerHtml
$lyrics = _IETagNameGetCollection($curRow, "Td", 1)
If $lyrics.innerHtml = " " Then
$lyrics = ""
Else
$lyrics = "*"
EndIf
$audio = _IETagNameGetCollection($curRow, "Td", 2)
If $audio.innerHtml = " " Then
$audio = ""
Else
$audio = "*"
EndIf
$chord = _IETagNameGetCollection($curRow, "Td", 3)
If $chord.innerHtml = " " Then
$chord = ""
Else
$chord = "*"
EndIf
$lead = _IETagNameGetCollection($curRow, "Td", 4)
If $lead.innerHtml = " " Then
$lead = ""
Else
$lead = "*"
EndIf
$hymn = _IETagNameGetCollection($curRow, "Td", 5)
If $hymn.innerHtml = " " Then
$hymn = ""
Else
$hymn = "*"
EndIf
$link = $nameAuthorCatalog.href
_ArrayAdd($results,$name&"|"&$author&"|"&$ccliNumber&"|"&$catalog&"|"&$lyrics&"|"&$audio&"|"&$chord&"|"&$lead&"|"&$hymn&"|"&$link,1)
Next
$footerTable1 = _IETableGetCollection($frame,5)
$totalPages1 = _IETagNameGetCollection($footerTable1, "Td", 1)
$totalPages2 = _IETagNameGetCollection($totalPages1, "A")
$totalPages = $totalPages2.length+1
If $ResultsList = "0" Then
; == GUI generated with Koda ==
Global $ResultsList = GUICreate("Results List - "&$totalEntrees, 619, 433, 270, 136)
Global $Preview = GUICtrlCreateButton("Preview", 2, 400, 73, 31)
Global $Back = GUICtrlCreateButton("Back", 79, 400, 73, 31)
Global $Page = GUICtrlCreateSlider(154, 396, 310, 37, BitOR($TBS_BOTH,0))
Global $Next = GUICtrlCreateButton("Next", 467, 400, 72, 31)
Global $Import = GUICtrlCreateButton("Import", 544, 400, 72, 31)
Global $ListView1 = GUICtrlCreateListView("Title|Author|CCLI|Catalog|Ly|Au|Ch|Ld|Hm|link", 0, 0, 619, 396,$LVSCW_AUTOSIZE)
Else
_GUICtrlListViewDeleteAllItems($ListView1)
EndIf
For $i In $results
$array = StringSplit($i, "|")
If $array[5] = "*" Then GUICtrlCreateListViewItem($i, $ListView1)
Next
GUICtrlSetLimit($Page,$totalPages,1)
GUICtrlSetData($Page, $curPage)
If $curPage < 2 Then GUICtrlSetState($Back, $GUI_DISABLE)
If $curPage > ($totalPages-1) Then GUICtrlSetState($Next, $GUI_DISABLE)
_GUICtrlListViewSetColumnWidth($ListView1,0,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,1,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,2,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,3,$LVSCW_AUTOSIZE)
_GUICtrlListViewHideColumn($ListView1, 9)
ProgressSet(100,"Results Loaded...")
ProgressOff()
GUISetState(@SW_SHOW, $ResultsList)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
GUIDelete($ResultsList)
$ResultsList = "0"
Return 0
Case $msg = $Back
GUICtrlSetState($Next, $GUI_ENABLE)
_IELinkClickByText($footerTable1, $curPage+1)
$curPage = $curPage - 1
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Page
GUICtrlSetState($Next, $GUI_ENABLE)
_IELinkClickByText($footerTable1, GUICtrlRead($Page))
$curPage = GUICtrlRead($Page)
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Next
GUICtrlSetState($Back, $GUI_ENABLE)
_IELinkClickByText($footerTable1, $curPage+1)
$curPage = $curPage + 1
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Preview
$temp = StringSplit(GUICtrlRead(GUICtrlRead($ListView1)),"|")
_IENavigate($oIE, $temp[10])
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
If dispSong(GUICtrlRead(GUICtrlRead($ListView1))) = 1 Then
GUIDelete($ResultsList)
$ResultsList = "0"
Return 1
EndIf
Case $msg = $Import
If Not GUICtrlRead($ListView1) = 0 Then
$song = GUICtrlRead(GUICtrlRead($ListView1))
$song = StringSplit($song, "|")
$temp = StringSplit(GUICtrlRead(GUICtrlRead($ListView1)),"|")
_IENavigate($oIE, $temp[10])
If import($song[1],$song[2],$song[4]) = 1 Then
GUIDelete($ResultsList)
$ResultsList = "0"
Return 1
EndIf
EndIf
EndSelect
WEnd
EndFunc
Func dispSong($song)
_IELoadWait($oIE,"",3000)
ProgressSet(50,"Results Page Loaded...")
$info = StringSplit($song, "|")
For $i = 6 To 9
If $info[$i] = "*" Then
$info[$i] = $GUI_CHECKED
Else
$info[$i] = $GUI_UNCHECKED
EndIf
Next
$infoTable = _IETableGetCollection($oIE, 9)
$lyrics1 = _IETableGetCollection($oIE, 11)
$lyrics1 = _IETagNameGetCollection($lyrics1, "span", 0)
$lyrics1 = _IETagNameAllGetCollection($lyrics1)
$lyrics = ""
For $tag In $lyrics1
If $tag.nodeName = "BR" Then
$lyrics = $lyrics&@CRLF
Else
$lyrics = $lyrics&$tag.innerHTML
EndIf
Next
#Region ### START Koda GUI section ### Form=D:\songResult.kxf
$songResult = GUICreate("Result - "&$info[1], 507, 462, 232, 207)
$name = GUICtrlCreateInput($info[1], 48, 0, 225, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("Name:", 8, 0, 35, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$authors = GUICtrlCreateInput($info[2], 48, 24, 225, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("Authors:", 0, 24, 43, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$ccliNumber = GUICtrlCreateInput($info[3], 314, 0, 143, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("CCLI:", 276, 0, 33, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$audio = GUICtrlCreateCheckbox("Audio", 280, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[6])
$chords = GUICtrlCreateCheckbox("Chords", 336, 24, 57, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[7])
$lead = GUICtrlCreateCheckbox("Lead", 400, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[8])
$hymn = GUICtrlCreateCheckbox("Hymn", 456, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[9])
$Lyrics = GUICtrlCreateEdit($lyrics, 0, 48, 506, 413)
$Import = GUICtrlCreateButton("Import", 462, 1, 43, 20, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
ProgressSet(100,"Results Loaded...")
ProgressOff()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_IEAction($oIE, "back")
GUIDelete($songResult)
Return 0
Case $Import
GUIDelete($songResult)
import($info[1],$info[2],$info[4])
Return 1
EndSwitch
WEnd
EndFunc
Func import($name,$authors,$catalog)
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
$infoTable = _IETableGetCollection($oIE, 9)
$ccli = _IETagNameGetCollection($infoTable, "Td", 2)
$ccli = _IEPropertyGet($ccli, "innerHtml")
$copyright = _IETagNameGetCollection($infoTable, "Td", 6)
$copyright = StringReplace(_IEPropertyGet($copyright, "innerHtml"),"<BR>", "")
$key = _IETagNameGetCollection($infoTable, "Td", 12)
$key = _IEPropertyGet($key, "innerHtml")
$keyLine = _IETagNameGetCollection($infoTable, "Td", 14)
$keyLine = _IEPropertyGet($keyLine, "innerHtml")
$themes = _IETagNameGetCollection($infoTable, "Td", 16)
$themes = StringReplace(_IEPropertyGet($themes, "innerHtml"),"<BR>", ", ")
$lyrics1 = _IETableGetCollection($oIE, 11)
$lyrics1 = _IETagNameGetCollection($lyrics1, "span", 0)
$lyrics1 = _IETagNameAllGetCollection($lyrics1)
$lyrics = ""
$lyricsTranslator = IniReadSection( "settings.ini", "Translations" )
For $tag In $lyrics1
If $tag.nodeName = "BR" Then
$lyrics = $lyrics&@CRLF
Else
$lyrics = $lyrics&$tag.innerHtml
EndIf
Next
$tag1 = $lyrics
For $var = 1 To UBound($lyricsTranslator)-1
$tag1 = StringReplace($tag1, StringReplace($lyricsTranslator[$var][0], "||", @CRLF), $lyricsTranslator[$var][1])
Next
$lyrics = StringReplace($tag1, "<", "[")
$lyrics = StringReplace($lyrics, ">", "]")
WinActivate($childWindow)
WinWaitActive($childWindow)
If $importName <> "none" Then ControlSetText($childWindow,"",$importName,$name)
If $importAuthor <> "none" Then ControlSetText($childWindow,"",$importAuthor,$authors)
If $importCatalog <> "none" Then ControlSetText($childWindow,"",$importCatalog,$catalog)
If $importCopyright <> "none" Then ControlSetText($childWindow,"",$importCopyright,Chr(0169)&$copyright)
If $importCCLI <> "none" Then ControlSetText($childWindow,"",$importCCLI,$ccli)
If $importKey <> "none" Then ControlCommand($childWindow,"",$importKey,"SetCurrentSelection", $key)
If $importKeyLine <> "none" Then ControlSetText($childWindow,"",$importKeyLine,$keyLine)
If $importThemes <> "none" Then ControlSetText($childWindow,"",$importThemes,$themes)
If $importLyrics <> "none" Then ControlSetText($childWindow,"",$importLyrics,$lyrics)
If $importAdmin <> "none" Then ControlCommand($childWindow,"",$importAdmin,"SetCurrentSelection", "CCLI")
ProgressOff()
_IEAction($oIE, "back")
Return 1
EndFunc
Func onautoitexit()
_IEQuit($oIE)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Display Inline Images","REG_SZ", "yes")
EndFunc
Script Name:
CCLI Importer
Script Description:
Imports songs from the CCLI database.
Instructions:
Edit settings.ini to your needs.
Author:
Sean "On_fire" Goheen <projects@onfire.us>
AutoIt Version:
3.1.1.0
License:
Copyright © 2007 Sean Goheen
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#ce ----------------------------------------------------------------------------
#include <ANYGUIv2.8.au3>
#include <Array.au3>
#include <File.au3>
#include <GUIConstants.au3>
#Include <GuiListView.au3>
#include <IE.au3>
#include <Misc.au3>
_Singleton( "CCLI Importer" )
_IEErrorHandlerRegister()
_IEErrorNotify(0)
FileInstall( "CCLI.ico", "CCLI.ico" )
FileInstall( "settings.ini", "settings.ini" )
Global $oIE, $criteria, $songListTable, $ResultsList = 0, $loggedIn = 0, $curPage = 1
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Display Inline Images","REG_SZ","no")
$programExe = IniRead ( "settings.ini", "Settings", "programLocation", @ProgramFilesDir & "\Easislides\Easislides.exe" )
If Not FileExists ( $programExe ) Then
MsgBox(48,"Unable to locate EasiSlides.","Unable to automatically locate the EasiSlides program, please locate it now." & @CRLF & @CRLF & "If you are unsure of where to look, click " & '"' & "Start" & '"' & " and then " & '"' & "Search" & '"' & " and search for EasiSlides.exe." & @CRLF & "Once it has been found, look at the " & '"' & "In Folder" & '"' & " coloumn and type what is there in the next dialog.")
$programExe = FileOpenDialog ( "Please select EasiSlides.exe", "C:", "Easislides.exe" )
IniWrite ( "settings.ini", "Settings", "programLocation", $programExe )
EndIf
$un=IniRead("settings.ini","Settings","username","")
if $un = "" Then IniWrite("settings.ini","Settings","username",InputBox("CCLI Importer","Please enter your Username for CCLI:",""," M","-1","-1","-1","-1"))
$pw=IniRead("settings.ini","Settings","password","")
if $pw = "" Then IniWrite("settings.ini","Settings","password",InputBox("CCLI Importer","Please enter your Password for CCLI:","","*M","-1","-1","-1","-1"))
#region Per Program Settings
$mainWindow = "EasiSlides"
$childWindow = "Edit Database Item"
$clientCoordsX = 15 ;point x to check in CLIENT COORDS
$clientCoordsY = 30 ;point y to check in CLIENT COORDS
$btnName = "Import from CCLI"
$btnX = 417
$btnY = 2
$btnW = 21
$btnH = 21
$importName = "WindowsForms10.EDIT.app.0.378734a4"
$importAuthor = "WindowsForms10.EDIT.app.0.378734a2"
$importCatalog = "none"
$importCopyright = "WindowsForms10.EDIT.app.0.378734a1"
$importCCLI = "WindowsForms10.EDIT.app.0.378734a5"
$importKey = "WindowsForms10.COMBOBOX.app.0.378734a5"
$importKeyLine = "none"
$importThemes = "none"
$importLyrics = "WindowsForms10.RichEdit20W.app.0.378734a1"
$importAdmin = "none"
#endregion
$programDrive = ""
$programDirectory = ""
$programName = ""
$programExtension = ""
_PathSplit ( $programExe , $programDrive, $programDirectory, $programName, $programExtension)
If ProcessExists ( $programName & $programExtension ) = 0 Then
Run ( $programExe )
WinWait ( $mainWindow )
EndIf
$ie = load()
If $ie = -1 Then MsgBox(16, "CCLI Importer", 'Connection to "http://ccli.com" failed.'&@CRLF&'Please check your internet connection and try again.')
While WinExists($mainWindow)
Dim $coords[2]
$coords[0] = $clientCoordsX ;point x to check in CLIENT COORDS
$coords[1] = $clientCoordsY
If WinWaitActive ( $childWindow, "", 5 ) = 1 Then
$Ctrltarget = _GuiTarget($childWindow, "", "", $coords)
$btn = _TargetaddButton($btnName, $btnX, $btnY, $btnW, $btnH, BitOR ( $BS_FLAT, $BS_ICON ), -1, $Ctrltarget)
GUICtrlSetImage ( $btn[0], "CCLI.ico" )
GUISetState(@SW_SHOW, $btn)
WinActivate ( $childWindow )
While WinExists($childWindow)
$msg = GUIGetMsg()
Select
Case $msg = $btn[0]
newSearch()
EndSelect
WEnd
GUIDelete($btn[2])
$btn = ""
$Ctrltarget = ""
EndIf
WEnd
Exit
; Login into CCLI
Func load()
$un=IniRead("settings.ini","Settings","username","")
if $un = "" Then IniWrite("settings.ini","Settings","username",InputBox("CCLI Importer","Please enter your Username for CCLI:",""," M","-1","-1","-1","-1"))
$pw=IniRead("settings.ini","Settings","password","")
if $pw = "" Then IniWrite("settings.ini","Settings","password",InputBox("CCLI Importer","Please enter your Password for CCLI:","","*M","-1","-1","-1","-1"))
ProgressOn("CCLI Importer","CCLI Importer is loading...","Please wait...")
Global $oIE = _IECreate("http://www.ccli.com/ccli_services/",0,0,0)
$i = 0
$formHandeled = 0
While 1
If $formHandeled = 0 Then
$form = _IEFormGetObjByName($oIE, "loginInfo")
If @error = 0 Then
$formHandeled = 1
ProgressSet (33,"Login Page Loaded...")
$Javascript = _IEFormElementGetObjByName($form, "javascript")
_IEFormElementSetValue($Javascript, "yes")
$formAction = _IEFormElementGetObjByName($form, "formAction")
_IEFormElementSetValue($formAction, "login")
$userId = _IEFormElementGetObjByName($form, "LoginID")
_IEFormElementSetValue($userId, $un)
$pass = _IEFormElementGetObjByName($form, "password")
_IEFormElementSetValue($pass, $pw)
_IEFormSubmit($form, 0)
$formHandeled = 1
EndIf
EndIf
_IELinkClickByText($oIE,"Launch SongSelect", "", 0)
If @error = 0 Then
If $formHandeled = 0 Then
ProgressSet(50,"Welcome Page Loaded...")
Else
ProgressSet(66,"Welcome Page Loaded...")
EndIf
$loggedIn = 1
ExitLoop
Else
$i = $i + 1
If $i > 60 Then ExitLoop
Sleep(500)
EndIf
WEnd
ProgressOff()
Return $oIE
EndFunc
; Open a search dialoge asking for search terms
Func newSearch()
; == GUI generated with Koda ==
$SongSearch = GUICreate("Song Search", 242, 71, 360, 270)
GUICtrlCreateGroup("Search", 0, 0, 242, 70)
$SearchFor = GUICtrlCreateInput("", 8, 40, 225, 21, -1, $WS_EX_CLIENTEDGE)
$SearchType = GUICtrlCreateCombo("CCLI Number", 8, 16, 145, 21,$CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "Title & AKA|Title|Lyrics|Author|Catalog|Theme")
$SearchButton = GUICtrlCreateButton("Search", 158, 16, 75, 21, $BS_DEFPUSHBUTTON )
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
GUIDelete($SongSearch)
Return 10
Case $msg = $SearchButton
GUICtrlSetState($SearchFor, $GUI_DISABLE)
GUICtrlSetState($SearchType, $GUI_DISABLE)
GUICtrlSetState($SearchButton, $GUI_DISABLE)
GUICtrlSetData($SearchFor,StringStripWS(GUICtrlRead($SearchFor),7))
Switch Validate(GUICtrlRead($SearchType),GUICtrlRead($SearchFor))
Case 0
Switch GUICtrlRead($SearchType)
Case "Title & AKA"
$SearchType = "Title"
Case "Title"
$SearchType = "TitleOnly"
Case "Lyrics"
$SearchType = "Text"
Case "Author"
$SearchType = "Author"
Case "Catalog"
$SearchType = "Catalog"
Case "Theme"
$SearchType = "Theme"
Case "CCLI Number"
$SearchType = "CCLI Number"
EndSwitch
$criteria = _ArrayCreate($SearchType,GUICtrlRead($SearchFor))
$i = 0
While _IEFormGetObjByName($oIE, "fSearchBasic") = 0
$i = $i + 1
If $i > 60 Then ExitLoop
Sleep(500)
WEnd
ProgressSet(100,"Search Page Loaded...")
ProgressOff()
GUIDelete($SongSearch)
Return submitSearch($criteria)
Case 1
MsgBox(262208,"Error","You have entered an invalid CCLI song number." & @CRLF & "Only digits (or numbers, your choice) may be entered.")
GUICtrlSetState($SearchFor, $GUI_ENABLE)
GUICtrlSetState($SearchType, $GUI_ENABLE)
GUICtrlSetState($SearchButton, $GUI_ENABLE)
GUICtrlSetState($SearchFor, $GUI_FOCUS)
Case 2
MsgBox(262208,"Error","Please enter a search word of more than one character.")
GUICtrlSetState($SearchFor, $GUI_ENABLE)
GUICtrlSetState($SearchType, $GUI_ENABLE)
GUICtrlSetState($SearchButton, $GUI_ENABLE)
GUICtrlSetState($SearchFor, $GUI_FOCUS)
EndSwitch
EndSelect
Sleep(50)
If _IEFormGetObjByName($oIE, "fSearchBasic") <> 0 Then
ProgressSet(100,"Search Page Loaded...")
ProgressOff()
EndIf
WEnd
EndFunc
; Validate the search
Func Validate($SearchType,$SearchFor)
If $SearchType = "CCLI Number" Then
If StringIsDigit($SearchFor) = 0 Then Return 1
Else
If StringLen($SearchFor) < 2 Then Return 2
EndIf
Return 0
EndFunc
; Submit the search
Func submitSearch($criteria)
If $criteria <> 0 Then
$form = _IEFormGetObjByName($oIE, "fSearchBasic")
$search_words = _IEFormElementGetObjByName($form, "search_words")
_IEFormElementSetValue($search_words, $criteria[1])
$search_type = _IEFormElementGetObjByName($form, "search_type")
;~ _IEFormElementSetValue($search_type, $criteria[0])
_IEFormElementOptionselect($search_type, $criteria[0], 1, "byText", 1)
If $criteria[0] <> "Text" Then
$search_method = _IEFormElementGetObjByName($form, "search_method")
_IEFormElementSetValue($search_method, "exact")
EndIf
$resetPage = _IEFormElementGetObjByName($form, "resetPage")
_IEFormElementSetValue($resetPage, "yes")
$searchby = _IEFormElementGetObjByName($form, "searchby")
_IEFormElementSetValue($searchby, "")
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
_IEFormSubmit($form,0)
_IELoadWait($oIE,"",3000)
Return dispResults()
EndIf
Return 0
EndFunc
; Take the results and phrase, then display them.
Func dispResults()
$i = 0
ProgressSet(25,"Results Page Loaded...")
$frame = _IEFrameGetObjByName($oIE,"contentFrame")
_IELoadWait($frame)
$headderTable1 = _IETableGetCollection($frame,2)
$totalEntrees1 = _IETagNameGetCollection($headderTable1, "Span", 1)
$totalEntrees = StringReplace(StringStripWS($totalEntrees1.innerHtml, 2), " ", " ")
$results = ""
$mainTable1 = _IETableGetCollection($frame,3)
$totalRows = _IETagNameGetCollection($mainTable1, "Tr")
$reg = StringRegExp ( $totalEntrees, "Songs: .* - (.*) of (.*)", 1 )
If $reg[0] = $reg[1] Then
$footerSize = 5
Else
$footerSize = 6
EndIf
For $rowNum = 1 To ($totalRows.length-$footerSize)
ProgressSet( (((100/(($totalRows.length)-$footerSize))*$rowNum)*.75)+25 , "Processing Results...")
$curRow = _IETagNameGetCollection($mainTable1, "Tr", $rowNum)
$nameAuthorCatalog = _IETagNameGetCollection($curRow, "Td", 0)
$nameAuthorCatalog = _IETagNameGetCollection($curRow, "A", 0)
$ccliNumber = $nameAuthorCatalog.href
$ccliNumber = StringRegExpReplace ( $ccliNumber, "(.*song_id=)", "" )
$name = _IETagNameGetCollection($nameAuthorCatalog, "STRONG", 0)
$name = $name.innerHtml
$author = $nameAuthorCatalog.innerHtml
$authorL = StringInStr($author, "<BR>", 1)+3
$authorR = StringLen($author) + 1 - StringInStr($author, "<BR>", 1, -1)
$author = StringTrimLeft($author, $authorL)
$author = StringTrimRight($author, $authorR)
$author = StringReplace($author,"|","&")
$catalog = _IETagNameGetCollection($nameAuthorCatalog, "SPAN", 0)
$catalog = $catalog.innerHtml
$lyrics = _IETagNameGetCollection($curRow, "Td", 1)
If $lyrics.innerHtml = " " Then
$lyrics = ""
Else
$lyrics = "*"
EndIf
$audio = _IETagNameGetCollection($curRow, "Td", 2)
If $audio.innerHtml = " " Then
$audio = ""
Else
$audio = "*"
EndIf
$chord = _IETagNameGetCollection($curRow, "Td", 3)
If $chord.innerHtml = " " Then
$chord = ""
Else
$chord = "*"
EndIf
$lead = _IETagNameGetCollection($curRow, "Td", 4)
If $lead.innerHtml = " " Then
$lead = ""
Else
$lead = "*"
EndIf
$hymn = _IETagNameGetCollection($curRow, "Td", 5)
If $hymn.innerHtml = " " Then
$hymn = ""
Else
$hymn = "*"
EndIf
$link = $nameAuthorCatalog.href
_ArrayAdd($results,$name&"|"&$author&"|"&$ccliNumber&"|"&$catalog&"|"&$lyrics&"|"&$audio&"|"&$chord&"|"&$lead&"|"&$hymn&"|"&$link,1)
Next
$footerTable1 = _IETableGetCollection($frame,5)
$totalPages1 = _IETagNameGetCollection($footerTable1, "Td", 1)
$totalPages2 = _IETagNameGetCollection($totalPages1, "A")
$totalPages = $totalPages2.length+1
If $ResultsList = "0" Then
; == GUI generated with Koda ==
Global $ResultsList = GUICreate("Results List - "&$totalEntrees, 619, 433, 270, 136)
Global $Preview = GUICtrlCreateButton("Preview", 2, 400, 73, 31)
Global $Back = GUICtrlCreateButton("Back", 79, 400, 73, 31)
Global $Page = GUICtrlCreateSlider(154, 396, 310, 37, BitOR($TBS_BOTH,0))
Global $Next = GUICtrlCreateButton("Next", 467, 400, 72, 31)
Global $Import = GUICtrlCreateButton("Import", 544, 400, 72, 31)
Global $ListView1 = GUICtrlCreateListView("Title|Author|CCLI|Catalog|Ly|Au|Ch|Ld|Hm|link", 0, 0, 619, 396,$LVSCW_AUTOSIZE)
Else
_GUICtrlListViewDeleteAllItems($ListView1)
EndIf
For $i In $results
$array = StringSplit($i, "|")
If $array[5] = "*" Then GUICtrlCreateListViewItem($i, $ListView1)
Next
GUICtrlSetLimit($Page,$totalPages,1)
GUICtrlSetData($Page, $curPage)
If $curPage < 2 Then GUICtrlSetState($Back, $GUI_DISABLE)
If $curPage > ($totalPages-1) Then GUICtrlSetState($Next, $GUI_DISABLE)
_GUICtrlListViewSetColumnWidth($ListView1,0,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,1,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,2,$LVSCW_AUTOSIZE)
_GUICtrlListViewSetColumnWidth($ListView1,3,$LVSCW_AUTOSIZE)
_GUICtrlListViewHideColumn($ListView1, 9)
ProgressSet(100,"Results Loaded...")
ProgressOff()
GUISetState(@SW_SHOW, $ResultsList)
While 1
$msg = GuiGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
GUIDelete($ResultsList)
$ResultsList = "0"
Return 0
Case $msg = $Back
GUICtrlSetState($Next, $GUI_ENABLE)
_IELinkClickByText($footerTable1, $curPage+1)
$curPage = $curPage - 1
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Page
GUICtrlSetState($Next, $GUI_ENABLE)
_IELinkClickByText($footerTable1, GUICtrlRead($Page))
$curPage = GUICtrlRead($Page)
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Next
GUICtrlSetState($Back, $GUI_ENABLE)
_IELinkClickByText($footerTable1, $curPage+1)
$curPage = $curPage + 1
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
dispResults()
Case $msg = $Preview
$temp = StringSplit(GUICtrlRead(GUICtrlRead($ListView1)),"|")
_IENavigate($oIE, $temp[10])
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
If dispSong(GUICtrlRead(GUICtrlRead($ListView1))) = 1 Then
GUIDelete($ResultsList)
$ResultsList = "0"
Return 1
EndIf
Case $msg = $Import
If Not GUICtrlRead($ListView1) = 0 Then
$song = GUICtrlRead(GUICtrlRead($ListView1))
$song = StringSplit($song, "|")
$temp = StringSplit(GUICtrlRead(GUICtrlRead($ListView1)),"|")
_IENavigate($oIE, $temp[10])
If import($song[1],$song[2],$song[4]) = 1 Then
GUIDelete($ResultsList)
$ResultsList = "0"
Return 1
EndIf
EndIf
EndSelect
WEnd
EndFunc
Func dispSong($song)
_IELoadWait($oIE,"",3000)
ProgressSet(50,"Results Page Loaded...")
$info = StringSplit($song, "|")
For $i = 6 To 9
If $info[$i] = "*" Then
$info[$i] = $GUI_CHECKED
Else
$info[$i] = $GUI_UNCHECKED
EndIf
Next
$infoTable = _IETableGetCollection($oIE, 9)
$lyrics1 = _IETableGetCollection($oIE, 11)
$lyrics1 = _IETagNameGetCollection($lyrics1, "span", 0)
$lyrics1 = _IETagNameAllGetCollection($lyrics1)
$lyrics = ""
For $tag In $lyrics1
If $tag.nodeName = "BR" Then
$lyrics = $lyrics&@CRLF
Else
$lyrics = $lyrics&$tag.innerHTML
EndIf
Next
#Region ### START Koda GUI section ### Form=D:\songResult.kxf
$songResult = GUICreate("Result - "&$info[1], 507, 462, 232, 207)
$name = GUICtrlCreateInput($info[1], 48, 0, 225, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("Name:", 8, 0, 35, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$authors = GUICtrlCreateInput($info[2], 48, 24, 225, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("Authors:", 0, 24, 43, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$ccliNumber = GUICtrlCreateInput($info[3], 314, 0, 143, 21, BitOR($ES_AUTOHSCROLL,$ES_READONLY))
GUICtrlCreateLabel("CCLI:", 276, 0, 33, 21, BitOR($SS_RIGHT,$SS_CENTERIMAGE))
$audio = GUICtrlCreateCheckbox("Audio", 280, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[6])
$chords = GUICtrlCreateCheckbox("Chords", 336, 24, 57, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[7])
$lead = GUICtrlCreateCheckbox("Lead", 400, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[8])
$hymn = GUICtrlCreateCheckbox("Hymn", 456, 24, 49, 21)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $info[9])
$Lyrics = GUICtrlCreateEdit($lyrics, 0, 48, 506, 413)
$Import = GUICtrlCreateButton("Import", 462, 1, 43, 20, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
ProgressSet(100,"Results Loaded...")
ProgressOff()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
_IEAction($oIE, "back")
GUIDelete($songResult)
Return 0
Case $Import
GUIDelete($songResult)
import($info[1],$info[2],$info[4])
Return 1
EndSwitch
WEnd
EndFunc
Func import($name,$authors,$catalog)
ProgressOn("CCLI Importer","CCLI Importer is working.","Please wait...")
$infoTable = _IETableGetCollection($oIE, 9)
$ccli = _IETagNameGetCollection($infoTable, "Td", 2)
$ccli = _IEPropertyGet($ccli, "innerHtml")
$copyright = _IETagNameGetCollection($infoTable, "Td", 6)
$copyright = StringReplace(_IEPropertyGet($copyright, "innerHtml"),"<BR>", "")
$key = _IETagNameGetCollection($infoTable, "Td", 12)
$key = _IEPropertyGet($key, "innerHtml")
$keyLine = _IETagNameGetCollection($infoTable, "Td", 14)
$keyLine = _IEPropertyGet($keyLine, "innerHtml")
$themes = _IETagNameGetCollection($infoTable, "Td", 16)
$themes = StringReplace(_IEPropertyGet($themes, "innerHtml"),"<BR>", ", ")
$lyrics1 = _IETableGetCollection($oIE, 11)
$lyrics1 = _IETagNameGetCollection($lyrics1, "span", 0)
$lyrics1 = _IETagNameAllGetCollection($lyrics1)
$lyrics = ""
$lyricsTranslator = IniReadSection( "settings.ini", "Translations" )
For $tag In $lyrics1
If $tag.nodeName = "BR" Then
$lyrics = $lyrics&@CRLF
Else
$lyrics = $lyrics&$tag.innerHtml
EndIf
Next
$tag1 = $lyrics
For $var = 1 To UBound($lyricsTranslator)-1
$tag1 = StringReplace($tag1, StringReplace($lyricsTranslator[$var][0], "||", @CRLF), $lyricsTranslator[$var][1])
Next
$lyrics = StringReplace($tag1, "<", "[")
$lyrics = StringReplace($lyrics, ">", "]")
WinActivate($childWindow)
WinWaitActive($childWindow)
If $importName <> "none" Then ControlSetText($childWindow,"",$importName,$name)
If $importAuthor <> "none" Then ControlSetText($childWindow,"",$importAuthor,$authors)
If $importCatalog <> "none" Then ControlSetText($childWindow,"",$importCatalog,$catalog)
If $importCopyright <> "none" Then ControlSetText($childWindow,"",$importCopyright,Chr(0169)&$copyright)
If $importCCLI <> "none" Then ControlSetText($childWindow,"",$importCCLI,$ccli)
If $importKey <> "none" Then ControlCommand($childWindow,"",$importKey,"SetCurrentSelection", $key)
If $importKeyLine <> "none" Then ControlSetText($childWindow,"",$importKeyLine,$keyLine)
If $importThemes <> "none" Then ControlSetText($childWindow,"",$importThemes,$themes)
If $importLyrics <> "none" Then ControlSetText($childWindow,"",$importLyrics,$lyrics)
If $importAdmin <> "none" Then ControlCommand($childWindow,"",$importAdmin,"SetCurrentSelection", "CCLI")
ProgressOff()
_IEAction($oIE, "back")
Return 1
EndFunc
Func onautoitexit()
_IEQuit($oIE)
RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main","Display Inline Images","REG_SZ", "yes")
EndFunc
I hope this can help some of you, let me know what you think. And If anyone has any ideas that would improve it (even if it's just a different function thats faster) then please let me know.
Attached File(s)
-
EasiSlidesCCLI.exe (291.97K)
Number of downloads: 323
This post has been edited by On_fire: 20 May 2008 - 06:44 PM

Sign In
Register
Help

MultiQuote