Commit graph

816 commits

Author SHA1 Message Date
rinpatch 83589ca6a5 Merge branch 'develop' into feature/database-compaction 2019-04-18 12:56:38 +03:00
rinpatch e31a22043b Fix media timeline depending on embeded object and add some guards 2019-04-18 08:31:08 +03:00
rinpatch 2abc09570f Use the preloaded object in tag queries 2019-04-18 01:37:04 +03:00
William Pitcock 36f78c6dcd activitypub: fix filtering of boosts from blocked users 2019-04-17 22:27:59 +00:00
William Pitcock 2140e164d7 activitypub: properly filter out transitive activities concerning blocked users 2019-04-17 20:05:09 +00:00
rinpatch 8e4d950f31 Remove updating reply count for embeded objects 2019-04-17 15:54:09 +03:00
rinpatch 627e5a0a49 Merge branch 'develop' into feature/database-compaction 2019-04-17 12:22:32 +03:00
rinpatch 5d73dca064 Remove inReplyToStatusId 2019-04-15 11:50:36 +03:00
lambda 184ae60b21 Merge branch 'bugfix/pleroma-email-naming' into 'develop'
Make the filename and module name of Pleroma.Emails.* orthogonal

See merge request pleroma/pleroma!1029
2019-04-12 10:41:09 +00:00
lambda 0a09692c7d Merge branch 'features/mastoapi/2.6.0-min_id-pagination' into 'develop'
Features: mastoapi-2.6.0 `min_id` pagination

Closes #351

See merge request pleroma/pleroma!976
2019-04-12 09:34:12 +00:00
Egor Kislitsyn db4badc6aa move user disable into deactivation 2019-04-11 17:22:42 +07:00
Egor Kislitsyn 0f2f7d2cec Merge remote-tracking branch 'pleroma/develop' into feature/disable-account 2019-04-11 15:51:52 +07:00
lain 280172f6f6 Conversations: Create or bump on inserting a dm. 2019-04-10 16:33:45 +02:00
Haelwenn (lanodan) Monnier cae0231731
s/Pleroma.AdminEmail/Pleroma.Emails.AdminEmail/ 2019-04-10 06:33:20 +02:00
Haelwenn (lanodan) Monnier 1791ee8ec4
s/Pleroma.Mailer/Pleroma.Emails.Mailer/ 2019-04-10 06:33:19 +02:00
rinpatch fe5145eeaa Move putting fake attribute to lib/pleroma/web/activity_pub/utils.ex 2019-04-01 12:25:53 +03:00
rinpatch d866b59eea oof 2019-04-01 11:58:08 +03:00
rinpatch 45ba10bf47 Fix the issue with HTML scrubber 2019-04-01 11:55:59 +03:00
rinpatch cd387f8693 Add a fake option to lazy_put_actvity_defaults 2019-03-30 13:57:54 +03:00
rinpatch 1bb4d5d65b Implement fake status submit 2019-03-29 21:59:04 +03:00
Haelwenn (lanodan) Monnier 6f15224053
activity_pub.ex: Move limit/max_id restrictions to Pagination helpers 2019-03-28 17:18:59 +01:00
rinpatch ce6d64bbd8 Fix missing announces in MastoAPI home timeline
Closes #762
2019-03-27 12:28:53 +03:00
eugenijm 568e348588 Increment replies_count on replies (MastoAPI) 2019-03-26 15:27:04 +03:00
William Pitcock ce47eb8b29 activitypub: when fetching objects, use the preloaded object from the synthesized activity 2019-03-23 03:05:10 +00:00
William Pitcock 73efe95368 activitypub: allow skipping preload in some cases (like certain tests where the preload is obnoxious) 2019-03-23 01:09:12 +00:00
William Pitcock ba7299fc87 activitypub: add missing with_preloaded_object() 2019-03-23 00:53:35 +00:00
William Pitcock e4307cadc8 activitypub: splice in the child object if we have one 2019-03-23 00:40:08 +00:00
William Pitcock 9aea7cc224 activitypub: preload child objects when fetching timelines 2019-03-23 00:10:17 +00:00
kaniini 6d6f48d079 Merge branch 'feature/federated-flags' into 'develop'
Federated reports

See merge request pleroma/pleroma!935
2019-03-16 19:27:56 +00:00
Karen Konou d8244c2a1b remove unused function 2019-03-15 15:03:03 +01:00
Karen Konou 15b21d1983 refactor filtering mechanism 2019-03-15 14:18:53 +01:00
Karen Konou c8f31e0bc2 Implement mastodon's reblog hiding feature 2019-03-15 14:18:21 +01:00
William Pitcock 423fd07928 activitypub: inject to/cc fields on non-forwarded reports since Flag activities are now Forwardable 2019-03-14 19:52:08 +00:00
William Pitcock 5c7b774f09 reports: unify sending e-mail for both remote and local reports 2019-03-14 19:44:08 +00:00
William Pitcock 64b0120d67 activitypub: add support for forwarding reports 2019-03-14 19:36:17 +00:00
rinpatch 34fc0dca2e Merge branch 'hotfix/delete-activities' into 'develop'
Fix delete activities not federating

See merge request pleroma/pleroma!933
2019-03-14 17:49:00 +00:00
rinpatch e630e5e135 Fix delete activities not federating 2019-03-14 20:43:14 +03:00
Haelwenn (lanodan) Monnier 23960309a0
[Credo] Change quoted string with 3+ quotes to sigils 2019-03-13 04:26:56 +01:00
Haelwenn (lanodan) Monnier c42d34b2ec
[Credo] fix Credo.Check.Readability.MaxLineLength 2019-03-13 04:26:56 +01:00
Haelwenn (lanodan) Monnier a3a9cec483
[Credo] fix Credo.Check.Readability.AliasOrder 2019-03-13 04:26:54 +01:00
eugenijm 6038c8a753 Broadcast deleted activity id on deletion to conform to MastoAPI streamig spec 2019-03-11 09:02:03 +03:00
Karen Konou c2faae70df Adjust delete activity audience to match the deleted object 2019-03-07 12:26:03 +01:00
Karen Konou 6a69ece437 Revert existing object check 2019-03-07 11:53:15 +01:00
Karen Konou 28d5b40d0a Add handling of objects not in database 2019-03-05 23:15:22 +01:00
Egor Kislitsyn eb84de0143 allow users to disable their own account 2019-03-04 19:55:11 +07:00
Karen Konou 1445dc25d4 fix format 2019-03-04 11:18:45 +01:00
Karen Konou aab86698a5 Expand "to" of delete activities 2019-03-04 11:18:45 +01:00
kaniini c93479c6f5 Merge branch 'count-only-public-statuses' into 'develop'
Increment user note count only on public activities #703

