311 Commits

Author SHA1 Message Date
Pascal Precht
43d6305157 Handle history archive magnetlink messages
This introduces the ability for status notes to handle community
history archive magnetlinks. To make this work, a few things are needed:

1. A new database table has been introduced to store message archive
   hashes. This is necessary so status nodes can determine whether or
   not they need to download a certain archive
2. The messenger's `handleRetrievedMessages()` has been exteded to take
   magnetlink messages into account
3. New APIs were added to download torrent data given a magnetlink and
   also to extract messages from downloaded archives, which are then
   later fed to `handleRetrievedMessages`

Closes #2568
2022-05-10 11:27:31 +02:00
Richard Ramos
0048aaebcc
feat: add IPFS rate limiter for downloading stickers and use http server for retrieving stickers (#2611) 2022-05-09 09:07:57 -04:00
Vitaliy Vlasov
16197dc807 Sync profile picture 2022-04-21 19:50:31 +03:00
Pascal Precht
631907839a Enable history archive support for all non-admin communities
Previously, we've turned archive support off by default, this means,
community member nodes won't try to download torrent data when they
receive a magnetlink.

This commit ensures that communities joined in the future will have
this setting on, and also all existing communities that the node
isn't admin of will have this feature enabled.
2022-04-11 15:41:36 +02:00
Parvesh Monu
3050106595 Dismiss activity center notifications of group on leave or Mark read 2022-04-06 22:41:14 +05:30
Parvesh Monu
14ed8ba5e8 Dismiss activity center notifications of community on leave or Mark read 2022-04-06 22:41:14 +05:30
Pascal Precht
7032fc9dcc Introduce community history archive routine
This introduces logic needed to:

- Create WakuMessageArchives and and indices from store waku messages
- History archive torrent data to disk and create .torrent file from
  that
- Seed and unseed history archive torrents as necessary
- Starting/stopping the torrent client
- Enabling/disabling community history support for individual components
  and starting/stopping the routine intervals accordingly

This does not yet handle magnet links (#2568)

Closes #2567
2022-04-06 13:00:33 +02:00
Andrea Maria Piana
8a5f77dc37 Address linter issues 2022-03-28 13:14:12 +01:00
Pascal Precht
3b3921f483 Make community owners store waku message payloads
This is needed so that when they are bundled into archives, receiving
nodes can still verify the messages payload using its signature.

This commit introduces a new `waku_messages` table and APIs to store
such messages. Waku message payload is store for any message that has
a topic that matches any of the admin communities chats.

Closes #2566
2022-03-28 11:24:23 +02:00
Samuel Hawksby-Robinson
e67592d556
Sync Settings (#2478)
* Sync Settings

* Added valueHandlers and Database singleton

Some issues remain, need a way to comparing incoming sql.DB to check if the connection is to a different file or not. Maybe make singleton instance per filename

* Added functionality to check the sqlite filename

* Refactor of Database.SaveSyncSettings to be used as a handler

* Implemented inteface for setting sync protobuf factories

* Refactored and completed adhoc send setting sync

* Tidying up

* Immutability refactor

* Refactor settings into dedicated package

* Breakout structs

* Tidy up

* Refactor of bulk settings sync

* Bug fixes

* Addressing feedback

* Fix code dropped during rebase

* Fix for db closed

* Fix for node config related crashes

* Provisional fix for type assertion - issue 2

* Adding robust type assertion checks

* Partial fix for null literal db storage and json encoding

* Fix for passively handling nil sql.DB, and checking if elem has len and if len is 0

* Added test for preferred name behaviour

* Adding saved sync settings to MessengerResponse

* Completed granular initial sync and clock from network on save

* add Settings to isEmpty

* Refactor of protobufs, partially done

* Added syncSetting receiver handling, some bug fixes

* Fix for sticker packs

* Implement inactive flag on sync protobuf factory

* Refactor of types and structs

* Added SettingField.CanSync functionality

* Addressing rebase artifact

* Refactor of Setting SELECT queries

* Refactor of string return queries

* VERSION bump and migration index bump

* Deactiveate Sync Settings

* Deactiveated preferred_name and send_status_updates

Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
2022-03-23 18:47:00 +00:00
Pascal Precht
bf8e71cfa9 Introduce CommunitySettings to store community related settings
These are used to store settings for individual communities a
user is part of, either as member or as owner.
This included whether or not the community history archive protocol
is enabled.

This adds a new `CommunitySettings` type and adds
a migration script that introduces a new `communities_settings`
table.

It also extends the `MessengerResponse` type to include
`CommunitySettings` which are honored when communities are being
added, edited, joined or left.

Lastly, this adds a new RPC API to retreive the settings.

Closes #2564
2022-03-22 12:33:40 +01:00
Pascal Precht
64b8ad5176 Ensure community owners and members subscribe to magnetlink channel
This commit adds the special magnetlink channel that is used to
distribute community archive magnetlinks to community members.

The channel shoudn't be visible in the UI, so instead creating an
actual channel instance, it just sets up the filters.

Closes #2565
2022-03-21 12:55:45 +01:00
Andrea Maria Piana
d60a6713fe Enable mailserver cycle by default
This commit enables mailserver cycle logic by default and make a few
changes:

1) Nodes are graylisted instead of being blacklisted for a set amount of
   time. The reason is that if we blacklist, any cut in connectivity
   might result in long delays before reconnecting, especially on spotty
   connections.

2) Fixes an issue on the devp2p server, whereby the node would not
   connect to one of the static nodes since all the connection slots
   where filled. The fix is a bit inelegant, it always connects to
   static nodes, ignoring maxpeers, but it's tricky to get it to work
   since the code is clearly not written to select a specific node.

3) Adds support to pinned mailservers

