Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Internet music search and save


  • Please log in to reply
22 replies to this topic
garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
MODIFIED...............2007-10-23
NOTE:
dogpile ( and youtube ) had changed, so can't find more music with script below
here another script, downloads also youtube and search for music

http://www.autohotke... ... 163#148163





==========================================









============================================
DATE.....................2006-04-19
MODIFIED.............2006-10-08
NAME.....................LV_DOWNLOAD.ahk


-Wget.exe , can better break or stop/skip download
-MP3DirectCut.exe to record xy.ram to xy.mp3


Search for music/picture/all:
EXAMPLE..................=
type in jim reeves/or jimreeves/or jreeves in edit field SEARCH-NET ,enter
see songs (can select only MP3) and DNL-ALL
he'llhavetogo.rm http://www.midtod.com/audio
find more songs on the link rightside (most when ended with MP3/Sound/audio...)
doubleclick right column, see - 390- new songs , jim reeves live recordings
can download from .. until (select first row ,DNL-ALL, STOP)

RECORD button, to record xy.ram to xy.mp3

a few examples in URL-FAV

doubleclick on left column(or DNL-SEL)=download this song
rightclick right column=open URL

Lyric-button or minilyrics
can use wget ( or only autohotkey)

Posted Image

DATEMOD=2006-10-08
/*
DATE.....................2006-04-19
MODIFIED.................2006-10-08
NAME.....................LV_DOWNLOAD.ahk
USE......................find and download and record  music and search for lyric
TEST.....................not finished yet
ADD WGET.................http://www.gnu.org/software/wget/wget.html              instead of ahk urldownloadtofile
ADD MP3DirectCut.........http://www.mpesch3.de/     and also mpglib.dll and lame_enc.dll (F12)   for record ram.. to MP3
.........................http://www-users.york.ac.uk/~raa110/audacity/lame.html  lame_enc.dll    for MP3DirectCut
ADD MINILYRICS...........http://www.crintsoft.com/index.htm   (shareware)
REMARKS..................don't need add-ware, but wget.exe commended
picture..................https://ahknet.autohotkey.com/~garry/I%20walk%20the%20line_03.jpg

put wget and MP3DirectCut in subfolder
...wget\wget.exe
...MP3DIRECTCUT\mp3directcut.exe
==============================================================================
-EXAMPLE how to use:
 type in jim reeves/or jimreeves/or jreeves in edit field SEARCH-NET ,enter
 see songs (can select only MP3) and DNL-ALL

 doubleclick on left column(or DNL-SEL)=download this song
 rightclick right column=open URL


 find more songs on the link rightside (most when ended with MP3/Sound/audio...)
 example: he'llhavetogo.rm    http://www.midtod.com/audio
 doubleclick right column, see - 390- new songs , jim reeves live recordings
 can download from .. until (select first row ,DNL-ALL, STOP)

 see few examples when click on button URL-FAV


-RECORD :
 click button MUSIC, songs like xy.ram can record to xy.mp3
 select xy.ram and click RECORD
 music plays and MP3DirectCut starts and save to .._RECORDING\xy.mp3
 when open xy.mp3 with MP3DirectCut can cut left/right and save to xy2.mp3

-RECORD remarks AC97:
 set and select record stereo mix=20%,  play wave=80%
 MP3DirecCut.exe and mpglib.dll and lame_enc.dll must exist , settings F12 in MP3DirectCut.exe

-Black screen:
  Close with Esc
================================================================================
*/


#NoEnv
SetBatchLines -1
NAME2=DOWNLOAD_TEST
WGET      ="%A_SCRIPTDIR%\wget\wget.exe"
DIRECTCUT =%A_scriptDir%\MP3DIRECTCUT\mp3directcut.exe  ;Version 2.02 2006-03-09 or later

AutoTrim Off
transform,S,chr,32
transform,HK,chr,96
LAC1=.mp3`,.wav`,.rm`,.ra`,.ram`,.wma`,.mid
MAX1:=10000
I=0
DetectHiddenText,on
DetectHiddenWindows, on
SetTitleMatchMode,2

menu,S1,Add,&How to use,MH1
menu,S1,Add,&Record-Info,MH2
menu,S1,Add,&Lyric,MH3
menu,S1,Add,&About,MH4
menu,myMenuBar,Add,Help,:S1
gui,menu,MyMenuBar


FL1=%A_scriptdir%\URLDNL.ahk
FL2=%A_scriptdir%\URLCHK.txt

F1=_URL1.txt    ;original
F2=%A_scriptDir%\_URL2.txt    ;last
F5=%A_scriptDir%\_URL5.txt    ;all

F12=songtexturl.txt
F13=songtextmpb.txt

;for example
F11=%A_scriptdir%\urlfavorites.txt
ifnotexist,%F11%
{
Fileappend,http://www.mpbnet.com.br/textos/rm.html`r`n,%F11%
Fileappend,http://www.midtod.com/audio`r`n,%F11%
Fileappend,http://www.reddstewart.com/mp3s`r`n,%F11%
Fileappend,http://www.webegeek.net/jukebox/jukebox_files`r`n,%F11%
;Fileappend,http://www.boabird.nl/muziek`%20van`%20voor`%201960.htm`r`n,%F11%
Fileappend,http://www.boabird.nl/oldcountry.htm`r`n,%F11%
Fileappend,http://www.boabird.nl/jimmyreeves.htm`r`n,%F11%
Fileappend,http://www.boabird.nl/oldies.htm`r`n,%F11%
Fileappend,http://www.telenovelas-latin.net/uvod/odkazy/mp3`r`n,%F11%
Fileappend,http://tarpbg.com/td/pages/music`r`n,%F11%
Fileappend,http://dl.iskon.hr/himne`r`n,%F11%
Fileappend,http://eguren-zone.blogspot.com/2006/09/garota-de-ipanema.html`r`n,%F11%
Fileappend,http://www.paginadogaucho.com.br/teixeirinha/disc.htm`r`n,%F11%
}


VARX=ALL1
FX=%F2%
R3M=_MUSIC
ifnotexist,%R3M%
FileCreateDir,%R3M%

RU4=%A_SCRIPTDIR%\_RECORDING
ifnotexist,%RU4%
FileCreateDir,%RU4%



    ;black screen can close with ESC

   SysGet m, MonitorWorkArea
   Gui,2:-Border
   Gui,2:Color,000000   ;BLACK
   Gui,2:Font,S12 cwhite, Verdana
   Gui,2:Show,% "x" mLeft+5 " y" mTop+5 " w" mRight-mLeft-10 " h " mBottom-mTop-10, BLACK


;--show---------------------------------------------
  WA  := mRight-mLeft
  HA  := mBottom-mTop

  SZ  :=60           ;correct the screen size vertikal between 40...70
  SH  :=(HA*SZ)/100  ;height
  SX  :=(WA*.5)/100
  SY  :=(HA*.5)/100

  SW  :=(WA*99)/100  ;width
  SW1 :=(WA*29)/100  ;width 1/3
  SW2 :=(WA*46)/100  ;width half
  SW3 :=(WA*63)/100  ;width 2/3
  SW20:=(WA*5)/100   ;width 1/20
  SW50:=(WA*2)/100   ;width 1/50

;----- ListView -------------------------------------
  LVH :=(SH*SZ)/100
  ;ROW :=17
  LVW :=(SW-SW50)          ;ListView width
  LVW2:=(LVW*75)/100     ;Listview width 3/4
  LVW3:=(LVW*50)/100     ;Listview width 1/2

  XPSL:=(WA*1.5)/100     ;first x position
  XPOS:=(WA*8)/100
  XPS2:=(WA*4)/100
  YPOS:=(HA*4)/100
  WSIZ:=(WA*7)/100
  WSZL:=(WA*10)/100
  WSZ2:=(WA*3.5)/100
  HSIZ:=(HA*2.2)/100       ;button    height
  HSZ2:=(HA*2)/100         ;editfield height

  T1  :=WSZ2             ;TAB1
  T2  :=SW1              ;TAB2
  T3  :=SW3              ;TAB3
  T4  :=(SW1+SW3)        ;T2+T3
  T1A :=T1
  T2A :=T1+T2
  T3A :=T1+T2+T3

