利用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方法,從區塊鏈中讀取數據,這不需要消耗手續費。
其餘方法都是需要消耗手續費的,需要向區塊鏈中寫入數據或者更改數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章