mirror of
https://github.com/pppscn/SmsForwarder
synced 2025-08-02 17:07:41 +08:00
新增:主动控制·客户端 -> 一键换新机 支持导出导入Frpc配置
This commit is contained in:
parent
0579a5815b
commit
16fa5ffa62
@ -58,6 +58,7 @@ server_port = 8888
|
||||
#可选,建议启用
|
||||
token = 888888888
|
||||
|
||||
#[二选一即可]每台机器不可重复,通过 http://88.88.88.88:5000 访问
|
||||
[SmsForwarder-TCP]
|
||||
type = tcp
|
||||
local_ip = 127.0.0.1
|
||||
@ -65,6 +66,7 @@ local_port = 5000
|
||||
#只要修改下面这一行
|
||||
remote_port = 5000
|
||||
|
||||
#[二选一即可]每台机器不可重复,通过 http://smsf.demo.com 访问
|
||||
[SmsForwarder-HTTP]
|
||||
type = http
|
||||
local_ip = 127.0.0.1
|
||||
@ -177,6 +179,7 @@ server_port = 8888
|
||||
#可选,建议启用
|
||||
token = 888888888
|
||||
|
||||
#[二选一即可]每台机器不可重复,通过 http://88.88.88.88:5000 访问
|
||||
[SmsForwarder-TCP]
|
||||
type = tcp
|
||||
local_ip = 127.0.0.1
|
||||
@ -184,6 +187,7 @@ local_port = 5000
|
||||
#只要修改下面这一行
|
||||
remote_port = 5000
|
||||
|
||||
#[二选一即可]每台机器不可重复,通过 http://smsf.demo.com 访问
|
||||
[SmsForwarder-HTTP]
|
||||
type = http
|
||||
local_ip = 127.0.0.1
|
||||
|
@ -30,4 +30,10 @@ interface FrpcDao {
|
||||
@Query("SELECT * FROM Frpc ORDER BY time DESC")
|
||||
fun pagingSource(): PagingSource<Int, Frpc>
|
||||
|
||||
//TODO:允许主线程访问,后面再优化
|
||||
@Query("SELECT * FROM Frpc ORDER BY time ASC")
|
||||
fun getAll(): List<Frpc>
|
||||
|
||||
@Query("DELETE FROM Frpc")
|
||||
fun deleteAll()
|
||||
}
|
@ -43,10 +43,10 @@ interface RuleDao {
|
||||
fun pagingSource(type: String): PagingSource<Int, RuleAndSender>
|
||||
|
||||
@Transaction
|
||||
@Query("SELECT * FROM rule where type=:type and status=:status and (sim_slot='ALL' or sim_slot=:simSlot)")
|
||||
@Query("SELECT * FROM Rule where type=:type and status=:status and (sim_slot='ALL' or sim_slot=:simSlot)")
|
||||
suspend fun getRuleAndSender(type: String, status: Int, simSlot: String): List<RuleAndSender>
|
||||
|
||||
//TODO:允许主线程访问,后面再优化
|
||||
@Query("SELECT * FROM rule ORDER BY id ASC")
|
||||
@Query("SELECT * FROM Rule ORDER BY id ASC")
|
||||
fun getAll(): List<Rule>
|
||||
}
|
@ -31,14 +31,14 @@ interface SenderDao {
|
||||
@Query("SELECT * FROM Sender where status=:status ORDER BY id DESC")
|
||||
fun pagingSource(status: Int): PagingSource<Int, Sender>
|
||||
|
||||
@Query("SELECT * FROM sender ORDER BY id DESC")
|
||||
@Query("SELECT * FROM Sender ORDER BY id DESC")
|
||||
fun getAll(): Single<List<Sender>>
|
||||
|
||||
@Query("SELECT COUNT(id) FROM sender WHERE status = 1")
|
||||
@Query("SELECT COUNT(id) FROM Sender WHERE status = 1")
|
||||
fun getOnCount(): Flow<Long>
|
||||
|
||||
//TODO:允许主线程访问,后面再优化
|
||||
@Query("SELECT * FROM sender ORDER BY id ASC")
|
||||
@Query("SELECT * FROM Sender ORDER BY id ASC")
|
||||
fun getAll2(): List<Sender>
|
||||
|
||||
@Query("DELETE FROM Sender")
|
||||
|
@ -26,4 +26,11 @@ class FrpcRepository(
|
||||
@WorkerThread
|
||||
fun update(frpc: Frpc) = frpcDao.update(frpc)
|
||||
|
||||
//TODO:允许主线程访问,后面再优化
|
||||
val all: List<Frpc> = frpcDao.getAll()
|
||||
|
||||
fun deleteAll() {
|
||||
frpcDao.deleteAll()
|
||||
}
|
||||
|
||||
}
|
@ -26,6 +26,7 @@ class SenderRepository(private val senderDao: SenderDao) {
|
||||
|
||||
//TODO:允许主线程访问,后面再优化
|
||||
val all: List<Sender> = senderDao.getAll2()
|
||||
|
||||
fun deleteAll() {
|
||||
senderDao.deleteAll()
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.idormy.sms.forwarder.entity
|
||||
|
||||
import com.google.gson.annotations.SerializedName
|
||||
import com.idormy.sms.forwarder.database.entity.Frpc
|
||||
import com.idormy.sms.forwarder.database.entity.Rule
|
||||
import com.idormy.sms.forwarder.database.entity.Sender
|
||||
import java.io.Serializable
|
||||
@ -76,4 +77,6 @@ data class CloneInfo(
|
||||
var senderList: List<Sender>? = null,
|
||||
@SerializedName("rule_list")
|
||||
var ruleList: List<Rule>? = null,
|
||||
@SerializedName("frpc_list")
|
||||
var frpcList: List<Frpc>? = null,
|
||||
) : Serializable
|
@ -186,6 +186,7 @@ class HttpServerUtils private constructor() {
|
||||
cloneInfo.enablePureClientMode = SettingUtils.enablePureClientMode
|
||||
cloneInfo.senderList = Core.sender.all
|
||||
cloneInfo.ruleList = Core.rule.all
|
||||
cloneInfo.frpcList = Core.frpc.all
|
||||
|
||||
return cloneInfo
|
||||
}
|
||||
@ -228,12 +229,23 @@ class HttpServerUtils private constructor() {
|
||||
//删除发送通道、转发规则、转发日志
|
||||
Core.sender.deleteAll()
|
||||
//发送通道
|
||||
for (sender in cloneInfo.senderList!!) {
|
||||
Core.sender.insert(sender)
|
||||
if (!cloneInfo.senderList.isNullOrEmpty()) {
|
||||
for (sender in cloneInfo.senderList!!) {
|
||||
Core.sender.insert(sender)
|
||||
}
|
||||
}
|
||||
//转发规则
|
||||
for (rule in cloneInfo.ruleList!!) {
|
||||
Core.rule.insert(rule)
|
||||
if (!cloneInfo.ruleList.isNullOrEmpty()) {
|
||||
for (rule in cloneInfo.ruleList!!) {
|
||||
Core.rule.insert(rule)
|
||||
}
|
||||
}
|
||||
//Frpc配置
|
||||
Core.frpc.deleteAll()
|
||||
if (!cloneInfo.frpcList.isNullOrEmpty()) {
|
||||
for (frpc in cloneInfo.frpcList!!) {
|
||||
Core.frpc.insert(frpc)
|
||||
}
|
||||
}
|
||||
true
|
||||
} catch (e: Exception) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user