更多操作
(// Edit via Wikitext Extension for VSCode) |
(// Edit via Wikitext Extension for VSCode) |
||
第238行: | 第238行: | ||
return edit ( title, text, summary ) | return edit ( title, text, summary ) | ||
}else{ | }else{ | ||
return create(title, | return create ( title, text,summary ) | ||
} | } | ||
} | } | ||
第824行: | 第824行: | ||
function submit(upload) { | function submit(upload) { | ||
cleanLogger() | cleanLogger() | ||
upload = upload !== undefined ? upload:true | upload = upload !== undefined ? upload:true | ||
var url = tikuCreateConfig.url | var url = tikuCreateConfig.url | ||
第885行: | 第875行: | ||
//步骤二:创建分类页 | //步骤二:创建分类页 | ||
addLogger('**创建**分类页:'+childCategoryPageName+'\n 内容为:'+childCategoryPageContent) | addLogger('**创建**分类页:'+childCategoryPageName+'\n 内容为:'+childCategoryPageContent) | ||
editOrCreat(isCategoryPageExist, childCategoryPageName,childCategoryPageContent,'题库创建向导工具创建').done( | editOrCreat(isCategoryPageExist, childCategoryPageName,childCategoryPageContent,'题库创建向导工具创建').done( | ||
function(r){ | function(r){ | ||
console.log(r) | console.log(r) | ||
//如果成功则步骤三:创建模板页 | |||
if(r.result === "Success"){ | |||
addLogger('**创建成功**分类页:'+tikuMainPageName) | |||
addLogger('**创建**模板页:'+indexTemplateName+'\n 内容为:'+indexTemplateContent) | |||
editOrCreat(isTemplatePageExist, indexTemplateName,indexTemplateContent,'题库创建向导工具创建').done( | |||
function(r){ | |||
//如果成功则步骤四:创建题库主页 | |||
if(r.result === "Success"){ | |||
addLogger('**创建成功**模板页:'+indexTemplateName) | |||
addLogger('**创建**主页:'+tikuMainPageName+'\n 内容为:'+tikuMainPageContent) | |||
editOrCreat(isTikuMainPageExist, tikuMainPageName,tikuMainPageContent,'题库创建向导工具创建').done( | |||
function(r){ | |||
//如果成功则步骤五:添加阅读列表 | |||
if(r.result === "Success"){ | |||
addLogger('**创建成功**主页:'+tikuMainPageName) | |||
addLogger('**创建**阅读列表:'+tikuMainPageName) | |||
creatEntryListCheckExit(tikuMainPageName) | |||
alertDialog('成功','创建成功','确认',false) | |||
}else{ | |||
alertDialog('**错误**','主页创建失败,程序退出','返回重试',false) | |||
addLogger('**!!创建失败!!**主页:'+tikuMainPageName) | |||
return false | |||
} | |||
} | |||
) | |||
}else{ | |||
alertDialog('**错误**','模板页创建失败,程序退出','返回重试',false) | |||
addLogger('**!!创建失败!!**模板页:'+indexTemplateName) | |||
return false | |||
} | |||
} | |||
) | |||
}else{ | |||
alertDialog('**错误**','分类页创建失败,程序退出','返回重试',false) | |||
addLogger('**!!创建失败!!**分类页:'+tikuMainPageName) | |||
return false | |||
} | |||
} | } | ||
) | ) |
2023年5月30日 (二) 12:15的版本
setTimeout(function(){
dashboardInterface()
console.log('interface')
},0)
$.fn.serializeObject = function()
{
var result = {}
var a = this.serializeArray()
console.log(a)
$.each(a,function (e,t) {
result[t['name']] = t['value']
})
return result
}
tikuCreateConfig = {
rl:'参与编辑的题库',
project:'https://www.medforest.cn/dic/',
url:'https://www.medforest.cn/medf/api.php',
des:'本列表包含您创建或者参与编辑的题库'
}
//===================================================
//===================================================
//===============阅读列表增删查改==============================
//===================================================
//===================================================
function readlistCreat(name,des,token){
var result = {status:0, result:''}
var PARAMS = {
"action": "readinglists",
"format": "json",
"command": "create",
"utf8": 1,
"token": token,
"name": name,
"description": des
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
var apiResult = results['edit']['result']
if(apiResult==="Success"){
result.status = 1
}
result.result = results["create"]["result"]
}
})
return result
}
//向某个list添加页面
function readlistCreatEntry(list,project,title,token){
var result = {status:0, result:''}
var PARAMS = {
"action": "readinglists",
"format": "json",
"command": "createentry",
"utf8": 1,
"token": token,
"list": list,
"project": project,
"title": title,
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
result.status = 1
result = results["createentry"]["result"]
}
})
return result
}
//判断有无对应列表后再添加词条
function creatEntryListCheckExit(title){
var isListExist = isRLExist(tikuCreateConfig.rl)//判断阅读列表是否存在
console.log('阅读列表存在性检验:',isListExist)
if(!isListExist) {
var token = get_token(tikuCreateConfig.url)
alert('你还没有创建您的阅读列表,即将创建并启用')
readlistSetup(token)
readlistCreat(tikuCreateConfig.rl, tikuCreateConfig.des, token)
alert('创建完成')
}
readlistCreatEntry(isListExist.id,tikuCreateConfig.project,title,token)
}
function readlistSetup(token){
var isSuccess = [false]
var PARAMS = {
"action": "readinglists",
"format": "json",
"command": "setup",
"utf8": 1,
"token": token,
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
isSuccess = results
}
})
return isSuccess
}
function readlistDelEntry(entry,token){
var isSuccess = [false]
var PARAMS = {
"action": "readinglists",
"format": "json",
"command": "deleteentry",
"utf8": 1,
"token": token,
"entry": entry
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
if (results["deleteentry"]['result']==="Success"){
isSuccess = true
}
}
})
return isSuccess
}
//判断某个阅读列表是否存在
function isRLExist(name){
var exist = false
var PARAMS = {
"action": "query",
"format": "json",
"meta": "readinglists",
"utf8": 1,
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
var rls = results.query.readinglists
for(var i=0;i<rls.length;i++){
var rl = rls[i]
if(rl.name === name){
exist = rl
}
}
}
})
return exist
}
//按照加入时间列举阅读列表中的条目
function readlistEntries(id){
var isSuccess = [false]
var PARAMS = {
"action": "query",
"format": "json",
"list": "readinglistentries",
"utf8": 1,
"rlelists": id,
"rlesort": "updated",
"rledir": "descending"
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
isSuccess = results['query']['readinglistentries']
}
})
return isSuccess
}
//获取Meta信息
function readlistEntriesMeta(project,name){
var isSuccess = [false]
var PARAMS = {
"action": "query",
"format": "json",
"list": "readinglistentries",
"utf8": 1,
"rlelists": id
}
$.ajax({
url: tikuCreateConfig.url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
isSuccess = results['query']['readinglistentries']
}
})
return isSuccess
}
//编辑页面异步
function create(title,content,summary){
return new mw.Api().create(
title,
{ summary: summary },
content
)
}
function edit ( title, text, summary ) {
return new mw.Api().edit(
title,
function ( revision ) {
return {
text: text,
summary: summary,
tags:'tiku-creat-guide'
};
}
)
}
function editOrCreat(isExist, title, text, summary){
console.log(isExist)
if(isExist){
return edit ( title, text, summary )
}else{
return create ( title, text,summary )
}
}
function editpage(url,token,title, content,model,tags,summary) {
model =model !==undefined ?model : 'wikitext'
tags = tags !== undefined?tags:''
summary = summary !==undefined?summary:''
var isSuccess = [false,0]
var PARAMS = {
"action": "edit",
"format": "json",
"title": title,
"text": content,
"token": token,
'contentmodel':model,
"summary": summary,
"tags": tags,
}
$.ajax({
url: url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
var apiResult = results['edit']['result']
if(apiResult==="Success"){
isSuccess = [true,results["edit"]["result"]]
console.log("===editpage_common 成功===")
}else{
isSuccess = [false,results["edit"]["result"]]
}
},
})
return isSuccess
}
//获取某个页面的历史版本
function getPageRevision(url, title, pageCount){
var PARAMS = {
"action": "query",
"format": "json",
"prop": "revisions",
"titles": title,
"utf8": 1,
"rvprop": "content",
"rvlimit": pageCount,
"rvdir": "older"
}
var isSuccess = {}
$.ajax(
{
url: url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results){
if('-1' in results.query.pages){
console.log('===无此页面===')
isSuccess = {isSuccess:false, result:results}
}else {
isSuccess = {isSuccess:true, result:results}
}
}
})
return isSuccess
}
function get_token(url,origin){
var isSuccess = [false, '0']
var PARAMS = {
"action": "query",
"format": "json",
'meta':'tokens'
}
$.ajax(
{
url: url,
method: "post",
async: false,
data: PARAMS,
timeout: 5000,
success: function (results) {
var token = results.query.tokens.csrftoken
if(token.length >= 5){
isSuccess = token
}
}
})
return isSuccess
}
//获取特定页面的分类信息
function getCategories(url,title){
var result = {status:0,categories:[]}
var PARAMS = {
"action": "query",
"format": "json",
"prop": 'categories',
"titles": title,
"utf8": 1,
}
var isSuccess = {}
$.ajax(
{
url: url,
method: "get",
async: false,
data: PARAMS,
timeout: 5000,
success: function (data){
var page = data.query.pages
if(!('-1' in data.query.pages)){
for(var i in page){
result.status = 1
result.categories = page[i].categories
}
}
console.log(result)
}
})
return result
}
function clearContainer() {
$('#tiku-guide-container').html('')
}
function dashboardInterface(){
clearContainer()
var token = get_token(tikuCreateConfig.url)
var container = $('#tiku-guide-container')
var html = $('<div id="myTikuList"></div>').appendTo(container)
var header = $('<div id="header"></div>')//包括heading, actions
var heading = $('<div id="heading"></div>')
var actions = $('<div id="actions"></div>')
var creatTikuBtn = new OO.ui.ButtonWidget( {
label: '创建一个新题库'
,id:'createTiku'
,flags: [
'progressive'
]
} ).$element.appendTo(actions)
var addTikuToMyListBtn = new OO.ui.ButtonWidget( {
label: '添加题库到我的列表库'
,id:'addTiku'
,flags: [
'progressive'
]
} ).$element.appendTo(actions)
var body = $('<div id="body"></div>')
header.append(heading,actions)
html.append(header,body)
$('#createTiku').bind('click',function () {
createInterface()
})
$('#addTiku').bind('click',function () {
addInterface()
})
var rls = isRLExist(tikuCreateConfig.rl)
if(!rls){
$('#myTikuList').children('#header').children('#heading').html('<h3>您还没有参与编辑任何题库!</h3>')
}else{
var enteries = readlistEntries(rls.id)
for(var i=0;i<enteries.length;i++){
var template = $('<div id="entry-'+i+'"><div class="entry-header"></div><div class="entry-body"></div><div class="entry-appendix"></div></div><hr>').appendTo($('#myTikuList').children('#body'))
$('#entry-'+i).children('.entry-header').html('<a href="'+enteries[i].project+enteries[i].title+'"><h4>'+enteries[i].title+'</h4></a>')
var editThisBtn = new OO.ui.ButtonWidget( {
label: '编辑此目录'
,id:'editEntry-'+i
,flags: [
'progressive'
]
} ).$element
var delThisBtn = new OO.ui.ButtonWidget( {
label: '移除此条目'
,id:'delEnrty-'+i
,flags: [
'destructive'
]
} ).$element
$('#entry-'+i).children('.entry-body').append(editThisBtn, delThisBtn)
$('#entry-'+i).children('.entry-appendix').html('<p>加入日期:'+enteries[i].created+'</p>')
console.log(enteries[i])
$('#editEntry-'+i).bind('click',{title:enteries[i].title},function (event) {
var title = event.data.title
console.log(title)
createInterface(title)
})
$('#delEnrty-'+i).bind('click',{token:token,id:enteries[i].id},function (event) {
if(confirm('即将从您的列表中去除此条目,此操作不会影响页面内容,确定吗?')){
readlistDelEntry(event.data.id,event.data.token)
}
})
}
}
}
function addInterface(){
clearContainer()
var container = $('#tiku-guide-container')
$('<button type="button" id="backDashboard">返回</button>').appendTo(container)
$('#backDashboard').bind('click',function () {
dashboardInterface()
})
var html = $('<div id="addTikuContainer"><div id="header"><div id="heading"><h3>参与编辑一个题库</h3></div>' +
'<div id="body"><input id="addName" type="text" placeholder="完整题库名称,包括“题库:”前缀"><button type="button" id="addTiku">添加</button></div></div>').appendTo(container)
$('#addTiku').bind('click',function () {
var inputName = $('#addName').val()
creatEntryListCheckExit(inputName)
})
}
function createInterface(title){
clearContainer()
var container = $('#tiku-guide-container')
var returnBtn = pushLineBtn = new OO.ui.ButtonWidget( {
id:'backDashboard',
label: '返回'
} )
returnBtn.$element.bind('click',function () {
dashboardInterface()
})
returnBtn.$element.appendTo(container)
if(title!==undefined){
title='模板:目录-'+title.split(':')[1]
}
var titleContent = resolve(title)
var inputFieldset = new OO.ui.FieldsetLayout( {
label: '创建一个题库'
} )
,quickInputFieldset = new OO.ui.FieldsetLayout( {
} )
,inputFieldset2 = new OO.ui.FieldsetLayout( {
} )
,name = new OO.ui.TextInputWidget( {
placeholder: '题库名,必填项',
required: true,
validate: 'non-empty',
name:'name',
value:titleContent.name
} )
,cover = new OO.ui.TextInputWidget( {
placeholder: '题库目录封面的文件名,不需要用中括号包围和文件:前缀',
name:'cover',
value:titleContent.cover
} )
,time = new OO.ui.TextInputWidget( {
placeholder: '题库发行的时间',
name:'time',
value:titleContent.time
} )
,author = new OO.ui.TextInputWidget( {
placeholder: '题库的作者',
name:'author',
value:titleContent.author
} )
,publisher = new OO.ui.TextInputWidget( {
placeholder: '题库的出版社',
name:'publisher',
value:titleContent.publisher
} )
,ps = new OO.ui.TextInputWidget( {
placeholder: '题库的附加说明文字',
name:'ps',
value:titleContent.ps
} )
,tikuBenkeCategory = new OO.ui.DropdownInputWidget( {
label: '--选择一个选项--',
name:'tikuBenkeCategory',
value:titleContent.tikuBenkeCategory,
options: [
{ data: '0', label: '--选择一个选项--' } ,
{ data: '本科细胞生物学题库', label: '细胞生物学' } ,
{ data: '本科组织学与胚胎学题库', label: '组织学与胚胎学' } ,
{ data: '本科系统解剖学题库', label: '系统解剖学' } ,
{ data: '本科生理学题库', label: '生理学' } ,
{ data: '本科生物化学与分子生物学题库', label: '生物化学与分子生物学' } ,
{ data: '本科医学微生物学题库', label: '医学微生物学' } ,
{ data: '本科医学免疫学题库', label: '医学免疫学' } ,
{ data: '本科预防医学题库', label: '预防医学' } ,
{ data: '本科医学遗传学题库', label: '医学遗传学' } ,
{ data: '本科医学心理学题库', label: '医学心理学' } ,
{ data: '本科医学统计学题库', label: '医学统计学' } ,
{ data: '本科十门联考题库', label: '十门联考' } ,
{ data: '本科病理学题库', label: '病理学' } ,
{ data: '本科病理生理学题库', label: '病理生理学' } ,
{ data: '本科局部解剖学题库', label: '局部解剖学' } ,
{ data: '本科药理学题库', label: '药理学' } ,
{ data: '本科诊断学题库', label: '诊断学' } ,
{ data: '本科人体寄生虫学题库', label: '人体寄生虫学' } ,
{ data: '本科流行病学题库', label: '流行病学' } ,
{ data: '本科医学影像学题库', label: '医学影像学' } ,
{ data: '本科卫生学题库', label: '卫生学' } ,
{ data: '本科医学伦理学题库', label: '医学伦理学' } ,
{ data: '本科中医学题库', label: '中医学' } ,
{ data: '本科外科学题库', label: '外科学' } ,
{ data: '本科内科学题库', label: '内科学' } ,
{ data: '本科妇产科学题库', label: '妇产科学' } ,
{ data: '本科儿科学题库', label: '儿科学' } ,
{ data: '本科精神病学题库', label: '精神病学' } ,
{ data: '本科神经病学题库', label: '神经病学' } ,
{ data: '本科急诊与灾难医学题库', label: '急诊与灾难医学' } ,
{ data: '本科皮肤性病题库', label: '皮肤性病' } ,
{ data: '本科耳鼻咽喉头颈外科学题库', label: '耳鼻咽喉头颈外科学' } ,
{ data: '本科眼科学题库', label: '眼科学' } ,
{ data: '本科口腔医学题库', label: '口腔医学' } ,
{ data: '本科临床麻醉学题库', label: '临床麻醉学' } ,
{ data: '本科危重病医学题库', label: '危重病医学' } ,
{ data: '本科核医学题库', label: '核医学' } ,
{ data: '本科介入放射学题库', label: '介入放射学' } ,
{ data: '本科法医学题库', label: '法医学' } ,
{ data: '考研题库', label: '考研' } ,
]
} )
,level = new OO.ui.DropdownInputWidget( {
name:'level',
classes:['horizontalLayoutInput'],
options: [
{ data: '*', label: '*' } ,
{ data: '**', label: '**' } ,
{ data: '***', label: '***' } ,
]
} )
,chapID = new OO.ui.TextInputWidget( {
name:'chapID',
classes:['horizontalLayoutInput'],
placeholder: '章节号(子页面名称)'
} )
,chapName = new OO.ui.TextInputWidget( {
name:'chapName',
classes:['horizontalLayoutInput'],
placeholder: '章节名(显示名称)'
} )
,pushLineBtn = new OO.ui.ButtonWidget( {
id:'addIndex',
label: '添加到末尾'
} )
,indexContainer = new OO.ui.MultilineTextInputWidget( {
name:'index',
id:'indexContainer',
rows: 10,
autosize: true,
placeholder:'* 第一章|绪 论\n**第一节|xxX\n* 第二章|222',
value: titleContent.index
} )
,submitIndexBtn = new OO.ui.ButtonWidget( {
id:'submitIndex',
label: '提交',
flags: [
'primary',
'progressive'
]
} )
,prevIndexBtn = new OO.ui.ButtonWidget( {
id:'prevIndex',
label: '预览'
} )
,logger = new OO.ui.MultilineTextInputWidget( {
name:'logger',
id:'logger',
rows: 10,
row: 15,
readOnly: true
} )
inputFieldset.addItems( [
new OO.ui.FieldLayout( name, {
label: '题库名称',
align: 'inline'
} ),
new OO.ui.FieldLayout( cover, {
label: '封面(请先在维基中上传对应封面)',
align: 'top'
} ),
new OO.ui.FieldLayout( time, {
label: '发型年份(或者录入时间,默认当前时间)',
align: 'top'
} ),
new OO.ui.FieldLayout( author, {
label: '作者(默认创建者)',
align: 'top'
} ),
new OO.ui.FieldLayout( publisher, {
label: '出版社',
align: 'top'
} ),
new OO.ui.FieldLayout( ps, {
label: '备注',
align: 'top'
} ),
new OO.ui.FieldLayout( tikuBenkeCategory, {
label: '学科分类(必选)',
align: 'top'
} ),
] )
quickInputFieldset.addItems( [
new OO.ui.HorizontalLayout( {
items: [
level,chapID,
new OO.ui.LabelWidget( {
label: '|'
} )
,chapName,pushLineBtn
]
} )
] )
inputFieldset2.addItems( [
new OO.ui.FieldLayout( indexContainer, {
label: '目录编辑',
align: 'top'
} ),
new OO.ui.HorizontalLayout( {
items: [
submitIndexBtn,prevIndexBtn,
]
} ),
new OO.ui.FieldLayout( logger, {
label: '上传日志',
align: 'top'
} ),
] )
var form = new OO.ui.FormLayout( {
id:'tikuInfo',
items: [ inputFieldset, quickInputFieldset, inputFieldset2 ],
} ).$element.appendTo(container)
$('#addIndex').bind("click",function (){addIndex()})
$('#prevIndex').bind('click',function(){
submit(false)
})
$('#submitIndex').bind('click',function(){submit(true)})
}
function alertDialog(title, message, btnLabel, disabled){
var messageDialog = new OO.ui.MessageDialog();
var windowManager = new OO.ui.WindowManager();
$( 'body' ).append( windowManager.$element );
windowManager.addWindows( [ messageDialog ] );
windowManager.openWindow( messageDialog, {
title:title,
message: message,
actions: [
{
action: 'accept',
label: '关闭',
flags: 'primary',
disabled: disabled,
}
]
});
return windowManager
}
function addIndex(){
var info = $('#tikuInfo').serializeObject()
var reg = new RegExp('\\s','g')
if(reg.test(info.chapID)||reg.test(info.chapName)){
alert('不能包含空格')
return false
}
var text = info.level + ' ' + info.chapID+'|'+info.chapName +'\n'
var val = $('#indexContainer').children('textarea').val()
$('#indexContainer').children('textarea').val(val + text)
$('#chapName').val('')
return text
}
function pIndex(text,title){
console.log(text)
text = text.split('\n')
var l = {}
var final = ''
for (var i=0;i<text.length;i++){
var t = '题库:' + title
if(text[i].length>0){
var level = text[i].split(' ')[0].length
var chapID = text[i].split(' ')[1].split('|')[0]
var chapName = text[i].split(' ')[1].split('|')[1]
console.log(chapName)
if(!l.hasOwnProperty(level)){
l[level] = chapID
}else if(l[level] !== chapID){
l[level] = chapID
}
for(var n=0;n<level;n++){
t+='/'+l[(n+1).toString()]
final += '*'
}
console.log(l)
final += ' '+'{{目录项|'+t+'|'+chapName+'}}\n'
console.log('{{目录项|'+t+'|'+chapName+'}}\n')
}
}
console.log(final)
return final
}
//** {{目录项|题库:诊断学学习指导与习题集(第4版)/第一篇/第一节|第一节 发热}}
function rIndex(text){
console.log(text)
if(text.length>0){
var reg1 = new RegExp('(?<=\\{\\{)(.+?)(?=\\}\\})','g')
var reg2 = new RegExp('\\{\\{(.+?)\\}\\}','g')
var content = text.match(reg1)[0]
text=text.replace(reg2,'')
var level = text.match(/\*/g).length
content = content.split('/').slice(-1)
var finalText = ''
for(var i=0;i<level;i++){
finalText+='*'
}
finalText+=' '+content+'\n'
console.log(finalText)
return finalText
}else{
return ''
}
}
//解析分类信息
function resolveCategories(title){
var tikuName = title.split('目录-')[1]
var cate = getCategories(tikuCreateConfig.url,'分类:'+tikuName)
if(cate.status === 1){
for(var i=0;i<cate.categories.length;i++){
var cateName = cate.categories[i].title
if(cateName.includes('题库')){
return cateName.split('分类:')[1]
}
}
}
return ''
}
function resolve(title){
console.log(title)
if(title!==undefined){
var cate = resolveCategories(title)
var text = getPageRevision(tikuCreateConfig.url,title,1)
console.log(title,cate)
if(text.isSuccess&&cate!==''){
text = text.result['query']['pages']
for(var key in text){
text = text[key]['revisions'][0]['*']
}
}
}else {
return {'author':'','name':'','cover':'','publisher':'','index':'','ps':'','time':''}
}
var reg1 = new RegExp('index','g')
console.log(text)
var start = text.indexOf('{{目录')
var end = text.lastIndexOf('}}')
text = text.substring(start,end)
console.log(start + '|' + end)
text = text.split('|')
var resolved = {}
resolved.tikuBenkeCategory = cate
for(var i=3;i<text.length;i++){
var line = text[i].split('=')
if(reg1.test(line[0])){
var temp = line[1]
for(var n=i+1;n<text.length;n++){
temp += '|' + text[n]
}
resolved[line[0]] = temp
break
}else{
resolved[line[0]] = line[1]
}
}
var index = resolved.index
index = index.split('\n')
var newIndex = ''
console.log(index)
for(var m=1;m<index.length;m++){
newIndex += rIndex(index[m])
}
console.log(newIndex)
resolved.index = newIndex
console.log(text)
console.log(resolved)
return resolved
}
function submit(upload) {
cleanLogger()
upload = upload !== undefined ? upload:true
var url = tikuCreateConfig.url
var info = $('#tikuInfo').serializeObject()
//检查是否有未填写的项目
if(info.tikuBenkeCategory==="0"){
alertDialog('错误',"学科未选择!",'返回选择学科' ,false)
return false
}
console.log(info)
//第一个页面的内容:标题为“模板:目录-XXXX”,包含目录模板,分类为“分类:‘书本名’”
var indexTemplateName = '模板:目录-'+info.name
var index = pIndex(info.index,info.name)
console.log(index)
var indexTemplateContent = '{{目录\n' +
'|display={{{display|}}}\n' +
'|cover='+info.cover+'\n'+
'|name='+info.name+'\n'+
'|author='+info.author+'\n'+
'|publisher='+info.publisher+'\n'+
'|time='+info.time+'\n'+
'|ps='+info.ps+'\n'+
'|index=\n'+index+'\n}}\n'
indexTemplateContent += '<includeonly>[[分类:' + info.name + ']]</includeonly>'
indexTemplateContent = indexTemplateContent.replace(/\r/g,'')
console.log(indexTemplateContent)
//第二个页面的内容:题库主页面,分类为“分类:题库目录”
var tikuMainPageName = '题库:'+info.name
var tikuMainPageContent = '{{目录-'+info.name+'}}\n' +
'[[分类:题库目录]]'
//第三个页面内容:分类页,内容为对应学科分类
var childCategoryPageName = '分类:'+info.name
var childCategoryPageContent = '[[分类:'+info.tikuBenkeCategory+']]'
//第四个请求添加阅读列表
var rlPageName = tikuMainPageName
//判断是否为预览模式,并上传
if (upload){
var rls = isRLExist(tikuCreateConfig.rl)
if(confirm('即将开始上传,确认?')){
//步骤一:检查页面是否存
isCategoryPageExist = getPageRevision(url,childCategoryPageName,1).isSuccess
isTemplatePageExist = getPageRevision(url,indexTemplateName,1).isSuccess
isTikuMainPageExist = getPageRevision(url,tikuMainPageName,1).isSuccess
addLogger('**检查**分类页:'+childCategoryPageName+' 是否存在:'+isCategoryPageExist)
addLogger('**检查**模板页:'+indexTemplateName+' 是否存在:'+isTemplatePageExist)
addLogger('**检查**主页:'+tikuMainPageName+' 是否存在:'+isTikuMainPageExist)
//步骤二:创建分类页
addLogger('**创建**分类页:'+childCategoryPageName+'\n 内容为:'+childCategoryPageContent)
editOrCreat(isCategoryPageExist, childCategoryPageName,childCategoryPageContent,'题库创建向导工具创建').done(
function(r){
console.log(r)
//如果成功则步骤三:创建模板页
if(r.result === "Success"){
addLogger('**创建成功**分类页:'+tikuMainPageName)
addLogger('**创建**模板页:'+indexTemplateName+'\n 内容为:'+indexTemplateContent)
editOrCreat(isTemplatePageExist, indexTemplateName,indexTemplateContent,'题库创建向导工具创建').done(
function(r){
//如果成功则步骤四:创建题库主页
if(r.result === "Success"){
addLogger('**创建成功**模板页:'+indexTemplateName)
addLogger('**创建**主页:'+tikuMainPageName+'\n 内容为:'+tikuMainPageContent)
editOrCreat(isTikuMainPageExist, tikuMainPageName,tikuMainPageContent,'题库创建向导工具创建').done(
function(r){
//如果成功则步骤五:添加阅读列表
if(r.result === "Success"){
addLogger('**创建成功**主页:'+tikuMainPageName)
addLogger('**创建**阅读列表:'+tikuMainPageName)
creatEntryListCheckExit(tikuMainPageName)
alertDialog('成功','创建成功','确认',false)
}else{
alertDialog('**错误**','主页创建失败,程序退出','返回重试',false)
addLogger('**!!创建失败!!**主页:'+tikuMainPageName)
return false
}
}
)
}else{
alertDialog('**错误**','模板页创建失败,程序退出','返回重试',false)
addLogger('**!!创建失败!!**模板页:'+indexTemplateName)
return false
}
}
)
}else{
alertDialog('**错误**','分类页创建失败,程序退出','返回重试',false)
addLogger('**!!创建失败!!**分类页:'+tikuMainPageName)
return false
}
}
)
}
}else {
isCategoryPageExist = getPageRevision(url,childCategoryPageName,1).isSuccess
isTemplatePageExist = getPageRevision(url,indexTemplateName,1).isSuccess
isTikuMainPageExist = getPageRevision(url,tikuMainPageName,1).isSuccess
addLogger('**检查**分类页:'+childCategoryPageName+' 是否存在:'+isCategoryPageExist)
addLogger('**检查**模板页:'+indexTemplateName+' 是否存在:'+isTemplatePageExist)
addLogger('**检查**主页:'+tikuMainPageName+' 是否存在:'+isTikuMainPageExist)
addLogger('**创建**分类页:'+tikuMainPageName+'\n 内容为:'+childCategoryPageContent)
addLogger('**MediaWiki:Gadget-tikuGuide.js创建成功**分类页:'+tikuMainPageName)
addLogger('**创建**模板页:'+indexTemplateName+'\n 内容为:'+indexTemplateContent)
addLogger('**创建成功**模板页:'+indexTemplateName)
addLogger('**创建**主页:'+tikuMainPageName+'\n 内容为:'+tikuMainPageContent)
addLogger('**创建成功**主页:'+tikuMainPageName)
addLogger('**创建**阅读列表'+tikuMainPageName)
}
}
function addLogger(text){
var logger = $('#logger').children('textarea')
var currentValue = logger.val()
logger.val(currentValue+'\n'+text)
}
function cleanLogger(){
$('#logger').children('textarea').val('')
}