mirror of https://gitlab.com/litecord/litecord.git
guilds, channels: fix search
This commit is contained in:
parent
df382a7a5f
commit
eec5d2eb92
|
|
@ -502,11 +502,11 @@ async def _search_channel(channel_id):
|
||||||
|
|
||||||
# main message ids
|
# main message ids
|
||||||
rows = await app.db.fetch(f"""
|
rows = await app.db.fetch(f"""
|
||||||
SELECT message_id,
|
SELECT messages.id,
|
||||||
COUNT(*) OVER() as total_results
|
COUNT(*) OVER() as total_results
|
||||||
FROM messages
|
FROM messages
|
||||||
WHERE channel_id = $1 AND content LIKE '%'||$3||'%'
|
WHERE channel_id = $1 AND content LIKE '%'||$3||'%'
|
||||||
ORDER BY
|
ORDER BY messages.id DESC
|
||||||
LIMIT 50
|
LIMIT 50
|
||||||
OFFSET $2
|
OFFSET $2
|
||||||
""", channel_id, j['offset'], j['content'])
|
""", channel_id, j['offset'], j['content'])
|
||||||
|
|
@ -521,7 +521,9 @@ async def _search_channel(channel_id):
|
||||||
res = []
|
res = []
|
||||||
|
|
||||||
for message_id in main_messages:
|
for message_id in main_messages:
|
||||||
res.append([await app.storage.get_message(message_id)])
|
msg = await app.storage.get_message(message_id)
|
||||||
|
msg['hit'] = True
|
||||||
|
res.append([msg])
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'total_results': results,
|
'total_results': results,
|
||||||
|
|
|
||||||
|
|
@ -286,23 +286,23 @@ async def search_messages(guild_id):
|
||||||
user_id = await token_check()
|
user_id = await token_check()
|
||||||
await guild_check(user_id, guild_id)
|
await guild_check(user_id, guild_id)
|
||||||
|
|
||||||
j = validate(request.args, SEARCH_CHANNEL)
|
j = validate(dict(request.args), SEARCH_CHANNEL)
|
||||||
|
|
||||||
# main message ids
|
# main message ids
|
||||||
# TODO: filter only channels where user can
|
# TODO: filter only channels where user can
|
||||||
# read messages to prevent leaking
|
# read messages to prevent leaking
|
||||||
rows = await app.db.fetch(f"""
|
rows = await app.db.fetch(f"""
|
||||||
SELECT message_id,
|
SELECT messages.id,
|
||||||
COUNT(*) OVER() as total_results
|
COUNT(*) OVER() as total_results
|
||||||
FROM messages
|
FROM messages
|
||||||
WHERE guild_id = $1
|
WHERE guild_id = $1
|
||||||
ORDER BY
|
ORDER BY messages.id DESC
|
||||||
LIMIT 50
|
LIMIT 50
|
||||||
OFFSET $2
|
OFFSET $2
|
||||||
""", guild_id, j['offset'])
|
""", guild_id, j['offset'])
|
||||||
|
|
||||||
results = 0 if not rows else rows[0]['total_results']
|
results = 0 if not rows else rows[0]['total_results']
|
||||||
main_messages = [r['message_id'] for r in rows]
|
main_messages = [r['id'] for r in rows]
|
||||||
|
|
||||||
# fetch contexts for each message
|
# fetch contexts for each message
|
||||||
# (2 messages before, 2 messages after).
|
# (2 messages before, 2 messages after).
|
||||||
|
|
@ -311,7 +311,9 @@ async def search_messages(guild_id):
|
||||||
res = []
|
res = []
|
||||||
|
|
||||||
for message_id in main_messages:
|
for message_id in main_messages:
|
||||||
res.append([await app.storage.get_message(message_id)])
|
msg = await app.storage.get_message(message_id)
|
||||||
|
msg['hit'] = True
|
||||||
|
res.append([msg])
|
||||||
|
|
||||||
return jsonify({
|
return jsonify({
|
||||||
'total_results': results,
|
'total_results': results,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue