代码拉取完成,页面将自动刷新
同步操作将从 xqm32/临高启明论坛同人爬取 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
from get import *
from settings import *
IS_QUOTE = False
def set_quote(state=True):
global IS_QUOTE
IS_QUOTE = state
def is_quote():
return IS_QUOTE
def text(t): # 第一个子标签前的内容,参见 https://lxml.de/api/lxml.etree._Element-class.html 中的 text
return t.text.strip() if t.text else str()
def tail(t): # 标签结尾的内容,参见 https://lxml.de/api/lxml.etree._Element-class.html 中的 tail
return t.tail.strip() if t.tail else str()
def quote(t):
set_quote(True)
return tail(t)
i_class = { # i 标签的 class 判断函数
'pstatus': lambda t: tail(t) # 发表或者编辑的时间
}
div_class = { # div 标签的 class 的判断函数
'quote': lambda t:
text(t)+inter(t)+tail(t)
if get_setting('回复')
else quote(t), # 引用
'tip tip_4 aimg_tip': lambda t: tail(t),
'modact': lambda t: tail(t), # 状态
'cm': lambda t: tail(t), # 评论
'rate': lambda t: tail(t), # 评分
'locked': lambda t: tail(t) # 被删除的帖子
}
tag_name = { # 根据标签名字判断函数
'div': lambda t:
div_class[t.get('class')](t)
if t.get('class') in div_class
else '\n'+text(t)+inter(t)+tail(t),
'p': lambda t:
'\n'+text(t)+'\n'+inter(t)+tail(t),
'br': lambda t:
'\n'+text(t)+inter(t)+tail(t),
'i': lambda t:
i_class[t.get('class')](t)
if t.get('class') in i_class
else text(t)+inter(t)+tail(t),
'img': lambda t:
'\n'+t.get('file')+'\n'
if get_setting('图片') and t.get('file')
else tail(t),
'a': lambda t:
'['+t.get('href')+' '+text(t)+']'+tail(t)
if get_setting('链接') and t.get('href')
else tail(t),
'blockquote': lambda t:
'\n【引用开始】\n'+tail(t.find("br"))+'\n【引用结束】\n'
}
def inter(t): # 标签内部的内容
content = str()
for i in t.iterchildren():
content += tag(i)
return content
def tag(t): # 仅作判断使用,与 inter() 相互调用
return tag_name[t.tag](t) if t.tag in tag_name else text(t)+inter(t)+tail(t)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。