kaniini
131f883207
Merge branch 'fix/ostatus-activity-representer-depends-on-emebeded-objects' into 'develop'
...
Fix get_in_reply_to in OStatus' activity representer depending on embedded objects
See merge request pleroma/pleroma!1129
2019-05-11 16:52:26 +00:00
lain
01c45ddc9e
Search: Use RUM index.
2019-05-11 11:26:46 +02:00
Sachin Joshi
f01f995816
make url uniform in admin api
2019-05-11 14:46:00 +05:45
feld
c953ae8c3d
Initial bundle of basic AdminFE
...
Due to CSP headers we only allow connecting to self. If you want to
host AdminFE on a separate domain without CSP headers you will be able
to connect to any public Pleroma host.
2019-05-11 01:34:17 +00:00
rinpatch
1d78e42fd4
Remove get_in_reply_to calls in some functions because the result is unused and it does not have any side-effects
2019-05-10 13:49:34 +03:00
Francis Dinh
2a54e8c1f5
Use "repeated" instead of "retweeted" for repeated statuses in Twitter API
...
This makes it consistent with the language used in Pleroma FE (at least
in English).
Resolves https://git.pleroma.social/pleroma/pleroma-fe/issues/533
2019-05-09 19:58:34 -04:00
rinpatch
e4523c3010
Fix get_in_reply_to in OStatus' activity representer depending on embedded objects
2019-05-09 22:27:00 +03:00
lain
a33bec7d58
Conversations: Import order, import as read.
2019-05-09 16:39:28 +02:00
lain
e6d7f8d223
Credo fixes.
2019-05-08 18:19:20 +02:00
lain
a4598b5e8b
Visibility: Make it more resilient.
2019-05-08 18:08:50 +02:00
lain
920bd47055
ActivityPub: Remove leftover printf debugging.
2019-05-08 17:40:24 +02:00
lain
fcf2f38d20
Conversations: Add a function to 'import' old DMs.
2019-05-08 17:37:00 +02:00
Alexander Strizhakov
bfeb33e951
Merge develop
...
Merge conflict in lib/pleroma/activity.ex
2019-05-08 14:34:36 +00:00
Maksim
799e1f48b5
Refactoring functions for dealing with oauth scopes.
2019-05-08 10:52:13 +00:00
kaniini
14deed7f7d
Merge branch 'refactor/preload-bookmarks-with-activities' into 'develop'
...
Optimize bookmarks by preloading them with activities
Closes #861
See merge request pleroma/pleroma!1121
2019-05-07 19:37:41 +00:00
William Pitcock
d64c3b604e
twitterapi: use order constraint to force descending order
2019-05-07 19:33:25 +00:00
William Pitcock
6020ff3fb6
activitypub: add optional order constraint to timeline query builder
2019-05-07 19:33:22 +00:00
rinpatch
4c5125dedc
Remove bookmarks
assoc and add a fake bookmark
assoc instead
2019-05-07 19:33:22 +00:00
rinpatch
3a7c14645e
- Actually use preloaded bookmarks in views
...
- Preload bookmarks in bookmark timeline
- Rework bookmark preload tests
2019-05-07 19:33:22 +00:00
rinpatch
f841eb7cdb
Preload bookmarks wherever the object is preloaded
2019-05-07 19:33:22 +00:00
rinpatch
06947c9147
Remove bookmarks assoc
2019-05-07 19:33:22 +00:00
kaniini
a1a0df19c4
Merge branch 'docs/MRF-modules' into 'develop'
...
Documentation: MRF Modules
See merge request pleroma/pleroma!1122
2019-05-07 16:15:27 +00:00
lambda
238dd72fad
Merge branch 'conversations_three' into 'develop'
...
Conversations once more.
See merge request pleroma/pleroma!1119
2019-05-07 14:43:21 +00:00
Egor Kislitsyn
1557b99beb
Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
2019-05-07 16:51:11 +07:00
Maksim
1040caf096
fix format
...
Modified-by: Maksim Pechnikov <parallel588@gmail.com>
2019-05-06 17:51:03 +00:00
Alexander Strizhakov
ce6ca0fefe
Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into feature/845-improve-status-deletion
2019-05-06 16:45:22 +00:00
Haelwenn (lanodan) Monnier
e41a2f98d5
mrf/tag_policy.ex: Add some documentation
...
mrf_tag:disable-remote-subscription exact way of working is quite
unclear to me. Is it the requester that is denied if they have a tag,
or is it the requestee if they have one?
2019-05-06 04:53:11 +02:00
Haelwenn (lanodan) Monnier
af62ace954
Add short documentation on every MRF Policy
2019-05-06 04:49:50 +02:00
rinpatch
d089ff2460
Merge branch 'fix/embeded-relationship-in-follows' into 'develop'
...
Fix embeded relationships in Mastodon API
See merge request pleroma/pleroma!1118
2019-05-03 20:36:13 +00:00
Haelwenn (lanodan) Monnier
b5ad1715b2
MastoAPI: profile update with emoji_map
2019-05-03 16:41:23 +02:00
Haelwenn (lanodan) Monnier
46bbf9e1cf
TwitterAPI: profile update with emoji_map
2019-05-03 16:30:24 +02:00
Haelwenn (lanodan) Monnier
85434669bb
Web.TwitterAPI.UserView: Also view local user emojis
2019-05-03 16:27:51 +02:00
Haelwenn (lanodan) Monnier
2f76a40d02
formatter.ex: Add get_emoji_map/1
2019-05-03 16:27:50 +02:00
Haelwenn (lanodan) Monnier
d70af32127
Pleroma.User: remove emojify on parse_bio
2019-05-03 16:27:50 +02:00
lain
c42ded13a2
Credo fixes.
2019-05-03 13:53:17 +02:00
feld
acb04306b6
Standardize construction of websocket URL
...
This follows up on the change made in d747bd98
2019-05-03 11:45:04 +00:00
lain
a0c755cc4a
MastodonApi: Bump api level.
2019-05-03 13:40:43 +02:00
lain
81d1aa424d
Streamer: Stream out Conversations/Participations.
2019-05-03 13:39:14 +02:00
rinpatch
38b79461df
Fix embeded relationships in Mastodon API
...
Currently some endpoints render accounts without for user resulting in
embedded relationship being empty. It causes bugs in followers/following
tab in pleroma-fe but I fixed it for other endpoints as well just in
case
2019-05-03 00:49:17 +03:00
lain
45f790becc
Merge remote-tracking branch 'origin/develop' into conversations_three
2019-05-01 18:40:41 +02:00
Maksim
c854bff8f5
Refactored Pleroma.Web.Auth.Authenticator
2019-05-01 13:28:04 +00:00
Alex S
f11e7037c2
test fixes
2019-05-01 16:09:53 +07:00
Alex S
bdfa3a6fa8
Merging with develop
...
Conflicts:
lib/pleroma/web/activity_pub/transmogrifier.ex
lib/pleroma/user.ex
2019-05-01 12:29:33 +07:00
rinpatch
ce4825c1dc
Do not normalize objects in stream_out unless the activity type is
...
Create
Saves quite a bit of time with delete activities because they would
always query the db
2019-04-30 20:21:28 +03:00
lain
b0951a8849
WebPush: Use Object.normalize, rewrite tests so they test reality.
2019-04-29 18:15:30 +02:00
rinpatch
0fd176b990
Merge branch 'fix/add-default-scope-mastoapi' into 'develop'
...
Add default_scope to /api/v1/update_credentials
See merge request pleroma/pleroma!1100
2019-04-29 06:45:18 +00:00
kaniini
292c69481b
Merge branch 'regression/rights-only-for-admin' into 'develop'
...
Fix `rights` in TwitterAPI's user entity being present only for Admins/Moderators
See merge request pleroma/pleroma!1102
2019-04-28 23:05:14 +00:00
rinpatch
61ca2f7a4e
Fix rights
in TwitterAPI's user entity being present only for
...
Admins/Moderators
In !1093 I reused `maybe_with_role` for `rights` object, however I
missed that `maybe_with_role` is called only for admins/moderators.
2019-04-28 19:42:43 +03:00
rinpatch
ce3789e39a
Add default_scope to /api/v1/update_credentials
2019-04-27 23:55:54 +03:00
rinpatch
c3e9fcf098
Fix bookmarks depending on embeded object and move checking if the
...
status is bookmarked to SQL
2019-04-27 23:06:46 +03:00
kaniini
002ea343f8
Merge branch 'feature/bbcode' into 'develop'
...
BBCode support (backend)
See merge request pleroma/pleroma!1097
2019-04-27 07:44:24 +00:00
William Pitcock
501af917b5
add support for bbcode
2019-04-26 22:35:02 +00:00
lambda
4de5fef1f8
Merge branch 'feature/807-bookmark-endpoint-extension' into 'develop'
...
Feature/807 bookmark endpoint extension
Closes #807
See merge request pleroma/pleroma!1059
2019-04-26 11:59:47 +00:00
kaniini
48f68fd133
Merge branch 'feature/mastoapi-new-config' into 'develop'
...
Fix leaking private configuration parameters in Mastodon and Twitter APIs, and add new configuration parameters to Mastodon API
This patch:
- Fixes `rights` in TwitterAPI ignoring `show_role`
- Fixes exposing default scope of the user to anyone in Mastodon API
- Extends Mastodon API to be able to show and set `no_rich_text`, `default_scope`, `hide_follows`, `hide_followers`, `hide_favorites` (requested by the FE in #674 )
Sorry in advance for 500 line one commit diff, I should have split it up to separate MRs
See merge request pleroma/pleroma!1093
2019-04-26 02:41:35 +00:00
Mark Felder
24c3e2db2c
Add mediaproxy whitelist capability
2019-04-25 18:11:47 -05:00
rinpatch
dfc8425659
Move settings to Source subentity
2019-04-25 10:31:14 +03:00
Alex S
a825056d4d
test fixes
2019-04-25 14:09:57 +07:00
Alex S
85953c0836
fixes for tests
2019-04-25 13:46:40 +07:00
Alex S
3c2ae80008
unused
2019-04-25 13:42:10 +07:00
Egor Kislitsyn
c157e27a00
Merge branch 'develop' into feature/disable-account
2019-04-25 13:41:10 +07:00
Alex S
1258128f4f
favourites add bookmark display
2019-04-25 13:38:24 +07:00
Alex S
73d01857e3
bookmarks in separate table
2019-04-25 13:38:24 +07:00
William Pitcock
0fd0ffcd76
activitypub: transmogrifier: send reject follow if following does not succeed
2019-04-25 00:48:45 +00:00
rinpatch
4baea6e6d9
Fix leaking private configuration parameters in Mastodon and Twitter APIs, and add new configuration parameters to Mastodon API
...
This patch:
- Fixes `rights` in twitterapi ignoring `show_role`
- Fixes exposing default scope of the user to anyone in Mastodon API
- Extends Mastodon API to be able to show and set `no_rich_text`, `default_scope`, `hide_follows`, `hide_followers`, `hide_favorites` (requested by the FE in #674 )
Sorry in advance for 500 line one commit diff, I should have split it up to separate MRs
2019-04-24 20:01:42 +03:00
Sergey Suprunenko
9dd36e5bcb
Extend Mastodon API with public endpoint for getting Favorites timeline of any user ( #789 )
2019-04-23 02:47:43 +00:00
kaniini
10c40e13d2
Merge branch 'mastoapi/add-in-reply-to-screen-name' into 'develop'
...
Add `in_reply_to_account_acct` to MastoAPI status entity
See merge request pleroma/pleroma!1086
2019-04-23 02:43:53 +00:00
kaniini
aa9d378985
Merge branch 'fix/normalize-activities' into 'develop'
...
Normalize acitvities instead of objects inside them
See merge request pleroma/pleroma!1085
2019-04-23 02:43:26 +00:00
Alex S
d35246c449
added healthcheck setting to instance config
2019-04-22 17:00:06 +07:00
rinpatch
f60d072bbb
Add pleroma.in_reply_to_account_acct
to MastoAPI status entity
2019-04-22 11:54:27 +03:00
rinpatch
d21d921def
Replace Object.normalize(activity.data[object] with Object.normalize(acitivty) to benefit from preloading
2019-04-22 11:27:29 +03:00
Egor
b9cdf6d3b9
Use User.get_cached*
everywhere
2019-04-22 07:20:43 +00:00
Alexander Strizhakov
88f0be9693
Feature/826 healthcheck endpoint
2019-04-22 07:19:53 +00:00
Egor Kislitsyn
e8c2f9a73a
Merge remote-tracking branch 'pleroma/develop' into feature/disable-account
2019-04-22 13:08:30 +07:00
kaniini
7fcbda702e
Merge branch 'rework-emoji-management' into 'develop'
...
Remove finmoji and add a way to download emojis in packs
Closes #817 and #821
See merge request pleroma/pleroma!1073
2019-04-22 02:07:19 +00:00
Roman Chvanikov
4908e0eeee
Fix Credo warning
2019-04-21 23:24:33 +07:00
Roman Chvanikov
eeb093631c
Fix Credo warning
2019-04-21 23:19:36 +07:00
Roman Chvanikov
e56afefef9
Refactor conversation function in MastodonAPIController to use a View
2019-04-21 23:14:27 +07:00
Roman Chvanikov
2662bea4e0
Add accounts and last_status to conversation read response
2019-04-21 20:26:13 +07:00
Ivan Tashkinov
9256d2d4b4
[ #923 ] Refactored OAuthController#authorize definitions, added test.
2019-04-21 10:51:32 +03:00
eugenijm
375fd21055
Set correct values in the MastoAPI reblog status view
2019-04-21 05:40:22 +03:00
Roman Chvanikov
24073f829f
Refactor query to return only 1 message instead of 20
2019-04-21 00:40:41 +07:00
Ekaterina Vaartis
52ed287e87
Fix incorrect multiple emoji tag handling introduced in initial impl
2019-04-20 11:17:17 +03:00
eugenijm
fa48532387
Handle reblogs
on the first follow request in MastoAPI
2019-04-20 04:39:49 +03:00
kaniini
9da8b287f8
Merge branch 'feature/database-compaction' into 'develop'
...
database compaction
See merge request pleroma/pleroma!473
2019-04-19 16:55:33 +00:00
Alexander Strizhakov
ada384207b
typo fix
...
docs for RelMe provider
2019-04-19 07:50:21 +00:00
lambda
218d96a26b
Merge branch '923_oauth_consumer_refactoring_ci' into 'develop'
...
OAuth consumer params handling refactoring
See merge request pleroma/pleroma!1047
2019-04-19 07:49:26 +00:00
rinpatch
f9865cf943
Stream out deletes, mistakingly removed when resolving merge conflicts
2019-04-19 00:47:02 +03:00
Haelwenn
eba3db0966
Merge branch 'bugfix/filter-boosted-blocks' into 'develop'
...
activitypub: fix filtering of boosts from blocked users
See merge request pleroma/pleroma!1074
2019-04-18 18:29:57 +00:00
Mark Felder
1aa4994f6d
Do not require authentication for user search in MastoAPI
2019-04-18 12:44:25 -05:00
rinpatch
83589ca6a5
Merge branch 'develop' into feature/database-compaction
2019-04-18 12:56:38 +03:00
rinpatch
ac04311b3f
Fix search in TwitterAPI
2019-04-18 10:24:06 +03:00
rinpatch
6069d0fd36
Fix object search depending on embeded object
2019-04-18 09:28:20 +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
35ac672b8d
Remove containment tests from transmogrifier and fix thread visibility solver
2019-04-17 17:59:15 +03:00
rinpatch
8e4d950f31
Remove updating reply count for embeded objects
2019-04-17 15:54:09 +03:00
rinpatch
a53b917e7f
oof
2019-04-17 14:55:26 +03:00
rinpatch
ad681877df
Make credo happy
2019-04-17 14:52:01 +03:00
rinpatch
e641651e2b
Fix unbookmarking
2019-04-17 14:27:02 +03:00
rinpatch
b09ae02c04
Added some more normalization calls all in mastodon api controller
2019-04-17 13:04:58 +03:00
rinpatch
462028688b
Fix pinned posts relying on embded objects
2019-04-17 12:34:19 +03:00
rinpatch
627e5a0a49
Merge branch 'develop' into feature/database-compaction
2019-04-17 12:22:32 +03:00
Ivan Tashkinov
128aae05f3
[ #923 ] Minor semantic adjustment.
2019-04-17 11:33:21 +03:00
kaniini
02a53d00c9
Merge branch 'fix/remote-follow-auth' into 'develop'
...
Fix: remote follows should not ask user to log-in again for authorization
See merge request pleroma/pleroma!1060
2019-04-16 18:40:56 +00:00
Haelwenn
cde7711b12
Merge branch 'bugfix/relax-spam-protection' into 'develop'
...
activitypub: allow indirect messages from users being followed at a personal inbox
See merge request pleroma/pleroma!1069
2019-04-16 18:38:11 +00:00
Normandy
d4a749cfb2
Handle new-style mastodon follow lists
...
Fixes https://git.pleroma.social/pleroma/pleroma/issues/814
2019-04-16 18:35:38 +00:00
William Pitcock
750b369d04
activitypub: allow indirect messages from users being followed at a personal inbox
2019-04-16 18:31:12 +00:00
Hakurei Reimu
6e26ac10a3
make Pleroma.Endpoint use extra_cookie_attrs in config
2019-04-16 22:20:56 +08:00
lain
76999c73a7
Conversation: Add accounts to output.
2019-04-15 22:28:42 +02:00
lain
0da985182f
Conversation: Return full status object, id is a string.
2019-04-15 21:58:58 +02:00
lambda
56956de6fa
Merge branch 'fix/status-reblogged' into 'develop'
...
Assign reblogged in the Mastodon reblog status view
Closes #812
See merge request pleroma/pleroma!1057
2019-04-15 10:26:23 +00:00
lambda
f358295cbe
Merge branch 'unfollow-oneself' into 'develop'
...
Consistent response for self follow/unfollow
Closes #819
See merge request pleroma/pleroma!1061
2019-04-15 10:24:37 +00:00
eugenijm
27d78dc526
Use User.get_cached_by*
2019-04-15 12:37:49 +03:00
rinpatch
5d73dca064
Remove inReplyToStatusId
2019-04-15 11:50:36 +03:00
eugenijm
507e7821e3
Handle follow/unfollow directed to themselves
2019-04-15 10:21:18 +03:00
eugenijm
679a8ef629
Assign reblogged in the Mastodon reblog status view
2019-04-14 11:35:15 +03:00
Egor
f9af90c5aa
Revert "simplify mentions escape"
...
This reverts commit f3e06a1030636f24f7129dd93bb9780e67fb7de1.
2019-04-12 19:25:53 +00: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
lambda
57d5ff57d6
Merge branch 'fix/732-password-align' into 'develop'
...
password reset page labels align
See merge request pleroma/pleroma!986
2019-04-12 09:13:30 +00:00
Alexander Strizhakov
711ade961e
adding destroy multiple for mastofe
2019-04-12 02:28:46 +00:00
Alexander Strizhakov
e03d24af96
in_reply_to_id - null
2019-04-12 02:21:32 +00:00
kaniini
31c06dba5a
Merge branch 'fix/hackney_max_body_param' into 'develop'
...
Add `with_body: true` to requests relying on `max_body: val`
Closes #778
See merge request pleroma/pleroma!1049
2019-04-11 17:54:31 +00:00
Roman Chvanikov
4615e56219
Add with_body: true
to requests relying on max_body: val
2019-04-12 00:16:33 +07: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
Ivan Tashkinov
c3f12cf3c3
[ #923 ] OAuth consumer params handling refactoring.
...
Registration and authorization-related params are wrapped in "authorization" in order to reduce edge cases number and simplify handling logic.
2019-04-10 21:40:38 +03:00
lain
c352a0aba6
Conversations: Make tests run.
2019-04-10 17:48:31 +02:00
lain
280172f6f6
Conversations: Create or bump on inserting a dm.
2019-04-10 16:33:45 +02:00
lambda
e5d553aa45
Merge branch 'feature/767-multiple-use-invite-token' into 'develop'
...
Feature/767 multiple use invite token
See merge request pleroma/pleroma!1032
2019-04-10 10:10:08 +00:00
Sadposter
be8350baa2
Merge branch 'develop' into feature/user-status-subscriptions
2019-04-10 10:44:54 +01:00
lambda
c8440b5e0c
Merge branch 'fix/emoji-api-nonsense' into 'develop'
...
Change response format of /api/pleroma/emoji so it makes sense
See merge request pleroma/pleroma!1038
2019-04-10 06:22:51 +00:00
Haelwenn (lanodan) Monnier
9c1b36856b
s/Pleroma.UserEmail/Pleroma.Emails.UserEmail/
2019-04-10 06:33:20 +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
kaniini
0ab563d334
Merge branch 'hotfix/fix_undefined_summary' into 'develop'
...
transmogrifier.ex: Add fix_summary/1
See merge request pleroma/pleroma!1039
2019-04-10 02:10:47 +00:00
kaniini
97395e013e
Merge branch 'notification-pleroma-settings' into 'develop'
...
Notification controls
Closes #738
See merge request pleroma/pleroma!988
2019-04-10 02:10:31 +00:00
Haelwenn (lanodan) Monnier
cf9ba8fe1b
transmogrifier.ex: Add fix_summary/1
...
MRF.KeywordPolicy assumes that summary is present in a activity,
and this would probably simplify code elsewhere too anyway.
2019-04-10 02:32:04 +02:00
rinpatch
b57b43027c
Change response format of /api/pleroma/emoji to the one that actually makes sense
2019-04-09 23:20:31 +03:00
Sadposter
589629cf3e
Used cached user resources in subscriptions
2019-04-08 15:56:14 +01:00
lain
a9f805c871
Merge remote-tracking branch 'origin/develop' into features/mastoapi/2.6.0-conversations
2019-04-08 14:10:51 +02:00
Egor Kislitsyn
9abf832b03
Merge remote-tracking branch 'pleroma/develop' into use-jobs-in-webpush
2019-04-08 18:48:10 +07:00
lambda
e19590c93f
Merge branch 'improve_upgrade_user_from_ap_id' into 'develop'
...
Improve Transmogrifier.upgrade_user_from_ap_id/2
See merge request pleroma/pleroma!1019
2019-04-08 11:42:20 +00:00
lambda
fd45cab9ec
Merge branch 'twitter_oauth' into 'develop'
...
OAuth consumer (sign in / sign up with external provider)
See merge request pleroma/pleroma!923
2019-04-08 11:41:50 +00:00
Alexander Strizhakov
36c0a10fdf
adding language tag
2019-04-08 11:03:10 +00:00
lambda
23067908de
Merge branch 'feature/770-add-emoji-tags' into 'develop'
...
Feature/770 add emoji tags
See merge request pleroma/pleroma!998
2019-04-08 09:50:00 +00:00
Egor Kislitsyn
c3d5c3513a
Merge remote-tracking branch 'pleroma/develop' into use-jobs-in-webpush
2019-04-08 16:46:59 +07:00
Egor Kislitsyn
a1a854646e
Merge branch 'develop' into use-jobs-in-webpush
2019-04-08 16:29:20 +07:00