video moudle update

master
string1995 5 years ago
parent 5e3ef14218
commit 1cc3054e56
  1. 1
      .gitignore
  2. 3
      aplayer/dist/APlayer.min.css
  3. 1
      aplayer/dist/APlayer.min.css.map
  4. 2
      aplayer/dist/APlayer.min.js
  5. 1
      aplayer/dist/APlayer.min.js.map
  6. BIN
      aplayer/dist/cover.jpg
  7. 51
      aplayer/dist/index.html
  8. 47
      aplayer/dist/index2.html
  9. 0
      aplayer/dist/lrc.lrc
  10. BIN
      aplayer/dist/url.mp3
  11. 12
      etc/api/video.php
  12. 19
      etc/api/video_fp.php
  13. 15
      etc/api/video_redirect.php
  14. 15
      etc/api/video_toUrl.php
  15. 29
      etc/cookie/cookie.js
  16. 2
      etc/dplayer/DPlayer.min.js
  17. 1
      etc/fp/fp.js
  18. 2
      etc/fp/index.html
  19. 305
      functions.php
  20. 9
      test/index.php
  21. 4
      video/video.php

1
.gitignore vendored

@ -0,0 +1 @@
config.php

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

@ -1,51 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<div class="aplayer-wrap">
<div id="aplayer" class="aplayer">
</div>
</div>
<link rel="stylesheet" href="APlayer.min.css">
<script src="APlayer.min.js"></script>
<script>
const ap = new APlayer({
container: document.getElementById('aplayer'),
mini: false,
autoplay: false,
theme: '#FADFA3',
loop: 'all',
order: 'random',
preload: 'auto',
volume: 0.7,
mutex: true,
listFolded: false,
listMaxHeight: 90,
lrcType: 3,
audio: []
});
</script>
<script>ap.list.add([{
name: 'name3',
artist: 'artist3',
url: 'url.mp3',
cover: 'cover.jpg',
lrc: 'lrc.lrc',
theme: '#ebd0c2'
}]);</script>
</body>
</html>

@ -1,47 +0,0 @@
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>
<body>
<link rel="stylesheet" href="APlayer.min.css">
<h1>2<a href="index.html">1</a></h1>
<div class="aplayer-wrap">
<div id="aplayer" class="aplayer">
</div>
</div>
<script src="APlayer.min.js"></script>
<script>
const ap = new APlayer({
container: document.getElementById('aplayer'),
fixed: true,
audio: [
{
name: 'name1',
artist: 'artist1',
url: 'url.mp3',
cover: 'cover.jpg',
lrc: 'lrc.lrc',
theme: '#ebd0c2'
},
{
name: 'name2',
artist: 'artist2',
url: 'url.mp3',
cover: 'cover.jpg',
lrc: 'lrc.lrc',
theme: '#46718b'
}
]
});
</script>
<script>ap.seek(100);</script>
</body>
</html>

BIN
aplayer/dist/url.mp3 vendored

Binary file not shown.

@ -0,0 +1,12 @@
<?php
include '../../functions.php';
$id= $_REQUEST[id];
$conn=db__connect();
$result=db__getData($conn,"video","id",$id);
header('Content-type: text/json');
echo json_encode(array(id=>$result[0]['id'],series=>$result[0]['series'],name=>$result[0]['name'],type=>$result[0]['type'],url1=>$result[0]['url1'],url2=>$result[0]['url2'],idd=>$result[0]['idd']));
die();

@ -0,0 +1,19 @@
<?php
include '../../functions.php';
$id= $_REQUEST[id];
$fp= $_REQUEST[fp];
$seek= $_REQUEST[seek];
$ip= $_REQUEST[ip];
$conn=db__connect();
db__pushData($conn,"fp",array("fp"=>$fp,"videoseek"=>$seek,"video"=>$id,"videotime"=>time()),array("fp"=>$fp));
db__pushData($conn,"videolog",array("ip"=>$ip,"fp"=>$fp,"seek"=>$seek,"video"=>$id,"time"=>time()),array("fp"=>$fp,"video"=>$id));
header('Content-type: text/json');
die();

