Skip to content

Commit ec72257

Browse files
committed
WIP: Rework index-sites add multiple collections
1 parent 630d7c2 commit ec72257

File tree

3 files changed

+24
-43
lines changed

3 files changed

+24
-43
lines changed

_search/client/src/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import TypesenseInstantSearchAdapter from "typesense-instantsearch-adapter";
44

55
const typesenseInstantsearchAdapter = new TypesenseInstantSearchAdapter({
66
server: {
7-
apiKey: "KfjkBJl6Yilg8sK0vngKBv6g7csQgVPH" , // Be sure to use the search-only-api-key
7+
apiKey: "Sjkob6WIxE5vfpVK3Dp4FYPYFjRdWfBl" , // Be sure to use the search-only-api-key
88
nodes: [
99
{
1010
host: "144.92.48.217",

_search/server/index-sites.py

Lines changed: 21 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,13 @@
11
#!/bin/env python
22

33
import logging, os, sys
4+
from pathlib import Path
45
import jekyll, ijsite, tsutil
56
import tutorials
67

78

89
logger = logging.getLogger('indexer')
910

10-
11-
def load_site(siteroot):
12-
if jekyll.is_jekyll_site(siteroot):
13-
return jekyll.load_jekyll_site(siteroot)
14-
if ijsite.is_imagej_website(siteroot):
15-
return ijsite.load_site(siteroot)
16-
if tutorials.is_imagej_tutorials(siteroot):
17-
return tutorials.load_imagej_tutorials(siteroot)
18-
return None
19-
20-
21-
def load_sites(sites):
22-
logger.info('Loading documents...')
23-
documents = []
24-
for siteid, siteroot in sites.items():
25-
docs = load_site(siteroot)
26-
if docs:
27-
for doc in docs:
28-
doc['siteid'] = siteid
29-
documents.extend(docs)
30-
logger.info(f'{len(documents)} documents loaded.')
31-
return documents
32-
33-
3411
def index_documents(collection, documents):
3512
client = tsutil.connect()
3613
if client is None:
@@ -48,23 +25,27 @@ def main(args):
4825
logging.basicConfig(level=logging.INFO, format='[%(levelname)s] %(message)s')
4926
logging.root.setLevel(logging.INFO)
5027

51-
if len(args) == 1:
52-
collection = 'imagej-wiki'
53-
sites = {
54-
# 'imagej.net': os.path.join(os.path.dirname(args[0]), '..', '..'),
55-
# 'imagej.nih.gov/ij': '/var/www/mirror.imagej.net',
56-
'imagej-tutorials' : "/Users/jackrueth/code/imagej/tutorials/"
57-
}
58-
elif len(args) >= 3:
59-
collection = args[1]
60-
siteroot = args[2]
61-
else:
62-
print('Usage: index-sites.py [<collection-name> <site-id:site-root> [<another-site-id:another-site-root>...]]')
63-
sys.exit(1)
64-
65-
documents = load_sites(sites)
66-
index_documents(collection, documents)
6728

29+
p = Path(sys.argv[0]).parent
30+
root_imagej_wiki = p / '..' / '..'
31+
root_imagej_tutorials = p / 'sites' / 'tutorials' #TODO: shell script to clone git repo if missing
32+
root_imagej_website = '/var/www/mirror.imagej.net'
33+
sites = [
34+
('imagej-wiki', root_imagej_wiki, jekyll.is_jekyll_site, jekyll.load_jekyll_site),
35+
('imagej-website', root_imagej_website, ijsite.is_imagej_website, ijsite.load_site),
36+
('imagej-tutorials', root_imagej_tutorials, tutorials.is_imagej_tutorials, tutorials.load_imagej_tutorials)
37+
]
38+
39+
for collection, root, isvalid, loadsite in sites:
40+
if isvalid(root):
41+
documents = loadsite(root)
42+
index_documents(collection, documents)
43+
else:
44+
logger.warning(f"Skipping invalid site {root}")
45+
46+
47+
# wiki, tutorials, source code(source + javadoc to actions),
48+
# imagej-website, support channels(mailing lists + forums + chat rooms + issues), and maven artifacts
6849

6950
if __name__ == '__main__':
7051
main(sys.argv)

_search/server/tutorials.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def parse_java_source(path):
3232
doc['content'] = ''.join(lines)
3333
title = str(path)
3434
doc['title'] = title[title.find("tutorials/")+len("tutorials/"):]
35-
doc['icon'] = '/media/icons/imagej.png'
35+
doc['icon'] = 'Java_logo.png'
3636
doc['score'] = 90
3737
doc['description'] = ''
3838

@@ -49,7 +49,7 @@ def parse_notebook(path):
4949
doc['content'] = ''
5050
title = str(path)
5151
doc['title'] = title[title.find("tutorials/")+len("tutorials/"):]
52-
doc['icon'] = '/media/icons/imagej.png'
52+
doc['icon'] = 'Jupyter_logo.png'
5353
doc['score'] = 90
5454
doc['description'] = ''
5555
for cell in data['cells']:

0 commit comments

Comments
 (0)