models

package
v0.8.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2024 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TasksTypeUpIpfsAndBroadcastTweet = "syncIpfsAndBroadcastTweet"

	TasksStatusWait     = 0
	TasksStatusIng      = 1
	TasksStatusComplete = 2
	TasksStatusFail     = 3
)
View Source
const (
	UserSyncStatusWait     = 0
	UserSyncStatusIng      = 1
	UserSyncStatusComplete = 2

	UserSyncTimeoutDuration = p2pNet.OnlineNodesSyncDuration * 4
)

Variables

This section is empty.

Functions

func ClearCurrentUser

func ClearCurrentUser()

func SetCurrentUser

func SetCurrentUser(usrNode *p2pNet.UserNode) error

Types

type Follow

type Follow struct {
	UserId     string `gorm:"type:varchar(100);NOT NULL;comment:用户的id;uniqueIndex:idx_uid_follow_unique;index"`
	FollowedID string `gorm:"type:varchar(100);NOT NULL;comment:关注的用户id;uniqueIndex:idx_uid_follow_unique;index"`
	CreatedAt  int64  `gorm:"index;default:0;autoCreateTime"`
	UpdatedAt  int64  `gorm:"autoUpdateTime;default:0"`
}

func (*Follow) TableName

func (flw *Follow) TableName() string

type Tasks

type Tasks struct {
	ID                           string `gorm:"primarykey"`
	Type                         string `gorm:"default:'';comment:执行类型,根据不同的type分配不同的方法"`
	Sort                         int64  `gorm:"default:100;comment:执行顺序优先级"`
	Status                       uint8  `gorm:"default:0;comment:执行状态:0待执行,1执行中,2执行完成, 3执行失败;index:status"`
	NextExecTime                 int64  `` /* 182-byte string literal not displayed */
	MaxExecLockTime              int64  `` /* 159-byte string literal not displayed */
	mField.FieldsExtendsJsonType        //执行的上下文数据
	mField.FieldsTimeUnixModel
}

func AddUpIpfsAndBroadcastTweetTask

func AddUpIpfsAndBroadcastTweetTask(tw *Tweets, sort int64) (*Tasks, error)

func (*Tasks) BeforeCreate

func (ts *Tasks) BeforeCreate(tx *gorm.DB) error

func (*Tasks) TableName

func (ts *Tasks) TableName() string

type TweetJson

type TweetJson struct {
	PreviousCid string
	UserId      string
	Nonce       uint64
	Content     string
	Attachment  string
	Sign        string
	TopicTag    string
	OriginTwId  string
	OriginTw    *Tweets
	CreatedAt   int64
}

func NewTweetJson

func NewTweetJson(tw *Tweets, latestCid string) *TweetJson

type Tweets

type Tweets struct {
	Id         string `gorm:"primarykey;type:varchar(100);NOT NULL;comment:sha2(用户地址+nonce) 然后进行base58编码;"`
	UserId     string `gorm:"type:varchar(100);NOT NULL;comment:用户的id,即用户地址;index:idx_uid_nonce,unique"`
	Content    string `gorm:"NOT NULL;comment:推文内容"`
	Attachment string `gorm:"comment:附件"`
	Nonce      uint64 `gorm:"default:0;comment:根据用户的推文自增;index:idx_uid_nonce,unique"`
	Sign       string `gorm:"type:varchar(200);NOT NULL;comment:签名(用户地址+nonce+推文),然后base58编码;index:tweet_sign,unique"`
	TopicTag   string `gorm:"type:varchar(200);default:'';comment:话题标签;index:topic_tag"`

	UserInfo     *User  `gorm:"foreignKey:UserId;references:Id"` //用于发送消息时嵌入的用户信息 这个数据不保存在数据库中
	CreatedAt    int64  `gorm:"index:idx_created_at;autoCreateTime;comment:推文的发布时间"`
	UpdatedAt    int64  `gorm:"autoUpdateTime;default:0;comment:更新时间 也就是同步到推文的时间"`
	OriginUserId string `gorm:"type:varchar(100);default:'';comment:作者id,如果没有被转发 则为空字符串;index:idx_origin_user_id"`
	OriginTwId   string `gorm:"varchar(100);comment:原始文章Id;index:idx_origin_tw_id"`

	OriginTw *Tweets `gorm:"foreignKey:OriginTwId;references:Id"`
}

func (*Tweets) BeforeCreate

func (tw *Tweets) BeforeCreate(tx *gorm.DB) (err error)

func (*Tweets) BeforeUpdate

func (tw *Tweets) BeforeUpdate(tx *gorm.DB) (err error)

func (*Tweets) Create

func (tw *Tweets) Create(tx *gorm.DB) error

func (*Tweets) GenerateId

func (tw *Tweets) GenerateId()

func (*Tweets) GenerateSignMsg

func (tw *Tweets) GenerateSignMsg() string

func (*Tweets) GenerateSysParams

func (tw *Tweets) GenerateSysParams()

生成twId sign参数

func (*Tweets) GetSignMsg

func (tw *Tweets) GetSignMsg() string

func (*Tweets) TableName

func (tw *Tweets) TableName() string

func (*Tweets) UpIpfs

func (tw *Tweets) UpIpfs(usr *User) (string, error)

type User

type User struct {
	Id                         string `gorm:"primarykey;type:varchar(100);NOT NULL;comment:用户id 保存为以太坊的地址"`
	PeerId                     string `gorm:"type:varchar(100);NOT NULL;index:idx_peer_id,unique;comment:节点id 可为空"`
	Name                       string `gorm:"type:varchar(100);NOT NULL;comment:用户昵称;index:idx_user_name"`
	Desc                       string `gorm:"type:varchar(200);comment:用户简介;default:''"`
	LatestCid                  string `gorm:"type:varchar(200);comment:最新一条cid;default:''"`
	Avatar                     string `gorm:"type:text;comment:用户简介;"`
	Nonce                      uint64 `gorm:"default:0;comment:最新nonce"`
	LocalNonce                 uint64 `gorm:"default:0;comment:本地nonce"`
	LocalUser                  uint64 `gorm:"default:0;comment:是否是本地用户"`
	Sign                       string `gorm:"type:varchar(200);NOT NULL;comment:用户签名;default:''"`
	PubKey                     string `gorm:"type:text;comment:用户公钥"`
	IpfsHash                   string `gorm:"type:varchar(200);comment:ipfs的hash地址;default:''"`
	HasPeerId                  uint8  `` /* 234-byte string literal not displayed */
	LastCheckTweetTime         int64  `gorm:"default:0;index:last_check_tweet_time"`
	mField.FieldsTimeUnixModel `json:"-"`
	mField.FieldsExtendsJsonType
	UpdatedSignUnix int64            `gorm:"default:0;comment:更新时间戳,用于签名使用"`
	UsrNode         *p2pNet.UserNode `gorm:"-" json:"-"`
}

func GetCurrentUser

func GetCurrentUser() *User

func GetOrCreateUserByPri

func GetOrCreateUserByPri(pri *keys.PrivateKey) (*User, error)

func GetOrCreateUserByPub

func GetOrCreateUserByPub(pub *ecdsa.PublicKey) (*User, error)

通过公钥创建一个用户 生成一个临时的peerId

func GetUserByIpfs

func GetUserByIpfs(h string) (*User, error)

func GetUserByKeyName

func GetUserByKeyName(dir, key string, autoCreate bool) (*User, error)

func (*User) AfterCreate

func (usr *User) AfterCreate(tx *gorm.DB) (err error)

func (*User) BeforeUpdate

func (usr *User) BeforeUpdate(tx *gorm.DB) (err error)

func (*User) GenerateSignMsg

func (usr *User) GenerateSignMsg() string

主要用户生成签名

func (*User) GetSignMsg

func (usr *User) GetSignMsg() string

验证签名时调用

func (*User) GetUserInfoToPublic

func (usr *User) GetUserInfoToPublic() *User

返回用户可以公开的字段信息

func (*User) ReloadSign

func (usr *User) ReloadSign(isSave bool) error

func (*User) ReloadTmpPeerId

func (usr *User) ReloadTmpPeerId()

加载一个临时的节点id

func (*User) SetSyncStatusComplete

func (usr *User) SetSyncStatusComplete(tx *gorm.DB) error

SetSyncStatusComplete 设置成功同步状态

func (*User) SetSyncStatusIng

func (usr *User) SetSyncStatusIng() error

func (*User) SyncStatusComplete

func (usr *User) SyncStatusComplete() bool

func (*User) SyncStatusIng

func (usr *User) SyncStatusIng() bool

func (*User) SyncStatusWait

func (usr *User) SyncStatusWait() bool

func (*User) TableName

func (usr *User) TableName() string

func (*User) UploadIpfs

func (usr *User) UploadIpfs(tx *gorm.DB) error

type UserAskSync

type UserAskSync struct {
	UserId          string `gorm:"type:varchar(100);primarykey"`
	SyncStatus      uint8  `` /* 138-byte string literal not displayed */
	SyncTimeoutUnix int64  `` /* 155-byte string literal not displayed */
}

func (*UserAskSync) TableName

func (uas *UserAskSync) TableName() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL