realms-wiki/realms/modules/search/commands.py

41 lines
1.1 KiB
Python
Raw Normal View History

from __future__ import absolute_import
2014-11-13 01:06:56 +02:00
import click
from flask import current_app
2016-08-20 20:37:22 +03:00
from realms import search, cli_group
from realms.modules.wiki.models import Wiki
2014-11-13 01:06:56 +02:00
@cli_group(short_help="Search Module")
2014-11-13 01:06:56 +02:00
def cli():
pass
@cli.command()
def rebuild_index():
""" Rebuild search index
"""
if current_app.config.get('SEARCH_TYPE') == 'simple':
2014-11-13 01:06:56 +02:00
click.echo("Search type is simple, try using elasticsearch.")
return
# Wiki
search.delete_index('wiki')
wiki = Wiki(current_app.config['WIKI_PATH'])
for entry in wiki.get_index():
page = wiki.get_page(entry['name'])
if not page:
# Some non-markdown files may have issues
continue
# TODO add email?
# TODO I have concens about indexing the commit info from latest revision, see #148
info = next(page.history)
body = dict(name=page.name,
content=page.data,
message=info['message'],
username=info['author'],
updated_on=entry['mtime'],
created_on=entry['ctime'])
2016-07-12 07:27:39 +03:00
search.index_wiki(page.name, body)