diff --git a/src/config.nim b/src/config.nim index fd1bff2..d6b9835 100644 --- a/src/config.nim +++ b/src/config.nim @@ -36,6 +36,12 @@ proc getConfig*(path: string): (Config, parseCfg.Config) = replaceYouTube: cfg.get("Preferences", "replaceYouTube", "youtube.owacon.moe"), replaceOdysee: cfg.get("Preferences", "replaceOdysee", "odysee.owacon.moe"), + replacePixivA: cfg.get("Preferences", "replacePixivA", "pixiv.owacon.moe/artworks/?id="), + replacePixivU: cfg.get("Preferences", "replacePixivU", "pixiv.owacon.moe/users/?id="), + replacePixivB: cfg.get("Preferences", "replacePixivB", "pixiv.owacon.moe/users/bookmarks/?id="), + replacePixivI: cfg.get("Preferences", "replacePixivI", "pixiv.owacon.moe/users/illusts/?id="), + replacePixivM: cfg.get("Preferences", "replacePixivM", "pixiv.owacon.moe/users/manga/?id="), + replacePixiv: cfg.get("Preferences", "replacePixiv", "pixiv.owacon.moe"), # Config hmacKey: cfg.get("Config", "hmacKey", "secretkey"), diff --git a/src/formatters.nim b/src/formatters.nim index 638c194..71f4714 100644 --- a/src/formatters.nim +++ b/src/formatters.nim @@ -15,6 +15,12 @@ let ytRegex = re(r"([A-z.]+\.)?youtu(be\.com|\.be)", {reStudy, reIgnoreCase}) igRegex = re"(www\.)?instagram\.com" odRegex = re"(www\.)?(odysee\.com|lbry\.tv|open\.lbry\.com)" + pxaRegex = re"(www\.)?(pixiv\.net)/artworks/" + pxuRegex = re"(www\.)?(pixiv\.net)/users/" + pxbRegex = re"(www\.)?(pixiv\.net)/users/bookmarks/" + pxiRegex = re"(www\.)?(pixiv\.net)/users/illusts/" + pxmRegex = re"(www\.)?(pixiv\.net)/users/manga/" + pxRegex = re"(www\.)?(pixiv\.net)" rdRegex = re"(? 0: result = result.replace(odRegex, prefs.replaceOdysee) + if prefs.replacePixivA.len > 0: + result = result.replace(pxaRegex, prefs.replacePixivA) + + if prefs.replacePixivU.len > 0: + result = result.replace(pxuRegex, prefs.replacePixivU) + + if prefs.replacePixivB.len > 0: + result = result.replace(pxbRegex, prefs.replacePixivB) + + if prefs.replacePixivI.len > 0: + result = result.replace(pxiRegex, prefs.replacePixivI) + + if prefs.replacePixivM.len > 0: + result = result.replace(pxmRegex, prefs.replacePixivM) + + if prefs.replacePixiv.len > 0: + result = result.replace(pxRegex, prefs.replacePixiv) + if prefs.replaceTwitter.len > 0 and ("twitter.com" in body or tco in body): result = result.replace(tco, https & prefs.replaceTwitter & "/t.co") result = result.replace(cards, prefs.replaceTwitter & "/cards") diff --git a/src/prefs_impl.nim b/src/prefs_impl.nim index e89c311..434bb4c 100644 --- a/src/prefs_impl.nim +++ b/src/prefs_impl.nim @@ -115,6 +115,30 @@ genPrefs: "オディシー → Librarian" placeholder: "odysee.owacon.moe" + replacePixivA(input, "pixiv.owacon.moe/artworks/?id="): + "Vixipイラスト" + placeholder: "pixiv.owacon.moe/artworks/?id=" + + replacePixivU(input, "pixiv.owacon.moe/users/?id="): + "Vixipユーザー" + placeholder: "pixiv.owacon.moe/users/?id=" + + replacePixivB(input, "pixiv.owacon.moe/users/bookmarks/?id="): + "Vixipユーザーのブックマーク" + placeholder: "pixiv.owacon.moe/users/bookmarks/?id=" + + replacePixivI(input, "pixiv.owacon.moe/users/illusts/?id="): + "Vixipユーザーのイラスト" + placeholder: "pixiv.owacon.moe/users/illusts/?id=" + + replacePixivM(input, "pixiv.owacon.moe/users/manga/?id="): + "Vixipユーザーの漫画" + placeholder: "pixiv.owacon.moe/users/manga/?id=" + + replacePixiv(input, "pixiv.owacon.moe"): + "Pixiv → vixip" + placeholder: "pixiv.owacon.moe" + iterator allPrefs*(): Pref = for k, v in prefList: for pref in v: diff --git a/src/types.nim b/src/types.nim index 0dadb50..65ba4a6 100644 --- a/src/types.nim +++ b/src/types.nim @@ -272,6 +272,12 @@ type replaceTwitter*: string replaceYouTube*: string replaceOdysee*: string + replacePixivA*: string + replacePixivU*: string + replacePixivB*: string + replacePixivI*: string + replacePixivM*: string + replacePixiv*: string replaceReddit*: string replaceInstagram*: string diff --git a/src/views/rss.nimf b/src/views/rss.nimf index 7bd1c74..9f530df 100644 --- a/src/views/rss.nimf +++ b/src/views/rss.nimf @@ -78,7 +78,7 @@ Twitter feed for: ${desc}. Generated by ${cfg.hostname} #end proc # #proc renderTimelineRss*(profile: Profile; cfg: Config; multi=false): string = -#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee) +#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee, replacePixivA: cfg.replacePixivA, replacePixivU: cfg.replacePixivU, replacePixivB: cfg.replacePixivB, replacePixivI: cfg.replacePixivI, replacePixivM: cfg.replacePixivM, replacePixiv: cfg.replacePixiv) #let urlPrefix = getUrlPrefix(cfg) #result = "" #let handle = (if multi: "" else: "@") & profile.user.username @@ -110,7 +110,7 @@ ${renderRssTweets(profile.tweets.content, cfg)} #end proc # #proc renderListRss*(tweets: seq[Tweet]; list: List; cfg: Config): string = -#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee) +#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee, replacePixivA: cfg.replacePixivA, replacePixivU: cfg.replacePixivU, replacePixivB: cfg.replacePixivB, replacePixivI: cfg.replacePixivI, replacePixivM: cfg.replacePixivM, replacePixiv: cfg.replacePixiv) #let link = &"{getUrlPrefix(cfg)}/i/lists/{list.id}" #result = "" @@ -128,7 +128,7 @@ ${renderRssTweets(tweets, cfg)} #end proc # #proc renderSearchRss*(tweets: seq[Tweet]; name, param: string; cfg: Config): string = -#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee) +#let prefs = Prefs(replaceTwitter: cfg.hostname, replaceYouTube: cfg.replaceYouTube, replaceOdysee: cfg.replaceOdysee, replacePixivA: cfg.replacePixivA, replacePixivU: cfg.replacePixivU, replacePixivB: cfg.replacePixivB, replacePixivI: cfg.replacePixivI, replacePixivM: cfg.replacePixivM, replacePixiv: cfg.replacePixiv) #let link = &"{getUrlPrefix(cfg)}/search" #let escName = xmltree.escape(name) #result = ""