summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2022-07-03Merge branch 'image_description_from_exif_data' into 'develop'Haelwenn
Use EXIF data of image for image description See merge request pleroma/pleroma!3535
2022-07-03Merge branch 'bugfix/mime-validation-no-list' into 'develop'Haelwenn
Bugfix: Validate mediaType only by it's format See merge request pleroma/pleroma!3597
2022-07-03Merge branch 'from/upstream-develop/tusooa/server-announcements' into 'develop'Haelwenn
Server announcements (1st pass) See merge request pleroma/pleroma!3643
2022-07-01Descriptions from exif data with only whitespeces are considered emptyIlja
I noticed that pictures taken with Ubuntu-Touch have whitespace in one of the fields This should just be ignored imo
2022-07-01update moduledocIlja
2022-07-01Better way of getting keysIlja
I used keyword_list[:key], but if the key doesn't exist, it will return nil. I actually expect a list and further down the code I use that list. I believe the key should always be present, but in case it's not, it's better to return an empty list instead of nil. That way the code wont fail further down the line.
2022-07-01Add deprecation warningsIlja
2022-07-01Rename the Exiftool moduleIlja
No migrations or checks yet
2022-07-01Rename the new moduleIlja
2022-07-01Use EXIF data of image to prefill image descriptionIlja
During attachment upload Pleroma returns a "description" field. Pleroma-fe has an MR to use that to pre-fill the image description field, <https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1399> * This MR allows Pleroma to read the EXIF data during upload and return the description to the FE * If a description is already present (e.g. because a previous module added it), it will use that * Otherwise it will read from the EXIF data. First it will check -ImageDescription, if that's empty, it will check -iptc:Caption-Abstract * If no description is found, it will simply return nil, just like before * When people set up a new instance, they will be asked if they want to read metadata and this module will be activated if so This was taken from an MR i did on Pleroma and isn't finished yet.
2022-05-31hackney adapter helper & reverse proxy client: enable TLSv1.3Pierre-Louis Bonicoli
The list of TLS versions was added by 8bd2b6eb138ace3408a03c78ecc339fc35b19f10 when hackney version was pinned to 1.15.2. Later hackney version was upgraded (166455c88441b22455d996ed528ed4804514a3c0) but the list of TLS versions wasn't removed. From the hackney point of view, this list has been replaced by the OTP defaults since 0.16.0 (734694ea4e24f267864c459a2f050e943adc6694). It looks like the same issue already occurred before: 0cb7b0ea8477bdd7af2e5e9071843be5b8623dff. A way to test this issue (where example.com is an ActivityPub site which uses TLSv1.3 only): $ PLEROMA_CONFIG_PATH=/path/to/config.exs pleroma start_iex Erlang/OTP 22 [erts-10.7.2.16] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe] Erlang/OTP 22 [erts-10.7.2.16] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1] [hipe] Interactive Elixir (1.10.4) - press Ctrl+C to exit (type h() ENTER for help) iex(pleroma@127.0.0.1)2> Pleroma.Object.Fetcher.fetch_and_contain_remote_object_from_id("https://example.com/@/Nick/") {:error, {:tls_alert, {:protocol_version, 'TLS client: In state hello received SERVER ALERT: Fatal - Protocol Version\n'}}} With this patch, the output is the expected one: iex(pleroma@127.0.0.1)3> Pleroma.Object.Fetcher.fetch_and_contain_remote_object_from_id("https://example.com/@/Nick/") {:error, {:ok, %{ "@context" => [ "https://www.w3.org/ns/activitystreams", "https://w3id.org/security/v1", %{ "Emoji" => "toot:Emoji", "Hashtag" => "as:Hashtag", "atomUri" => "ostatus:atomUri", "conversation" => "ostatus:conversation", "featured" => "toot:featured", "focalPoint" => %{"@container" => "@list", "@id" => "toot:focalPoint"}, "inReplyToAtomUri" => "ostatus:inReplyToAtomUri", "manuallyApprovesFollowers" => "as:manuallyApprovesFollowers", "movedTo" => "as:movedTo", "ostatus" => "http://ostatus.org#", "sensitive" => "as:sensitive", "toot" => "http://joinmastodon.org/ns#" } ], "endpoints" => %{"sharedInbox" => "https://example.com/inbox"}, "followers" => "https://example.com/@/Nick/followers", "following" => nil, "icon" => %{ "type" => "Image", "url" => "https://example.com/static/media/[...].png" }, "id" => "https://example.com/@/Nick/", "inbox" => "https://example.com/@/Nick/inbox", "liked" => nil, "name" => "Nick", "outbox" => "https://example.com/@/Nick/outbox", "preferredUsername" => "Nick", "publicKey" => %{ "id" => "https://example.com/@/Nick/#main-key", "owner" => "https://example.com/@/Nick/", "publicKeyPem" => "[...] }, "summary" => "", "type" => "Person", "url" => "https://example.com/@/Nick/" }} A way to test the reverse proxy bits of this issue (where example.com allows TLSv1.3 only): iex(pleroma@127.0.0.1)1> Pleroma.ReverseProxy.Client.Hackney.request("GET", "https://example.com", [], []) {:error, {:tls_alert, {:protocol_version, 'TLS client: In state hello received SERVER ALERT: Fatal - Protocol Version\n'}}}
2022-05-18StealEmojiPolicy: fix String rejected_shortcodesHélène
* rejected_shortcodes is defined as a list of strings in the configuration description. As such, database-based configuration was led to handle those settings as strings, and not as the actually expected type, Regex. * This caused each message passing through this MRF, if a rejected shortcode was set and the emoji did not exist already on the instance, to fail federating, as an exception was raised, swiftly caught and mostly silenced. * This commit fixes the issue by introducing new behavior: strings are now handled as perfect matches for an emoji shortcode (meaning that if the emoji-to-be-pulled's shortcode is in the blacklist, it will be rejected), while still supporting Regex types as before.
2022-05-08Merge branch 'improve_anti_followbot_policy' into 'develop'Haelwenn
Also use actor_type to determine if an account is a bot in antiFollowbotPolicy Closes #2561 See merge request pleroma/pleroma!3498
2022-05-08Also use actor_type to determine if an account is a bot in antiFollowbotPolicyIlja
2022-05-06Skip cache when /objects or /activities is authenticatedTusooa Zhu
Ref: fix-local-public
2022-05-06Allow to skip cache in Cache plugTusooa Zhu
Ref: fix-local-public
2022-04-17Fix incorrect fallback when English is set to first languageTusooa Zhu
2022-04-02Restrict mastodon api announcements to logged-in users onlyTusooa Zhu
2022-03-20Merge branch 'from/upstream-develop/tusooa/translate-pages' into 'develop'Haelwenn
Translate backend-rendered pages See merge request pleroma/pleroma!3634
2022-03-20Merge branch 'delete_report_notifs_when_demoting_from_superuser' into 'develop'Haelwenn
Delete report notifs when demoting from superuser Closes #2840 See merge request pleroma/pleroma!3642
2022-03-18Use utc_datetime in db schemaTusooa Zhu
2022-03-17Transmogrifier: Use validating regex for "mediaType"Haelwenn (lanodan) Monnier
2022-03-17AttachmentValidator: Use custom ecto type and regex for "mediaType"Haelwenn (lanodan) Monnier
2022-03-17EctoType: Add MIME validatorHaelwenn (lanodan) Monnier
2022-03-08Format announcements into htmlTusooa Zhu
2022-03-08Add pagination to AdminAPI.AnnouncementController.indexTusooa Zhu
2022-03-08Implement update announcement admin apiTusooa Zhu
2022-03-08Remove GET /api/v1/announcements/:idTusooa Zhu
2022-03-08Show only visible announcements in MastodonAPITusooa Zhu
2022-03-08Add starts_at, ends_at and all_day parametersTusooa Zhu
2022-03-08Implement visibility filtering for announcementsTusooa Zhu
2022-03-08Correct docstring for AnnouncementController.showTusooa Zhu
2022-03-08Implement POST /api/v1/announcements/:id/dismissTusooa Zhu
2022-03-08Implement GET /api/v1/announcements/:idTusooa Zhu
2022-03-08Implement announcement read relationshipsTusooa Zhu
2022-03-08Fill properties of announcements from Mastodon API specTusooa Zhu
2022-03-08Implement first pass of announcement admin apiTusooa Zhu
CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/2836 CCBUG: https://git.pleroma.social/pleroma/pleroma/-/issues/1470
2022-03-07After code reviewIlja
Use patern matching to see if someone was superuser before
2022-03-06Support fallbacking to other languagesTusooa Zhu
2022-03-06Delete report notifs when demoting from superuserIlja
When someone isn't a superuser any more, they shouldn't see the reporsts any more either. Here we delete the report notifications from a user when that user gets updated from being a superuser to a non-superuser.
2022-03-03LintTusooa Zhu
2022-03-03Support multiple locales from userLanguage cookieTusooa Zhu
2022-03-03Support multiple locales formallyTusooa Zhu
elixir gettext current does not fully support fallback to another language [0]. But it might in the future. We adapt it so that all languages in Accept-Language headers are received by Pleroma.Web.Gettext. User.languages is now a comma-separated list. [0]: https://github.com/elixir-gettext/gettext/issues/303
2022-03-02Make lint happyTusooa Zhu
2022-03-02Fallback to a variant if the language in general is not supportedTusooa Zhu
For an example, here, zh is not supported, but zh_Hans and zh_Hant are. If the user asks for zh, we should choose a variant for them instead of fallbacking to default. Some browsers (e.g. Firefox) does not allow users to customize their language codes. For example, there is no zh-Hans, but only zh, zh-CN, zh-TW, zh-HK, etc. This provides a workaround for those users suffering from bad design decisions.
2022-03-02Allow user to register with custom languageTusooa Zhu
2022-03-02Allow update_credentials to update User.languageTusooa Zhu
2022-03-01Send emails i18n'd using backend-stored user languageTusooa Zhu
2022-03-01Make all emails translatableTusooa Zhu
2022-03-01Make mail and mailer translatableTusooa Zhu