利用IPFS构建短视频应用开发经历(六)

本系列文章是针对 https://blog.csdn.net/weixin_43668031/article/details/83962959 内容的实现所编写的。开发经历包括思考过程、重构和推翻重来。

到目前为止,已经完成了智能合约的编写,主要分为结构体的定义和操作方法的编写,
一共有7种结构体:

结构体 含义
User 用户
Video 视频
Videofile 视频文件
Comment 评论、弹幕
Lable 标签
Gratuity 打赏记录
Album 专辑

一共26种操作方法:我把他们分成4个类别

操作分类 方法 作用 备注 参数 返回
用户操作 setMyInfo 设置我的信息 setMyInfo(昵称,简介,头像) 无返回
用户操作 setMyNickname 设置我的昵称 setMyNickname(昵称) 无返回
用户操作 setMyProfile 设置我的简介 setMyProfile(简介) 无返回
用户操作 setMyAvatar 设置我的头像 setMyAvatar(头像) 无返回
用户操作 getUserInfo 获取用户信息 无需消耗 getUserInfo(用户地址) nickname=昵称,
profile=简介,
avatar=头像,
videoNums=用户发布的数量
视频操作 publish 发布视频 publish(标题,封面,视频信息,视频介绍,时长,文件对象,文件信息,大小,宽度,高度,帧率) articleId=视频id
视频操作 setVideoPermission 设置视频权限 setVideoPermission(视频ID,权限数值) 无返回
视频操作 setVideo 重新设置视频封面和视频信息 setVideo(视频ID,封面,视频信息 无返回
视频操作 setVideoInfo 重新设置标题和视频简介 setVideoInfo(视频ID,标题,视频信息) 无返回
视频操作 addVideofile 添加一个视频文件 addVideofile(视频ID,文件对象,文件信息,文件大小,宽度,高度,帧率) 无返回
视频操作 setFilePermission 设置视频文件的权限 setFilePermission(视频ID,文件ID,权限数值) 无返回
视频操作 getVideo 获取视频 无需消耗 getVideo(视频ID) title=标题,
cover=封面,
videoinfo=视频信息,
info=视频简介,
duration=时长,
timestamp=时间戳,
author=作者地址,
commentsNum=评论数量,
gratuityNum=打赏数量,
gratuitySum=打赏总金额
视频操作 getVideoFile 获取视频信息 无需消耗 getVideoFile(视频ID,文件ID) filename=文件地址,
fileinfo=文件信息,
size=大小,
width=宽度,
height=高度,
fps=帧率,
fileNum=文件个数
其他内容操作 makeLable 创建标签 makeLable(视频ID,标签) 无返回
其他内容操作 getVideoLable 获取标签 无需消耗 getVideoLable (视频ID,标签ID) lable=标签内容,times=标签次数
其他内容操作 makeComment 发布一个评论/弹幕 makeComment(视频ID,视频时间,评论内容) 无返回
其他内容操作 changeCommen 修改评论/弹幕 changeCommen(视频ID,评论ID,视频时间,评论内容) 无返回
其他内容操作 getVideoComment 查看评论/弹幕 无需消耗 getVideoComment (视频ID,评论ID) content=内容,
timestamp=时间戳,
videotimestamp=视频时间,
author=作者地址
其他内容操作 reward 打赏 需要指定金额 reward(视频ID) 无返回
其他内容操作 getGratuitys 查看打赏 无需消耗 getGratuitys (视频ID, 打赏ID) author=作者,
gratuity=打赏数量
专辑操作 createAlbum 创建专辑 createAlbum(专辑标题,封面,专辑信息) albumnum=专辑ID
专辑操作 editAlbum 编辑专辑 editAlbum(专辑ID,标题,封面,专辑信息) 无返回
专辑操作 createAlbumVideo 插入视频 createAlbumVideo(专辑ID,视频ID) videonum=视频的专辑序号
专辑操作 updateAlbumVideo 更新视频 updateAlbumVideo(专辑ID,专辑序号,视频ID) 无返回
专辑操作 getAlbum 获取专辑 无需消耗 getAlbum(专辑ID) title=标题,
cover=封面,
info=信息,
author=作者,
videonum=视频数量,
durationSum=持续时间
专辑操作 getAlbumVideo 获取专辑内的视频 无需消耗 getAlbumVideo(专辑ID,视频的专辑序号) videoId=视频ID,
title=标题,
cover=封面,
videoinfo=视频信息,
info=视频简介,
duration=时长,
timestamp=时间戳,
author=作者地址,
commentsNum=评论数量,
gratuityNum=打赏数量,
gratuitySum=打赏金额

上述两张表格包含了合约全部的信息(header),相当于SDK的概念了,在前端应用或者和合约交互的时候需要注意这些方法

注:其中表格备注栏中,“需要指定金额”,指的是打赏金额,在调用合约时需要额外传入费用参数,当然可以打赏0元,付一个手续费,就是赞。
“无需消耗”,一般是get方法,从区块链中读取数据,这不需要消耗手续费。
其余方法都是需要消耗手续费的,需要向区块链中写入数据或者更改数据。

原创文章 29 获赞 21 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_43668031/article/details/85256071