From: <wis...@us...> - 2016-01-27 11:11:03
|
Revision: 13195 http://sourceforge.net/p/xoops/svn/13195 Author: wishcraft Date: 2016-01-27 11:11:00 +0000 (Wed, 27 Jan 2016) Log Message: ----------- Starting Fontier+ for XOOPS 2.5 Added Paths: ----------- XoopsModules/fontier+/ XoopsModules/fontier+/trunk/ XoopsModules/fontier+/trunk/modules/ XoopsModules/fontier+/trunk/modules/fontier/ XoopsModules/fontier+/trunk/modules/fontier/.htaccess XoopsModules/fontier+/trunk/modules/fontier/admin/ XoopsModules/fontier+/trunk/modules/fontier/blocks/ XoopsModules/fontier+/trunk/modules/fontier/callback.php XoopsModules/fontier+/trunk/modules/fontier/class/ XoopsModules/fontier+/trunk/modules/fontier/header.php XoopsModules/fontier+/trunk/modules/fontier/images/ XoopsModules/fontier+/trunk/modules/fontier/images/assets/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/16x16/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/24x24/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/32x32/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/48x48/ XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png XoopsModules/fontier+/trunk/modules/fontier/include/ XoopsModules/fontier+/trunk/modules/fontier/js/ XoopsModules/fontier+/trunk/modules/fontier/language/ XoopsModules/fontier+/trunk/modules/fontier/language/english/ XoopsModules/fontier+/trunk/modules/fontier/language/english/style.css XoopsModules/fontier+/trunk/modules/fontier/templates/ XoopsModules/fontier+/trunk/modules/fontier/templates/admin/ XoopsModules/fontier+/trunk/modules/fontier/templates/blocks/ XoopsModules/fontier+/trunk/xoops_data/ XoopsModules/fontier+/trunk/xoops_data/cache/ XoopsModules/fontier+/trunk/xoops_data/cache/fontier/ XoopsModules/fontier+/trunk/xoops_data/fontier/ XoopsModules/fontier+/trunk/xoops_lib/ XoopsModules/fontier+/trunk/xoops_lib/modules/ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v1.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v2.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/domains.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-converted.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-css-listed.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-families.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-preferences.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v1.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v2.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/lookups.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/mimetypes.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-archiving.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-converted.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-extracting.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/stratas.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/whois.diz XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/constants.php XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/functions.php Added: XoopsModules/fontier+/trunk/modules/fontier/.htaccess =================================================================== --- XoopsModules/fontier+/trunk/modules/fontier/.htaccess (rev 0) +++ XoopsModules/fontier+/trunk/modules/fontier/.htaccess 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,47 @@ +php_value memory_limit 360M +php_value upload_max_filesize 999999M +php_value post_max_size 999999M +php_value error_reporting 0 +php_value display_errors 0 + +RewriteEngine On +RewriteCond %{REQUEST_FILENAME} !-f +RewriteCond %{REQUEST_FILENAME} !-d + +RewriteRule ^([a-z0-9]{2})/(.*?)/callback.api$ callback.php?version=$1&mode=$2 [L,NC,QSA] + +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(preview)/image.(gif|jpg|png)$ index.php?version=$1&mode=$2&clause=$3&state=$5&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/survey/(preview)/(.*?)/image.(jpg|png|gif)$ survey-$2.php?version=$1&mode=$4&key=$3&output=$2 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(preview)/(gif|jpg|png).api$ index.php?version=$1&mode=$2&clause=$3&state=$5&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/survey/(preview)/(.*?)/(jpg|png|gif).api$ survey-$2.php?version=$1&mode=$4&key=$3&output=$2 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(glyph)/([0-9]+)/image.(gif|jpg|png)$ index.php?version=$1&mode=$2&clause=$3&state=$6&output=$4&char=$5 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(glyph)/([0-9]+)/(gif|jpg|png).api$ index.php?version=$1&mode=$2&clause=$3&state=$6&output=$4&char=$5 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(ufo).api$ index.php?version=$1&mode=$2&clause=$3&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(ufo).api/(.*?)$ index.php?version=$1&mode=$2&clause=$3&state=$5&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/(font)/(.*?)/(.*?).api$ index.php?version=$1&mode=$2&clause=$3&state=$5&output=$4 [L] + + +RewriteRule ^([a-z0-9]{2})/survey/page-([0-9]+)/(.*?)/(.*?).api$ survey-page-$2.php?version=$1&mode=$2&key=$3&output=$4& [L] +RewriteRule ^([a-z0-9]{2})/survey/(.*?)/(.*?)/(.*?).api?(.*?)$ survey-$2.php?version=$1&mode=$2&key=$3&output=$4&$5 [L] +RewriteRule ^([a-z0-9]{2})/survey/(.*?)/(.*?)/(.*?).api$ survey-$2.php?version=$1&mode=$2&key=$3&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/survey/(.*?)/(.*?).api$ survey-$2.php?version=$1&key=$2&output=$3& [L] + +RewriteRule ^([a-z0-9]{2})/(.*?)/upload.api$ upload.php?version=$1&field=$2 [L] +RewriteRule ^([a-z0-9]{2})/(.*?)/releases.api$ releases.php?version=$1&field=$2 [L] +RewriteRule ^([a-z0-9]{2})/(uploads|releases)/(.*?)/(.*?).api?(.*?)$ index.php?version=$1&mode=$2&clause=$3&state=&output=$4&$5 [L] +RewriteRule ^([a-z0-9]{2})/(uploads|releases)/(.*?)/(.*?).api$ index.php?version=$1&mode=$2&clause=$3&state=&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/(uploads|releases)/(forms).api$ index.php?version=$1&mode=$2&clause=&state=&output=$3 [L] + +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?)/(.*?)/(.*?)/(.*?).api?(.*?)$ index.php?version=$1&mode=$2&clause=$3&state=$4&output=$5&name=$6&$7 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?)/(.*?)/(.*?).api?(.*?)$ index.php?version=$1&mode=$2&clause=$3&state=$4&output=$5&$6 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads|fonthit|archive)/(.*?)/(.*?).api?(.*?)$ index.php?version=$1&mode=$2&clause=$3&state=&output=$4&$5 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?).api?(.*?)$ index.php?version=$1&mode=$2&clause=&state=&output=$3&$4 [L] + +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?)/(.*?)/(.*?)/(.*?).api$ index.php?version=$1&mode=$2&clause=$3&state=$4&output=$5&name=$6 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?)/(.*?)/(.*?).api$ index.php?version=$1&mode=$2&clause=$3&state=$4&output=$5 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads|fonthit|archive)/(.*?)/(.*?).api$ index.php?version=$1&mode=$2&clause=$3&state=&output=$4 [L] +RewriteRule ^([a-z0-9]{2})/(fonts|nodes|random|data|callbacks|downloads)/(.*?).api$ index.php?version=$1&mode=$2&clause=&state=&output=$3& [L] + +RewriteRule ^font-download-example.zip$ examples/sample-font-api2-download.zip [L] +RewriteRule ^callback-example.php$ examples/callback-example.php.txt [L] +RewriteRule ^(.*?).(css|txt|php|jpg|png|gif|ico)$ $1.$2 [L] \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/modules/fontier/.htaccess ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/modules/fontier/callback.php =================================================================== --- XoopsModules/fontier+/trunk/modules/fontier/callback.php (rev 0) +++ XoopsModules/fontier+/trunk/modules/fontier/callback.php 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,77 @@ +<?php +/** + * Chronolabs Entitiesing Repository Services REST API API + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * @copyright Chronolabs Cooperative http://labs.coop + * @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @package entities + * @since 2.1.9 + * @author Simon Roberts <wis...@us...> + * @subpackage api + * @description Entitiesing Repository Services REST API + * @link http://sourceforge.net/projects/chronolabsapis + * @link http://cipher.labs.coop + */ + + + require_once __DIR__ . DIRECTORY_SEPARATOR . "header.php"; + + $sql = "SELECT * FROM `peers` WHERE `peer-id` LIKE '%s'"; + if ($GLOBALS['FontsDB']->getRowsNum($results = $GLOBALS['FontsDB']->queryF(sprintf($sql, mysql_real_escape_string($GLOBALS['peer-id']))))==1) + { + $peer = $GLOBALS['FontsDB']->fetchArray($results); + } + + $mode = !isset($_REQUEST['mode'])?md5(NULL):$_REQUEST['mode']; + + switch ($mode) + { + case "register": + $required = array('peer-id', 'api-uri', 'api-uri-callback', 'api-uri-zip', 'api-uri-fonts', 'version', 'polinating'); + foreach($required as $field) + if (!in_array($field, array_keys($_POST))) + die("Field \$_POST[$field] is required to operate this function!"); + + $sql = "INSERT INTO `peers` (`peer-id`, 'api-uri', 'api-uri-callback', 'api-uri-zip', 'api-uri-fonts', `version`, `polinating`, `created`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')"; + if ($GLOBALS['FontsDB']->queryF(sprintf($sql, mysql_real_escape_string($_POST['peer-id']), mysql_real_escape_string($_POST['api-uri']), mysql_real_escape_string($_POST['api-uri-callback']), mysql_real_escape_string($_POST['api-uri-zip']), mysql_real_escape_string($_POST['api-uri-fonts']), mysql_real_escape_string($_POST['version']), ($_POST['polinating']==true?'Yes':'No'), time()))) + { + if ($_POST['polinating']==true) + { + if (API_URL === API_ROOT_NODE) + { + $sql = "SELECT * FROM `peers` WHERE `peer-id` NOT LIKE '%s' AND `peer-id` NOT LIKE '%s' AND `polinating` = 'Yes'"; + if ($GLOBALS['FontsDB']->getRowsNum($results = $GLOBALS['FontsDB']->queryF(sprintf($sql, mysql_real_escape_string($GLOBALS['peer-id']), mysql_real_escape_string($_POST['peer-id']))))>=1) + { + while($other = $GLOBALS['FontsDB']->fetchArray($results)) + { + @setCallBackURI(sprintf($other['api-uri'].$other['api-uri-callback'], $mode), 145, 145, $_POST, array()); + @setCallBackURI(sprintf($_POST['api-uri'].$_POST['api-uri-callback'], $mode), 145, 145, array('peer-id'=>$other['peer-id'], 'api-uri'=>$other['api-uri'], 'api-uri-callback'=>$other['api-uri-callback'], 'api-uri-zip'=>$other['api-uri-zip'], 'api-uri-fonts'=>$other['api-uri-fonts'], 'version'=>$other['version'], 'polinating'=>$other['polinating']), array()); + } + } + } + } + + } + break; + case "fingering": + $required = array('fingerprint'); + foreach($required as $field) + if (!in_array($field, array_keys($_POST))) + die("Field \$_POST[$field] is required to operate this function!"); + $sql = "SELECT COUNT(*) as RC from `fonts_fingering` where `fingerprint` LIKE '%s'"; + list($count) = $GLOBALS['FontsDB']->fetchRow($GLOBALS['FontsDB']->queryF(sprintf($sql, $_POST['fingerprint']))); + die(json_encode(array('count'=>$count))); + break; + default: + + break; + } + exit(0); +?> \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/modules/fontier/callback.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/modules/fontier/header.php =================================================================== --- XoopsModules/fontier+/trunk/modules/fontier/header.php (rev 0) +++ XoopsModules/fontier+/trunk/modules/fontier/header.php 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,87 @@ +<?php +/** + * Chronolabs Fonting Repository Services REST API API +* +* You may not change or alter any portion of this comment or credits +* of supporting developers from this source code or any supporting source code +* which is considered copyrighted (c) material of the original comment or credit authors. +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +* +* @copyright Chronolabs Cooperative http://labs.coop +* @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) +* @package fonts +* @since 2.1.9 +* @author Simon Roberts <wis...@us...> +* @subpackage api +* @description Fonting Repository Services REST API +* @link http://sourceforge.net/projects/chronolabsapis +* @link http://cipher.labs.coop +*/ + + error_reporting(E_ERROR); + ini_set('display_errors', true); + + /** + * Opens Access Origin Via networking Route NPN + */ + header('Access-Control-Allow-Origin: *'); + header('Origin: *'); + + /** + * Turns of GZ Lib Compression for Document Incompatibility + */ + ini_set("zlib.output_compression", 'Off'); + ini_set("zlib.output_compression_level", -1); + + /** + * + * @var constants + */ + define("API_FILE_IO_PEERS", __DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'peers.diz'); + define("API_FILE_IO_DOMAINS", __DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'domains.diz'); + define("API_FILE_IO_FOOTER", __DIR__ . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'api-%s.html'); + + require_once __DIR__.'/class/fontages.php'; + require_once __DIR__.'/functions.php'; + require_once __DIR__.'/apiconfig.php'; + + $parts = explode(".", microtime(true)); + mt_srand(mt_rand(-microtime(true), microtime(true))/$parts[1]); + mt_srand(mt_rand(-microtime(true), microtime(true))/$parts[1]); + mt_srand(mt_rand(-microtime(true), microtime(true))/$parts[1]); + mt_srand(mt_rand(-microtime(true), microtime(true))/$parts[1]); + $salter = ((float)(mt_rand(0,1)==1?'':'-').$parts[1].'.'.$parts[0]) / sqrt((float)$parts[1].'.'.intval(cosh($parts[0])))*tanh($parts[1]) * mt_rand(1, intval($parts[0] / $parts[1])); + header('Blowfish-salt: '. $salter); + + global $domain, $protocol, $business, $entity, $contact, $referee, $peerings, $source, $ipid, $fontnames; + $fontnames = array(); + + define('FONTS_CACHE', DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR . 'cache'); + if (!is_dir(FONTS_CACHE)) + mkdirSecure(FONTS_CACHE, 0777, true); + + + /** + * Global API Configurations and Setting from file Constants! + */ + $domain = getDomainSupportism('domain', $_SERVER["HTTP_HOST"]); + $protocol = getDomainSupportism('protocol', $_SERVER["HTTP_HOST"]); + $business = getDomainSupportism('business', $_SERVER["HTTP_HOST"]); + $entity = getDomainSupportism('entity', $_SERVER["HTTP_HOST"]); + $contact = getDomainSupportism('contact', $_SERVER["HTTP_HOST"]); + $referee = getDomainSupportism('referee', $_SERVER["HTTP_HOST"]); + + /** + * URI Path Finding of API URL Source Locality + * @var unknown_type + */ + $pu = parse_url($_SERVER['REQUEST_URI']); + $source = (isset($_SERVER['HTTPS'])?'https://':'http://').strtolower($_SERVER['HTTP_HOST']); + + /** + * URI Path Finding of API URL Source Locality + * @var unknown_type + */ + $ipid = getIPIdentity(whitelistGetIP(true)); \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/modules/fontier/header.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png =================================================================== (Binary files differ) Index: XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png =================================================================== --- XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png 2016-01-02 01:15:09 UTC (rev 13194) +++ XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png 2016-01-27 11:11:00 UTC (rev 13195) Property changes on: XoopsModules/fontier+/trunk/modules/fontier/images/icons/module_fontier+.png ___________________________________________________________________ Added: svn:mime-type ## -0,0 +1 ## +application/octet-stream \ No newline at end of property Added: XoopsModules/fontier+/trunk/modules/fontier/language/english/style.css =================================================================== --- XoopsModules/fontier+/trunk/modules/fontier/language/english/style.css (rev 0) +++ XoopsModules/fontier+/trunk/modules/fontier/language/english/style.css 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,97 @@ +@CHARSET "ISO-8859-1"; + +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Header-Alpha/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Header-Omega/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Content/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Fields/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Bullets/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/any/Api-Main/css.api); +@import url(https://fonts.ringwould.com.au/v1/random/courier-terminal-shell-system/Api-Code-Examples/css.api); + +body { + font-family: "Api Content", "Trebuchet MS", Arial, Helvetica, sans-serif; + font-size:85%em; + text-align:justify; +} +.main { + font-family: "Api Main" !important; + border:3px solid #000000; + border-radius:15px; + background-color:#feeebe; + padding:39px 39px 39px 39px; + margin:64px 64px 64px 64px; + -webkit-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -moz-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); +} +h1 { + font-family: "Api Header Alpha" !important; + font-weight:bold; + font-size:1.42em; + background-color:#FFEED9; + border-radius:15px; + padding:10px 10px 10px 10px; + text-shadow: 4px 4px 2px rgba(150, 150, 150, 1); +} +h2 { + font-family: "Api Header Omega" !important; + font-weight:500; + font-size:1.15em; + text-shadow: 4px 4px 2px rgba(150, 150, 150, 1); +} +blockquote { + margin-left:25px; + margin-right:25px; + font-family: "Api Code Examples", "Courier New", Courier, monospace !important; + margin-bottom:25px; + padding: 25px 25px 25px 25px; + border:dotted; + background-color:#fefefe; + -webkit-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -moz-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; + text-shadow: 2px 2px 2px rgba(103, 87, 101, 0.82); +} + +.error, #error { + color: red; + margin:25px; + font-family: "Api Code Examples", "Courier New", Courier, monospace !important; + font-weight: bold; + padding: 25px 25px 25px 25px; + border: 5px dotted rgb(128, 230, 110); + background-color:#ffeede; + -webkit-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -moz-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -webkit-border-radius: 14px; + -moz-border-radius: 14px; + border-radius: 14px; + text-shadow: 2px -2px -2px rgba(103, 87, 101, 0.82); +} + +form { + padding:17px; + border: solid 3px #110022; + -webkit-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -moz-box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + box-shadow: 7px 7px 10px 0px rgba(108, 80, 99, 0.72); + -webkit-border-radius: 11px; + -moz-border-radius: 11px; + border-radius: 11px; + text-shadow: 2px 2px 2px rgba(103, 87, 101, 0.82); + margin-bottom: 16px; +} + +p { + font-family: "Api Content", "Trebuchet MS", Arial, Helvetica, sans-serif; + margin-bottom:12px; +} + +input, button, textarea, radio, select, label +{ + font-family: "Api Fields" !important; +} \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/modules/fontier/language/english/style.css ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v1.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v1.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v1.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,7 @@ +ttf||truetype +otf||truetype +woff||woff +svg||svg +eot||eot +afm||afm +ufo||ufo \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v1.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v2.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v2.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v2.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,7 @@ +ttf||truetype +otf||truetype +woff||woff +svg||svg +eot||eot +afm||afm +ufo||ufo \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/default-useragent-v2.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/domains.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/domains.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/domains.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,6 @@ +api.hempembassy.net||http://||Hemp Embassy (Nimbin, Australia)||Guanga-girls||we...@he...||http://hempembassy.net/register.php +ringwould.com.au||https://||Ringwould Farm (WA, Australia)||Saunder's Family||rin...@me...||http://farm.ringwould.com.au +labs.coop||http://||Chronolabs Cooperative (US Hosting)||Wishcraft||me...@sl...||http://labs.coop/register.php +syd.labs.coop||http://||Chronolabs Cooperative (Sydney, Australia)||Wishcraft||wis...@us...||http://labs.coop/register.php +127.0.0.1||http://||Localhost Development||Development||wis...@us...||http://127.0.0.1 +localhost||http://||Localhost Development||Development||wis...@us...||http://localhost \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/domains.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-converted.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-converted.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-converted.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,31 @@ +pfa +pfb +pt3 +t42 +sfd +ttf +bdf +otf +otb +cff +cef +gai +woff +svg +ufo +pf3 +ttc +gsf +cid +bin +hqx +dfont +mf +ik +fon +fnt +pcf +pmf +pdb +eot +afm \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-converted.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-css-listed.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-css-listed.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-css-listed.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,31 @@ +pfa +pfb +pt3 +t42 +sfd +ttf +bdf +otf +otb +cff +cef +gai +woff +svg +ufo +pf3 +ttc +gsf +cid +bin +hqx +dfont +mf +ik +fon +fnt +pcf +pmf +pdb +eot +afm \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-css-listed.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-families.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-families.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-families.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,10 @@ +normal||Normal regular font +italic||Font is italic +bold||Font is bold +semi||Font is semi-bold +wide||Font is wide-set +condensed||Font is condensed +light||Font is light +book||Font is for book +script||Font is a script +graphic||Font is like a wing-ding or graffite \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-families.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-preferences.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-preferences.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-preferences.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,31 @@ +ttf +otf +eot +woff +pfa +pfb +pt3 +t42 +sfd +bdf +otb +cff +cef +gai +svg +ufo +pf3 +ttc +gsf +cid +bin +hqx +dfont +mf +ik +fnt +pcf +pmf +pdb +afm +fon \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-preferences.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v1.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v1.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v1.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,6 @@ +ttf +otf +woff +svg +eot +afm \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v1.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v2.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v2.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v2.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,31 @@ +pfa +pfb +pt3 +t42 +sfd +ttf +bdf +otf +otb +cff +cef +gai +woff +svg +ufo +pf3 +ttc +gsf +cid +bin +hqx +dfont +mf +ik +fon +fnt +pcf +pmf +pdb +eot +afm \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/font-supported-v2.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/lookups.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/lookups.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/lookups.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,3 @@ +http://lookups.labs.coop/v1/country/%s/%s.api +http://lookups.api.hempembassy.net/v1/country/%s/%s.api +https://lookups.ringwould.com.au/v1/country/%s/%s.api \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/lookups.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/mimetypes.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/mimetypes.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/mimetypes.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,46 @@ +pfa||application/x-font-type1 +pfb||application/x-font-type1 +pt3||application/x-pagemaker +t42||application/octet-stream +sfd||application/octet-stream +ttf||application/x-font-ttf +bdf||application/octet-stream +otf||application/octet-stream +otb||image/vnd.nokia.ota-bitmap +cff||application/octet-stream +cef||application/octet-stream +gai||application/octet-stream +woff||application/font-woff +svg||image/svg+xml +ufo||application/octet-stream +pf3||application/octet-stream +ttc||application/octet-stream +gsf||application/octet-stream +cid||application/octet-stream +bin||application/octet-stream +hqx||application/mac-binhex +dfont||application/octet-stream +mf||application/octet-stream +ik||application/octet-stream +fon||application/octet-stream +fnt||application/octet-stream +pcf||application/octet-stream +pmf||application/octet-stream +pdb||application/octet-stream +eot||application/octet-stream +afm||application/octet-stream +7z||application/x-7z-compressed +zip||application/x-zip-compressed +rar||application/x-rar-compressed +rar5||application/x-rar-compressed +exe||application/x-ms-dos-executable +zoo||application/x-zoo-compressed +tar.gz||application/x-tar +html||text/html +css||text/css +diz||text/plain +-=-||application/octet-stream +jpg||image/jpg +jpeg||image/jpg +gif||image/gif +png||image/png \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/mimetypes.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-archiving.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-archiving.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-archiving.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,23 @@ +7z||7z a "%pack" "%folder" +ar||#tar --auto-compress -cf "%pack" "%folder" +bz2||#tar --auto-compress -cf "%pack" "%folder" +gz||#tar --auto-compress -cf "%pack" "%folder" +lzma||#tar --auto-compress -cf "%pack" "%folder" +lz||#tar --auto-compress -cf "%pack" "%folder" +lzo||#tar --auto-compress -cf "%pack" "%folder" +tar||#tar --auto-compress -cf "%pack" "%folder" +tar.7z||#tar --auto-compress -cf "%pack" "%folder" +tar.Z||#tar --auto-compress -cf "%pack" "%folder" +tar.bz2||#tar --auto-compress -cf "%pack" "%folder" +tar.gz||#tar --auto-compress -cf "%pack" "%folder" +tar.lz||#tar --auto-compress -cf "%pack" "%folder" +tar.lzma||#tar --auto-compress -cf "%pack" "%folder" +tar.lzo||#tar --auto-compress -cf "%pack" "%folder" +tar.xz||#tar --auto-compress -cf "%pack" "%folder" +tgz||#tar --auto-compress -cf "%pack" "%folder" +zip||zip -D -r -9 "%pack" "%folder" +rar||rar a -k -ma4 -r -z"%commentfile" "%pack" "%folder" +rar5||rar a -rr5 -k -ma5 -r -z"%commentfile" "%pack" "%folder" +exe||rar a -rr5 -k -ma4 -r -sfx -z"%commentfile" "%pack" "%folder" +zoo||zoo -add "%pack" %filelist +zx||#tar --auto-compress -cf "%pack" "%folder" \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-archiving.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-converted.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-converted.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-converted.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,21 @@ +7z +ar +bz2 +gz +lzma +lz +tar +tar.7z +tar.Z +tar.bz2 +tar.gz +tar.lz +tar.lzma +tar.lzo +tar.xz +tgz +zip +rar +rar5 +zoo +zx \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-converted.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-extracting.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-extracting.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-extracting.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,23 @@ +7z||7z x -y -o"%path" "%pack" +tar||#tar -xf --directory="%path" "%pack" +tar.7z||#tar -xf --directory="%path" "%pack" +tar.Z||#tar -xf --directory="%path" "%pack" +tar.bz2||#tar -xf --directory="%path" "%pack" +tar.gz||#tar -xf --directory="%path" "%pack" +tar.lz||#tar -xf --directory="%path" "%pack" +tar.lzma||#tar -xf --directory="%path" "%pack" +tar.lzo||#tar -xf --directory="%path" "%pack" +tar.xz||#tar -xf --directory="%path" "%pack" +tgz||#tar -xf --directory="%path" "%pack" +zip||unzip "%pack" -d "%path" +rar||unrar x -y "%pack" "%path" +rar5||unrar x -y "%pack" "%path" +zoo||zoo -extract "%pack" "%path" +Z||#tar -xf --directory="%path" "%pack" +bz2||#tar -xf --directory="%path" "%pack" +gz||#tar -xf --directory="%path" "%pack" +lz||#tar -xf --directory="%path" "%pack" +lzma||#tar -xf --directory="%path" "%pack" +lzo||#tar -xf --directory="%path" "%pack" +xz||#tar -xf --directory="%path" "%pack" +ar||#tar -xf --directory="%path" "%pack" \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/packs-extracting.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/stratas.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/stratas.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/stratas.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,3 @@ +http://strata.labs.coop +http://strata.api.hempembassy.net +https://strata.ringwould.com.au \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/stratas.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/whois.diz =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/whois.diz (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/whois.diz 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,3 @@ +http://whois.labs.coop/v1/%s/%s.api +http://whois.api.hempembassy.net/v1/%s/%s.api +https://whois.ringwould.com.au/v1/%s/%s.api \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/data/whois.diz ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/constants.php =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/constants.php (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/constants.php 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,37 @@ +<?php +/** + * Chronolabs Cooperatiev Fontier+ + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * @copyright Chronolabs Cooperative http://labs.coop + * @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @package fontier+ + * @since 1.0.1 + * @author Simon Roberts <wis...@us...> + * @subpackage fontier+ + * @description XOOPS Client for Fonts REST API - http://fonts.labs.coop + * @link http://fonts.labs.coop + * @link http://sourceforge.net/projects/chronolabs + * @link http://cipher.labs.coop + */ + + + /** + * + * @var string + */ + define('FONTIER_VERSION', '1.0.1'); + define('MAXIMUM_QUERIES', 500); + + /******* DO NOT CHANGE THIS VARIABLE **** + * @var string + */ + define('FONTIER_API_NODE', 'http://fonts.labs.coop'); + +?> \ No newline at end of file Property changes on: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/constants.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/functions.php =================================================================== --- XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/functions.php (rev 0) +++ XoopsModules/fontier+/trunk/xoops_lib/modules/fontier/include/functions.php 2016-01-27 11:11:00 UTC (rev 13195) @@ -0,0 +1,1168 @@ +<?php +/** + * Chronolabs Cooperatiev Fontier+ + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + * @copyright Chronolabs Cooperative http://labs.coop + * @license General Public License version 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @package fontier+ + * @since 1.0.1 + * @author Simon Roberts <wis...@us...> + * @subpackage fontier+ + * @description XOOPS Client for Fonts REST API - http://fonts.labs.coop + * @link http://fonts.labs.coop + * @link http://sourceforge.net/projects/chronolabs + * @link http://cipher.labs.coop + */ + +require_once __DIR__.'/constants.php'; + +if (!function_exists("fontsUseragentSupportedArray")) { + function fontsUseragentSupportedArray() + { + $return = array(); + if (isset($_GET['version']) && !empty($_GET['version'])) + $version = (string)$_GET['version']; + else + $version = (string)"v2"; + $ua = explode( " " , str_replace(array("\"","'",";",":","(",")","\\","/"), " ", $_SERVER['HTTP_USER_AGENT']) ); + $fontlist = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'default-useragent-'.$version.'.diz'; + if (!isset($ua[0]) && empty($ua[0]) && !isset($ua[1]) && empty($ua[1]) && !file_exists($fontlist = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . strtolower($ua[0]).'-'.strtolower($ua[1]).'-useragent-'.$version.'.diz')) + { + foreach(cleanWhitespaces(file($fontlist)) as $out) + { + $puts = explode("||", $out); + $return[$puts[0]]=$puts[1]; + } + } + if (empty($return)) + foreach(cleanWhitespaces(file($fontlist)) as $out) + { + $puts = explode("||", $out); + $return[$puts[0]]=$puts[1]; + } + return $return; + } +} + + +if (!function_exists("setCallBackURI")) { + + /* function getURIData() + * + * cURL Routine + * @author Simon Roberts (Chronolabs) si...@la... + * + * @return float() + */ + function setCallBackURI($uri = '', $timeout = 65, $connectout = 65, $data = array(), $queries = array()) + { + list($when) = $GLOBALS['FontsDB']->fetchRow($GLOBALS['trackerDB']->queryF("SELECT `when` from `callbacks` ORDER BY `when` DESC LIMIT 1")); + if ($when<time()) + $when = $time(); + $when = $when + mt_rand(3, 14); + return $GLOBALS['FontsDB']->queryF("INSERT INTO `callbacks` (`when`, `uri`, `timeout`, `connection`, `data`, `queries`) VALUES(\"$when\", \"$uri\", \"$timeout\", \"$connectout\", \"" . mysql_real_escape_string(json_encode($data)) . "\",\"" . mysql_real_escape_string(json_encode($queries)) . "\")"); + } +} + +if (!function_exists("putRawFile")) { + /** + * + * @param string $file + * @param string $data + */ + function putRawFile($file = '', $data = '') + { + $lineBreak = "\n"; + if (substr(PHP_OS, 0, 3) == 'WIN') { + $lineBreak = "\r\n"; + } + if (!is_dir(dirname($file))) + if (strpos(' '.$file, FONTS_CACHE)) + mkdirSecure(dirname($file), 0777, true); + else + mkdir(dirname($file), 0777, true); + elseif (strpos(' '.$file, FONTS_CACHE) && !file_exists(FONTS_CACHE . DIRECTORY_SEPARATOR . '.htaccess')) + putRawFile(FONTS_CACHE . DIRECTORY_SEPARATOR . '.htaccess', "<Files ~ \"^.*$\">\n\tdeny from all\n</Files>"); + if (is_file($file)) + unlink($file); + $data = str_replace("\n", $lineBreak, $data); + $ff = fopen($file, 'w'); + fwrite($ff, $data, strlen($data)); + fclose($ff); + } +} + +if (!function_exists("whitelistGetIP")) { + + /* function whitelistGetIPAddy() + * + * provides an associative array of whitelisted IP Addresses + * @author Simon Roberts (Chronolabs) si...@la... + * + * @return array + */ + function whitelistGetIPAddy() { + return array_merge(whitelistGetNetBIOSIP(), file(dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR . 'whitelist.txt')); + } +} + +if (!function_exists("whitelistGetNetBIOSIP")) { + + /* function whitelistGetNetBIOSIP() + * + * provides an associative array of whitelisted IP Addresses base on TLD and NetBIOS Addresses + * @author Simon Roberts (Chronolabs) si...@la... + * + * @return array + */ + function whitelistGetNetBIOSIP() { + $ret = array(); + foreach(file(dirname(dirname(dirname(dirname(__FILE__)))) . DIRECTORY_SEPARATOR . 'whitelist-domains.txt') as $domain) { + $ip = gethostbyname($domain); + $ret[$ip] = $ip; + } + return $ret; + } +} + +if (!function_exists("whitelistGetIP")) { + + /* function whitelistGetIP() + * + * get the True IPv4/IPv6 address of the client using the API + * @author Simon Roberts (Chronolabs) si...@la... + * + * @param $asString boolean Whether to return an address or network long integer + * + * @return mixed + */ + function whitelistGetIP($asString = true){ + // Gets the proxy ip sent by the user + $proxy_ip = ''; + if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { + $proxy_ip = $_SERVER['HTTP_X_FORWARDED_FOR']; + } else + if (!empty($_SERVER['HTTP_X_FORWARDED'])) { + $proxy_ip = $_SERVER['HTTP_X_FORWARDED']; + } else + if (! empty($_SERVER['HTTP_FORWARDED_FOR'])) { + $proxy_ip = $_SERVER['HTTP_FORWARDED_FOR']; + } else + if (!empty($_SERVER['HTTP_FORWARDED'])) { + $proxy_ip = $_SERVER['HTTP_FORWARDED']; + } else + if (!empty($_SERVER['HTTP_VIA'])) { + $proxy_ip = $_SERVER['HTTP_VIA']; + } else + if (!empty($_SERVER['HTTP_X_COMING_FROM'])) { + $proxy_ip = $_SERVER['HTTP_X_COMING_FROM']; + } else + if (!empty($_SERVER['HTTP_COMING_FROM'])) { + $proxy_ip = $_SERVER['HTTP_COMING_FROM']; + } + if (!empty($proxy_ip) && $is_ip = preg_match('/^([0-9]{1,3}.){3,3}[0-9]{1,3}/', $proxy_ip, $regs) && count($regs) > 0) { + $the_IP = $regs[0]; + } else { + $the_IP = $_SERVER['REMOTE_ADDR']; + } + + $the_IP = ($asString) ? $the_IP : ip2long($the_IP); + return $the_IP; + } +} + + +if (!function_exists("getIPIdentity")) { + /** + * + * @param string $ip + * @return string + */ + function getIPIdentity($ip = '', $sarray = false) + { + $sql = array(); + + if (empty($ip)) + $ip = whitelistGetIP(true); + + if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) + $sql['selecta'] = "SELECT * from `networking` WHERE `ipaddy` LIKE '" . $ip . "' AND `type` = 'ipv6'"; + else + $sql['selecta'] = "SELECT * from `networking` WHERE `ipaddy` LIKE '" . $ip . "' AND `type` = 'ipv4'"; + if (!$row = $GLOBALS['FontsDB']->fetchArray($GLOBALS['FontsDB']->queryF($sql['selecta']))) + if (($ipaddypart[0] === $serverpart[0] && $ipaddypart[1] === $serverpart[1]) ) + { + $uris = cleanWhitespaces(file($file = __DIR__ . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR . "lookups.diz")); + shuffle($uris); shuffle($uris); shuffle($uris); shuffle($uris); + if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE || FILTER_FLAG_NO_RES_RANGE) === false) + { + $data = array(); + foreach($uris as $uri) + { + if ($data['ip']==$ip || $data['country']['iso'] == "-" || empty($data)) + $data = json_decode(getURIData(sprintf($uri, 'myself', 'json'), 120, 120), true); + if (count($data) > 0 && $data['country']['iso'] != "-") + continue; + } + } else{ + foreach($uris as $uri) + { + if ($data['ip']!=$ip || $data['country']['iso'] == "-" || empty($data)) + $data = json_decode(getURIData(sprintf($uri, $ip, 'json'), 120, 120), true); + if (count($data) > 0 && $data['country']['iso'] != "-") + continue; + } + } + if (!isset($data['ip']) && empty($data['ip'])) + $data['ip'] = $ip; + if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) + $sql['selectb'] = "SELECT * from `networking` WHERE `ipaddy` LIKE '" . $data['ip'] . "' AND `type` = 'ipv6'"; + else + $sql['selectb'] = "SELECT * from `networking` WHERE `ipaddy` LIKE '" . $data['ip'] . "' AND `type` = 'ipv4'"; + if (!$row = $GLOBALS['FontsDB']->fetchArray($GLOBALS['FontsDB']->queryF($sql['selectb']))) + { + $row = array(); + $row['ipaddy'] = $data['ip']; + if (!filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) === false) + $row['type'] = 'ipv6'; + else + $row['type'] = 'ipv4'; + $row['netbios'] = gethostbyaddr($row['ipaddy']); + $row['data'] = array('ipstack' => gethostbynamel($row['netbios'])); + $row['domain'] = getBaseDomain("http://".$row['netbios']); + $row['country'] = $data['country']['iso']; + $row['region'] = $data['location']['region']; + $row['city'] = $data['location']['city']; + $row['postcode'] = $data['location']['postcode']; + $row['timezone'] = "GMT " . $data['location']['gmt']; + $row['longitude'] = $data['location']['coordinates']['longitude']; + $row['latitude'] = $data['location']['coordinates']['latitude']; + $row['last'] = $row['created'] = time(); + $row['downloads'] = 0; + $row['uploads'] = 0; + + $row['fonts'] = 0; + $row['surveys'] = 0; + $whois = array(); + $whoisuris = cleanWhitespaces(file(__DIR__ . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR . "whois.diz")); + shuffle($whoisuris); shuffle($whoisuris); shuffle($whoisuris); shuffle($whoisuris); + foreach($whoisuris as $uri) + { + if (empty($whois[$row['type']]) || !isset($whois[$row['type']])) + { + $whois[$row['type']] = json_decode(getURIData(sprintf($uri, $row['ipaddy'], 'json'), 120, 120), true); + } elseif (empty($whois['domain']) || !isset($whois['domain'])) + { + $whois['domain'] = json_decode(getURIData(sprintf($uri, $row['domain'], 'json'), 120, 120), true); + } else + continue; + } + $sql = "SELECT count(*) FROM `whois` WHERE `id` = '".$wsid = md5(json_encode($whois))."'"; + list($countb) = $GLOBALS['FontsDB']->fetchRow($GLOBALS['FontsDB']->queryF($sql)); + if ($countb == 0) + { + $wsdata = array(); + $wsdata['id'] = $wsid; + $wsdata['whois'] = mysql_real_escape_string(json_encode($whois)); + $wsdata['created'] = time(); + $wsdata['last'] = time(); + $wsdata['instances'] = 1; + if (!$GLOBALS['FontsDB']->queryF($sql = "INSERT INTO `whois` (`" . implode('`, `', array_keys($whois)) . "`) VALUES ('" . implode("', '", $whois) . "')")) + die("SQL Failed: $sql;"); + else + echo "."; + } else { + if (!$GLOBALS['FontsDB']->queryF($sql = "UPDATE `whois` SET `instances` = `instances` + 1, `last` = unix_timestamp() WHERE `id` = '$wsid'")) + die("SQL Failed: $sql;"); + else + echo "."; + } + $row['whois'] = $wsid; + $row['ip_id'] = md5(json_encode($row)); + $data = array(); + foreach($row as $key => $value) + if (is_array($value)) + $data[$key] = mysql_real_escape_string(json_encode($value)); + else + $data[$key] = mysql_real_escape_string($value); + $sql['inserta'] = "INSERT INTO `networking` (`" . implode("`, `", array_keys($data)) . "`) VALUES ('" . implode("', '", $data) . "')"; + $GLOBALS['FontsDB']->queryF($sql['inserta']); + } + } + $sql['updatea'] = "UPDATE `networking` SET `last` = '". time() . '\' WHERE `ip_id` = "' . $row['ip_id'] .'"'; + $GLOBALS['FontsDB']->queryF($sql['updatea']); + if ($sarray == false) + return $row['ip_id']; + else + return $row; + } +} + + +if (!function_exists("getBaseDomain")) { + /** + * getBaseDomain + * + * @param string $url + * @return string|unknown + */ + function getBaseDomain($url) + { + + static $fallout, $stratauris, $classes; + + if (empty($classes)) + { + if (empty($stratauris)) { + $stratauris = cleanWhitespaces(file(__DIR__ . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR . "stratas.diz")); + shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); + } + shuffle($stratauris); + $attempts = 0; + while(empty($classes) || $attempts <= (count($stratauris) * 1.65)) + { + $attempts++; + $classes = array_keys(unserialize(getURIData($stratauris[mt_rand(0, count($stratauris)-1)] ."/v1/strata/serial.api", 120, 120))); + } + } + if (empty($fallout)) + { + if (empty($stratauris)) { + $stratauris = cleanWhitespaces(file(__DIR__ . DIRECTORY_SEPARATOR . "data" . DIRECTORY_SEPARATOR . "stratas.diz")); + shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); shuffle($stratauris); + } + shuffle($stratauris); + $attempts = 0; + while(empty($fallout) || $attempts <= (count($stratauris) * 1.65)) + { + $attempts++; + $fallout = array_keys(unserialize(getURIData($stratauris[mt_rand(0, count($stratauris)-1)] ."/v1/fallout/serial.api", 120, 120))); + } + } + + // Get Full Hostname + $url = strtolower($url); + $hostname = parse_url($url, PHP_URL_HOST); + if (!filter_var($hostname, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6 || FILTER_FLAG_IPV4) === false) + return $hostname; + + // break up domain, reverse + $elements = explode('.', $hostname); + $elements = array_reverse($elements); + + // Returns Base Domain + if (in_array($elements[0], $classes)) + return $elements[1] . '.' . $elements[0]; + elseif (in_array($elements[0], $fallout) && in_array($elements[1], $classes)) + return $elements[2] . '.' . $elements[1] . '.' . $elements[0]; + elseif (in_array($elements[0], $fallout)) + return $elements[1] . '.' . $elements[0]; + else + return $elements[1] . '.' . $elements[0]; + } +} + +if (!function_exists("generateCSS")) { + function generateCSS($fonts = array(), $name = '', $normal = 'no', $bold = 'no', $italic = 'no', $version = "v2") + { + if ($bold == 'yes') + $name .= ' Bold'; + if ($italic == 'yes') + $name .= ' Italic'; + $name = trim($name); + $typals = fontsUseragentSupportedArray(); + $buff = array(); + $keys = array_keys($fonts); + sort($keys); + foreach($keys as $type) + $buff[] = "local('".$fonts[$type]."') format('".$typals[$type]."')"; + foreach($keys as $type) + $buff[] = "url('".$fonts[$type]."') format('".$typals[$type]."')"; + $css = array(); + $css[] = ""; + $css[] = "/** Font: $name **/"; + $css[] = "@font-face {"; + $css[] = "\tfont-family: '$name';"; + $css[] = "\tsrc: url('".$fonts['woff']."');"; + $css[] = "\tsrc: ".implode(", ", $buff) .";"; + $css[] = "\tfont-weight: ".($bold=='yes'?'900':'normal') . ";"; + $css[] = "\tfont-style: ".($italic=='yes'?'italic':'normal') . ";"; + $css[] = "}"; + return implode("\n", $css); + } +} + +if (!function_exists("getRegionalFontName")) { + /** + * + * @param unknown_type $path + * @param unknown_type $perm + * @param unknown_type $secure + */ + function getRegionalFontName($fontid = '', $latitude = 0, $longitude = 0, $getGistance = false) + { + static $variables = array(); + if (!isset($variables[$fontid])) + { + if ($latitude==0 && $longitude == 0) + { + if (empty($iparray)) + $iparray = getIPIdentity(whitelistGetIP(true), true); + $latitude = $iparray['latitude']; + $longitude = $iparray['longitude']; + } + list($name, $distance) = $GLOBALS['FontsDB']->fetchRow($GLOBALS['FontsDB']->queryF("SELECT `name`, 3956 * 2 * ASIN(SQRT(POWER(SIN((" . abs($latitude) . " - abs(`latitude`)) * pi() / 180 / 2), 2) + COS(" . abs($latitude) . " * pi() / 180 ) * COS(abs(`latitude`) * pi() / 180) * POWER(SIN((" . $longitude . " - `longitude`) * pi() / 180 / 2), 2) )) as distance FROM `fonts_names` WHERE `font_id` = '$fontid' ORDER BY `distance` LIMIT 1")); + $variables[$fontid]['name'] = empty($name)?$fontid:$name; + $variables[$fontid]['distance'] = $distance; + } + return (!isset($variables[$fontid]['name'])||empty($variables[$fontid]['name'])?$fontid:($getGistance == false?$variables[$fontid]['name']:$variables[$fontid]['distance'])); + } +} + +if (!function_exists("getMimetype")) { + /** + * + * @param unknown_type $path + * @param unknown_type $perm + * @param unknown_type $secure + */ + function getMimetype($extension = '-=-') + { + $mimetypes = cleanWhitespaces(file(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'data' . DIRECTORY_SEPARATOR . 'mimetypes.diz')); + foreach($mimetypes as $mimetype) + { + $parts = explode("||", $mimetype); + if (strtolower($extension) == strtolower($parts[0])) + return $parts[1]; + if (strtolower("-=-") == strtolower($parts[0])) + $final = $parts[1]; + } + return $final; + } +} + +if (!function_exists("mkdirSecure")) { + /** + * + * @param unknown_type $path + * @param unknown_type $perm + * @param unknown_type $secure + */ + function mkdirSecure($path = '', $perm = 0777, $secure = true) + { + if (!is_dir($path)) + { + mkdir($path, $perm, true); + if ($secure == true) + { + writeRawFile($path . DIRECTORY_SEPARATOR . '.htaccess', "<Files ~ \"^.*$\">\n\tdeny from all\n</Files>"); + } + return true; + } + return false; + } +} + +if (!function_exists("cleanWhitespaces")) { + /** + * + * @param array $array + */ + function cleanWhitespaces($array = array()) + { + foreach($array as $key => $value) + { + if (is_array($value)) + $array[$key] = cleanWhitespaces($value); + else { + $array[$key] = trim(str_replace(array("\n", "\r", "\t"), "", $value)); + } + } + return $array; + } +} + +if (!function_exists("getURIData")) { + + /* function getURIData() + * + * cURL Routine + * @author Simon Roberts (Chronolabs) si...@la... + * + * @return float() + */ + function getURIData($uri = '', $timeout = 65, $connectout = 65, $post_data = array()) + { + if (!function_exists("curl_init")) + { + return file_get_contents($uri); + } + if (!$btt = curl_init($uri)) { + return false; + } + curl_setopt($btt, CURLOPT_HEADER, 0); + curl_setopt($btt, CURLOPT_POST, (count($posts)==0?false:true)); + if (count($posts)!=0) + curl_setopt($btt, CURLOPT_POSTFIELDS, http_build_query($post_data)); + curl_setopt($btt, CURLOPT_CONNECTTIMEOUT, $connectout); + curl_setopt($btt, CURLOPT_TIMEOUT, $timeout); + curl_setopt($btt, CURLOPT_RETURNTRANSFER, true); + curl_setopt($btt, CURLOPT_VERBOSE, false); + curl_setopt($btt, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($btt, CURLOPT_SSL_VERIFYPEER, false); + $data = curl_exec($btt); + curl_close($btt); + return $data; + } +} + + +if (!function_exists("getFontUFORawData")) { + function getFontUFORawData($mode = '', $clause = '', $state = '', $output = '', $ufofile = '') + { + $sql = "SELECT * from `fonts_archiving` WHERE (`font_id` = '$clause' OR `fingerprint` = '$clause')"; + $result = $GLOBALS['FontsDB']->queryF($sql); + while($row = $GLOBALS['FontsDB']->fetchArray($result)) + { + $GLOBALS['FontsDB']->queryF($sql = "UPDATE `fonts` SET `hits` = `hits` + 1 WHERE `id` = '" . $row['font_id'] . "'"); + $sql = "SELECT * from `fonts` WHERE `id` = '" . $row['font_id'] . "'"; + $font = $GLOBALS['FontsDB']->fetchArray($GLOBALS['FontsDB']->queryF($sql)); + switch($font['medium']) + { + case FONT_RESOURCES_CACHE: + case FONT_RESOURCES_RESOURCE: + if ($font['medium'] == FONT_RESOURCES_CACHE) + { + $sessions = unserialize(file_get_contents(FONT_RESOURCES_CACHE . DIRECTORY_SEPARATOR . "file-store-sessions.serial")); + if... [truncated message content] |