修正温州方言数据库不能播放音频
// ==UserScript==
// @name 温州方言数据库音频播放修正
// @namespace http://kaaass.net/
// @version 0.1
// @description 修正温州方言数据库不能播放音频
// @author KAAAsS
// @match http://wzhzy.wzlib.cn/wzh/*
// @grant none
// @require https://code.jquery.com/jquery-2.1.4.min.js
// ==/UserScript==
(function() {
'use strict';
$(function(){
/*
模板
*/
var modal = '<nav class="navbar navbar-default">'+
' <div class="container-fluid">'+
' <div class="navbar-header">'+
' <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">'+
' <span class="sr-only">Toggle navigation</span>'+
' <span class="icon-bar"></span>'+
' <span class="icon-bar"></span>'+
' <span class="icon-bar"></span>'+
' </button>'+
' <a class="navbar-brand" href="//wzlib.cn/">温州市图书馆</a>'+
' </div>'+
' <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">'+
' <ul class="nav navbar-nav">'+
' <li class="active"><a href="/">温州话资源库 <span class="sr-only">(current)</span></a></li>'+
' </ul>'+
' <form action="Result.aspx" method="get" class="navbar-form navbar-right">'+
' <div class="form-group">'+
' <input name="SearchEdit" type="text" class="form-control" placeholder="输入需要查询的内容">'+
' <select name="SearchTypeC" class="form-control">'+
' <option>单字</option>'+
' <option>词汇</option>'+
' </select>'+
' </div>'+
' <button type="submit" class="btn btn-default">搜索</button>'+
' </form>'+
' </div>'+
' </div>'+
'</nav>'+
'<div class="container-fluid text-center" style="margin-top:30px; margin-bottom:40px;">'+
' <h1>温州方言数据库检索系统</h1>'+
'</div>';
if (location.search === '') {
modal += '<ol class="breadcrumb" style="width: 85%; margin-left: auto; margin-right: auto; margin-bottom: -15px;">'+
' <li><a href="//wzlib.cn/">温州市图书馆</a></li>'+
' <li><a href="/">温州话资源库</a></li>'+
' <li class="active">温州方言数据库检索系统</li>'+
'</ol>';
} else {
modal += '<ol class="breadcrumb" style="width: 85%; margin-left: auto; margin-right: auto; margin-bottom: -15px;">'+
' <li><a href="//wzlib.cn/">温州市图书馆</a></li>'+
' <li><a href="/">温州话资源库</a></li>'+
' <li><a href="/wzh">温州方言数据库检索系统</a></li>'+
' <li class="active">检索结果</li>'+
'</ol>';
}
/*
引入bootstrap
*/
function getParam(key) {
function GetRequest() {
var url = location.search;
var theRequest = {};
if (url.indexOf("?") != -1) {
var str = url.substr(1);
var strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=strs[i].split("=")[1];
}
}
return theRequest;
}
return GetRequest()[key];
}
var mode = (getParam('SearchTypeC') === '%E8%AF%8D%E6%B1%87') + 1;
console.debug('当前请求模式:'+['单字','词汇'][mode - 1]);
$('head').append('<link href="http://v3.bootcss.com/dist/css/bootstrap.min.css" rel="stylesheet">')
.append('<link href="data:text/css;charset=utf-8," data-href="http://v3.bootcss.com/dist/css/bootstrap-theme.min.css" rel="stylesheet" id="bs-theme-stylesheet">')
.append('<style>html, body, * { font-family: "Microsoft YaHei" ! important; }</style>');
$.getScript('//cdn.bootcss.com/bootstrap/2.3.2/js/bootstrap.min.js');
$('br,span').remove();
$('table').addClass('table').addClass('table-striped').css('width','85%').css('margin-left','auto').css('margin-right','auto');
$('body').prepend(modal);
$('.style12').width('220px');
$('form').addClass('form-inline');
$('select').addClass('form-control').children('option:eq('+(mode-1)+')').attr('selected','selected');
$('input[type=text]').addClass('form-control');
$('input[type=submit]').addClass('btn').addClass('btn-primary');
/*
修正音频播放
*/
function appendAudio($dest, url) {
$dest.append('<audio controls height="30" width="50"><source src="'+url+'" type="audio/x-wav"><embed height="30" width="50" src="'+url+'"></audio>');
}
function getToneEntry(tone) {
return '.' + (10 - tone) + ';';
}
function replaceEntry(org) {
org = org.replace(/11|22|33|44|55/g,function(met){return {'11':'1','22':'2','33':'3','44':'4','55':'5'}[met];});
return org.replace(/1|2|3|4|5/g,function(met){return {'1':getToneEntry(1),'2':getToneEntry(2),'3':getToneEntry(3),'4':getToneEntry(4),'5':getToneEntry(5)}[met];});
}
$('.style15').each(function(i, el){
if (i===0) return;
$(el).html(replaceEntry($(el).text()));
});
$('.style17').each(function(i, el){
if (i===0) return;
var url = $(el).children('object').children('param[name=Filename]').val();
console.debug('解析声音文件:'+url);
$(el).children().remove();
appendAudio($(el),url);
});
});
})();