Mikael Nordfeldth
97bf470895
File class improved debugging and filename generation
...
In some development code I noticed that when handling File objects without
filename values, there would be problems calling getPath and such.
The width and height value testing will be validated later anyway, and by
removing such a narrow test we can use events to generate thumbnails of
media formats supported by recently added plugins on demand.
2015-01-25 02:30:43 +01:00
Mikael Nordfeldth
93377e1c24
Allow fallback to local URL on Notice->getUrl()
...
To avoid verbose exception handling in other parts of the code.
2015-01-23 12:39:08 +01:00
Mikael Nordfeldth
3119341aea
Prefer local URLs for all locally generated notices.
2015-01-23 12:37:27 +01:00
Mikael Nordfeldth
fac9f4e545
Merge branch 'nightly' of gitorious.org:social/mainline into nightly
2015-01-21 23:45:49 +01:00
Mikael Nordfeldth
5653c25641
Add simpler delete preference for Profile and User
2015-01-21 23:00:33 +01:00
Mikael Nordfeldth
305c9f33a7
Registration coding cleanup
...
Mainly there was an Undefined variable: code in apiaccountregister.php
2015-01-18 13:06:12 +01:00
Mikael Nordfeldth
3927acdde5
getUrl() fixed for File and File_thumbnail to correct http/https stuff and other
2015-01-12 19:22:10 +01:00
Mikael Nordfeldth
cbb7ec07a5
When called in offline queue, File::url was HTTP
...
Despite having the site configured "always" for HTTPS, File generated
thumbnails and such with HTTP urls.
2015-01-12 19:19:41 +01:00
Mikael Nordfeldth
6b48db2539
Merge commit 'refs/merge-requests/27' of https://gitorious.org/social/mainline into merge-requests/27
2014-12-09 13:30:47 +01:00
Joshua Judson Rosen
06235a3aa3
Consistently root autostitched conversations at the oldest notice.
2014-12-08 22:39:36 -05:00
Mikael Nordfeldth
d671b7b289
debug output was referencing wrong variable
2014-12-01 19:19:16 +01:00
Mikael Nordfeldth
9f09b136b8
Adding crc32 to uniqueify conversation URIs
...
This really should be a UUID or something else totally unexpected
but I figure that crc32 is good enough for now. The reason we keep
the main structure is because some third party scripts have begun
relying upon the tag URI format to parse out domain name, type etc.
2014-11-27 17:05:01 +01:00
Mikael Nordfeldth
411ce0629c
If a Notice insert fails, don't continue processing it
2014-11-27 14:29:50 +01:00
Mikael Nordfeldth
e0d0a59706
Move Conversation creation out of insert() to allow URI setting
...
This means we import the URI string from remote instances to track their
conversations and are able to stitch together replies in a single thread.
We might have to try to avoid collisions so noone remotely can predict
conversation URIs which we generate on our server, causing a DoS kind of
problem.
2014-11-27 14:27:41 +01:00
Mikael Nordfeldth
8a4575ea76
Conversation URI cannot be null
2014-11-27 14:15:42 +01:00
Mikael Nordfeldth
bdb4a41696
Use remote conversation URI info to stitch convos together
...
If we know the URI sent from the remote party, and we don't know the
notice it is replying to, we might still be able to put it in the same
conversation thread!
2014-11-27 14:06:10 +01:00
Mikael Nordfeldth
68143ff916
DirectMessage moved into a plugin, not done yet
...
We still have to move some API calls into the new plugin.
2014-11-07 15:53:35 +01:00
Mikael Nordfeldth
7ea067a0dc
Notice_source checks in better code style
2014-11-05 19:44:22 +01:00
Mikael Nordfeldth
7589e78817
multiGet instead of listFind, subs now in order!
...
It was desired that subscriptions were listed in an order
with the latest first.
2014-10-25 17:57:20 +02:00
Hannes Mannerheim
a3574bac6c
we _do_ want to show text/html as attachments, since that's how mustard and crow expands oversized notices
2014-10-20 16:21:42 +02:00
Hannes Mannerheim
a3b66da261
repeat-bug, could not repeat oversized notices
...
this code is copy-paste from statusnet, apparently we need it still
2014-10-20 16:20:12 +02:00
Roland Haeder
c1a0132cab
Added missing index declarations.
...
Signed-off-by: Roland Haeder <roland@mxchange.org>
2014-08-24 13:21:59 +02:00
Roland Haeder
ea53233f17
Fixed CHMOD + set error_reporting(0) in getvaliddaemons.php to avoid strict warnings in PHP +5.5
...
Signed-off-by: Roland Haeder <roland@mxchange.org>
2014-08-24 13:12:44 +02:00
Mikael Nordfeldth
8aa783241d
Profile activityobject array outputs "summary" field
2014-08-07 21:54:31 +02:00
Mikael Nordfeldth
1c04601a9c
Removing excessive "inline" attachment listings
2014-08-05 11:30:45 +02:00
Mikael Nordfeldth
17b9614ff8
File->getEnclosure improvements (text/html is not an attachment)
2014-08-05 10:54:00 +02:00
Mikael Nordfeldth
e61e11a973
Shares would lack a title in any Activity representation
2014-07-30 00:17:22 +02:00
Mikael Nordfeldth
6e481d35ed
Start/End NoticeAsActivity modifications
...
More 'scoped' profiles and typing to the functions.
Also, there's no need to send an object as a reference.
2014-07-28 09:40:07 +02:00
Mikael Nordfeldth
eb2f93ad2b
More use of Profile, less User
2014-07-28 09:34:46 +02:00
Mikael Nordfeldth
9afdc40763
Show correct number of POSTs in conversation "more" link
2014-07-15 14:26:42 +02:00
Mikael Nordfeldth
c96f0aa30f
More Activity-based reasoning for saveActivity in Notice
...
If we can, get the activity ID from the activity itself, instead of the
supplied $options array.
2014-07-14 23:54:58 +02:00
Mikael Nordfeldth
ae62b91940
Unifying HTML stripping functions to common_strip_html
2014-07-14 13:52:23 +02:00
Mikael Nordfeldth
e0a10f775f
Store activity content into Notice table in saveActivity
2014-07-14 13:29:03 +02:00
Mikael Nordfeldth
0a20abf1d8
Email notify-on-fave moved to Profile_prefs (run upgrade.php)
2014-07-13 19:46:40 +02:00
Mikael Nordfeldth
b46b588522
New Profile_prefs get a 'created' value now.
2014-07-13 17:09:18 +02:00
Mikael Nordfeldth
b5fd2a048f
Shortcut to Profile_prefs get/set Data in Profile and User
2014-07-13 16:49:35 +02:00
Mikael Nordfeldth
b67a611ca7
Allow default data from Profile_prefs::getData call
2014-07-13 16:26:08 +02:00
Mikael Nordfeldth
6f593a79d4
making more sense in mail_notify_fav
...
We should probably get rid of this function, at least storing everything in
lib/mail.php - but until then, at least let's make it more understandable.
2014-07-13 12:56:43 +02:00
Mikael Nordfeldth
42e2232371
Use canonical object type in Notice title as ActivityObject
2014-07-09 13:36:57 +02:00
Mikael Nordfeldth
2eea7a2d4b
Do proper Activity-plugin based mention notification
2014-07-07 01:15:43 +02:00
Mikael Nordfeldth
fffacaa27c
FavorAction now uses Notice::saveActivity
2014-07-06 01:37:03 +02:00
Mikael Nordfeldth
ffb9d7ad3f
Rewriting code for notice representation
...
Getting rid of NoticeListItemAdapter, putting more into ActivityHandlerPlugin
and relying on plugins to handle rendering code of the content. This gives us
a lot more structure and consistency in notice structure and allows activity
plugins to stop rendering certain kinds of notices more easily.
There should also be a property for an ActivityHandlerPlugin class to avoid
rendering notices in the ordinary stream, so we don't have to overload stuff.
2014-07-04 14:14:49 +02:00
Mikael Nordfeldth
53b794342c
Saved incoming activites for Favorite as wrong profile
...
also removed some debugging lines
Now we have to get rid of OStatus dependency in lib/activityhandlerplugin.php
2014-07-03 14:08:26 +02:00
Mikael Nordfeldth
1f97376813
Occasionally we'd get a false from Profile::getKV
...
Due to cache miss? Probably, but now we simply say that it's null in that case
so we get a proper exception from Notice::_setProfiles
2014-07-03 11:55:24 +02:00
Mikael Nordfeldth
b63f6e949c
Converted all ActivityObject::fromProfile to $profile->asActivityObject
2014-07-03 10:51:36 +02:00
Mikael Nordfeldth
1d981b826a
ActivityObject::fromProfile implemented in Profile
2014-07-02 18:39:53 +02:00
Mikael Nordfeldth
c44146d6f8
Favorites are now being stored from activities
2014-07-02 18:38:19 +02:00
Mikael Nordfeldth
acb07ef52f
Added saveActivity method to Notice class
...
saveActivity will accept an Activity which gets parsed and saved through
plugins. So when an ActivityHandlerPlugin (such as Favorite will be soon)
gets a feed to save, this will be the function called instead of saveNew.
2014-07-02 11:38:37 +02:00
Mikael Nordfeldth
96babc59f5
getIdentifiers, resolveUri, findLocalObject Activity algorithms
...
Also modified related classes to support this feature.
2014-07-02 11:38:20 +02:00
Mikael Nordfeldth
7e597ea7cc
More Favorite pluginification (favecount, cache, menus(favecount, cache, menus))
2014-06-28 14:03:30 +02:00
Mikael Nordfeldth
fcdd061b4f
pluginified most of hasFave, getFaves and related calls
...
The code is now more event-driven when it comes to rendering notices
and their related HTML elements, since we can't have direct calls from
core to a plugin.
lib/activitymover.php has a function to move a Favorite activity which
will not happen now. The move must be pluginified and performed as an
event which plugins can catch on to.
2014-06-27 14:09:02 +02:00
Mikael Nordfeldth
db7cc7fa75
Favorite functionality put into plugin (not done yet)
...
Now we have to fix any code in the core which directly uses the Fave class
or any other favorite stuff, since it is pluginised and thus might not be
available on some installations.
2014-06-24 15:58:53 +02:00
Mikael Nordfeldth
86fa4f5fe5
There was no getNickname() for User_group
2014-06-23 19:12:10 +02:00
Mikael Nordfeldth
414a95a784
Initial move towards microformats2
...
No validation has been attempted yet. Lots of changes left. This
is visibly not (very) different from the previous CSS layout. But
some simplifications have been made.
Might cause issues with local changes to themes and CSS. Also maybe
javascript which depends on certain legacy microformats elements.
The move to microformats2 is motivated by the announcement that all
microformats should be migrated to version 2, as of 2014-06-20 at:
http://microformats.org/2014/06/20/microformats-org-turns-9-upgrade-to-microformats2
2014-06-22 17:11:04 +02:00
Mikael Nordfeldth
d16af504f6
File basename call lacked a dot
2014-06-22 17:05:11 +02:00
Mikael Nordfeldth
79824a3625
Could not update avatar due to Bad Thumbnail parameters
2014-06-17 12:48:10 +02:00
Mikael Nordfeldth
c8c6bf9a1c
Simplify functions regarding locally cached profiles etc.
2014-06-06 00:32:07 +02:00
Mikael Nordfeldth
c786892103
Non-dynamic profile fetching in User and User_group
2014-06-06 00:19:54 +02:00
Mikael Nordfeldth
1217cd59bf
Non-dynamic user and group fetching in Profile
2014-06-06 00:07:32 +02:00
Mikael Nordfeldth
adf896bc12
Add support for plugins to resize images
...
This also adds an event hook to get more metadata of the ImageFile.
Such as if it's animated or so.
2014-06-05 13:29:36 +02:00
Mikael Nordfeldth
a900d04052
Non-dynamic fetching for multiple Notice properties
2014-06-05 00:29:43 +02:00
Mikael Nordfeldth
3d807c812d
$notice->getProfile will ALWAYS return a Profile
...
otherwise it throws an exception
2014-06-05 00:07:04 +02:00
Mikael Nordfeldth
04d4b62dff
Replies to repeats should go to the original
2014-06-04 23:51:32 +02:00
Mikael Nordfeldth
a490d634db
Repeats were not delivered a conversation ID
...
Vinilox noticed that replies to repeats ended up outside of the original
notice's conversations.
2014-06-04 23:21:37 +02:00
Mikael Nordfeldth
90cc6b4d3b
Notice::getReplyTo more specific now (getInlineReplyTo)
2014-06-04 23:20:20 +02:00
Mikael Nordfeldth
629cbedee2
Dangerous non-dynamic profile fetching in Notice
...
For a Notice object with multiple results, ->getProfile() would ALWAYS
return the first profile in the list. For example our "popular notices"
stream ended up believing all notices were made by the same profile.
2014-06-03 12:22:07 +02:00
Mikael Nordfeldth
1431bbd884
No need to pre-resize avatars
2014-06-03 01:52:42 +02:00
Mikael Nordfeldth
db443e9374
File::processNew now static and always throws exception on failure
2014-06-02 02:11:23 +02:00
Mikael Nordfeldth
d6f52f5939
File::processNew can return -1 which was not true for empty()
...
Also, File->getEnclosure() now throws exception if not enough metadata.
2014-06-02 01:46:09 +02:00
Mikael Nordfeldth
49188e826c
ArrayWrapper no longer returned from multiGetClass
...
multiGetClass uses FIND_IN_SET for ordering, which is pretty MariaDB specific.
2014-06-02 00:15:17 +02:00
Mikael Nordfeldth
61116ea991
Subscription class listing retrieval fixed
...
The incorrect variable was tried to be 0 causing offset limits that
are more than 1 to be treated identically (like the raw $ids value).
2014-05-30 23:37:00 +02:00
Mikael Nordfeldth
49fa34e234
Make Profile::fromUri use UnknownUriException
2014-05-26 15:05:14 +02:00
Mikael Nordfeldth
e83b2e147a
NoProfileException collision avoidance fix
2014-05-26 14:39:03 +02:00
Mikael Nordfeldth
1207f4f06f
isLocal() for User_group
2014-05-19 14:46:54 +02:00
Mikael Nordfeldth
b0cc9292b1
Notice->repeat() function takes Profile as argument now
2014-05-18 21:03:10 +02:00
Mikael Nordfeldth
c4c4835899
Notice->repeat should include the full message
...
Any clients showing the repeat itself should have its own shortening or
otherwise formatting rules which it can apply itself.
2014-05-18 20:53:44 +02:00
Mikael Nordfeldth
2755e23707
Clear out stored files and reltaed thumbnails when a File is deleted.
2014-05-12 15:16:41 +02:00
Mikael Nordfeldth
214a10ddec
File_thumbnail fixes (run scripts/upgrade.php)
...
We're now capable of doing image rotation for thumbnails based on
EXIF orientation data. Also, thumbnails are tracked by filenames and
thus we can delete them from storage when we feel like it.
2014-05-12 14:33:41 +02:00
Mikael Nordfeldth
cd3cff451f
ConversationTree is now a plugin (not oldschool setting)
...
Conversation trees works pretty bad with the current layout, javascript
etc. So it's best if we separate it and work on it as a side-project. The
oldschool settings are currently being deprecated (or broken out like this).
I'll wait with removing User preferences for oldschool conversation tree,
since that might be reusable data. But I guess it will go in the near future.
2014-05-12 11:51:11 +02:00
Mikael Nordfeldth
1a81188355
Use an Event to present notices conversations
2014-05-12 11:03:21 +02:00
Mikael Nordfeldth
04b7194511
Notice->getUrl() for shares would throw exception in some feeds
2014-05-10 13:06:18 +02:00
Mikael Nordfeldth
a7a4eeef09
width and height are now properties in the File class
2014-05-07 09:51:37 +02:00
Mikael Nordfeldth
621533a7c2
Bad variable reference in event hook.
2014-05-06 23:40:45 +02:00
Mikael Nordfeldth
1776c90cb9
Moved oEmbed stuff out to a plugin (Oembed).
2014-05-06 23:32:13 +02:00
Mikael Nordfeldth
8b12e41351
User object didn't have getNickname() function
...
We're just jumping on to the Profile->getNickname() function.
2014-05-06 16:08:36 +02:00
Mikael Nordfeldth
848d513706
Only run EndSubscribe when it is really a sub
2014-05-06 00:22:02 +02:00
Mikael Nordfeldth
fc3125cf28
More modern coding, stuff related to subscriptions
...
Also trying to use the newly implemented AlreadyFulfilledException
2014-05-05 23:58:05 +02:00
Mikael Nordfeldth
9a5e1423f1
Conversations now have URIs that are not URLs
2014-05-01 20:17:40 +02:00
Mikael Nordfeldth
27ed6b7db0
getConversationUrl introduced for linking to conversations
2014-05-01 15:25:19 +02:00
Mikael Nordfeldth
4774a25040
Link notice posted time to local representation
...
Notice class got a 'getLocalUrl' function.
2014-05-01 14:28:53 +02:00
Mikael Nordfeldth
b77a09fdee
Notice URIs are not necessarily URLs.
...
Let's use getUrl() for URL retrieval. May throw exceptions, but
only if it's a Notice that cannot be linked like that anyway.
2014-04-30 20:44:23 +02:00
Mikael Nordfeldth
34b570352f
Fix Direct Message functionality.
2014-04-29 20:37:58 +02:00
Mikael Nordfeldth
7d191f8062
s/bestUrl/getUrl/ for notices and microapp objects
2014-04-29 19:46:58 +02:00
Mikael Nordfeldth
cd6bd07c9d
Handle File thumbnail errors better
2014-04-28 20:26:32 +02:00
Mikael Nordfeldth
5fd6053220
Code cleanup and enabling User object's etc. getUri()
2014-04-28 14:08:42 +02:00
Mikael Nordfeldth
0883f54f62
getUrl replaces deprecated bestUrl (more to come)
2014-04-28 14:04:54 +02:00
Mikael Nordfeldth
37ce1f4766
Better fallback on UnsupportedMediaException
2014-04-28 12:12:06 +02:00
Mikael Nordfeldth
e526909bd8
File width and height is now properly set for File
2014-04-22 12:09:24 +02:00
Mikael Nordfeldth
d59eb5e184
Dynamically generate thumbnails (see full text)
...
The File object now stores width and height of files that can
supply this kind of information. Formats which we can not read
natively in PHP do not currently benefit from this. However an
event hook will be introduced later.
The CreateFileImageThumbnail event is renamed to:
CreateFileImageThumbnailSource to clarify that the hooks should not
generate their own thumbnails but only the source image. Also it now
accepts File objects, not MediaFile objects.
The thumbnail generation is documented in the source code. For
developers, call 'getThumbnail' on a File object and hope for the best.
Default thumbnail sizes have increased to be more appealing.
2014-04-21 20:46:11 +02:00
Mikael Nordfeldth
7f3611c51c
use intval() instead of floor() for int return type
2014-04-21 19:32:08 +02:00