]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Ticket #3011: Add attachments/uploads and attachments/file_quota to api/statusnet...
authorBrion Vibber <brion@pobox.com>
Mon, 21 Feb 2011 23:52:12 +0000 (15:52 -0800)
committerBrion Vibber <brion@pobox.com>
Mon, 21 Feb 2011 23:52:12 +0000 (15:52 -0800)
file_quota is adjusted from the defined value to take into account the maximum upload size limits in PHP, or cropped to 0 if uploads are disabled.
This can be used by client apps to determine maximum size for an attachment.

actions/apistatusnetconfig.php

index 771a95baec6e4d1f7603c7506b09e8a3a819e806..b34c6cc54415e1f0a4def0fa05ca37ebfea51deb 100644 (file)
@@ -59,7 +59,8 @@ class ApiStatusnetConfigAction extends ApiAction
         'notice' => array('contentlimit'),
         'throttle' => array('enabled', 'count', 'timespan'),
         'xmpp' => array('enabled', 'server', 'port', 'user'),
-        'integration' => array('source')
+        'integration' => array('source'),
+        'attachments' => array('uploads', 'file_quota')
     );
 
     /**
@@ -96,7 +97,7 @@ class ApiStatusnetConfigAction extends ApiAction
             foreach ($this->keys as $section => $settings) {
                 $this->elementStart($section);
                 foreach ($settings as $setting) {
-                    $value = common_config($section, $setting);
+                    $value = $this->setting($section, $setting);
                     if (is_array($value)) {
                         $value = implode(',', $value);
                     } else if ($value === false || $value == '0') {
@@ -125,7 +126,7 @@ class ApiStatusnetConfigAction extends ApiAction
                 $result[$section] = array();
                 foreach ($settings as $setting) {
                     $result[$section][$setting]
-                        = common_config($section, $setting);
+                        = $this->setting($section, $setting);
                 }
             }
             $this->initDocument('json');
@@ -143,6 +144,20 @@ class ApiStatusnetConfigAction extends ApiAction
         }
     }
 
+    function setting($section, $key) {
+        $result = common_config($section, $key);
+        if ($key == 'file_quota') {
+            // hack: adjust for the live upload limit
+            if (common_config($section, 'uploads')) {
+                $max = ImageFile::maxFileSizeInt();
+            } else {
+                $max = 0;
+            }
+            return min($result, $max);
+        }
+        return $result;
+    }
+
     /**
      * Return true if read only.
      *