Commit Graph

4464 Commits

Author SHA1 Message Date
Stephen Paul Weber fa1e4620cf Add pingback frontend 2015-11-12 19:06:16 +00:00
Stephen Paul Weber aa4d880148 Search in sub-items for links to the target as well 2015-11-12 19:06:16 +00:00
Stephen Paul Weber 96e0819f00 Catch exception that this generates when there is no result 2015-11-12 19:06:16 +00:00
Stephen Paul Weber c5bdf6924d Fix duplicate detection 2015-11-12 19:06:16 +00:00
Stephen Paul Weber 64ac344efa Update on duplicate linkback
This especially allows mentioning mulitple users, etc.
2015-11-12 19:06:16 +00:00
Stephen Paul Weber b9971e8a80 Linkback to user should work 2015-11-12 19:06:15 +00:00
Stephen Paul Weber 1e3cf08d82 Ignore non-local notices as targets 2015-11-12 19:06:15 +00:00
Stephen Paul Weber dbfb698859 Webmention frontend 2015-11-12 19:06:15 +00:00
Stephen Paul Weber 96fb18da3f Initial helpers for verification and microformats
This will form the backend of all incoming linkbacks.
We verify the linkback is real and then try to form a rich notice
out of it.
2015-11-12 19:06:15 +00:00
Mikael Nordfeldth acd4980ab4 Fix federation issue with groups (bad list order) 2015-11-08 23:31:23 +01:00
Mikael Nordfeldth 844670f88d Ooops, copypasted something into the wrong place. 2015-11-08 23:24:20 +01:00
Mikael Nordfeldth 65184782aa OStatus usage of static Validate::* calls fixed 2015-11-08 10:33:41 +01:00
Mikael Nordfeldth e40014b4de separate classes into files in DirectMessage plugin 2015-11-06 13:35:45 +01:00
Mikael Nordfeldth c83deecba2 Merge branch 'nightly' of git.gnu.io:gnu/gnu-social into nightly 2015-11-06 13:33:24 +01:00
abjectio 507f9a28c0 Merge branch 'nightly' of git.gnu.io:gnu/gnu-social into nightly 2015-11-05 17:34:34 +01:00
Mikael Nordfeldth 7ccd36849e Merge branch 'master' of git.gnu.io:gnu/gnu-social into nightly
Conflicts:
	plugins/OStatus/OStatusPlugin.php

master vs. nightly thing
2015-11-05 16:16:02 +01:00
mmn f345f1d605 Merge branch 'renew-pshb' into 'master'
Actually use the renew code

We have the code to check once a day and renew, but currently it's
just in a script directory.  This change adds an event listener
hook to check and renew subscriptions daily.

Closes #83

See merge request !38
2015-11-05 15:13:16 +00:00
mmn deb5275c7a Merge branch 'object-types-are-absolute' into 'master'
Stop incorrecly changing object_type to relative URI

All other data is using absolute URI for object_type.

See merge request !40
2015-11-05 15:12:41 +00:00
mmn 959f971a65 Merge branch 'fix-webfinger-link-header' into 'master'
Add all link headers, not just the last one

Given the way Link headers work, it does not make any sense to
just replace all other ones.  Especially when we ourselves are adding
in a loop.

See merge request !47
2015-11-05 15:12:10 +00:00
mmn 9f83e60f25 Merge branch 'pings-interop' into 'master'
Clean up Linkback plugin and add Webmention support

Closes #82

Fixes Pingback, adds Webmention, makes linkbacks opt-out-able for users (at request of quitter.se admin)

See merge request !36
2015-11-05 15:11:29 +00:00
Mikael Nordfeldth 0e32729e59 Merge branch 'nightly' of git.gnu.io:gnu/gnu-social into nightly 2015-11-05 16:07:42 +01:00
Mikael Nordfeldth c950f18546 Merge branch 'master' into nightly
Some merge requests that were aimed at master
2015-11-05 16:07:05 +01:00
mmn 45b24286e5 Merge branch 'status-204' into 'master'
Accept 204 for PuSH subscription

Some hubs (notably, pushpress, used by wordpress.com) return 204 to mean success.

This used to be allowed by the spec, so no harm in accepting it.

See merge request !48
2015-11-05 15:03:42 +00:00
mmn 5c768d7ef7 Merge branch 'twitter-verb' into 'nightly'
TwitterBridge: Add $notice->verb on import

