//-------------------------------------------------
// URL DOWNLOAD TO FILE
// Por Bruno da Silva @ [iPs]TeaM 2012
//-------------------------------------------------
#include "main.h"
#include "malloc.h"
#include <windows.h>
#include <urlmon.h>
#include <stdio.h>
#include <iostream>
#include <fstream>
#pragma comment(lib, "urlmon.lib")
logprintf_t logprintf;
void **ppPluginData;
using namespace std;
extern void *pAMXFunctions;
PLUGIN_EXPORT unsigned int PLUGIN_CALL Supports()
{
return SUPPORTS_VERSION | SUPPORTS_AMX_NATIVES;
}
PLUGIN_EXPORT bool PLUGIN_CALL Load(void **ppData)
{
pAMXFunctions = ppData[PLUGIN_DATA_AMX_EXPORTS];
logprintf = (logprintf_t)ppData[PLUGIN_DATA_LOGPRINTF];
logprintf("URLDownloadToFile Por Bruno da Silva");
return true;
}
PLUGIN_EXPORT void PLUGIN_CALL Unload()
{
logprintf("URLDownloadToFile Por Bruno da Silva");
}
/********************************************************************************/
char *parametro[2];
int processar;
void WINAPI processoAlternativo(LPVOID parames);
void WINAPI processoAlternativo(LPVOID parames)
{
char string[64] = "scriptfiles/";
strcat_s(string, (LPCSTR)parametro[1]);
processar = 1;
HRESULT hr = URLDownloadToFile( NULL, (LPCSTR)parametro[0], (LPCSTR)string, 0, NULL );
char append[05] = "_OX_";
strcat_s(string, append);
FILE * pFile;
pFile = fopen (string, "w+");
if (pFile != NULL) {
fclose (pFile);
}
}
static cell AMX_NATIVE_CALL n_URLDownloadToFile(AMX *amx, cell *params)
{
if(params[0] == 8) {
amx_StrParam(amx, params[1], parametro[0]);
amx_StrParam(amx, params[2], parametro[1]);
DWORD dwXuxaTHR;
processar = 0;
HANDLE hThread = CreateThread(0,0,(LPTHREAD_START_ROUTINE)processoAlternativo, (LPVOID)0, 0,&dwXuxaTHR);
while(!processar) continue;
return 1;
}
return 0;
}
AMX_NATIVE_INFO nvoNatives[] =
{
{ "URLDownloadToFileInterno", n_URLDownloadToFile},
{ 0, 0 }
};
PLUGIN_EXPORT int PLUGIN_CALL AmxLoad(AMX *amx)
{
return amx_Register(amx, nvoNatives, -1);
}
PLUGIN_EXPORT int PLUGIN_CALL AmxUnload(AMX *amx)
{
return AMX_ERR_NONE;
}
///////////////////////////////////////////////////////////////////////////////
// a_gvars.inc -> Por Bruno
#if !defined varGet
#define varGet(%0) getproperty(0,%0)
#endif
#if !defined varSet
#define varSet(%0,%1) setproperty(0, %0, %1)
#endif
// a_udtf.nic -> Por Bruno
// defina aqui o mбximo de downloads que podem ser feitos
#define MAX_DOWNLOADS 500
///////////////////////////////////////////////////////////////////////////////
new szSiteDownload[MAX_DOWNLOADS][128];
new szFileDownload[MAX_DOWNLOADS][064];
new giDownloads;
native URLDownloadToFileInterno(site[], arquivo[]);
stock URLDownloadToFile(site[], arquivo[])
{
static strBuff[64];
format(strBuff, 64, "%s", arquivo);
URLDownloadToFileInterno(site, strBuff);
varSet(strBuff, SetTimerEx("gDown_CHKFile", 900, true, "i", giDownloads));
format(szFileDownload[giDownloads], 64, arquivo);
format(szSiteDownload[giDownloads], 00128, site);
giDownloads++;
return true;
}
forward gDown_CHKFile(fileid);
public gDown_CHKFile(fileid)
{
if(szFileDownload[fileid][0]) {
static stmpHeCK[64];
format(stmpHeCK, 64, "%s_OX_", szFileDownload[fileid]);
if(fexist(stmpHeCK)) {
KillTimer(varGet(szFileDownload[fileid]));
// public OnURlDownloaded(site[], file[])
CallLocalFunction("OnURlDownloaded", "ss", szSiteDownload[fileid], szFileDownload[fileid]);
fremove(stmpHeCK);
}
}
return true;
}
forward OnURlDownloaded(site[], arquivo[]);
URLDownloadToFile("http://dl.dropbox.com/u/89425664/Julho01.mp3", "arquivoBaixado.mp3");
forward OnURlDownloaded(site[], arquivo[]);
public OnURlDownloaded(site[], arquivo[]) {
printf("O arquivo vindo do site %s \n terminou de baixar e esta salvo em %s", site, arquivo);
return true;
}
Bruno, sem ofenзa... mas, vocк nгo faz outras coisas alйm de ficar criando cуdigos na frente do pc?
Fica a maioria do tempo aqui no forum. So estou sendo sincero, antes que venha os "iPs" falar merda. @Topic Parabйns '-' |
Bruno, sem ofenзa... mas, vocк nгo faz outras coisas alйm de ficar criando cуdigos na frente do pc?
Fica a maioria do tempo aqui no forum. So estou sendo sincero, antes que venha os "iPs" falar merda. @Topic Parabйns '-' This forum requires that you wait 120 seconds between posts. Please try again in 26 seconds. |
Alguйm aqui me ajuda com a estrutura de um arquivo MP3? Estou tentando pegar a taxa de bit rates dele (pуs baixado) para poder pegar as informaзхes dele. Mas nгo acho nenhuma funзгo que explique isto direito. Sem ser ffmpeg.
|