enhance(client): tweak custom emoji cache
This commit is contained in:
		
							parent
							
								
									cef448f0f2
								
							
						
					
					
						commit
						7d9d1ae7c2
					
				
					 2 changed files with 14 additions and 6 deletions
				
			
		| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
import { shallowRef, computed, markRaw } from 'vue';
 | 
			
		||||
import * as Misskey from 'misskey-js';
 | 
			
		||||
import { apiGet } from './os';
 | 
			
		||||
import { api, apiGet } from './os';
 | 
			
		||||
import { miLocalStorage } from './local-storage';
 | 
			
		||||
import { stream } from '@/stream';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -28,12 +28,17 @@ stream.on('emojiDeleted', emojiData => {
 | 
			
		|||
	customEmojis.value = customEmojis.value.filter(item => !emojiData.emojis.some(search => search.name === item.name));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
export async function fetchCustomEmojis() {
 | 
			
		||||
export async function fetchCustomEmojis(force = false) {
 | 
			
		||||
	const now = Date.now();
 | 
			
		||||
	const lastFetchedAt = miLocalStorage.getItem('lastEmojisFetchedAt');
 | 
			
		||||
	if (lastFetchedAt && (now - parseInt(lastFetchedAt)) < 1000 * 60 * 60) return;
 | 
			
		||||
 | 
			
		||||
	const res = await apiGet('emojis', {});
 | 
			
		||||
	let res;
 | 
			
		||||
	if (force) {
 | 
			
		||||
		res = await api('emojis', {});
 | 
			
		||||
	} else {
 | 
			
		||||
		const lastFetchedAt = miLocalStorage.getItem('lastEmojisFetchedAt');
 | 
			
		||||
		if (lastFetchedAt && (now - parseInt(lastFetchedAt)) < 1000 * 60 * 60) return;
 | 
			
		||||
		res = await apiGet('emojis', {});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	customEmojis.value = res.emojis;
 | 
			
		||||
	miLocalStorage.setItem('emojis', JSON.stringify(res.emojis));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -34,6 +34,7 @@ import { useRouter } from '@/router';
 | 
			
		|||
import { definePageMetadata, provideMetadataReceiver, setPageMetadata } from '@/scripts/page-metadata';
 | 
			
		||||
import * as os from '@/os';
 | 
			
		||||
import { miLocalStorage } from '@/local-storage';
 | 
			
		||||
import { fetchCustomEmojis } from '@/custom-emojis';
 | 
			
		||||
 | 
			
		||||
const indexInfo = {
 | 
			
		||||
	title: i18n.ts.settings,
 | 
			
		||||
| 
						 | 
				
			
			@ -180,11 +181,13 @@ const menuDef = computed(() => [{
 | 
			
		|||
		type: 'button',
 | 
			
		||||
		icon: 'ti ti-trash',
 | 
			
		||||
		text: i18n.ts.clearCache,
 | 
			
		||||
		action: () => {
 | 
			
		||||
		action: async () => {
 | 
			
		||||
			os.waiting();
 | 
			
		||||
			miLocalStorage.removeItem('locale');
 | 
			
		||||
			miLocalStorage.removeItem('theme');
 | 
			
		||||
			miLocalStorage.removeItem('emojis');
 | 
			
		||||
			miLocalStorage.removeItem('lastEmojisFetchedAt');
 | 
			
		||||
			await fetchCustomEmojis();
 | 
			
		||||
			unisonReload();
 | 
			
		||||
		},
 | 
			
		||||
	}, {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue