chore(no-torrent)_: Copy and pasted Andrea's work

https://github.com/status-im/status-go/pull/5295
This commit is contained in:
Samuel Hawksby-Robinson 2024-06-05 12:53:09 +01:00
parent 88343eed50
commit 66cd084084
6 changed files with 53 additions and 57 deletions

View File

@ -189,7 +189,7 @@ statusgo-android: ##@cross-compile Build status-go for Android
gomobile init; \
gomobile bind -v \
-target=android -ldflags="-s -w" \
-tags '$(BUILD_TAGS)' \
-tags '$(BUILD_TAGS) disable_torrent' \
$(BUILD_FLAGS_MOBILE) \
-o build/bin/statusgo.aar \
github.com/status-im/status-go/mobile
@ -201,7 +201,7 @@ statusgo-ios: ##@cross-compile Build status-go for iOS
gomobile init; \
gomobile bind -v \
-target=ios -ldflags="-s -w" \
-tags 'nowatchdog $(BUILD_TAGS)' \
-tags 'nowatchdog $(BUILD_TAGS) disable_torrent' \
$(BUILD_FLAGS_MOBILE) \
-o build/bin/Statusgo.xcframework \
github.com/status-im/status-go/mobile

View File

@ -158,6 +158,47 @@ type HistoryArchiveDownloadTask struct {
Cancelled bool
}
type HistoryArchiveDownloadTaskInfo struct {
TotalDownloadedArchivesCount int
TotalArchivesCount int
Cancelled bool
}
type ArchiveContract interface {
CreateHistoryArchiveTorrentFromMessages(communityID types.HexBytes, messages []*types.Message, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)
CreateHistoryArchiveTorrentFromDB(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)
SaveMessageArchiveID(communityID types.HexBytes, hash string) error
GetMessageArchiveIDsToImport(communityID types.HexBytes) ([]string, error)
SetMessageArchiveIDImported(communityID types.HexBytes, hash string, imported bool) error
ExtractMessagesFromHistoryArchive(communityID types.HexBytes, archiveID string) ([]*protobuf.WakuMessage, error)
GetHistoryArchiveMagnetlink(communityID types.HexBytes) (string, error)
LoadHistoryArchiveIndexFromFile(myKey *ecdsa.PrivateKey, communityID types.HexBytes) (*protobuf.WakuMessageArchiveIndex, error)
}
type TorrentContract interface {
ArchiveContract
LogStdout(string, ...zap.Field)
SetOnline(bool)
SetTorrentConfig(*params.TorrentConfig)
StartTorrentClient() error
Stop() error
IsReady() bool
GetCommunityChatsFilters(communityID types.HexBytes) ([]*transport.Filter, error)
GetCommunityChatsTopics(communityID types.HexBytes) ([]types.TopicType, error)
GetHistoryArchivePartitionStartTimestamp(communityID types.HexBytes) (uint64, error)
CreateAndSeedHistoryArchive(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) error
StartHistoryArchiveTasksInterval(community *Community, interval time.Duration)
StopHistoryArchiveTasksInterval(communityID types.HexBytes)
SeedHistoryArchiveTorrent(communityID types.HexBytes) error
UnseedHistoryArchiveTorrent(communityID types.HexBytes)
IsSeedingHistoryArchiveTorrent(communityID types.HexBytes) bool
GetHistoryArchiveDownloadTask(communityID string) *HistoryArchiveDownloadTask
AddHistoryArchiveDownloadTask(communityID string, task *HistoryArchiveDownloadTask)
DownloadHistoryArchivesByMagnetlink(communityID types.HexBytes, magnetlink string, cancelTask chan struct{}) (*HistoryArchiveDownloadTaskInfo, error)
TorrentFileExists(communityID string) bool
}
func (t *HistoryArchiveDownloadTask) IsCancelled() bool {
t.m.RLock()
defer t.m.RUnlock()

View File

@ -1,6 +1,5 @@
//go:build (!android || !ios) && (windows || linux || darwin)
// +build !android !ios
// +build windows linux darwin
//go:build !disable_torrent
// +build !disable_torrent
package communities
@ -24,17 +23,6 @@ import (
"go.uber.org/zap"
)
type ArchiveContract interface {
CreateHistoryArchiveTorrentFromMessages(communityID types.HexBytes, messages []*types.Message, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)
CreateHistoryArchiveTorrentFromDB(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) ([]string, error)
SaveMessageArchiveID(communityID types.HexBytes, hash string) error
GetMessageArchiveIDsToImport(communityID types.HexBytes) ([]string, error)
SetMessageArchiveIDImported(communityID types.HexBytes, hash string, imported bool) error
ExtractMessagesFromHistoryArchive(communityID types.HexBytes, archiveID string) ([]*protobuf.WakuMessage, error)
GetHistoryArchiveMagnetlink(communityID types.HexBytes) (string, error)
LoadHistoryArchiveIndexFromFile(myKey *ecdsa.PrivateKey, communityID types.HexBytes) (*protobuf.WakuMessageArchiveIndex, error)
}
type ArchiveManager struct {
torrentConfig *params.TorrentConfig

View File

@ -1,6 +1,5 @@
//go:build (!windows || !linux || !darwin) && (android || ios)
// +build !windows !linux !darwin
// +build android ios
//go:build disable_torrent
// +build disable_torrent
package communities

View File

@ -1,6 +1,5 @@
//go:build (!android || !ios) && (windows || linux || darwin)
// +build !android !ios
// +build windows linux darwin
//go:build !disable_torrent
// +build !disable_torrent
package communities
@ -50,36 +49,6 @@ type EncodedArchiveData struct {
bytes []byte
}
type HistoryArchiveDownloadTaskInfo struct {
TotalDownloadedArchivesCount int
TotalArchivesCount int
Cancelled bool
}
type TorrentContract interface {
ArchiveContract
LogStdout(string, ...zap.Field)
SetOnline(bool)
SetTorrentConfig(*params.TorrentConfig)
StartTorrentClient() error
Stop() error
IsReady() bool
GetCommunityChatsFilters(communityID types.HexBytes) ([]*transport.Filter, error)
GetCommunityChatsTopics(communityID types.HexBytes) ([]types.TopicType, error)
GetHistoryArchivePartitionStartTimestamp(communityID types.HexBytes) (uint64, error)
CreateAndSeedHistoryArchive(communityID types.HexBytes, topics []types.TopicType, startDate time.Time, endDate time.Time, partition time.Duration, encrypt bool) error
StartHistoryArchiveTasksInterval(community *Community, interval time.Duration)
StopHistoryArchiveTasksInterval(communityID types.HexBytes)
SeedHistoryArchiveTorrent(communityID types.HexBytes) error
UnseedHistoryArchiveTorrent(communityID types.HexBytes)
IsSeedingHistoryArchiveTorrent(communityID types.HexBytes) bool
GetHistoryArchiveDownloadTask(communityID string) *HistoryArchiveDownloadTask
AddHistoryArchiveDownloadTask(communityID string, task *HistoryArchiveDownloadTask)
DownloadHistoryArchivesByMagnetlink(communityID types.HexBytes, magnetlink string, cancelTask chan struct{}) (*HistoryArchiveDownloadTaskInfo, error)
TorrentFileExists(communityID string) bool
}
type TorrentManager struct {
torrentConfig *params.TorrentConfig
torrentClient *torrent.Client
@ -100,7 +69,7 @@ type TorrentManager struct {
publisher Publisher
}
// NewTorrentManager this function is only built and called when the "windows || linux || darwin" build OS criteria are met
// NewTorrentManager this function is only built and called when the "disable_torrent" build tag is not set
// In this case this version of NewTorrentManager will return the full Desktop TorrentManager ensuring that the
// build command will import and build the torrent deps for the Desktop OSes.
// NOTE: It is intentional that this file contains the identical function name as in "manager_torrent_mobile.go"

View File

@ -1,6 +1,5 @@
//go:build (!windows || !linux || !darwin) && (android || ios)
// +build !windows !linux !darwin
// +build android ios
//go:build disable_torrent
// +build disable_torrent
package communities
@ -21,7 +20,7 @@ type TorrentManagerMobile struct {
logger *zap.Logger
}
// NewTorrentManager this function is only built and called when the "android || ios" build OS criteria are met
// NewTorrentManager this function is only built and called when the "disable_torrent" build tag is set
// In this case this version of NewTorrentManager will return the mobile "nil" TorrentManagerMobile ensuring that the
// build command will not import or build the torrent deps for the mobile OS.
// NOTE: It is intentional that this file contains the identical function name as in "manager_torrent.go"