mirror of
https://github.com/rystaf/mlmym.git
synced 2024-11-25 14:49:07 +00:00
ignore old subdomain when rewriting lemmy links
This commit is contained in:
parent
d5a96181d2
commit
556cc785f5
18
routes.go
18
routes.go
|
@ -165,7 +165,7 @@ var funcMap = template.FuncMap{
|
||||||
func LemmyLinkRewrite(input string, host string, lemmy_domain string) (body string) {
|
func LemmyLinkRewrite(input string, host string, lemmy_domain string) (body string) {
|
||||||
body = input
|
body = input
|
||||||
// community bangs
|
// community bangs
|
||||||
body = RegReplace(body, `!([a-zA-Z0-9]+)@([a-zA-Z0-9\.\-]+)([ \n\r]+|<\/p>)`, `<a href="/c/$1@$2">!$1@$2</a> `)
|
body = RegReplace(body, `!([a-zA-Z0-9_]+)@([a-zA-Z0-9\.\-]+)([ \n\r]+|<\/p>)`, `<a href="/c/$1@$2">!$1@$2</a> `)
|
||||||
// localize community and user links
|
// localize community and user links
|
||||||
body = RegReplace(body, `href="https:\/\/([a-zA-Z0-9\.\-]+)\/((c|u|comment|post)\/.*?)"`, `href="/$2@$1"`)
|
body = RegReplace(body, `href="https:\/\/([a-zA-Z0-9\.\-]+)\/((c|u|comment|post)\/.*?)"`, `href="/$2@$1"`)
|
||||||
// remove extra instance tag
|
// remove extra instance tag
|
||||||
|
@ -180,9 +180,21 @@ func LemmyLinkRewrite(input string, host string, lemmy_domain string) (body stri
|
||||||
body = RegReplace(body, `href="https:\/\/`+lemmy_domain+`\/(c\/[a-zA-Z0-9]+"|(c|u|post|comment)\/(.*?)")`, `href="/$1`)
|
body = RegReplace(body, `href="https:\/\/`+lemmy_domain+`\/(c\/[a-zA-Z0-9]+"|(c|u|post|comment)\/(.*?)")`, `href="/$1`)
|
||||||
body = RegReplace(body, `href="(.*)@`+lemmy_domain+`"`, `href="$1"`)
|
body = RegReplace(body, `href="(.*)@`+lemmy_domain+`"`, `href="$1"`)
|
||||||
}
|
}
|
||||||
// remove redundant instance tag
|
|
||||||
re := regexp.MustCompile(`href="\/([a-zA-Z0-9\.\-]+)\/(c|u|post|comment)\/(.*?)@(.*?)"`)
|
re := regexp.MustCompile(`href="\/?([a-zA-Z0-9\.\-]*)\/(c|u|post|comment)\/(.*?)@(.*?)"`)
|
||||||
|
// assume "old." subdomain is mlmym and remove
|
||||||
matches := re.FindAllStringSubmatch(body, -1)
|
matches := re.FindAllStringSubmatch(body, -1)
|
||||||
|
for _, match := range matches {
|
||||||
|
if match[4][0:4] == "old." {
|
||||||
|
s := 1
|
||||||
|
if match[1] == "" {
|
||||||
|
s += 1
|
||||||
|
}
|
||||||
|
body = strings.Replace(body, match[0], `href="/`+strings.Join(match[s:4], "/")+"@"+match[4][4:]+`"`, -1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// remove redundant instance tag
|
||||||
|
matches = re.FindAllStringSubmatch(body, -1)
|
||||||
for _, match := range matches {
|
for _, match := range matches {
|
||||||
if match[1] == match[4] {
|
if match[1] == match[4] {
|
||||||
body = strings.Replace(body, match[0], `href="/`+strings.Join(match[1:4], "/")+`"`, -1)
|
body = strings.Replace(body, match[0], `href="/`+strings.Join(match[1:4], "/")+`"`, -1)
|
||||||
|
|
Loading…
Reference in a new issue