from .tool.func import *
def recent_change_send_render(data):
def send_render_href_replace(match):
match = match.group(1)
data_unescape = html.unescape(match)
return '' + match + ''
def send_render_link(match):
link_main = match[2]
link_main = link_main.replace('"', '"')
return match[1] + '' + link_main + ''
if data == '<br>' or data == '' or re.search(r'^ +$', data):
data = '
'
else:
data = data.replace('javascript:', '')
data = re.sub(r'( |^)(https?:\/\/(?:[^ ]+))', send_render_link, data)
data = re.sub(r'<a(?:(?:(?!>).)*)>((?:(?!<\/a>).)+)<\/a>', send_render_href_replace, data)
return data
async def recent_change(name = '', tool = '', num = 1, set_type = 'normal'):
with get_db_connect() as conn:
curs = conn.cursor()
ip = ip_check()
all_admin = await acl_check(tool = 'all_admin_auth', ip = ip)
all_admin = 1 if all_admin == 0 else 0
owner = await acl_check(tool = 'owner_auth', ip = ip)
owner = 1 if owner == 0 else 0
option_list = [
['normal', get_lang(conn, 'normal')],
['edit', get_lang(conn, 'edit')],
['move', get_lang(conn, 'move')],
['delete', get_lang(conn, 'delete')],
['revert', get_lang(conn, 'revert')],
['r1', get_lang(conn, 'new_doc')],
['edit_request', get_lang(conn, 'edit_request')],
['file', get_lang(conn, 'file')],
['category', get_lang(conn, 'category')]
]
if tool == 'history':
option_list += [['setting', get_lang(conn, 'setting')]]
if flask.request.method == 'POST':
return redirect(conn, '/diff/' + flask.request.form.get('b', '1') + '/' + flask.request.form.get('a', '1') + '/' + url_pas(name))
else:
ban = ''
select = ''
sub = ''
admin = owner
div = '''
| ''' + get_lang(conn, 'version') + ''' | ''' + get_lang(conn, 'editor') + ''' | ''' + get_lang(conn, 'time') + ''' | ''' sub = '(' + get_lang(conn, 'history') + ')' set_type = '' if set_type == 'edit' else set_type if set_type != 'normal': curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where title = ? and type = ? order by id + 0 desc limit ?, 50'), [name, set_type, sql_num]) else: curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where title = ? order by id + 0 desc limit ?, 50'), [name, sql_num]) data_list = curs.fetchall() elif tool == 'record': div += '''''' + get_lang(conn, 'document_name') + ''' | ''' + get_lang(conn, 'editor') + ''' | ''' + get_lang(conn, 'time') + ''' | ''' sub = '(' + get_lang(conn, 'edit_record') + ')' set_type = '' if set_type == 'edit' else set_type if set_type != 'normal': curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where ip = ? and type = ? order by date desc limit ?, 50'), [name, set_type, sql_num]) else: curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where ip = ? order by date desc limit ?, 50'), [name, sql_num]) data_list = curs.fetchall() else: div += '''''' + get_lang(conn, 'document_name') + ''' | ''' + get_lang(conn, 'editor') + ''' | ''' + get_lang(conn, 'time') + ''' | ''' sub = '' set_type = '' if set_type == 'edit' else set_type data_list = [] if num == 1 or all_admin != 1: curs.execute(db_change('select title, id from rc where type = ? order by date desc limit 50'), [set_type]) for for_a in curs.fetchall(): curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where title = ? and id = ?'), for_a) data_list += curs.fetchall() else: if set_type != 'normal': curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history where type = ? order by date desc limit ?, 50'), [set_type, sql_num]) else: curs.execute(db_change('select id, title, date, ip, send, leng, hide, type from history order by date desc limit ?, 50'), [sql_num]) data_list = curs.fetchall() div += '
| ''' + title + m_tool + ' ' + leng + ''' | ''' + ip + ban + ''' | ''' + date + ''' | ||||||
| ''' + recent_change_send_render(html.escape(send)) + ''' | ||||||||