Since /plugins/ActivityModeration::onStartNotieSave expects it to be there when calling ActivityUtils::compareVerbs. Otherwise, the following exception is unhandled:

2015-10-26 15:33:03 LOG_ERR: [sn.chromic.org:queuedaemon.php:25931] Unhandled exception: No URI to resolve in ActivityUtils::resolveUri  
 0: /lib/activityutils.php(353): ActivityUtils::resolveUri(NULL)  
 1: /lib/activityutils.php(364): ActivityUtils::compareTypes(NULL, Array)  
 2: /plugins/ActivityModeration/ActivityModerationPlugin.php(113): ActivityUtils::compareVerbs(NULL, Array)  
 3: [internal function]: ActivityModerationPlugin->onStartNoticeSave(Object(Notice))  
 4: /lib/event.php(105): call_user_func_array(Array, Array)  
 5: /plugins/TwitterBridge/lib/twitterimport.php(173): Event::handle('StartNoticeSave', Array)  
 6: /plugins/TwitterBridge/lib/twitterimport.php(72): TwitterImport->saveStatus(Object(stdClass))  
 7: /plugins/TwitterBridge/lib/tweetinqueuehandler.php(52): TwitterImport->importStatus(Object(stdClass))  
 8: /lib/dbqueuemanager.php(94): TweetInQueueHandler->handle(Array)  
 9: /lib/iomaster.php(287): DBQueueManager->poll()  
 10: /lib/iomaster.php(161): IoMaster->poll()  
 11: /scripts/queuedaemon.php(111): IoMaster->service()  
 12: /lib/spawningdaemon.php(189): QueueDaemon->runThread()  
 13: /lib/spawningdaemon.php(118): SpawningDaemon->initAndRunChild(2)  
 14: /lib/daemon.php(168): SpawningDaemon->run()  
 15: /scripts/queuedaemon.php(181): Daemon->runOnce()  
 16: {main}

See merge request !50
2015-11-05 15:01:07 +00:00
mmn 4b7c904fe0 Merge branch 'correct-author-for-repeat' into 'master'
Markup correct author for a repeat

The original author is not the author of this entry, but of the original entry.

See merge request !51
2015-11-05 15:00:35 +00:00
Stephen Paul Weber a9b1b60a97 Refactor on File::processNew
The code was so involved there was even a comment asking for a refactor.

Now, File_redirection::where always returns a nice File_redirection
object instead of an array or string or nothing.  The object is
either one which already existed or else a new, unsaved object.

Instead of duplicating "does it exist" checks everywhere, do it in
File_redirection::where.  You either get what exists or something to save.

An unsaved File_redirection may be paired with an unsaved File.
You will want to save the File first (using ->saveFile()) and put the
id in File_redirection#file_id before saving.
2015-11-02 05:15:08 +00:00
Stephen Paul Weber a74572b469 Use mb_strlen 2015-10-28 01:46:08 +00:00
Stephen Paul Weber 6ac8b845bf Improvements inspired by the OStatus code 2015-10-28 01:45:51 +00:00
Stephen Paul Weber fe4c8a771b Replace text with nickname if shorter 2015-10-28 01:24:58 +00:00
Stephen Paul Weber 0aa759fab7 Allow mentioning bare domains with OStatus 2015-10-28 01:24:42 +00:00
Stephen Paul Weber 2edf535ecd Add length argument to plugin 2015-10-28 01:24:29 +00:00
Stephen Paul Weber 85d5cfede5 Link to add to Firefox as feedreader 2015-10-28 01:10:28 +00:00
Stephen Paul Weber e58c529c53 If we are given a direct URL to a feed, use that 2015-10-28 00:54:20 +00:00
Stephen Paul Weber fed0895d98 Move the functionality to a plugin
Use an associated model to prevent race conditions on creating the
profile object.
2015-10-28 00:11:54 +00:00
Mikael Nordfeldth 1b81131c51 Shared notices didn't save the URL 2015-10-28 00:13:17 +01:00
Stephen Paul Weber e1de6e0aa9 Support more author types on RSS
Specifically, any ActivityStreams or ATOM namespaces being used on
an rss channel.
2015-10-27 18:43:57 +00:00
Mikael Nordfeldth ebbb9a8990 Bad HTML in translation. 2015-10-27 19:05:07 +01:00
Stephen Paul Weber 54e87dd2c3 Morkup correct author for a repeat
The original author is not the author of this entry, but of the original entry.
2015-10-27 17:19:03 +00:00
Chimo 3ae81f095c TwitterBridge: Add $notice->verb on import
Since /plugins/ActivityModeration::onStartNotieSave expects it to be there when calling ActivityUtils::compareVerbs. Otherwise, the following exception is unhandled:

