-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.py
65 lines (54 loc) · 2.77 KB
/
index.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import matplotlib
matplotlib.use('Agg')
from dash_html_components import Div, Img, Button, H2, H1, P, Hr, A, Span, Label, Hr, Footer, Ul, Li, Meta
import dash_core_components as dcc
from dash.dependencies import Output, Input, State
from apps import wikipediaWordCloud, lyricsWordCloud, textFieldWordCloud, textUploadWordCloud, wordCloud
from app import app
from templates.wordcloud import footer
server = app.server
navbar = Div([
Div(['Word Cloud World',
], className='navbar-brand'),
Button(Span(className='navbar-toggler-icon'),
className='navbar-toggler',
type="button", **{'data-toggle': "collapse", 'data-target': "#navbarNav",
'aria-controls': "navbarNav", 'aria-expanded': "false", 'aria-label': "Toggle navigation"}),
Div([
Ul([
Li(dcc.Link('Home', href="/", className='nav-link'), className='nav-item', style={'cursor': 'pointer'}),
Li(dcc.Link('Wiki Cloud', href="/wordcloud/wikipedia", className='nav-link'), className='nav-item', style={'cursor': 'pointer'}),
Li(dcc.Link('Lyrics Cloud', href="/wordcloud/lyrics", className='nav-link'), className='nav-item', style={'cursor': 'pointer'}),
Li(dcc.Link('Upload Cloud', href="/wordcloud/textupload", className='nav-link'), className='nav-item', style={'cursor': 'pointer'}),
Li(dcc.Link('Copy & Paste Cloud', href="/wordcloud/textfield", className='nav-link'), className='nav-item', style={'cursor': 'pointer'})
], className='navbar-nav')
], className='collapse navbar-collapse', id="navbarNav")
], className='navbar navbar-dark bg-dark navbar-expand-lg')
app.layout = Div([
Meta(name="viewport", content="width=device-width, initial-scale=1, shrink-to-fit=no"),
dcc.Location(id='url', pathname=None, refresh=False),
navbar,
Div(id='body')
])
@app.callback(Output('body', 'children'),
[Input('url', 'pathname')])
def display_page(pathname):
if pathname is None or pathname == '/':
return wordCloud.body
if pathname.rstrip('/') == '/wordcloud/wikipedia':
return wikipediaWordCloud.body
elif pathname.rstrip('/') == '/wordcloud/lyrics':
return lyricsWordCloud.body
elif pathname.rstrip('/') == '/wordcloud/textupload':
return textUploadWordCloud.body
elif pathname.rstrip('/') == '/wordcloud/textfield':
return textFieldWordCloud.body
else:
return '404'
for i in ['custom-wiki', 'text-field', 'text-upload']:
@app.callback(Output(i + '-save-wordcloud', 'href'),
[Input(i + '-wordcloud', 'children')])
def update_href(children):
return children[1]['props']['src']
if __name__ == "__main__":
app.run_server(host='0.0.0.0', debug=True)