utils.jq(() => { const els = Array.from(document.getElementsByClassName('ds-memos')); els.forEach(el => { const api = el.getAttribute('api'); if (!api) return; const default_avatar = el.getAttribute('avatar') || def.avatar; const limit = el.getAttribute('limit'); const host = api.match(/https:\/\/(.*?)\/(.*)/i)[1]; utils.request(el, api, async data => { let memos = versionHandlers.identify(data); if (memos.version === "feature" )return; const users = el.getAttribute('user')?.split(",") || []; const hide = el.getAttribute('hide')?.split(",") || []; await Promise.all(memos.data.slice(0, limit || memos.data.length).map(item => createMemoCell(item, memos, users, hide, default_avatar, host).then(cell => $(el).append(cell)) )); }); async function createMemoCell(item, memos, users, hide, default_avatar, host) { const versionHandler = versionHandlers[memos.version] || versionHandlers["feature"]; return `