2015-10-26 15:33:03 LOG_ERR: [sn.chromic.org:queuedaemon.php:25931] Unhandled exception: No URI to resolve in ActivityUtils::resolveUri
 #0 /lib/activityutils.php(353): ActivityUtils::resolveUri(NULL)
 #1 /lib/activityutils.php(364): ActivityUtils::compareTypes(NULL, Array)
 #2 /plugins/ActivityModeration/ActivityModerationPlugin.php(113): ActivityUtils::compareVerbs(NULL, Array)
 #3 [internal function]: ActivityModerationPlugin->onStartNoticeSave(Object(Notice))
 #4 /lib/event.php(105): call_user_func_array(Array, Array)
 #5 /plugins/TwitterBridge/lib/twitterimport.php(173): Event::handle('StartNoticeSave', Array)
 #6 /plugins/TwitterBridge/lib/twitterimport.php(72): TwitterImport->saveStatus(Object(stdClass))
 #7 /plugins/TwitterBridge/lib/tweetinqueuehandler.php(52): TwitterImport->importStatus(Object(stdClass))
 #8 /lib/dbqueuemanager.php(94): TweetInQueueHandler->handle(Array)
 #9 /lib/iomaster.php(287): DBQueueManager->poll()
 #10 /lib/iomaster.php(161): IoMaster->poll()
 #11 /scripts/queuedaemon.php(111): IoMaster->service()
 #12 /lib/spawningdaemon.php(189): QueueDaemon->runThread()
 #13 /lib/spawningdaemon.php(118): SpawningDaemon->initAndRunChild(2)
 #14 /lib/daemon.php(168): SpawningDaemon->run()
 #15 /scripts/queuedaemon.php(181): Daemon->runOnce()
 #16 {main}
2015-10-27 10:12:33 -04:00
Stephen Paul Weber 4c2bc465a0 Accept 204 for PuSH subscription
Some hubs (notably, pushpress, used by wordpress.com) return 204 to mean success.

This used to be allowed by the spec, so no harm in accepting it.
2015-10-27 03:16:39 +00:00
Stephen Paul Weber fae7bc0bc0 Add all link headers, not just the last one
Given the way Link headers work, it does not make any sense to
just replace all other ones.  Especially when we ourselves are adding
in a loop.
2015-10-25 18:42:37 +00:00
Stephen Paul Weber dc36621dc2 Linkback to mentioned profiles 2015-10-25 17:22:15 +00:00
Stephen Paul Weber ddfb56d920 TwitterBridge also check for dupe by uri
In case a twitter item came in from some other source (such as linkback).
2015-10-23 18:03:44 +00:00
Stephen Paul Weber 983fd75ec9 Include rel-syndication link for tweets
As per: <http://microformats.org/wiki/rel-syndication>
This allows some services to find a post in Twitter.
2015-10-23 17:56:02 +00:00
Stephen Paul Weber 2030ddfc79 Reduce duplication by handling both cases in find 2015-10-23 16:26:35 +00:00
Stephen Paul Weber 439b466979 Use HTTPS for links to Twitter profiles as well 2015-10-23 16:24:04 +00:00
Stephen Paul Weber d1f1063900 Twitter URIs have changed
The #! was deprecated ages ago, and Twitter forces HTTPS these days.
2015-10-23 16:19:54 +00:00
Stephen Paul Weber 123bb445db Always send Twitter replies to Twitter
If is_twitter_notice($notice->reply_to) then send it to Twitter, even
if twitter import is off.  It's a reply to a Twitter notice, it should
go there!
2015-10-23 15:37:11 +00:00
Stephen Paul Weber 8649591626 Stop incorrecly changing object_type to relative URI
All other data is using absolute URI for object_type.
2015-10-22 17:14:59 +00:00
Stephen Paul Weber 3e1a6a65e6 Event plugin uses saveObjectFromActivity for RSVP
The Event plugin is still using a deprecated hook for saving extra data,
which makes it harder to hook into from other plugins.  This commit
fixes it to use the new hook for at least RSVPs.

