User:Docmoates/Social: Difference between revisions

From XMethod Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 279: Line 279:


<script>
<script>
document.addEventListener('DOMContentLoaded',function(){
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:'same-origin'}).then(function(r){return r.json();});
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:'same-origin',body:form}).then(function(r){return r.json();});
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

Add Story
?
Edit
📍
📝
No posts yet
Be the first to share something!
Set Profile Photo
Upload
From URL
📸
Click to select or drag photo here

Uploading...

Add Story
Upload
From URL
📷
Click to select or drag image here

Uploading...

Add Photo
Upload
From URL
📤
Click to select or drag image here

Uploading...

Add Video
Upload
From URL
🎬
Click to select or drag video here

Uploading...

Supports YouTube, Vimeo, or direct video URLs

Add Location

— or —