@ -0,0 +1,15 @@
<?php
include '../../functions.php';
$id= $_REQUEST[id];
$conn=db__connect();
$result=db__getData($conn,"videoredirect","id",$id);
header('Content-type: text/json');
if(count($result))
echo json_encode(array(id=>$result[0]['id'],toid=>$result[0]['toid']));
else json_encode(array(id=>0));
die();

@ -0,0 +1,15 @@
<?php
include '../../functions.php';
$id= $_REQUEST[id];
$conn=db__connect();
$result=db__getData($conn,"videotourl","id",$id);
header('Content-type: text/json');
if(count($result))
echo json_encode(array(id=>$result[0]['id'],url=>$result[0]['url'],hint=>$result[0]['hint']));
else json_encode(array(id=>0));
die();

@ -0,0 +1,29 @@
var cookie = {
set: function(name, value) {
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
document.cookie = name + '=' + escape(value) + ';expires=' + exp.toGMTString();
},
get: function(name) {
var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
if(arr = document.cookie.match(reg)) {
return unescape(arr[2]);
} else {
return null;
}
},
del: function(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var arr, reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
if(arr = document.cookie.match(reg)) {
var cval = unescape(arr[2]);
} else {
var cval = null;
}
if(cval != null) {
document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString();
}
}
};

File diff suppressed because one or more lines are too long

@ -0,0 +1 @@
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('6 3=1b.z.F.f("://");3=3[1].f("/");3=3[0].f(".");3[0]=3[3.9-2]+\'.\'+3[3.9-1];e=q(3[0]);G q(8){6 d=H.E(\'d\');6 5=d.B(\'C\');D(!8)8=\'j://I.m.N/\';5.k="O";5.P="M \'J\'";5.k="m";5.g="#K";5.L(u,1,v,A);5.g="#y";5.p(8,2,15);5.g="x(t, w, 0, 0.7)";5.p(8,4,17);6 a=d.1a();a=a.14("19:18/1c;1h,","");6 b=1g(a).1e(-16,-12);6 i,l,o=\'\',n;b+=\'\';T(i=0,l=b.9;i<l;i++){n=b.Q(i).1f(16);o+=n.9<2?\'0\'+n:n}10.11(\'\\n\'+\' %c e 13 X %c j://Z.Y/W/e \'+\'\\n\',\'S: #R; h: #V; r:s 0;\',\'h: #U; r:s 0;\');1d o}',62,80,'|||arr||ctx|var||txt|length|b64|bin||canvas|fp|split|fillStyle|background||https|textBaseline||yimian|||fillText|_0|padding|5px|102|125|52|204|rgba|039|location|20|getContext|2d|if|createElement|href|function|document|security|Arial|f66|fillRect|15px|xyz|top|font|charCodeAt|00FFFF|color|for|4682B4|030307|string1995|generator|com|github|console|log||fingerprint|replace||||image|data|toDataURL|window|png|return|slice|toString|atob|base64'.split('|'),0,{}))

@ -0,0 +1,2 @@
<script type="text/javascript" src="https://cdn.yimian.ac.cn/fp/fp.js"></script>
<script type="text/javascript">alert(fp);history.back(-1)</script>

