Merge pull request #96 from AlexanderHel/main

add random name as subdomain option
This commit is contained in:
zhangchen
2026-04-04 23:03:32 +08:00
committed by GitHub
6 changed files with 26 additions and 2 deletions

View File

@@ -57,6 +57,7 @@ CONFIG_KEYS = [
"cfworker_enabled_domains",
"cfworker_subdomain",
"cfworker_random_subdomain",
"cfworker_random_name_subdomain",
"cfworker_fingerprint",
"smstome_cookie",
"smstome_country_slugs",

View File

@@ -314,6 +314,7 @@ def create_mailbox(
enabled_domains=extra.get("cfworker_enabled_domains", ""),
subdomain=extra.get("cfworker_subdomain", ""),
random_subdomain=extra.get("cfworker_random_subdomain", False),
random_name_subdomain=extra.get("cfworker_random_name_subdomain", False),
fingerprint=extra.get("cfworker_fingerprint", ""),
custom_auth=extra.get("cfworker_custom_auth", ""),
proxy=proxy,
@@ -2280,6 +2281,7 @@ class CFWorkerMailbox(BaseMailbox):
enabled_domains: Any = None,
subdomain: str = "",
random_subdomain: Any = False,
random_name_subdomain: Any = False,
fingerprint: str = "",
custom_auth: str = "",
proxy: str = None,
@@ -2297,6 +2299,7 @@ class CFWorkerMailbox(BaseMailbox):
self.enabled_domains = raw_enabled_domains
self.subdomain = self._normalize_subdomain(subdomain)
self.random_subdomain = self._to_bool(random_subdomain)
self.random_name_subdomain = self._to_bool(random_name_subdomain)
self.fingerprint = fingerprint
self.custom_auth = custom_auth
self.proxy = build_requests_proxy_config(proxy)
@@ -2452,7 +2455,16 @@ class CFWorkerMailbox(BaseMailbox):
return ""
sub_parts: list[str] = []
if self.random_subdomain:
if self.random_name_subdomain:
try:
import names
import random
name_func = random.choice([names.get_first_name, names.get_last_name])
sub_parts.append(name_func().lower().replace(" ", ""))
except ImportError:
sub_parts.append(self._generate_subdomain_label())
elif self.random_subdomain:
sub_parts.append(self._generate_subdomain_label())
if self.subdomain:
sub_parts.append(self.subdomain)

View File

@@ -671,6 +671,7 @@ export default function Accounts() {
cfworker_domain: cfg.cfworker_domain,
cfworker_subdomain: cfg.cfworker_subdomain,
cfworker_random_subdomain: parseBooleanConfigValue(cfg.cfworker_random_subdomain),
cfworker_random_name_subdomain: parseBooleanConfigValue(cfg.cfworker_random_name_subdomain),
cfworker_fingerprint: cfg.cfworker_fingerprint,
smstome_cookie: cfg.smstome_cookie,
smstome_country_slugs: cfg.smstome_country_slugs,

View File

@@ -85,6 +85,7 @@ export default function RegisterTaskPage() {
cfworker_domain_override: '',
cfworker_subdomain: cfg.cfworker_subdomain || '',
cfworker_random_subdomain: parseBooleanConfigValue(cfg.cfworker_random_subdomain),
cfworker_random_name_subdomain: parseBooleanConfigValue(cfg.cfworker_random_name_subdomain),
cfworker_fingerprint: cfg.cfworker_fingerprint || '',
smstome_cookie: cfg.smstome_cookie || '',
smstome_country_slugs: cfg.smstome_country_slugs || '',
@@ -146,6 +147,7 @@ export default function RegisterTaskPage() {
cfworker_domain_override: values.cfworker_domain_override,
cfworker_subdomain: values.cfworker_subdomain,
cfworker_random_subdomain: values.cfworker_random_subdomain,
cfworker_random_name_subdomain: values.cfworker_random_name_subdomain,
cfworker_fingerprint: values.cfworker_fingerprint,
smstome_cookie: values.smstome_cookie,
smstome_country_slugs: values.smstome_country_slugs,
@@ -469,9 +471,12 @@ export default function RegisterTaskPage() {
>
<Input placeholder="mail / pool-a" />
</Form.Item>
<Form.Item name="cfworker_random_subdomain" label="随机子域名" valuePropName="checked">
<Form.Item name="cfworker_random_subdomain" valuePropName="checked">
<Checkbox></Checkbox>
</Form.Item>
<Form.Item name="cfworker_random_name_subdomain" valuePropName="checked">
<Checkbox>使</Checkbox>
</Form.Item>
<Form.Item name="cfworker_fingerprint" label="Fingerprint (可选)">
<Input placeholder="cfb82279f..." />
</Form.Item>

View File

@@ -196,6 +196,7 @@ const TAB_ITEMS = [
{ key: 'cfworker_custom_auth', label: '站点密码', secret: true },
{ key: 'cfworker_subdomain', label: '固定子域名', placeholder: 'mail / pool-a' },
{ key: 'cfworker_random_subdomain', label: '随机子域名', type: 'boolean' },
{ key: 'cfworker_random_name_subdomain', label: '随机姓名子域名', type: 'boolean' },
{ key: 'cfworker_fingerprint', label: 'Fingerprint', placeholder: '6703363b...' },
],
},
@@ -1350,6 +1351,7 @@ export default function Settings() {
data.cfworker_domains = parseStoredDomainList(data.cfworker_domains)
data.cfworker_enabled_domains = parseStoredDomainList(data.cfworker_enabled_domains)
data.cfworker_random_subdomain = parseBooleanConfigValue(data.cfworker_random_subdomain)
data.cfworker_random_name_subdomain = parseBooleanConfigValue(data.cfworker_random_name_subdomain)
form.setFieldsValue(data)
})
}, [form])
@@ -1373,6 +1375,7 @@ export default function Settings() {
values.cfworker_domain = ''
}
values.cfworker_random_subdomain = parseBooleanConfigValue(values.cfworker_random_subdomain)
values.cfworker_random_name_subdomain = parseBooleanConfigValue(values.cfworker_random_name_subdomain)
await apiFetch('/config', { method: 'PUT', body: JSON.stringify({ data: values }) })
form.setFieldsValue({
@@ -1380,6 +1383,7 @@ export default function Settings() {
cfworker_enabled_domains: enabledDomains,
cfworker_domain: domains.length > 0 ? '' : values.cfworker_domain,
cfworker_random_subdomain: values.cfworker_random_subdomain,
cfworker_random_name_subdomain: values.cfworker_random_name_subdomain,
})
message.success('保存成功')
setSaved(true)

View File

@@ -16,3 +16,4 @@ rich>=13.7.1
pyinstaller>=6.0.0
httpx>=0.27.0
selectolax>=0.3.21
names>=0.3.0