feat(settings): add access key format configuration option (#1088)

This commit is contained in:
AiraNadih
2024-11-22 14:24:58 +08:00
committed by GitHub
parent 1477c8cc07
commit 0f451b05e4
5 changed files with 49 additions and 1 deletions
+3
View File
@@ -8,6 +8,9 @@
"accessKey": {
"message": "Access key"
},
"accessKeyType": {
"message": "Access key format"
},
"clickToSet": {
"message": "Click to set"
},
+3
View File
@@ -8,6 +8,9 @@
"accessKey": {
"message": "访问密钥"
},
"accessKeyType": {
"message": "访问密钥格式"
},
"clickToSet": {
"message": "点此设置"
},
+1
View File
@@ -9,6 +9,7 @@ export const defaultConfig = {
rsshubDomain: "https://rsshub.app",
rsshubAccessControl: {
accessKey: "",
accessKeyType: "code",
},
notice: {
badge: true,
+37
View File
@@ -171,6 +171,43 @@ function General() {
"configurationRequiredIfAccessKeysEnabled",
)}
/>
{config.rsshubAccessControl.accessKey && (
<div className="flex items-center space-x-2">
<Label>{chrome.i18n.getMessage("accessKeyType")}</Label>
<div className="flex items-center space-x-4">
<div className="flex items-center space-x-2">
<input
type="radio"
id="accessKeyTypeCode"
checked={config.rsshubAccessControl.accessKeyType === "code"}
onChange={() =>
setConfig({
rsshubAccessControl: {
accessKeyType: "code",
},
})
}
/>
<label htmlFor="accessKeyTypeCode">code={"{md5}"}</label>
</div>
<div className="flex items-center space-x-2">
<input
type="radio"
id="accessKeyTypeKey"
checked={config.rsshubAccessControl.accessKeyType === "key"}
onChange={() =>
setConfig({
rsshubAccessControl: {
accessKeyType: "key",
},
})
}
/>
<label htmlFor="accessKeyTypeKey">key={"{accessKey}"}</label>
</div>
</div>
</div>
)}
</div>
<div className="grid w-full items-center gap-2">
<Label htmlFor="remoteRulesUrl">
+5 -1
View File
@@ -38,7 +38,11 @@ function RSSItem({
).replace(/\/$/, "")
if (type === "currentPageRSSHub" && config.rsshubAccessControl.accessKey) {
url = `${url}?code=${new MD5().update(item.path.replace(/\/$/, "") + config.rsshubAccessControl.accessKey).digest("hex")}`
if (config.rsshubAccessControl.accessKeyType === "key") {
url = `${url}?key=${config.rsshubAccessControl.accessKey}`
} else {
url = `${url}?code=${new MD5().update(item.path.replace(/\/$/, "") + config.rsshubAccessControl.accessKey).digest("hex")}`
}
}
if (type === "currentPageRSSHub") {
item.title = item.title.replace(