From 80cfc9ddf778f12165c65e7459e83a8b5639a19a Mon Sep 17 00:00:00 2001 From: lifegpc Date: Sun, 17 Jan 2021 20:47:38 +0800 Subject: [PATCH] fix escape twice's bug --- .gitignore | 2 ++ rssbot.py | 10 +++++----- rsslist.py | 5 ++--- rssparser.py | 4 ++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 20fbb6c..89a7fdc 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,5 @@ __pycache__/ Temp/ *.dll *.so +*.so.* +*.xml diff --git a/rssbot.py b/rssbot.py index 1546a1c..ea88dd9 100644 --- a/rssbot.py +++ b/rssbot.py @@ -41,9 +41,9 @@ from rssbotlib import loadRSSBotLib, AddVideoInfoResult def getMediaInfo(m: dict, config: RSSConfig = RSSConfig()) -> str: s = '' if 'link' in m: - s = f"""{s}标题:{escape(m['title'])}""" + s = f"""{s}标题:{m['title']}""" else: - s = f"{s}标题:{escape(m['title'])}" + s = f"{s}标题:{m['title']}" if 'description' in m: s = f"{s}\n描述:{escape(m['description'])}" if 'ttl' in m and m['ttl'] is not None: @@ -168,13 +168,13 @@ class main: di['chat_id'] = chatId text = textc() if config.show_RSS_title: - text.addtotext(f"{escape(meta['title'])}") + text.addtotext(f"{meta['title']}") if config.show_Content_title and 'title' in content and content['title'] is not None and content['title'] != '': if 'link' in content and content['link'] is not None and content['link'] != '': text.addtotext( - f"""{escape(content['title'])}""") + f"""{content['title']}""") else: - text.addtotext(f"{escape(content['title'])}") + text.addtotext(f"{content['title']}") elif 'link' in content and content['link'] is not None and content['link'] != '': text.addtotext( f"""{escape(content['link'])}""") diff --git a/rsslist.py b/rsslist.py index 24e3e64..2366d19 100644 --- a/rsslist.py +++ b/rsslist.py @@ -18,7 +18,6 @@ from typing import List from enum import Enum, unique from math import ceil, floor from textc import textc, timeToStr -from html import escape @unique @@ -45,7 +44,7 @@ class InlineKeyBoardForRSSList(Enum): def getTextContentForRSSInList(rssEntry: RSSEntry) -> str: text = textc() text.addtotext( - f"""{escape(rssEntry.title)}""") + f"""{rssEntry.title}""") temp = '更新间隔:未知' if rssEntry.interval is None else f'更新间隔:{rssEntry.interval}分' text.addtotext(temp) temp = '上次更新时间:未知' if rssEntry.lastupdatetime is None or rssEntry.lastupdatetime < 0 else f'上次更新时间:{timeToStr(rssEntry.lastupdatetime)}' @@ -63,7 +62,7 @@ def getTextContentForRSSInList(rssEntry: RSSEntry) -> str: def getTextContentForRSSUnsubscribeInList(rssEntry: RSSEntry) -> str: - return f"""你是否要取消订阅{escape(rssEntry.title)}?""" + return f"""你是否要取消订阅{rssEntry.title}?""" def getInlineKeyBoardForRSSList(chatId: int, RSSEntries: List[RSSEntry], page: int = 1, lastPage: bool = False, itemIndex: int = None) -> dict: diff --git a/rssparser.py b/rssparser.py index a7aa500..2ab2034 100644 --- a/rssparser.py +++ b/rssparser.py @@ -245,7 +245,7 @@ class RSSParser: else: for k in i.childNodes: s = s + k.toxml() - m[i.nodeName] = unescape(s) + m[i.nodeName] = s elif typ == 'html': s = '' if i.nodeValue is not None: @@ -256,7 +256,7 @@ class RSSParser: p = HTMLSimpleParser() if 'link' in m and m['link'] is not None: p.baseUrl = m['link'] - p.feed(unescape(s)) + p.feed(s) if p.data == '' and i.firstChild.nodeValue.find('<') == -1: m[i.nodeName] = i.firstChild.nodeValue else: