forked from andyburke/autonomous.contact
refactor: clean up chat and split up embed handling
This commit is contained in:
parent
03751c6d00
commit
7e4ab72fe6
14 changed files with 352 additions and 274 deletions
|
|
@ -13,6 +13,19 @@
|
|||
|
||||
<script src="./js/audioplayer.js" type="text/javascript"></script>
|
||||
<script src="./js/datetimeutils.js" type="text/javascript"></script>
|
||||
|
||||
<script src="./js/embeds/audio.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/gif.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/image.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/link.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/mp4.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/spotify.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/tidal.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/vimeo.js" type="text/javascript"></script>
|
||||
<script src="./js/embeds/youtube.js" type="text/javascript"></script>
|
||||
|
||||
<script src="./js/htmlify.js" type="text/javascript"></script>
|
||||
|
||||
<script src="./js/locationchange.js" type="text/javascript"></script>
|
||||
<script src="./js/notifications.js" type="text/javascript"></script>
|
||||
<script src="./js/totp.js" type="text/javascript"></script>
|
||||
|
|
@ -29,6 +42,40 @@
|
|||
</main>
|
||||
</body>
|
||||
<script>
|
||||
/* globals - sue me */
|
||||
const USERS = {
|
||||
_evict_timeouts: {},
|
||||
_update_timeouts: {},
|
||||
get: async (id, force) => {
|
||||
if ( force || !USERS[ id ] ) {
|
||||
USERS[ id ] = (await (await api.fetch(`/api/users/${id}`)).json());
|
||||
}
|
||||
|
||||
if ( !USERS._update_timeouts[ id ] ) {
|
||||
USERS._update_timeouts[ id ] = setInterval( () => {
|
||||
USERS.get( id, true );
|
||||
}, 1 * 60_000 );
|
||||
}
|
||||
|
||||
if ( !force ) {
|
||||
if ( USERS._evict_timeouts[ id ] ) {
|
||||
clearTimeout( USERS._evict_timeouts[ id ] );
|
||||
}
|
||||
|
||||
USERS._evict_timeouts[id] = setTimeout( () => {
|
||||
if ( USERS._update_timeouts[ id ] ) {
|
||||
clearTimeout( USERS._update_timeouts[ id ] );
|
||||
delete USERS._update_timeouts[ id ];
|
||||
}
|
||||
|
||||
delete USERS[ id ];
|
||||
}, 10 * 60_000 );
|
||||
}
|
||||
|
||||
return USERS[ id ];
|
||||
}
|
||||
};
|
||||
|
||||
const HASH_EXTRACTOR = /^\#\/topic\/(?<topic_id>[A-Za-z\-]+)\/?(?<view>\w+)/gm;
|
||||
|
||||
function extract_url_hash_info() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue