SaveFrom.net + рдмреИрд╕рд╛рдЦреА, рдпрд╛ PLS рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ

рд╣рд╛рдп рд╣реИрдмреЛрд░реНрддреНрд╕реАред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рди рдХреЗрд╡рд▓ рдореЗрд░реЗ рдкрд╛рд╕ vk.com рдкрд░ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рд╣реИред рдЕрднреА рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдореБрдЭреЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╕реБрдирдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреАрдд рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реЗ рд╣реИрд░рд╛рди рдерд╛ред рдЬрд▓реНрдж рд╣реА рдореБрдЭреЗ рдПрдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╕реЗрд╡рд╛ SaveFrom.net рдорд┐рд▓ рдЧрдИ ред рдФрд░ рд╕рдмрдХреБрдЫ рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рд╡рд╣ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╣реА рд╕рд╛рд░рд╛ рд╕рдВрдЧреАрдд рдирд╣реАрдВ рдирд┐рдХрд╛рд▓ рджреЗрдВрдЧреЗред рд╡рд╣ рд╣рдореЗрдВ рд╡рд░рд┐рдиреНрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:
1. рд╣рдореЗрдВ url рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рджреЗрдВ рддрд╛рдХрд┐ рд╣рдо рдкреВрд░реА рдЪреАрдЬрд╝ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдореИрдиреЗрдЬрд░ рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ, рдЬреИрд╕реЗ рдХрд┐ DownloadManager
2. m3u / pls рдореЗрдВ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рд╕рд╣реЗрдЬреЗрдВ рдЬреЛ рдпреВрдЖрд░рдПрд▓ рдЦреЗрд▓рддреЗ рд╣реИрдВ

рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо 3ee56ab0933e.mp3 рд╣реЛрдЧрд╛ред ID3 рдЯреИрдЧ рдЬрдЧрд╣ рдореЗрдВ рд╣реЛрдЧрд╛ ( UPD рдЙрди рд╕рднреА рдЧрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдЬрд┐рдирдореЗрдВ рдПрдХ рд╕рд╣реА ID3Tag рд╣реИ), рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЧреАрдд рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ
рджреВрд╕рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЧреАрдд рдХрд╛ рд╢реАрд░реНрд╖рдХ рдПрдХрджрдо рд╕рд╣реА рд╣реИред

рдЪреВрдВрдХрд┐ рдореИрдВ рдлреЙрд░реНрдо 3ee56ab0933e.mp3 рдХреА рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдпрд╣ рд╕рдм рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдирд╛рдо рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдШреБрдЯрдиреЗ рдкрд░ рдПрдХ рдЯреВрд▓ рд╕реНрдХреЗрдЪ рдХрд┐рдпрд╛ рд╣реИ рдЬреЛ pls рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ рдФрд░ 10 рдХрдиреЗрдХреНрд╢рди рдореЗрдВ рд╕рдВрдЧреАрдд рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдмрд╛рдЗрдирд░реА + рд╕реНрд░реЛрдд
рд╕рдВрдХрд▓рд┐рдд рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп + рд╕реНрд░реЛрдд рдХреЛрдб (рдбреЗрд▓реНрдлреА рдкрд░) рдпрд╣рд╛рдБ рд╕реНрдерд┐рдд рд╣реИ



рдХреИрд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
1. рд╣рдорд╛рд░реЗ VKontakte рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдиреАрдЪреЗ рддрдХ рд╕реНрдХреНрд░реЙрд▓ рдХрд░реЗрдВ рддрд╛рдХрд┐ SaveFrom.net рдкреВрд░реНрдг pls рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗ
2. рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдЪреБрдиреЗрдВ:

3. рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реА рд╡рд┐рдВрдбреЛ рдореЗрдВ, рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рдкрд░ pls рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдХреЙрдкреА рдХрд░реЗрдВ:

4. рдЗрд╕ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ PLS рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд╕рд╛рде рдлрд╝реАрд▓реНрдб рдореЗрдВ рдореЗрд░реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдореЗрдВ рдбрд╛рд▓реЗрдВ:

5. рдбрд╛рдЙрдирд▓реЛрдб рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рд╕рдВрдЧреАрдд рдХреИрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИред
6. рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ VKMusic рдлрд╝реЛрд▓реНрдбрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рдХрд╛рд░реНрдпрд╢реАрд▓ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдлрд╝реЛрд▓реНрдбрд░ рдХрд╛ рдирд╛рдо рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдкрде рдирд┐рд░рдкреЗрдХреНрд╖ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд░ Allow Skip files рдореЗрдВ рдХреЛрдИ рдбрд╛рдЙрдЯ рд╣реИ, рддреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪреЗрдХ рдХрд░реЗрдЧрд╛ рдХрд┐ рдбрд┐рд╕реНрдХ рдкрд░ рдЙрд╕реА рдирд╛рдо рдХреА рдХреЛрдИ рдлрд╛рдЗрд▓ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╡рд╣ рдЙрд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╖рдпрд╛рдВрддрд░
рдореИрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреЛрдб рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдХрд╛рд░реНрдпрдХреНрд░рдо рд╡рд░реНрдЪреБрдЕрд▓ рдЯреНрд░реАрд╡реНрдпреВ рдФрд░ рдЗрдВрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
untPLSparser.pas - PLS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдкрд╛рд░реНрд╕рд░ред рдореЙрдбреНрдпреВрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдПрдХ рдПрдХрд▓ рдлрд╝рдВрдХреНрд╢рди рд╣реИ:
function Parse(const text: string): TPLSItems; 
рдЗрдирдкреБрдЯ рдкрд░ - рдкреАрдПрд▓рдПрд╕ рдкреНрд▓реЗрд▓рд┐рд╕реНрдЯ, рдСрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рдПрдХ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИ (рд╢реАрд░реНрд╖рдХ + url + рдЕрдХреНрд╕рд░ рдЯреНрд░реИрдХ рдЕрд╡рдзрд┐)

рдпрд╣ рдкреВрд░реА рдмрд╛рдд рдПрдХ рдФрд░ TMusicList рд╕рд░рдгреА рдореЗрдВ рдмрджрд▓ рдЧрдИ рд╣реИ рдЬрд┐рд╕реЗ untDownloadList.pas рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
TMusicList рдореЗрдВ TMusicItem рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рд╕реНрдерд┐рддрд┐, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╣реБрдИ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред

рдЗрд╕рдХреЗ рдмрд╛рдж, рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред 10 рдкреВрд░реНрд╡-рдирд┐рд░реНрдорд┐рдд TDLThread рдереНрд░реЗрдбреНрд╕ рдЬрд┐рдирдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди untDownloadThread.pas рдореЗрдВ рд╣реИ рд╡реЗ рдЧрд╛рдиреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ TfrmMain.RunFreeDownload рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ untMain.pas рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрд╕ рд░рд┐рдХреЙрд░реНрдб рдХрд╛ рд╕реВрдЪрдХрд╛рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ TfrmMain.GetFreeItem рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд┐рд░ рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд╛рдЙрдЯ рд╣реИ, рддреЛ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реА рдХреЛрдИ рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдФрд░ рдпрджрд┐ рд╣реИ рддреЛ рдЫреЛрдбрд╝ рджреЗрдВред

рдХреЙрд▓рдмреИрдХ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ
 DLProgress, DLError, DLComplete, DLTerminate 
рдРрд╕реА рдШрдЯрдирд╛рдПрдВ рдЖрддреА рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ TMusicItem рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рдирдпрд╛ рдбрд╛рдЙрдирд▓реЛрдб рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдбрд╛рдЙрдирд▓реЛрдб рд╕реНрдЯреНрд░реАрдо рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред
рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдереНрд░реЗрдб рд▓реВрдк рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдЯрд╛рд╕реНрдХ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддрд╛ рд╣реИ:
  while (Url = '') do begin if Terminated then Exit; FInWork := False; Sleep(1); end; 
рдЬреИрд╕реЗ рд╣реА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Url рд╣реИ - рдпрд╣ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдЗрдВрдбреА рдмреНрд▓реЙрдХрд┐рдВрдЧ рд╕реЙрдХреЗрдЯреНрд╕ рдкрд░ рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ TIDHTTP.OnWorkBegin, TidHTTP.OnWork, TidHTTP.OnWorkEnd рдХреЙрд▓рдмреИрдХ рдореЗрдВ рд╡рд┐рд╢реЗрд╖ EStopTask рдЕрдкрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдореБрдЭреЗ рдХрд┐рд╕реА рднреА рд╕рдордп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЕрдЧрд░ рдХреБрдЫ рдЧрд▓рдд рд╣реБрдЖ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЕрдзреВрд░реА рдлрд╛рдЗрд▓ рдХреЛ рд╣рд░рд╛ рджреЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдереНрд░реЗрдб рдореЗрдВ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рд╕рдВрднрд╛рд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, AV), рддреЛ рдорд╛рдирдХ рддрдВрддреНрд░ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдереНрд░реЗрдб рдХреЛ рдирд╕реНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ FatalException рдореЗрдВ рд╣реЛрдЧрд╛ред рдЗрд╕рд▓рд┐рдП, untMain.pas рдореЗрдВ, рдореИрдВ OnTerminate рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдереНрд░реЗрдб рдХреЗ рдЕрдкрд╡рд╛рдж рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реВрдВ, рдФрд░ рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореБрдЦреНрдп рдереНрд░реЗрдб рдореЗрдВ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрддрд╛ рд╣реВрдВред

рдирд┐рд╖реНрдХрд░реНрд╖ рдореЗрдВ

рдпрд╣ рд╕рдм, рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореБрдЭреЗ рдЦреБрд╢реА рд╣реИ рдХрд┐ рдЕрдЧрд░ рдореЗрд░реА "рдмреИрд╕рд╛рдЦреА" рдЕрдЪрд╛рдирдХ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реЛ рдЧрдИред

Source: https://habr.com/ru/post/In187240/


All Articles