aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/mod_mam
Commit message (Collapse)AuthorAgeFilesLines
* renamening: Fix newly added imports to use the new namespaceKim Alvefur2023-06-181-1/+1
|
* mod_mam: port to use util.human.io.parse_durationJonas Schäfer2022-04-281-8/+6
| | | | | | Updated by Zash, the original patch by Jonas had put the duration parsing function in util.datetime but MattJ later did the same thing but differently in f4d7fe919969
* plugins: Prefix module imports with prosody namespaceKim Alvefur2023-03-242-16/+16
|
* Merge 0.12->trunkKim Alvefur2023-01-211-5/+5
|\
| * mod_mam,mod_muc_mam: Minimize differences (reorder, copy some comments)Kim Alvefur2023-01-211-5/+5
| | | | | | | | | | Should have no functional difference, but makes it easier keeping mod_mam and mod_muc_mam in sync.
* | mod_mam: Store archives with sub-second precision timestampsKim Alvefur2022-08-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | Changes sub-second part of example timestamp to .5 in order to avoid floating point issues. Some clients use timestamps when ordering messages which can lead to messages having the same timestamp ending up in the wrong order. It would be better to preserve the order messages are sent in, which is the order they were stored in.
* | mod_mam: Silence luacheck (yay warnings in CI but not locally)Kim Alvefur2022-06-141-1/+1
| |
* | mod_mam: Clarify comment (thanks chili-b)Kim Alvefur2022-06-141-2/+6
|/ | | | | This was slightly inaccurate since 6e1af07921d1 because the conditions are more complicated now.
* mod_mam: Fix a commentKim Alvefur2021-12-111-1/+1
| | | | This is the noop that gets replaced later
* mod_mam: Allow plugging into archive decisionKim Alvefur2021-12-101-4/+13
| | | | Similar procedure as mod_csi_simple
* plugins: Update for namespace bump in XEP-0353 v0.4.0Kim Alvefur2022-01-111-1/+1
|
* mod_mam: Avoid storing bounces for messages from the bare account (thanks Ge0rG)Kim Alvefur2021-12-101-2/+12
| | | | | | This should rule out error replies to PEP notifications, which come from the account bare JID, and would be reflected back to it if they can't be delivered for some reason, e.g. s2s problems.
* mod_mam: Switch to new cron APIKim Alvefur2021-11-211-6/+1
|
* mod_mam,mod_muc_mam: Simplify deletion when multi-user-deletion is supportedKim Alvefur2021-11-301-7/+28
| | | | More code, but less of it needs to run and no extra tracking is needed.
* mod_mam: Use util.dataforms timestamp validationKim Alvefur2021-10-261-14/+5
|
* mod_mam: Merge main and RSM-specific log message here tooKim Alvefur2021-09-231-10/+10
|
* mod_mam: Reduce line count using new util.stanza attr methodKim Alvefur2021-09-121-4/+2
| | | | | Since this stanza-id was generated elsewhere in mod_mam, there should be no need for normalization.
* mod_mam: Suppress offline message broadcast for MAM clientsKim Alvefur2021-08-311-0/+7
| | | | | | | | MattJ on 09:34:24 > Zash: I think as a first step, offline messages should not be sent to > clients that request MAM https://chat.modernxmpp.org/log/modernxmpp/2021-08-31#2021-08-31-8518a542bd283686
* mod_mam: Only check for locally generated stanza-idsKim Alvefur2021-08-311-2/+5
| | | | | | Otherwise a message archived by a remote server would be incorrectly silently discarded. This should be safe from spoofing thanks to strip_stanza_id earlier in the event chain.
* mod_mam: Explain behavior with absent mod_offline in a commentKim Alvefur2021-08-311-0/+4
|
* mod_mam: "Handle" messages that have been archived in the absense of mod_offlineKim Alvefur2020-06-251-0/+7
|
* Fix various spelling errors (thanks codespell)Kim Alvefur2021-07-271-1/+1
| | | | | Also special thanks to timeless, for wordlessly reminding me to check for typos.
* mod_mam: Remove obsolete 'queryid' attribute from iq-result (thanks paul)Kim Alvefur2021-01-291-1/+1
| | | | Mentioned in xmpp:xsf@muc.xmpp.org?join
* mod_mam: Advertise extended MAM when archive storage is capableKim Alvefur2021-01-121-2/+1
|
* mod_mam: Allow querying by set of IDsKim Alvefur2021-01-121-2/+8
|
* mod_mam: Add support for before-id and after-id fieldsKim Alvefur2021-01-091-4/+9
|
* mod_mam: Implement extended MAM metadata queryKim Alvefur2020-11-301-1/+35
|
* mod_mam: Add support for page flippingKim Alvefur2020-11-301-3/+8
| | | | | This was easy. Needs tests tho, 100% chance of the logic being backwards.
* mod_mam: Advertise extended MAM 0.7.x behind a feature flagKim Alvefur2020-11-301-1/+12
| | | | | | | In order to ease testing until the extended feautres are all implemented. Also TODOs for all the sub-features.
* mod_csi_simple,mod_carbons,mod_mam: Update comment about XEP-0353Kim Alvefur2021-01-081-1/+1
| | | | It went back to Deferred
* mod_mam: Archive XEP-0353: Jingle Message InitiationKim Alvefur2020-05-091-0/+4
|
* MAM: Remove 1% of contents when reaching limits, fix #1545Kim Alvefur2020-05-051-1/+3
| | | | | | With mod\_storage\_internal this counts out to 100 messages out of 10 000, meaning should not hit the quota limit immediately until that many messages have been added again.
* mod_mam: Store only incoming errorsKim Alvefur2020-04-261-3/+4
| | | | | Unclear if clients normally ever send error messages, but there may be locally generated bounces sent on behalf of local sessions.
* mod_mam: Remove unused variables [luacheck]Kim Alvefur2020-04-231-4/+0
| | | | Logic using full vs bare JID addressing may return in the future.
* mod_mam: Don't store any groupchat messagesKim Alvefur2020-04-231-1/+3
| | | | | | | | The intent was to not store MUC groupchat messages, which are sent from the MUC to local full JIDs, while allowing for potential future account based group chat. However, since this function handles messages in both directions and outgoing MUC messages are sent to the bare room JID, those were stored.
* mod_mam: Make note of Experimental (or Deferred) XEPsKim Alvefur2020-04-221-0/+3
| | | | | Since these XEPs are subject to change we may need come back and double check these in the future.
* mod_mam: Save delivery failures (thanks Ge0rG)Kim Alvefur2020-04-221-0/+3
| | | | | Makes it possible to learn of delivery failure even if it came bouncing back while you were offline.
* mod_mam: Keep chat markers (thanks Ge0rG)Kim Alvefur2020-04-221-0/+3
|
* mod_mam: Respect no-store hint (thanks Ge0rG)Kim Alvefur2020-04-221-1/+2
| | | | | no-store is used in an example in XEP-0313, so obviously this is the preferred hint
* mod_mam: Fix typo in commentKim Alvefur2020-04-211-1/+1
| | | | If it is with a body then it execution does not get this far
* mod_mam: Prefer not archiving if no interesting payloads are foundKim Alvefur2020-04-211-1/+3
|
* mod_mam: Check sender of error instead of receiverKim Alvefur2020-04-211-0/+3
| | | | | | The intent is to capture errors to stanzas sent by the local user, so that they can see why a message failed to be delivered even if the error came after they went offline.
* mod_mam: Store XEP-0184 receipts and requestsKim Alvefur2020-04-211-0/+5
| | | | Happy now Ge0rG?
* mod_mam: Add more positive hints for storageKim Alvefur2020-04-211-0/+12
| | | | Mostly just lifted from mod_csi_simple
* mod_mam: Rework hints handlingKim Alvefur2020-04-211-7/+6
| | | | Improved readability and early returns definite yes/no answer.
* mod_mam: Invert check for typeKim Alvefur2020-04-211-5/+13
| | | | | This is based on code in mod_csi_simple and aiming towards being more flexible and maintainable than a couple of tests for when not to store.
* mod_mam: Log 'why' a stanza is archivedKim Alvefur2020-04-211-1/+1
| | | | | Logging of 'why not' is already done. Why not both? Will make more sense when the rules evolve a bit.
* mod_mam: Factor out "should we store this" into a functionKim Alvefur2020-04-211-13/+21
| | | | | Meant to improve readability and ease further improvements to this algorithm.
* Merge 0.11->trunkKim Alvefur2020-03-111-1/+5
|\
| * mod_mam,mod_muc_mam: Allow other work to be performed during archive cleanup ↵Kim Alvefur2020-03-111-1/+5
| | | | | | | | | | | | | | | | | | | | | | (fixes #1504) This lets Prosody handle socket related work between each step in the cleanup in order to prevent the server from being completely blocked during this. An async storage backend would not need this but those are currently rare.