Skip to content

Commit

Permalink
feat: apply www rule to root domain and root domain rule to www
Browse files Browse the repository at this point in the history
  • Loading branch information
DIYgod committed Aug 19, 2019
1 parent 6325a95 commit c24f84e
Showing 1 changed file with 64 additions and 57 deletions.
121 changes: 64 additions & 57 deletions src/js/background/utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -124,76 +124,83 @@ function getPageRSSHub(url, tabId, done) {
if (parsedDomain) {
const subdomain = parsedDomain.subdomain;
const domain = parsedDomain.domain + '.' + parsedDomain.tld;
if (rules[domain] && rules[domain][subdomain || '.']) {
const rule = rules[domain][subdomain || '.'];
const recognized = [];
rule.forEach((ru, index) => {
if (ru.source !== undefined) {
if (ru.source instanceof Array) {
ru.source.forEach((source) => {
if (rules[domain]) {
let rule = rules[domain][subdomain || '.'];
if (!rule) {
if (subdomain === 'www') {
rule = rules[domain]['.'];
} else if (!subdomain) {
rule = rules[domain].www;
}
}
if (rule) {
const recognized = [];
rule.forEach((ru, index) => {
if (ru.source !== undefined) {
if (ru.source instanceof Array) {
ru.source.forEach((source) => {
const router = new RouteRecognizer();
router.add([
{
path: source,
handler: index,
},
]);
const result = router.recognize(new URL(url).pathname.replace(/\/$/, ''));
if (result && result[0]) {
recognized.push(result[0]);
}
});
} else if (typeof ru.source === 'string') {
const router = new RouteRecognizer();
router.add([
{
path: source,
path: ru.source,
handler: index,
},
]);
const result = router.recognize(new URL(url).pathname.replace(/\/$/, ''));
if (result && result[0]) {
recognized.push(result[0]);
}
});
} else if (typeof ru.source === 'string') {
const router = new RouteRecognizer();
router.add([
{
path: ru.source,
handler: index,
},
]);
const result = router.recognize(new URL(url).pathname.replace(/\/$/, ''));
if (result && result[0]) {
recognized.push(result[0]);
}
}
}
});
const result = [];
Promise.all(
recognized.map(
(recog) =>
new Promise((resolve) => {
ruleHandler(
rule[recog.handler],
recog.params,
tabId,
url,
(parsed) => {
if (parsed) {
result.push({
title: formatBlank(rules[domain]._name ? '褰撳墠' : '', rule[recog.handler].title),
url: '{rsshubDomain}' + parsed,
});
} else {
result.push({
title: formatBlank(rules[domain]._name ? '褰撳墠' : '', rule[recog.handler].title),
url: rule[recog.handler].docs,
isDocs: true,
});
});
const result = [];
Promise.all(
recognized.map(
(recog) =>
new Promise((resolve) => {
ruleHandler(
rule[recog.handler],
recog.params,
tabId,
url,
(parsed) => {
if (parsed) {
result.push({
title: formatBlank(rules[domain]._name ? '褰撳墠' : '', rule[recog.handler].title),
url: '{rsshubDomain}' + parsed,
});
} else {
result.push({
title: formatBlank(rules[domain]._name ? '褰撳墠' : '', rule[recog.handler].title),
url: rule[recog.handler].docs,
isDocs: true,
});
}
resolve();
},
() => {
resolve();
}
resolve();
},
() => {
resolve();
}
);
})
)
).then(() => {
done(result);
});
} else {
done([]);
);
})
)
).then(() => {
done(result);
});
}
}
} else {
done([]);
Expand Down

0 comments on commit c24f84e

Please sign in to comment.