From 8a31970ff8fe8a4e440501771756747370e2fa20 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Tue, 20 Oct 2009 15:04:47 -0700 Subject: Twitter now puts out an error msg when the status param is empty. Updated our API to match. --- actions/twitapistatuses.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) (limited to 'actions') diff --git a/actions/twitapistatuses.php b/actions/twitapistatuses.php index 360dff27c..b0d3e584b 100644 --- a/actions/twitapistatuses.php +++ b/actions/twitapistatuses.php @@ -236,11 +236,8 @@ class TwitapistatusesAction extends TwitterapiAction } if (empty($status)) { - - // XXX: Note: In this case, Twitter simply returns '200 OK' - // No error is given, but the status is not posted to the - // user's timeline. Seems bad. Shouldn't we throw an - // errror? -- Zach + $this->clientError(_('Client must provide a \'status\' parameter with a value.'), + $code = 403, $apidata['content-type']); return; } else { -- cgit v1.2.3-54-g00ecf From 3f06bfc042e34ce97e1f1476faadb67fc5edd282 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Thu, 8 Oct 2009 11:45:06 +0800 Subject: Actually commit the file this time --- actions/getfile.php | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 actions/getfile.php (limited to 'actions') diff --git a/actions/getfile.php b/actions/getfile.php new file mode 100644 index 000000000..ecda34c0f --- /dev/null +++ b/actions/getfile.php @@ -0,0 +1,145 @@ +. + * + * @category Personal + * @package StatusNet + * @author Jeffery To + * @copyright 2008-2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +require_once 'MIME/Type.php'; + +/** + * Action for getting a file attachment + * + * @category Personal + * @package StatusNet + * @author Jeffery To + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +class GetfileAction extends Action +{ + /** + * Path of file to return + */ + + var $path = null; + + /** + * Get file name + * + * @param array $args $_REQUEST array + * + * @return success flag + */ + + function prepare($args) + { + parent::prepare($args); + + $filename = $this->trimmed('filename'); + $path = null; + + if ($filename) { + $path = common_config('attachments', 'dir') . $filename; + } + + if (empty($path) or !file_exists($path)) { + $this->clientError(_('No such file.'), 404); + return false; + } + if (!is_readable($path)) { + $this->clientError(_('Cannot read file.'), 403); + return false; + } + + $this->path = $path; + return true; + } + + /** + * Is this page read-only? + * + * @return boolean true + */ + + function isReadOnly($args) + { + return true; + } + + /** + * Last-modified date for file + * + * @return int last-modified date as unix timestamp + */ + + function lastModified() + { + return filemtime($this->path); + } + + /** + * etag for file + * + * This returns the same data (inode, size, mtime) as Apache would, + * but in decimal instead of hex. + * + * @return string etag http header + */ + function etag() + { + $stat = stat($this->path); + return '"' . $stat['ino'] . '-' . $stat['size'] . '-' . $stat['mtime'] . '"'; + } + + /** + * Handle input, produce output + * + * @param array $args $_REQUEST contents + * + * @return void + */ + + function handle($args) + { + // undo headers set by PHP sessions + $sec = session_cache_expire() * 60; + header('Expires: ' . date(DATE_RFC1123, time() + $sec)); + header('Cache-Control: public, max-age=' . $sec); + header('Pragma: public'); + + parent::handle($args); + + $path = $this->path; + header('Content-Type: ' . MIME_Type::autoDetect($path)); + readfile($path); + } +} -- cgit v1.2.3-54-g00ecf From dcca9fbec0cea9c5e15c4d58a8e9870514dfdbdd Mon Sep 17 00:00:00 2001 From: Sarven Capadisli Date: Fri, 30 Oct 2009 21:44:31 +0000 Subject: IE has some issue with notices that are sent with file attachments. It doesn't like the XHR response with XHTML DTD. New notices without the file attachment work fine. The rendered content (the anchor for the file attachment link) doesn't appear to be the issue. To fix this problem, I removed the XHTML DTD line from newnotice's XHR response. This is unnecessary for text/xml outputs that's intended for XHR responses any way. It just happens to fix an IE issue. Still a mystery to me as to why it is particular to notices with file attachments. --- actions/newnotice.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'actions') diff --git a/actions/newnotice.php b/actions/newnotice.php index 8c0476f70..548832eca 100644 --- a/actions/newnotice.php +++ b/actions/newnotice.php @@ -271,7 +271,9 @@ class NewnoticeAction extends Action common_broadcast_notice($notice); if ($this->boolean('ajax')) { - $this->startHTML('text/xml;charset=utf-8'); + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); $this->elementStart('head'); $this->element('title', null, _('Notice posted')); $this->elementEnd('head'); -- cgit v1.2.3-54-g00ecf From ba89c891768b371e5358af4cdc76ff18e8b37672 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Sat, 31 Oct 2009 14:32:15 -0400 Subject: Revert "Actually commit the file this time" This reverts commit 3f06bfc042e34ce97e1f1476faadb67fc5edd282. --- actions/getfile.php | 145 ---------------------------------------------------- 1 file changed, 145 deletions(-) delete mode 100644 actions/getfile.php (limited to 'actions') diff --git a/actions/getfile.php b/actions/getfile.php deleted file mode 100644 index ecda34c0f..000000000 --- a/actions/getfile.php +++ /dev/null @@ -1,145 +0,0 @@ -. - * - * @category Personal - * @package StatusNet - * @author Jeffery To - * @copyright 2008-2009 StatusNet, Inc. - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -if (!defined('STATUSNET') && !defined('LACONICA')) { - exit(1); -} - -require_once 'MIME/Type.php'; - -/** - * Action for getting a file attachment - * - * @category Personal - * @package StatusNet - * @author Jeffery To - * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 - * @link http://status.net/ - */ - -class GetfileAction extends Action -{ - /** - * Path of file to return - */ - - var $path = null; - - /** - * Get file name - * - * @param array $args $_REQUEST array - * - * @return success flag - */ - - function prepare($args) - { - parent::prepare($args); - - $filename = $this->trimmed('filename'); - $path = null; - - if ($filename) { - $path = common_config('attachments', 'dir') . $filename; - } - - if (empty($path) or !file_exists($path)) { - $this->clientError(_('No such file.'), 404); - return false; - } - if (!is_readable($path)) { - $this->clientError(_('Cannot read file.'), 403); - return false; - } - - $this->path = $path; - return true; - } - - /** - * Is this page read-only? - * - * @return boolean true - */ - - function isReadOnly($args) - { - return true; - } - - /** - * Last-modified date for file - * - * @return int last-modified date as unix timestamp - */ - - function lastModified() - { - return filemtime($this->path); - } - - /** - * etag for file - * - * This returns the same data (inode, size, mtime) as Apache would, - * but in decimal instead of hex. - * - * @return string etag http header - */ - function etag() - { - $stat = stat($this->path); - return '"' . $stat['ino'] . '-' . $stat['size'] . '-' . $stat['mtime'] . '"'; - } - - /** - * Handle input, produce output - * - * @param array $args $_REQUEST contents - * - * @return void - */ - - function handle($args) - { - // undo headers set by PHP sessions - $sec = session_cache_expire() * 60; - header('Expires: ' . date(DATE_RFC1123, time() + $sec)); - header('Cache-Control: public, max-age=' . $sec); - header('Pragma: public'); - - parent::handle($args); - - $path = $this->path; - header('Content-Type: ' . MIME_Type::autoDetect($path)); - readfile($path); - } -} -- cgit v1.2.3-54-g00ecf