@ -1,8 +1,11 @@
<?php
include 'config.php';
/**global var**/
$jquery=0;
/**functions for html **/
//print a html header
@ -50,6 +53,10 @@ function js__jquery()
function yimian__headerEnd()
{
echo "
<script>console.log('\\n' + ' %c Yimian %c https://www.yimian.xyz ' + '\\n', 'color: #00FFFF; background: #030307; padding:5px 0;', 'background: #4682B4; padding:5px 0;');console.log('Proudly include Plugins:'+'\\n');</script>
<script src=\"/etc/fp/fp.js\"></script>
<script>console.log('Thankfully include Plugins:'+'\\n');console.log('\\n' + ' %c jQuery v1.10.2 %c https://jquery.com ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');console.log('\\n' + ' %c jquery-pjax v2.0.1 %c https://github.com/defunkt/jquery-pjax ' + '\\n' + '\\n', 'color: #fadfa3; background: #030307; padding:5px 0;', 'background: #fadfa3; padding:5px 0;');</script>
<script src=\"/etc/cookie/cookie.js\"></script>
</head>
<body>";
@ -68,12 +75,173 @@ function yimian__footer($wordColor="#C7C7C7",$backgroundColor="#2B2B2B",$urlColo
/**database connection**/
//connect to database
function db__connect($servername="",$username="",$password="",$dbname="")
{
/* reset */
if($servername=="") $servername=$GLOBALS['g_db_serverName'];
if($username=="") $username=$GLOBALS['g_db_usrName'];
if($password=="") $password=$GLOBALS['g_db_psswd'];
if($dbname=="") $dbname=$GLOBALS['g_db_dbName'];
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error)
{
die("Mysql Connect Failed: " . $conn->connect_error);
}
return ($conn);
}
//get table row number::(data_cnnct var,table name) ::(row number)
function db__rowNum($conn,$table,$clmnName="",$value="",$clmnName2="",$value2="")
{
if($clmnName=="") $sql = "SELECT COUNT(*) FROM $table";
elseif($clmnName2=="") $sql = "SELECT COUNT(*) FROM $table where $clmnName='$value'";
else $sql = "SELECT COUNT(*) FROM $table where $clmnName='$value' AND $clmnName2='$value2'";
$row_count = $conn->query($sql);
list($row_num) = $row_count->fetch_row();
return ($row_num);
}
//get row data from database::(data_cnnct var, table name,column name, column value)::(row info)
function db__getData($conn,$table,$clmnName="",$value="",$clmnName2="",$value2="")
{
if($clmnName=="") $sql = "SELECT * FROM $table";
elseif($clmnName2=="") $sql = "SELECT * FROM $table where $clmnName='$value'";
else $sql = "SELECT * FROM $table where $clmnName='$value' AND $clmnName2='$value2'";
$result = $conn->query($sql);
//no data
if ($result->num_rows > 0) {}else{return 404;}
$i=0;
$arr=array();
while($row = $result->fetch_assoc()) {
$arr[$i++]=$row;
}
return ($arr);
}
//fnct for insert a row to database
function db__insertData($conn,$table,$content)
{
$key=array_keys($content);
$sql="insert INTO $table (";
for($i=0;$i<count($key);$i++)
{
$sql.="$key[$i]";
if($i!=count($key)-1) $sql.=", ";
}
$sql.=") VALUES (";
for($i=0;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$sql.="'$content[$tmp_key]'";
if($i!=count($key)-1) $sql.=", ";
}
$sql.=")";
if (!($conn->query($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "<br>" . $conn->error;
}
//fnct for update a row to database without check
function db__updateData($conn,$table,$content,$index)
{
$key=array_keys($content);
$sql="UPDATE $table SET ";
for($i=0;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$sql.="$key[$i]='$content[$tmp_key]'";
if($i!=count($key)-1) $sql.=", ";
}
$key=array_keys($index);
$sql.=" WHERE ";
for($i=0;$i<count($key);$i++)
{
$tmp_key=$key[$i];
$sql.="$tmp_key='$index[$tmp_key]'";
if($i!=count($key)-1) $sql.=" AND ";
}
if (!($conn->query($sql) === TRUE)) echo "SQL Insert Error: " . $sql . "<br>" . $conn->error;
}
//push row data from database::(data_cnnct var, table name,column name, column value)::(row info)
function db__pushData($conn,$table,$content,$index="",$is_force=1)
{
if($index)
{
$index_keys=array_keys($index);
if(count($index_keys)==1) $result=db__rowNum($conn,$table,$index_keys[0],$index[$index_keys[0]]);
elseif(count($index_keys)==2) $result=db__rowNum($conn,$table,$index_keys[0],$index[$index_keys[0]],$index_keys[1],$index[$index_keys[1]]);
else return -1;
if($result>0) db__updateData($conn,$table,$content,$index);
else if($is_force) db__insertData($conn,$table,$content);
}
else
db__insertData($conn,$table,$content);
}
/***tools***/
//fnct of get usr ip::()::(ip)
function getip()
{
if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
else
if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
else
if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
{
$ip = getenv("REMOTE_ADDR");
}
else
if (isset ($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
{
$ip = $_SERVER['REMOTE_ADDR'];
}
else
{
$ip = "unknown";
}
return ($ip);
}
/**functions for aplayer**/
@ -187,13 +355,24 @@ function dplayer__element()
//the js object name is dp.
function dplayer__setup()
{
echo "<script src=\"https://pv.sohu.com/cityjson?ie=utf-8\"></script>
";
echo "<link rel=\"stylesheet\" href=\"https://cn.yimian.xyz/etc/dplayer/DPlayer.min.css\">
<script src=\"https://cn.yimian.xyz/etc/dplayer/DPlayer.min.js\"></script>";
echo "<script type=\"text/javascript\">//script for set up the dplayer
//global var for storing current video info
var g_vId=0;
var g_vName='';
var g_vSeries='';
var g_vType='';
var g_vUrl1='';
var g_vUrl2='';
var g_idd=0;
const dp = new DPlayer({
container: document.getElementById('dplayer'),
autoplay: false,
theme: '#FADFA3',
theme: '#1E90FF',
loop: false,
lang: 'zh-cn',
hotkey: true,
@ -208,27 +387,121 @@ const dp = new DPlayer({
id: 'null',
api: 'https://dans.yimian.ac.cn/',
bottom: '10%'
},
contextmenu: [{
text: 'Yimian',
link: 'https://www.yimian.xyz'
}]
}
});
</script>";
//lstn for recording play time to cookie
var timeUpdate_count=0;
dp.on('timeupdate',function dpTimeRecord(){if(g_vId!=234&&g_vId!=0)cookie.set('vTime_'+g_vId,dp.video.currentTime);if(timeUpdate_count++>15){ $.post(\"/etc/api/video_fp.php\",{\"fp\":fp,\"id\":g_vId,\"seek\":dp.video.currentTime,\"ip\":returnCitySN.cip});timeUpdate_count=0;}});
//lstn for the video to the end
dp.on('ended',function dpEnd(){cookie.del('vTime_'+g_vId);nextVideo();});
//lstn error
dp.on('error',function dpError(){newVideo(234,1,6);});
//functuion for switch video by id and url
function newVideo_detail(id,url,next,seek)
{
dp.switchVideo({
url: url
},
{
id: id,
api: 'https://dans.yimian.ac.cn/',
bottom: '10%'
});
if(seek) {dp.seek(seek);dp.notice('已跳转至上次播放位置..', 3000);}
if(next) dp.play();
}
//function for create a new video
function newVideo(id,next,seek)
{
$.ajax({
type: \"POST\",
url: '/etc/api/video.php',
data: { \"id\": id},
traditional: true,
dataType: 'json',
success: function (msg){
g_vId=parseInt(msg.id);
g_vName=msg.name;
g_vSeries=msg.series;
g_vType=msg.type;
g_vUrl1=msg.url1;
g_vUrl2=msg.url2;
g_vIdd=parseInt(msg.idd);
videotoUrl(id);
if(!seek){seek=cookie.get('vTime_'+g_vId)}
newVideo_detail(msg.id,msg.url1,next,seek);
cookie.set('vWatching',g_vId);
//record video for usr
timeUpdate_count=0;
$.post(\"/etc/api/video_fp.php\",{\"fp\":fp,\"id\":g_vId,\"seek\":0,\"ip\":returnCitySN.cip});
},
error: function (data,type, err) {
alert('Can not Get Video!');
}
});
}
//fnct for playing the next video
function nextVideo()
{
var id=g_vId;
$.ajax({
type: \"POST\",
url: '/etc/api/video_redirect.php',
data: { \"id\": id},
traditional: true,
dataType: 'json',
success: function (msg){
if(msg.id) id=msg.toid;
else id++;
newVideo(id,1);
}
});
}
//for video to redirect to other website
function videotoUrl(id)
{
$.ajax({
type: \"POST\",
url: '/etc/api/video_toUrl.php',
data: { \"id\": id},
traditional: true,
dataType: 'json',
success: function (msg){
if(!msg.id) return 0;
dp.notice(msg.hint, 4000);
setTimeout('window.location.href=\''+msg.url+'\'',4000);
}
});
}
</script>
";
echo "<script src=\"https://pv.sohu.com/cityjson?ie=utf-8\"></script>";
}
//this should put behind the setup function
function dplayer__add($id="null",$url="https://obs-410c.obs.myhwclouds.com/video/404.mp4")
function dplayer__add($id="234")
{
echo "<script>//script for adding a new video to aplayer
dp.switchVideo({
url: '$url'
},
{
id: '$id',
api: 'https://dans.yimian.ac.cn/',
bottom: '10%'
});
newVideo('$id');
</script>";
}

@ -1,12 +1,15 @@
<?php include '../functions.php'?>
<?php yimian__header("Yimian Test","yimian test","This is the test place of Yimian web.");?>
<?php js__jquery()?>
<?php yimian__headerEnd()?>
<?php yimian__headerEnd();db__pushData(db__connect(),"fp",array("fp"=>"4445544","usr"=>"test"),array("usr"=>"test","video"=>666));?>
<div id="content"><a href="red.html">hhhh</a></div>
<script>$(document).pjax('a', '#content');</script>
<script>$(document).pjax('a', '#content');//alert(fp);</script>
<?php dplayer__element()?>
<?php dplayer__setup()?>
<?php dplayer__add(1,"https://obs-410c.obs.cn-east-2.myhwclouds.com/video/%E6%9C%AB%E6%97%A5%E6%97%B6%E5%9C%A8%E5%81%9A%E4%BB%80%E4%B9%88%2C%E6%9C%89%E6%B2%A1%E6%9C%89%E7%A9%BA%2C%E5%8F%AF%E4%BB%A5%E6%9D%A5%E6%8B%AF%E6%95%91%E5%90%97/01%E3%80%8C%E5%9C%A8%E5%A4%AA%E9%98%B3%E8%A5%BF%E6%96%9C%E7%9A%84%E8%BF%99%E4%B8%AA%E4%B8%96%E7%95%8C%E9%87%8C%E3%80%8D.mp4")?>
<?php dplayer__add($_GET['id'])?>
<button onClick="nextVideo()">hhh</button>
<?php aplayer__element()?>
<?php aplayer__setup_mini()?>
<?php $rand=rand(0,300);aplayer__netease(808097971,$rand,$rand+10);?>

@ -83,7 +83,7 @@ return ($row_num);
}
//fnct of getting row data from database::(data_cnnct var, table name,column name, column value)::(row info)
function sql_data($conn,$table,$clmnName,$value)
function sql_data($conn,$table,$clmnName="",$value)
{
$sql = "SELECT * FROM $table where $clmnName=$value";
@ -201,7 +201,7 @@ echo "</script>";
function(){}
);
var cookie = {
var cookie = {
set: function(name, value) {
var Days = 30;
var exp = new Date();

Loading…
Cancel
Save