summaryrefslogtreecommitdiff
path: root/classes
diff options
context:
space:
mode:
Diffstat (limited to 'classes')
-rw-r--r--classes/Fave.php2
-rw-r--r--classes/File.php9
-rw-r--r--classes/File_oembed.php55
-rw-r--r--classes/File_thumbnail.php6
-rw-r--r--classes/Notice.php24
-rw-r--r--classes/Profile.php4
-rw-r--r--classes/Session.php9
-rw-r--r--classes/User_group.php7
8 files changed, 67 insertions, 49 deletions
diff --git a/classes/Fave.php b/classes/Fave.php
index c3ec62dcf..4b28d06b4 100644
--- a/classes/Fave.php
+++ b/classes/Fave.php
@@ -79,7 +79,7 @@ class Fave extends Memcached_DataObject
$qry .= 'ORDER BY modified DESC ';
if (!is_null($offset)) {
- $qry .= "LIMIT $offset, $limit";
+ $qry .= "LIMIT $limit OFFSET $offset";
}
$fav->query($qry);
diff --git a/classes/File.php b/classes/File.php
index 56d9f9827..0c4fbf7e6 100644
--- a/classes/File.php
+++ b/classes/File.php
@@ -79,9 +79,8 @@ class File extends Memcached_DataObject
if (isset($redir_data['type'])
&& ('text/html' === substr($redir_data['type'], 0, 9))
- && ($oembed_data = File_oembed::_getOembed($given_url))
- && isset($oembed_data['json'])) {
- File_oembed::saveNew($oembed_data['json'], $file_id);
+ && ($oembed_data = File_oembed::_getOembed($given_url))) {
+ File_oembed::saveNew($oembed_data, $file_id);
}
return $x;
}
@@ -123,6 +122,7 @@ class File extends Memcached_DataObject
}
function isRespectsQuota($user,$fileSize) {
+
if ($fileSize > common_config('attachments', 'file_quota')) {
return sprintf(_('No file may be larger than %d bytes ' .
'and the file you sent was %d bytes. Try to upload a smaller version.'),
@@ -136,8 +136,7 @@ class File extends Memcached_DataObject
if ($total > common_config('attachments', 'user_quota')) {
return sprintf(_('A file this large would exceed your user quota of %d bytes.'), common_config('attachments', 'user_quota'));
}
-
- $query .= ' month(modified) = month(now()) and year(modified) = year(now())';
+ $query .= ' AND EXTRACT(month FROM file.modified) = EXTRACT(month FROM now()) and EXTRACT(year FROM file.modified) = EXTRACT(year FROM now())';
$this->query($query);
$this->fetch();
$total = $this->total + $fileSize;
diff --git a/classes/File_oembed.php b/classes/File_oembed.php
index 69230e4a4..bbf112729 100644
--- a/classes/File_oembed.php
+++ b/classes/File_oembed.php
@@ -56,33 +56,46 @@ class File_oembed extends Memcached_DataObject
return array(false, false, false);
}
- function _getOembed($url, $maxwidth = 500, $maxheight = 400, $format = 'json') {
- $cmd = common_config('oohembed', 'endpoint') . '?url=' . urlencode($url);
- if (is_int($maxwidth)) $cmd .= "&maxwidth=$maxwidth";
- if (is_int($maxheight)) $cmd .= "&maxheight=$maxheight";
- if (is_string($format)) $cmd .= "&format=$format";
- $oe = @file_get_contents($cmd);
- if (false === $oe) return false;
- return array($format => (('json' === $format) ? json_decode($oe, true) : $oe));
+ function _getOembed($url, $maxwidth = 500, $maxheight = 400) {
+ require_once INSTALLDIR.'/extlib/Services/oEmbed.php';
+ $parameters = array(
+ 'maxwidth'=>$maxwidth,
+ 'maxheight'=>$maxheight,
+ );
+ try{
+ $oEmbed = new Services_oEmbed($url);
+ $object = $oEmbed->getObject($parameters);
+ return $object;
+ }catch(Exception $e){
+ try{
+ $oEmbed = new Services_oEmbed($url, array(
+ Services_oEmbed::OPTION_API => common_config('oohembed', 'endpoint')
+ ));
+ $object = $oEmbed->getObject($parameters);
+ return $object;
+ }catch(Exception $ex){
+ return false;
+ }
+ }
}
function saveNew($data, $file_id) {
$file_oembed = new File_oembed;
$file_oembed->file_id = $file_id;
- $file_oembed->version = $data['version'];
- $file_oembed->type = $data['type'];
- if (!empty($data['provider_name'])) $file_oembed->provider = $data['provider_name'];
- if (!isset($file_oembed->provider) && !empty($data['provide'])) $file_oembed->provider = $data['provider'];
- if (!empty($data['provide_url'])) $file_oembed->provider_url = $data['provider_url'];
- if (!empty($data['width'])) $file_oembed->width = intval($data['width']);
- if (!empty($data['height'])) $file_oembed->height = intval($data['height']);
- if (!empty($data['html'])) $file_oembed->html = $data['html'];
- if (!empty($data['title'])) $file_oembed->title = $data['title'];
- if (!empty($data['author_name'])) $file_oembed->author_name = $data['author_name'];
- if (!empty($data['author_url'])) $file_oembed->author_url = $data['author_url'];
- if (!empty($data['url'])) $file_oembed->url = $data['url'];
+ $file_oembed->version = $data->version;
+ $file_oembed->type = $data->type;
+ if (!empty($data->provider_name)) $file_oembed->provider = $data->provider_name;
+ if (!empty($data->provider)) $file_oembed->provider = $data->provider;
+ if (!empty($data->provide_url)) $file_oembed->provider_url = $data->provider_url;
+ if (!empty($data->width)) $file_oembed->width = intval($data->width);
+ if (!empty($data->height)) $file_oembed->height = intval($data->height);
+ if (!empty($data->html)) $file_oembed->html = $data->html;
+ if (!empty($data->title)) $file_oembed->title = $data->title;
+ if (!empty($data->author_name)) $file_oembed->author_name = $data->author_name;
+ if (!empty($data->author_url)) $file_oembed->author_url = $data->author_url;
+ if (!empty($data->url)) $file_oembed->url = $data->url;
$file_oembed->insert();
- if (!empty($data['thumbnail_url'])) {
+ if (!empty($data->thumbnail_url)) {
File_thumbnail::saveNew($data, $file_id);
}
}
diff --git a/classes/File_thumbnail.php b/classes/File_thumbnail.php
index 44b92a2fa..0b09c6af8 100644
--- a/classes/File_thumbnail.php
+++ b/classes/File_thumbnail.php
@@ -51,9 +51,9 @@ class File_thumbnail extends Memcached_DataObject
function saveNew($data, $file_id) {
$tn = new File_thumbnail;
$tn->file_id = $file_id;
- $tn->url = $data['thumbnail_url'];
- $tn->width = intval($data['thumbnail_width']);
- $tn->height = intval($data['thumbnail_height']);
+ $tn->url = $data->thumbnail_url;
+ $tn->width = intval($data->thumbnail_width);
+ $tn->height = intval($data->thumbnail_height);
$tn->insert();
}
}
diff --git a/classes/Notice.php b/classes/Notice.php
index 0359c310d..7f002d838 100644
--- a/classes/Notice.php
+++ b/classes/Notice.php
@@ -97,13 +97,21 @@ class Notice extends Memcached_DataObject
function saveTags()
{
/* extract all #hastags */
- $count = preg_match_all('/(?:^|\s)#([A-Za-z0-9_\-\.]{1,64})/', strtolower($this->content), $match);
+ $count = preg_match_all('/(?:^|\s)#([\pL\pN_\-\.]{1,64})/', strtolower($this->content), $match);
if (!$count) {
return true;
}
+
+ //turn each into their canonical tag
+ //this is needed to remove dupes before saving e.g. #hash.tag = #hashtag
+ $hashtags = array();
+ for($i=0; $i<count($match[1]); $i++) {
+ $hashtags[] = common_canonical_tag($match[1][$i]);
+ }
+
/* Add them to the database */
- foreach(array_unique($match[1]) as $hashtag) {
+ foreach(array_unique($hashtags) as $hashtag) {
/* elide characters we don't want in the tag */
$this->saveTag($hashtag);
}
@@ -112,8 +120,6 @@ class Notice extends Memcached_DataObject
function saveTag($hashtag)
{
- $hashtag = common_canonical_tag($hashtag);
-
$tag = new Notice_tag();
$tag->notice_id = $this->id;
$tag->tag = $hashtag;
@@ -873,7 +879,7 @@ class Notice extends Memcached_DataObject
if ($cnt > 0) {
$qry .= ', ';
}
- $qry .= '('.$id.', '.$this->id.', '.$source.', "'.$this->created.'") ';
+ $qry .= '('.$id.', '.$this->id.', '.$source.", '".$this->created. "') ";
$cnt++;
if (rand() % NOTICE_INBOX_SOFT_LIMIT == 0) {
Notice_inbox::gc($id);
@@ -899,10 +905,14 @@ class Notice extends Memcached_DataObject
{
$user = new User();
+ if(common_config('db','quote_identifiers'))
+ $user_table = '"user"';
+ else $user_table = 'user';
+
$qry =
'SELECT id ' .
- 'FROM user JOIN subscription '.
- 'ON user.id = subscription.subscriber ' .
+ 'FROM '. $user_table .' JOIN subscription '.
+ 'ON '. $user_table .'.id = subscription.subscriber ' .
'WHERE subscription.subscribed = %d ';
$user->query(sprintf($qry, $this->profile_id));
diff --git a/classes/Profile.php b/classes/Profile.php
index 32de608cf..f926b2cef 100644
--- a/classes/Profile.php
+++ b/classes/Profile.php
@@ -360,7 +360,6 @@ class Profile extends Memcached_DataObject
$c->set(common_cache_key('profile:subscription_count:'.$this->id), $cnt);
}
- common_debug("subscriptionCount == $cnt");
return $cnt;
}
@@ -385,7 +384,6 @@ class Profile extends Memcached_DataObject
$c->set(common_cache_key('profile:subscriber_count:'.$this->id), $cnt);
}
- common_debug("subscriberCount == $cnt");
return $cnt;
}
@@ -407,7 +405,6 @@ class Profile extends Memcached_DataObject
$c->set(common_cache_key('profile:fave_count:'.$this->id), $cnt);
}
- common_debug("faveCount == $cnt");
return $cnt;
}
@@ -430,7 +427,6 @@ class Profile extends Memcached_DataObject
$c->set(common_cache_key('profile:notice_count:'.$this->id), $cnt);
}
- common_debug("noticeCount == $cnt");
return $cnt;
}
diff --git a/classes/Session.php b/classes/Session.php
index 93fd99baa..ac80279c5 100644
--- a/classes/Session.php
+++ b/classes/Session.php
@@ -106,14 +106,11 @@ class Session extends Memcached_DataObject
{
self::logdeb("garbage collection (maxlifetime = $maxlifetime)");
- $epoch = time() - $maxlifetime;
-
- $qry = 'DELETE FROM session ' .
- 'WHERE modified < "'.$epoch.'"';
+ $epoch = common_sql_date(time() - $maxlifetime);
$session = new Session();
-
- $result = $session->query($qry);
+ $session->whereAdd('modified < "'.$epoch.'"');
+ $result = $session->delete(DB_DATAOBJECT_WHEREADD_ONLY);
self::logdeb("garbage collection result = $result");
}
diff --git a/classes/User_group.php b/classes/User_group.php
index 27b444705..b1ab1c2d3 100644
--- a/classes/User_group.php
+++ b/classes/User_group.php
@@ -275,11 +275,14 @@ class User_group extends Memcached_DataObject
// XXX: cache this
$user = new User();
+ if(common_config('db','quote_identifiers'))
+ $user_table = '"user"';
+ else $user_table = 'user';
$qry =
'SELECT id ' .
- 'FROM user JOIN group_member '.
- 'ON user.id = group_member.profile_id ' .
+ 'FROM '. $user_table .' JOIN group_member '.
+ 'ON '. $user_table .'.id = group_member.profile_id ' .
'WHERE group_member.group_id = %d ';
$user->query(sprintf($qry, $this->id));