See merge request pleroma/pleroma!884
2019-03-03 15:49:19 +00:00
eugenijm d5418e9ff7 Remove follow_request_count as it's not needed for FE anymore.
MastoFE uses `GET /api/v1/follow_requests` and PleromaFE uses
`GET /api/pleroma/friend_requests` which they query on the initial page
load.
2019-03-03 18:42:27 +03:00
lambda 9b63fda9c7 Merge branch 'fix/dont-show-dms-in-mentions-timeline' into 'develop'
[#675] Do not show DMs in mentions timeline

See merge request pleroma/pleroma!877
2019-03-03 11:13:59 +00:00
eugenijm c46950d3b1 Increment user note count only on public activities 2019-03-03 14:08:43 +03:00
William Pitcock 689b0730f8 activitypub: fix date header format
HTTP date header specification says that days must always be two-digit.
Accordingly, change the format string used to ensure days are always
represented as two-digit (e.g. 01).
2019-03-01 12:22:45 +00:00
rinpatch 1341ee650e [#675] Do not show DMs in mentions timeline 2019-03-01 09:37:29 +03:00
lain c4235f96bd Add with_muted param. 2019-02-27 16:37:42 +01:00
lain 9e0686efa6 Move visibility into own module. 2019-02-22 13:29:52 +01:00
lain 62296f5a25 Fix private post card handling. 2019-02-22 12:02:51 +01:00
William Pitcock f8a72f2997 activitypub: sign http date header 2019-02-21 00:23:17 +00:00
Egor bff9eb5ef7 Reports 2019-02-20 16:51:25 +00:00
Ekaterina Vaartis 5a46d37af9 Update the mute implementation to the current codebase
Make it part of the info thing (and do a migration to ensure it's there)
2019-02-19 23:09:16 +03:00
Ekaterina Vaartis f41f017bbc Implement muting, add it to the mastodon API 2019-02-19 21:49:55 +03:00
lambda f25a3f4f78 Merge branch 'fix/check-follower-collection-in-is_private' into 'develop'
properly check for follower address in is_private?

See merge request pleroma/pleroma!841
2019-02-19 14:08:19 +00:00
rinpatch 96dcacade1 properly check for follower address in is_private? 2019-02-19 13:23:13 +03:00
kaniini 833161b5d2 Merge branch 'feature/jobs' into 'develop'
Job Queue

See merge request pleroma/pleroma!732
2019-02-18 19:43:06 +00:00
kaniini cd019a5927 Merge branch 'follow-request-count' into 'develop'
Follow request count

See merge request pleroma/pleroma!817
2019-02-18 04:01:26 +00:00
eugenijm ecdf0657ba Add logic for keeping follow_request_count up-to-date on the follow,
`approve_friend_request`, and `deny_friend_request` actions.
Add follow_request_count to the user view.
2019-02-15 12:20:20 +03:00
William Pitcock 56862f4ce1 activitypub: clean up logging statements a little 2019-02-14 19:42:33 +00:00
Egor Kislitsyn 305d219413 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/jobs
# Conflicts:
#	lib/pleroma/web/federator/federator.ex
#	lib/pleroma/web/websub/websub.ex
2019-02-11 13:54:21 +07:00
Haelwenn (lanodan) Monnier 6a6a5b3251
de-group alias/es 2019-02-09 16:31:17 +01:00
Haelwenn (lanodan) Monnier d2e4eb7c74
Web.ActivityPub.ActivityPub: assign the Enum.filter to recipients & simplify it 2019-02-09 14:59:21 +01:00
Haelwenn (lanodan) Monnier 60ea29dfe6
Credo fixes: alias grouping/ordering 2019-02-09 14:59:20 +01:00
Haelwenn (lanodan) Monnier 8bcfac93a8
Make credo happy 2019-02-09 14:59:20 +01:00
Egor Kislitsyn 6f05f448f8 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/jobs 2019-02-06 11:33:00 +07:00
lain f3c8b02d65 Massage index until it actually does the stuff we want.
Also makes the index a lot smoler.
2019-02-04 23:47:29 +01:00
Egor Kislitsyn 3a3a3996b7 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/jobs
# Conflicts:
#	lib/pleroma/web/activity_pub/activity_pub.ex
#	lib/pleroma/web/federator/federator.ex
2019-02-04 20:50:28 +07:00
Ivan Tashkinov 3913b0196e [#582] Made single-pub task call Instance.set_reachable/1 if set_reachable is not specified.
Added tests.
2019-02-03 13:28:13 +03:00
Ivan Tashkinov b40b4bc4e5 [#582] Optimized federation retirement by reducing the number of SQL calls
(calling `Instances.set_reachable/1` only if instance had `unreachable_since`,
calling `Instances.set_unreachable/1` only if instance had nil `unreachable_since`).
2019-02-03 12:41:27 +03:00
href b3b0855456 Merge branch '534_federation_targets_reachability' into 'develop'
[#534] Unreachable federation targets retirement

Closes #534

See merge request pleroma/pleroma!703
2019-02-01 09:14:35 +00:00
Egor Kislitsyn d3677d2b4d Merge remote-tracking branch 'MAIN/develop' into feature/jobs 2019-01-31 15:07:49 +07:00
Ivan Tashkinov 92753b0cd9 [#534] Made federation push sender be determined basing on content instead of referer header. Updated tests. 2019-01-29 13:12:28 +03:00
Egor Kislitsyn 55affbca7f add a job queue 2019-01-28 22:17:17 +07:00
Ivan Tashkinov d3f9e6f6fe [#534] Merged upstream/develop. 2019-01-28 15:39:14 +03:00
Ivan Tashkinov 1d2f41642c [#534] Various tweaks. Tests for Instances and Instance. 2019-01-28 15:25:06 +03:00
Ivan Tashkinov 9560abea10 [#534] Refactoring / tweaks per MR review. 2019-01-28 11:03:52 +03:00
William Pitcock 91ef64a1ec activitypub: prime OGP crawler cache when new messages are inserted into the database 2019-01-28 06:07:18 +00:00
kaniini 5eb81d2c72 Merge branch 'features/mastoapi-multi-hashtag' into 'develop'
MastodonAPI multi-hashtag

See merge request pleroma/pleroma!652
2019-01-27 12:45:50 +00:00
Haelwenn (lanodan) Monnier 5a84def6a6
Fix the logic in multi-hashtag TLs 2019-01-26 04:46:02 +01:00
Haelwenn (lanodan) Monnier 4ad0ad14ed
Web.ActivityPub.ActivityPub: Simplify multi-hashtag, add tests 2019-01-26 04:46:01 +01:00
Haelwenn (lanodan) Monnier 1a9bb4daa0
[Web.ActivityPub.ActivityPub]: Fix restrict_tag()
Thanks to Senko-san <kurisu@iscute.moe> for the help on array-matching
2019-01-26 04:46:01 +01:00
Haelwenn (lanodan) Monnier f9cae0d04f
[WIP,MastoAPI] Multi-tag timelines 2019-01-26 04:45:36 +01:00
Haelwenn (lanodan) Monnier 15aa45ae8a
Web.ActivityPub.ActivityPub: Fix check_remote_limit/1 against activities with content: nil 2019-01-26 03:50:49 +01:00
kaniini 4c99b6d35a Merge branch 'fix/tusky-dm' into 'develop'
Add actor to recipients list

Closes #390

See merge request pleroma/pleroma!683
2019-01-25 05:19:32 +00:00
Ivan Tashkinov 3e9399ec0b [#534] Optimized bulk publish ops to filter on reachability early. Instance refactoring. 2019-01-24 19:15:23 +03:00
Ivan Tashkinov 8654a591f0 [#534] Updating external instances reachability on incoming federation. 2019-01-24 17:37:23 +03:00
Ivan Tashkinov 20b54366ee [#534] Federation publish requests status control (enforced 2xx response code check). 2019-01-24 11:54:52 +03:00
Ivan Tashkinov f161a92cb1 [#534] Initial implementation of unreachable federation targets retirement. 2019-01-23 18:37:25 +03:00
href cdc5e6ff5c
ActivityPub: restrict_since/restrict_max: ignore empty param 2019-01-23 11:26:35 +01:00
lambda 8cd853ce0c Merge branch '530_federator_user_info_overwrite_fix' into 'develop'
[#530] Prevents user `info` from being overwritten because of race conditions

Closes #530

See merge request pleroma/pleroma!691
2019-01-21 13:03:32 +00:00
lambda 69454c8345 Merge branch 'feature/dm-sanity' into 'develop'
DM sanitization

See merge request pleroma/pleroma!458
2019-01-21 12:35:10 +00:00
Ivan Tashkinov a4d3fec8a7 [#502] Code comments update. 2019-01-21 14:52:41 +03:00
Ivan Tashkinov aa480f4a8b [#530] Prevents user info from being overwritten because of race conditions
and non-partial update of embed (in WebFinger.ensure_keys_present and other places).
2019-01-21 14:16:51 +03:00
lain cf1f35a93a Send delete event over Mastodon streaming api
Closes #116
2019-01-20 13:00:46 +01:00
William Pitcock aa37313416 activitypub: short-circuit is_public?() with directMessage flag check 2019-01-20 02:33:21 +00:00
William Pitcock ddae43eb43 activitypub: add is_private?/is_direct? helpers 2019-01-20 02:27:48 +00:00
Maxim Filippov e116e55cab Add actor to recipients 2019-01-18 22:40:52 +03:00
William Pitcock 75a9b2a851 activitypub: add a match clause for objects, not just activities 2019-01-17 23:32:16 +00:00
William Pitcock 33b473cc02 activitypub: allow is_public?() to work on any type of map representing an AS2 object 2019-01-17 23:21:31 +00:00
William Pitcock 2479e88815 activitypub: announce: add new public parameter 2019-01-17 23:21:31 +00:00
lambda fd2f1258fb Merge branch 'load-all-dms' into 'develop'
Remove recent activity restriction.

See merge request pleroma/pleroma!644
2019-01-14 18:49:53 +00:00
kaniini 7f5efddd6e Merge branch 'feature/pinned-posts' into 'develop'
Pinned Statuses

Closes #440

See merge request pleroma/pleroma!636
2019-01-10 02:39:53 +00:00
lain 5027f82cde Add activity visibility index. 2019-01-09 16:45:09 +01:00
lain 9854978b8b Remove recent activity restriction.
This should be fine now, everything should be covered by indices.
2019-01-09 12:38:23 +01:00
Egor Kislitsyn 380e9fba21 add pinned posts 2019-01-07 20:45:33 +07:00
sxsdv1 2d7da5f437 Don't crash on AP request for tombstone
Because tombstone objects has no addressing the is_public?-predicate
would cause an error that propagated as a 500 error in the api
2019-01-05 11:16:05 +01:00
lain 096a927805 Merge remote-tracking branch 'origin/develop' into pool-usage 2019-01-01 14:19:55 +01:00
lain d4799e0dc2 Remove default pool, it's used automatically anyway. 2019-01-01 13:49:24 +01:00
William Pitcock 980b5288ed update copyright years to 2019 2018-12-31 15:41:47 +00:00
kaniini 3dc5f04976 Merge branch 'carrot-bullying' into 'develop'
Add some hard limits on inserted activities.

See merge request pleroma/pleroma!595
2018-12-29 11:46:06 +00:00
Vyr Cossont e4562105e7 Implement exclude_reblogs and include_rts 2018-12-26 21:38:00 -08:00
lain 5811e65e67 Add some hard limits on inserted activities. 2018-12-26 12:39:35 +01:00
William Pitcock 2791ce9a1f add license boilerplate to pleroma core 2018-12-23 20:56:42 +00:00
Maksim Pechnikov 074fa790ba fix compile warnings 2018-12-09 20:50:08 +03:00
kaniini abead01ab6 Merge branch 'correct-and-improve-http-options' into 'develop'
Correct and improve http options

See merge request pleroma/pleroma!505
2018-12-06 15:57:56 +00:00
Hakaba Hitoyo a09ed0f5af avoid mix format bug 2018-12-06 18:41:29 +09:00
kaniini ccf0b46dd6 Merge branch '210_twitter_api_uploads_alt_text' into 'develop'
[#210] TwitterAPI: alt text support for uploaded images. Mastodon API uploads security fix.

See merge request pleroma/pleroma!496
2018-12-06 07:36:21 +00:00
Ivan Tashkinov 3e90f688f1 [#210] Mastodon: actor storing for media uploads, ownership check to update_media.
Refactoring.
2018-12-06 10:26:17 +03:00
Hakaba Hitoyo 96ba95df2e remove follow_redirect options 2018-12-06 11:38:33 +09:00
Hakaba Hitoyo 27792b2d77 remove pool and timeout options which duplicate with the default 2018-12-06 11:23:15 +09:00
Ivan Tashkinov 3b5be09f45 [#210] Stylistic change. 2018-12-05 21:48:21 +03:00
Ivan Tashkinov c4f3c5e939 [#210] Stylistic change. 2018-12-05 20:23:28 +03:00
Ivan Tashkinov 848151f7cb [#210] [TwitterAPI] Made actor be stored for uploads. Added ownership check
to `update_media` action. Added controller tests for `upload` and `update_media` actions.
Refactoring.
2018-12-05 13:37:06 +03:00
Maksim Pechnikov 87109482f3 status_code -> status 2018-12-04 14:04:06 +03:00
William Pitcock f85949cc69 object: factor out fetching functions into Pleroma.Object.Fetcher module 2018-12-04 04:52:09 +00:00
William Pitcock e8caecb5c7 object: move object containment out of transmogrifier into it's own module 2018-12-04 04:52:09 +00:00
William Pitcock 6f90f2c3ac activitypub: rework thread filtering for split object view 2018-12-04 04:52:09 +00:00
William Pitcock d13d953385 activitypub: implement activity flattening 2018-12-04 04:52:09 +00:00
William Pitcock 4482ce7e2d activitypub: normalize objects when streaming them out 2018-12-04 04:52:09 +00:00
lain c443c9bd72 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into validate-user-info 2018-12-01 09:55:46 +01:00
href b19597f602
reverse proxy / uploads 2018-11-30 18:00:47 +01:00
lain 0896cf4c0f Fix most mastodon api bugs. 2018-11-20 20:12:39 +01:00
lain 4c918392c6 Fix most User tests. 2018-11-18 21:40:52 +01:00
William Pitcock c88533209c activitypub: user fetching: use fetch_and_contain_remote_object_from_id() 2018-11-17 20:16:03 +00:00
William Pitcock daa8ec3d62 activitypub: factor out AP object fetching to it's own function and add ID-based containment 2018-11-17 20:15:59 +00:00
William Pitcock 603fccf175 activitypub: fetch_object_from_id(): prefer actor over attributedTo to avoid spoofing 2018-11-17 18:17:17 +00:00
href 5bb88fd174
Runtime configuration
Related to #85

Everything should now be configured at runtime, with the exception of
the `Pleroma.HTML` scrubbers (the scrubbers used can be
changed at runtime, but their configuration is compile-time) because
it's building a module with a macro.
2018-11-06 19:41:15 +01:00
William Pitcock 10f3958468 object: return the deleted object as well 2018-11-01 07:47:50 +00:00
William Pitcock 2bf358d7b4 activitypub: use Object.delete() instead of mutating the database and cache directly 2018-11-01 07:29:12 +00:00
scarlett b92e38d2d4 Add user reactivation task. 2018-10-29 23:13:15 +00:00
William Pitcock 167d3789a5 activitypub: upload: pass through an upload limit if one is provided 2018-10-29 16:43:05 +00:00
William Pitcock 72ea54de6e activitypub: fix possible false positives with broken thread filtering 2018-10-28 05:45:33 +00:00
William Pitcock 26eb11c172 activitypub: add support for filtering broken threads out of timelines 2018-10-26 06:16:51 +00:00
William Pitcock 4db1bc2c0e activitypub: fix error condition match 2018-09-30 05:26:13 +00:00
William Pitcock 707077edde activitypub: don't fall back to OStatus fetching when MRF rejects an object 2018-09-28 00:45:10 +00:00
Haelwenn (lanodan) Monnier 523757be52
[Pleroma.Web.ActivityPub.ActivityPub]: Harden getting endpoints [kroeg] 2018-09-27 20:00:45 +02:00
kaniini 1c9e539b47 Merge branch 'feature/mastodon_api_2.4.x' into 'develop'
Add/Fix Mastodon endpoints for 2.4.3 compatibility

See merge request pleroma/pleroma!266
2018-09-03 12:33:36 +00:00
William Pitcock 0b2c051a04 activitypub: fix possibility of spoofing by containing remote objects to the same domain as their actor 2018-09-01 23:20:02 +00:00
William Pitcock 29b5e30c46 activity: drop recipients_to/recipients_cc fields 2018-08-29 18:41:02 +00:00
William Pitcock de9acebbf3 activitypub: use jsonb query for containment instead of recipients_to/recipients_cc. 2018-08-29 18:41:02 +00:00
William Pitcock 643fae6e36 activitypub: allow querying the activity/object graph bounded to a specific to/cc set 2018-08-29 08:51:23 +00:00
William Pitcock 81673b8136 activity: add recipients_to and recipients_cc fields 2018-08-29 08:42:33 +00:00
Haelwenn (lanodan) Monnier 97e20d2932
[MastodonAPI] the tag field isn’t fixed to a static type in pleroma 2018-08-27 15:08:25 +02:00
Haelwenn (lanodan) Monnier 83efaa3af6
[MastodonAPI] Add streaming of hashtags 2018-08-27 15:08:25 +02:00
lambda 46c7c2380c Merge branch 'feature/relay' into 'develop'
message relay

Closes #144

See merge request pleroma/pleroma!264
2018-08-27 08:29:25 +00:00
lambda 440b459cd1 Merge branch 'bugfix/announce-timeline-flooding' into 'develop'
activitypub: filter destination list for announce activities differently than normal (closes #164)

Closes #164

See merge request pleroma/pleroma!227
2018-08-27 08:25:27 +00:00
kaniini 0f5bff8c66 Merge branch 'develop' into 'feature/relay'
# Conflicts:
#   lib/pleroma/web/activity_pub/utils.ex
2018-08-26 21:06:15 +00:00
eal 51a21284c6 ActivityPub: follow redirects when fetching user 2018-08-20 15:03:25 +03:00
William Pitcock 0ca9b9ff96 run mix format 2018-08-06 08:26:36 +00:00
William Pitcock 1c90f88393 user: remote actors can have no nickname if they are virtual services 2018-08-06 08:22:11 +00:00
William Pitcock 3be58ad34e activitypub: actually send digest header when federating
this is needed for backwards compatibility with non-digest pleroma instances
2018-08-01 10:32:02 +00:00
William Pitcock 2890aef9e8 activitypub: add digest header to outbound messages and sign it 2018-07-31 23:24:30 +00:00
William Pitcock 7c63e70de1 activitypub: use Activity.normalize() in several places instead of using Activity.get_by_ap_id() directly. 2018-06-27 13:08:12 +00:00
William Pitcock 15d624e077 activitypub: use Object.normalize() instead of Object.get_by_ap_id() directly. 2018-06-27 13:07:29 +00:00
lambda dfc96f222c Merge branch 'feature/configurable-blocks' into 'develop'
Add more configurability to how blocks work

See merge request pleroma/pleroma!203
2018-06-25 06:12:29 +00:00
squidboi ea214b8ba6
combined outgoing_blocks with statement 2018-06-24 23:05:44 -07:00
squidboi c4038ede07
fix mind-crushingly dumb syntax error 2018-06-23 14:32:00 -07:00
squidboi f4990283de
change moved attributes into normal variables 2018-06-23 14:27:07 -07:00
squidboi 4e099fcfa9
move configurable module attributes into relevant functions 2018-06-23 14:16:08 -07:00
lambda 90cf75f4a7 Merge branch 'features/column_media_streaming' into 'develop'
Add streaming to media tabs of federated and local TLs

See merge request pleroma/pleroma!225
2018-06-19 09:50:05 +00:00
William Pitcock 591c82620e activitypub: filter destination list for announce activities differently than normal (closes #164) 2018-06-18 04:36:25 +00:00
William Pitcock 4f589998ee activitypub: support filtering activities by whether or not they are a reply (closes #109) 2018-06-18 03:21:32 +00:00
Haelwenn (lanodan) Monnier b670d4d683
MastodonAPI: Add streaming to media tabs of federated and local TLs 2018-06-17 16:17:15 +02:00
squidboi 2e294ee44a Merge branch 'develop' into feature/configurable-blocks 2018-06-16 15:37:16 -07:00
lambda 8c7fdcb31b Merge branch 'feature/twitterapi-unrepeat' into 'develop'
Add TwitterAPI unretweet endpoint and cleanup AP.unannounce

See merge request pleroma/pleroma!218
2018-06-14 07:19:36 +00:00
Francis Dinh 1555c66650 Add unretweet TwAPI endpoint and cleanup AP.unannounce 2018-06-13 21:33:36 -04:00
lambda 3f42806b1b Merge branch 'develop' into 'develop'
Dedupe uploads

See merge request pleroma/pleroma!115
2018-06-12 08:26:26 +00:00
lambda 564c73ab24 Merge branch 'feature/list-streaming' into 'develop'
MastoAPI: Add streaming for lists.

See merge request pleroma/pleroma!183
2018-06-12 07:19:45 +00:00
William Pitcock 76f80ba8c2 activitypub: when unfollowing, update the follow activity's disposition to 'cancelled' so it cannot be reused 2018-06-11 22:15:53 +00:00
lambda 7f79b467b1 Merge branch 'feature/domain-blocks' into 'develop'
Domain blocks

See merge request pleroma/pleroma!190
2018-06-11 11:19:45 +00:00
squidboi 4f9ecfc77a formatting 2018-06-09 04:28:11 +00:00
squidboi 8903f1ad4d more fixes 2018-06-08 19:07:14 -07:00
squidboi 16d896f526 fixes 2018-06-08 19:01:14 -07:00
squidboi 2847fc8f90 add option to not unfollow on block, and option to not federate outgoing blocks 2018-06-08 17:12:16 -07:00
William Pitcock 09604182d0 add the ability to 'quarantine' an activitypub peer, causing them to be treated as an OStatus peer. 2018-06-07 14:38:09 +00:00
Sir_Boops 3f0440ac3c
Dedupe uploads 2018-06-06 13:25:44 -06:00
eal 29c9c8d93b Extract host from ap_id, add index 2018-06-06 21:13:40 +03:00
eal 9075b6d25b ActivityPub.ex: filter domain blocked activities. 2018-06-03 23:33:33 +03:00
eal 5d3fdbc082 MastoAPI: Add streaming for lists. 2018-05-30 16:48:59 +03:00
lain 841ee8e3e4 Simplify DM query.
Should also use indexes better.
2018-05-26 16:25:32 +02:00
lain 4b3ec53514 Merge branch 'develop' into csaurus/pleroma-feature/mstdn-direct-api 2018-05-26 16:00:59 +02:00
lain 3839a11ef5 Don't treat remote accepts/rejects as local.
Also, use specialized functions to get safe data.
2018-05-26 14:07:46 +02:00
William Pitcock c0ca9f82b9 mastodon api: properly track if an account is locked or not 2018-05-25 06:14:09 +00:00
csaurus 4fd9df100f Merge branch 'develop' into feature/mstdn-direct-api 2018-05-21 20:19:37 -04:00
Francis Dinh 46427cb90f Pass correct number of arguments to unfollow 2018-05-21 11:57:15 -04:00
Francis Dinh 89c5de9096 Fix unfollows 2018-05-20 21:01:14 -04:00
Francis Dinh 1afd6d37bd Merge remote-tracking branch 'upstream/develop' into feature/incoming-remote-unfollow
Fixed some conflicts in transmogrifier.ex
2018-05-20 19:17:15 -04:00
lain 434601a5c3 Return private / direct posts on user timelines, too. 2018-05-20 16:15:18 +02:00
Thog 6f39ecc41b
Support Undo like activities (Fix #139) 2018-05-19 22:14:15 +02:00
lambda ad563669c8 Merge branch 'feature/remote-user-deactivation' into 'develop'
remote user deactivation

See merge request pleroma/pleroma!154
2018-05-19 09:30:09 +00:00
William Pitcock 2051530868 activitypub transmogrifier: handle hubzilla AP actor quirks 2018-05-19 03:28:29 -05:00
William Pitcock 13d4b6d2b5 remote user deactivation: fix test failures 2018-05-19 01:26:13 -05:00
Francis Dinh 0ec1abb3b6 Add federated blocks 2018-05-18 18:09:56 -04:00
csaurus 4dfb40a546 Handle cases where a to/cc field is absent on a status 2018-05-14 21:54:25 -04:00
William Pitcock 9390492138 ActivityPub create: discard activities from deactivated users 2018-05-13 19:05:02 -05:00
csaurus 2ce48c1a42 Formatting 2018-05-13 15:36:41 -04:00
csaurus 9aabff4883 Fix tests. 2018-05-13 15:33:59 -04:00
lain c7a85de35c Revert "Remove 'unlisted' handling for now."
This reverts commit 1027d1f696.
2018-05-13 12:38:13 +02:00
lain 1027d1f696 Remove 'unlisted' handling for now.
It's just too slow (over 1 second on small systems, haven't looked at
the queries in detail yet). We'll need some other way to handle it.
2018-05-13 12:07:11 +02:00
lain a5c9dd0a2a Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into develop 2018-05-13 11:59:35 +02:00
lain 3c3933e40b Unlisted fetching: Reverse logic
Generates a faster query.
2018-05-13 11:58:03 +02:00
lambda aeff2d6474 Merge branch 'feature/unrepeats' into 'develop'
Add unrepeats

Closes #69

See merge request pleroma/pleroma!113
2018-05-13 09:32:29 +00:00
lain ec531ca281 Add test. 2018-05-13 11:18:48 +02:00
lain 29376fcc13 Format. 2018-05-13 10:56:44 +02:00
lain 76722ea9c8 Merge branch 'develop' into kaniini/pleroma-bugfix/unlisted-statuses 2018-05-13 10:56:11 +02:00
csaurus c8d418acdd api/v1/timelines/direct implementation 2018-05-12 21:50:59 -04:00
csaurus 392bd9ef56 Stream function to handle direct messages. 2018-05-12 17:40:59 -04:00
csaurus c60a5405db Detect and try to stream incoming "direct" messages 2018-05-12 17:40:59 -04:00
href e9e6f37bda
Chain policies
- The `:pleroma, :instance, :rewrite_policy` can now be either a policy
or a list of policies
- Made a behaviour for MRF policies
2018-05-10 18:41:06 +02:00
Francis Dinh 54f6628590 Change argument order and call correct # of args 2018-05-08 23:59:36 -04:00
Francis Dinh 4d5ec883b7 Federate correct activity 2018-05-08 21:52:21 -04:00
Mark Felder 943820ae29 More unused variables 2018-05-04 21:16:02 +00:00
William Pitcock a3d1d4894f ActivityPub core: fix handling of unlisted statuses by leveraging a similar strategy as for blocks 2018-04-28 22:32:46 -05:00
lain 4d55d7c95e Insert object after being rewritten. 2018-04-28 16:10:24 +02:00
lambda a7a40bb8f1 Merge branch 'fix/blocked-user-boosts' into 'develop'
ActivityPub.ex: do not return boosted statuses from blocked users.

See merge request pleroma/pleroma!111
2018-04-28 13:49:12 +00:00
Francis Dinh 2d775bf1be Merge branch 'feature/unrepeats' of git.pleroma.social:normandy/pleroma into feature/unrepeats 2018-04-25 01:58:50 -04:00
Francis Dinh 9e0dd21ed6 Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into feature/unrepeats 2018-04-25 00:46:28 -04:00
lambda 7a52c4549c Merge branch 'feature/message-rewrite-facility' into 'develop'
message rewrite facility

See merge request pleroma/pleroma!112
2018-04-24 17:21:28 +00:00
Dashie 9972678a68
Add User.decrease_note_count and call it from ActivityPub.delete 2018-04-24 11:34:18 +02:00
Francis Dinh 8c0806539c Embed announce activity data instead of linking to it 2018-04-22 21:28:51 -04:00
Francis Dinh b1742eca42 Revert "Rename make_unannounce_data helper to make_undo_data"
This reverts commit c649ca8958.
2018-04-22 19:42:28 -04:00
Francis Dinh c649ca8958 Rename make_unannounce_data helper to make_undo_data
This makes it a bit more easier to adapt for unlikes as well in the
future.
2018-04-22 01:55:41 -04:00
eal 22bfeac256 Update note count in ActivityPub.create. 2018-04-21 12:58:04 +03:00
Francis Dinh f0798440de Use correct activity for undo 2018-04-20 23:22:16 -04:00
Francis Dinh 4b9f2ab526 Fix federation of unreblog activity 2018-04-20 23:09:19 -04:00
Francis Dinh 7b4f55238e Handle unrepeats via the TwitterAPI 2018-04-18 06:00:40 -04:00
Francis Dinh 687db1bc3a Expose unannounce activity so that it can be tested 2018-04-18 03:39:42 -04:00
Francis Dinh 0251690e96 Add federation for unrepeats 2018-04-17 20:35:07 -04:00
Francis Dinh b949577472 Add unrepeat functionality 2018-04-14 20:19:48 -04:00
William Pitcock 4a178b3d65 ActivityPub: implement MRF core hook and baseline noop policy object 2018-04-14 06:32:44 -05:00
eal 48380aeccc ActivityPub.ex: do not return boosted statuses from blocked users. 2018-04-14 14:26:20 +03:00
lain 4afbef39f4 Format the code. 2018-03-30 15:01:53 +02:00
lain d2099c849d More Jason changes. 2018-03-27 16:45:38 +02:00
William Pitcock 381ba256bf activitypub: add restrict_limit 2018-03-22 00:26:47 -05:00
lambda 9b97b023c5 Merge branch 'feld-Logger' into 'develop'
Logging cleanup

See merge request pleroma/pleroma!76
2018-03-20 05:57:47 +00:00
Mark Felder 16d102c153 Clarify that this error is about a problem decoding the expected JSON
payload
2018-03-19 18:18:52 +00:00
Mark Felder 9a858621d6 AP and WebFinger need love here 2018-03-19 17:56:49 +00:00
lain ec83175100 Use connection pools. 2018-03-19 17:42:09 +01:00
lain 4d5161b16d Only fetch if it's http. 2018-03-19 10:28:28 +01:00
lain 1377b2e569 Restrict public by recipients.
This is much faster than going through the json. This does break
unlisted, for which we'll probably have to add another table field.
2018-02-26 10:09:30 +01:00
lain 4d13cc0dc6 Fix specs. 2018-02-25 16:52:33 +01:00
lain e3629af4da Handle remote update activities. 2018-02-25 16:14:25 +01:00
lain 2b5d265954 Don't deliver to local followers. 2018-02-24 19:04:56 +01:00
lain 2583a9f6e8 More logging. 2018-02-23 15:00:19 +01:00
lain 37e406ae36 Get avatar and banner from AP users. 2018-02-22 08:14:15 +01:00
lain 4816b09fa7 Add user upgrade function. 2018-02-21 22:21:40 +01:00
lain a06b9a3e0b Logging. 2018-02-21 16:22:20 +01:00
lain 810cf8618f ActivityPub: Fetch missing activities on reply. 2018-02-21 15:22:24 +01:00
lain 9c89916969 ActivityPub: One queue item per server. 2018-02-20 08:51:19 +01:00
lain 932d346d35 fix typo. 2018-02-18 23:13:19 +01:00
lain 8b11546334 For existing users, just replace info. 2018-02-18 23:11:31 +01:00
lain decbf3a47f fix typo. 2018-02-18 23:02:44 +01:00
lain 342d0b01d1 Only push to followers if they are addressed. 2018-02-18 23:01:37 +01:00
lain 010f818a29 Fix conversations. 2018-02-18 20:52:07 +01:00
lain deaad6d97a Fix delivery to CC. 2018-02-18 16:59:41 +01:00
lain 803bdc1a67 Federate non-public over ActivityPub only, do some better signing. 2018-02-18 16:05:25 +01:00
lain 4bc57ef20c Don't relay non-public messages. 2018-02-18 15:58:18 +01:00
lain 5d89997a70 Respect visibility in API. 2018-02-18 15:50:34 +01:00
lain 5729233c36 Don't show unlisted in public. 2018-02-18 15:32:11 +01:00
lain c974f6544f Show users their own posts in timeline. 2018-02-18 15:20:36 +01:00
lain b99eeb2bdf Try to fetch AP user data first. 2018-02-18 12:27:05 +01:00
lain 77c6c424a6 ActivityPub: Make fake Create activities for objects without one. 2018-02-18 11:24:54 +01:00
lain 5e36b750c1 ActivityPub: Fetch an object from an id. 2018-02-17 21:56:33 +01:00
lain c2d0cb1a29 ActivtyPub Delivery: Use shared inbox if possible. 2018-02-17 16:18:10 +01:00
lain 7b26443a76 ActivityPub: Send out Accept after Follow. 2018-02-17 16:08:55 +01:00
lain 05ba6ca1b8 Do some transmogrifying for the output. 2018-02-17 14:11:20 +01:00
lain 5a371892a0 Fix specs. 2018-02-17 10:26:44 +01:00
lain 7851b9ba81 ActivityPub: Use recipients fields. 2018-02-15 20:32:07 +01:00
lain ae26604378 ActivityPub: Refactor create function. 2018-02-15 19:59:35 +01:00
lain 8cf97ee8e1 ActivityPub: Basic note federation with Mastodon. 2018-02-11 20:43:33 +01:00
Roger Braun ae1ec858f4 Basic AP user building. 2018-02-11 17:20:43 +01:00
Lain Iwakura 4a13b84887 Add recipients field to activities.
Also do some very basic checks for AP message insertion.
2017-12-12 18:07:14 +01:00
Roger Braun 5ff5d583b6 MastodonAPI: Streaming fixes.
Now shows repeats in the home tl.
2017-11-19 13:47:50 +01:00
Thog 59770c3f5c
Fix all compilation warnings 2017-11-19 02:22:07 +01:00
Roger Braun a743940463 MastoAPI: Implement all streaming functions. 2017-11-16 16:49:51 +01:00
Roger Braun 5719f69ae3 MastodonAPI: Stream fixes. 2017-11-16 13:48:58 +01:00
eal 06c3ee3bac Accept 1 as true. 2017-11-14 15:54:50 +02:00
eal c84723b679 MastoAPI: Add media timelines. 2017-11-14 15:41:16 +02:00
Roger Braun bd5bdc4c24 MastoAPI: Basic streaming. 2017-11-11 14:59:25 +01:00
Roger Braun f1d27a5fbb Add actor column to activities. 2017-11-09 10:41:19 +01:00
Roger Braun d2430d5007 Look through whole db for user timelines.
They already have an index that's good enough.
2017-11-08 17:25:18 +01:00
Roger Braun 7252f6b054 Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into develop 2017-11-05 12:12:19 +01:00
Roger Braun 046bee34d3 Fix bug when no posts are in the db. 2017-11-05 12:11:59 +01:00
Roger Braun 867ac1e4f5 Handle nil cases. 2017-11-02 22:47:48 +01:00
Roger Braun 8ef58a266b Don't return blocked users' activities in contexts. 2017-11-02 22:44:36 +01:00
Roger Braun a47727adde Don't return activities from blocked users. 2017-11-02 22:37:26 +01:00
Roger Braun 3037814fde Only search through last 100_000 activities for fetches.
This is purely a performance enhancement
2017-10-31 15:26:37 +01:00
Roger Braun 9f417fd5e9 Speed up deletion and related queries. 2017-10-23 18:30:09 +02:00
Roger Braun 38f3908c14 Revert "Simplify query."
This reverts commit a17b261379.
2017-10-19 17:56:27 +02:00
Roger Braun a17b261379 Simplify query. 2017-10-18 11:56:47 +02:00
Roger Braun 260f09dd6c MastoAPI: Return reblogs, too. 2017-09-17 14:20:54 +02:00
Roger Braun 422d0f324f MastodonAPI: Add user favorites endpoint. 2017-09-17 13:09:49 +02:00
Roger Braun 678dd4c8ec Use desc id to sort instead of desc inserted_at
Should mean the same and is indexed.
2017-09-17 11:16:08 +02:00
Roger Braun fc85c9f086 Add tag timelines. 2017-09-14 13:22:09 +02:00
Roger Braun 07b694814e Optimize conversation fetching. 2017-09-12 13:48:48 +02:00
Roger Braun 61adf676d5 Add basic mastodon notification support. 2017-09-11 18:53:19 +02:00
Roger Braun a22f2e683b Add type restriction to activitypub fetcher
Mainly because Mastodon only returns notes, not the other activities.
2017-09-09 12:05:17 +02:00
Roger Braun 3438a120cc Don't delete new delete activity... 2017-09-04 20:47:43 +02:00
Roger Braun 5db535c0b1 Add delete to ActivityPub. 2017-09-04 18:47:33 +02:00
Roger Braun 9fd8640202 Order by id instead of inserted_at to better use indexes. 2017-08-08 12:24:20 +02:00
Roger Braun 5e17e04144 Make user timelines faster for users with few statuses. 2017-07-01 16:43:10 +02:00
Roger Braun 201804b836 Only return posts in TwAPI conversations. 2017-06-30 16:41:09 +02:00
Roger Braun d4de38e8ff Order conversation fetches like GS does. 2017-06-30 16:30:19 +02:00
Roger Braun 70024632ba AP refactoring. 2017-05-16 18:19:04 +02:00
Roger Braun a2ca3b8605 Add option to keep id for follows. 2017-05-10 18:45:38 +02:00
Roger Braun e49770ee88 Add some debugging info. 2017-05-07 20:16:07 +02:00
Roger Braun db08498a9f Prevent double insertions. 2017-05-07 20:13:10 +02:00
Roger Braun 4f9328c622 Preserve ids on favorites / retweets. 2017-05-07 20:05:03 +02:00
Roger Braun b403ea4d2b Merge branch 'develop' into dtluna/pleroma-feature/unfollow-activity 2017-05-07 19:28:23 +02:00
Roger Braun fa2610c795 Handle incoming favorites, fetch potentially missing messages. 2017-05-05 16:07:44 +02:00
Roger Braun c48c381e90 Merge branch 'develop' into dtluna/pleroma-refactor/1 2017-05-05 11:46:59 +02:00
Roger Braun c85998ab8a Parse incoming retweets. 2017-05-04 18:42:29 +02:00
Roger Braun 861a294cda Add announce federation. 2017-05-03 17:41:55 +02:00
Roger Braun df71c142cf Remove doubled 'to' recipients. 2017-05-03 16:08:24 +02:00
Roger Braun 9c42453e06 Return note objects as ostatus post activities. 2017-05-03 09:54:17 +02:00
Roger Braun 945b4b55e6 Federate likes. 2017-05-02 16:45:54 +02:00
Roger Braun a3e82c5c24 Save context in likes / announces. 2017-05-02 15:54:14 +02:00
Roger Braun 32a95d73da Add twkn timeline. 2017-05-02 14:12:43 +02:00
Roger Braun 6dd8335477 Mark incoming activties as non-local. 2017-05-02 10:47:04 +02:00
Roger Braun 009fcd2acf Stop adding statusnetConversationIds. 2017-04-30 14:02:04 +02:00
dtluna 6cf7c13228 Refactor code to comply with credo suggestions 2017-04-27 16:18:50 +03:00
Roger Braun c5fa682c31 Refactor, add beginnings of websub client subscriptions. 2017-04-26 18:33:10 +02:00
Roger Braun ab0114fbaa Return salmon path for users, basic incoming salmon handling. 2017-04-24 18:46:34 +02:00
dtluna 28b203d08f Add Undo of Follow Activity insertion 2017-04-21 19:54:21 +03:00
dtluna 5229b01944 Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/user-timeline 2017-04-16 17:08:17 +03:00
Roger Braun 7617a593b9 Support data uris in uploads. 2017-04-16 14:23:30 +02:00
dtluna 7a0046d127 Merge branch 'develop' of ssh.gitgud.io:lambadalambda/pleroma into feature/user-timeline 2017-04-16 13:32:56 +03:00
Roger Braun 4f7adb343c Address liking / announcing to the original author. 2017-04-15 14:16:01 +02:00
Roger Braun 60c60de330 Add announcements / retweets to TwAPI. 2017-04-15 13:54:46 +02:00
Roger Braun 21c397820f Add announcements to activitypub. 2017-04-15 12:11:20 +02:00
Roger Braun a926038cd0 Add unliking to activitypub. 2017-04-14 18:09:30 +02:00
dtluna 18cd04ade5 Add user timeline 2017-04-14 16:09:13 +03:00
Roger Braun fa0c279139 Favorite changes.
- Add 'likes' to activity, collection of ids of people who liked it.
- show if you favorited something or not.
- Don't allow double favorites
- Address favorites to the followers of the liked activity's author.
2017-04-14 15:07:24 +02:00
Roger Braun 1388054796 Add liking to ActivityPub. 2017-04-13 15:50:05 +02:00
Roger Braun b666f11d2f Add max_id fetching to activity fetching. 2017-04-12 17:12:00 +02:00
dtluna 8075badafe Add Follow activity insertion 2017-04-04 03:30:07 +03:00
Roger Braun 6aa1523bb3 Put objects in inserted activties into the db. 2017-03-30 18:07:29 +02:00
Roger Braun d18473f0c3 Add port if specified. 2017-03-30 14:32:36 +02:00
Roger Braun e7dc39e40c Basic file uploading via TwAPI. 2017-03-29 02:07:56 +02:00
Roger Braun 866a2663d4 Add fetching of activities in context. 2017-03-24 00:09:08 +01:00
Roger Braun e56dba1563 Add context and inReplyTo. 2017-03-23 23:34:10 +01:00
Roger Braun 74112ef99e Add id to objects, too. 2017-03-23 21:22:49 +01:00
Roger Braun 1f0f79d959 Generate ids for activities. 2017-03-23 17:56:49 +01:00
Roger Braun 569d9bac17 Add fetching for recipients. 2017-03-22 14:45:17 +01:00
Roger Braun 2db28df4cf Add public timeline TwAPI. 2017-03-21 21:09:20 +01:00
Roger Braun b9d0e34506 Add since_id for activitypub fetching. 2017-03-21 20:31:48 +01:00
Roger Braun d4cf273f28 Add limiting to activity pub fetching. 2017-03-21 20:22:05 +01:00
Roger Braun 9a8850eb9e Basic status creation and retrieval. 2017-03-21 17:53:20 +01:00
Roger Braun 8de523c8ae Basic AP objects. 2017-03-21 09:21:52 +01:00