toasted-nutbread
36605f74c3
Undo "Obscure the iframe's URL from the host page"
...
There are some additional issues which cause the frame to be reset to
about:blank on certain occasions which must be fixed before this can be
used.
2020-02-16 18:47:46 -05:00
toasted-nutbread
6df5220e02
Prevent multiple prepare calls
2020-02-16 12:23:40 -05:00
toasted-nutbread
b5d32c73e6
Simplify process to wait for iframe prepare completion
2020-02-16 12:23:20 -05:00
toasted-nutbread
42f1c2463c
Move generateId function
2020-02-16 12:00:56 -05:00
toasted-nutbread
912d59d3df
Obscure the iframe's URL from the host page
2020-02-15 22:39:09 -05:00
toasted-nutbread
10ec165f14
Check type of other for equals functions
...
Fixes #361
2020-02-15 20:52:21 -05:00
toasted-nutbread
faf15c08aa
Rename optionsUpdate event to optionsUpdated
...
Past tense better indicates that the options were changed, but no data
is being included as part of the event. It is also more consistent with
the other event names the yomichan object currently provides.
2020-02-14 22:34:44 -05:00
toasted-nutbread
89cb98e4d1
Add global apiForward
2020-02-14 21:50:17 -05:00
siikamiika
c09a3ded1d
Merge pull request #357 from siikamiika/simplify-display-prepare
...
Simplify display prepare
2020-02-14 11:00:36 +02:00
siikamiika
810a7e7d92
use sendMessage to notify about initialization
2020-02-14 02:33:54 +02:00
siikamiika
38a6433a46
remove isInjected checks from Popup
2020-02-13 15:04:10 +02:00
siikamiika
c0225f1f84
notify popup about initialization
2020-02-13 13:18:54 +02:00
siikamiika
df37acd17f
rename display initialize methods to prepare
2020-02-13 01:59:26 +02:00
toasted-nutbread
e2ac478cb7
Define more globals
2020-02-11 22:22:16 -05:00
toasted-nutbread
65dfb855fb
Fix undefined id
2020-02-11 22:21:55 -05:00
toasted-nutbread
1f3ff6fad0
Fix equals function on TextSourceRange when imposter elements are used
2020-01-26 10:31:17 -05:00
toasted-nutbread
04727a8cd7
Fix viewport issues when popupScaleRelativeToVisualViewport is disabled
2020-01-22 20:38:21 -05:00
toasted-nutbread
8e15c20311
Remove window.onscroll handler since it causes a warning
2020-01-22 20:38:21 -05:00
toasted-nutbread
74d9b0e857
Update full-width popup to stay on screen
2020-01-22 20:38:21 -05:00
toasted-nutbread
d59f2022b9
Allow viewport to be used for constraining popup position
2020-01-22 20:38:21 -05:00
toasted-nutbread
21dbb19565
Update popup position on scroll
2020-01-22 20:38:21 -05:00
toasted-nutbread
e73e4c032c
Implement scale relative to visual viewport
2020-01-22 20:38:21 -05:00
toasted-nutbread
4d85a36091
Fix popup size changing when zooming
2020-01-22 20:38:21 -05:00
toasted-nutbread
351598a182
Add settings to control popup content scale
2020-01-22 20:38:21 -05:00
toasted-nutbread
e740965d4f
Scale popup based on current page zoom factor
2020-01-22 20:38:21 -05:00
toasted-nutbread
22afab2f47
Remove _isInitialized
2020-01-22 20:38:21 -05:00
toasted-nutbread
e51fd8ea71
Add _isInjectedAndLoaded property
2020-01-22 20:38:21 -05:00
toasted-nutbread
f725549330
Remove redundant window resize handler
2020-01-22 20:38:21 -05:00
toasted-nutbread
14e48cf854
Create single function for how the frontend shows popup content
2020-01-22 20:38:21 -05:00
toasted-nutbread
d8b0d5267b
Catch exception on range.setStart
...
Fixes #328
2020-01-17 20:47:51 -05:00
toasted-nutbread
f969b5b8a9
Update popup scan ignore selectors
2020-01-16 22:39:26 -05:00
toasted-nutbread
62da7ec5cc
Update expression-scan-toggle to term-expression-text
2020-01-16 22:39:26 -05:00
toasted-nutbread
dbbcfa5739
Only use Display.setContent
2020-01-16 22:39:26 -05:00
siikamiika
8292be92d8
use TextScanner in QueryParser
2020-01-16 23:22:38 +02:00
toasted-nutbread
0d7ccf25b8
Update license info URL
2020-01-01 12:00:31 -05:00
toasted-nutbread
899ef167d1
Update copyright
2020-01-01 12:00:00 -05:00
toasted-nutbread
362e317a5d
Change FrontendApiSender.callbacks to be a map
2019-12-21 14:30:13 -05:00
toasted-nutbread
a2175f2c29
Move PopupProxyHost initialization
2019-12-21 13:27:32 -05:00
toasted-nutbread
7ae0584077
Update initialization
2019-12-21 13:19:31 -05:00
toasted-nutbread
b2cc694d95
Replace window.yomichan_display with DisplayFloat.instance
2019-12-20 23:20:42 -05:00
toasted-nutbread
8c236cca44
Remove unused yomichan_frontend
2019-12-20 23:20:22 -05:00
toasted-nutbread
2519f99f54
Update how orphan state is observed
2019-12-20 13:44:33 -05:00
toasted-nutbread
2a95f1420f
Move optionsUpdate message handler into Yomichan class
2019-12-20 13:36:54 -05:00
toasted-nutbread
cab2a39981
Simplify options passed to docRangeFromPoint
2019-12-17 20:56:32 -05:00
toasted-nutbread
4b5138b96e
Override pointer-events with important
2019-12-17 20:54:57 -05:00
toasted-nutbread
ff1f256ffa
Only return unique elements from docElementsFromPoint
...
This fixes #294
2019-12-17 20:53:12 -05:00
toasted-nutbread
9557d8048b
Fix undefined reference
2019-12-16 19:54:41 -05:00
toasted-nutbread
68a0293867
Make PopupProxy functions async enabled status match Popup
2019-12-16 19:54:41 -05:00
toasted-nutbread
d6c64643b1
Don't return promises for frontend message handlers
2019-12-16 19:54:41 -05:00
toasted-nutbread
0fb2357ec7
isVisibleAsync => isVisible
2019-12-16 19:54:41 -05:00
toasted-nutbread
29734ea6e9
isVisible => isVisibleSync
2019-12-16 19:54:41 -05:00
toasted-nutbread
72ab6f1f45
Remove unused child getter
2019-12-16 19:54:41 -05:00
toasted-nutbread
801df8000f
Mark private members
2019-12-16 19:54:41 -05:00
toasted-nutbread
7c68490d2e
Add setParent to popup
2019-12-16 19:54:41 -05:00
toasted-nutbread
30e13354b3
Add Popup.isProxy
2019-12-16 19:54:41 -05:00
toasted-nutbread
289a1849c4
Add _createPopupInternal to return both popup and new ID
2019-12-16 19:54:41 -05:00
toasted-nutbread
41fadfd0a9
Add setChildrenSupported to popup
2019-12-16 19:54:41 -05:00
toasted-nutbread
c4719cb7f4
Add getContainer to popup
2019-12-16 19:54:41 -05:00
toasted-nutbread
4ba93b0770
Add getContainerRect to popup
2019-12-16 19:54:41 -05:00
toasted-nutbread
37da5fef59
Move container definition
2019-12-16 19:54:41 -05:00
toasted-nutbread
c3ea952844
Mark private functions
2019-12-16 19:54:41 -05:00
toasted-nutbread
44bde5c676
Reorganize popup-only public functions
2019-12-16 19:54:41 -05:00
toasted-nutbread
4014bbab42
Reorganize popup public functions to match popup proxy
2019-12-16 19:54:41 -05:00
toasted-nutbread
8164ccfbfc
Group poup static functions together
2019-12-16 19:54:41 -05:00
toasted-nutbread
fab0d70358
Move popup public properties
2019-12-16 19:54:41 -05:00
toasted-nutbread
2c3a145866
Mark private members
2019-12-16 19:54:41 -05:00
toasted-nutbread
8a127e07f3
Mark private message handlers
2019-12-16 19:54:41 -05:00
toasted-nutbread
525a3a50d1
Mark private functions
2019-12-16 19:54:41 -05:00
toasted-nutbread
2c8c6866ef
jsonRectToDOMRect => convertJsonRectToDOMRect
...
Also make static
2019-12-16 19:54:41 -05:00
toasted-nutbread
3f8cc83c25
Group nested message handlers together
2019-12-16 19:54:41 -05:00
toasted-nutbread
88ac8f4ead
Update PopupProxyHost.popups to use a Map
2019-12-16 19:54:41 -05:00
toasted-nutbread
8efbf9bd0d
Flag members as private
2019-12-16 19:54:41 -05:00
toasted-nutbread
bf02eb2ea1
Mark PopupProxy internal functions as private
2019-12-16 19:54:41 -05:00
toasted-nutbread
ce51fe7eca
Use a single api.js
2019-12-13 23:11:56 -05:00
toasted-nutbread
7addf5a2dd
Add API calls for optionsGetFull and optionsSave
2019-12-13 23:11:56 -05:00
toasted-nutbread
4177b63726
Remove redundant getUrl handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
573f83b65a
Update frontend API receiver handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
b7144ed879
Update display float key handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
5588643988
Update float message handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
863e36e829
Update frontend message handlers
2019-12-13 23:11:56 -05:00
toasted-nutbread
f287d68624
Add showContentCompleted for improved semantic clarity
2019-12-11 21:31:21 -05:00
siikamiika
f6d0503604
simplify with inheritance
2019-12-06 21:39:29 +02:00
siikamiika
595636c40b
move text selection to TextScanner
2019-12-05 22:48:05 +02:00
siikamiika
e5be42d3de
scan decoupling
2019-12-05 22:12:43 +02:00
siikamiika
02a34bb4bc
initial text scanner extract
2019-12-05 03:58:35 +02:00
siikamiika
a40f3b1c9f
add missing disableHistory
2019-12-01 06:32:17 +02:00
siikamiika
be23ad7213
remove dead code
2019-11-30 04:59:36 +02:00
siikamiika
1dd88763de
clear Display history on new lookup
2019-11-28 18:24:24 +02:00
toasted-nutbread
5a1046bc90
Update arrow-parens to always
2019-11-26 22:06:27 -05:00
toasted-nutbread
acb70f126c
Update unused arguments
2019-11-26 22:06:27 -05:00
toasted-nutbread
ef833d2bea
Use const rather than let where possible
2019-11-26 22:06:27 -05:00
toasted-nutbread
527595f79b
Remove unnecessary escapes from regex literals
2019-11-26 22:06:27 -05:00
toasted-nutbread
943350a1f6
Use single quotes
2019-11-26 22:06:27 -05:00
toasted-nutbread
0aed27b66d
Replace hasOwnProperty with simplified hasOwn function
2019-11-26 22:06:27 -05:00
toasted-nutbread
4110a848f5
Move additional utility functions to DOM
2019-11-26 18:59:52 -05:00
toasted-nutbread
96aad50340
Create DOM utility file
2019-11-26 18:59:52 -05:00
toasted-nutbread
a14b820a19
Move utilInvoke into api.js, rename to _apiInvoke
2019-11-26 17:23:55 -05:00
toasted-nutbread
7f9a73135d
Remove utilAsync
2019-11-26 17:18:17 -05:00
siikamiika
3423ed7d67
Merge pull request #279 from siikamiika/query-parser-1
...
Search page query parser
2019-11-26 18:31:35 +02:00
toasted-nutbread
820beb7c93
Fix incorrect opacity check
2019-11-25 21:04:34 -05:00
toasted-nutbread
cf18e3b42e
Replace string.substr and string.slice with string.substring
...
Improves semantic clarity, and it's recommended to not use substr.
2019-11-24 11:02:52 -05:00
siikamiika
41020289ab
add mecab support
2019-11-23 17:45:44 +02:00
siikamiika
c35a05cd62
add kana to text
2019-11-23 17:40:52 +02:00
toasted-nutbread
3a225c3f91
Add details field to apiTermsFind
2019-11-10 14:02:43 -05:00
toasted-nutbread
d9b4404075
Create functions for the cases of isMouseButton
...
jshint was showing a warning that there was no break statement
after the first case, which there doesn't need to be.
The most straightforward way to fix this without using the unclear
// jshint ignore:line
is to just have two functions.
This change also updates invocations of isMouseButton to use
the exact case function, as this will remove the need to check
the case of mosueEvent.type. This was done because onMouseMove
is invoked at a high frequency.
2019-11-10 14:00:44 -05:00
siikamiika
40c8268fd6
always disable scanning IME checkbox label
2019-11-09 13:01:21 +02:00
siikamiika
25af532ab7
enable expression scan toggling on search page
2019-11-09 12:27:09 +02:00
toasted-nutbread
fa963722a7
Fix seekForward and seekBackward not handling length=0 case correctly
2019-11-08 19:24:33 -05:00
toasted-nutbread
a85ec440d6
Fix overlapping popup timers
2019-11-05 19:48:08 -05:00
siikamiika
83460bcdad
refactoring and optimization
2019-11-04 02:15:33 +02:00
siikamiika
f4a987912a
prevent accidental lookup on glossary text select
2019-11-03 18:56:22 +02:00
toasted-nutbread
75ff05148d
Fix autoHideResults not working
2019-11-03 11:06:31 -05:00
toasted-nutbread
bcffe80a1e
Group similar functions together
2019-10-28 17:03:42 -04:00
toasted-nutbread
6d85dae68d
Fix some issues with the context menu
2019-10-28 17:03:42 -04:00
toasted-nutbread
d2644c0776
Style update
2019-10-28 17:03:42 -04:00
toasted-nutbread
c365101ec2
Reset preventions earlier
2019-10-28 17:03:42 -04:00
toasted-nutbread
e542f38110
Check pendingLookup earlier
2019-10-28 17:03:42 -04:00
toasted-nutbread
9703e123bf
Remove setPrimaryTouch
2019-10-28 17:03:42 -04:00
toasted-nutbread
80eb357527
Simplify touch event implementation
2019-10-28 17:03:42 -04:00
toasted-nutbread
131dc8397d
Make selectionContainsPoint static
2019-10-28 17:03:42 -04:00
toasted-nutbread
a648e05091
Improve naming
2019-10-28 17:03:42 -04:00
toasted-nutbread
9178636613
Remove setters
2019-10-28 17:03:42 -04:00
toasted-nutbread
c74c466c36
Remove unused variable
2019-10-28 17:03:42 -04:00
toasted-nutbread
f2dec4ca20
Remove searchFromTouch
2019-10-28 17:03:42 -04:00
toasted-nutbread
8c5240d7a6
Simplify how touch events use onAfterSearch
2019-10-28 17:03:42 -04:00
toasted-nutbread
e91bcf5f55
Rename textSourceLast to textSourceCurrent
2019-10-28 17:03:42 -04:00
toasted-nutbread
be27781c15
Update how definitions are searched for
2019-10-28 17:03:42 -04:00
toasted-nutbread
f927f806ba
Move check
2019-10-28 17:03:42 -04:00
toasted-nutbread
1f0a434e96
Remove unused vars
2019-10-28 17:03:42 -04:00
toasted-nutbread
dcb6f68826
Don't pass null textSource into searchSource
2019-10-28 17:03:42 -04:00
toasted-nutbread
185963899b
Use promiseTimeout
2019-10-28 17:03:42 -04:00
toasted-nutbread
d608657495
Move onError catch into searchAt
2019-10-28 17:03:42 -04:00
siikamiika
70418202cf
make search page checkbox options persist
2019-10-27 20:11:23 +02:00
siikamiika
48776145d6
add workaround to Chrome clipboard.readText
...
For some reason this doesn't work on Firefox, so keep using the new API
for Firefox
2019-10-27 15:46:27 +02:00
toasted-nutbread
7a3315d75d
Use chrome.runtime.getURL instead of chrome.extension.getURL
2019-10-22 20:23:03 -04:00
toasted-nutbread
d9ae34821c
Add support for middle clicks opening new tabs on the context buttons
2019-10-19 22:30:16 -04:00
toasted-nutbread
dbec4bffda
Make the search button reuse an open search tab if it exists
2019-10-19 22:28:23 -04:00
toasted-nutbread
a5d7de8e97
Add correction to offset of imposter rect
...
Necessary when dealing with CSS transforms
2019-10-17 19:30:54 -04:00
toasted-nutbread
8f918c63dc
Reposition popup on window resize rather than clear the search
...
Fixes #107
2019-10-17 18:40:43 -04:00
toasted-nutbread
598cd32946
Update *show* APIs to unified showContent and setContent
2019-10-17 18:40:43 -04:00
siikamiika
5b98f3ea6e
add missing return to fix vertical text mode
2019-10-16 23:49:40 +03:00
toasted-nutbread
16521fec93
Assign first popup on the search page as a depth of 1
2019-10-15 20:23:25 -04:00
toasted-nutbread
cb236a7430
Add apiGetEnvironmentInfo function
2019-10-13 17:20:55 -04:00
toasted-nutbread
c92fc11fcd
Fix getElementWritingMode returning deprecated values on Edge
2019-10-13 16:44:13 -04:00
toasted-nutbread
b34ff7ebe9
Change #yomichan-float to .yomichan-float
...
Since there can be more than one popup, using a class makes more sense than an ID.
2019-10-13 12:12:52 -04:00
toasted-nutbread
c9158a37b5
Allow outer popup stylesheets to be injected
2019-10-13 12:12:51 -04:00
toasted-nutbread
118f200500
Simplified how the auto theme works
2019-10-13 12:12:51 -04:00
toasted-nutbread
b086fca69f
Add separate theme option for outer popup style
2019-10-12 19:00:24 -04:00
toasted-nutbread
883226b045
Update how custom CSS is applied
2019-10-12 19:00:24 -04:00
toasted-nutbread
c90bc75eb8
Create themes
2019-10-12 19:00:24 -04:00
toasted-nutbread
be7fa57d5c
Add support for a popup preview
2019-10-12 15:44:32 -04:00
toasted-nutbread
537d2ef532
Remove Display.dependencies
2019-10-12 15:31:29 -04:00
toasted-nutbread
6da7683552
Don't pass options around for calls to termsShow, kanjiShow, etc.
2019-10-12 15:31:29 -04:00
toasted-nutbread
a5b208fb89
Check if objects are properly initialized before showing content
2019-10-12 15:31:29 -04:00
toasted-nutbread
8a1637f6b3
Remove .show popup proxy API since it's not used
2019-10-12 15:31:29 -04:00
toasted-nutbread
194615ef21
Make popups store options
2019-10-12 15:31:29 -04:00
toasted-nutbread
3e249e19ac
Update Display initialization process
2019-10-12 15:31:29 -04:00
toasted-nutbread
cc72514ce6
Frontend updates
2019-10-11 23:24:51 -04:00
toasted-nutbread
22b218d172
Pass optionsContext to audioBuildUrl handlers
2019-10-09 22:03:56 -04:00
toasted-nutbread
c5d6b9452d
Create utility function for logging errors
2019-10-08 22:38:05 -04:00
toasted-nutbread
6a6e200ef9
Update rejections to use Error
2019-10-08 21:44:25 -04:00
toasted-nutbread
88de427184
Throw Error instead of string
2019-10-08 21:32:08 -04:00
Alex Yatskov
4df8662ea9
Merge pull request #234 from toasted-nutbread/remove-frontend-event-listeners
...
Remove event listeners when scanning is disabled
2019-10-05 19:48:46 -07:00
toasted-nutbread
113cc725c1
Make the window.onresize handler not change focus
2019-10-05 22:11:05 -04:00
toasted-nutbread
cd6d4e7ee1
Update how popup visibility works
2019-10-05 21:59:37 -04:00
toasted-nutbread
2255fadf52
Rename Popup.setVisible to setVisibleOverride
2019-10-05 21:40:10 -04:00
toasted-nutbread
c967b7a9f1
Remove event listeners when scanning is disabled
2019-10-05 13:57:33 -04:00
Alex Yatskov
46ab36180f
Merge pull request #233 from toasted-nutbread/static-handlers
...
Static handlers
2019-10-05 09:20:45 -07:00
toasted-nutbread
fa7ee468c0
Simplify float initialization
2019-10-02 21:12:24 -04:00
toasted-nutbread
bf382652a7
Use static object for float message handlers
2019-10-02 20:46:35 -04:00
toasted-nutbread
7d15213916
Use static object for frontend message handlers
2019-10-02 20:31:42 -04:00
toasted-nutbread
a628610cbd
Use KeyboardEvent.key for onKeyDown handlers
2019-10-02 19:49:52 -04:00
toasted-nutbread
861474d2fc
Fix inconsistent return type
2019-10-01 19:05:30 -04:00
Alex Yatskov
fba2bef905
Merge pull request #225 from toasted-nutbread/text-source-range-improvements
...
TextSourceRange improvements
2019-09-30 19:58:19 -07:00
toasted-nutbread
25a4dafd73
Fix tab focus being changed due to settings changes
2019-09-29 16:48:28 -04:00
toasted-nutbread
03c52625a9
Refactor seekForward and seekBackward
2019-09-28 11:28:55 -04:00
toasted-nutbread
a5f393fa2c
Fix incorrect check
2019-09-28 11:28:15 -04:00
toasted-nutbread
928d7aecd5
Directly return rather than use a temporary variable
2019-09-28 11:28:15 -04:00
toasted-nutbread
8110de514e
Change skipped node types to use a switch statement
2019-09-28 11:28:15 -04:00
toasted-nutbread
95a7fd81f5
Use raw element references for container and spinner
2019-09-27 21:41:00 -04:00
toasted-nutbread
476a5e873a
Remove jQuery usage from float.js
2019-09-27 21:16:10 -04:00
Alex Yatskov
ba2858309e
Merge pull request #218 from toasted-nutbread/settings-profile-conditions
...
Settings profile conditions
2019-09-23 17:03:00 -07:00
Alex Yatskov
db405ffd24
Merge pull request #219 from toasted-nutbread/fix-null-caret-position
...
Handle null return value of document.caretPositionFromPoint
2019-09-22 10:06:52 -07:00
toasted-nutbread
f022ee4eca
Use a Promise to trigger callback when delay is 0 or less
2019-09-19 19:00:26 -04:00
toasted-nutbread
02927f9004
Handle null return value of document.caretPositionFromPoint
2019-09-18 22:11:18 -04:00
toasted-nutbread
dcfe722ba6
Add support for using optionsContext to select which profile to use
2019-09-18 19:14:04 -04:00
toasted-nutbread
073420a121
Normalize XHTML document node.nodeNode to upper case
2019-09-15 16:09:46 -04:00
Alex Yatskov
e4fa658295
Merge pull request #212 from toasted-nutbread/frontend-cleanup
...
Frontend cleanup
2019-09-15 11:33:48 -07:00
Alex Yatskov
88a6128e39
Merge pull request #211 from toasted-nutbread/validate-content-window
...
Validate contentWindow before focus
2019-09-14 17:31:23 -07:00
Alex Yatskov
2add068ff2
Merge pull request #210 from toasted-nutbread/defer-port-creation
...
Defer creation of communication port until required
2019-09-14 17:30:52 -07:00
toasted-nutbread
0067dfeacc
Remove redundant call of popupTimerClear
...
Also use explicit null checks rather than truthy checks.
2019-09-14 15:29:43 -04:00
toasted-nutbread
8b1e4d1c6f
Return only single element when deepDomScan is not enabled
2019-09-14 14:52:03 -04:00
toasted-nutbread
7dddcb8dca
Rename type to cause
2019-09-14 14:31:21 -04:00
toasted-nutbread
6d3037f3d6
Remove destructuring from searchAt, containsPoint, docRangeFromPoint
2019-09-14 14:27:25 -04:00
toasted-nutbread
89941d404c
Remove unused variable
2019-09-14 14:11:25 -04:00
toasted-nutbread
721248c821
Remove mouseDownLeft and mouseDownMiddle
...
MouseEvent.buttons can be used instead.
2019-09-14 14:11:06 -04:00
toasted-nutbread
964de775df
Validate contentWindow before focus
2019-09-14 12:02:31 -04:00
toasted-nutbread
304064dae0
Defer creation of communication port until required
2019-09-14 11:58:22 -04:00
toasted-nutbread
bab6a13bfb
Fix nested popups being shown if parent is hidden
2019-09-13 18:12:51 -04:00
Alex Yatskov
ec816e6767
Merge pull request #207 from toasted-nutbread/popup-proxy-writing-mode
...
Add writingMode to PopupProxy* termsShow and kanjiShow
2019-09-12 19:48:22 -07:00