Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 40 additions & 1 deletion src/seeker_pandatv.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,17 @@ var ajax = require('./ajax')
var httpProxy = require('./httpProxy')

exports.match = function () {
return /^http\:\/\/www\.panda\.tv\/[0-9]+$/.test(location.href)
// 调整url匹配 by @monotone
return /^http\:\/\/www\.panda\.tv\/.*/.test(location.href)
}

function GetQueryString(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if(r!=null)
return unescape(r[2]);
return null;
}

exports.getVideos = function (url, callback) {
Expand All @@ -19,6 +29,35 @@ exports.getVideos = function (url, callback) {
}

var room_id = url.attr('path').match(/^\/([0-9]+)$/)[1]

/* 其他 URL 格式获取房间 ID 号
*
* 2017年05月13日 by @monotone
*/

// query参数中获取
if(room_id == null){
room_id = GetQueryString('roomid');
}

// 从源码中获取
if(room_id == null){
var roomContainer = document.getElementById('dva-room-container');
if(roomContainer == null){
log('找不到视频容器。')
return;
}
var room_id = null;
var divs = roomContainer.getElementsByTagName('DIV');
for (var i = divs.length - 1; i >= 0; i--) {
room_id = divs[i].getAttribute('data-room-id');
if(room_id != null){
break;
}
}
}


var m3u8_api = 'http://room.api.m.panda.tv/index.php?method=room.shareapi&roomid='
httpProxy(
m3u8_api + room_id,
Expand Down