Mikael Nordfeldth
88f7bb1ed5
Some work on ActivityModeration with notice deletion
...
Let's now create an event called DeleteNotice and also make sure we
handle the onNoticeDeleteRelated properly in ActivityModeration to
avoid possible endless loops etc.
2015-10-03 02:02:37 +02:00
Mikael Nordfeldth
3a6c98ff16
NoResultException is common if reply_to was not cleared on parent deletion
2015-09-30 22:55:06 +02:00
Mikael Nordfeldth
a09cf51b99
Move Ostatus_profile->processPost function into plugin
2015-09-29 15:19:13 +02:00
Mikael Nordfeldth
21a12a2f60
Some conversationRoot lookups failed with deleted notices
2015-09-28 22:36:04 +02:00
Mikael Nordfeldth
604ed1fd9a
Prepare for ActivityModerationPlugin
2015-09-10 15:55:37 +02:00
Mikael Nordfeldth
3c86542a40
Move notice location data to Notice_location
...
Will probably take a _long_ time to do scripts/upgrade.php but don't
worry, it can be aborted and resumed.
2015-09-04 22:25:11 +02:00
Mikael Nordfeldth
5b09a150bc
Increased debugging and fixing conversation stitching for saveActivity
2015-07-18 19:19:16 +02:00
Mikael Nordfeldth
cd23c78800
Less redundant code.
2015-07-15 19:21:21 +02:00
Mikael Nordfeldth
76396041e2
$notices and $notice is not the same, silly!
2015-07-10 23:30:59 +02:00
Mikael Nordfeldth
9fb3ea3ce6
static function definitions and minor simplifying
2015-07-09 22:16:14 +02:00
Mikael Nordfeldth
3c2a720b21
Found a remnant staticGet call
2015-06-06 17:39:25 +02:00
Mikael Nordfeldth
ebdd792b6f
getByPK (primary key) lookup for Managed_DataObject instances
2015-06-04 22:17:40 +02:00
Mikael Nordfeldth
fe6498e7c8
Send objects instead of integers to File_to_post::processNew
2015-06-04 17:36:11 +02:00
Mikael Nordfeldth
fd121f371a
case insensitive indexing for content and nick/fullnames (search)
...
This broke when changing the database to utf8mb4 instead of utf8,
since utf8_general_ci wasn't accepted and the engine fell back to
utf8mb4_bin. Now we're back in case insensitive search business!
2015-06-03 22:43:51 +02:00
Mikael Nordfeldth
7e388e697d
fallback to local URL if reply->getUrl() is missing
...
Remote Activity notices generally don't have a proper HTTP URL associated.
2015-06-02 13:55:13 +02:00
Mikael Nordfeldth
0726dcd06c
Start using NoParentNoticeException more widely
2015-06-02 13:50:52 +02:00
Mikael Nordfeldth
c84b21008e
Notice->getParent code reuse
...
...not entirely sure whether to allow getParent calls on Notice
objects which have not been created, but we'll leave that in for now...
2015-06-02 13:46:23 +02:00
Mikael Nordfeldth
2096c18e57
use array_key_exists instead of empty to test array key
2015-06-02 13:14:57 +02:00
Mikael Nordfeldth
5081477e95
enclosures in Atom were not included
2015-04-05 20:24:17 +02:00
Mikael Nordfeldth
2821be2bce
Notice properties set in bad order on activityobject saving
2015-03-12 22:17:08 +01:00
Mikael Nordfeldth
5a235ffbf9
Event fixes for activityhandlerplugin
2015-03-12 21:53:44 +01:00
Mikael Nordfeldth
20f8dd6565
Repeats shown in threaded noticelist now handled by plugin
2015-03-12 19:49:20 +01:00
Mikael Nordfeldth
6f0f8cd6c7
Initial work on making the Share verb handled in plugin
2015-03-12 12:27:49 +01:00
Mikael Nordfeldth
aa27c45230
Notice class got exception throwing getById
...
Less code, more happy.
2015-03-09 17:33:20 +01:00
Mikael Nordfeldth
ce91f1c0e6
Hide posts from users with private_stream in scoping streams
...
For example the public timeline would show notices from a user with
private_stream configured. (previously it would only hide _new_ notices
by this user as they would be the only ones with notice scoping set).
2015-02-24 22:59:58 +01:00
Mikael Nordfeldth
060dbe1b56
Removing whitespace and creating an early-return in inScope
2015-02-24 22:44:43 +01:00
Mikael Nordfeldth
2f86cd8602
utf8mb4 conversion on database with index adjusts
2015-02-12 18:18:55 +01:00
Chimo
56d431320d
Replace one instance of LOG_ERR with LOG_DEBUG
2015-02-09 18:08:46 -05:00
Mikael Nordfeldth
a5d27d9ce7
/main/all will give a network-wide public stream
...
Qvitter had implemented this as a "PublicAndExternal" stream, but
I figured we might as well put it into the GNU social core.
2015-01-28 20:25:39 +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
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
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
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
7ea067a0dc
Notice_source checks in better code style
2014-11-05 19:44:22 +01: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
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
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
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
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
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
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
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
db443e9374
File::processNew now static and always throws exception on failure
2014-06-02 02:11:23 +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
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
04b7194511
Notice->getUrl() for shares would throw exception in some feeds
2014-05-10 13:06:18 +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
7d191f8062
s/bestUrl/getUrl/ for notices and microapp objects
2014-04-29 19:46:58 +02:00
Mikael Nordfeldth
0883f54f62
getUrl replaces deprecated bestUrl (more to come)
2014-04-28 14:04:54 +02:00
Mikael Nordfeldth
72707ddc26
deprecate Notice::bestUrl() in favor of getUrl()
2014-04-20 15:28:31 +02:00
Mikael Nordfeldth
132be99506
Improve ShownoticeAction remote redirect code
2014-04-19 22:13:48 +02:00
Mikael Nordfeldth
2c1dcc7f14
Fixes to URI/URL handling for notices
2014-04-19 22:04:52 +02:00
Mikael Nordfeldth
85b022246f
Handle missing URIs and URLs better
2014-04-18 23:36:01 +02:00
Mikael Nordfeldth
3e2136f222
Avoid double colon on Notice URI generation
2014-04-18 23:17:34 +02:00
Mikael Nordfeldth
e0e69ddd7c
Throw exception when we can't get the url for a notice
2014-04-18 23:17:15 +02:00
Mikael Nordfeldth
28dc361a15
Set new notice uri to something that's not a URL
2014-04-18 22:42:01 +02:00
Mikael Nordfeldth
5842c59ba7
Get group attentions back into the "all" feed
2014-03-07 02:49:42 +01:00
Mikael Nordfeldth
5e4a275220
Clear Attentions when notice or profile is removed
2014-03-06 14:43:36 +01:00
Mikael Nordfeldth
2272cc244d
Removed Inbox from core (unused since 4b2a66ed29
)
...
Added the following FIXME:
How should a Twitter user get their Inbox filled with foreign tweets?
Every imported Twitter user has a profile in the Profile table, so we
could setup a Subscription entry for each of those, meaning they get
collected in the InboxNoticeStream... But this would mean a lot of
unnecessary entries and listings that generally just point to the
locked down Twitter service.
Let's figure out a good relation so we can connect any profile to any
imported foreign notice, so it shows up in the "all" feed.
2014-03-06 04:46:29 +01:00
Mikael Nordfeldth
da87e742f8
Treat author just as anyone else (Notice distrib)
2014-03-06 01:55:23 +01:00
Mikael Nordfeldth
00db57949f
Always queue inbox distribution
2014-03-06 01:50:54 +01:00
Mikael Nordfeldth
f83b2cf324
Handle removed profile more gracefully in noticelist
...
Just hide it from the visitor, but log a warning (and error, since
the exception itself logs that).
2014-03-05 01:27:27 +01:00
Mikael Nordfeldth
5c505d8539
Conversation ID now gets set from initial notice.
...
This will work without much extra effort because there will always be
more notices (higher value) than conversations (so no collisions).
But please run upgrade.php to avoid having an autoincrement id on
conversation table.
Installations using code after 2014-03-01 will have identical
conversation IDs to the initial (conversation root) notice IDs. This
will not affect older installations, which will have very different
values.
2014-03-01 17:12:40 +01:00
Mikael Nordfeldth
edee39790e
Use exceptions for Notice::getByUri
...
..jeez, a long time since I commited. Three in a row to get this right. Sorry :)
2014-01-12 22:46:50 +01:00
Mikael Nordfeldth
08dba7e21d
Notice::getByUri is of course static
2014-01-12 22:41:30 +01:00
Mikael Nordfeldth
15c95dc415
getByUri added to Notice for future use
2014-01-12 22:37:41 +01:00
Mikael Nordfeldth
729c6eef36
Inbox class a bit more consistent in argument order and type
2013-11-09 01:18:44 +01:00
Mikael Nordfeldth
bd86519d50
Minor labeling things for StatusNet to GNU social migration
2013-11-01 14:04:40 +01:00
Mikael Nordfeldth
9b6633698c
Group discovery from text functions polished
...
Also removed the entirely unused saveGroups function.
Now avoiding multiGet and using listFind in Profile->getGroups()
so we don't have to deal with ArrayWrapper.
2013-10-29 13:40:14 +01:00
Mikael Nordfeldth
2dfa0bfcee
function delete in dataobjects now don't break strict syntax
2013-10-29 10:20:57 +01:00
Mikael Nordfeldth
23a6b4595f
Reworked the ActivityContext->attention structure
...
Removing Evan's obscure attentionType solution and directly using the attention array
2013-10-28 22:21:14 +01:00
Mikael Nordfeldth
f99c4b7f07
More OOP-ish tests using instanceof
2013-10-28 22:18:00 +01:00
Mikael Nordfeldth
a5d8707658
Use getParent instead of manual reply_to lookup
2013-10-28 17:28:10 +01:00
Mikael Nordfeldth
340740266c
Notice class local cache fixes
2013-10-23 12:33:37 +02:00
Mikael Nordfeldth
e274f69634
Notice->getParent function fixes
...
NoResultException was the wrong choice in this case, because it was
not a DB_DataObject instance that performed the search, but a static
call to the Notice class.
2013-10-22 15:37:19 +02:00