示例#1
0
/*
Descripcion: Obtiene el query string de una busqueda
Ultima modificacion: Scheinkman, Mariano
Recibe: estructura GET con la busqueda, y estructura GET vacia
Devuelve: ok? 0: -1. Estructura GET llena con el querystring
*/
int obtenerQueryString(msgGet getThread, msgGet *getInfo)
{
    char *palabra, *tipo, *ptr;
    char busqueda[MAX_PATH];
    char queryString[QUERYSTRING_SIZE];
    char filtroTipoBusqueda[100];

    memset(busqueda, '\0', sizeof(busqueda));
    memset(queryString, '\0', sizeof(queryString));
    memset(filtroTipoBusqueda, '\0', sizeof(filtroTipoBusqueda));

    strcpy(busqueda, getThread.palabras);

    ptr = strstr(busqueda, "buscar=");
    tipo = strstr(busqueda, "&tipo=");

    *tipo++ = '\0';
    tipo= tipo + strlen("tipo=");

    palabra = ptr + strlen("buscar=");

    if (!strcmp(tipo, "web"))
    {
        getInfo->searchType = WEB;
        strcpy(filtroTipoBusqueda, "(labeledURL=*.html)");
    }
    else if (!strcmp(tipo, "img"))
    {
        getInfo->searchType = IMG;
        strcpy(filtroTipoBusqueda, "(|(labeledURL=*.jpg)(labeledURL=*.gif)(labeledURL=*.png)(labeledURL=*.jpeg))");
    }
    else if (!strcmp(tipo, "otros"))
    {
        getInfo->searchType = OTROS;
        strcpy(filtroTipoBusqueda, "(!(|(labeledURL=*.html)(labeledURL=*.jpg)(labeledURL=*.gif)(labeledURL=*.png)(labeledURL=*.jpeg)))");
    }
    else
    {
        strcpy(getInfo->palabras, getThread.palabras);
        return -1;
    }

    transformarCaracteresEspeciales(palabra);
    eliminarEspaciosEnBlanco(palabra, getInfo->palabras);
    formatQueryString(getInfo->palabras, queryString);
	
    sprintf(getInfo->queryString, "(&%s%s)", queryString, filtroTipoBusqueda);
		getInfo->protocolo = getThread.protocolo;

    return 0;
}
示例#2
0
Operacion::Operacion(string operacion) {
	this->operacion = operacion;
	reemplazarOperadores();
	eliminarEspaciosEnBlanco();
	eliminarParentesisInnecesarios(this->operacion);
}