.*?)"'
+logsearch = re.compile(logexpr).search
+apps = {}
+unknownapks = []
+knownapks = common.KnownApks()
+for logfile in glob.glob(os.path.join(logsdir,'access-*.log')):
+ logdate = logfile[len(logsdir) + 1 + len('access-'):-4]
+ matches = (logsearch(line) for line in file(logfile))
+ for match in matches:
+ if match and match.group('statuscode') == '200':
+ uri = match.group('uri')
+ if uri.endswith('.apk'):
+ _, apkname = os.path.split(uri)
+ app = knownapks.getapp(apkname)
+ if app:
+ appid, _ = app
+ if appid in apps:
+ apps[appid] += 1
+ else:
+ apps[appid] = 1
+ else:
+ if not apkname in unknownapks:
+ unknownapks.append(apkname)
+
+for app, count in apps.iteritems():
+ print app + " " + str(count)
+
+if len(unknownapks) > 0:
+ print '\nUnknown apks:'
+ for apk in unknownapks:
+ print apk
+
+print "Finished."
+
diff --git a/wp-fdroid/wp-fdroid.php b/wp-fdroid/wp-fdroid.php
index 935b4dcc..385e90c8 100644
--- a/wp-fdroid/wp-fdroid.php
+++ b/wp-fdroid/wp-fdroid.php
@@ -102,7 +102,10 @@ class FDroid
function get_app($query_vars) {
- $permissions_object = new AndroidPermissions($this->site_path.'/repo/AndroidManifest.xml', $this->site_path.'/repo/strings.xml', $this->site_path.'/repo/android-permissions.cache');
+ global $permissions_data;
+ $permissions_object = new AndroidPermissions($this->site_path.'/wp-content/plugins/wp-fdroid/AndroidManifest.xml',
+ $this->site_path.'/wp-content/plugins/wp-fdroid/strings.xml',
+ sys_get_temp_dir().'/android-permissions.cache');
$permissions_data = $permissions_object->get_permissions_array();
// Get app data
@@ -242,29 +245,7 @@ class FDroid
$out.='
view permissions
';
$out.='';
$permissions = explode(',',$apk['permissions']);
- usort($permissions,
- function ($a, $b) use (&$permissions_data) {
-
- $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel'];
- $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel'];
-
- if($aProtectionLevel != $bProtectionLevel) {
- if(strlen($aProtectionLevel)==0) return 1;
- if(strlen($bProtectionLevel)==0) return -1;
-
- return strcmp($aProtectionLevel, $bProtectionLevel);
- }
-
- $aGroup = $permissions_data['permission'][$a]['permissionGroup'];
- $bGroup = $permissions_data['permission'][$b]['permissionGroup'];
-
- if($aGroup != $bGroup) {
- return strcmp($aGroup, $bGroup);
- }
-
- return strcmp($a, $b);
- }
- );
+ usort($permissions, "permissions_cmp");
$permission_group_last = '';
foreach($permissions as $permission) {
@@ -552,6 +533,29 @@ class FDOutGrid
}
}
+function permissions_cmp($a, $b) {
+ global $permissions_data;
+
+ $aProtectionLevel = $permissions_data['permission'][$a]['protectionLevel'];
+ $bProtectionLevel = $permissions_data['permission'][$b]['protectionLevel'];
+
+ if($aProtectionLevel != $bProtectionLevel) {
+ if(strlen($aProtectionLevel)==0) return 1;
+ if(strlen($bProtectionLevel)==0) return -1;
+
+ return strcmp($aProtectionLevel, $bProtectionLevel);
+ }
+
+ $aGroup = $permissions_data['permission'][$a]['permissionGroup'];
+ $bGroup = $permissions_data['permission'][$b]['permissionGroup'];
+
+ if($aGroup != $bGroup) {
+ return strcmp($aGroup, $bGroup);
+ }
+
+ return strcmp($a, $b);
+}
+
// Make a link to this page, with the current query vars attached and desired params added/modified
function makelink($query_vars, $params=array()) {
$link=get_permalink();