User:Docmoates/Social: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 279: | Line 279: | ||
<script> | <script> | ||
function initSocialFeed(){ | |||
var apiBase=location.protocol+'//'+location.host+'/api.php'; | var apiBase=location.protocol+'//'+location.host+'/api.php'; | ||
var user='Guest'; | var user='Guest'; | ||
var csrfToken=''; | var csrfToken=''; | ||
var mwApi=null; | |||
try{if(window.mw){user=mw.config.get('wgUserName');if(!user)user='Guest';}}catch(e){} | try{ | ||
if(window.mw){ | |||
user=mw.config.get('wgUserName'); | |||
if(!user)user='Guest'; | |||
if(mw.Api)mwApi=new mw.Api(); | |||
} | |||
}catch(e){} | |||
var photo=localStorage.getItem('sf_photo_'+user)||''; | var photo=localStorage.getItem('sf_photo_'+user)||''; | ||
| Line 309: | Line 316: | ||
function apiGet(params){ | function apiGet(params){ | ||
if(mwApi){ | |||
return mwApi.get(params); | |||
} | |||
var url=apiBase+'?format=json'; | var url=apiBase+'?format=json'; | ||
for(var k in params)url+='&'+encodeURIComponent(k)+'='+encodeURIComponent(params[k]); | for(var k in params)url+='&'+encodeURIComponent(k)+'='+encodeURIComponent(params[k]); | ||
return fetch(url,{credentials:' | return fetch(url,{credentials:'include'}).then(function(r){return r.json();}); | ||
} | } | ||
function apiPost(params){ | function apiPost(params){ | ||
if(mwApi){ | |||
return mwApi.postWithToken('csrf',params); | |||
} | |||
var form=new FormData(); | var form=new FormData(); | ||
form.append('format','json'); | form.append('format','json'); | ||
for(var k in params)form.append(k,params[k]); | for(var k in params)form.append(k,params[k]); | ||
return fetch(apiBase,{method:'POST',credentials:' | return fetch(apiBase,{method:'POST',credentials:'include',body:form}).then(function(r){return r.json();}); | ||
} | } | ||
function getToken(){ | function getToken(){ | ||
if(mwApi){ | |||
return mwApi.getToken('csrf').then(function(token){ | |||
csrfToken=token; | |||
return token; | |||
}); | |||
} | |||
return apiGet({action:'query',meta:'tokens',type:'csrf'}).then(function(d){ | return apiGet({action:'query',meta:'tokens',type:'csrf'}).then(function(d){ | ||
csrfToken=d.query.tokens.csrftoken; | csrfToken=d.query.tokens.csrftoken; | ||
| Line 961: | Line 980: | ||
load(); | load(); | ||
loadStories(); | loadStories(); | ||
}); | } | ||
if(window.mw){ | |||
mw.loader.using(['mediawiki.api']).then(initSocialFeed).catch(function(){initSocialFeed();}); | |||
}else{ | |||
document.addEventListener('DOMContentLoaded',initSocialFeed); | |||
} | |||
</script> | </script> | ||
</div> | </div> | ||
</html> | </html> | ||
Revision as of 03:15, 3 February 2026
Uploading...
Uploading...
Uploading...
Uploading...
Supports YouTube, Vimeo, or direct video URLs
— or —