本文不再更新,最新内容见菜单里的个人弹幕站
上一篇博文发了个迷你弹幕播放器,然后我发现我自己也不方便发视频。。。于是我就决定做个后台来管理,用phpmyadmin手动加根本不靠谱嘛!
现在我已经把迷你播放器和后台搞在一起了,变成了一套站点。从此以后人人都可以有自己的方便配置的弹幕站点,投稿审核什么的都见鬼去吧!
GitHub:iTisso/SelfDanmakuSite
建议使用git克隆到服务器而不是下载文件搬到服务器,这样方便接收更新(如果有的话),当然如果不会用git那就点GitHub的下载Zip按钮下包然后传到网站上吧。。
在GitHub里我已经大概写了这个站点的食用方法,在这里再写一份非常详细的版本。
先上一个炫酷的osu视频
安装
不支持.htaccess文件的服禁搭,否则会有严重后果
首先你要用上面写了的方法把这个站点放到你的网站根目录里。
然后创建一个配置文件 config.php 放在网站根目录,内容如下
1 2 3 4 5 6 7 8 9 |
<?php define("user","用户名");//不要使用什么奇怪的字符,我不保证那样可以正常使用 define("pass","密码");//同上 define("sqlUser","数据库用户"); define("sqlPass","数据库密码");//请定义成字符串 define("sqlAddress","数据库地址"); define("dbname","数据库名"); define("domainname","此站点的域名(或ip)");//这是用来阻止从其他站点直接向这里发起的请求,删除此行表示不阻止 ?> |
接着用浏览器打开你放这个站点的网站,你会发现没有首页(没错没首页),因为首页没必要。。。如果你愿意做个首页的话可以自己试试哦。没有首页是因为这个站点的设计方向是被其他站点引用的,所以自己没有首页。
然后进入管理页面(http://你的站点/admin/),这个管理页面是仿控制台做的,博主由于UI做太多心都累了,所以我就不做UI了,直接给个控制台,反正也能用,而且也就只有几个命令不管新手还是命令老手都应该还是可以接受的呢。
如果你看到的是黑压压一片的控制台那就对了呢,如果不是的话赶紧留言告诉我。另外如果你有兴趣可以自己做个UI后台,欢迎提交。。。
接着在下面的命令框输入 login -u 用户名 -p 你的密码 ,你没有看错!这就是登录!登录成功以后不会显示任何东西,所以如果你不知道有没有登录成功了,你可以在发送命令前打开开发者工具的网络那一页,然后发送看看什么时候连接结束了那就是执行完了,也就是说你登录了。
成功登录以后你就可以输入 help 来查看我精心编写的帮助文档,根据最顶上的提示,第一次使用需要输入命令 initdb 来初始化数据库,如果你看到了三个绿色的成功,那就可以接着做下一步了。如果出现了红色的失败,那你可以再试一次或者找我。
实例:

使用
这时候数据库已经安顿好了,现在它已经是一个可以正常使用的站点了喵。然后我来讲讲关于命令的事情。
之所以把它做成一个控制台是因为一开始弹幕播放器就是在我做的命令网站小框架上面做出来的,现在继续沿用这个框架(重构的文件床也使用了这个框架)。
所有命令都是commands文件夹里的php文件,命令对应的就是php的文件名,所以命令大小写敏感。根据这个特性,你也可以自己写自定义命令放在这个文件夹里(请参照其他默认命令以保证安全),如果你做了什么很好用的命令也欢迎提交在GitHub或者这里的留言里哟。
这些命令我都已经写了help,只要输入 命令 --help 就可以查看帮助(不过都很简短。。)

警告:请仔细看help文档里的符号说明,否则会产生感人肺腑的结果,无论参数是什么,都建议加上
`(参数名(如-t)除外),以免出错。
接下来介绍一下默认命令
控制台内置命令
1 |
echo 要输出的内容 |
echo命令用来输出后面跟着的内容,当然这完全没意义。主要作用是用来输出转义结果(发送到服务器的命令都是经过转义的,否则会有很多问题),比如下面这么用
1 |
echo findvideo `喵吖` |
把想发送的命令跟在echo后面,命令不会发送出去,而是在控制台里显示它会被转义成什么样子
实例:

1 |
clear |
当你控制台里东西过多的时候可以用这个命令清空。
服务器端命令
添加弹幕
1 |
adddanmu 视频id 弹幕类型 内容 所在时间 颜色 大小 |
这个命令是给播放器用的,不过在这里也可以用,不过不建议在这里使用,因为你写的可能不是播放器能识别的格式。
添加视频
1 2 3 4 |
addvideo -t 视频标题 -url 视频地址 #建议这么写 addvideo -t `视频标题` -url `视频地址` |
实例:

添加视频成功后会获得视频id,id在各种调用视频和弹幕的场合会用到。
视频说明:由于目前浏览器的解码限制,建议使用H264编码的mp4视频做视频源,视频可以是自己上传到自己服务器的,也可以是从视频网站盗链的(如果你可以的话)(当然欢迎提供盗链源码。。。)
盗链视频:在funs.php里有一个translateAddress函数,它会根据数据库里视频的地址前缀来重新解析视频(如youku:XNzA3ODc1MjQ0的前缀是youku),所以你只需要在switch里加上一个case “前缀”然后写上对应的解析方法即可。
清零某视频的播放数
1 |
clearplaycount 视频id |
虽然我觉得这个命令没什么实际用处,不过我还是做出来了。。。
清空某视频的弹幕
1 |
cleardanmu 视频id |
这个命令会把指定id的视频的所有弹幕都删掉 ,谨慎使用。
删除指定id的弹幕
1 |
deldanmu 弹幕id |
专治问题弹幕 (ค้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้ ● ω ● ค้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้้
删除指定id视频
1 |
delvideo 视频id |
删除视频的同时也会删除视频所有的弹幕(其实我复制了cleardanmu的代码23333),所以三思后行。
修改视频信息
1 |
editvideo -id 视频id [-t 视频标题] [-url 视频地址] |
t参数和url参数至少要有一个,或者两个都有,用来修改手滑写错信息的视频。
例:
1 2 3 |
editvideo -id 12 -t `新的标题` editvideo -id 12 -url `http://新的地址` editvideo -id 12 -t `新的标题` -url `新的地址` |
使用正则按标题查找视频
1 |
findvideo 正则表达式 |
说是正则表达式但如果你不知道是什么的话可以直接用标题,或者标题的一部分。
常用方法演示
1 2 3 4 5 |
findvideo `.+` #列出所有视频(视频必须有标题) findvideo `^【osu】` #列出所有【osu】开头的视频 findvideo `我是一个视频标题` #直接使用标题找视频 findvideo `标题一部分` #找包含这段字的视频 |

使用正则按弹幕内容查找弹幕
1 |
finddanmu 正则表达式 |
常用方法
1 2 3 4 |
finddanmu `.*` #列出所有弹幕(弹幕很多时慎用) finddanmu `^整条弹幕内容$` #找出完全符合的弹幕 finddanmu `部分内容` #找到包含此内容的弹幕 finddanmu `233+` #找到包含233...3(大于等于2个3)的弹幕 |
例:

播放器获取弹幕列表
1 |
getDanmu 视频id |
这个命令是给播放器用的。
播放器获取视频信息
1 |
getVideoAddress 视频id |
播放器用,此命令返回一个包含视频地址、视频播放数的json
查看帮助
1 |
help |
初始化数据库
1 |
initdb |
见上面的安装部分
登录
1 |
login -u 用户名 -p 密码 |
如果在后面加个 --return 服务器会返回登录状态,完全形态:
1 |
login -u 用户名 -p 密码 --return |
每次调用此命令都会把日志记录到log/login.log文件中,此目录已被.htaccess保护,不能直接访问。
获取视频信息框架iframe
1 |
vinfoframe 视频id |
获取视频iframe用于嵌入页面
1 2 |
>> vinfoframe 4 <iframe src="http://localhost/videoinfo.php?id=4" style="height:650px;width:700px;" allowfullscreen></iframe> |
然后就可以把这个iframe贴到要放播放器的地方啦。
如果你不需要显示视频信息页面而是直接加载播放器,就把 videoinfo.php 替换成 miniplayer/player.php ,这也就是点了加载按钮以后跳转到的页面。
测试参数
1 |
teststr 各种参数 |
把你要发送的命令换成teststr可以知道服务器最终解析出来的参数序列是什么(其实是给我开发用的。。。)
例:
1 2 3 4 |
#原本 login -u `用户名` -p 123456 --return #用teststr测试 teststr -u `用户名` -p 123456 --return |
结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
参数表Array ( [0] => -u [1] => 用户名 [2] => -p [3] => 123456 [4] => --return ) 命名参数Array ( [u] => 用户名 [p] => 123456 ) 标记Array ( [0] => return ) |
本文发布于 https://luojia.me
本站文章未经文下加注授权不得拷贝发布。
本博客使用Disqus评论系统,如果看不到评论框,请尝试爬墙。