4) Add retries to mailservers requests. It uses a closure for now, I
   think we should eventually have a channel etc, but I'd leave that for
   later.
2022-03-19 08:56:22 +00:00
Richard Ramos
50ec6f97e0 feat: display name 2022-03-14 13:48:34 -04:00
John M. Ngei
d244267f9a Fix: recieved shared image message not being displayed 2022-03-14 10:59:26 +03:00
Richard Ramos
9e833cd4c7 fix: add community status updates channel to list of filters on Init 2022-03-10 09:45:42 -04:00
Richard Ramos
df9c9977a5 feat: unified chat API pt. 2 2022-03-03 15:37:07 -04:00
andrey
598b83757c load audio from http server 2022-03-01 15:58:32 +01:00
jo-mut
38a16b3554 disables notifications for muted chats 2022-02-25 00:49:17 +03:00
frank
4cc53630d5 Sync bookmarks 2022-02-17 12:40:33 +00:00
frank
07b9c3c7de Sync clear history 2022-02-17 11:15:01 +00:00
flexsurfer
5925b3b7cc
http server for images (#2418)
Serve images over HTTPS

Co-authored-by: Andrea Maria Piana <andrea.maria.piana@gmail.com>
Co-authored-by: Michele Balistreri <michele@bitgamma.com>
2022-02-10 18:19:34 +01:00
Roman Volosovskyi
c0c90947ab
[#12783] Improve order of mailserver requests 2022-02-02 09:38:30 +02:00
Andrea Maria Piana
f5b8774f51 Mark messages as processed 2022-01-14 09:34:44 +00:00
Richard Ramos
98784b752a
feat: desktop mailserver cycle (#2481) 2022-01-12 12:02:01 -04:00
Michele Balistreri
9feea4fe25
dont sync chats with pending notifications (#2458)
* dont sync chats with pending notifications
* set accepted/dismissed notifications as read
* activate chat if message is sent from us
2021-12-07 17:34:43 +03:00
Roman Volosovskyi
3564630c33
Allow sending messages offline (non-datasync messages) 2021-12-07 12:12:49 +02:00
Michele Balistreri
0867458f16
Sync activity center (#2443)
sync activity center
2021-12-02 17:23:02 +03:00
Andrea Maria Piana
f60cf5cd47 Wait for p2p messages to be processed 2021-12-01 12:58:46 +00:00
Anthony Laibe
73c7ea57d1
feat: auto message (#2441)
Send message every 2 minutes to status-bot chat id
2021-11-29 14:11:55 +01:00
Parvesh Monu
a65c873b8f
Decline pending group invitations from user, when user is banned (#2437) 2021-11-25 20:51:42 +05:30
Andrea Maria Piana
6724cf4c75 Block contact endpoint 2021-11-15 18:53:35 +00:00
Andrea Maria Piana
ca6246d5f2 Set last backup 2021-11-15 18:53:35 +00:00
Andrea Maria Piana
a7b0c6c933 Backup removed & added by them contacts 2021-11-15 18:53:35 +00:00
Andrea Maria Piana
301325a22e Add backing up of contacts
We periodically check whether we should backup contacts through waku.

Currently it's not tied to any event, it will only schedule a backup on
a tick, or through the provided API endpoint.
2021-11-15 18:53:35 +00:00
Anthony Laibe
c95c29bba5 feat: Push messages to telemetry server when receiving messages 2021-11-10 09:34:14 +01:00
saledjenic
dbac362bc7
Added api points for fetching message details and message reactions (#2423)
by message id
2021-11-05 09:48:20 -04:00
Roman Volosovskyi
4a0ad1cf69
[pairing] Sync read messages 2021-11-02 10:02:27 +02:00
Andrea Maria Piana
2d13fa1e25 Add logging of message-id 2021-11-01 11:53:08 +00:00
Parvesh Monu
c20e8ebdef
Store Highlight field for identify new chats (#2384) 2021-10-21 22:34:56 +05:30
Andrea Maria Piana
48b466674b Replay skipped migration 2021-10-20 18:41:00 +01:00
Andrea Maria Piana
c9b66d18da Send picture in private chats 2021-10-20 18:41:00 +01:00
Andrea Maria Piana
75aebd94ab Republish image on change of visibility settings 2021-10-08 14:36:30 +01:00
Brian Sztamfater
4d3c04e41c
Modify CanonicalImage function to return large or thumb image if available (#2300) 2021-10-07 01:42:27 -03:00
Roman Volosovskyi
4de912baba [pairing] Sync chat removing 2021-10-06 12:38:57 +01:00
Andrea Maria Piana
5e83d8e95e Add HasAddedUs field 2021-10-04 12:19:15 +02:00
Andrea Maria Piana
438c2e8883 contacts performance 2021-10-04 12:19:15 +02:00
Samuel Hawksby-Robinson
d9ea6a910e Tests and linting 2021-09-30 13:02:41 +01:00
Samuel Hawksby-Robinson
0ff7a864ec Attempting to resolved 'no such column: profile_pictures_show_to'
Have resolved the settings table not found but now the column is not migrating for some reason
2021-09-30 13:02:41 +01:00
Samuel Hawksby-Robinson
3a1349141a Refactor so both Messenger and MessageHandler could use code from a shsared source 2021-09-30 13:02:41 +01:00