mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-17 16:06:38 +08:00
Add Telegram bot token and name
This commit is contained in:
parent
feb40db2bc
commit
140e843d93
@ -82,6 +82,9 @@ var WeChatAccountQRCodeImageURL = ""
|
|||||||
var TurnstileSiteKey = ""
|
var TurnstileSiteKey = ""
|
||||||
var TurnstileSecretKey = ""
|
var TurnstileSecretKey = ""
|
||||||
|
|
||||||
|
var TelegramBotToken = ""
|
||||||
|
var TelegramBotName = ""
|
||||||
|
|
||||||
var QuotaForNewUser = 0
|
var QuotaForNewUser = 0
|
||||||
var QuotaForInviter = 0
|
var QuotaForInviter = 0
|
||||||
var QuotaForInvitee = 0
|
var QuotaForInvitee = 0
|
||||||
|
@ -12,7 +12,7 @@ services:
|
|||||||
- ./data:/data
|
- ./data:/data
|
||||||
- ./logs:/app/logs
|
- ./logs:/app/logs
|
||||||
environment:
|
environment:
|
||||||
- SQL_DSN=root:123456@tcp(host.docker.internal:3306)/new-api # 修改此行,或注释掉以使用 SQLite 作为数据库
|
# - SQL_DSN=root:123456@tcp(host.docker.internal:3306)/new-api # 修改此行,或注释掉以使用 SQLite 作为数据库
|
||||||
- REDIS_CONN_STRING=redis://redis
|
- REDIS_CONN_STRING=redis://redis
|
||||||
- SESSION_SECRET=random_string # 修改为随机字符串
|
- SESSION_SECRET=random_string # 修改为随机字符串
|
||||||
- TZ=Asia/Shanghai
|
- TZ=Asia/Shanghai
|
||||||
|
17
makefile
Normal file
17
makefile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FRONTEND_DIR = ./web
|
||||||
|
BACKEND_DIR = .
|
||||||
|
|
||||||
|
.PHONY: all start-frontend start-backend
|
||||||
|
|
||||||
|
all: start-frontend start-backend
|
||||||
|
|
||||||
|
# 启动前端开发服务器
|
||||||
|
start-frontend:
|
||||||
|
@echo "Starting frontend dev server..."
|
||||||
|
@cd $(FRONTEND_DIR) && npm start &
|
||||||
|
|
||||||
|
# 启动后端开发服务器
|
||||||
|
start-backend:
|
||||||
|
@echo "Starting backend dev server..."
|
||||||
|
@cd $(BACKEND_DIR) && go run main.go &
|
||||||
|
|
@ -215,6 +215,10 @@ func updateOptionMap(key string, value string) (err error) {
|
|||||||
common.WeChatServerToken = value
|
common.WeChatServerToken = value
|
||||||
case "WeChatAccountQRCodeImageURL":
|
case "WeChatAccountQRCodeImageURL":
|
||||||
common.WeChatAccountQRCodeImageURL = value
|
common.WeChatAccountQRCodeImageURL = value
|
||||||
|
case "TelegramBotToken":
|
||||||
|
common.TelegramBotToken = value
|
||||||
|
case "TelegramBotName":
|
||||||
|
common.TelegramBotName = value
|
||||||
case "TurnstileSiteKey":
|
case "TurnstileSiteKey":
|
||||||
common.TurnstileSiteKey = value
|
common.TurnstileSiteKey = value
|
||||||
case "TurnstileSecretKey":
|
case "TurnstileSecretKey":
|
||||||
|
@ -32,7 +32,11 @@ const SystemSetting = () => {
|
|||||||
TurnstileSecretKey: '',
|
TurnstileSecretKey: '',
|
||||||
RegisterEnabled: '',
|
RegisterEnabled: '',
|
||||||
EmailDomainRestrictionEnabled: '',
|
EmailDomainRestrictionEnabled: '',
|
||||||
EmailDomainWhitelist: ''
|
EmailDomainWhitelist: '',
|
||||||
|
// telegram login
|
||||||
|
TelegramLoginEnabled: '',
|
||||||
|
TelegramBotToken: '',
|
||||||
|
TelegramBotName: '',
|
||||||
});
|
});
|
||||||
const [originInputs, setOriginInputs] = useState({});
|
const [originInputs, setOriginInputs] = useState({});
|
||||||
let [loading, setLoading] = useState(false);
|
let [loading, setLoading] = useState(false);
|
||||||
@ -77,6 +81,7 @@ const SystemSetting = () => {
|
|||||||
case 'EmailVerificationEnabled':
|
case 'EmailVerificationEnabled':
|
||||||
case 'GitHubOAuthEnabled':
|
case 'GitHubOAuthEnabled':
|
||||||
case 'WeChatAuthEnabled':
|
case 'WeChatAuthEnabled':
|
||||||
|
case 'TelegramLoginEnabled':
|
||||||
case 'TurnstileCheckEnabled':
|
case 'TurnstileCheckEnabled':
|
||||||
case 'EmailDomainRestrictionEnabled':
|
case 'EmailDomainRestrictionEnabled':
|
||||||
case 'RegisterEnabled':
|
case 'RegisterEnabled':
|
||||||
@ -234,6 +239,12 @@ const SystemSetting = () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const submitTelegramSettings = async () => {
|
||||||
|
await updateOption('TelegramLoginEnabled', inputs.TelegramLoginEnabled);
|
||||||
|
await updateOption('TelegramBotToken', inputs.TelegramBotToken);
|
||||||
|
await updateOption('TelegramBotName', inputs.TelegramBotName);
|
||||||
|
};
|
||||||
|
|
||||||
const submitTurnstile = async () => {
|
const submitTurnstile = async () => {
|
||||||
if (originInputs['TurnstileSiteKey'] !== inputs.TurnstileSiteKey) {
|
if (originInputs['TurnstileSiteKey'] !== inputs.TurnstileSiteKey) {
|
||||||
await updateOption('TurnstileSiteKey', inputs.TurnstileSiteKey);
|
await updateOption('TurnstileSiteKey', inputs.TurnstileSiteKey);
|
||||||
@ -402,6 +413,32 @@ const SystemSetting = () => {
|
|||||||
/>
|
/>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Divider />
|
<Divider />
|
||||||
|
<Header as='h3'>配置 Telegram 登录</Header>
|
||||||
|
<Form.Group inline>
|
||||||
|
<Form.Checkbox
|
||||||
|
checked={inputs.TelegramLoginEnabled === 'true'}
|
||||||
|
label='允许通过 Telegram 进行登录'
|
||||||
|
name='TelegramLoginEnabled'
|
||||||
|
onChange={handleInputChange}
|
||||||
|
/>
|
||||||
|
<Form.Input
|
||||||
|
label='Telegram Bot Token'
|
||||||
|
name='TelegramBotToken'
|
||||||
|
value={inputs.TelegramBotToken}
|
||||||
|
placeholder='输入你的 Telegram Bot Token'
|
||||||
|
onChange={handleInputChange}
|
||||||
|
/>
|
||||||
|
<Form.Input
|
||||||
|
label='Telegram Bot 名称'
|
||||||
|
name='TelegramBotName'
|
||||||
|
value={inputs.TelegramBotName}
|
||||||
|
placeholder='输入你的 Telegram Bot 名称'
|
||||||
|
onChange={handleInputChange}
|
||||||
|
/>
|
||||||
|
</Form.Group>
|
||||||
|
<Form.Button onClick={submitTelegramSettings}>
|
||||||
|
保存 Telegram 登录设置
|
||||||
|
</Form.Button>
|
||||||
<Header as='h3'>
|
<Header as='h3'>
|
||||||
配置邮箱域名白名单
|
配置邮箱域名白名单
|
||||||
<Header.Subheader>用以防止恶意用户利用临时邮箱批量注册</Header.Subheader>
|
<Header.Subheader>用以防止恶意用户利用临时邮箱批量注册</Header.Subheader>
|
||||||
|
Loading…
Reference in New Issue
Block a user