distroquery: files search and results pagination support
This commit is contained in:
parent
adf76fa4fd
commit
4dfb651da5
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: distromatic 1.4.1\n"
|
||||
"Report-Msgid-Bugs-To: silvan.calarco@mambasoft.it\n"
|
||||
"POT-Creation-Date: 2013-10-14 12:08+0200\n"
|
||||
"POT-Creation-Date: 2013-10-15 00:07+0200\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -17,112 +17,120 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: src/distroquery.c:178
|
||||
#: src/distroquery.c:181
|
||||
msgid "Source"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:204
|
||||
#: src/distroquery.c:225
|
||||
msgid "Search"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:238
|
||||
#: src/distroquery.c:259
|
||||
msgid "sources"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:249
|
||||
#: src/distroquery.c:270
|
||||
msgid "Search software packages"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:354 src/distroquery.c:557 src/distroquery.c:702
|
||||
#: src/distroquery.c:374 src/distroquery.c:639 src/distroquery.c:807
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:363
|
||||
#: src/distroquery.c:383
|
||||
msgid "Details"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:380
|
||||
#: src/distroquery.c:401 src/distroquery.c:436
|
||||
#, c-format
|
||||
msgid "Other results in "
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:381
|
||||
#: src/distroquery.c:402 src/distroquery.c:437
|
||||
#, c-format
|
||||
msgid "Results in"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:384
|
||||
#: src/distroquery.c:405 src/distroquery.c:440
|
||||
msgid "for arch "
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:393
|
||||
#: src/distroquery.c:414
|
||||
msgid "provides"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:456
|
||||
#: src/distroquery.c:449
|
||||
msgid "provides file "
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:516
|
||||
msgid "result(s) shown"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:459
|
||||
#: src/distroquery.c:534
|
||||
msgid "Search results for"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:523 src/distroquery.c:666
|
||||
#: src/distroquery.c:604 src/distroquery.c:769
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:528
|
||||
#: src/distroquery.c:609
|
||||
msgid "Size"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:531
|
||||
#: src/distroquery.c:612
|
||||
msgid "Related packages"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:559 src/distroquery.c:704
|
||||
#: src/distroquery.c:641 src/distroquery.c:809
|
||||
msgid "Developers details"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:561
|
||||
#: src/distroquery.c:643
|
||||
msgid "Source package"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:567 src/distroquery.c:705
|
||||
#: src/distroquery.c:649 src/distroquery.c:810
|
||||
msgid "Maintainer"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:568 src/distroquery.c:706
|
||||
#: src/distroquery.c:650 src/distroquery.c:811
|
||||
msgid "Build date"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:571
|
||||
#: src/distroquery.c:653
|
||||
msgid "Obsoletes"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:583
|
||||
#: src/distroquery.c:667
|
||||
msgid "Provides"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:597
|
||||
#: src/distroquery.c:682
|
||||
msgid "Requires"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:673
|
||||
#: src/distroquery.c:701
|
||||
msgid "Files list"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:776
|
||||
msgid "Built packages"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:709
|
||||
#: src/distroquery.c:814
|
||||
msgid "Source files"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:718
|
||||
#: src/distroquery.c:824
|
||||
msgid "Patches"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:728
|
||||
#: src/distroquery.c:835
|
||||
msgid "Build requirements"
|
||||
msgstr ""
|
||||
|
||||
#: src/distroquery.c:740
|
||||
#: src/distroquery.c:849
|
||||
msgid "Changelog"
|
||||
msgstr ""
|
||||
|
64
po/it.po
64
po/it.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: distromatic 1.4.1\n"
|
||||
"Report-Msgid-Bugs-To: silvan.calarco@mambasoft.it\n"
|
||||
"POT-Creation-Date: 2013-10-14 12:08+0200\n"
|
||||
"POT-Creation-Date: 2013-10-15 00:07+0200\n"
|
||||
"PO-Revision-Date: 2013-10-14 01:19+0200\n"
|
||||
"Last-Translator: Silvan Calarco <silvan.calarco@mambasoft.it>\n"
|
||||
"Language-Team: Italian\n"
|
||||
@ -17,112 +17,120 @@ msgstr ""
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/distroquery.c:178
|
||||
#: src/distroquery.c:181
|
||||
msgid "Source"
|
||||
msgstr "Sorgente"
|
||||
|
||||
#: src/distroquery.c:204
|
||||
#: src/distroquery.c:225
|
||||
msgid "Search"
|
||||
msgstr "Cerca"
|
||||
|
||||
#: src/distroquery.c:238
|
||||
#: src/distroquery.c:259
|
||||
msgid "sources"
|
||||
msgstr "sorgenti"
|
||||
|
||||
#: src/distroquery.c:249
|
||||
#: src/distroquery.c:270
|
||||
msgid "Search software packages"
|
||||
msgstr "Cerca pacchetti software"
|
||||
|
||||
#: src/distroquery.c:354 src/distroquery.c:557 src/distroquery.c:702
|
||||
#: src/distroquery.c:374 src/distroquery.c:639 src/distroquery.c:807
|
||||
msgid "Download"
|
||||
msgstr "Scarica"
|
||||
|
||||
#: src/distroquery.c:363
|
||||
#: src/distroquery.c:383
|
||||
msgid "Details"
|
||||
msgstr "Dettagli"
|
||||
|
||||
#: src/distroquery.c:380
|
||||
#: src/distroquery.c:401 src/distroquery.c:436
|
||||
#, c-format
|
||||
msgid "Other results in "
|
||||
msgstr "Altri risultati in "
|
||||
|
||||
#: src/distroquery.c:381
|
||||
#: src/distroquery.c:402 src/distroquery.c:437
|
||||
#, c-format
|
||||
msgid "Results in"
|
||||
msgstr "Risultati in"
|
||||
|
||||
#: src/distroquery.c:384
|
||||
#: src/distroquery.c:405 src/distroquery.c:440
|
||||
msgid "for arch "
|
||||
msgstr "per l'architettura "
|
||||
|
||||
#: src/distroquery.c:393
|
||||
#: src/distroquery.c:414
|
||||
msgid "provides"
|
||||
msgstr "fornisce"
|
||||
|
||||
#: src/distroquery.c:456
|
||||
#: src/distroquery.c:449
|
||||
msgid "provides file "
|
||||
msgstr "fornisce il file "
|
||||
|
||||
#: src/distroquery.c:516
|
||||
msgid "result(s) shown"
|
||||
msgstr "risultati mostrati"
|
||||
|
||||
#: src/distroquery.c:459
|
||||
#: src/distroquery.c:534
|
||||
msgid "Search results for"
|
||||
msgstr "Risultati della ricerca per"
|
||||
|
||||
#: src/distroquery.c:523 src/distroquery.c:666
|
||||
#: src/distroquery.c:604 src/distroquery.c:769
|
||||
msgid "Version"
|
||||
msgstr "Versione"
|
||||
|
||||
#: src/distroquery.c:528
|
||||
#: src/distroquery.c:609
|
||||
msgid "Size"
|
||||
msgstr "Dimensione"
|
||||
|
||||
#: src/distroquery.c:531
|
||||
#: src/distroquery.c:612
|
||||
msgid "Related packages"
|
||||
msgstr "Pacchetti collegati"
|
||||
|
||||
#: src/distroquery.c:559 src/distroquery.c:704
|
||||
#: src/distroquery.c:641 src/distroquery.c:809
|
||||
msgid "Developers details"
|
||||
msgstr "Dettagli per gli sviluppatori"
|
||||
|
||||
#: src/distroquery.c:561
|
||||
#: src/distroquery.c:643
|
||||
msgid "Source package"
|
||||
msgstr "Pacchetto sorgente"
|
||||
|
||||
#: src/distroquery.c:567 src/distroquery.c:705
|
||||
#: src/distroquery.c:649 src/distroquery.c:810
|
||||
msgid "Maintainer"
|
||||
msgstr "Manutentore"
|
||||
|
||||
#: src/distroquery.c:568 src/distroquery.c:706
|
||||
#: src/distroquery.c:650 src/distroquery.c:811
|
||||
msgid "Build date"
|
||||
msgstr "Data di compilazione"
|
||||
|
||||
#: src/distroquery.c:571
|
||||
#: src/distroquery.c:653
|
||||
msgid "Obsoletes"
|
||||
msgstr "Rende obsoleti"
|
||||
|
||||
#: src/distroquery.c:583
|
||||
#: src/distroquery.c:667
|
||||
msgid "Provides"
|
||||
msgstr "Fornisce"
|
||||
|
||||
#: src/distroquery.c:597
|
||||
#: src/distroquery.c:682
|
||||
msgid "Requires"
|
||||
msgstr "Richiede"
|
||||
|
||||
#: src/distroquery.c:673
|
||||
#: src/distroquery.c:701
|
||||
msgid "Files list"
|
||||
msgstr "Lista dei file"
|
||||
|
||||
#: src/distroquery.c:776
|
||||
msgid "Built packages"
|
||||
msgstr "Pacchetti compilati"
|
||||
|
||||
#: src/distroquery.c:709
|
||||
#: src/distroquery.c:814
|
||||
msgid "Source files"
|
||||
msgstr "File sorgenti"
|
||||
|
||||
#: src/distroquery.c:718
|
||||
#: src/distroquery.c:824
|
||||
msgid "Patches"
|
||||
msgstr "Patch"
|
||||
|
||||
#: src/distroquery.c:728
|
||||
#: src/distroquery.c:835
|
||||
msgid "Build requirements"
|
||||
msgstr "Requisiti per la compilazione"
|
||||
|
||||
#: src/distroquery.c:740
|
||||
#: src/distroquery.c:849
|
||||
msgid "Changelog"
|
||||
msgstr "Modifiche"
|
||||
|
@ -83,6 +83,9 @@ char *query = "";
|
||||
char *query_package;
|
||||
char *query_repository;
|
||||
char *query_arch = NULL;
|
||||
int query_limit = 10;
|
||||
int query_offset = 0;
|
||||
char query_next[PATH_MAX] = "";
|
||||
char *lang = "";
|
||||
int query_archs[ARCHS_MAX] = { 1, 0, 0, 0, 0 };
|
||||
|
||||
@ -184,6 +187,24 @@ void printTagsLine(const char* arch, const char* tag, const char* group, const c
|
||||
tag, group, license);
|
||||
}
|
||||
|
||||
char* resolveFilePath(sqlite3 *db, long id, char *buffer) {
|
||||
|
||||
long currid = id;
|
||||
sqlite3_stmt *stmt;
|
||||
char sql[PATH_MAX];
|
||||
buffer[0]='\0';
|
||||
|
||||
do {
|
||||
snprintf(sql, PATH_MAX, "SELECT * FROM files WHERE id=%d", currid);
|
||||
if (!sqlite3_prepare_v2(db, sql, strlen(sql), &stmt, NULL) == SQLITE_OK) return NULL;
|
||||
if (sqlite3_step(stmt) != SQLITE_ROW) return NULL;
|
||||
snprintf(sql, PATH_MAX, "/%s%s", sqlite3_column_text(stmt,1), buffer);
|
||||
snprintf(buffer, PATH_MAX, "%s", sql);
|
||||
currid = sqlite3_column_int(stmt,4); /* parent */
|
||||
} while (currid >= 0);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
void printInputForm() {
|
||||
struct configTag *ct = firstconfigtag;
|
||||
|
||||
@ -254,6 +275,7 @@ void printQueryData() {
|
||||
|
||||
int a, i, j, k, numresults = 0, localresults, localprovidesresults;
|
||||
char dbname[PATH_MAX];
|
||||
sqlite3 *dbf;
|
||||
sqlite3_stmt *statement, *stmt1;
|
||||
char sql[PATH_MAX];
|
||||
char buffer[PATH_MAX];
|
||||
@ -304,7 +326,7 @@ void printQueryData() {
|
||||
"groupdescr LIKE 'Graphical Desktop/%%' DESC, groupdescr LIKE 'Applications/%%' DESC, "
|
||||
"groupdescr LIKE 'Development/%%' ASC, groupdescr LIKE 'Documentation%%' ASC, groupdescr LIKE 'System/Libraries%%' ASC, "
|
||||
"name LIKE '%%-devel' ASC, name LIKE '%%-debug' ASC "
|
||||
"LIMIT 100", queryenc, queryenc, queryenc, queryenc, queryenc, queryenc);
|
||||
"LIMIT %d OFFSET %d", queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, query_limit, query_offset);
|
||||
if (sqlite3_prepare_v2((sqlite3*)query_repositories[i]->db[a], sql, strlen(sql), &statement, NULL) == SQLITE_OK) {
|
||||
while (sqlite3_step(statement) == SQLITE_ROW) {
|
||||
numresults++;
|
||||
@ -370,7 +392,7 @@ void printQueryData() {
|
||||
"(provides.id_package=packages.id AND provided.id=provides.id_provided) "
|
||||
"AND provided.name LIKE '%%%s%%' "
|
||||
"ORDER BY provided.name = '%s' DESC, provided.name LIKE '%s%%' DESC, provided.name LIKE '%%%s%%' DESC "
|
||||
"LIMIT 100", queryenc, queryenc, queryenc, queryenc);
|
||||
"LIMIT %d OFFSET %d", queryenc, queryenc, queryenc, queryenc, query_limit, query_offset);
|
||||
if (sqlite3_prepare_v2((sqlite3*)query_repositories[i]->db[a], sql, strlen(sql), &statement, NULL) == SQLITE_OK) {
|
||||
while (sqlite3_step(statement) == SQLITE_ROW) {
|
||||
numresults++;
|
||||
@ -392,8 +414,47 @@ void printQueryData() {
|
||||
_("provides"),
|
||||
sqlite3_column_text(statement,sqlite3_find_column_id(statement, "provided", "name")));
|
||||
}
|
||||
if (localprovidesresults > 0) printf("</div>");
|
||||
}
|
||||
|
||||
/* files search */
|
||||
snprintf(dbname, PATH_MAX, "%s%s-%s-files.db",
|
||||
query_repositories[i]->repository_dir,
|
||||
query_repositories[i]->tag,
|
||||
query_repositories[i]->arch[a]);
|
||||
if (!sqlite3_open_v2(dbname, &dbf, SQLITE_OPEN_READONLY, NULL)) {
|
||||
snprintf(sql, PATH_MAX, "SELECT * FROM files,packages_files_rel "
|
||||
"WHERE files.name LIKE '%%%s%%' AND "
|
||||
"packages_files_rel.id_file = files.id "
|
||||
"ORDER BY files.name = '%s' DESC, files.name LIKE '%s%%' DESC, "
|
||||
"files.name LIKE '%%%s%%' DESC LIMIT %d OFFSET %d",
|
||||
queryenc, queryenc, queryenc, queryenc, query_limit, query_offset);
|
||||
if (sqlite3_prepare_v2(dbf, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK) {
|
||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||
numresults++;
|
||||
if (++localprovidesresults == 1) {
|
||||
printf("<div style='position:relative'><hr><b>");
|
||||
if (localresults > 0) printf(_("Other results in "));
|
||||
else printf(_("Results in"));
|
||||
printf(" %s %s %s:</b><br>",
|
||||
query_repositories[i]->tag,
|
||||
_("for arch "),
|
||||
query_repositories[i]->arch[a]);
|
||||
}
|
||||
printf("<a href='javascript:distroquery_request("
|
||||
"\"repository=%s&package=%s&arch=%s\")' style=\"color:black;background-color:lightblue\">%s</a> %s %s<br>",
|
||||
query_repositories[i]->tag,
|
||||
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, "packages_files_rel", "name")),
|
||||
query_repositories[i]->arch[a],
|
||||
sqlite3_column_text(stmt1,sqlite3_find_column_id(stmt1, "packages_files_rel", "name")),
|
||||
_("provides file "),
|
||||
resolveFilePath(dbf, sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "id_file")), buffer));
|
||||
}
|
||||
sqlite3_finalize(stmt1);
|
||||
}
|
||||
sqlite3_close(dbf);
|
||||
}
|
||||
if (localprovidesresults > 0) printf("</div>");
|
||||
|
||||
sqlite3_finalize(statement);
|
||||
}
|
||||
}
|
||||
@ -403,8 +464,8 @@ void printQueryData() {
|
||||
if (search_sources) {
|
||||
snprintf(sql, PATH_MAX,
|
||||
"SELECT * FROM sources WHERE name LIKE '%%%s%%' OR summary LIKE '%%%s%%' OR description LIKE '%%%s%%' OR version LIKE '%%%s%%' "
|
||||
"ORDER BY name = '%s' DESC, name LIKE '%s%%' DESC, name LIKE '%%%s%%' DESC LIMIT 100",
|
||||
queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, queryenc);
|
||||
"ORDER BY name = '%s' DESC, name LIKE '%s%%' DESC, name LIKE '%%%s%%' DESC LIMIT %d OFFSET %d",
|
||||
queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, queryenc, query_limit, query_offset);
|
||||
for (i = 0; query_repositories[i] != NULL; i++) {
|
||||
if (!query_repositories[i]->db[ARCHS_MAX]) {
|
||||
snprintf(dbname, PATH_MAX, "%s%s-sources.db", query_repositories[i]->repository_dir, query_repositories[i]->tag);
|
||||
@ -452,7 +513,22 @@ void printQueryData() {
|
||||
printf("<hr>");
|
||||
|
||||
printf("]]></queryreply>");
|
||||
printf("<querystatus><![CDATA[%d %s.]]></querystatus>", numresults, _("result(s) shown"));
|
||||
printf("<querystatus><![CDATA[%d %s. ", numresults, _("result(s) shown"));
|
||||
k = query_offset / query_limit + 1; /* k = current shown page */
|
||||
if (k < 7) j=1; else j=k-5; /* j = start pages list from */
|
||||
if (numresults < query_limit) {
|
||||
/* current page is last available */
|
||||
a=k;
|
||||
j=a-10;
|
||||
if (j <= 0) j=1;
|
||||
} else a=j+9; /* a = number of page links displayed */
|
||||
for (i = j; i <= a; i++) {
|
||||
if (i != k) printf("<a href='javascript:distroquery_request(\"%s&limit=%d&offset=%d\")'>",
|
||||
query_next, query_limit, query_limit * (i-1));
|
||||
printf("%d", i);
|
||||
printf("</a> ");
|
||||
}
|
||||
printf("]]></querystatus>");
|
||||
|
||||
printf("<title><![CDATA[%s '%s' :: %s]]></title>",
|
||||
_("Search results for"),
|
||||
@ -473,7 +549,7 @@ void printPackageData() {
|
||||
|
||||
int a, i, j, k;
|
||||
char dbname[PATH_MAX];
|
||||
sqlite3 *db, *dbs, *dba;
|
||||
sqlite3 *db, *dbs, *dbf;
|
||||
sqlite3_stmt *statement, *stmt1, *stmt2;
|
||||
char sql[PATH_MAX];
|
||||
char buffer[PATH_MAX];
|
||||
@ -618,6 +694,20 @@ void printPackageData() {
|
||||
}
|
||||
sqlite3_finalize(stmt1);
|
||||
}
|
||||
|
||||
/* files list */
|
||||
snprintf(dbname, PATH_MAX, "%s%s-%s-files.db", ct->repository_dir, ct->tag, query_arch);
|
||||
if (!sqlite3_open_v2(dbname, &dbf, SQLITE_OPEN_READONLY, NULL)) {
|
||||
printf("<br><br>%s:<br>", _("Files list"));
|
||||
snprintf(sql, PATH_MAX, "SELECT * FROM packages_files_rel WHERE name='%s'", query_package);
|
||||
if (sqlite3_prepare_v2(dbf, sql, strlen(sql), &stmt1, NULL) == SQLITE_OK) {
|
||||
while (sqlite3_step(stmt1) == SQLITE_ROW) {
|
||||
printf(" %s<br>", resolveFilePath(dbf, sqlite3_column_int(stmt1,sqlite3_find_column_id(stmt1, NULL, "id_file")), buffer));
|
||||
}
|
||||
sqlite3_finalize(stmt1);
|
||||
}
|
||||
sqlite3_close(dbf);
|
||||
}
|
||||
sqlite3_close(dbs);
|
||||
}
|
||||
snprintf(buffer, PATH_MAX, "%s - %s",
|
||||
@ -801,41 +891,56 @@ void parse_request_variables(char *data) {
|
||||
query_package = valuetok;
|
||||
} else if (!strcmp(vartok, "arch")) {
|
||||
query_arch = valuetok;
|
||||
} else if (!strcmp(vartok, "query")) {
|
||||
query = url_decode(valuetok);
|
||||
} else if (!strcmp(vartok, "search_milestone2")) {
|
||||
search_milestone2 = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_milestone1")) {
|
||||
search_milestone1 = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_devel")) {
|
||||
search_devel = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_i586")) {
|
||||
query_archs[0] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_x86_64")) {
|
||||
query_archs[1] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_arm")) {
|
||||
query_archs[2] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_sources")) {
|
||||
search_sources = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "offset")) {
|
||||
query_offset = atoi(url_decode(valuetok));
|
||||
if (query_offset < 0) query_offset = 0;
|
||||
} else if (!strcmp(vartok, "limit")) {
|
||||
query_limit = atoi(url_decode(valuetok));
|
||||
if (query_limit < 0) query_limit = 10;
|
||||
else if (query_limit > 20) query_limit = 20;
|
||||
} else if (!strcmp(vartok, "searchbox")) {
|
||||
searchbox = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "lang")) {
|
||||
lang = valuetok;
|
||||
} else {
|
||||
/* fields to make reusable query string for next pages */
|
||||
if (!strcmp(vartok, "query")) {
|
||||
query = url_decode(valuetok);
|
||||
} else if (!strcmp(vartok, "search_milestone2")) {
|
||||
search_milestone2 = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_milestone1")) {
|
||||
search_milestone1 = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_devel")) {
|
||||
search_devel = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_i586")) {
|
||||
query_archs[0] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_x86_64")) {
|
||||
query_archs[1] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_arm")) {
|
||||
query_archs[2] = strstr(valuetok, "false") != valuetok;
|
||||
} else if (!strcmp(vartok, "search_sources")) {
|
||||
search_sources = strstr(valuetok, "false") != valuetok;
|
||||
}
|
||||
strcat(query_next, vartok);
|
||||
strcat(query_next, "=");
|
||||
strcat(query_next, valuetok);
|
||||
strcat(query_next, "&");
|
||||
}
|
||||
}
|
||||
if (query_next[strlen(query_next)] == '&') query_next[strlen(query_next)] = '\0';
|
||||
|
||||
ct = firstconfigtag;
|
||||
ct = firstconfigtag;
|
||||
i = 0;
|
||||
while (ct) {
|
||||
if ((strstr(ct->tag, "devel") == ct->tag) && search_devel) query_repositories[i++] = ct;
|
||||
ct = ct->next;
|
||||
}
|
||||
ct = firstconfigtag;
|
||||
ct = firstconfigtag;
|
||||
while (ct) {
|
||||
if ((strstr(ct->tag, "milestone2") == ct->tag) && search_milestone2) query_repositories[i++] = ct;
|
||||
ct = ct->next;
|
||||
}
|
||||
ct = firstconfigtag;
|
||||
ct = firstconfigtag;
|
||||
while (ct) {
|
||||
if ((strstr(ct->tag, "milestone1") == ct->tag) && search_milestone1) query_repositories[i++] = ct;
|
||||
ct = ct->next;
|
||||
|
Loading…
Reference in New Issue
Block a user