<?php | <?php |
require_once '../include/common.inc.php'; | require_once '../include/common.inc.php'; |
//function createFOIDocumentsDesignDoc() { | |
$foidb = $server->get_db('disclosr-foidocuments'); | |
$obj = new stdClass(); | |
$obj->_id = "_design/" . urlencode("app"); | |
$obj->language = "javascript"; | |
$obj->views->all->map = "function(doc) { emit(doc._id, doc); };"; | |
$obj->views->byDate->map = "function(doc) { emit(doc.date, doc); };"; | |
// allow safe updates (even if slightly slower due to extra: rev-detection check). | |
$foidb->save($obj, true); | |
function createDocumentsDesignDoc() { | |
/* | |
global $db; | |
$obj = new stdClass(); | |
$obj->_id = "_design/" . urlencode("app"); | |
$obj->language = "javascript"; | |
$obj->views->all->map = "function(doc) { emit(doc._id, doc); };"; | |
$obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };"; | |
"views": { | |
"web_server": { | |
"map": "function(doc) {\n emit(doc.web_server, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byAgency": { | |
"map": "function(doc) {\n emit(doc.agencyID, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byURL": { | |
"map": "function(doc) {\n emit(doc.url, doc);\n}" | |
}, | |
"agency": { | |
"map": "function(doc) {\n emit(doc.agencyID, doc);\n}" | |
}, | |
"byWebServer": { | |
"map": "function(doc) {\n emit(doc.web_server, doc);\n}" | |
}, | |
"getValidationRequired": { | |
"map": "function(doc) {\nif (doc.mime_type == \"text/html\" \n&& typeof(doc.validation) == \"undefined\") {\n emit(doc._id, doc._attachments);\n}\n}" | |
} | |
} */ | |
} | |
//function createAgencyDesignDoc() { | |
$db = $server->get_db('disclosr-agencies'); | $db = $server->get_db('disclosr-agencies'); |
createAgencyDesignDoc(); | $obj = new stdClass(); |
$obj->_id = "_design/" . urlencode("app"); | |
$obj->language = "javascript"; | |
$obj->views->all->map = "function(doc) { emit(doc._id, doc); };"; | |
$obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };"; | |
$obj->views->byCanonicalName->map = "function(doc) { | |
if (doc.parentOrg || doc.orgType == 'FMA-DepartmentOfState') { | |
emit(doc.name, doc); | |
} | |
};"; | |
$obj->views->byDeptStateName->map = "function(doc) { | |
if (doc.orgType == 'FMA-DepartmentOfState') { | |
emit(doc.name, doc._id); | |
} | |
};"; | |
$obj->views->parentOrgs->map = "function(doc) { | |
if (doc.parentOrg) { | |
emit(doc._id, doc.parentOrg); | |
} | |
};"; | |
$obj->views->byName->map = 'function(doc) { | |
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") { | |
emit(doc.name, doc._id); | |
if (typeof(doc.shortName) != "undefined" && doc.shortName != doc.name) { | |
emit(doc.shortName, doc._id); | |
} | |
for (name in doc.otherNames) { | |
if (doc.otherNames[name] != "" && doc.otherNames[name] != doc.name) { | |
emit(doc.otherNames[name], doc._id); | |
} | |
} | |
for (name in doc.foiBodies) { | |
if (doc.foiBodies[name] != "" && doc.foiBodies[name] != doc.name) { | |
emit(doc.foiBodies[name], doc._id); | |
} | |
} | |
} | |
};'; | |
$obj->views->foiEmails->map = "function(doc) { | |
emit(doc._id, doc.foiEmail); | |
};"; | |
$obj->views->byLastModified->map = "function(doc) { emit(doc.metadata.lastModified, doc); }"; | |
$obj->views->getActive->map = 'function(doc) { if (doc.status == "active") { emit(doc._id, doc); } };'; | |
$obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") { emit(doc._id, doc); } };'; | |
$obj->views->getScrapeRequired->map = "function(doc) { | |
var lastScrape = Date.parse(doc.metadata.lastScraped); | |
var today = new Date(); | |
if (!lastScrape || lastScrape.getTime() + 1000 != today.getTime()) { | |
emit(doc._id, doc); | |
} | |
};"; | |
$obj->views->showNamesABNs->map = "function(doc) { emit(doc._id, {name: doc.name, abn: doc.abn}); };"; | |
$obj->views->getConflicts->map = "function(doc) { | |
if (doc._conflicts) { | |
emit(null, [doc._rev].concat(doc._conflicts)); | |
} | |
}"; | |
// http://stackoverflow.com/questions/646628/javascript-startswith | |
$obj->views->score->map = 'if(!String.prototype.startsWith){ | |
String.prototype.startsWith = function (str) { | |
return !this.indexOf(str); | |
} | |
} | |
function(doc) { | |
count = 0; | |
if (doc["status"] != "suspended") { | |
for(var propName in doc) { | |
if(typeof(doc[propName]) != "undefined" && doc[propName] != "") { | |
count++; | |
} | |
} | |
portfolio = doc.parentOrg; | |
if (doc.orgType == "FMA-DepartmentOfState") { | |
portfolio = doc._id; | |
} | |
if (doc.orgType == "Court-Commonwealth" || doc.orgType == "FMA-DepartmentOfParliament") { | |
portfolio = doc.orgType; | |
} | |
emit(count+doc._id, {id:doc._id, name: doc.name, score:count, orgType: doc.orgType, portfolio:portfolio}); | |
} | |
}'; | |
$obj->views->scoreHas->map = 'if(!String.prototype.startsWith){ | |
String.prototype.startsWith = function (str) { | |
return !this.indexOf(str); | |
} | |
} | |
if(!String.prototype.endsWith){ | |
String.prototype.endsWith = function(suffix) { | |
return this.indexOf(suffix, this.length - suffix.length) !== -1; | |
}; | |
} | |
function(doc) { | |
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") { | |
for(var propName in doc) { | |
if(typeof(doc[propName]) != "undefined" && (propName.startsWith("has") || propName.endsWith("URL"))) { | |
emit(propName, 1); | |
} | |
} | |
emit("total", 1); | |
} | |
}'; | |
$obj->views->scoreHas->reduce = 'function (key, values, rereduce) { | |
return sum(values); | |
}'; | |
$obj->views->fieldNames->map = ' | |
function(doc) { | |
for(var propName in doc) { | |
emit(propName, doc._id); | |
} | |
}'; | |
$obj->views->fieldNames->reduce = 'function (key, values, rereduce) { | |
return values.length; | |
}'; | |
// allow safe updates (even if slightly slower due to extra: rev-detection check). | |
$db->save($obj, true); | |
?> | ?> |
<?php | <?php |
date_default_timezone_set("Australia/Sydney"); | date_default_timezone_set("Australia/Sydney"); |
$basePath = ""; | $basePath = ""; |
if (strstr($_SERVER['PHP_SELF'], "alaveteli/") | if (strstr($_SERVER['PHP_SELF'], "alaveteli/") |
|| strstr($_SERVER['PHP_SELF'], "admin/") | || strstr($_SERVER['PHP_SELF'], "admin/") |
|| strstr($_SERVER['PHP_SELF'], "lib/") | || strstr($_SERVER['PHP_SELF'], "lib/") |
|| strstr($_SERVER['PHP_SELF'], "include/") | || strstr($_SERVER['PHP_SELF'], "include/") |
|| strstr($_SERVER['PHP_SELF'], "documents/") | || strstr($_SERVER['PHP_SELF'], "documents/") |
|| $_SERVER['SERVER_NAME'] == "disclosurelo.gs" | |
) | ) |
$basePath = "../"; | $basePath = "../"; |
include_once ('couchdb.inc.php'); | include_once ('couchdb.inc.php'); |
include_once ('template.inc.php'); | include_once ('template.inc.php'); |
require_once $basePath.'lib/Requests/library/Requests.php'; | require_once $basePath.'lib/Requests/library/Requests.php'; |
Requests::register_autoloader(); | Requests::register_autoloader(); |
if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != 'localhost') { | if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] != 'localhost') { |
require $basePath."lib/amon-php/amon.php"; | require $basePath."lib/amon-php/amon.php"; |
Amon::config(array('address'=> 'http://127.0.0.1:2464', | Amon::config(array('address'=> 'http://127.0.0.1:2464', |
'protocol' => 'http', | 'protocol' => 'http', |
'secret_key' => "I2LJ6dOMmlnXgVAkTPFXd5M3ejkga8Gd2FbBt6iqZdw")); | 'secret_key' => "I2LJ6dOMmlnXgVAkTPFXd5M3ejkga8Gd2FbBt6iqZdw")); |
Amon::setup_exception_handler(); | Amon::setup_exception_handler(); |
} | } |
# Convert a stdClass to an Array. http://www.php.net/manual/en/language.types.object.php#102735 | # Convert a stdClass to an Array. http://www.php.net/manual/en/language.types.object.php#102735 |
function object_to_array(stdClass $Class) { | function object_to_array(stdClass $Class) { |
# Typecast to (array) automatically converts stdClass -> array. | # Typecast to (array) automatically converts stdClass -> array. |
$Class = (array) $Class; | $Class = (array) $Class; |
# Iterate through the former properties looking for any stdClass properties. | # Iterate through the former properties looking for any stdClass properties. |
# Recursively apply (array). | # Recursively apply (array). |
foreach ($Class as $key => $value) { | foreach ($Class as $key => $value) { |
if (is_object($value) && get_class($value) === 'stdClass') { | if (is_object($value) && get_class($value) === 'stdClass') { |
$Class[$key] = object_to_array($value); | $Class[$key] = object_to_array($value); |
} | } |
} | } |
return $Class; | return $Class; |
} | } |
# Convert an Array to stdClass. http://www.php.net/manual/en/language.types.object.php#102735 | # Convert an Array to stdClass. http://www.php.net/manual/en/language.types.object.php#102735 |
function array_to_object(array $array) { | function array_to_object(array $array) { |
# Iterate through our array looking for array values. | # Iterate through our array looking for array values. |
# If found recurvisely call itself. | # If found recurvisely call itself. |
foreach ($array as $key => $value) { | foreach ($array as $key => $value) { |
if (is_array($value)) { | if (is_array($value)) { |
$array[$key] = array_to_object($value); | $array[$key] = array_to_object($value); |
} | } |
} | } |
# Typecast to (object) will automatically convert array -> stdClass | # Typecast to (object) will automatically convert array -> stdClass |
return (object) $array; | return (object) $array; |
} | } |
function dept_to_portfolio($deptName) { | function dept_to_portfolio($deptName) { |
return trim(str_replace("Department of", "", str_replace("Department of the", "Department of", $deptName))); | return trim(str_replace("Department of", "", str_replace("Department of the", "Department of", $deptName))); |
} | } |
function phrase_to_tag ($phrase) { | function phrase_to_tag ($phrase) { |
return str_replace(" ","_",str_replace("'","",str_replace(",","",strtolower($phrase)))); | return str_replace(" ","_",str_replace("'","",str_replace(",","",strtolower($phrase)))); |
} | } |
function local_url() { | function local_url() { |
return "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/"; | return "http://" . $_SERVER['HTTP_HOST'] . rtrim(dirname($_SERVER['PHP_SELF']), '/\\') . "/"; |
} | } |
function GetDomain($url) | function GetDomain($url) |
{ | { |
$nowww = ereg_replace('www\.','',$url); | $nowww = ereg_replace('www\.','',$url); |
$domain = parse_url($nowww); | $domain = parse_url($nowww); |
if(!empty($domain["host"])) | if(!empty($domain["host"])) |
{ | { |
return $domain["host"]; | return $domain["host"]; |
} else | } else |
{ | { |
return $domain["path"]; | return $domain["path"]; |
} | } |
} | } |
<?php | <?php |
include $basePath . "schemas/schemas.inc.php"; | include $basePath . "schemas/schemas.inc.php"; |
require ($basePath . 'couchdb/settee/src/settee.php'); | require ($basePath . 'couchdb/settee/src/settee.php'); |
function createFOIDocumentsDesignDoc() { | |
/* "map": "function(doc) {\n emit(doc.web_server, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byAgency": { | |
"map": "function(doc) {\n emit(doc.agencyID, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byURL": { | |
"map": "function(doc) {\n emit(doc.url, doc);\n}" | |
*/ | |
} | |
function createDocumentsDesignDoc() { | |
/* "views": { | |
"web_server": { | |
"map": "function(doc) {\n emit(doc.web_server, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byAgency": { | |
"map": "function(doc) {\n emit(doc.agencyID, 1);\n}", | |
"reduce": "function (key, values, rereduce) {\n return sum(values);\n}" | |
}, | |
"byURL": { | |
"map": "function(doc) {\n emit(doc.url, doc);\n}" | |
}, | |
"agency": { | |
"map": "function(doc) {\n emit(doc.agencyID, doc);\n}" | |
}, | |
"byWebServer": { | |
"map": "function(doc) {\n emit(doc.web_server, doc);\n}" | |
}, | |
"getValidationRequired": { | |
"map": "function(doc) {\nif (doc.mime_type == \"text/html\" \n&& typeof(doc.validation) == \"undefined\") {\n emit(doc._id, doc._attachments);\n}\n}" | |
} | |
} */ | |
} | |
function createAgencyDesignDoc() { | |
global $db; | |
$obj = new stdClass(); | |
$obj->_id = "_design/" . urlencode("app"); | |
$obj->language = "javascript"; | |
$obj->views->all->map = "function(doc) { emit(doc._id, doc); };"; | |
$obj->views->byABN->map = "function(doc) { emit(doc.abn, doc); };"; | |
$obj->views->byCanonicalName->map = "function(doc) { | |
if (doc.parentOrg || doc.orgType == 'FMA-DepartmentOfState') { | |
emit(doc.name, doc); | |
} | |
};"; | |
$obj->views->byDeptStateName->map = "function(doc) { | |
if (doc.orgType == 'FMA-DepartmentOfState') { | |
emit(doc.name, doc._id); | |
} | |
};"; | |
$obj->views->parentOrgs->map = "function(doc) { | |
if (doc.parentOrg) { | |
emit(doc._id, doc.parentOrg); | |
} | |
};"; | |
$obj->views->byName->map = 'function(doc) { | |
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") { | |
emit(doc.name, doc._id); | |
if (typeof(doc.shortName) != "undefined" && doc.shortName != doc.name) { | |
emit(doc.shortName, doc._id); | |
} | |
for (name in doc.otherNames) { | |
if (doc.otherNames[name] != "" && doc.otherNames[name] != doc.name) { | |
emit(doc.otherNames[name], doc._id); | |
} | |
} | |
for (name in doc.foiBodies) { | |
if (doc.foiBodies[name] != "" && doc.foiBodies[name] != doc.name) { | |
emit(doc.foiBodies[name], doc._id); | |
} | |
} | |
} | |
};'; | |
$obj->views->foiEmails->map = "function(doc) { | |
emit(doc._id, doc.foiEmail); | |
};"; | |
$obj->views->byLastModified->map = "function(doc) { emit(doc.metadata.lastModified, doc); }"; | |
$obj->views->getActive->map = 'function(doc) { if (doc.status == "active") { emit(doc._id, doc); } };'; | |
$obj->views->getSuspended->map = 'function(doc) { if (doc.status == "suspended") { emit(doc._id, doc); } };'; | |
$obj->views->getScrapeRequired->map = "function(doc) { | |
var lastScrape = Date.parse(doc.metadata.lastScraped); | |
var today = new Date(); | |
if (!lastScrape || lastScrape.getTime() + 1000 != today.getTime()) { | |
emit(doc._id, doc); | |
} | |
};"; | |
$obj->views->showNamesABNs->map = "function(doc) { emit(doc._id, {name: doc.name, abn: doc.abn}); };"; | |
$obj->views->getConflicts->map = "function(doc) { | |
if (doc._conflicts) { | |
emit(null, [doc._rev].concat(doc._conflicts)); | |
} | |
}"; | |
// http://stackoverflow.com/questions/646628/javascript-startswith | |
$obj->views->score->map = 'if(!String.prototype.startsWith){ | |
String.prototype.startsWith = function (str) { | |
return !this.indexOf(str); | |
} | |
} | |
function(doc) { | |
count = 0; | |
if (doc["status"] != "suspended") { | |
for(var propName in doc) { | |
if(typeof(doc[propName]) != "undefined" && doc[propName] != "") { | |
count++; | |
} | |
} | |
portfolio = doc.parentOrg; | |
if (doc.orgType == "FMA-DepartmentOfState") { | |
portfolio = doc._id; | |
} | |
if (doc.orgType == "Court-Commonwealth" || doc.orgType == "FMA-DepartmentOfParliament") { | |
portfolio = doc.orgType; | |
} | |
emit(count+doc._id, {id:doc._id, name: doc.name, score:count, orgType: doc.orgType, portfolio:portfolio}); | |
} | |
}'; | |
$obj->views->scoreHas->map = 'if(!String.prototype.startsWith){ | |
String.prototype.startsWith = function (str) { | |
return !this.indexOf(str); | |
} | |
} | |
if(!String.prototype.endsWith){ | |
String.prototype.endsWith = function(suffix) { | |
return this.indexOf(suffix, this.length - suffix.length) !== -1; | |
}; | |
} | |
function(doc) { | |
if (typeof(doc["status"]) == "undefined" || doc["status"] != "suspended") { | |
for(var propName in doc) { | |
if(typeof(doc[propName]) != "undefined" && (propName.startsWith("has") || propName.endsWith("URL"))) { | |
emit(propName, 1); | |
} | |
} | |
emit("total", 1); | |
} | |
}'; | |
$obj->views->scoreHas->reduce = 'function (key, values, rereduce) { | |
return sum(values); | |
}'; | |
$obj->views->fieldNames->map = ' | |
function(doc) { | |
for(var propName in doc) { | |
emit(propName, doc._id); | |
} | |
}'; | |
$obj->views->fieldNames->reduce = 'function (key, values, rereduce) { | |
return values.length; | |
}'; | |
// allow safe updates (even if slightly slower due to extra: rev-detection check). | |
return $db->save($obj, true); | |
} | |
if (php_uname('n') == "vanille") { | if (php_uname('n') == "vanille") { |
$serverAddr = 'http://192.168.178.21:5984/'; | $serverAddr = 'http://192.168.178.21:5984/'; |
} else | } else |
if (php_uname('n') == "KYUUBEY") { | if (php_uname('n') == "KYUUBEY") { |
$serverAddr = 'http://192.168.1.148:5984/'; | $serverAddr = 'http://192.168.1.148:5984/'; |
} else { | } else { |
$serverAddr = 'http://127.0.0.1:5984/'; | $serverAddr = 'http://127.0.0.1:5984/'; |
} | } |
$server = new SetteeServer($serverAddr); | $server = new SetteeServer($serverAddr); |
function setteErrorHandler($e) { | function setteErrorHandler($e) { |
if (class_exists('Amon')) { | if (class_exists('Amon')) { |
Amon::log($e->getMessage() . " " . print_r($_SERVER,true), array('error')); | Amon::log($e->getMessage() . " " . print_r($_SERVER,true), array('error')); |
} | } |
echo $e->getMessage() . "<br>" . PHP_EOL; | echo $e->getMessage() . "<br>" . PHP_EOL; |
} | } |