1 line
3.1 KiB
JavaScript
1 line
3.1 KiB
JavaScript
function fcn_replaceProfileImage(e,t){const n=e.querySelector(".user-icon");if(n){const a=document.createElement("img");a.classList.add("user-profile-image"),a.src=t,n.remove(),e.appendChild(a)}}function fcn_setProfileImage(e,t=!0){e&&fcn_isValidUrl(e)&&(t&&localStorage.setItem("fcnProfileAvatar",e),_$$("a.subscriber-profile")?.forEach((t=>{fcn_replaceProfileImage(t,e)})))}function fcn_getProfileImage(){let e=localStorage.getItem("fcnProfileAvatar");fcn_isLoggedIn?(fcn_isValidUrl(e)||(e=!1),e?fcn_setProfileImage(e):fcn_getUserAvatar()):localStorage.removeItem("fcnProfileAvatar")}function fcn_getUserAvatar(){fcn_ajaxGet({action:"fictioneer_ajax_get_avatar",fcn_fast_ajax:1}).then((e=>{e.success&&fcn_setProfileImage(e.data.url)})).catch((()=>{fcn_theRoot.dataset.defaultAvatar&&fcn_setProfileImage(fcn_theRoot.dataset.defaultAvatar,!1)}))}var fcn_fingerprint,fcn_userData;function fcn_initializeFingerprint(){fcn_fingerprint=fcn_getFingerprint(),fcn_fetchFingerprint()}function fcn_getFingerprint(){const e=localStorage.getItem("fcnFingerprint");return e&&fcn_isValidJSONString(e)?JSON.parse(e):{lastLoaded:0,fingerprint:!1}}function fcn_fetchFingerprint(){fcn_ajaxLimitThreshold<fcn_fingerprint.lastLoaded||fcn_ajaxGet({action:"fictioneer_ajax_get_fingerprint",fcn_fast_ajax:1}).then((e=>{if(e.success){const t=e.data.fingerprint;(fcn_fingerprint={fingerprint:t}).lastLoaded=Date.now(),localStorage.setItem("fcnFingerprint",JSON.stringify(fcn_fingerprint)),"function"==typeof fcn_revealEditButton&&fcn_revealEditButton(),"function"==typeof fcn_revealDeleteButton&&fcn_revealDeleteButton()}else localStorage.removeItem("fcnFingerprint"),fcn_fingerprint=!1})).catch((()=>{localStorage.removeItem("fcnFingerprint"),fcn_fingerprint=!1}))}function fcn_initializeUserData(){fcn_userData=fcn_getUserData(),fcn_fetchUserData()}function fcn_getUserData(){const e=localStorage.getItem("fcnUserData");return e&&fcn_isValidJSONString(e)?JSON.parse(e):{lastLoaded:0,timestamp:0,follows:!1,reminders:!1,checkmarks:!1,bookmarks:{},fingerprint:!1}}function fcn_setUserData(e){localStorage.setItem("fcnUserData",JSON.stringify(e))}function fcn_fetchUserData(){if(fcn_ajaxLimitThreshold<fcn_userData.lastLoaded){const e=new CustomEvent("fcnUserDataReady",{detail:{data:fcn_userData,time:new Date},bubbles:!1,cancelable:!0});document.dispatchEvent(e)}else fcn_ajaxGet({action:"fictioneer_ajax_get_user_data",fcn_fast_ajax:1}).then((e=>{if(e.success){(fcn_userData=e.data).lastLoaded=Date.now();const t=new CustomEvent("fcnUserDataReady",{detail:{data:e.data,time:new Date},bubbles:!0,cancelable:!1});fcn_setUserData(fcn_userData),document.dispatchEvent(t)}else{localStorage.removeItem("fcnUserData"),fcn_userData=!1;const t=new CustomEvent("fcnUserDataFailed",{detail:{response:e,time:new Date},bubbles:!0,cancelable:!1});document.dispatchEvent(t)}})).catch((e=>{localStorage.removeItem("fcnUserData"),fcn_userData=!1;const t=new CustomEvent("fcnUserDataError",{detail:{error:e,time:new Date},bubbles:!0,cancelable:!1});document.dispatchEvent(t)}))}fcn_getProfileImage(),fcn_isLoggedIn&&fcn_initializeFingerprint(),document.addEventListener("DOMContentLoaded",(()=>{fcn_isLoggedIn&&fcn_initializeUserData()})); |