;---------- BUTTON POSITION --------------------------
  BR1X:=(SW-(1*XPOS))        ;Button right  0
  BR2X:=(SW-(2*XPOS))        ;Button right -1
  BR3X:=(SW-(3*XPOS))        ;Button right -2
  BR4X:=(SW-(4*XPOS))        ;Button right -3
  BR5X:=(SW-(5*XPOS))        ;Button right -4
  BR6X:=(SW-(6*XPOS))        ;Button right -5
  BR7X:=(SW-(7*XPOS))        ;Button right -6

  BL1X:=(SX+XPSL)             ;Button left  0
  BL2X:=(SX+(XPSL+(1*XPOS)))  ;Button left +1
  BL3X:=(SX+(XPSL+(2*XPOS)))  ;Button left +2
  BL4X:=(SX+(XPSL+(3*XPOS)))  ;Button left +3
  BL5X:=(SX+(XPSL+(4*XPOS)))  ;Button left +4
  BL6X:=(SX+(XPSL+(5*XPOS)))  ;Button left +5
  BL7X:=(SX+(XPSL+(6*XPOS)))  ;Button left +6
  BL8X:=(SX+(XPSL+(7*XPOS)))  ;Button left +7

;-- buttonssmall ------------------------------------
  BR1S:=(SW-XPS2)
  BR2S:=(SW-(2*XPS2))
  BR3S:=(SW-(3*XPS2))
  BR4S:=(SW-(4*XPS2))
  BR5S:=(SW-(5*XPS2))
  BR6S:=(SW-(6*XPS2))
  BR7S:=(SW-(7*XPS2))
  BR8S:=(SW-(8*XPS2))
  BR9S:=(SW-(9*XPS2))
;-----------------------------------------------------

;y POS after listview
BV1Y:=(LVH+(.74*YPOS))
BV2Y:=(BV1Y+(.74*YPOS))
BV3Y:=(BV2Y+(.74*YPOS))
BV4Y:=(BV3Y+(.74*YPOS))
BV5Y:=(BV4Y+(.74*YPOS))
BV6Y:=(BV5Y+(.74*YPOS))
LLIN:=(SH-(HSIZ+SY))
;------------------------------------------------------


    ;Gui,1:Color, C0C2AC
    ;Gui,1:Font,S8 cblack, Verdana
    Gui,1:Color, 000000
    Gui,1:Font,S8 cwhite, Verdana
    XPS1:=(WA*1.2)/100
    XPLV:=(WA*.3)/100
    XPS2:=(XPS1+WSIZ)
    XPS3:=(XPS2+WSIZ)
    YPS1:=(HA*.3)/100
    YPS2:=(YPS1+HSIZ)
    YPLV:=(HA*1.7)/100
    Gui,1:Add,Text,x%XPS1%  y%YPS1% vTotal1  w%WSIZ%,%I%

    Gui,1:Add,Text, x%XPS1%  y%BV2Y%  w%WSIZ% h%HSIZ% ,SEARCH-NET
    Gui,1:Add,Text, x%XPS1%  y%BV3Y%  w%WSIZ% h%HSIZ% ,SEARCH-LIST

    ACP=2
    ifexist,wget
     {
    Gui,1:add,GroupBox, w0 h0,GP2
    Gui,1:Add, Radio,x%BL1X%   y%BV4Y%  vACP,WGET
    Gui,1:Add, Radio,x%BL1X%   y%BV5Y%      ,AHK
    GuiControl,1:,ACP,1
    Gui,submit,nohide
     }


    Gui,1:add,GroupBox, w0 h0,P1
    Gui,1:Add, Radio,x%BL1X%   y%LLIN%  vACR,MUSIC
    Gui,1:Add, Radio,x%BL2X%   y%LLIN%             ,ALL
    Gui,1:Add, Radio,x%BL3X%   y%LLIN%             ,PICT
    GuiControl,1:,ACR,1


;    Gui,1:Font,  S10 CDefault , FixedSys
;    Gui,1:Add, ListView,grid x%XPLV% y%YPLV% h%LVH% w%LVW% +hscroll altsubmit vMyListView gMyListView,NR|LIED|URL

    TWEDIT3:=(LVW2-(WSIZ+WSIZ))
    Gui,1:Add ,  Edit, x%XPS1%  y%BV1Y%  w%WSIZ%    h%HSZ2% ReadOnly vDNNR
    Gui,1:Add ,  Edit, x%XPS2%  y%BV1Y%  w%WSIZ%    h%HSZ2% ReadOnly vTITL
    Gui,1:Add ,  Edit, x%XPS3%  y%BV1Y%  w%TWEDIT3% h%HSZ2% ReadOnly vDNLX



    Gui,1:Font,  S10 CDefault , FixedSys
    Gui,1:Add, ListView,grid x%XPLV% y%YPLV% h%LVH% w%LVW% +hscroll altsubmit vMyListView gMyListView,NR|LIED|URL


    Gui,1:Add ,  Edit, x%BL2X%  y%BV2Y%  w%TWEDIT3% h%HSZ2% vURLX
    TWEDIT5:=(TWEDIT3-WSIZ)
    Gui,1:Add ,  Edit, x%BL2X%  y%BV3Y%  w%TWEDIT5% h%HSZ2% vSRCX

    if ACP=1
    Gui,1:Add,Button,x%BR3X% y%BV1Y% w%WSIZ% h%HSIZ% gSKIPDL  , DNL-SKIP
    Gui,1:Add,Button,x%BR2X% y%BV1Y% w%WSIZ% h%HSIZ% gSTOPDL  , DNL-STOP
    Gui,1:Add,Button,x%BR1X% y%BV1Y% w%WSIZ% h%HSIZ% gRELOAD  , RESET

    Gui,1:Add,Button,x%BR1X% y%BV2Y% w%WSIZ% h%HSIZ% gDNLALL vDN1   ,DNL-ALL
    Gui,1:Add,Button,x%BR1X% y%BV3Y% w%WSIZ% h%HSIZ% gDNLSEL vDN2   ,DNL-SEL
    Gui,1:Add,Button,x%BR1X% y%BV6Y% w%WSIZ% h%HSIZ% gBLACK         ,BLACK


    Gui,1:Add,Button,x%BL2X% y%BV4Y% w%WSIZ% h%HSIZ% gCLEAR    ,^CLEAR
    Gui,1:Add,Button,x%BL3X% y%BV4Y% w%WSIZ% h%HSIZ% gURLLAST  ,LAST
    Gui,1:Add,Button,x%BL4X% y%BV4Y% w%WSIZ% h%HSIZ% gURLALL   ,URL-ALL
    Gui,1:Add,Button,x%BL5X% y%BV4Y% w%WSIZ% h%HSIZ% gURLFAV   ,URL-FAV
    Gui,1:Add,Button,x%BL6X% y%BV4Y% w%WSIZ% h%HSIZ% gLYRIC    ,LYRIC


    ifexist,record.bmp
    Gui,1:Add,Picture,x%BL2X% y%BV5Y% w%WSIZ% h%HSIZ% gRECORD,record.bmp
    else
    Gui,1:Add,Button, x%BL2X% y%BV5Y% w%WSIZ% h%HSIZ% gRECORD  ,RECORD
    Gui,1:Add,Button, x%BL3X% y%BV5Y% w%WSZL% h%HSIZ% gFOLDERR  ,FOLDER-REC
    Gui,1:Add,Button, x%BL3X% y%BV6Y% w%WSZL% h%HSIZ% gFOLDERM  ,FOLDER-MUSIC
    Gui,1:Add,Button, x%BL5X% y%BV5Y% w%WSIZ% h%HSIZ% gREC      ,_REC
    Gui,1:Add,Button, x%BL5X% y%BV6Y% w%WSIZ% h%HSIZ% gMUSIC    ,_MUSIC


    Gui,1:Add,Button,default x0 y0 w0 h0  gWHERE ,
    XPGO:=(BL2X+TWEDIT5+WSZ2)
    Gui,1:Add,Button,x%XPGO% y%BV3Y% w%WSZ2% h%HSIZ%  gSEARCH ,<GO


    Gui,1:Add,Button,x%BR1S% y%LLIN% w%WSZ2% h%HSIZ% gALL    ,ALL
    Gui,1:Add,Button,x%BR2S% y%LLIN% w%WSZ2% h%HSIZ% gMP3    ,MP3
    Gui,1:Add,Button,x%BR3S% y%LLIN% w%WSZ2% h%HSIZ% gRAM    ,RAM
    Gui,1:Add,Button,x%BR4S% y%LLIN% w%WSZ2% h%HSIZ% gRM     ,RM_
    Gui,1:Add,Button,x%BR5S% y%LLIN% w%WSZ2% h%HSIZ% gRA     ,RA_
    Gui,1:Add,Button,x%BR6S% y%LLIN% w%WSZ2% h%HSIZ% gWMA    ,WMA
    Gui,1:Add,Button,x%BR7S% y%LLIN% w%WSZ2% h%HSIZ% gWAV    ,WAV
    Gui,1:Add,Button,x%BR8S% y%LLIN% w%WSZ2% h%HSIZ% gMID    ,MID

    gosub,music

   GuiControl,1:,total1,%I%
   GuiControl,1:,DED1,%LAC2%
   GuiControl,1:Focus,URLX

