Commit Graph

587 Commits

Author SHA1 Message Date
Sale Djenic 10d0133974 fix: set only blocked flag to blocked contact for desktop app 2022-04-12 09:42:43 +02: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
osmaczko 89626d997e
Populate colorHash and colorId (#2630)
* feat: add colorId utility

it returns color id for given pubkey

* feat: populate Account with colorHash and colorId

accounts displayed to users on login page should display colorHash and
avatar fallback color (aka colorId)
2022-04-08 13:54:29 -04: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
Pascal Precht 364838532f Add torrent library dependency 2022-04-06 11:48:16 +02:00
Parvesh Monu 724689086c
return muted chats in ChatsPreview call (#2617) 2022-04-01 14:20:38 +05:30
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
Andrea Maria Piana a3c60528ef Use batches & don't shadow community var 2022-03-24 21:09:22 +00: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
Andrea Maria Piana f0d3e0419d Backup communities 2022-03-23 14:45:52 +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 86926258ee Intrododuce `NodeConfig.TorrentConfig` and CLI flags
This commit introduces a new `TorrentConfig` as per #2563 with dedicated
default values and new options/flags for the status-go CLI.

Since it's part of `NodeConfig`, which is stored per user in the
database, this commit also adds a migration script that adds a new
`torrent_config` table and database APIs to insert and retreive the
torrent config.

Closes #2563
2022-03-21 12:59:09 +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
andrey 01b6988260 QuotedMessage image from http server 2022-03-21 10:33:08 +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
Patryk Osmaczko d0f4a94f75 fix: move visual-identity service to protocol/identity
It is required to be called before RPC server is running on client side
2022-03-18 13:38:53 +01:00
Andrea Maria Piana 23b6883166
Restore ensName -> name on contact json 2022-03-17 17:28:42 +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 f9b87c4ae1 fix: add missing information 2022-03-03 15:37:07 -04:00
Richard Ramos df9c9977a5 feat: unified chat API pt. 2 2022-03-03 15:37:07 -04:00
Richard Ramos 1bffd2e64d feat: unified chat API pt. 1 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
jo-mut 7d956bef94 resolved conflicts 2022-02-24 23:11:36 +03:00
Roman Volosovskyi b559c561d8
Fix deadlock on checking pending notification 2022-02-23 20:58:08 +01:00
Richard Ramos 89370b7d7f fix: random mailserver selection when available mailservers is 1 2022-02-23 11:12:11 -04:00
Richard Ramos 353767aee6 feat: wakuext_imageServerUrl 2022-02-21 17:22:28 -04: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
Jonathan Rainville ece535aaf7
feat: add RequestCommunityInfoFromMailserverAsync (#2537)
This function doesn't wait for the response from mailservers, so the client has to rely on signals
2022-02-14 16:49:14 -05:00
Samuel Hawksby-Robinson aa8a84bf91
Fix use of absolute path not compatible with later versions of protoc (#2533) 2022-02-14 11:08:18 +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
Parvesh Monu 54b35b0510
fix activity center unique constraint error (#2524) 2022-02-09 18:45:57 +05:30
Roman Volosovskyi fb1f95a38f
Mark history as fully synced on clearing chat history 2022-02-08 13:15:52 +02:00
Samuel Hawksby-Robinson bd3f0f436b
Turning the tests back on (#2519) 2022-02-03 20:37:41 +00:00
Roman Volosovskyi 62a0439234
[#12783] fix index out of range when there are no filters 2022-02-02 16:52:50 +02:00
Roman Volosovskyi c0c90947ab
[#12783] Improve order of mailserver requests 2022-02-02 09:38:30 +02:00
Richard Ramos 6dcc059031
chore: increase mailserver request timeout (#2497) 2022-01-26 11:20:27 -04:00
Richard Ramos 52b2c5db7b
feat: verify if mailserver is pinned in cycle (#2489) 2022-01-19 08:35:19 -04: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
Parvesh Monu f1569e4bde
fix membership requests on synced devices (#2477) 2022-01-10 17:34:52 +05:30
Andrea Maria Piana fd2f3206d4 Fix flaky test for backup 2022-01-10 10:46:37 +00:00
Roman Volosovskyi 36b4ecabbf
Set joined=message.clock on syncing pubchat creation 2021-12-24 16:47:28 +02:00
Roman Volosovskyi 64589fbd1f
Fetch synced_from and synced_to from db to avoid resetting values to zero 2021-12-17 12:30:35 +02:00