diff --git a/CTFd/themes/core-beta/assets/js/challenges.js b/CTFd/themes/core-beta/assets/js/challenges.js index cb56347f2493cbef8222635c2371d5ac920cdf8b..739d78f13801aa7b8d68389c291a692a3813a1b6 100644 --- a/CTFd/themes/core-beta/assets/js/challenges.js +++ b/CTFd/themes/core-beta/assets/js/challenges.js @@ -371,11 +371,13 @@ Alpine.data("ChallengeBoard", () => ({ let args = {}; args[`team_id`] = window.TEAM_ID; let apiArgs = args; + apiArgs[`page`] = 1; apiArgs[`per_page`] = 10000; this.challenges = await CTFd.pages.challenges.getChallenges(); - this.submissions = await CTFd.pages.submissions.getSubmissions(args); + //retirer du code 2025-01-04 car fesait du trouble + //this.submissions = await CTFd.pages.submissions.getSubmissions(args); let standings = await CTFd.pages.scoreboard.getScoreboard(); let ScoreboardDetail = await CTFd.pages.scoreboard.getScoreboardDetail( standings.length, diff --git a/CTFd/themes/core-beta/static/assets/challenges.273e4536.js b/CTFd/themes/core-beta/static/assets/challenges.dfe4d494.js similarity index 50% rename from CTFd/themes/core-beta/static/assets/challenges.273e4536.js rename to CTFd/themes/core-beta/static/assets/challenges.dfe4d494.js index 61851640fe94279c24718e1e1d873029d5c4e8e0..691322332ce49190a89810e0d18a69fa3ff0172e 100644 --- a/CTFd/themes/core-beta/static/assets/challenges.273e4536.js +++ b/CTFd/themes/core-beta/static/assets/challenges.dfe4d494.js @@ -1 +1 @@ -import{C as o,m as c,h as w,T as y,d as x,M as E,a as C}from"./index.5095421b.js";import{V as I,C as S,h as b}from"./CommentBox.d714ee4b.js";window.values=[];window.TEAM_ID=o.team.id;window.USER_ID=o.user.id;function v(e){let s=new DOMParser().parseFromString(e,"text/html");return s.querySelectorAll('a[href*="://"]').forEach(l=>{l.setAttribute("target","_blank")}),s.documentElement.outerHTML}window.Alpine=c;c.store("challenge",{data:{view:""}});c.data("Hint",()=>({id:null,html:null,async showHint(e){if(e.target.open){let s=(await o.pages.challenge.loadHint(this.id)).data;if(s.content)this.html=v(s.html);else if(await o.pages.challenge.displayUnlock(this.id)){let l=await o.pages.challenge.loadUnlock(this.id);if(l.success){let i=(await o.pages.challenge.loadHint(this.id)).data;this.html=v(i.html)}else e.target.open=!1,o._functions.challenge.displayUnlockError(l)}else e.target.open=!1}}}));c.data("Challenge",()=>({id:null,next_id:null,submission:"",tab:null,solves:[],response:null,share_url:null,async init(){w()},getStyles(){let e={"modal-dialog":!0};try{switch(o.config.themeSettings.challenge_window_size){case"sm":e["modal-sm"]=!0;break;case"lg":e["modal-lg"]=!0;break;case"xl":e["modal-xl"]=!0;break;default:break}}catch(t){console.log("Erreur de traitement challenge_window_size"),console.log(t)}return e},async init(){w()},async showChallenge(){new y(this.$el).show()},async showSolves(){this.solves=await o.pages.challenge.loadSolves(this.id),console.log("showSolvers (challenge.js) exexuction"),console.log(this.solves),this.solves.forEach(e=>(e.date=x(e.date).format("MMMM Do, h:mm:ss A"),e)),new y(this.$el).show()},async showComments(){const e=I.extend(S);let t=document.createElement("div");document.querySelector("#comment-box").removeChild(document.querySelector("#comment-box").firstChild),document.querySelector("#comment-box").appendChild(t),new e({propsData:{type:"team",id:window.TEAM_ID,challenge_id:this.id}}).$mount(t),new y(this.$el).show()},getNextId(){return c.store("challenge").data.next_id},async nextChallenge(){let e=E.getOrCreateInstance("[x-ref='challengeWindow']");e._element.addEventListener("hidden.bs.modal",t=>{c.nextTick(()=>{this.$dispatch("load-challenge",this.getNextId())})},{once:!0}),e.hide()},async getShareUrl(){let e={type:"solve",challenge_id:this.id};const n=(await(await o.fetch("/api/v1/shares",{method:"POST",body:JSON.stringify(e)})).json()).data.url;this.share_url=n},copyShareUrl(){if(alert(),window.isSecureContext){navigator.clipboard.writeText(this.share_url);let e=C.getOrCreateInstance(this.$el);e.enable(),e.show(),setTimeout(()=>{e.hide(),e.disable()},2e3)}else{const e=document.createElement("textarea");e.value=text,document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}catch(t){console.error("Impossible de copier dans le presse-papiers",t)}document.body.removeChild(e)}},async submitChallenge(){console.log(this.submission),this.response=await o.pages.challenge.submitChallenge(this.id,this.submission),await this.renderSubmissionResponse()},async renderSubmissionResponse(){this.response.data.status==="correct"&&(this.submission=""),this.$dispatch("load-challenges")},async submitManualChallenge(e){if(document.getElementById("file-input").hidden)document.getElementById("text-input").value!=""?(this.response=await o.pages.challenge.submitChallenge(this.id,document.getElementById("text-input").value),this.response.success?(this.response.data.status="correct",this.response.data.message="Envoy\xE9 avec succ\xE8s!"):(this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite veuillez contacter votre administrateur"),this.$dispatch("load-challenges")):(alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1);else{let s=document.getElementById("form-file-input");document.getElementById("form-file-input").value=this;var t=new FormData(s);if(Object.fromEntries(t).file.name!="")try{await b.files.upload(s,{id:this.id,type:e},async function(n){document.getElementById("form-file-input").value.$dispatch("load-challenges")})}catch(n){this.response={},this.response.data={},this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite, veuillez contacter l'administrateur pour "+n,this.$dispatch("load-challenges"),document.getElementById("challenge-submit").disabled=!1}else alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1}document.getElementById("file-input").textContent="Veuillez s\xE9lectionner un fichier",document.getElementById("text-input").value=""},async submitSportChallenge(e){let t=document.getElementById("form-file-input-btn"),s=document.getElementById("form-file-input");if(document.getElementById("this-holder").value=this,!s||!t||t.hidden){alert("Erreur: Aucun fichier \xE0 envoyer ou formulaire manquant.");return}let n=new FormData(s),l=`value-${e}`,a=document.getElementById(l),i=a?a.textContent:null,r=await o.pages.challenges.getChallenge(e);const m=document.getElementById("unit-input"),f=m?m.value:null;let h=Math.round(f)*r.value;if(f){let d=s.querySelector('input[name="userValue"]');d||(d=document.createElement("input"),d.type="hidden",d.name="userValue",s.appendChild(d)),d.value=h}let g=Number(i)+Number(h);if(g<=r.max_points&&h>0)if(n.has("file")&&n.get("file").name!=="")try{await b.files.upload(s,{id:this.id,type:"sport"},async function(d){console.log(d);const p=`new-sum-${e}`;let u=document.getElementById(p);u||(u=document.createElement("div"),u.id=p,u.style.display="none",document.body.appendChild(u)),u.textContent=g,this.$dispatch("load-challenges")})}catch(d){this.response={},this.response.data={},this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite, veuillez contacter l'administrateur pour "+d,this.$dispatch("load-challenges"),document.getElementById("challenge-submit").disabled=!1}else alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1;else Math.round(r.max_points-i)<r.value?alert("Le nombre de points maximal a \xE9t\xE9 atteint pour ce d\xE9fi"):alert("Vous devez entrer une valeur entre 1 et "+Math.floor(r.max_points/r.value-i/r.value));document.getElementById("file-input").textContent="Veuillez s\xE9lectionner un fichier",document.getElementById("text-input").value=""}}));c.data("ChallengeBoard",()=>({loaded:!1,challenges:[],challenge:null,async init(){let e={};e.team_id=window.TEAM_ID;let t=e;t.page=1,t.per_page=1e4,this.challenges=await o.pages.challenges.getChallenges(),this.submissions=await o.pages.submissions.getSubmissions(e);let s=await o.pages.scoreboard.getScoreboard();await o.pages.scoreboard.getScoreboardDetail(s.length),this.comments=await b.comments.get_comments(t),this.maxScore=0,this.solveScore=0,this.submitScore=0;for(let l in this.challenges){let a=this.challenges[l].value;if(this.challenges[l].solved_by_me?this.solveScore+=a:this.challenges[l].submited&&(this.submitScore+=a),this.maxScore+=a,this.challenges[l].type=="sport"){let d=0;for(let p in this.submissions)this.submissions[p].challenge_id==this.challenges[l].id&&(this.challenges[l].solved_by_me||this.challenges[l].submited)&&(d+=this.submissions[p].value);this.challenges[l].value=d}let i=`value-${this.challenges[l].id}`,r=document.getElementById(i),m=r?r.textContent:null,f=`max-points-${this.challenges[l].id}`,h=document.getElementById(f),g=h?h.textContent:null;m!=null&&g!=null&&m==g&&document.querySelector(`button.challenge-button[value="${this.challenges[l].id}"]`).classList.add("challenge-solved")}document.getElementById("scoreProgressTitle").textContent=this.solveScore+this.submitScore+" points",document.getElementById("scoreProgressBar").value=100*((this.solveScore+this.submitScore)/this.maxScore);let n;this.solveScore!=0?n=""+parseInt(100*(this.submitScore/(this.solveScore+this.submitScore)))+"% des points en approbations":n="Un de vos d\xE9fis doit \xEAtre valid\xE9 pour que vos soumissions soient visibles par les autres \xE9quipes.",document.getElementById("scoreProgressText").textContent=n,this.commentsChallengeDict={};for(let l in this.comments.data){let a=this.comments.data[l].content;if(a.search("#")!=-1){a=a.split("#")[1];let i=a.search(":"),r=0;i!=-1,r=parseInt(a.split(":")[0]),this.commentsChallengeDict[r]!=null?this.commentsChallengeDict[r]=this.commentsChallengeDict[r]+1:this.commentsChallengeDict[r]=1}}for(let l in this.commentsChallengeDict)try{document.getElementById(l).textContent=this.commentsChallengeDict[l]>99?99:this.commentsChallengeDict[l]<=9?" "+this.commentsChallengeDict[l]:this.commentsChallengeDict[l],document.getElementById(l).className+=" fas fa-comments float-start challenge-comments"}catch{}if(this.loaded=!0,window.location.hash){let l=decodeURIComponent(window.location.hash.substring(1)),a=l.lastIndexOf("-");if(a>=0){let r=[l.slice(0,a),l.slice(a+1)][1];await this.loadChallenge(r)}}},getCategories(){const e=[];this.challenges.forEach(t=>{const{category:s}=t;e.includes(s)||e.push(s)});try{const t=o.config.themeSettings.challenge_category_order;if(t){const s=new Function(`return (${t})`);e.sort(s())}}catch(t){console.log("Erreur lors de l'ex\xE9cution de la fonction challenge_category_order"),console.log(t)}return e},getChallenges(e){let t=this.challenges;e!==null&&(t=this.challenges.filter(s=>s.category===e));try{const s=o.config.themeSettings.challenge_order;if(s){const n=new Function(`return (${s})`);t.sort(n())}}catch(s){console.log("Erreur lors de l'ex\xE9cution de la fonction challenge_order"),console.log(s)}return console.log(t),t},async loadChallenges(){this.challenges=await o.pages.challenges.getChallenges();for(let e in this.challenges){let t=this.challenges[e].value;this.challenges[e].solved_by_me?this.solveScore+=t:this.challenges[e].submited&&(this.submitScore+=t),this.maxScore+=t;const s=`new-sum-${this.challenges[e].id}`,n=document.getElementById(s);if((n?n.textContent:null)!=null)this.challenges[e].value=sum;else if(this.challenges[e].type=="sport"){let a=0;for(let i in this.submissions)this.submissions[i].challenge_id==this.challenges[e].id&&(this.challenges[e].solved_by_me||this.challenges[e].submited)&&(a+=this.submissions[i].value);this.challenges[e].value=a}}},async loadChallenge(e){await o.pages.challenge.displayChallenge(e,t=>{t.data.view=v(t.data.view),c.store("challenge").data=t.data,c.nextTick(()=>{let s=E.getOrCreateInstance("[x-ref='challengeWindow']");s._element.addEventListener("hidden.bs.modal",n=>{history.replaceState(null,null," ")},{once:!0}),s.show(),history.replaceState(null,null,`#${t.data.name}-${e}`)})})}}));c.start();(()=>{var e=(t,i)=>{if(i<=0){t.innerHTML=" ",t.parentElement.parentElement.disabled=!0,t.parentElement.parentElement.className+=" disabled",t.className=t.className.split(" time")[0],console.log(t),t.parentElement.parentElement.parentElement.getElementsByClassName("flash-effect")[0].className="",t.parentElement.parentElement.parentElement.getElementsByClassName("flash-image")[0].src="/themes/core-beta/static/img/flashStable.png",t.className="",t.parentElement.parentElement.getElementsByClassName("challenge-submit")[0].disabled=!0,t.className="";return}var n=i/86400|0,l=i%86400/3600|0,a=i%3600/60|0,i=i%60|0;t.textContent=n+":"+l+":"+a+":"+i};setInterval(()=>{for(var t=Date.now()/1e3|0,s=document.getElementsByClassName("time"),n=0;n<s.length;n++){var l=s[n],a=l.id-t;console.log(l.id),e(l,a)}},1e3)})();globalThis.hit=function(){let e=document.getElementById("file-input"),t=document.getElementById("text-input"),s=document.getElementById("soumettre-media-label"),n=document.getElementById("soumettre-texte-label");t.hidden?(e.hidden=!0,t.hidden=!1,s.hidden=!0,n.hidden=!1):(e.hidden=!1,t.hidden=!0,s.hidden=!1,n.hidden=!0)};globalThis.changeLabel=function(e){let t=e.target.files.length+" fichier(s) \xE0 envoyer",s=0,n=["hevc","mp4","avi","mkv","mov","MOV","wmv","flv","webm","mpeg","3gp","ogv"],l=["jpeg","png","bmp","tiff","webp","raw","heic","ico","jpg"];for(let a=0;a<e.target.files.length;a++){let i=e.target.files[a].name.split(".")[1];s+=e.target.files[a].size,!n.includes(i.toLowerCase())&&!l.includes(i.toLowerCase())&&(alert("Nous ne supportons pas l'extension ."+i),e.target.value="",t="S\xE9lectionnez un fichier")}s>1e8&&s<2e8?alert("Les fichiers envoy\xE9s sont au dessus de 100MB. Ils seront compress\xE9s. ["+s/1e6+"/100MB]"):s>2e8&&(alert("Les fichiers envoy\xE9s d\xE9passent 200MB. Veuillez utiliser un outil externe et partager un lien. ["+s/1e6+"/200MB]"),e.target.value="",t="S\xE9lectionnez un fichier"),e.target.files.length>20&&(alert("Vous ne pouvez pas envoyer plus de 20 m\xE9dias \xE0 la fois."),e.target.value="",t="S\xE9lectionnez un fichier"),document.getElementById("file-input").textContent=t};globalThis.hit=function(){let e=document.getElementById("file-input"),t=document.getElementById("text-input"),s=document.getElementById("soumettre-media-label"),n=document.getElementById("soumettre-texte-label");t.hidden?(e.hidden=!0,t.hidden=!1,s.hidden=!0,n.hidden=!1):(e.hidden=!1,t.hidden=!0,s.hidden=!1,n.hidden=!0)}; +import{C as o,m as c,h as w,T as y,d as x,M as E,a as C}from"./index.5095421b.js";import{V as I,C as S,h as b}from"./CommentBox.d714ee4b.js";window.values=[];window.TEAM_ID=o.team.id;window.USER_ID=o.user.id;function v(e){let s=new DOMParser().parseFromString(e,"text/html");return s.querySelectorAll('a[href*="://"]').forEach(l=>{l.setAttribute("target","_blank")}),s.documentElement.outerHTML}window.Alpine=c;c.store("challenge",{data:{view:""}});c.data("Hint",()=>({id:null,html:null,async showHint(e){if(e.target.open){let s=(await o.pages.challenge.loadHint(this.id)).data;if(s.content)this.html=v(s.html);else if(await o.pages.challenge.displayUnlock(this.id)){let l=await o.pages.challenge.loadUnlock(this.id);if(l.success){let i=(await o.pages.challenge.loadHint(this.id)).data;this.html=v(i.html)}else e.target.open=!1,o._functions.challenge.displayUnlockError(l)}else e.target.open=!1}}}));c.data("Challenge",()=>({id:null,next_id:null,submission:"",tab:null,solves:[],response:null,share_url:null,async init(){w()},getStyles(){let e={"modal-dialog":!0};try{switch(o.config.themeSettings.challenge_window_size){case"sm":e["modal-sm"]=!0;break;case"lg":e["modal-lg"]=!0;break;case"xl":e["modal-xl"]=!0;break;default:break}}catch(t){console.log("Erreur de traitement challenge_window_size"),console.log(t)}return e},async init(){w()},async showChallenge(){new y(this.$el).show()},async showSolves(){this.solves=await o.pages.challenge.loadSolves(this.id),console.log("showSolvers (challenge.js) exexuction"),console.log(this.solves),this.solves.forEach(e=>(e.date=x(e.date).format("MMMM Do, h:mm:ss A"),e)),new y(this.$el).show()},async showComments(){const e=I.extend(S);let t=document.createElement("div");document.querySelector("#comment-box").removeChild(document.querySelector("#comment-box").firstChild),document.querySelector("#comment-box").appendChild(t),new e({propsData:{type:"team",id:window.TEAM_ID,challenge_id:this.id}}).$mount(t),new y(this.$el).show()},getNextId(){return c.store("challenge").data.next_id},async nextChallenge(){let e=E.getOrCreateInstance("[x-ref='challengeWindow']");e._element.addEventListener("hidden.bs.modal",t=>{c.nextTick(()=>{this.$dispatch("load-challenge",this.getNextId())})},{once:!0}),e.hide()},async getShareUrl(){let e={type:"solve",challenge_id:this.id};const n=(await(await o.fetch("/api/v1/shares",{method:"POST",body:JSON.stringify(e)})).json()).data.url;this.share_url=n},copyShareUrl(){if(alert(),window.isSecureContext){navigator.clipboard.writeText(this.share_url);let e=C.getOrCreateInstance(this.$el);e.enable(),e.show(),setTimeout(()=>{e.hide(),e.disable()},2e3)}else{const e=document.createElement("textarea");e.value=text,document.body.appendChild(e),e.focus(),e.select();try{document.execCommand("copy")}catch(t){console.error("Impossible de copier dans le presse-papiers",t)}document.body.removeChild(e)}},async submitChallenge(){console.log(this.submission),this.response=await o.pages.challenge.submitChallenge(this.id,this.submission),await this.renderSubmissionResponse()},async renderSubmissionResponse(){this.response.data.status==="correct"&&(this.submission=""),this.$dispatch("load-challenges")},async submitManualChallenge(e){if(document.getElementById("file-input").hidden)document.getElementById("text-input").value!=""?(this.response=await o.pages.challenge.submitChallenge(this.id,document.getElementById("text-input").value),this.response.success?(this.response.data.status="correct",this.response.data.message="Envoy\xE9 avec succ\xE8s!"):(this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite veuillez contacter votre administrateur"),this.$dispatch("load-challenges")):(alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1);else{let s=document.getElementById("form-file-input");document.getElementById("form-file-input").value=this;var t=new FormData(s);if(Object.fromEntries(t).file.name!="")try{await b.files.upload(s,{id:this.id,type:e},async function(n){document.getElementById("form-file-input").value.$dispatch("load-challenges")})}catch(n){this.response={},this.response.data={},this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite, veuillez contacter l'administrateur pour "+n,this.$dispatch("load-challenges"),document.getElementById("challenge-submit").disabled=!1}else alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1}document.getElementById("file-input").textContent="Veuillez s\xE9lectionner un fichier",document.getElementById("text-input").value=""},async submitSportChallenge(e){let t=document.getElementById("form-file-input-btn"),s=document.getElementById("form-file-input");if(document.getElementById("this-holder").value=this,!s||!t||t.hidden){alert("Erreur: Aucun fichier \xE0 envoyer ou formulaire manquant.");return}let n=new FormData(s),l=`value-${e}`,a=document.getElementById(l),i=a?a.textContent:null,r=await o.pages.challenges.getChallenge(e);const m=document.getElementById("unit-input"),f=m?m.value:null;let h=Math.round(f)*r.value;if(f){let d=s.querySelector('input[name="userValue"]');d||(d=document.createElement("input"),d.type="hidden",d.name="userValue",s.appendChild(d)),d.value=h}let g=Number(i)+Number(h);if(g<=r.max_points&&h>0)if(n.has("file")&&n.get("file").name!=="")try{await b.files.upload(s,{id:this.id,type:"sport"},async function(d){console.log(d);const p=`new-sum-${e}`;let u=document.getElementById(p);u||(u=document.createElement("div"),u.id=p,u.style.display="none",document.body.appendChild(u)),u.textContent=g,this.$dispatch("load-challenges")})}catch(d){this.response={},this.response.data={},this.response.data.status="incorrect",this.response.data.message="Une erreur s'est produite, veuillez contacter l'administrateur pour "+d,this.$dispatch("load-challenges"),document.getElementById("challenge-submit").disabled=!1}else alert("Vous essayez actuellement d'envoyer rien."),document.getElementById("challenge-submit").disabled=!1;else Math.round(r.max_points-i)<r.value?alert("Le nombre de points maximal a \xE9t\xE9 atteint pour ce d\xE9fi"):alert("Vous devez entrer une valeur entre 1 et "+Math.floor(r.max_points/r.value-i/r.value));document.getElementById("file-input").textContent="Veuillez s\xE9lectionner un fichier",document.getElementById("text-input").value=""}}));c.data("ChallengeBoard",()=>({loaded:!1,challenges:[],challenge:null,async init(){let e={};e.team_id=window.TEAM_ID;let t=e;t.page=1,t.per_page=1e4,this.challenges=await o.pages.challenges.getChallenges();let s=await o.pages.scoreboard.getScoreboard();await o.pages.scoreboard.getScoreboardDetail(s.length),this.comments=await b.comments.get_comments(t),this.maxScore=0,this.solveScore=0,this.submitScore=0;for(let l in this.challenges){let a=this.challenges[l].value;if(this.challenges[l].solved_by_me?this.solveScore+=a:this.challenges[l].submited&&(this.submitScore+=a),this.maxScore+=a,this.challenges[l].type=="sport"){let d=0;for(let p in this.submissions)this.submissions[p].challenge_id==this.challenges[l].id&&(this.challenges[l].solved_by_me||this.challenges[l].submited)&&(d+=this.submissions[p].value);this.challenges[l].value=d}let i=`value-${this.challenges[l].id}`,r=document.getElementById(i),m=r?r.textContent:null,f=`max-points-${this.challenges[l].id}`,h=document.getElementById(f),g=h?h.textContent:null;m!=null&&g!=null&&m==g&&document.querySelector(`button.challenge-button[value="${this.challenges[l].id}"]`).classList.add("challenge-solved")}document.getElementById("scoreProgressTitle").textContent=this.solveScore+this.submitScore+" points",document.getElementById("scoreProgressBar").value=100*((this.solveScore+this.submitScore)/this.maxScore);let n;this.solveScore!=0?n=""+parseInt(100*(this.submitScore/(this.solveScore+this.submitScore)))+"% des points en approbations":n="Un de vos d\xE9fis doit \xEAtre valid\xE9 pour que vos soumissions soient visibles par les autres \xE9quipes.",document.getElementById("scoreProgressText").textContent=n,this.commentsChallengeDict={};for(let l in this.comments.data){let a=this.comments.data[l].content;if(a.search("#")!=-1){a=a.split("#")[1];let i=a.search(":"),r=0;i!=-1,r=parseInt(a.split(":")[0]),this.commentsChallengeDict[r]!=null?this.commentsChallengeDict[r]=this.commentsChallengeDict[r]+1:this.commentsChallengeDict[r]=1}}for(let l in this.commentsChallengeDict)try{document.getElementById(l).textContent=this.commentsChallengeDict[l]>99?99:this.commentsChallengeDict[l]<=9?" "+this.commentsChallengeDict[l]:this.commentsChallengeDict[l],document.getElementById(l).className+=" fas fa-comments float-start challenge-comments"}catch{}if(this.loaded=!0,window.location.hash){let l=decodeURIComponent(window.location.hash.substring(1)),a=l.lastIndexOf("-");if(a>=0){let r=[l.slice(0,a),l.slice(a+1)][1];await this.loadChallenge(r)}}},getCategories(){const e=[];this.challenges.forEach(t=>{const{category:s}=t;e.includes(s)||e.push(s)});try{const t=o.config.themeSettings.challenge_category_order;if(t){const s=new Function(`return (${t})`);e.sort(s())}}catch(t){console.log("Erreur lors de l'ex\xE9cution de la fonction challenge_category_order"),console.log(t)}return e},getChallenges(e){let t=this.challenges;e!==null&&(t=this.challenges.filter(s=>s.category===e));try{const s=o.config.themeSettings.challenge_order;if(s){const n=new Function(`return (${s})`);t.sort(n())}}catch(s){console.log("Erreur lors de l'ex\xE9cution de la fonction challenge_order"),console.log(s)}return console.log(t),t},async loadChallenges(){this.challenges=await o.pages.challenges.getChallenges();for(let e in this.challenges){let t=this.challenges[e].value;this.challenges[e].solved_by_me?this.solveScore+=t:this.challenges[e].submited&&(this.submitScore+=t),this.maxScore+=t;const s=`new-sum-${this.challenges[e].id}`,n=document.getElementById(s);if((n?n.textContent:null)!=null)this.challenges[e].value=sum;else if(this.challenges[e].type=="sport"){let a=0;for(let i in this.submissions)this.submissions[i].challenge_id==this.challenges[e].id&&(this.challenges[e].solved_by_me||this.challenges[e].submited)&&(a+=this.submissions[i].value);this.challenges[e].value=a}}},async loadChallenge(e){await o.pages.challenge.displayChallenge(e,t=>{t.data.view=v(t.data.view),c.store("challenge").data=t.data,c.nextTick(()=>{let s=E.getOrCreateInstance("[x-ref='challengeWindow']");s._element.addEventListener("hidden.bs.modal",n=>{history.replaceState(null,null," ")},{once:!0}),s.show(),history.replaceState(null,null,`#${t.data.name}-${e}`)})})}}));c.start();(()=>{var e=(t,i)=>{if(i<=0){t.innerHTML=" ",t.parentElement.parentElement.disabled=!0,t.parentElement.parentElement.className+=" disabled",t.className=t.className.split(" time")[0],console.log(t),t.parentElement.parentElement.parentElement.getElementsByClassName("flash-effect")[0].className="",t.parentElement.parentElement.parentElement.getElementsByClassName("flash-image")[0].src="/themes/core-beta/static/img/flashStable.png",t.className="",t.parentElement.parentElement.getElementsByClassName("challenge-submit")[0].disabled=!0,t.className="";return}var n=i/86400|0,l=i%86400/3600|0,a=i%3600/60|0,i=i%60|0;t.textContent=n+":"+l+":"+a+":"+i};setInterval(()=>{for(var t=Date.now()/1e3|0,s=document.getElementsByClassName("time"),n=0;n<s.length;n++){var l=s[n],a=l.id-t;console.log(l.id),e(l,a)}},1e3)})();globalThis.hit=function(){let e=document.getElementById("file-input"),t=document.getElementById("text-input"),s=document.getElementById("soumettre-media-label"),n=document.getElementById("soumettre-texte-label");t.hidden?(e.hidden=!0,t.hidden=!1,s.hidden=!0,n.hidden=!1):(e.hidden=!1,t.hidden=!0,s.hidden=!1,n.hidden=!0)};globalThis.changeLabel=function(e){let t=e.target.files.length+" fichier(s) \xE0 envoyer",s=0,n=["hevc","mp4","avi","mkv","mov","MOV","wmv","flv","webm","mpeg","3gp","ogv"],l=["jpeg","png","bmp","tiff","webp","raw","heic","ico","jpg"];for(let a=0;a<e.target.files.length;a++){let i=e.target.files[a].name.split(".")[1];s+=e.target.files[a].size,!n.includes(i.toLowerCase())&&!l.includes(i.toLowerCase())&&(alert("Nous ne supportons pas l'extension ."+i),e.target.value="",t="S\xE9lectionnez un fichier")}s>1e8&&s<2e8?alert("Les fichiers envoy\xE9s sont au dessus de 100MB. Ils seront compress\xE9s. ["+s/1e6+"/100MB]"):s>2e8&&(alert("Les fichiers envoy\xE9s d\xE9passent 200MB. Veuillez utiliser un outil externe et partager un lien. ["+s/1e6+"/200MB]"),e.target.value="",t="S\xE9lectionnez un fichier"),e.target.files.length>20&&(alert("Vous ne pouvez pas envoyer plus de 20 m\xE9dias \xE0 la fois."),e.target.value="",t="S\xE9lectionnez un fichier"),document.getElementById("file-input").textContent=t};globalThis.hit=function(){let e=document.getElementById("file-input"),t=document.getElementById("text-input"),s=document.getElementById("soumettre-media-label"),n=document.getElementById("soumettre-texte-label");t.hidden?(e.hidden=!0,t.hidden=!1,s.hidden=!0,n.hidden=!1):(e.hidden=!1,t.hidden=!0,s.hidden=!1,n.hidden=!0)}; diff --git a/CTFd/themes/core-beta/static/manifest.json b/CTFd/themes/core-beta/static/manifest.json index 0f9581ae8cc43d4dd2d0f59677cf3b983bf79feb..26da0c604e7473255e30985f0e57bd8cd94fee03 100644 --- a/CTFd/themes/core-beta/static/manifest.json +++ b/CTFd/themes/core-beta/static/manifest.json @@ -30,7 +30,7 @@ ] }, "assets/js/challenges.js": { - "file": "assets/challenges.273e4536.js", + "file": "assets/challenges.dfe4d494.js", "src": "assets/js/challenges.js", "isEntry": true, "imports": [