// ==UserScript==
// @name 外星人论坛任务辅助
// @namespace sourcewater
// @version 0.33.56
// @description 外星人论坛任务辅助,参考了一下别人的代码脚本介绍有详细写出。
// @author sourcewater
// @match https://*.alienwarearena.com/*
// @exclude https://*.alienwarearena.com/account
// @exclude https://*.alienwarearena.com/account/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
function getText(f){
return f.toString().replace(/^[^\/]+\/\*!?\s?/, '').replace(/\*\/[^\/]+$/, '');
}
let logFunction=getText(function(){/*
const S_S_S_S_LOG_DEBUG_LEVEL=0;
const S_S_S_S_LOG_INFO_LEVEL=3;
function s_s_s_s_log(level){
var logObj=new Object;
var globalLogLevel=level;
function log(msg,clevel){
clevel+=1;
if(clevel>globalLogLevel){
console.log(msg);
}
}
logObj.debug=function(msg){
log(msg,S_S_S_S_LOG_DEBUG_LEVEL);
}
logObj.info=function(msg){
log(msg,S_S_S_S_LOG_INFO_LEVEL);
}
return logObj;
}
const S_S_S_S_LOG=s_s_s_s_log(S_S_S_S_LOG_INFO_LEVEL);
*/});
var logScriptEle=document.head.appendChild(document.createElement("script"));
logScriptEle.type="text/javascript";
logScriptEle.innerHTML=logFunction;
var container=document.getElementById("mCSB_2_container");
if(!container) return;
var sections=container.getElementsByTagName("section");
var mainSection;
for(let i=0;i<sections.length;++i){
if(sections[i].className.indexOf("um-main")!=-1){
mainSection=sections[i];
}
}
var cssContent=getText(function(){/*
.s-s-s-s-btn:focus {
outline:0;
box-shadow:0 0 0 3px #666666;
}
*/});
var autoQuestFunction=getText(function(){/*
function s_s_s_s_auto_quest_function(i){
const QUEST_LIST=["read_articles","post_replies","change_border","change_badge","share_page","add_video","change_avatar","visit_page","update_about_me","create_article","visit_leaderboard"];
let voteStatus=document.getElementById("s_s_s_s_vote_status");
let questCount=voteStatus.getAttribute("s_s_quest_count");
let questTitle=voteStatus.getAttribute("s_s_quest_title"+i);
let questId=voteStatus.getAttribute("s_s_quest_id"+i);
let questType=voteStatus.getAttribute("s_s_quest_type"+i);
let questEarned=voteStatus.getAttribute("s_s_points_earned"+i);
let questItems=document.getElementsByClassName("quest-item");
let questProgress=questItems[i].getElementsByClassName("quest-item-progress");
let progress,arpProgress=null,tcount=null;
let questRepeated=0;
let questRepeatedTotal=1;
let incomplete=false;
progress=questProgress[0];
arpProgress=questProgress[1];
tcount=progress.innerHTML.match(/([\d])+\/([\d]+)/);
if(tcount){
questRepeated=tcount[1]*1;
questRepeatedTotal=tcount[2]*1;
//let arpCount=arpProgress.innerHTML.match(/([\d])+\/([\d]+)/);
}else{
incomplete=true;
}
function afterCompleted(){
if(arpProgress){
arpProgress.innerHTML=`${questEarned}/${questEarned}`;
}
if(incomplete){
progress.innerHTML="Complete";
}
}
S_S_S_S_LOG.info(questTitle);
//showFlashMessage("初始化任务,请等待!","info",false);
if(QUEST_LIST[0]==questType){
//Extra Extra! Read all about it!
showFlashMessage("初始化任务<阅读新闻>,请等待!","info",false);
let url="/ucf/News";
$.ajax({url: url,type: 'get',success: function(html) {
S_S_S_S_LOG.debug(questRepeated+" pieces of news already readed!");
S_S_S_S_LOG.debug(questRepeatedTotal+" pieces of news in total!");
showFlashMessage("开始阅读 "+(questRepeatedTotal-questRepeated)+" 篇文章!请耐心等待,每阅读一篇文章会随机等待数秒。","info",false);
let frEle=document.createElement("frame");
frEle.innerHTML=html;
let newsList=frEle.getElementsByClassName("news__listing-post");
let urls=[];
for(let i=0;i<newsList.length;++i){
urls[i]=newsList[i].href;
}
let i=questRepeated,j=questRepeated;
function getHTML(url){
$.ajax({url: url,type: 'get',success: function(html) {
if(tcount){
progress.innerHTML=(i+1)+"/"+questRepeatedTotal;
}else{
arpProgress.innerHTML=(i+1)+"/"+questRepeatedTotal;
}
++i;
++j;
S_S_S_S_LOG.info(i+" pieces of news already readed!");
if(i<questRepeatedTotal&&j<urls.length){
let sleepTime=((Math.random()*10>>0)%6)*200;
setTimeout(()=>{ getHTML(urls[j]);},sleepTime);
}else{
if(tcount){
progress.innerHTML=i+"/"+questRepeatedTotal;
}else{
arpProgress.innerHTML=i+"/"+questRepeatedTotal;
}
showFlashMessage(questRepeatedTotal+" 篇文章阅读完毕。","info",false);
afterCompleted();
}
}}).fail(function(xhr,textStatus){
if(xhr.status==404){
let sleepTime=((Math.random()*10>>0)%6)*200;
++j;
setTimeout(()=>{ getHTML(urls[j]);},sleepTime);
S_S_S_S_LOG.info("News 404 Error!");
}else{
showFlashMessage("请求错误,请稍后重试!","info",false);
}
}).always(function(){
//
});
}
getHTML(urls[j]);
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
});
}else if(QUEST_LIST[1]==questType){
//Converse and be Merry!
showFlashMessage("初始化任务<发表回复>,请等待!","info",false);
let url="/forums/board/113/awa-on-topic";
$.ajax({url: url,type: 'get',success: function(html) {
let keyword=questTitle.match(/([a-zA-Z]+ ?)+/g).join().replace(/ /g,"-").toLowerCase();
let questUrls=html.match(/href="(.*)".*data-topic-id/g);
let questUrl="";
for(let i=0;i<questUrls.length;++i){
if(questUrls[i].lastIndexOf(keyword)>-1){
questUrl=questUrls[i].match(/"(.*)"/)[1];
break;
}
}
S_S_S_S_LOG.debug(questUrl);
if(questUrl!=""){
showFlashMessage(`点击 <a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+questUrl+`">链接</a> 跳转到页面,然后回复 `+(questRepeatedTotal-questRepeated)+` 次即可!`,"info",false);
}else{
showFlashMessage(`没有找到帖子,可以在论坛里面回复帖子 `+(questRepeatedTotal-questRepeated)+` 次,请勿灌水!`,"info",false);
}
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}else if(QUEST_LIST[2]==questType){
//Border Swap!
showFlashMessage("初始化任务<更改边框>,请等待!","info",false);
let url="/border/select";
let borderUrl="/account/personalization";
let orgData;
$.ajax({url: borderUrl,type: 'get',success: function(html) {
let frEle=document.createElement("frame");
frEle.innerHTML=html;
let userborder=frEle.getElementsByClassName("account-borders__current")[0];
let userBorderImg=userborder.getElementsByClassName("border");
if(userBorderImg.length!=0){
userBorderImg=userBorderImg[0].src;
S_S_S_S_LOG.debug(userBorderImg);
let borderListEle=frEle.getElementsByClassName("account-borders__list")[0].getElementsByClassName("account-borders__list-border");
for(let i=0;i<borderListEle.length;++i){
if(borderListEle[i].firstElementChild.src==userBorderImg){
orgData=`{"id":`+borderListEle[i].getAttribute("data-border-id")+`}`;
break;
}
}
}else{
orgData=`{"id":1}`;
}
S_S_S_S_LOG.debug(orgData);
$.ajax({url: url,data: orgData,type: 'post',success: function(html) {
showFlashMessage("成功更改边框!","info",false);
afterCompleted();
S_S_S_S_LOG.debug(html);
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}}).fail(function(html){
//S_S_S_S_LOG.debug("failed");
}).always(function(){
//
});
}else if(QUEST_LIST[3]==questType){
//Badge Swap!
showFlashMessage("初始化任务<更改徽章>,请等待!","info",false);
let url="/badges/update/"+user_id;
let badgeUrl="/account/personalization";
let orgData;
$.ajax({url: badgeUrl,type: 'get',success: function(html) {
let orgData=html.match(/let.*?selectedBadges.*?=.*?(\[.*\]).*;/)[1];
S_S_S_S_LOG.debug(orgData);
$.ajax({url: url,data: orgData,type: 'post',success: function(html) {
if(html.success){
showFlashMessage("成功更改徽章!","info",false);
afterCompleted();
}else{
showFlashMessage("更改徽章时发生错误,请稍后重试!","info",false);
}
//S_S_S_S_LOG.debug(html);
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}}).fail(function(html){
//S_S_S_S_LOG.debug("failed");
}).always(function(){
//
});
}else if(QUEST_LIST[4]==questType){
//Share a page to social media!
showFlashMessage("初始化任务<分享帖子>,请等待!","info",false);
let url="/ucf/News";
let shareUrl="/arp/quests/share/"
$.ajax({url: url,type: 'get',success: function(html) {
let frElement=document.createElement("frame");
frElement.innerHTML=html;
let shareId=frElement.getElementsByClassName("news__top-widgets")[0].getElementsByClassName("news__top-widgets__box")[0].href.match(/\/ucf\/show\/(\d+)\//)[1];
shareUrl+=shareId;
$.ajax({url: shareUrl,type: 'post',success: function(html) {
showFlashMessage("分享成功!","info",false);
afterCompleted();
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}else if(QUEST_LIST[5]==questType){
// Add a video of ...
showFlashMessage("初始化任务<提交视频>,请等待!","info",false);
let url="/ucf/Video/new?boardId=0&groupId=0";
showFlashMessage(`请到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="/ucf/Video/new?boardId=0&groupId=0">页面</a>添加一个油管视频!只需要复制粘贴油管视频的链接,然后其他文本域会自动填充(自动填充功能需要该电脑能上油管!),然后提交就行。`,"info",false);
}else if(QUEST_LIST[6]==questType){
// New avatar
showFlashMessage("初始化任务<更换头像>,请等待!","info",false);
let url="/account/personalization";
$.ajax({url: url,type: 'get',success: function(html) {
let frElement=html.match(/<div class="row account-avatar__history"(.|\n)+?div>/);
let avaIdReg=/data-avatar-id="([0-9a-z\-]*?)"/;
if(!avaIdReg.test(frElement[0])){
showFlashMessage(`请到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="${url}">页面</a>更改一下头像。有了头像的历史记录才能自动完成任务!`,"info",false);
}else{
let imgId=frElement[0].match(avaIdReg)[1];
let updateUrl="/account/profile/avatars/switch/"+imgId;
function updateAvatar(count,total){
if(count<=total){
$.ajax({url: updateUrl,type: 'get',success: function(html) {
updateAvatar(++count,total);
if(count==total){
showFlashMessage("更改头像成功!","info",false);
afterCompleted();
}
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}else{
S_S_S_S_LOG.debug(`更改头像: ${count} - ${total}`);
}
}
showFlashMessage(`开始任务:更改头像${questRepeatedTotal-questRepeated}次!`,"info",false);
updateAvatar(questRepeated,questRepeatedTotal);
}
}}).fail(function(html){
showFlashMessage("请求错误,请稍后重试!","info",false);
}).always(function(){
//
});
}else if(QUEST_LIST[7]==questType||QUEST_LIST[10]==questType){
//Quiz: visit the page ...
showFlashMessage("初始化任务<解谜>,请等待!","info",false);
let url="/forums/board/113/awa-on-topic";
let reg1=/(\(.*?\))|([^\(\)]*)/g;
let reg2=/[\da-zA-Z]+/g;
let result=questTitle.match(reg1);
let keywords;
for(let i=0;i<result.length;++i){
if(result[i].lastIndexOf("(")<0){
keywords=result[i].match(reg2);
if(keywords.length>0) break;
}
}
S_S_S_S_LOG.debug(keywords);
$.ajax({url: url,type: 'get',success: function(html){
let frEle=document.createElement("frame");
frEle.innerHTML=html;
let threads=frEle.getElementsByClassName("forums__topic-link");
let questThreadUrl;
for(let i=0;i<threads.length;++i){
let title=threads[i].getAttribute("title");
if(title.toLowerCase().lastIndexOf("quest")<0) continue;
let thsKeywords=title.match(reg2);
let keywordsCount=0;
for(let j=0;j<thsKeywords.length;++j){
if(thsKeywords[j].toLowerCase()==keywords[keywordsCount].toLowerCase()){
++keywordsCount;
if(keywordsCount==keywords.length){
if(!questThreadUrl) questThreadUrl=threads[i].href;
break;
}
}else{
keywordsCount=0;
}
if(questThreadUrl){
break;
}
}
}
if(questThreadUrl){
showFlashMessage(`解谜任务可以到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+questThreadUrl+`">帖子</a>找到答案!`,"info",false);
S_S_S_S_LOG.debug(questThreadUrl);
}else{
showFlashMessage(`解谜任务可以到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+url+`">版块</a>等到坛友发帖得到答案!`,"info",false);
}
}}).fail(function(html){
//
}).always(function(html){
//
});
}else if(QUEST_LIST[8]==questType){
showFlashMessage("初始化任务<更新简介>,请等待!","info",false);
let url="/account";
showFlashMessage(`请到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+url+`">页面</a>修改自己的简介。`,"info",false);
//$.ajax({url: "/account/about",type: 'post',data:{about:"The quick brown fox jumps over the lazy dog!"},success: function(html) {
//showFlashMessage("更新简介成功!","info",false);
//afterCompleted();
//}}).fail(function(html){
//showFlashMessage("请求错误,请稍后重试!","info",false);
//}).always(function(){
//
//});
}else if(QUEST_LIST[9]==questType){
showFlashMessage("初始化任务<写一篇文章>,请等待!","info",false);
let url="/ucf/News/new?boardId=0&groupId=0";
showFlashMessage(`请到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+url+`">页面</a>发表一篇文章。`,"info",false);
}else{
let url="/forums/board/113/awa-on-topic";
showFlashMessage(`未知任务!可以到这个<a target="_blank" style="color:purple;font-weight:bold;text-decoration:underline;" href="`+url+`">版块</a>等到坛友发帖得到答案!`,"info",false);
}
}
*/});////
var autoQuestScriptEle=document.head.appendChild(document.createElement("script"));
autoQuestScriptEle.type="text/javascript";
autoQuestScriptEle.innerHTML=autoQuestFunction;
var upVoteContent=getText(function(){/*
<section class="border-top mt-2" style="display:none;">
<div class="row py-3">
<div class="col-12 col-md-8 pr-0 align-self-center border-right border-light text-center">
<a href="javascript:s_s_s_s_voteUp_function();" class="btn btn-primary s-s-s-s-btn" style="color:#c0c2c4!important;border:1px solid #c0c2c4!important;">Up Vote</a>
</div>
<div id="s_s_s_s_vote_status" class="col-12 align-self-center col-md-4 pr-4 text-center"></div>
</div>
</section>
*/});
var cssEle=document.head.appendChild(document.createElement("style"));
cssEle.type="text/css";
cssEle.innerHTML=cssContent;
mainSection.outerHTML+=upVoteContent;
function getContentId(){
$.getJSON("/esi/featured-tile-data/News", function(data){
let contentId=data.data[0].url.match(/\/ucf\/show\/([\d]+)/)[1];
document.getElementById("s_s_s_s_vote_status").setAttribute("s_s_s_s_contentId",contentId);
S_S_S_S_LOG.debug(contentId);
});
}
getContentId();
var currentContentVotes,maximumContentVotes,questCompleted,pointsEarned;
let questId,questTitle,questType,questCount;
async function initStatus(){
let CC={"AD":"安道尔","AE":"阿联酋","AF":"阿富汗","AG":"安提瓜和巴布达","AI":"安圭拉","AL":"阿尔巴尼亚","AM":"亚美尼亚","AO":"安哥拉","AQ":"南极洲","AR":"阿根廷","AS":"美属萨摩亚","AT":"奥地利","AU":"澳大利亚","AW":"阿鲁巴","AX":"奥兰群岛","AZ":"阿塞拜疆","BA":"波黑","BB":"巴巴多斯","BD":"孟加拉","BE":"比利时","BF":"布基纳法索","BG":"保加利亚","BH":"巴林","BI":"布隆迪","BJ":"贝宁","BL":"圣巴泰勒米岛","BM":"百慕大","BN":"文莱","BO":"玻利维亚","BQ":"荷兰加勒比区","BR":"巴西","BS":"巴哈马","BT":"不丹","BV":"布韦岛","BW":"博茨瓦纳","BY":"白俄罗斯","BZ":"伯利兹","CA":"加拿大","CC":"科科斯群岛","CF":"中非","CH":"瑞士","CL":"智利","CM":"喀麦隆","CO":"哥伦比亚","CR":"哥斯达黎加","CU":"古巴","CV":"佛得角","CX":"圣诞岛","CY":"塞浦路斯","CZ":"捷克","DE":"德国","DJ":"吉布提","DK":"丹麦","DM":"多米尼克","DO":"多米尼加","DZ":"阿尔及利亚","EC":"厄瓜多尔","EE":"爱沙尼亚","EG":"埃及","EH":"西撒哈拉","ER":"厄立特里亚","ES":"西班牙","FI":"芬兰","FJ":"斐济群岛","FK":"马尔维纳斯群岛( 福克兰)","FM":"密克罗尼西亚联邦","FO":"法罗群岛","FR":"法国","GA":"加蓬","GD":"格林纳达","GE":"格鲁吉亚","GF":"法属圭亚那","GH":"加纳","GI":"直布罗陀","GL":"格陵兰","GN":"几内亚","GP":"瓜德罗普","GQ":"赤道几内亚","GR":"希腊","GS":"南乔治亚岛和南桑威奇群岛","GT":"危地马拉","GU":"关岛","GW":"几内亚比绍","GY":"圭亚那","HK":"中国香港","HM":"赫德岛和麦克唐纳群岛","HN":"洪都拉斯","HR":"克罗地亚","HT":"海地","HU":"匈牙利","ID":"印尼","IE":"爱尔兰","IL":"以色列","IM":"马恩岛","IN":"印度","IO":"英属印度洋领地","IQ":"伊拉克","IR":"伊朗","IS":"冰岛","IT":"意大利","JE":"泽西岛","JM":"牙买加","JO":"约旦","JP":"日本","KH":"柬埔寨","KI":"基里巴斯","KM":"科摩罗","KW":"科威特","KY":"开曼群岛","LB":"黎巴嫩","LI":"列支敦士登","LK":"斯里兰卡","LR":"利比里亚","LS":"莱索托","LT":"立陶宛","LU":"卢森堡","LV":"拉脱维亚","LY":"利比亚","MA":"摩洛哥","MC":"摩纳哥","MD":"摩尔多瓦","ME":"黑山","MF":"法属圣马丁","MG":"马达加斯加","MH":"马绍尔群岛","MK":"马其顿","ML":"马里","MM":"缅甸","MO":"中国澳门","MQ":"马提尼克","MR":"毛里塔尼亚","MS":"蒙塞拉特岛","MT":"马耳他","MV":"马尔代夫","MW":"马拉维","MX":"墨西哥","MY":"马来西亚","NA":"纳米比亚","NE":"尼日尔","NF":"诺福克岛","NG":"尼日利亚","NI":"尼加拉瓜","NL":"荷兰","NO":"挪威","NP":"尼泊尔","NR":"瑙鲁","OM":"阿曼","PA":"巴拿马","PE":"秘鲁","PF":"法属波利尼西亚","PG":"巴布亚新几内亚","PH":"菲律宾","PK":"巴基斯坦","PL":"波兰","PN":"皮特凯恩群岛","PR":"波多黎各","PS":"巴勒斯坦","PW":"帕劳","PY":"巴拉圭","QA":"卡塔尔","RE":"留尼汪","RO":"罗马尼亚","RS":"塞尔维亚","RU":"俄罗斯","RW":"卢旺达","SB":"所罗门群岛","SC":"塞舌尔","SD":"苏丹","SE":"瑞典","SG":"新加坡","SI":"斯洛文尼亚","SJ":"斯瓦尔巴群岛和扬马延岛","SK":"斯洛伐克","SL":"塞拉利昂","SM":"圣马力诺","SN":"塞内加尔","SO":"索马里","SR":"苏里南","SS":"南苏丹","ST":"圣多美和普林西比","SV":"萨尔瓦多","SY":"叙利亚","SZ":"斯威士兰","TC":"特克斯和凯科斯群岛","TD":"乍得","TG":"多哥","TH":"泰国","TK":"托克劳","TL":"东帝汶","TN":"突尼斯","TO":"汤加","TR":"土耳其","TV":"图瓦卢","TZ":"坦桑尼亚","UA":"乌克兰","UG":"乌干达","US":"美国","UY":"乌拉圭","VA":"梵蒂冈","VE":"委内瑞拉","VG":"英属维尔京群岛","VI":"美属维尔京群岛","VN":"越南","WF":"瓦利斯和富图纳","WS":"萨摩亚","YE":"也门","YT":"马约特","ZA":"南非","ZM":"赞比亚","ZW":"津巴布韦","CN":"中国内地","CG":"刚果(布)","CD":"刚果(金)","MZ":"莫桑比克","GG":"根西岛","GM":"冈比亚","MP":"北马里亚纳群岛","ET":"埃塞俄比亚","NC":"新喀里多尼亚","VU":"瓦努阿图","TF":"法属南部领地","NU":"纽埃","UM":"美国本土外小岛屿","CK":"库克群岛","GB":"英国","TT":"特立尼达和多巴哥","VC":"圣文森特和格林纳丁斯","TW":"中国台湾省","NZ":"新西兰","SA":"沙特阿拉伯","LA":"老挝","KP":"朝鲜 北朝鲜","KR":"韩国 南朝鲜","PT":"葡萄牙","KG":"吉尔吉斯斯坦","KZ":"哈萨克斯坦","TJ":"塔吉克斯坦","TM":"土库曼斯坦","UZ":"乌兹别克斯坦","KN":"圣基茨和尼维斯","PM":"圣皮埃尔和密克隆","SH":"圣赫勒拿","LC":"圣卢西亚","MU":"毛里求斯","CI":"科特迪瓦","KE":"肯尼亚","MN":"蒙古国"}
let userCountry=user_country;
if(userCountry){
let username=document.querySelector("#mCSB_2_container").querySelector(".um-username-link");
if(username){
username.outerHTML+=`<span style="font-size:0.67rem;color:#00baf8;font-family:Microsoft YaHei;"> - ${CC[userCountry]}</span>`;
}
}
const response = await fetch('/api/v1/users/arp/status', {credentials: 'same-origin'}).catch((error) => {throw error});
const status = await response.json();
questCount=status.quests.length;
const contentVotes = status.daily_arp[1].status.split(' ');
currentContentVotes = parseInt(contentVotes[0], 10);
maximumContentVotes = parseInt(contentVotes[2], 10);
let voteStatus=document.getElementById("s_s_s_s_vote_status");
if(voteStatus)voteStatus.innerHTML=""+currentContentVotes+"/"+maximumContentVotes;
for(let i=0;i<questCount;++i){
questId=status.quests[i].quest_id;
questTitle=status.quests[i].title;
questType=status.quests[i].type;
questCompleted=status.quests[i].completed;
pointsEarned=status.quests[i].points_earned;
S_S_S_S_LOG.debug(status.quests[i]);
S_S_S_S_LOG.debug(questTitle);
S_S_S_S_LOG.debug(questType);
let questEle=document.getElementsByClassName("quest-title")[i];
S_S_S_S_LOG.debug(questEle.outerHTML);
let questProgressEle=document.getElementsByClassName("quest-item")[i].getElementsByClassName("quest-item-progress")[1];
S_S_S_S_LOG.debug("quest completed: "+questCompleted);
if(!questCompleted){
if(questEle.tagName.toLowerCase()!="a"){
voteStatus.setAttribute("s_s_quest_id"+i,""+questId);
voteStatus.setAttribute("s_s_quest_title"+i,""+questTitle);
voteStatus.setAttribute("s_s_quest_type"+i,""+questType);
voteStatus.setAttribute("s_s_points_earned"+i,""+pointsEarned);
questEle.outerHTML=`<a href="javascript:s_s_s_s_auto_quest_function(${i});" style="text-decoration:underline;">`+questEle.outerHTML+`</a>`;
}else{
let questEleStyle=questEle.getAttribute("style");
questEle.setAttribute("style", (questEleStyle ? questEleStyle : "")+"text-decoration:underline !important;");
}
questProgressEle.innerHTML+="/"+pointsEarned;
}
}
voteStatus.setAttribute("s_s_quest_count",""+questCount);
S_S_S_S_LOG.info("Initialized status!");
}
initStatus();
var upVoteFunction=getText(function(){/*
function showFlashMessage(message, type, removeActions) {
type = type || 'success';
removeActions = removeActions === undefined ? true : removeActions;
// Close previous flash messages
$.notifyClose();
$.notify({
type: type,
message: message
}, {
delay: 0,
template:`<div data-notify="container" class="col-xs-11 col-sm-3 alert alert-{0}" role="alert">
<button type="button" class="close" data-notify="dismiss" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<span data-notify="message">{2}</span>
</div>`
});
if (removeActions) { $('#giveaway-actions').remove(); }
}
function s_s_s_s_voteUp_function(){
let baseId=((parseInt($("#s_s_s_s_vote_status").attr("s_s_s_s_contentId"),10)/100000-3)>>0)*100000;
S_S_S_S_LOG.debug("baseId: "+baseId);
let voteStatus=$("#s_s_s_s_vote_status");
if(voteStatus.text()==""){
showFlashMessage("<p>请等待</p><p>投票系统尚未就绪!","info",false);
return;
}
const MAX_COUNT=80;
let voteStatusText=voteStatus.text().match(/^([\d]+)\/([\d]+)$/);
let voteCount=parseInt(voteStatusText[1],10);
let voteMax=parseInt(voteStatusText[2],10);
let voteSuccessCount=0;
let date=new Date();
let baseDate=((date.getMonth()+1)*100+date.getDate())*MAX_COUNT;
//start!
let baseContentId=baseId+baseDate;
let notifyTitle=document.createElement("p");
let notifyMessage=document.createElement("p");
let notifyList=document.createElement("ul");
let upVoteButton=document.getElementsByClassName("s-s-s-s-btn")[0];
if(voteCount<voteMax){
notifyTitle.innerHTML="投票中...";
notifyMessage.innerHTML="正在投票!在投票完成前请不要点击当前页面的任何链接或者关闭当前页面。如果遇到投票失败,请手动投票!";
S_S_S_S_LOG.info("Start voting");
showFlashMessage(notifyTitle.outerHTML+notifyMessage.outerHTML,"info",false);
upVoteButton.setAttribute("href","javascript:void(0);");
}else{
notifyTitle.innerHTML="错误";
notifyMessage.innerHTML="投票次数已达上限!";
showFlashMessage(notifyTitle.outerHTML+notifyMessage.outerHTML,"info",false);
return;
}
function applyContentVoting() {
if(voteSuccessCount<voteMax&&voteCount<MAX_COUNT){
let contentId=baseContentId+voteCount;
S_S_S_S_LOG.debug(contentId);
let votingURL = `/ucf/vote/up/${contentId}`;
let contentList=notifyList.innerHTML;
$.ajax({url: votingURL,type: 'post',success: function(data) {
S_S_S_S_LOG.debug(data.message);
if(data.success){
++voteSuccessCount;
voteStatus.text(voteSuccessCount+"/"+voteMax);
contentList+=`<li><a target="_blank" href="/ucf/show/${contentId}">${contentId}</a>: 投票成功!</li>`;
}else{
contentList+=`<li style="color:red"><a target="_blank" href="/ucf/show/${contentId}">${contentId}</a>: 失败,已经投过票了!</li>`;
}
notifyList.innerHTML=contentList;
}})
.fail(function(data) {
S_S_S_S_LOG.debug("up vote failed!");
S_S_S_S_LOG.debug(data);
contentList+=`<li style="color:red"><a target="_blank" href="/ucf/show/${contentId}">${contentId}</a>: 投票失败,可能帖子被删除!</li>`;
notifyList.innerHTML=contentList;
})
.always(function() {
++voteCount;
if(voteSuccessCount<voteMax){
let sleepTime=((Math.random()*10>>0)%8+5)*1000;
S_S_S_S_LOG.debug("sleep: "+sleepTime);
setTimeout(()=>{applyContentVoting()},sleepTime);
}else{
S_S_S_S_LOG.info("Up vote done!");
notifyTitle.innerHTML="投票结束!";
notifyMessage.innerHTML="如果遇到投票失败,请手动投票!";
showFlashMessage(notifyTitle.outerHTML+notifyMessage.outerHTML+notifyList.outerHTML,"info",false);
upVoteButton.setAttribute("href","javascript:s_s_s_s_voteUp_function();");
}
});
}
}
applyContentVoting();
}
*/});
var scriptEle=document.head.appendChild(document.createElement("script"));
scriptEle.type="text/javascript";
scriptEle.innerHTML=upVoteFunction;
})();