summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Dibb <beandog@gentoo.org>2010-01-05 06:06:49 +0000
committerSteve Dibb <beandog@gentoo.org>2010-01-05 06:06:49 +0000
commit94035ee59f70fa3f97dd7635546a25a9f159fff8 (patch)
tree9ee16f15b2c47dc67a75194fcf3c5f4e224381a9 /import.bugzilla.php
parentMuch more flexibliity on importing package masks, should be self-healing now (diff)
downloadznurt-org-backend-94035ee59f70fa3f97dd7635546a25a9f159fff8.tar.gz
znurt-org-backend-94035ee59f70fa3f97dd7635546a25a9f159fff8.tar.bz2
znurt-org-backend-94035ee59f70fa3f97dd7635546a25a9f159fff8.zip
add comments; cleanup; cosmetics
git-svn-id: file:///var/svn/portage@65 3218660a-b0cf-4799-a991-8ddcc5b9e0f3
Diffstat (limited to 'import.bugzilla.php')
-rw-r--r--import.bugzilla.php21
1 files changed, 16 insertions, 5 deletions
diff --git a/import.bugzilla.php b/import.bugzilla.php
index 3469fa2..0688ad7 100644
--- a/import.bugzilla.php
+++ b/import.bugzilla.php
@@ -1,11 +1,19 @@
<?
+ /**
+ * The bugzilla script grabs a CSV export from Gentoo's bugzilla and inserts them into the database.
+ *
+ * The CSV export seems to be non-negotiable in asking for columns, so you're stuck with what you get.
+ *
+ * Only executes once a day. Goes rather fast, for the most part. Could probably use some curl error
+ * checking in case the site is down, unreachable or slow to respond.
+ */
+
require_once 'header.php';
- require_once 'class.portage.tree.php';
-
- $tree = new PortageTree();
-
-// $verbose = true;
+ if(!$tree) {
+ require_once 'class.portage.tree.php';
+ $tree = new PortageTree();
+ }
$import_bugzilla = false;
@@ -37,6 +45,8 @@
$url = "http://bugs.gentoo.org/buglist.cgi?bug_file_loc=&bug_file_loc_type=allwordssubstr&bug_id=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bugidtype=include&chfieldfrom=&chfieldto=Now&chfieldvalue=&email1=&email2=&emailtype1=exact&emailtype2=substring&field-1-0-0=product&field-1-1-0=bug_status&field-1-2-0=short_desc&field0-0-0=assigned_to&field0-1-0=assigned_to&field0-2-0=short_desc&keywords=&keywords_type=allwords&long_desc=&long_desc_type=allwordssubstr&product=Gentoo%20Linux&query_format=advanced&remaction=&short_desc=$category_name%2F&short_desc_type=allwordssubstr&status_whiteboard=&status_whiteboard_type=allwordssubstr&type-1-0-0=anyexact&type-1-1-0=anyexact&type-1-2-0=allwordssubstr&type0-0-0=notequals&type0-1-0=notequals&type0-2-0=notsubstring&value-1-0-0=Gentoo%20Linux&value-1-1-0=UNCONFIRMED%2CNEW%2CASSIGNED%2CREOPENED&value-1-2-0=media-video%2F&value0-0-0=maintainer-wanted%40gentoo.org&value0-1-0=maintainer-needed%40gentoo.org&value0-2-0=new%20package&votes=&ctype=csv";
$ch = curl_init($url);
+ // FIXME write to a *new* temporary file
+ // FIXME Make sure the CSV is non-empty
$fp = fopen("/tmp/bugs.csv", "w");
curl_setopt($ch, CURLOPT_FILE, $fp);
@@ -52,6 +62,7 @@
}
// FIXME this query takes a while to run
+ // FIXME Have this run after each category is imported, and query for that $cp. That'll go much faster.
$sql = "INSERT INTO package_bugs (bug, package, description, status) SELECT b.bug_id AS bug, p.id AS package, b.short_short_desc, 1 FROM package p INNER JOIN category c ON p.category = c.id INNER JOIN bugzilla b ON b.short_short_desc LIKE ('%' || c.name || '/' || p.name || '%');";
$db->query($sql);