产品功能简介
Hifilm 是一个基于Go语言通用后台管理系统Nging开发的电影网站系统(采用Go+MySQL8技术栈)。包含完整的会员系统以及实现了充值、购买流程,支持对影片发布短评和发布影评文章,支持发布剧情介绍和剧照等影片资料,特别适合用来搭建剧情网站、在线电影播放网站等。
内置基于WebRTC的P2P加速播放器,支持根据用户IP所在地理位置自动优先选择距离最近的用户分享流量。站外引用地址如:https://hifilm.eget.io/webplay/<你的m3u8地址>
后台采集功能是基于websocket技术来显示实时进度,所以在反向代理本程序时,需要开启webscoket功能
安装方式
启动程序:
下载相应平台的安装包,解压缩到当前目录,进入目录执行名为“hiFilm”的可执行程序(在Linux系统,执行之前请赋予hiFilm可执行权限)。 例如在Linux64位系统,分别执行以下命令:
cd ./hiFilm_linux_amd64
chmod +x ./hiFilm
./hiFilm
安装程序:
打开浏览器,访问网址 http://localhost:9999/admin/setup , 在页面中配置数据库和管理员账号信息进行安装。
也可以使用命令行安装:
通过命令来配置 (适用于尚未启动 hiFilm 的情形):
* 安装到 MySQL 数据库的方式
./hiFilm init --user=<数据库用户名> --password=<数据库密码> --host=<MySQL服务器主机地址> --database=<MySQL数据库名> --adminUser=<管理员用户名> --adminPass=<管理员密码,不少于8位> --adminEmail=<管理员E-mail>
例如:
./hiFilm init --user=root --password="root" --host="127.0.0.1:3306" --database=nging --adminUser=admin --adminPass="admin123" --adminEmail="admin@coscms.com"
* 安装到 SQLite 数据库的方式
./hiFilm init --type=sqlite --database=<数据库文件路径> --adminUser=<管理员用户名> --adminPass=<管理员密码,不少于8位> --adminEmail=<管理员E-mail>
例如:
./hiFilm init --type=sqlite --database="config/nging.db" --adminUser=admin --adminPass="admin123" --adminEmail="admin@coscms.com"
执行成功后,启动 hiFilm。
如欲开机自动启动,可以安装为服务。
服务管理命令
命令 | 说明 | 其它用例 |
---|---|---|
./hiFilm service install |
安装服务 | 默认使用 9999 端口,在安装为服务时,可以指定自定义端口 ./hiFilm service install -p 9998 |
./hiFilm service start |
启动服务 | 无 |
./hiFilm service stop |
停止服务 | 无 |
./hiFilm service restart |
重启服务 | 无 |
./hiFilm service uninstall |
卸载服务 | 无 |
源码开发步骤
开发过程中的启动步骤
执行 sudo ./run.sh
(如果是首次执行,则执行 sudo ./run_first_time.sh
)
如果尚未执行过安装操作,程序启动后可以访问 http://localhost:9999/admin/setup 来安装数据库的数据
修改数据表结构的步骤
先直接修改数据库中表结构,然后通过 cd tool
命令进入本项目的 tool 文件夹,执行命令 ./gen_dbschema.sh
来重新生成数据表结构体
如果密码不是root,记得先修改
./gen_dbschema.sh
脚本中的root为你的数据库密码
然后修改 ./application/version/dbschema.go 文件内的 dbschema
常量值,一般在原值的基础上 +0.1
,只要数据表结构有变动,在发布新版本之前都需要修改这里的值,以便于程序根据此版本号值自动更新旧版本程序的数据表结构
软件编译发布步骤
go mod vendor
命令,将所有依赖同步到当前项目的 vendor
文件夹中,因为 go-bindata 程序在嵌入静态文件时是从 vendor 文件夹内复制静态文件;cd tool/nging-builder
命令进入文件夹,先执行
./run.sh
进行编译和创建压缩包,编译好的压缩包位于 <项目根目录>/dist/packed/v<版本号>
文件夹内{{- $ad := Advert "<广告位标识>" -}}
{{- if $ad.Valid -}}
{{- $ad.Rand.HTML -}}
{{- else -}}
无广告
{{- end -}}
{{$ads := $.Advert `test` `test2`}}
{{($ads.Place `test`).Rand.HTML}}
{{($ads.Place `test`).First.HTML}}
{{($ads.Place `test`).Last.HTML}}
{{range $adk,$adv := $ads.Place `test2`}} {{$adv.HTML}} {{end}}
支持添加和配置资源站,实现一键采集资源站资源
支持定时自动采集影视资源,支持通过关键词过滤影片
支持与影视资源站的分类进行绑定
支持管理影片数据(影片、演员、分类、类别、年份、标签)
支持对影片发布点评和打分
支持添加和管理影评文章,支持会员发表影评文章
支持设置自定义播放器代码
支持自动播放下一集,如果没有下一集则自动播放下一部影片
支持自动跳转到上次播放的位置继续播放
支持P2P加速,观众越多越流畅,节省媒体服务器网络带宽
通过分别配置片头、片尾的结束和起始时间来自动跳过片头和片尾
可以通过配置广告在影片中的起始和终止时间段来进行跳过广告
电视频道管理功能用于电视节目在线播放
支持将喜欢的影片加入播单
支持自动过滤影片广告,且可在后台设置此功能对哪些用户群体可用
支持付费或使用观影券点播
支持配置试看
支持设置影片或剧集仅供VIP会员观看
支持在线付款