Page 3 of 5
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-07 19:20:39
by RayKitt
Hola que tal,
Efectivamente, cambié "True" por "False" en la lía que me indicaban y ahora funciona perfecto. Tengo W10.
Muchísimas gracias a todos!
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-07 19:34:04
by DJSAT
Garada wrote: 2025-12-07 19:03:10
DJSAT, prueba con este cambio en ExternalCurlHandler.pas
Busca
y cámbialo por
A ver si cambia algo.
Otra cosa es comprobar si tienes permiso de escritura en la carpeta de los scripts, ¿sabes comprobarlo?
Cambiado, sigue igual. Sí, tengo permisos.
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-07 19:54:32
by Garada
DJSAT wrote: 2025-12-07 19:34:04
Garada wrote: 2025-12-07 19:03:10
DJSAT, prueba con este cambio en ExternalCurlHandler.pas
Busca
y cámbialo por
A ver si cambia algo.
Otra cosa es comprobar si tienes permiso de escritura en la carpeta de los scripts, ¿sabes comprobarlo?
Cambiado, sigue igual. Sí, tengo permisos.
¿Ahora, con ese cambio, te sale una ventana de comandos como la siguiente?

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-08 00:29:59
by DJSAT
Garada wrote: 2025-12-07 19:54:32
¿Ahora, con ese cambio, te sale una ventana de comandos como la siguiente?
Si! aparece la ventana y ahora sí funciona perfecto!. Muchas gracias!

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-08 03:07:03
by Radagast
Bueno, parece que ya está todo el mundo catalogando sin problemas.
Un apunte, si tenéis cambiada alguna opción/parametro en
ExternalCurlHandler.pas y lo actualizáis, tendréis que editarlo de nuevo para volver a poner las opciones/parametros que teníais en la versión anterior.
antp wrote: 2025-11-21 18:32:44
Garada wrote: 2025-11-19 17:57:12
I meant the "ExternalCurlHandler.pas" file, I added code to avoid certificate errors caused by some antivirus software.
This is the updated file:
Thanks, I updated it to my server
Antoine, if U can update ExternalCurlHandler.pas on the server. There are a problem on W10 if the parameter NoCertCheck it's True, so I change it by default to False.
Thanks
Code: Select all
// 2025/07/21 - Initial version: MrObama2022
// 2025/10/12 - Code simplification and spanish comments: Garada
// 2025/11/18 - Parameter to fix certificate error due to some antivirus softwares
unit ExternalCurlHandler;
uses
StringUtils7552;
const
// Values that alter the operation of the script.
// Valores que cambian el comportamiento del script
// Use Visual Basic Script to hide curl windows, disable if you do not want to or cannot use VBS (p.e. Linux)
// Usar Visual Basic para ocultar la ventana de cURL, desabilitar si no quiere o no puede usar VBS (p. ej. Linux)
UseVBS = True;
// (optional) if you want get your scripts directory clean, set here your tmp working dir, example C:\Users\YOURWINDOWSUSER\AppData\Local\Temp\
// (Opcional) Si quiere mantener su carpeta de scripts limpia, especifique una carpeta temporal de trabajo. P. ej. C:\Users\YOURWINDOWSUSER\AppData\Local\Temp\
tmpDir = '';
//Time to wait (ms) before make a call to URL, p.e. 2001
// Tiempo en ms a esperar antes de hacer na llamada a la URL, p. ej. 2001
delayBetweenRequest = 0;
// if you use Windows 7 or 8 download curl.exe for Windows (it's free https://curl.se/) and set here the right path
// Si usa Windows 7 u 8 debe descargar cURL,exe (gratuito: https://curl.se/) y especificar la ruta correcta
curlPath = 'curl.exe';
// Max time to wait for response in ms
// Tiempo máximo de espera por la respuesta en ms
TimeOut = 10000;
// Use proxy: http|https|socks4|socks5://[user:password@]IP:port
// Usar proxy: http|https|socks4|socks5://[usuario:clave@]IP:puerto
Proxy = ''; // p.e. 'socks5://user:pass@127.0.0.1:9150'
// Don't check certificate, change value to True if error CRYPT_E_NO_REVOCATION_CHECK
// Nu comprobar certificado, ambiar el valor a True si da error CRYPT_E_NO_REVOCATION_CHECK
NoCertCheck = False;
// Extra parameters for cURL
// Parámetros extra para el cURL
ExtraParams = '';
vbsScript = 'ExternalCurlHandler.vbs';
curlOutput = 'curlOutput.html';
curlUserAgent = 'Mozilla/5.0 (compatible; Ant Movie Catalog)';
//curlUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 AntMovieCatalog/4';
var
InstallerPath: string;
function GetPage5Advanced(address: string; referer: string; cookies: string; content: string; headers: string): string;
var
cnt: integer;
fileContent: TStringList;
curlOutputResult: string;
sCommand: string;
begin
Result := '';
// Create VBS file if not exists
if setupScript then
begin
// Delete temporal files
if fileExists(InstallerPath + curlOutput) then
DeleteFile(InstallerPath + curlOutput);
curlOutputResult := curlOutput + '.result';
if fileExists(InstallerPath + curlOutputResult) then
DeleteFile(InstallerPath + curlOutputResult);
// CURL parameters:
// Create info file with return codes and possible errors, it's created after page is downloaded
sCommand := '-w "%output{' + InstallerPath + curlOutputResult + '}%{url}\nExitCode: %{exitcode}\nErrorMsg: %{errormsg}\nResponseCode: %{http_code}"';
// Download page and save to file
//sCommand := sCommand + ' -L --output "' + InstallerPath + curlOutput + '" --url "' + address + '" ' + '-H "Accept: text/html, */*" -H "Accept-Language: it" -H "DNT: 1" -H "Priority: u=0, i" -H "Sec-Ch-Ua: \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"" -H "Sec-Ch-Ua-Mobile: ?0" -H "Sec-Ch-Ua-Platform: \"Windows\"" -H "Sec-Fetch-Dest: Document" -H "Sec-Fetch-Mode: Navigate" -H "Sec-Fetch-Site: None" -H "Sec-Fetch-User: ?1" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: ' + curlUserAgent + '"';
sCommand := sCommand + ' ' + ExtraParams + ' -L --output "' + InstallerPath + curlOutput + '" --url "' + address + '" -A "' + curlUserAgent + '"';
if Proxy <> '' then
sCommand := '-x "' + Proxy + '" ' + sCommand;
if NoCertCheck then
sCommand := '--ssl-no-revoke ' + sCommand;
//test slow connection, don't uncomment
//sCommand := '--limit-rate 1 ' + sCommand;
Sleep(delayBetweenRequest);
if UseVBS then
begin
// Launch CURL. Change " for #1 as VBS uses " for parameters. The VBS script undone the changes.
Launch('wscript.exe', '"' +InstallerPath + vbsScript + '" "' + curlPath + '" ' + StringReplace(sCommand, '"', #1));
end
else
Launch(curlPath, sCommand);
// Wait for end info file or timeout
cnt := 0;
while (not FileExists(InstallerPath + curlOutputResult)) and (cnt < TimeOut div 50) do
begin
cnt := cnt + 1;
Sleep(50);
end;
// if info file exists
if (fileExists(InstallerPath + curlOutputResult)) then
begin
fileContent := TStringList.Create;
try
// Read and delete info file
fileContent.LoadFromFile(InstallerPath + curlOutputResult);
DeleteFile(InstallerPath + curlOutputResult);
// if return error
if TextBetween(fileContent.Text, 'ErrorMsg: ', #13) <> '' then
ShowError('Error downloading page.' + #13 + fileContent.Text)
else if (fileExists(InstallerPath + curlOutput)) then // if downloaded page exits
begin
// Read and delete downloaded page
fileContent.LoadFromFile(InstallerPath + curlOutput);
DeleteFile(InstallerPath + curlOutput);
// Return page
Result := fileContent.Text;
//if Pos('</html>', Result) < 1 then
// ShowError('TRIM!!!');
end
else // no error, no download, no timeout...
ShowError('The page did not download');
finally
fileContent.Free;
end;
end
else // if not: timeout
ShowError('Internal Timeout!!');
end
else
begin
Sleep(delayBetweenRequest);
Result := GetPage5(address, referer, cookies, content, headers);
end;
end;
function setupScript: boolean;
var
ScriptContent: TStringList;
begin
Result := False;
// initialize working path
if (tmpDir <> '') then
InstallerPath := tmpDir
else
InstallerPath := dirScripts;
InstallerPath := IncludeTrailingPathDelimiter(InstallerPath);
// Create a generic VBS script that
// open a command with parameters in hidden window
if UseVBS then
if (not FileExists(InstallerPath + vbsScript)) then
begin
ScriptContent := TStringList.Create;
ScriptContent.Add('Dim Args()');
ScriptContent.Add('ReDim Args(WScript.Arguments.Count - 1)');
ScriptContent.Add('Args(0) = """" & WScript.Arguments(0) & """"');
ScriptContent.Add('For i = 1 To WScript.Arguments.Count - 1');
ScriptContent.Add(' Args(i) = Replace(WScript.Arguments(i), chr(1), chr(34))');
ScriptContent.Add('Next');
ScriptContent.Add('CreateObject("Wscript.Shell").Run Join(Args), 0, False');
ScriptContent.SaveToFile(InstallerPath + vbsScript);
ScriptContent.Free;
end;
Result := true;
end;
begin
end.
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-08 09:33:26
by antp
Done
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-08 21:28:22
by Garada
DJSAT wrote: 2025-12-08 00:29:59
Si! aparece la ventana y ahora sí funciona perfecto!. Muchas gracias!
Bien, me alegro
Si no te importa hacer una prueba más...
Borra el archivo ExternalCurlHandler.
VBS y vuelve a poner
A ver si sigue funcionando.

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-08 23:54:44
by DJSAT
Garada wrote: 2025-12-08 21:28:22
Bien, me alegro
Si no te importa hacer una prueba más...
Borra el archivo ExternalCurlHandler.
VBS y vuelve a poner
A ver si sigue funcionando.
Sí, sigue funcionando.
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-09 07:46:02
by Garada
DJSAT wrote: 2025-12-08 23:54:44
Sí, sigue funcionando.
Bien, pues déjalo así si te parece bien.
Parece ser que ese fichero era antiguo y al borrarlo se creó de nuevo correctamente.
Nota mental para mí: tengo que añadir código para que compruebe las fechas de los ficheros y los recree automáticamente.

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-09 15:42:19
by DJSAT
Garada wrote: 2025-12-09 07:46:02
Bien, pues déjalo así si te parece bien.
Parece ser que ese fichero era antiguo y al borrarlo se creó de nuevo correctamente.
Nota mental para mí: tengo que añadir código para que compruebe las fechas de los ficheros y los recree automáticamente.
Por supuesto, a mandar, me alegro de haber sido útil después de tu ayuda

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-14 16:25:43
by xavisik
Hola,
En "ExternalCurlHandles.pas" tengo los siguientes parámetros:
NoCertCheck = False;
UseVBS = False;
Cuando introduzco un título me aparece la pantalla negra de comandos (la imagen de un par de posts anteriores) durante dos segundos y luego desaparece pero no funciona (sale "no hay resultados") y no devuelve ninguna información.
Nota: Si UseVBS está en True pasa lo mismo (no funciona). La única diferencia es que la pantalla negra de comandos no aparece.
¿Alguna solución?
Gracias
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-16 00:33:01
by Radagast
xavisik wrote: 2025-12-14 16:25:43
Hola,
En "ExternalCurlHandles.pas" tengo los siguientes parámetros:
NoCertCheck = False;
UseVBS = False;
Cuando introduzco un título me aparece la pantalla negra de comandos (la imagen de un par de posts anteriores) durante dos segundos y luego desaparece pero no funciona (sale "no hay resultados") y no devuelve ninguna información.
Nota: Si UseVBS está en True pasa lo mismo (no funciona). La única diferencia es que la pantalla negra de comandos no aparece.
¿Alguna solución?
Gracias
Hola,
¿W10 o W11?¿Tienes algun antivirus o firewall?
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-20 11:54:40
by xavisik
Hola,
Tengo Windows 10 y el antivirus el propio de windows o sea el defender.
Gracias.
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-21 01:26:56
by Garada
Añado nueva versión de prueba del fichero "ExternalCurlHandler.pas" con los siguientes añadidos:
- Crea de nuevo el fichero VBS si es más viejo (así estará actualizado automáticamente)
- La variable "NoCertCheck" por defecto a falso
- Modo "debug" (depuración): no elimina los archivos devueltos por cURL, lo que puede ayudar a encontrar fallos o problemas.
Code: Select all
// 2025/07/21 - Initial version: MrObama2022
// 2025/10/12 - Code simplification and spanish comments: Garada
// 2025/11/18 - Parameter to fix certificate error due to some antivirus softwares
// 2025/12/21 - "NoCertCheck" default to False. Debug mode. Recreate VBS if this file is newer.
unit ExternalCurlHandler;
uses
StringUtils7552, StringUtils1;
const
// Values that alter the operation of the script.
// Valores que cambian el comportamiento del script
// Use Visual Basic Script to hide curl windows, disable if you do not want to or cannot use VBS (p.e. Linux)
// Usar Visual Basic para ocultar la ventana de cURL, desabilitar si no quiere o no puede usar VBS (p. ej. Linux)
UseVBS = True;
// (optional) if you want get your scripts directory clean, set here your tmp working dir, example C:\Users\YOURWINDOWSUSER\AppData\Local\Temp\
// (Opcional) Si quiere mantener su carpeta de scripts limpia, especifique una carpeta temporal de trabajo. P. ej. C:\Users\YOURWINDOWSUSER\AppData\Local\Temp\
tmpDir = '';
//Time to wait (ms) before make a call to URL, p.e. 2001
// Tiempo en ms a esperar antes de hacer na llamada a la URL, p. ej. 2001
delayBetweenRequest = 0;
// if you use Windows 7 or 8 download curl.exe for Windows (it's free https://curl.se/) and set here the right path
// Si usa Windows 7 u 8 debe descargar cURL,exe (gratuito: https://curl.se/) y especificar la ruta correcta
curlPath = 'curl.exe';
// Max time to wait for response in ms
// Tiempo máximo de espera por la respuesta en ms
TimeOut = 10000;
// Use proxy: http|https|socks4|socks5://[user:password@]IP:port
// Usar proxy: http|https|socks4|socks5://[usuario:clave@]IP:puerto
Proxy = ''; // p.e. 'socks5://user:pass@127.0.0.1:9150'
// Don't check certificate, change value to True if error CRYPT_E_NO_REVOCATION_CHECK
// Nu comprobar certificado, ambiar el valor a True si da error CRYPT_E_NO_REVOCATION_CHECK
NoCertCheck = False;
// Extra parameters for cURL
// Parámetros extra para el cURL
ExtraParams = '';
// Activate debug mode
// Activa el modo depuración
Debug = False;
vbsScript = 'ExternalCurlHandler.vbs';
curlOutput = 'curlOutput.html';
curlUserAgent = 'Mozilla/5.0 (compatible; Ant Movie Catalog)';
//curlUserAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36 AntMovieCatalog/4';
var
InstallerPath: string;
function GetPage5Advanced(address: string; referer: string; cookies: string; content: string; headers: string): string;
var
cnt: integer;
fileContent: TStringList;
curlOutputResult: string;
sCommand: string;
begin
Result := '';
// Create VBS file if not exists
if setupScript then
begin
// Delete temporal files
if fileExists(InstallerPath + curlOutput) then
DeleteFile(InstallerPath + curlOutput);
curlOutputResult := curlOutput + '.result';
if fileExists(InstallerPath + curlOutputResult) then
DeleteFile(InstallerPath + curlOutputResult);
// CURL parameters:
// Create info file with return codes and possible errors, it's created after page is downloaded
sCommand := '-w "%output{' + InstallerPath + curlOutputResult + '}%{url}\nExitCode: %{exitcode}\nErrorMsg: %{errormsg}\nResponseCode: %{http_code}"';
// Download page and save to file
//sCommand := sCommand + ' -L --output "' + InstallerPath + curlOutput + '" --url "' + address + '" ' + '-H "Accept: text/html, */*" -H "Accept-Language: it" -H "DNT: 1" -H "Priority: u=0, i" -H "Sec-Ch-Ua: \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\", \"Google Chrome\";v=\"138\"" -H "Sec-Ch-Ua-Mobile: ?0" -H "Sec-Ch-Ua-Platform: \"Windows\"" -H "Sec-Fetch-Dest: Document" -H "Sec-Fetch-Mode: Navigate" -H "Sec-Fetch-Site: None" -H "Sec-Fetch-User: ?1" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: ' + curlUserAgent + '"';
sCommand := sCommand + ' ' + ExtraParams + ' -L --output "' + InstallerPath + curlOutput + '" --url "' + address + '" -A "' + curlUserAgent + '"';
if Proxy <> '' then
sCommand := '-x "' + Proxy + '" ' + sCommand;
if NoCertCheck then
sCommand := '--ssl-no-revoke ' + sCommand;
//test slow connection, don't uncomment
//sCommand := '--limit-rate 1 ' + sCommand;
Sleep(delayBetweenRequest);
if UseVBS then
begin
// Launch CURL. Change " for #1 as VBS uses " for parameters. The VBS script undone the changes.
Launch('wscript.exe', '"' +InstallerPath + vbsScript + '" "' + curlPath + '" ' + StringReplace(sCommand, '"', #1));
end
else
Launch(curlPath, sCommand);
// Wait for end info file or timeout
cnt := 0;
while (not FileExists(InstallerPath + curlOutputResult)) and (cnt < TimeOut div 50) do
begin
cnt := cnt + 1;
Sleep(50);
end;
// if info file exists
if (fileExists(InstallerPath + curlOutputResult)) then
begin
fileContent := TStringList.Create;
try
// Read and delete info file
fileContent.LoadFromFile(InstallerPath + curlOutputResult);
if not Debug then
DeleteFile(InstallerPath + curlOutputResult);
// if return error
if TextBetween(fileContent.Text, 'ErrorMsg: ', #13) <> '' then
ShowError('Error downloading page.' + #13 + fileContent.Text)
else if (fileExists(InstallerPath + curlOutput)) then // if downloaded page exits
begin
// Read and delete downloaded page
fileContent.LoadFromFile(InstallerPath + curlOutput);
if not Debug then
DeleteFile(InstallerPath + curlOutput);
// Return page
Result := fileContent.Text;
//if Pos('</html>', Result) < 1 then
// ShowError('TRIM!!!');
end
else // no error, no download, no timeout...
ShowError('The page did not download');
finally
fileContent.Free;
end;
end
else // if not: timeout
ShowError('Internal Timeout!!');
end
else
begin
Sleep(delayBetweenRequest);
Result := GetPage5(address, referer, cookies, content, headers);
end;
end;
function setupScript: boolean;
var
ScriptContent: TStringList;
VbsDate, PasDate: string;
begin
Result := False;
// initialize working path
if (tmpDir <> '') then
InstallerPath := tmpDir
else
InstallerPath := dirScripts;
InstallerPath := IncludeTrailingPathDelimiter(InstallerPath);
VbsDate := FileDate(InstallerPath + vbsScript);
PasDate := FileDate(dirScripts + 'ExternalCurlHandler.pas');
// Create a generic VBS script that
// open a command with parameters in hidden window
if UseVBS then
//if (not FileExists(InstallerPath + vbsScript)) then
if (PasDate >= VbsDate) then
begin
ScriptContent := TStringList.Create;
ScriptContent.Add('Dim Args()');
ScriptContent.Add('ReDim Args(WScript.Arguments.Count - 1)');
ScriptContent.Add('Args(0) = """" & WScript.Arguments(0) & """"');
ScriptContent.Add('For i = 1 To WScript.Arguments.Count - 1');
ScriptContent.Add(' Args(i) = Replace(WScript.Arguments(i), chr(1), chr(34))');
ScriptContent.Add('Next');
ScriptContent.Add('CreateObject("Wscript.Shell").Run Join(Args), 0, False');
ScriptContent.SaveToFile(InstallerPath + vbsScript);
ScriptContent.Free;
end;
Result := true;
end;
function FileDate(FileName: string): string;
var
FileInfo: string;
begin
FileInfo := ListDirectory(ExcludeTrailingPathDelimiter(ExtractFilePath(FileName)), ExtractFileName(FileName)); // File Info
FileInfo := TextAfter(FileInfo, #9); // remove file name
FileInfo := TextAfter(FileInfo, #9); // remove file size
Result := TextBefore(FileInfo, #9, ''); // extract file date
end;
begin
end.
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-21 01:34:04
by Garada
xavisik wrote: 2025-12-20 11:54:40
Tengo Windows 10 y el antivirus el propio de windows o sea el defender.
Prueba a editar el archivo "ExternalCurlHandler.pas" con el código del mensaje anterior pero hazle una modificación antes de guardarlo: busca la línea que pone
y cámbialo por
Eso hará que se creen dos archivos cuando hagas la búsqueda: "curlOutput.html" y "curlOutput.html.result"
Pon por aquí el contenido de "curlOutput.html.result" a ver si nos da pistas de porqué te falla.

Re: [REL] [ES] Filmaffinity 5.0
Posted: 2025-12-24 14:42:52
by antp
Garada wrote: 2025-12-21 01:26:56
Añado nueva versión de prueba del fichero "ExternalCurlHandler.pas" con los siguientes añadidos:
Thanks, I updated it on my server
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2026-01-05 09:32:00
by marc1200
Hola
Pues he intentado todo lo que indicais y me sigue saliendo el error de "La función de revocación no puede comprobar la revocación para el certificado" ResponseCode: 000
La versión que tengo es W10
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2026-01-07 23:51:34
by Garada
marc1200 wrote: 2026-01-05 09:32:00
Hola
Pues he intentado todo lo que indicais y me sigue saliendo el error de "La función de revocación no puede comprobar la revocación para el certificado" ResponseCode: 000
La versión que tengo es W10
Perdona, no vi el aviso que había un mensaje nuevo.
Para tu caso, debería funcionar si en el fichero "ExternalCurlHandler.pas" cambias la línea que dice:
por
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2026-01-08 00:00:54
by Garada
antp wrote: 2025-12-24 14:42:52
Thanks, I updated it on my server
Thanks antp.
BTW, I tried out the project TaurusTLS (OpenSSL 3.x for Indy) and I was able to download from Filmaffinity without any problems.
https://github.com/TaurusTLS-Developers/TaurusTLS
It's easy to implement, only needed to change TIdSSLIOHandlerSocketOpenSSL with TTaurusTLSIOHandlerSocket
Re: [REL] [ES] Filmaffinity 5.0
Posted: 2026-01-08 05:38:14
by antp
Thanks, I'll put it on my to-do list to test it some day