NOTE: this plugin incorrectly sets the object_type of RSVP notices to
their verb.  This was existing behaviour which I have preserved for
backwards-compatability.
2015-10-22 17:10:50 +00:00
Stephen Paul Weber 4b31bc3fd2 Enqueue renewals
Better for request times, etc
2015-10-21 01:50:03 +00:00
Stephen Paul Weber df21c3c95d Renew 1 day *before* the end, not 1 day *after* 2015-10-21 01:49:26 +00:00
Stephen Paul Weber df46f123dd Actually use the renew code
We have the code to check once a day and renew, but currently it's
just in a script directory.  This change adds an event listener
hook to check and renew subscriptions daily.
2015-10-21 01:10:48 +00:00
Stephen Paul Weber 677f0ac479 Allow users to opt out of sending linkbacks 2015-10-18 21:28:55 +00:00
abjectio 303fa91720 Removed inboxmessagelist.php - seems to be not needed. Ref. Issue #77 2015-10-18 17:34:36 +02:00
Stephen Paul Weber c7e08195e4 Fix Pingback
This code was using the HTTPRequest helpers wrong.  This commit sets the body directly instead of jamming the XML in as a POST param.
2015-10-17 13:39:46 +00:00
Stephen Paul Weber d9d74ca96c Send URL we publish
Webmention and Pingback both need the exact URL we are going to claim to link to to be present in our HTML source, so send them our actual original link.

Webmention clients are supposed to resolve this link.  Pingback clients may still fail on shortened links.
2015-10-17 13:38:13 +00:00
Stephen Paul Weber 3b1792c8b5 Add webmention support 2015-10-15 00:29:53 +00:00
Stephen Paul Weber e4892d21b1 Note that we should handle relative URIs 2015-10-14 16:13:25 -05:00
Stephen Paul Weber 8edc5148d9 Normalize detection helpers
Will make it easier to see what's happening when we add a third one.
2015-10-14 15:54:47 -05:00
Stephen Paul Weber 63fd35dffa Notify replies and repeats
This is especially useful for partial federation with remote accounts
that are not fully OStatus-enabled but support a pingback protocol.
Such accounts will still be notified of replies and repeats of their
content even without OStatus support, thus adding to the federated
universe.
2015-10-14 15:47:00 -05:00
Stephen Paul Weber b43294ec6f Use the getter, not a direct access 2015-10-14 15:33:48 -05:00
Stephen Paul Weber a4a37d6fc9 More robust pingback link detection 2015-10-14 15:28:38 -05:00
Mikael Nordfeldth 2c8536dbf0 Link source==share notices 2015-10-14 01:30:29 +02:00
Mikael Nordfeldth 401b774c2f Only set ->actor in a case where it has not yet been set
Otherwise it could overwrite it with the wrong actor (the "second round"
for share activities)
2015-10-14 01:20:50 +02:00
Mikael Nordfeldth 79c40bc73b Type-aware comparison is necessary for Notice is_local/scope 2015-10-14 00:42:15 +02:00
Mikael Nordfeldth b6aeff89c4 Call Notice::saveActivity instead of Ostatus_profile->processActivity 2015-10-14 00:10:54 +02:00
Mikael Nordfeldth 005c108118 Shared activities were missing the actor 2015-10-13 23:40:35 +02:00
Mikael Nordfeldth 65adefe170 Wrong variable names in SharePlugin 2015-10-13 23:18:13 +02:00
Mikael Nordfeldth e379c49d49 Removing excess debug logging 2015-10-13 22:55:27 +02:00
Mikael Nordfeldth c8a907c828 Bookmark:addNew did not add a proper rel=related 2015-10-13 12:31:35 +02:00
Mikael Nordfeldth 3f4d4cb7a0 Better error handling in Bookmark 2015-10-12 18:28:32 +02:00
Mikael Nordfeldth 67e7bc55ea Bookmarks are almost migrated
Now they are just not being saved in the bookmark table.
2015-10-12 17:48:23 +02:00
Mikael Nordfeldth 297d68f36c Change Bookmark plugin version details 2015-10-12 09:47:30 +02:00
Mikael Nordfeldth 0e588bdeca Woops, put the bookmark get* functions in the wrong file. 2015-10-11 22:08:28 +02:00
Mikael Nordfeldth 1dac0e709a First step of making Bookmark saveActivity-compatible 2015-10-10 23:47:43 +02:00
Mikael Nordfeldth b209276e72 Stricter typing for Bookmark plugin 2015-10-10 23:15:51 +02:00
Mikael Nordfeldth 5726459629 unmaintained plugins that accidentally got translations 2015-10-10 22:40:05 +02:00
mmn 0926316a76 Merge branch 'master' into 'nightly'
convert activity stream RFC3339 dates to mysql datetime format when saving remote event dates to db

See merge request !34
2015-10-10 20:38:01 +00:00
mmn 32f77dbf05 Merge branch 'translation-snapshot-october-2015' into 'nightly'
Snapshot of the Transifex translation project - October 2015

It's been 7 months since the last localization update, and the files in the repository are out of sync with the current state of the project. Our Transifex team has since grown to 63 translators, many of them are active members of the GNU social community. I don't know how we will resolve this situation, but it is clear that we have to act. If you plan to redesign the plugin system in the future to support external repository for localizations, that would work as well. But now, please let us do an update. It would be a serious disgrace to the community to throw all of their hard work away.

See merge request !32
2015-10-10 20:36:04 +00:00
Mikael Nordfeldth fe9457daea Syntax and minor fixes
Deleted_notice and Bookmark getByPK assocative array for example.
2015-10-10 22:23:24 +02:00
Mikael Nordfeldth cae43344ec Start reworking Bookmark plugin for more modern code 2015-10-10 21:56:02 +02:00
Mikael Nordfeldth 18f07a48e8 Using some Managed_DataObject::getByPK calls for consistency 2015-10-10 21:40:02 +02:00
Mikael Nordfeldth 37f2da03e1 newUri might as well be put in Managed_DataObject 2015-10-10 21:31:26 +02:00
Mikael Nordfeldth 45bc192625 If that $options key wasn't set, this won't change anything anyway 2015-10-10 21:22:07 +02:00
Mikael Nordfeldth 6376b78a80 I think I have made the delete verb generate proper AS
ActivityStreams had a different/better definition than me
in how to define the Delete verb data:
http://wiki.activitystrea.ms/w/page/23541872/Delete
2015-10-10 11:08:17 +02:00
Hannes Mannerheim a9f879c2ba better explanation 2015-10-10 00:20:32 +02:00
Hannes Mannerheim b24191f9f9 convert activity stream RFC3339 dates to mysql datetime format when saving remote event dates to db 2015-10-10 00:11:54 +02:00
mmn 3154302b53 Merge branch 'master' into 'nightly'
make events federate

See merge request !33
2015-10-09 14:43:45 +00:00
Hannes Mannerheim 61ed36e446 make event urls federate 2015-10-09 16:22:47 +02:00
Hannes Mannerheim 55655ba319 make event location federate 2015-10-09 16:16:13 +02:00
Hannes Mannerheim 827dffb94c make event dates federate 2015-10-09 16:00:33 +02:00
Hannes Mannerheim 5a2d760177 update from upstream 2015-10-09 14:40:43 +02:00
Hannes Mannerheim 499d4aadbc make events federate 2015-10-09 13:10:48 +02:00
Mikael Nordfeldth 2d81df4760 Deleted_notice variable specification fixed 2015-10-08 13:20:17 +02:00
Mikael Nordfeldth 180958185f Found newer Diaspora protocol specifications
http://www.rubydoc.info/github/Raven24/diaspora-federation/master/DiasporaFederation/Salmon/EncryptedSlap
2015-10-05 12:49:54 +02:00
Mikael Nordfeldth ee6096cca8 FIXME: Diaspora has its own salmon slap semantics 2015-10-05 11:32:10 +02:00
Mikael Nordfeldth 3902dc963a Diaspora encloses magic envelope in <atom:entry>??!!?! 2015-10-05 11:22:23 +02:00
digital dreamer d7fd6bac72 Snapshot of the Transifex translation project - October 2015 2015-10-04 18:23:01 +02:00
Mikael Nordfeldth af1b0915f4 Magic signature discovery and envelope changes 2015-10-04 17:26:35 +02:00