Gui,1: Show, % "x" SX+mLeft " y" SY+mTop+5 " w" SW " h" SH,%NAME2%
return
;==============================================
FILLLIST:
   gui,1:submit,nohide

LV_Delete()
I=0
loop,read,%FX%
     {
     if A_LoopReadLine=
     continue
     I++
     name=
     dir=
     SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
     LV_Add("",I,NAME,DIR)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return

;##################################################
FOLDERM:
run,%R3M%
return

FOLDERR:
run,%RU4%
return


MH1:
msgbox,262144,,Type in jim reeves/or jimreeves/or jreeves in edit field SEARCH-NET then enter`r`nSee songs (can select only MP3) and DNL-ALL or DNL-SEL`r`nDoubleclick on left column(or DNL-SEL)=download this song`r`nRightclick right column=open URL`r`nFind more songs on the link rightside (most when ended with MP3/Sound/audio...)`r`nExample: he'llhavetogo.rm    http://www.midtod.com/audio`r`nDoubleclick right column, see - 390- new songs , jim reeves live recordings`r`nCan download from .. until (select first row ,DNL-ALL, STOP)`r`nSee few examples when click on button URL-FAV
return

MH2:
;ADD MP3DirectCut.........http://www.mpesch3.de/     and also mpglib.dll and lame_enc.dll (F12)    for record ram.. to MP3
;.........................http://www-users.york.ac.uk/~raa110/audacity/lame.html  lame_enc.dll for MP3DirectCut
msgbox,262144,,-RECORD :`r`nClick button MUSIC,songs like xy.ram can record to xy.mp3`r`nSelect xy.ram and click RECORD`r`nMusic plays and MP3DirectCut starts and save to .._RECORDING\xy.mp3`r`nWhen open xy.mp3 with MP3DirectCut can cut left/right and save to xy2.mp3`r`n`r`n-RECORD remarks AC97:`r`nSet and select record stereo mix=20`%,play wave=80`%`r`nMP3DirecCut.exe and mpglib.dll and lame_enc.dll must exist , settings F12 in MP3DirectCut.exe`r`n...MP3DIRECTCUT\mp3directcut.exe`r`nhttp://www.mpesch3.de/`r`nhttp://www-users.york.ac.uk/~raa110/audacity/lame.html
return

MH3:
msgbox,262144,,-LYRIC:`r`nType in edit field SEARCH-NET`r`n I walk the line`r`n and click button LYRIC
return

MH4:
msgbox,262144,,%DATEMOD% AutoHotKey garry`r`nDownload / Record searched song
return

;--------------------------------------

RECORD:
gui,1:submit,nohide

ifnotexist,%directcut%
{
msgbox,262144,,Download MP3DirectCut and save in subfolder ...MP3DIRECTCUT\mp3directcut.exe`r`nDownload also mpglib.dll and lame_enc.dll (see settings F12)`r`n`r`nhttp://www.mpesch3.de/`r`nhttp://www-users.york.ac.uk/~raa110/audacity/lame.html
return
}

if RF=
  {
msgbox,262144,,Select a row
return
  }

C2a=%A_scriptdir%\%R3M%\%C2%
    stringmid,CCP,C2a,1,7
    if CCP=http://
    return


      run,%C2a%
      sleep,500

      SplitPath,C2a, name, dir, ext, name_no_ext, drive
      run,%DirectCut% %RU4%\%name_no_ext%.mp3 /rec
      run,sndvol32
      ;SoundSet,100,WAVE
  return

;---------------------------------------------------

LYRIC:
gui,submit,nohide
;GuiControl,1:Disable,DNL-ALL
;GuiControl,1:Disable,DNL-SEL
;GuiControl,1:Disable,RECORD

URLY=%URLX%
if URLY=
     {
Msgbox,262144,,Type in edit field SEARCH-NET a song title or artist
return
     }

APPX1=http://lirama.net/search?searchobj=name&search=%URLY%
URLDownloadToFile,%APPX1%,%F12%

A=<li><a href="/
B="/
C=">
Loop,Read,%F12%
      {
      LR=%A_LoopReadLine%
      IfInString,LR,%A%
         {
      IfInString,LR,%URLY%
               {
         StringGetPos,VAR1,LR,%B%
         StringGetPos,VAR2,LR,%C%
         VAR1:=(VAR1+2)
         VAR2:=(VAR2+1)
         VAR3:=(VAR2-VAR1)
         stringmid,NEW,LR,VAR1,VAR3
         GOTO,FOUND1
                }
         }
      }

;TRYsecond for musica popular brasileira
StringReplace,NewStr,URLY,%S%,-,All
URLDownloadToFile,http://www.beakauffmann.com/%NEWSTR%.html,%F13%
Loop,Read,%F13%
      {
      LR=%A_LoopReadLine%
      IfInString,LR,404
         {
      Goto,TRY3
         }
       }
run,http://www.beakauffmann.com/%NEWSTR%.html
return


TRY3:
if URLY=
return
run,http://www.dogpile.com/info.dogpl/search/web/%URLY% lyric/1/-/1/-/-/-/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/-/0
return


FOUND1:
run,http://lirama.net/search?searchobj=name&search=%URLY%
return


;----------------------------------------------------

MUSIC:
MUSIC=1
GuiControl,1:Disable,DNL-ALL
GuiControl,1:Disable,DNL-SEL
GuiControl,1:Disable,DNL-SKIP
GuiControl,1:Disable,DNL-STOP
GuiControl,1:Enable,RECORD

   GuiControl,Text,Edit1,%OutputVar%
   GuiControl,Text,Edit2,%OutputVar%
   GuiControl,Text,Edit3,%OutputVar%
   GuiControl,Text,Edit4,%OutputVar%
   GuiControl,Text,Edit5,%OutputVar%

LV_Delete()
I=0
loop,%R3M%\*.*
      {
     I++
     LV_Add("",I,A_LOOPFILENAME)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T4)
     LV_ModifyCol(3,0)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return

;-----------------------------------------------


REC:
REC=1
GuiControl,1:Disable,DNL-ALL
GuiControl,1:Disable,DNL-SEL
GuiControl,1:Disable,DNL-SKIP
GuiControl,1:Disable,DNL-STOP
GuiControl,1:Disable,RECORD

   GuiControl,Text,Edit1,%OutputVar%
   GuiControl,Text,Edit2,%OutputVar%
   GuiControl,Text,Edit3,%OutputVar%
   GuiControl,Text,Edit4,%OutputVar%
   GuiControl,Text,Edit5,%OutputVar%

LV_Delete()
I=0
loop,%RU4%\*.*
      {
     I++
     LV_Add("",I,A_LOOPFILENAME)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T4)
     LV_ModifyCol(3,0)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return


;-------------------------------------------------
URLFAV:
MUSIC=
;GuiControl,1:Disable,DNL-ALL
;GuiControl,1:Disable,DNL-SEL
GuiControl,1:Disable,RECORD

LV_Delete()
I=0
loop,read,%F11%
     {
     if A_LoopReadLine=
     continue
     I++
     LV_Add("",I,NOTHING,A_LoopReadLine)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return

;-------------------------------------------------


URLLAST:
Gui,submit,nohide
MUSIC=
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
GuiControl,1:Enable,DNL-SKIP
GuiControl,1:Enable,DNL-STOP
GuiControl,1:Disable,RECORD

FX=%F2%

LV_Delete()
I=0
loop,read,%FX%
     {
     if A_LoopReadLine=
     continue
     I++
     name=
     dir=
     SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
     LV_Add("",I,NAME,DIR)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return

;--------------------------------------------------------

URLALL:
Gui,submit,nohide
MUSIC=
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
GuiControl,1:Enable,DNL-SKIP
GuiControl,1:Enable,DNL-STOP
GuiControl,1:Disable,RECORD

FX=%F5%
FileRead,AA,%FX%
FileDelete,%FX%
Sort,AA,U
FileAppend,%AA%,%FX%


LAC=%LAC1%

LV_Delete()
I:=0
loop,read,%FX%
 {
     if A_LoopReadLine=
     continue
     stringright,Q4,A_LOOPREADLINE,4
     if Q4 contains %LAC%
              {
             I++
             name=
             dir=
             SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
             LV_Add("",I,NAME,DIR)
             continue
              }
     I++
     LV_Add("",I,NOTHING,A_LOOPREADLINE)
 }

     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")
GuiControl,1:,total1,%I%
return


;--------------------------------------------------
ALL:
gui,1:submit,nohide
MUSIC=
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
GuiControl,1:Enable,DNL-SKIP
GuiControl,1:Enable,DNL-STOP
GuiControl,1:Disable,RECORD

GuiControl,Text,Edit1,%OutputVar%
GuiControl,Text,Edit2,%OutputVar%
GuiControl,Text,Edit3,%OutputVar%



VARX=ALL1
   GuiControl,1:Focus,URLX
   GuiControl, Text, Edit1, %OutputVar%


LV_Delete()
I=0
loop,read,%FX%
      {
     if A_LoopReadLine=
     continue
     I++
     SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
     LV_Add("",I,NAME,DIR)
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return
;-------------------------------------------------
MP3:
gui,1:submit,nohide
VARX=MP3
gosub,allms
return
;--------------------------------------------------
RAM:
gui,1:submit,nohide
VARX=RAM
gosub,allms
return
;-------------------------------------------------
RM:
gui,1:submit,nohide
VARX=RM
gosub,allms
return
;----------------------------------------------
RA:
gui,1:submit,nohide
VARX=RA
gosub,allms
return
;--------------------------------------------------------
WMA:
gui,1:submit,nohide
VARX=WMA
gosub,allms
return
;-----------------------------------
WAV:
gui,1:submit,nohide
VARX=WAV
gosub,allms
return
;--------------------------------
MID:
gui,1:submit,nohide
VARX=MID
gosub,allms
return
;--------------------------------
ALLMS:
   GuiControl,1:Focus,URLX
   GuiControl, Text, Edit1, %OutputVar%
   GuiControl,1:Enable,DNL-ALL
   GuiControl,1:Enable,DNL-SEL
   GuiControl,1:Enable,DNL-SKIP
   GuiControl,1:Enable,DNL-STOP
   GuiControl,1:Disable,RECORD


LV_Delete()
I=0
loop,read,%FX%
     {
     if A_LoopReadLine=
     continue
     name=
     dir=
     SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
     if ext=%varx%
             {
            I++
            LV_Add("",I,name,dir)
             }
      }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")

GuiControl,1:,total1,%I%
return
;==================================================================
SKIPDL:
winclose,ahk_class ConsoleWindowClass
settimer,AAS,OFF
GuiControl,Text,Edit1,%OutputVar%
GuiControl,Text,Edit2,%OutputVar%
GuiControl,Text,Edit3,%OutputVar%
GuiControl,Text,Edit5,%OutputVar%
GuiControl,Text,Edit2,SKIP
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
GuiControl,1:Disable,RECORD
return

;-----------------------------------------------
STOPDL:
Gui,submit,nohide
SDL=1
if ACP=1
winclose,ahk_class ConsoleWindowClass
GuiControl,Text,Edit1,%OutputVar%
GuiControl,Text,Edit2,%OutputVar%
GuiControl,Text,Edit3,%OutputVar%
GuiControl,Text,Edit5,%OutputVar%
GuiControl,Text,Edit2,STOP
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
GuiControl,1:Disable,RECORD
Fileappend,1,%FL2%
return
;--------------------------------------

RELOAD:
reload
return
;--------------------------------------
CLEAR:
   GuiControl,1:Focus,URLX
   GuiControl,Text,Edit1,%OutputVar%
   GuiControl,Text,Edit2,%OutputVar%
   GuiControl,Text,Edit3,%OutputVar%
   GuiControl,Text,Edit4,%OutputVar%
   GuiControl,Text,Edit5,%OutputVar%
return
;----------------------------------------
SEARCH:
Gui,1:submit,nohide

LAC=%LAC1%

LV_Delete()
I:=0
loop,read,%FX%
 {
ifinstring,A_LOOPREADLINE,%SRCX%
       {
     if A_LoopReadLine=
     continue
     stringright,Q4,A_LOOPREADLINE,4
     if Q4 contains %LAC%
              {
     I++
     name=
     dir=
     SplitPath,A_LoopReadLine,name, dir, ext, name_no_ext, drive
     LV_Add("",I,NAME,DIR)
     continue
              }
     I++
     LV_Add("",I,NOTHING,A_LOOPREADLINE)
        }
else
Continue
 }
     LV_ModifyCol(1,T1)
     LV_ModifyCol(2,T2)
     LV_ModifyCol(3,T3)
     LV_ModifyCol(1,"Integer")
GuiControl,1:,total1,%I%
return




;##################  BLOCK 11=READS LISTVIEW LOOP ALL with WGET ###############################
DNLALL:
Gui,1:submit,nohide
GuiControl,1:Disable,RECORD
GuiControl,Text,Edit2,%NOTHING%
SDL=
SEL=
if RF<>
RF=%RF%
else
RF:=1
msgbox,262147,DownLoad ALL,Download starts from Row= %RF%`r`n (Or select another ROW)
ifmsgbox,NO
return
ifmsgbox,Cancel
return

GuiControl,1:Disable,DNL-ALL
GuiControl,1:Enable,DNL-STOP
if ACP=1
GuiControl,1:Enable,DNL-SKIP


  I2:=0
  if RF>I
  RF:=1

  if RF>1
  I2:=(RF-1)

  LV_Modify(RF, "+Select +Focus")

  Y=0
  loop
 {

        if SDL=1
                   {
        settimer,AAS,OFF
        ;LV_Modify(RF, "-Select +Focus")
        GuiControl,1:Enable,DNL-ALL
        RF=
        break
                   }

        I2++
        LV_GetText(C2,RF,2)
        LV_GetText(C3,RF,3)
        C1=%C3%/%C2%
        if C1=
        continue

        LV_Modify(RF, "+Select +Focus")
        GuiControl,Text,Edit1,%I2%
        GuiControl,Text,Edit3,%C2%
        GuiControl,Text,Edit4,%C3%

        StringReplace,C11,C1,`%20,%S%,All
        StringReplace,C11,C11,`%5b,[,All
        StringReplace,C11,C11,`%5d,],All
        StringReplace,C11,C11,amp`;,,All
        StringReplace,C1,C1,amp`;,,All
        StringReplace,C1,C1,%S%,`%20,All

        ;this would remove the first `%20
        SplitPath,C1,name, dir, ext, name_no_ext, drive
        stringleft,SL,name,3
        if SL=`%20
               {
        stringlen,SL1,name
        SL4:=(SL1-3)
        stringmid,SL5,name,4,SL4
        C1=%C3%/%SL5%
               }


        SplitPath,C11,name11, dir11, ext11, name_no_ext11, drive11
        F23=%A_scriptdir%\%R3M%\%NAME11%
        ifexist,%NAME11%
               {
              Y++
              F23=%A_scriptdir%\%R3M%\%NAME_NO_EXT11%_Z%Y%.%EXT11%
               }

;----------------------------------------------------------------
if ACP=1
{
        settimer,AAS,500
        ;Splashimage,,M2 w700 CWred  fs10,%C1%,DOWNLOAD >>>
        runwait,%COMSPEC% /C %wget% %C1% --tries=1 --directory-prefix=%R3M%,,hide
        ;Splashimage, off
Goto,SKIP11
}
;----------------------------------------------------------------

       GuiControl,Text,Edit2,WAIT
       ;Splashimage,,M2 w700 CWred  fs10,%NAME%,DOWNLOAD >>>
       settimer,AAS,500
       URLDownloadToFile,%C1%,%F23%
       ;Splashimage, off


;-----------------------------------------------------------------
SKIP11:
     settimer,AAS,off
     LV_Modify(RF, "-Select +Focus")


     FileGetSize,size,%F23%
     if ext=ram
           {
       if size <30
             {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
             }

       if size >300
             {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
             }
     GuiControl,Text,Edit2,FINISHED
     Goto,skip16
           }

     if size <%MAX1%
            {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
            }

    if size >%MAX1%
         GuiControl,Text,Edit2,FINISHED


SKIP16:
        RF:=(RF+1)
        if I2=%I%
              {
            settimer,AAS,OFF
            LV_Modify(RF, "-Select +Focus")
            RF=
            break
              }

  }


GuiControl,1:Enable,DNL-ALL
GuiControl,Text,Edit2,FINISHED

return
;############################################################################################

DNLSEL:
Gui,1:submit,nohide
SDL=0
SEL=1
MUSIC=
GuiControl,1:Disable,RECORD
GuiControl,Text,Edit2,%NOTHING%


      GuiControlGet,C2,,Edit3
      GuiControlGet,C3,,Edit4
      C1=%C3%/%C2%


    if C3=
     {
    msgbox,262144,,Select first a row
    return
     }

        GuiControl,1:Disable,DNL-SEL
        GuiControl,1:Enable,DNL-STOP
        GuiControl,Text,Edit1,%RF%


        StringReplace,C11,C1,`%20,%S%,All
        StringReplace,C11,C11,`%5b,[,All
        StringReplace,C11,C11,`%5d,],All
        StringReplace,C11,C11,amp`;,,All
        StringReplace,C1,C1,amp`;,,All
        StringReplace,C1,C1,%S%,`%20,All

        ;this would remove the first `%20
        SplitPath,C1,name, dir, ext, name_no_ext, drive

        stringleft,SL,name,3
        if SL=`%20
               {
        stringlen,SL1,name
        SL4:=(SL1-3)
        stringmid,SL5,name,4,SL4
        C1=%C3%/%SL5%
        GuiControl,Text,Edit3,%SL5%
               }

        SplitPath,C11,name11, dir11, ext11, name_no_ext11, drive11
        F23=%A_scriptdir%\%R3M%\%NAME11%
        ifexist,%NAME11%
               {
              Y++
              F23=%A_scriptdir%\%R3M%\%NAME_NO_EXT11%_Z%Y%.%EXT11%
               }



        SplitPath,C1,name1, dir1, ext1, name_no_ext1, drive1
        GuiControl,Text,Edit3,%name1%
        GuiControl,Text,Edit4,%dir1%

;----------------------------------------------------------------
if ACP=1
{
        Splashimage,,M2 w700 CWred  fs10,%C1%,DOWNLOAD >>>
        settimer,AAS,500
;        runwait,%COMSPEC% /C %wget% %C1% --tries=1 --directory-prefix=%R3M%,,hide
        runwait,%COMSPEC% /K %wget% %C1% --tries=1 --directory-prefix=%R3M%        ;see what happen
        Splashimage, off
Goto,SKIP12
}

;----------------------------------------------------------------

       GuiControl,Text,Edit2,WAIT
       Splashimage,,M2 w700 CWred  fs10,%NAME%,DOWNLOAD >>>
       settimer,AAS,500
       URLDownloadToFile,%C1%,%F23%
       Splashimage, off



/*
FileDelete,%FL1%
FileDelete,%FL2%
StringReplace,C1,C1,`%,%HK%`%,All
StringReplace,C1,C1,`,,%HK%`,,All
StringReplace,F23,F23,`%,%HK%`%,All
StringReplace,F23,F23,`,,%HK%`,,All
GuiControl,Text,Edit2,WAIT
settimer,AAS,500
FileAppend,
     (
     #NoTrayIcon
     settimer,AAS3,500
     Splashimage,,b1 x140 y0 w500 h30 CWred zh0,START Download
     UrlDownloadToFile,%C1%,%F23%
     Splashimage,off
     settimer,AAS3,off
     GuiControl,1:Enable,DNL-SEL
     GuiControl,Text,Edit2,FINISHED
     ifexist,%F23%
     run,%F23%
     FileDelete,%FL1%
     ExitApp
     AAS3:
     Filereadline,tmr,%FL2%,1
     if tmr=1
           {
         GuiControl,1:Enable,DNL-SEL
         ExitApp
           }
     return`n
     ),%FL1%
Run,%FL1%
return
*/

;-----------------------------------------------------------------
SKIP12:
       settimer,AAS,off
GuiControl,1:Enable,DNL-SEL
SEL=
     FileGetSize,size,%F23%

     if ext=ram
           {
       if size <20
             {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
     return
             }
       if size >300
             {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
     return
             }

     GuiControl,Text,Edit2,FINISHED
     RUN,%F23%
     return
           }


     if size <%MAX1%
            {
     Filedelete,%F23%
     GuiControl,Text,Edit2,DELETED
     return
            }

     if size >%MAX1%
          {
       GuiControl,Text,Edit2,FINISHED
       RUN,%F23%
       return
         }
return

;===========================================================================================


AAS:
Gui,1:submit,nohide

if ACP=1
{
WinGetTitle,TM,ahk_class ConsoleWindowClass
stringmid,UM,TM,6,5
if UM=http:
UM=WAIT
if UM=NDOWS
UM=WAIT
GuiControl,Text,Edit2,%UM%
   if SDL=1
    {
    winclose,ahk_class ConsoleWindowClass
    settimer,AAS,OFF
    GuiControl,1:Enable,DNL-SEL
    GuiControl,1:Enable,DNL-ALL
    SEL=
    return
    }
return
}



if SEL=1
{
  ifnotexist,%FL1%
      {
      GuiControl,1:Enable,DNL-SEL
      GuiControl,Text,Edit2,FINISHED
      }

   FileGetSize,size,%F23%
   If size >0
   GuiControl,Text,Edit2,%SIZE%
return
}


    FileGetSize,size,%F23%
    If size >0
    GuiControl,Text,Edit2,%SIZE%
return

;########################### DOGPILE #################################################
WHERE:
Gui,1:submit,nohide
GuiControl,1:Enable,DNL-STOP
GuiControl,1:Disable,RECORD

stringmid,CCP,URLX,1,7
if CCP=http://
           {
          SplitPath,URLX,name, dir, ext, name_no_ext, drive
          Fileappend,%URLX%`r`n,%F5%
          goto,TESTAA
            }

GuiControl, Text, Edit1, %OutputVar%


LAC=%LAC1%
Filedelete,%F1%
Filedelete,%F2%

VARX=ALL1
URLX=%URLX%

if URLX=
return

stringleft,EL1,URLX,7
  if EL1=http://
   {
    if ACP=1
        {
        ;msgbox,%URLX%
        runwait,%COMSPEC% /K %wget% %URLX% --tries=1 --output-document=%F1%
        goto,LSZ2
        }


   Splashimage,,M2 x80 y5 CWred   fs10,%URLX%,DOWNLOAD >>>
   URLDownloadToFile,%URLX%,%F1%
   Splashimage,off
   goto,LSZ2
   }

stringleft,EL2,URLX,4
   if EL2=www.
    {
   URLX=http://%URLX%
   Splashimage,,M2 x80 y5 CWred   fs10,%URLX%,DOWNLOAD >>>
   URLDownloadToFile,%URLX%,%F1%
   Splashimage, off
   goto,LSZ2
    }
;-------------- -SEARCH  ------------------------------

if ACR=1
     {
    APPX=http://www.dogpile.com/info.dogpl/search/audio/%URLX%/1/100/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/0
    Splashimage,,M2 x80 y5 CWred   fs10,%URLX%,DOWNLOAD >>>
    URLDownloadToFile,%APPX%,%F1%
    Splashimage, off
    goto,LSZ2
     }

if ACR=2
     {
    run,http://www.dogpile.com/info.dogpl/search/web/%URLX%/1/100/1/
    return
     }

if ACR=3
     {
    run,http://www.dogpile.com/info.dogpl/search/images/%URLX%/1/100/1/
    return
     }
;--------------------------------------------------

LSZ2:
K=0
FileRead,AA,%F1%
Loop Parse,AA,<>="
{
   ALF=%A_LoopField%
   SplitPath,ALF,name, dir, ext, name_no_ext, drive
   StringRight x, ALF, 4
   StringRight y, ALF, 3
   If (x =".mp3" or x =".wav" or x =".ram" or x =".wma" or x =".mid" or y =".rm" or y =".ra")
   {
   stringmid,LS3,ALF,1,3
   stringmid,LS7,ALF,1,7

      if LS3=../
       {
       K++
       stringlen,L1,ALF
       L2:=(L1-3)
       stringmid,ALF1,ALF,4,L2
       Fileappend,%drive%/%ALF1%`r`n,%F2%
       Fileappend,%drive%/%ALF1%`r`n,%F5%
       }
   if LS7=http://
       {
       K++
       if DIR contains http://walterweyburn.250free.com
       continue
       Fileappend,%ALF%`r`n,%F2%
       Fileappend,%ALF%`r`n,%F5%
       }
    }
}

;-------------------------------------------------

KH:
;GuiControl,1:Disable,DNL-STOP

if K>0

  {
FX=%F2%

LV_Delete()

FileRead,AA,%F2%
FileDelete,%F2%
Sort,AA,U
FileAppend,%AA%,%F2%


I=0
LINE=
    loop,read,%F2%
          {
          I++
          Fileappend,%A_LOOPREADLINE%`r`n,%F5%
          SplitPath,A_LOOPREADLINE, name, dir, ext, name_no_ext, drive
          if line=%DIR%
          continue
          line=%DIR%
          }


FX=%F2%
MUSIC=
GuiControl,1:Enable,DNL-ALL
GuiControl,1:Enable,DNL-SEL
goto,FILLLIST
  }

if K<1
 {
if LAC=
    {
Splashimage,,b x200 y440 w700 h70 CWsilver m9 b fs10 zh0,File %F2%  NOT CREATED,NO URL FOUND
Sleep,3000
Splashimage, off
return
     }

if LAC<>
     {
Splashimage,,b x200 y440 w700 h70 CWsilver m9 b fs10 zh0,File %F2%  NOT CREATED,NO SEARCHED EXTENSIONS FOUND
Sleep,1500
Splashimage, off
return
     }
 }




;##################################################################################
MyListView:
GuiControlGet, MyListView
Gui,1:submit,nohide

if A_GuiEvent = Normal
    {
    LV_GetText(C1,A_EventInfo,1)
    LV_GetText(C2,A_EventInfo,2)
    LV_GetText(C3,A_EventInfo,3)
    RN:=LV_GetNext("C")  ;2  selected checked
    RF:=LV_GetNext("F")  ;2  selected focused
    GC:=LV_GetCount()    ;4  total
    stringright,CCR,C1,3
    stringright,CCO,C1,2
    stringmid,CCP1,C2,1,7
    stringmid,CCP2,C3,1,7
    GuiControl,Text,Edit1,%C1%
    GuiControl,Text,Edit2,%NOTHING%
    GuiControl,Text,Edit3,%C2%
    GuiControl,Text,Edit4,%C3%
    }



if A_GuiEvent=K
{
  GetKeyState,state,UP
  if state=D
    {
       RF:=LV_GetNext("F")
       LV_GetText(C2,RF,2)
       LV_GetText(C3,RF,3)
       CA=%R3M%\%C2%

   ifnotexist,%CA%
       {
     RF:=RF-1
     LV_GetText(C2,RF,2)
     LV_GetText(C3,RF,3)
     CA=%R3M%\%C2%
       }

    if (CCP1="http://" OR CCP2="http://")
        {
       GuiControl,,Edit3,%C3%
       GuiControl,,Edit4,%C2%
       return
        }

  if MUSIC=1
          {
  run,"%CA%"
  GuiControl,,Edit4,%C2%
  GuiControl,1:Enable,RECORD
  return
          }
    }


  GetKeyState,state,DOWN
  if state=D
   {
    RF:=LV_GetNext("F")
    LV_GetText(C2,RF,2)
    LV_GetText(C3,RF,3)
    CA=%R3M%\%C2%

    ifnotexist,%CA%
         {
     RF:=RF+1
     LV_GetText(C2,RF,2)
     LV_GetText(C3,RF,3)
     CA=%R3M%\%C2%
         }


    if (CCP1="http://" OR CCP2="http://")
          {
       GuiControl,,Edit3,%C3%
       GuiControl,,Edit4,%C2%
       return
          }
    if MUSIC=1
          {
    run,"%CA%"
    GuiControl,,Edit4,%C2%
    GuiControl,1:Enable,RECORD
    return
         }
    }
}


;----------------------------------------------------------

if A_GuiEvent = RightClick
{
RN:=LV_GetNext("C")  ;2  selected checked
RF:=LV_GetNext("F")  ;2  selected focused
GC:=LV_GetCount()    ;4  total
LV_GetText(C1,A_EventInfo,1)
LV_GetText(C2,A_EventInfo,2)
LV_GetText(C3,A_EventInfo,3)
    stringmid,CCP,C3,1,7
    if CCP<>http://
    return

SplitPath,C3,name, dir, ext, name_no_ext, drive
run,%drive%
return
}



;------------------------------------------------------------



if A_GuiEvent = DoubleClick
{
MouseGetPos,x,y
    {

    if x<%T1A%
    return


    if x<%T2A%
        {
       LV_GetText(C3,A_EventInfo,3)
       LV_GetText(C2,A_EventInfo,2)
       ifexist,%R3M%\%C2%
              {
              run,%R3M%\%C2%
              return
              }

       ifexist,%RU4%\%C2%
              {
              run,%RU4%\%C2%
              return
              }

       Goto,DNLSEL
       }

    if x<%T3A%
        {
       C1=
       LV_GetText(C1,A_EventInfo,3)
       stringmid,CCP,C1,1,7
       if CCP=http://
             {
           SplitPath,C1,name, dir, ext, name_no_ext, drive
           GuiControl,Text,Edit4,%C1%
           Fileappend,%C1%`r`n,%F5%
           GOTO,TESTAA
             }
       return
       }

   }
}
return
;################### CLOSE ##################
Guiclose:
ExitApp
;############################################

TESTAA:
Gui,1:submit,nohide
GuiControlGet,C1,,Edit4
FIRSTFOUND=
ALF=
Filedelete,%F1%
GuiControl,1:Enable,DNL-STOP



       if ACP=1
        {
        Splashimage,,M2 x80 y5 w 500 CWred   fs10,%C1%,DOWNLOAD >>>
        ;runwait,%COMSPEC% /C %wget% %C1% -O %F1%,,hide
        runwait,%COMSPEC% /K %wget% %C1% -O %F1%
        Splashimage, off
        goto,SKIP15
        }


       Splashimage,,M2 x80 y5 w 500 CWred   fs10,%C1%,DOWNLOAD >>>
       URLDownloadToFile,%C1%,%F1%
       Splashimage, off

SKIP15:
ifnotexist,%F1%
   {
   msgbox,262144,,URL Download was not successfull
   return
   }


V=0
Splashimage,,M2 x80 y55 w600 CWWhite   fs10,%C1%,READ >>>
FileRead,AA,%F1%
ALF=
LS1=
LS3=
LS7=
Loop Parse,AA,="<>
{
   ALF=%A_LoopField%
   StringRight x,ALF,4
   StringRight y,ALF,3
   If (x =".mp3" or x =".wav" or x =".ram" or x =".wma" or x =".mid" or y =".rm" or y =".ra")
   {
   stringmid,LS1,ALF,1,1
   stringmid,LS3,ALF,1,3
   stringmid,LS7,ALF,1,7


   if FIRSTFOUND=
   {
      FIRSTFOUND=1
      Filedelete,%F2%
   }

      if LS1=/
       {
       V++
       stringlen,L1,ALF
       L2:=(L1-1)
       stringmid,ALF1,ALF,2,L2
       Fileappend,%DRIVE%/%ALF1%`r`n,%F2%
       continue
       }

      if LS3=../
       {
       V++
       stringlen,L1,ALF
       L2:=(L1-3)
       stringmid,ALF1,ALF,4,L2
       Fileappend,%DRIVE%/%ALF1%`r`n,%F2%
       continue
       }

   if LS7=http://
       {
       V++
       Fileappend,%ALF%`r`n,%F2%
       continue
       }
   V++
   if ALF contains /
   Fileappend,%DRIVE%/%ALF%`r`n,%F2%
   else
   Fileappend,%C1%/%ALF%`r`n,%F2%
   }
}

READTEXT=
MUSIC=

             if V>0
                  {
                  FX=%F2%
                  LV_Delete()
                  FileRead,AA,%F2%
                  FileDelete,%F2%
                  Sort,AA,U
                  FileAppend,%AA%,%F2%

                  I:=0
                  loop,read,%F2%
                    {
                    LR=%A_LoopReadLine%
                    if LR=
                    continue
                    I++
                    name=
                    dir=
                    SplitPath,LR,name, dir, ext, name_no_ext, drive
                    LV_Add("",I,NAME,DIR)
                    }


                    LV_ModifyCol(1,T1)
                    LV_ModifyCol(2,T2)
                    LV_ModifyCol(3,T3)
                    LV_ModifyCol(1,"Integer")

                   GuiControl,1:Enable,DNL-ALL
                   GuiControl,1:Enable,DNL-SEL
                   GuiControl,1:Enable,DNL-SKIP
                   GuiControl,1:Enable,DNL-STOP
                   GuiControl,1:,total1,%I%
                   Splashimage, off
                   return
}
Splashimage, off
FX=%F2%
;Gui,1:-AlwaysOnTop
;GuiControl,1:Disable,DNL-STOP
msgbox, 262144, ,Nothing found
return


BLACK:
   SysGet m, MonitorWorkArea
   Gui,2:-Border
   Gui,2:Color,000000   ;BLACK
   Gui,2:Font,S12 cwhite, Verdana
   Gui,2:Show,% "x" mLeft+5 " y" mTop+5 " w" mRight-mLeft-10 " h " mBottom-mTop-10, BLACK
    Gui,1:+AlwaysOnTop
    Gui,2:-AlwaysOnTop
    Gui,1:-AlwaysOnTop
    return
;----------------------
    ESC::
    Gui,2:show,minimize
    return


garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
smaller version
type in song-name or artist then ENTER, see url's
once mouseclick to download selected url or button DNLALL for all
search for:
-mp3
-music (all)
-images
-all in web

Find lyrics (without commercials)

Posted Image
/*
DATE.............2006-08-09  garry
MODIFIED.........2006-08-12
USE for..........Download Musikfiles from Internet and search for lyrics
Picture..........https://ahknet.autohotkey.com/~garry/I%20walk%20the%20line.jpg
*/


SetBatchLines -1
setformat,float,3.0
NAME=MP3_DOWNLOAD.ahk
transform,S,chr,32
soundset,  0,master,mute       ;SPEAKER=MASTER ON
;SoundSet,50,master             ;SPEAKER=MASTER volume

LAC1=.mp3
LAC2=.mp3`,.wav`,.rm`,.ra`,.ram`,.wma`,.mid

MAX1:=10000       ;size  bytes

F1=%A_scriptDir%\_URL1.txt    ;original
F2=%A_scriptDir%\_URL2.txt    ;URL LAST
R3M=_MUSIC
ifnotexist,%R3M%
FileCreateDir,%R3M%


Gui,1:Color, 000000
Gui,1:Font,  S10 CDefault , FixedSys
GUY:=400
GSW:=1000            ;GuiShow  width
GSH:=388             ;GuiShow  height
ROW:=17
LSW:=(GSW-30)          ;ListView width
T1 :=(LSW-30)          ;TAB1

GBL:=(GSW-100)         ;LastRightButton
GB2:=(GSW-190)         ;LastRightButton-1
GB3:=(GSW-280)         ;LastRightButton-2
GB4:=(GSW-370)         ;LastRightButton-3
GB5:=(GSW-460)         ;LastRightButton-4
T2Y:=(GSH-60)          ;
T1Y:=(GSH-30)          ;Y down
T0Y:=(GSH-20)          ;Y down

Gui,1:Add, ListView,grid y18 20 r%ROW% w%LSW% +hscroll altsubmit vMyListView gMyListView,URL

    Gui,1:Font,S8 cwhite, Verdana
    Gui,1:Add,Text,x20  y2 vTotal1  w100,%I%
    Gui,1:Add,Text, x10  y%T2Y%  w50  h20 ,SEARCH

    Gui,1:add,GroupBox, x0 y0 w0 h0,P1
    Gui,1:Add, Radio,x230  y%T0Y%  vACR,MP3
    Gui,1:Add, Radio,x290  y%T0Y%      ,MUSIC
    Gui,1:Add, Radio,x360  y%T0Y%      ,PICTURE
    Gui,1:Add, Radio,x450  y%T0Y%      ,ALL
    GuiControl,1:,ACR,1

    Gui,1:Font,  S10 CDefault , FixedSys

    Gui,1:Add ,  Edit, x70  y%T2Y%  w730  h20 vURLX
    Gui,1:Add ,  Edit, x10  y%T1Y%  w40   h20 vCOUNT
    Gui,1:Add ,  Edit, x70  y%T1Y%  w140  h20 vSIZE

    Gui,1:Add,Button,x%GB4% y%T1Y% w85 h25 gTRY3    ,LYRIC-DOG
    Gui,1:Add,Button,x%GB3% y%T1Y% w80 h25 gLYRIC   ,LYRIC
    Gui,1:Add,Button,x%GB2% y%T2Y% w80 h25 gCLEAR   ,CLEAR
    Gui,1:Add,Button,x%GB2% y%T1Y% w80 h25 gFOLDER  ,FOLDER
    Gui,1:Add,Button,x%GBL% y%T2Y% w80 h25 gDNLALL  ,DNLALL
    Gui,1:Add,Button,x%GBL% y%T1Y% w80 h25 gRELOAD  ,BREAK
    Gui,1:Add,Button,default x100   y%TY5% w0   h0  gWHERE ,

    GuiControl,1:,DED1,%LAC2%
    GuiControl,1:Focus,URLX
gosub,FILL
    GuiControl,1:,total1,%I%
Gui,1: Show, x2 y%GUY% w%GSW% h%GSH% ,%NAME%
return

FILL:
Gui,1:submit,nohide

I:=0

LV_Delete()
LV_ModifyCol(1,T1)

    loop,read,%F2%
          {
          I+=1
          LR=%A_LOOPREADLINE%
          LV_Add("",LR)
          }
return

;################### BUTTONS ##############################
LYRIC:
gui,submit,nohide
if URLY=
return

F11=songtexturl.txt
APPX1=http://lirama.net/search?searchobj=name&search=%URLY%
URLDownloadToFile,%APPX1%,%F11%

A=<li><a href="/
B="/
C=">
Loop,Read,%F11%
      {
      LR=%A_LoopReadLine%
      IfInString,LR,%A%
         {
      IfInString,LR,%URLY%
               {
         StringGetPos,VAR1,LR,%B%
         StringGetPos,VAR2,LR,%C%
         VAR1:=(VAR1+2)
         VAR2:=(VAR2+1)
         VAR3:=(VAR2-VAR1)
         stringmid,NEW,LR,VAR1,VAR3
         GOTO,FOUND1
                }
         }
      }

;TRYsecond for musica popular brasileira
F12=songtextmpb.txt
StringReplace,NewStr,URLY,%S%,-,All
URLDownloadToFile,http://www.beakauffmann.com/%NEWSTR%.html,%F12%
Loop,Read,%F12%
      {
      LR=%A_LoopReadLine%
      IfInString,LR,404
         {
      Goto,TRY3
         }
       }
run,http://www.beakauffmann.com/%NEWSTR%.html
return


TRY3:
if URLY=
return
run,http://www.dogpile.com/info.dogpl/search/web/%URLY% lyric/1/-/1/-/-/-/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/-/0
return


FOUND1:
run,http://lirama.net/search?searchobj=name&search=%URLY%
;run,http://lirama.net%NEW%   ;when more then one opens the first found lyric
return


RELOAD:
reload
return

FOLDER:
run,%R3M%
return

CLEAR:
   GuiControl,1:Focus,URLX
   GuiControl,Text,Edit1,%OutputVar%
   GuiControl,Text,Edit2,%OutputVar%
   GuiControl,Text,Edit3,%OutputVar%
return

;-----------------
WHERE:
START:
Gui,1:submit,nohide
URLX=%URLX%
URLY=%URLX%
if URLX=
return


if ACR=4
    {
run,http://www.dogpile.com/info.dogpl/search/web/%URLX%/1/100/1/-/-/-/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/0
return
    }


if ACR=3
    {
;run,http://www.dogpile.com/info.dogpl/search/images/%URLX%/1/-/1/-/-/-/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/0
run,http://www.dogpile.com/info.dogpl/search/images/%URLX%/1/100/1/-/-/-/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/0
return
    }


if ACR=1
LAC=%LAC1%
if ACR=2
LAC=%LAC2%


LV_Delete()
Filedelete,%F1%
Filedelete,%F2%

;----------------------------------------------
     {
    APPX=http://www.dogpile.com/info.dogpl/search/audio/%URLX%/1/100/1/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/-/417/top/-/-/0
    Splashimage,,M2 x80 y5 CWred   fs10,%URLX%,DOWNLOAD >>>
    URLDownloadToFile,%APPX%,%F1%
    Splashimage, off
    LAC=%LAC%
     }

K=0
A=http://
T=
Loop,Read, %F1%
{
T=%A_LoopReadLine%
StringReplace t,T,.%A_Space%,`,,All
StringRight r,t,1
IfEqual r,., StringTrimRight t,t,1
Loop Parse,t,`,` `"`>`[`]`=`;?`!
     {
   StringLeft r,A_LoopField,7
   If r=%A%
         {
   stringright,Q4,A_LOOPFIELD,4
   if Q4 contains %LAC%
               {
   fileappend,%A_LoopField%`r`n,%F2%
   K++
               }
         }
     }
}

if K>0
    {
goto,KH
    }
else
    {
msgbox,Nothing found
return
    }

KH:
sleep,500
FileRead,AA,%F2%
FileDelete,%F2%
Sort,AA,U
FileAppend,%AA%,%F2%

I:=0
    loop,read,%F2%
          {
          I++
          LV_Add(""I,A_LOOPREADLINE)
          }

LV_ModifyCol(1,T1)
GuiControl,1:,total1,%I%
return


;################### LISTVIEW ##################################
MyListView:
GuiControlGet, MyListView
if A_GuiEvent = Normal
    {
   RN:=LV_GetNext("C")  ;2  selected checked
   RF:=LV_GetNext("F")  ;2  selected focused
   C1=
   GuiControl,Text,Edit1,%NOTHING%
   GuiControl,Text,Edit2,%NOTHING%
   GuiControl,Text,Edit3,%NOTHING%
   LV_GetText(C1,A_EventInfo,1)
   SIZE=
   NAME=
   TEXT1=FINISHED
   PLAYED=0
   ROK=0
   settimer,AAS1,off
   SplitPath,C1,name, dir, ext, name_no_ext, drive
    GuiControl,Text,Edit1,%C1%
    GuiControl,Text,Edit2,%RN%
    StringReplace,NewStr,Name,`%20,%S%,All
    NAME=%NewStr%
    F3=%A_scriptdir%\%R3M%\%NAME%

    ifexist,%F3%
               {
    Y++
    F3=%A_scriptdir%\%R3M%\%NAME_NO_EXT%_Z%Y%.%EXT%
               }

    settimer,AAS1,100
    Splashimage,,M2 x80 w700 y5 CWred   fs10,%NAME%,DOWNLOAD >>>
    URLDownloadToFile,%C1%,%F3%
    Splashimage, off
    settimer,AAS1,off

    PLAYED=0
     FileGetSize,size,%F3%
     if ext=ram
           {
       if size <40
             {
     Filedelete,%F3%
     TEXT1=DELETED
     goto,SKIP1
             }
     ROK=1
     goto,SKIP1
           }

     if size <%MAX1%
            {
     Filedelete,%F3%
     TEXT1=DELETED
            }
    SKIP1:
    GuiControl,Text,Edit3,%TEXT1%


          if ROK=1
          RUN,%F3%    ;should start realplayer for RAM
           ROK=0

/*
;---------------------------
;PLAY when download finished
           If size >%MAX1%
             {
           IF PLAYED=0
                  {
                RUN,%F3%
                 PLAYED=1
                  }
             }
;---------------------------
*/

}

return


;---------------------------
AAS1:
    Gui,1:submit,nohide
    FileGetSize,size,%F3%
    If size >0
      GuiControl,Text,Edit3,%SIZE%
      else
      GuiControl,Text,Edit3,WAIT


    If size >%MAX1%
        {
    IF PLAYED=0
           {
    RUN,%F3%
    PLAYED=1
           }
        }

return
;============================================================================

DNLALL:

   I=0
   loop,read,%F2%
         {
        I++
        SIZE=
        TEXT1=FINISHED
        C1=%A_LOOPREADLINE%
        GuiControl,Text,Edit2,%I%
        GuiControl,Text,Edit1,%C1%
          SplitPath,C1,name, dir, ext, name_no_ext, drive
          GuiControl,Text,Edit1,%C1%
          StringReplace,NewStr,Name,`%20,%S%,All
          NAME=%NewStr%
          F3=%A_scriptdir%\%R3M%\%NAME%

          ifexist,%F3%
                  {
                Y++
                F3=%A_scriptdir%\%R3M%\%NAME_NO_EXT%_Z%Y%.%EXT%
                  }

     settimer,AAS2,100
     Splashimage,,M2 x80 w700 y5 CWred   fs10,%NAME%,DOWNLOAD >>>
     URLDownloadToFile,%C1%,%F3%
     Splashimage, off
     settimer,AAS2,off
     FileGetSize,size,%F3%

     if ext=ram
           {
       if size <40
             {
     Filedelete,%F3%
     TEXT1=DELETED
     goto,SKIP2
             }
     goto,SKIP2
           }


     if size <%MAX1%
            {
     Filedelete,%F3%
     TEXT1=DELETED
            }

     SKIP2:
     GuiControl,Text,Edit3,%TEXT1%
         }
if TEXT1=FINISHED
;run,%F3%
run,%R3M%
return

AAS2:
    Gui,1:submit,nohide
    FileGetSize,size,%F3%
    If size >0
      GuiControl,Text,Edit3,%SIZE%
      else
      GuiControl,Text,Edit3,WAIT
return

GuiClose:
ExitApp


d-man
  • Members
  • 290 posts
  • Last active: Jun 28 2015 09:26 AM
  • Joined: 08 Jun 2006
Great script! I'm really impressed.

Perhaps when 2 or more songs have the same name it could handle it by adding soemthing to their naem rather than erasing the others.

Also if the file already exists it could be named differently.

Also, if the file is empy (not found) perhaps it could let you know and not try to play it.

garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
thanks for suggestions d-man, should work on it or correct the script
made a small correction, if text1=finished then play the last song when DNLALL (not tested)
with wget.exe in first example it makes a new name when name exist
xyz.mp3 > xyz.mp3.1
in first example now works wget.exe hidden , see procent in edit-field
maybe use this smaller script also with wget.exe

rajat as guest
  • Guests
  • Last active:
  • Joined: --
I just checked it out and ...man! this is awesome! ... could getting your fav song be easier?!
Just two requests:
- I love this so please keep this updated to use latest urls
- If not too difficult, adding support for getting lyrics as well

thanks for sharing!

rajat again as guest
  • Guests
  • Last active:
  • Joined: --
and yeah just one last thing... it'd be better if you just edit the first post of this topic to show the latest changes and provide the latest script version. and you can make a post at bottom to anounce your update.

garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
hello d-man and rajat,
thank you for your comments, made small corrections in second script
no time and not good programmer, you can it easy better, place your script
the first one works not bad , wget.exe seems faster, can also skip
here are the links saved and can also search later for url , like
search=http://www.mpbnet.com.br/textos/rm.html

garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
modified second script:
-don' t overwrite existing files (xy.mp3 xy_Z1.mp3 xy_Z2.mp3)
-add button to get lyric
-radiobutton to search mp3/musicall/picture/all in web

Rajat
  • Members
  • 1904 posts
  • Last active: Jul 17 2015 07:45 AM
  • Joined: 28 Mar 2004
Thanks for the lyrics addition! i really like your script.
I would like to request for 2 things:

- NO resetting of master (or any other) volume please. My speakers suddenly turned to 100% is like overkill.

- NO absolute positioning of windows (or atleast the main window). Just remove the X### and Y### from 'Gui, Show' command. I don't have a very high resolution and the windows hide half behind the taskbar.

thanks.

MIA

CleanNews.in : Bite sized latest news headlines from India with zero bloat


garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
thank you Rajat
here a test script without wget, modified screen (not tested)
find more songs on the link rightside (most when ended with MP3/Sound/audio...):

>>see first script above

Rajat
  • Members
  • 1904 posts
  • Last active: Jul 17 2015 07:45 AM
  • Joined: 28 Mar 2004
thanks for the improvements garry! but where did the lyrics and picture etc. options go?

MIA

CleanNews.in : Bite sized latest news headlines from India with zero bloat


garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
example:
jim reeves and then LYRIC button
lirama.net found 256 songs, when not found search for brasilian music (privat site) or at least dogpile search
it exist many links but the most have commercials, maybe you know a good one

jim reeves, enter
select pic, > find pictures in dogpile search
select all, > find all from dogpile search
be careful when you open links which are usually found in search engines

Rajat
  • Members
  • 1904 posts
  • Last active: Jul 17 2015 07:45 AM
  • Joined: 28 Mar 2004
maybe i'm messing up something, but i don't see any picture or lyrics button when i run the last posted script of yours.

MIA

CleanNews.in : Bite sized latest news headlines from India with zero bloat


garry
  • Spam Officer
  • 3219 posts
  • Last active: Sep 20 2018 02:47 PM
  • Joined: 19 Apr 2005
maybe I should check with different screensize

Rajat
  • Members
  • 1904 posts
  • Last active: Jul 17 2015 07:45 AM
  • Joined: 28 Mar 2004
if i set the height of gui to be 475 then it looks fine on my screen.

i tried to see how it'd look on somebody's screen with resolution of 800*600 (yeah, they're still in use).

Posted Image

MIA

CleanNews.in : Bite sized latest news headlines from India with zero bloat