Jump to content
Sign in to follow this  
Jonniy

Help with downloading images.

Recommended Posts

Jonniy

So, today I have a script that doesn't work as it should. It should select a path based on parameters, and then download the given file. Code:
 

Global $sSite = 'yggdrasilradio.net'
Global $sHTTP = 'http://'
Global $sCurrentSongOldTitle = "2"
Global $sDataFile = @TempDir & "\YWWData.html"
Global $sDataSite = 'yggdrasilradio.net/data.php'
Global $sArtSite1 = 'yggdrasilradio.net/images/albumart/largethumbs/'
Global $sArtSite2 = 'yggdrasilradio.net/images/albumart/thumbs/'
Global $sArtSite3 = 'yggdrasilradio.net/images/albumart/'
Global $sArtPath = @TempDir & '\YWWArt.jpg'


Local $aSongProps = GetSongInfo()
GetSongImage($aSongProps[1], $aSongProps[12])

Func GetSongInfo()
    InetGet($sHTTP & $sDataSite, $sDataFile)
    
    If IsArray($aDataSplit1) == 1 Then
        For $i = 246 To 0 Step -1
            _ArrayDelete($aDataSplit1, $i)
        Next
    EndIf
    
    Local $hDataFile = FileOpen($sDataFile)
    FileSetPos($hDataFile, 0, $FILE_BEGIN)
    Local $sDataFileRaw = FileRead($hDataFile)
    Local $aDataSplit1 = StringSplit($sDataFileRaw, "|")
    FileClose($hDataFile)
    FileDelete($sDataFile)
    
    Return $aDataSplit1
EndFunc   ;==>GetSongInfo

Func GetSongImage($iSongId, $sSongImagePath)
    InetGet($sHTTP & $sArtSite1 & $iSongId & ".jpg", $sArtPath)

    If StringInStr(FileRead(FileOpen($sArtPath)), "ErrorDocument") <> 0 Then
        FileClose(-1)
        FileDelete(-1)
        InetGet($sHTTP & $sArtSite2 & $iSongId & ".jpg", $sArtPath)
        If StringInStr(FileRead(FileOpen($sArtPath)), "ErrorDocument") <> 0 Then
            FileClose(-1)
            FileDelete(-1)
            If StringInStr($sSongImagePath, "*./", 1) <> 0 Then
                InetGet($sHTTP & $sArtSite3 & StringTrimLeft($sSongImagePath, "3"), $sArtPath)
            ElseIf StringInStr($sSongImagePath, "*", 1) <> 0 Then
                InetGet($sHTTP & $sArtSite3 & StringTrimLeft($sSongImagePath, "1"), $sArtPath)
            Else
                InetGet($sHTTP & $sArtSite3 & $sSongImagePath, $sArtPath)
            EndIf
            If StringInStr(FileRead(FileOpen($sArtPath)), "ErrorDocument") <> 0 Then
                GUICtrlSetImage($hImageSongImageT1, $sImageDummy)
                FileClose(-1)
                FileDelete(-1)
            EndIf
        Else
            GUICtrlSetImage($hImageSongImageT1, $sArtPath)
        EndIf
    Else
        GUICtrlSetImage($hImageSongImageT1, $sArtPath)
    EndIf
EndFunc   ;==>GetSongImage

The complete code is here (fixed): https://mega.co.nz/#!sodATRaL!UU19gSK1sML0zvVmm8lloxvMDl9rCWfM2x-hrNgHRAc (ISN AutoIt Studio Format). I appreciate any help.
Greets,
Jonniy

Edited by Jonniy
Links and attachment removed at OP's request

Thanks for your help & have a good day. Yours sincerely, -Jonniy-  

Share this post


Link to post
Share on other sites
Jonniy

I don't reaaly know what goes wrong, but one can enter debug lines.
I'll do so tomorrow, because I've to go now.

EDIT:

Ok, I figured it out. I thought that if the image woudn't exist, it would download the error page. But that isn't the case.
Now I use FileExists instead.

Edited by Jonniy

Thanks for your help & have a good day. Yours sincerely, -Jonniy-  

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×