[+] Blacklist

pull/140/head
Azalea 2025-04-07 23:57:03 -04:00
parent 646136e6ea
commit 6b99ab9e43
3 changed files with 22 additions and 4 deletions

View File

@ -270,6 +270,7 @@ export const EN_REF_AQUATRANS = {
'trans.btn.test': 'Test Connection',
'trans.btn.export': 'Export Data',
'trans.btn.import': 'Import Data',
'trans.blacklist': "Your server's rules doesn't allow using this tool. You might get banned if you try (idk, ask them if you want to know why)",
}
export const EN_REF = { ...EN_REF_USER, ...EN_REF_Welcome, ...EN_REF_GENERAL,

View File

@ -277,6 +277,7 @@ export const zhAquaTrans: typeof EN_REF_AQUATRANS = {
'trans.btn.test': '测试连接',
'trans.btn.export': '导出数据',
'trans.btn.import': '导入数据',
'trans.blacklist': "这个服务器的服主把这个导出工具 ban 了,所以不能从这里导出",
}

View File

@ -4,6 +4,9 @@
import { TRANSFER } from "../../libs/sdk";
import { download, selectJsonFile } from "../../libs/ui";
import InputTextShort from "./InputTextShort.svelte";
import { createEventDispatcher } from 'svelte';
const dispatch = createEventDispatcher()
export let src: AllNetSrc
export let gameInfo: AllNetGame
@ -12,8 +15,10 @@
export let tested: boolean = false
let [loading, error] = [false, ""]
const blacklist = ['amime.missless.net']
function testConnection() {
if (loading) return
if (loading || isBlacklist) return
// Preliminiary checks
if (!src.dns || !src.keychip || !src.card || !gameInfo.game || !gameInfo.version) {
@ -78,6 +83,8 @@
messages = [t('trans.success.import')]
}).catch(err => error = err.message).finally(() => loading = false)
}
$: isBlacklist = !!blacklist.filter(x => src.dns.includes(x))
</script>
<StatusOverlays {loading} />
@ -85,6 +92,10 @@
<div class="server source" class:src={isSrc} class:hasError={error} class:tested={tested}>
<h3>{t(`trans.${isSrc ? "source" : "target"}.title`)}</h3>
{#if !isSrc && isBlacklist}
<blockquote class="error-msg">{t('trans.blacklist')}</blockquote>
{/if}
{#if error}
<blockquote class="error-msg">{error}</blockquote>
{/if}
@ -92,9 +103,11 @@
<!-- First input line -->
<div class="inputs">
<InputTextShort desc={t('trans.field.addr')} placeholder="e.g. http://aquadx.hydev.org"
bind:value={src.dns} on:change validate={v => /^https?:\/\/[a-z0-9.-]+(:\d+)?$/i.test(v)} disabled={tested} />
bind:value={src.dns} on:change disabled={tested}
validate={v => /^https?:\/\/[a-z0-9.-]+(:\d+)?$/i.test(v)} />
<InputTextShort desc={t('trans.field.keychip')} placeholder="e.g. A0299792458"
bind:value={src.keychip} on:change validate={v => /^([A-Z0-9]{11}|[A-Z0-9]{4}-[A-Z0-9]{11})$/.test(v)} disabled={tested} />
bind:value={src.keychip} on:change disabled={tested}
validate={v => /^([A-Z0-9]{11}|[A-Z0-9]{4}-[A-Z0-9]{11})$/.test(v)} />
</div>
<!-- Second input line -->
@ -106,7 +119,10 @@
bind:value={gameInfo.version} on:change disabled={tested} />
</div>
<InputTextShort desc={t('trans.field.card')} placeholder="e.g. 27182818284590452353"
bind:value={src.card} on:change disabled={tested} />
bind:value={src.card} disabled={tested} on:change={value => {
src.card = src.card.replaceAll(' ', '')
dispatch('change', { value });
}} />
</div>
<!-- Streaming messages -->