├── .gitignore ├── .htaccess ├── LICENSE ├── README.md ├── api ├── bing │ └── index.php ├── black.data ├── black.php ├── douyin │ └── index.php ├── dwzrec │ └── index.php ├── huoshan │ └── index.php ├── ico │ └── index.php ├── icp │ └── index.php ├── img │ ├── acg.php │ └── sinetxt.txt ├── ipinfo │ ├── function.php │ ├── index.php │ ├── msyh.ttf │ └── xhxh.jpg ├── laji │ └── index.php ├── lanzou │ └── index.php ├── lishi │ └── index.php ├── ppx │ └── index.php ├── qqdwz │ └── index.php ├── qqimg │ └── index.php ├── qqzx │ └── index.php ├── qun │ └── index.php ├── serverinfo │ └── index.php ├── site │ └── index.php ├── st │ └── index.php ├── tel │ └── index.php ├── test │ └── index.php ├── title │ └── index.php ├── web │ └── index.php ├── wether │ └── index.php └── yiyan │ ├── hitokoto.txt │ └── index.php ├── application ├── .htaccess ├── 404.html ├── admin │ ├── controller │ │ ├── Api.php │ │ ├── Index.php │ │ ├── Login.php │ │ ├── Post.php │ │ └── Sort.php │ └── view │ │ ├── api │ │ ├── apiAdd.html │ │ ├── apiEdit.html │ │ ├── apiList.html │ │ └── apiRequest.html │ │ ├── footer.html │ │ ├── header.html │ │ ├── index │ │ ├── black.html │ │ ├── blackEdit.html │ │ ├── index.html │ │ ├── search.html │ │ └── setup.html │ │ ├── login │ │ └── index.html │ │ ├── post │ │ ├── postAdd.html │ │ ├── postEdit.html │ │ └── postList.html │ │ └── sort │ │ ├── sortAdd.html │ │ ├── sortEdit.html │ │ └── sortList.html ├── command.php ├── common.php ├── index │ ├── controller │ │ └── Index.php │ └── view │ │ └── index │ │ ├── doc.html │ │ ├── index.html │ │ ├── post.html │ │ └── postList.html ├── provider.php └── tags.php ├── build.php ├── config ├── app.php ├── cache.php ├── console.php ├── cookie.php ├── database.php ├── log.php ├── middleware.php ├── session.php ├── template.php └── trace.php ├── index.php ├── install ├── a_welcome.html ├── api.sql ├── b_check.html ├── c_create.html ├── css │ ├── install.css │ └── material-dashboard.min.css ├── d_success.html ├── error.html ├── frame │ └── layui │ │ ├── css │ │ ├── layui.css │ │ ├── layui.mobile.css │ │ └── modules │ │ │ ├── code.css │ │ │ ├── laydate │ │ │ ├── icon.png │ │ │ └── laydate.css │ │ │ └── layer │ │ │ └── default │ │ │ ├── icon-ext.png │ │ │ ├── icon.png │ │ │ ├── layer.css │ │ │ ├── loading-0.gif │ │ │ ├── loading-1.gif │ │ │ └── loading-2.gif │ │ ├── font │ │ ├── iconfont.eot │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ └── iconfont.woff │ │ ├── images │ │ └── face │ │ │ ├── 0.gif │ │ │ ├── 1.gif │ │ │ ├── 10.gif │ │ │ ├── 11.gif │ │ │ ├── 12.gif │ │ │ ├── 13.gif │ │ │ ├── 14.gif │ │ │ ├── 15.gif │ │ │ ├── 16.gif │ │ │ ├── 17.gif │ │ │ ├── 18.gif │ │ │ ├── 19.gif │ │ │ ├── 2.gif │ │ │ ├── 20.gif │ │ │ ├── 21.gif │ │ │ ├── 22.gif │ │ │ ├── 23.gif │ │ │ ├── 24.gif │ │ │ ├── 25.gif │ │ │ ├── 26.gif │ │ │ ├── 27.gif │ │ │ ├── 28.gif │ │ │ ├── 29.gif │ │ │ ├── 3.gif │ │ │ ├── 30.gif │ │ │ ├── 31.gif │ │ │ ├── 32.gif │ │ │ ├── 33.gif │ │ │ ├── 34.gif │ │ │ ├── 35.gif │ │ │ ├── 36.gif │ │ │ ├── 37.gif │ │ │ ├── 38.gif │ │ │ ├── 39.gif │ │ │ ├── 4.gif │ │ │ ├── 40.gif │ │ │ ├── 41.gif │ │ │ ├── 42.gif │ │ │ ├── 43.gif │ │ │ ├── 44.gif │ │ │ ├── 45.gif │ │ │ ├── 46.gif │ │ │ ├── 47.gif │ │ │ ├── 48.gif │ │ │ ├── 49.gif │ │ │ ├── 5.gif │ │ │ ├── 50.gif │ │ │ ├── 51.gif │ │ │ ├── 52.gif │ │ │ ├── 53.gif │ │ │ ├── 54.gif │ │ │ ├── 55.gif │ │ │ ├── 56.gif │ │ │ ├── 57.gif │ │ │ ├── 58.gif │ │ │ ├── 59.gif │ │ │ ├── 6.gif │ │ │ ├── 60.gif │ │ │ ├── 61.gif │ │ │ ├── 62.gif │ │ │ ├── 63.gif │ │ │ ├── 64.gif │ │ │ ├── 65.gif │ │ │ ├── 66.gif │ │ │ ├── 67.gif │ │ │ ├── 68.gif │ │ │ ├── 69.gif │ │ │ ├── 7.gif │ │ │ ├── 70.gif │ │ │ ├── 71.gif │ │ │ ├── 8.gif │ │ │ └── 9.gif │ │ ├── lay │ │ ├── dest │ │ │ └── layui.all.js │ │ └── modules │ │ │ ├── code.js │ │ │ ├── element.js │ │ │ ├── flow.js │ │ │ ├── form.js │ │ │ ├── jquery.js │ │ │ ├── laydate.js │ │ │ ├── layedit.js │ │ │ ├── layer.js │ │ │ ├── laypage.js │ │ │ ├── laytpl.js │ │ │ ├── mobile.js │ │ │ ├── tree.js │ │ │ ├── upload.js │ │ │ └── util.js │ │ └── layui.js └── index.php ├── public ├── .htaccess ├── favicon.png ├── index.php ├── robots.txt ├── router.php └── static │ ├── admin │ ├── chart.min.js │ ├── main.css │ ├── main.js │ └── public.js │ ├── doc │ ├── css │ │ ├── docs.css │ │ ├── github-gist.css │ │ └── railscasts.css │ └── js │ │ ├── docs.js │ │ ├── highlight.pack.js │ │ ├── holder.min.js │ │ └── smooth-scroll.min.js │ ├── editor │ ├── css │ │ ├── editormd.css │ │ └── editormd.preview.css │ ├── editormd.min.js │ ├── fonts │ │ ├── editormd-logo.ttf │ │ ├── editormd-logo.woff │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ └── fontawesome-webfont.woff2 │ ├── images │ │ ├── loading.gif │ │ ├── loading@2x.gif │ │ ├── loading@3x.gif │ │ └── logos │ │ │ ├── editormd-favicon-16x16.ico │ │ │ ├── editormd-favicon-24x24.ico │ │ │ ├── editormd-favicon-32x32.ico │ │ │ ├── editormd-favicon-48x48.ico │ │ │ ├── editormd-favicon-64x64.ico │ │ │ ├── editormd-logo-114x114.png │ │ │ ├── editormd-logo-120x120.png │ │ │ ├── editormd-logo-144x144.png │ │ │ ├── editormd-logo-16x16.png │ │ │ ├── editormd-logo-180x180.png │ │ │ ├── editormd-logo-240x240.png │ │ │ ├── editormd-logo-24x24.png │ │ │ ├── editormd-logo-320x320.png │ │ │ ├── editormd-logo-32x32.png │ │ │ ├── editormd-logo-48x48.png │ │ │ ├── editormd-logo-57x57.png │ │ │ ├── editormd-logo-64x64.png │ │ │ ├── editormd-logo-72x72.png │ │ │ ├── editormd-logo-96x96.png │ │ │ └── vi.png │ ├── lib │ │ ├── codemirror │ │ │ ├── AUTHORS │ │ │ ├── LICENSE │ │ │ ├── README.md │ │ │ ├── addon │ │ │ │ ├── comment │ │ │ │ │ ├── comment.js │ │ │ │ │ └── continuecomment.js │ │ │ │ ├── dialog │ │ │ │ │ ├── dialog.css │ │ │ │ │ └── dialog.js │ │ │ │ ├── display │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ ├── panel.js │ │ │ │ │ ├── placeholder.js │ │ │ │ │ └── rulers.js │ │ │ │ ├── edit │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ ├── closetag.js │ │ │ │ │ ├── continuelist.js │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ ├── matchtags.js │ │ │ │ │ └── trailingspace.js │ │ │ │ ├── fold │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ ├── foldcode.js │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ └── xml-fold.js │ │ │ │ ├── hint │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ ├── css-hint.js │ │ │ │ │ ├── html-hint.js │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ ├── show-hint.css │ │ │ │ │ ├── show-hint.js │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ └── xml-hint.js │ │ │ │ ├── lint │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ ├── css-lint.js │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ ├── json-lint.js │ │ │ │ │ ├── lint.css │ │ │ │ │ ├── lint.js │ │ │ │ │ └── yaml-lint.js │ │ │ │ ├── merge │ │ │ │ │ ├── merge.css │ │ │ │ │ └── merge.js │ │ │ │ ├── mode │ │ │ │ │ ├── loadmode.js │ │ │ │ │ ├── multiplex.js │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ ├── overlay.js │ │ │ │ │ └── simple.js │ │ │ │ ├── runmode │ │ │ │ │ ├── colorize.js │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ ├── runmode.js │ │ │ │ │ └── runmode.node.js │ │ │ │ ├── scroll │ │ │ │ │ ├── annotatescrollbar.js │ │ │ │ │ ├── scrollpastend.js │ │ │ │ │ ├── simplescrollbars.css │ │ │ │ │ └── simplescrollbars.js │ │ │ │ ├── search │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ │ ├── search.js │ │ │ │ │ └── searchcursor.js │ │ │ │ ├── selection │ │ │ │ │ ├── active-line.js │ │ │ │ │ ├── mark-selection.js │ │ │ │ │ └── selection-pointer.js │ │ │ │ ├── tern │ │ │ │ │ ├── tern.css │ │ │ │ │ ├── tern.js │ │ │ │ │ └── worker.js │ │ │ │ └── wrap │ │ │ │ │ └── hardwrap.js │ │ │ ├── addons.min.js │ │ │ ├── bower.json │ │ │ ├── codemirror.min.css │ │ │ ├── codemirror.min.js │ │ │ ├── lib │ │ │ │ ├── codemirror.css │ │ │ │ └── codemirror.js │ │ │ ├── mode │ │ │ │ ├── apl │ │ │ │ │ ├── apl.js │ │ │ │ │ └── index.html │ │ │ │ ├── asterisk │ │ │ │ │ ├── asterisk.js │ │ │ │ │ └── index.html │ │ │ │ ├── clike │ │ │ │ │ ├── clike.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── scala.html │ │ │ │ ├── clojure │ │ │ │ │ ├── clojure.js │ │ │ │ │ └── index.html │ │ │ │ ├── cobol │ │ │ │ │ ├── cobol.js │ │ │ │ │ └── index.html │ │ │ │ ├── coffeescript │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ └── index.html │ │ │ │ ├── commonlisp │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ └── index.html │ │ │ │ ├── css │ │ │ │ │ ├── css.js │ │ │ │ │ ├── index.html │ │ │ │ │ ├── less.html │ │ │ │ │ ├── less_test.js │ │ │ │ │ ├── scss.html │ │ │ │ │ ├── scss_test.js │ │ │ │ │ └── test.js │ │ │ │ ├── cypher │ │ │ │ │ ├── cypher.js │ │ │ │ │ └── index.html │ │ │ │ ├── d │ │ │ │ │ ├── d.js │ │ │ │ │ └── index.html │ │ │ │ ├── dart │ │ │ │ │ ├── dart.js │ │ │ │ │ └── index.html │ │ │ │ ├── diff │ │ │ │ │ ├── diff.js │ │ │ │ │ └── index.html │ │ │ │ ├── django │ │ │ │ │ ├── django.js │ │ │ │ │ └── index.html │ │ │ │ ├── dockerfile │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ └── index.html │ │ │ │ ├── dtd │ │ │ │ │ ├── dtd.js │ │ │ │ │ └── index.html │ │ │ │ ├── dylan │ │ │ │ │ ├── dylan.js │ │ │ │ │ └── index.html │ │ │ │ ├── ebnf │ │ │ │ │ ├── ebnf.js │ │ │ │ │ └── index.html │ │ │ │ ├── ecl │ │ │ │ │ ├── ecl.js │ │ │ │ │ └── index.html │ │ │ │ ├── eiffel │ │ │ │ │ ├── eiffel.js │ │ │ │ │ └── index.html │ │ │ │ ├── erlang │ │ │ │ │ ├── erlang.js │ │ │ │ │ └── index.html │ │ │ │ ├── forth │ │ │ │ │ ├── forth.js │ │ │ │ │ └── index.html │ │ │ │ ├── fortran │ │ │ │ │ ├── fortran.js │ │ │ │ │ └── index.html │ │ │ │ ├── gas │ │ │ │ │ ├── gas.js │ │ │ │ │ └── index.html │ │ │ │ ├── gfm │ │ │ │ │ ├── gfm.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── gherkin │ │ │ │ │ ├── gherkin.js │ │ │ │ │ └── index.html │ │ │ │ ├── go │ │ │ │ │ ├── go.js │ │ │ │ │ └── index.html │ │ │ │ ├── groovy │ │ │ │ │ ├── groovy.js │ │ │ │ │ └── index.html │ │ │ │ ├── haml │ │ │ │ │ ├── haml.js │ │ │ │ │ ├── index.html │ │ │ │ │ └── test.js │ │ │ │ ├── haskell │ │ │ │ │ ├── haskell.js │ │ │ │ │ └── index.html │ │ │ │ ├── haxe │ │ │ │ │ ├── haxe.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlembedded │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ └── index.html │ │ │ │ ├── htmlmixed │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ └── index.html │ │ │ │ ├── http │ │ │ │ │ ├── http.js │ │ │ │ │ └── index.html │ │ │ │ ├── idl │ │ │ │ │ ├── idl.js │ │ │ │ │ └── index.html │ │ │ │ ├── index.html │ │ │ │ ├── jade │ │ │ │ │ ├── index.html │ │ │ │ │ └── jade.js │ │ │ │ ├── javascript │ │ │ │ │ ├── index.html │ │ │ │ │ ├── javascript.js │ │ │ │ │ ├── json-ld.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── typescript.html │ │ │ │ ├── jinja2 │ │ │ │ │ ├── index.html │ │ │ │ │ └── jinja2.js │ │ │ │ ├── julia │ │ │ │ │ ├── index.html │ │ │ │ │ └── julia.js │ │ │ │ ├── kotlin │ │ │ │ │ ├── index.html │ │ │ │ │ └── kotlin.js │ │ │ │ ├── livescript │ │ │ │ │ ├── index.html │ │ │ │ │ └── livescript.js │ │ │ │ ├── lua │ │ │ │ │ ├── index.html │ │ │ │ │ └── lua.js │ │ │ │ ├── markdown │ │ │ │ │ ├── index.html │ │ │ │ │ ├── markdown.js │ │ │ │ │ └── test.js │ │ │ │ ├── meta.js │ │ │ │ ├── mirc │ │ │ │ │ ├── index.html │ │ │ │ │ └── mirc.js │ │ │ │ ├── mllike │ │ │ │ │ ├── index.html │ │ │ │ │ └── mllike.js │ │ │ │ ├── modelica │ │ │ │ │ ├── index.html │ │ │ │ │ └── modelica.js │ │ │ │ ├── nginx │ │ │ │ │ ├── index.html │ │ │ │ │ └── nginx.js │ │ │ │ ├── ntriples │ │ │ │ │ ├── index.html │ │ │ │ │ └── ntriples.js │ │ │ │ ├── octave │ │ │ │ │ ├── index.html │ │ │ │ │ └── octave.js │ │ │ │ ├── pascal │ │ │ │ │ ├── index.html │ │ │ │ │ └── pascal.js │ │ │ │ ├── pegjs │ │ │ │ │ ├── index.html │ │ │ │ │ └── pegjs.js │ │ │ │ ├── perl │ │ │ │ │ ├── index.html │ │ │ │ │ └── perl.js │ │ │ │ ├── php │ │ │ │ │ ├── index.html │ │ │ │ │ ├── php.js │ │ │ │ │ └── test.js │ │ │ │ ├── pig │ │ │ │ │ ├── index.html │ │ │ │ │ └── pig.js │ │ │ │ ├── properties │ │ │ │ │ ├── index.html │ │ │ │ │ └── properties.js │ │ │ │ ├── puppet │ │ │ │ │ ├── index.html │ │ │ │ │ └── puppet.js │ │ │ │ ├── python │ │ │ │ │ ├── index.html │ │ │ │ │ └── python.js │ │ │ │ ├── q │ │ │ │ │ ├── index.html │ │ │ │ │ └── q.js │ │ │ │ ├── r │ │ │ │ │ ├── index.html │ │ │ │ │ └── r.js │ │ │ │ ├── rpm │ │ │ │ │ ├── changes │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ └── rpm.js │ │ │ │ ├── rst │ │ │ │ │ ├── index.html │ │ │ │ │ └── rst.js │ │ │ │ ├── ruby │ │ │ │ │ ├── index.html │ │ │ │ │ ├── ruby.js │ │ │ │ │ └── test.js │ │ │ │ ├── rust │ │ │ │ │ ├── index.html │ │ │ │ │ └── rust.js │ │ │ │ ├── sass │ │ │ │ │ ├── index.html │ │ │ │ │ └── sass.js │ │ │ │ ├── scheme │ │ │ │ │ ├── index.html │ │ │ │ │ └── scheme.js │ │ │ │ ├── shell │ │ │ │ │ ├── index.html │ │ │ │ │ ├── shell.js │ │ │ │ │ └── test.js │ │ │ │ ├── sieve │ │ │ │ │ ├── index.html │ │ │ │ │ └── sieve.js │ │ │ │ ├── slim │ │ │ │ │ ├── index.html │ │ │ │ │ ├── slim.js │ │ │ │ │ └── test.js │ │ │ │ ├── smalltalk │ │ │ │ │ ├── index.html │ │ │ │ │ └── smalltalk.js │ │ │ │ ├── smarty │ │ │ │ │ ├── index.html │ │ │ │ │ └── smarty.js │ │ │ │ ├── smartymixed │ │ │ │ │ ├── index.html │ │ │ │ │ └── smartymixed.js │ │ │ │ ├── solr │ │ │ │ │ ├── index.html │ │ │ │ │ └── solr.js │ │ │ │ ├── soy │ │ │ │ │ ├── index.html │ │ │ │ │ └── soy.js │ │ │ │ ├── sparql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sparql.js │ │ │ │ ├── spreadsheet │ │ │ │ │ ├── index.html │ │ │ │ │ └── spreadsheet.js │ │ │ │ ├── sql │ │ │ │ │ ├── index.html │ │ │ │ │ └── sql.js │ │ │ │ ├── stex │ │ │ │ │ ├── index.html │ │ │ │ │ ├── stex.js │ │ │ │ │ └── test.js │ │ │ │ ├── stylus │ │ │ │ │ ├── index.html │ │ │ │ │ └── stylus.js │ │ │ │ ├── tcl │ │ │ │ │ ├── index.html │ │ │ │ │ └── tcl.js │ │ │ │ ├── textile │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── textile.js │ │ │ │ ├── tiddlywiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ └── tiddlywiki.js │ │ │ │ ├── tiki │ │ │ │ │ ├── index.html │ │ │ │ │ ├── tiki.css │ │ │ │ │ └── tiki.js │ │ │ │ ├── toml │ │ │ │ │ ├── index.html │ │ │ │ │ └── toml.js │ │ │ │ ├── tornado │ │ │ │ │ ├── index.html │ │ │ │ │ └── tornado.js │ │ │ │ ├── turtle │ │ │ │ │ ├── index.html │ │ │ │ │ └── turtle.js │ │ │ │ ├── vb │ │ │ │ │ ├── index.html │ │ │ │ │ └── vb.js │ │ │ │ ├── vbscript │ │ │ │ │ ├── index.html │ │ │ │ │ └── vbscript.js │ │ │ │ ├── velocity │ │ │ │ │ ├── index.html │ │ │ │ │ └── velocity.js │ │ │ │ ├── verilog │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── verilog.js │ │ │ │ ├── xml │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xml.js │ │ │ │ ├── xquery │ │ │ │ │ ├── index.html │ │ │ │ │ ├── test.js │ │ │ │ │ └── xquery.js │ │ │ │ ├── yaml │ │ │ │ │ ├── index.html │ │ │ │ │ └── yaml.js │ │ │ │ └── z80 │ │ │ │ │ ├── index.html │ │ │ │ │ └── z80.js │ │ │ ├── modes.min.js │ │ │ ├── package.json │ │ │ └── theme │ │ │ │ ├── 3024-day.css │ │ │ │ ├── 3024-night.css │ │ │ │ ├── ambiance-mobile.css │ │ │ │ ├── ambiance.css │ │ │ │ ├── base16-dark.css │ │ │ │ ├── base16-light.css │ │ │ │ ├── blackboard.css │ │ │ │ ├── cobalt.css │ │ │ │ ├── colorforth.css │ │ │ │ ├── eclipse.css │ │ │ │ ├── elegant.css │ │ │ │ ├── erlang-dark.css │ │ │ │ ├── lesser-dark.css │ │ │ │ ├── mbo.css │ │ │ │ ├── mdn-like.css │ │ │ │ ├── midnight.css │ │ │ │ ├── monokai.css │ │ │ │ ├── neat.css │ │ │ │ ├── neo.css │ │ │ │ ├── night.css │ │ │ │ ├── paraiso-dark.css │ │ │ │ ├── paraiso-light.css │ │ │ │ ├── pastel-on-dark.css │ │ │ │ ├── rubyblue.css │ │ │ │ ├── solarized.css │ │ │ │ ├── the-matrix.css │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ ├── twilight.css │ │ │ │ ├── vibrant-ink.css │ │ │ │ ├── xq-dark.css │ │ │ │ ├── xq-light.css │ │ │ │ └── zenburn.css │ │ ├── flowchart.min.js │ │ ├── jquery.flowchart.min.js │ │ ├── marked.min.js │ │ ├── prettify.min.js │ │ ├── raphael.min.js │ │ ├── sequence-diagram.min.js │ │ └── underscore.min.js │ └── plugins │ │ ├── code-block-dialog │ │ └── code-block-dialog.js │ │ ├── emoji-dialog │ │ ├── emoji-dialog.js │ │ └── emoji.json │ │ ├── goto-line-dialog │ │ └── goto-line-dialog.js │ │ ├── help-dialog │ │ ├── help-dialog.js │ │ └── help.md │ │ ├── html-entities-dialog │ │ ├── html-entities-dialog.js │ │ └── html-entities.json │ │ ├── image-dialog │ │ └── image-dialog.js │ │ ├── link-dialog │ │ └── link-dialog.js │ │ ├── plugin-template.js │ │ ├── preformatted-text-dialog │ │ └── preformatted-text-dialog.js │ │ ├── reference-link-dialog │ │ └── reference-link-dialog.js │ │ ├── table-dialog │ │ └── table-dialog.js │ │ └── test-plugin │ │ └── test-plugin.js │ ├── index │ ├── css │ │ ├── flaghome.css │ │ └── post.css │ └── js │ │ └── page.js │ ├── jquery.min.js │ ├── login │ └── css │ │ ├── icon.css │ │ └── style.css │ └── mdui │ ├── css │ ├── mdui.min.css │ └── mdui.min.css.map │ ├── fonts │ └── roboto │ │ ├── LICENSE.txt │ │ ├── Roboto-Black.woff │ │ ├── Roboto-Black.woff2 │ │ ├── Roboto-BlackItalic.woff │ │ ├── Roboto-BlackItalic.woff2 │ │ ├── Roboto-Bold.woff │ │ ├── Roboto-Bold.woff2 │ │ ├── Roboto-BoldItalic.woff │ │ ├── Roboto-BoldItalic.woff2 │ │ ├── Roboto-Light.woff │ │ ├── Roboto-Light.woff2 │ │ ├── Roboto-LightItalic.woff │ │ ├── Roboto-LightItalic.woff2 │ │ ├── Roboto-Medium.woff │ │ ├── Roboto-Medium.woff2 │ │ ├── Roboto-MediumItalic.woff │ │ ├── Roboto-MediumItalic.woff2 │ │ ├── Roboto-Regular.woff │ │ ├── Roboto-Regular.woff2 │ │ ├── Roboto-RegularItalic.woff │ │ ├── Roboto-RegularItalic.woff2 │ │ ├── Roboto-Thin.woff │ │ ├── Roboto-Thin.woff2 │ │ ├── Roboto-ThinItalic.woff │ │ └── Roboto-ThinItalic.woff2 │ ├── icons │ └── material-icons │ │ ├── LICENSE.txt │ │ ├── MaterialIcons-Regular.ijmap │ │ ├── MaterialIcons-Regular.woff │ │ └── MaterialIcons-Regular.woff2 │ └── js │ ├── mdui.min.js │ └── mdui.min.js.map ├── route └── route.php ├── think ├── thinkphp ├── .gitignore ├── .htaccess ├── CONTRIBUTING.md ├── LICENSE.txt ├── README.md ├── base.php ├── composer.json ├── convention.php ├── helper.php ├── lang │ └── zh-cn.php ├── library │ ├── think │ │ ├── App.php │ │ ├── Build.php │ │ ├── Cache.php │ │ ├── Collection.php │ │ ├── Config.php │ │ ├── Console.php │ │ ├── Container.php │ │ ├── Controller.php │ │ ├── Cookie.php │ │ ├── Db.php │ │ ├── Debug.php │ │ ├── Env.php │ │ ├── Error.php │ │ ├── Exception.php │ │ ├── Facade.php │ │ ├── File.php │ │ ├── Hook.php │ │ ├── Lang.php │ │ ├── Loader.php │ │ ├── Log.php │ │ ├── Middleware.php │ │ ├── Model.php │ │ ├── Paginator.php │ │ ├── Process.php │ │ ├── Request.php │ │ ├── Response.php │ │ ├── Route.php │ │ ├── Session.php │ │ ├── Template.php │ │ ├── Url.php │ │ ├── Validate.php │ │ ├── View.php │ │ ├── cache │ │ │ ├── Driver.php │ │ │ └── driver │ │ │ │ ├── File.php │ │ │ │ ├── Lite.php │ │ │ │ ├── Memcache.php │ │ │ │ ├── Memcached.php │ │ │ │ ├── Redis.php │ │ │ │ ├── Sqlite.php │ │ │ │ ├── Wincache.php │ │ │ │ └── Xcache.php │ │ ├── config │ │ │ └── driver │ │ │ │ ├── Ini.php │ │ │ │ ├── Json.php │ │ │ │ └── Xml.php │ │ ├── console │ │ │ ├── Command.php │ │ │ ├── Input.php │ │ │ ├── LICENSE │ │ │ ├── Output.php │ │ │ ├── Table.php │ │ │ ├── bin │ │ │ │ ├── README.md │ │ │ │ └── hiddeninput.exe │ │ │ ├── command │ │ │ │ ├── Build.php │ │ │ │ ├── Clear.php │ │ │ │ ├── Help.php │ │ │ │ ├── Lists.php │ │ │ │ ├── Make.php │ │ │ │ ├── RouteList.php │ │ │ │ ├── RunServer.php │ │ │ │ ├── Version.php │ │ │ │ ├── make │ │ │ │ │ ├── Command.php │ │ │ │ │ ├── Controller.php │ │ │ │ │ ├── Middleware.php │ │ │ │ │ ├── Model.php │ │ │ │ │ ├── Validate.php │ │ │ │ │ └── stubs │ │ │ │ │ │ ├── command.stub │ │ │ │ │ │ ├── controller.api.stub │ │ │ │ │ │ ├── controller.plain.stub │ │ │ │ │ │ ├── controller.stub │ │ │ │ │ │ ├── middleware.stub │ │ │ │ │ │ ├── model.stub │ │ │ │ │ │ └── validate.stub │ │ │ │ └── optimize │ │ │ │ │ ├── Autoload.php │ │ │ │ │ ├── Config.php │ │ │ │ │ ├── Route.php │ │ │ │ │ └── Schema.php │ │ │ ├── input │ │ │ │ ├── Argument.php │ │ │ │ ├── Definition.php │ │ │ │ └── Option.php │ │ │ └── output │ │ │ │ ├── Ask.php │ │ │ │ ├── Descriptor.php │ │ │ │ ├── Formatter.php │ │ │ │ ├── Question.php │ │ │ │ ├── descriptor │ │ │ │ └── Console.php │ │ │ │ ├── driver │ │ │ │ ├── Buffer.php │ │ │ │ ├── Console.php │ │ │ │ └── Nothing.php │ │ │ │ ├── formatter │ │ │ │ ├── Stack.php │ │ │ │ └── Style.php │ │ │ │ └── question │ │ │ │ ├── Choice.php │ │ │ │ └── Confirmation.php │ │ ├── db │ │ │ ├── Builder.php │ │ │ ├── Connection.php │ │ │ ├── Expression.php │ │ │ ├── Query.php │ │ │ ├── Where.php │ │ │ ├── builder │ │ │ │ ├── Mysql.php │ │ │ │ ├── Pgsql.php │ │ │ │ ├── Sqlite.php │ │ │ │ └── Sqlsrv.php │ │ │ ├── connector │ │ │ │ ├── Mysql.php │ │ │ │ ├── Pgsql.php │ │ │ │ ├── Sqlite.php │ │ │ │ ├── Sqlsrv.php │ │ │ │ └── pgsql.sql │ │ │ └── exception │ │ │ │ ├── BindParamException.php │ │ │ │ ├── DataNotFoundException.php │ │ │ │ └── ModelNotFoundException.php │ │ ├── debug │ │ │ ├── Console.php │ │ │ └── Html.php │ │ ├── exception │ │ │ ├── ClassNotFoundException.php │ │ │ ├── DbException.php │ │ │ ├── ErrorException.php │ │ │ ├── Handle.php │ │ │ ├── HttpException.php │ │ │ ├── HttpResponseException.php │ │ │ ├── PDOException.php │ │ │ ├── RouteNotFoundException.php │ │ │ ├── TemplateNotFoundException.php │ │ │ ├── ThrowableError.php │ │ │ └── ValidateException.php │ │ ├── facade │ │ │ ├── App.php │ │ │ ├── Build.php │ │ │ ├── Cache.php │ │ │ ├── Config.php │ │ │ ├── Cookie.php │ │ │ ├── Debug.php │ │ │ ├── Env.php │ │ │ ├── Hook.php │ │ │ ├── Lang.php │ │ │ ├── Log.php │ │ │ ├── Middleware.php │ │ │ ├── Request.php │ │ │ ├── Response.php │ │ │ ├── Route.php │ │ │ ├── Session.php │ │ │ ├── Template.php │ │ │ ├── Url.php │ │ │ ├── Validate.php │ │ │ └── View.php │ │ ├── log │ │ │ └── driver │ │ │ │ ├── File.php │ │ │ │ └── Socket.php │ │ ├── model │ │ │ ├── Collection.php │ │ │ ├── Pivot.php │ │ │ ├── Relation.php │ │ │ ├── concern │ │ │ │ ├── Attribute.php │ │ │ │ ├── Conversion.php │ │ │ │ ├── ModelEvent.php │ │ │ │ ├── RelationShip.php │ │ │ │ ├── SoftDelete.php │ │ │ │ └── TimeStamp.php │ │ │ └── relation │ │ │ │ ├── BelongsTo.php │ │ │ │ ├── BelongsToMany.php │ │ │ │ ├── HasMany.php │ │ │ │ ├── HasManyThrough.php │ │ │ │ ├── HasOne.php │ │ │ │ ├── MorphMany.php │ │ │ │ ├── MorphOne.php │ │ │ │ ├── MorphTo.php │ │ │ │ └── OneToOne.php │ │ ├── paginator │ │ │ └── driver │ │ │ │ ├── Bootstrap.php │ │ │ │ └── BootstrapDetailed.php │ │ ├── process │ │ │ ├── Builder.php │ │ │ ├── Utils.php │ │ │ ├── exception │ │ │ │ ├── Faild.php │ │ │ │ ├── Failed.php │ │ │ │ └── Timeout.php │ │ │ └── pipes │ │ │ │ ├── Pipes.php │ │ │ │ ├── Unix.php │ │ │ │ └── Windows.php │ │ ├── response │ │ │ ├── Download.php │ │ │ ├── Json.php │ │ │ ├── Jsonp.php │ │ │ ├── Jump.php │ │ │ ├── Redirect.php │ │ │ ├── View.php │ │ │ └── Xml.php │ │ ├── route │ │ │ ├── AliasRule.php │ │ │ ├── Dispatch.php │ │ │ ├── Domain.php │ │ │ ├── Resource.php │ │ │ ├── Rule.php │ │ │ ├── RuleGroup.php │ │ │ ├── RuleItem.php │ │ │ ├── RuleName.php │ │ │ └── dispatch │ │ │ │ ├── Callback.php │ │ │ │ ├── Controller.php │ │ │ │ ├── Module.php │ │ │ │ ├── Redirect.php │ │ │ │ ├── Response.php │ │ │ │ ├── Url.php │ │ │ │ └── View.php │ │ ├── session │ │ │ └── driver │ │ │ │ ├── Memcache.php │ │ │ │ ├── Memcached.php │ │ │ │ └── Redis.php │ │ ├── template │ │ │ ├── TagLib.php │ │ │ ├── driver │ │ │ │ └── File.php │ │ │ └── taglib │ │ │ │ └── Cx.php │ │ ├── validate │ │ │ └── ValidateRule.php │ │ └── view │ │ │ └── driver │ │ │ ├── Php.php │ │ │ └── Think.php │ └── traits │ │ └── controller │ │ └── Jump.php ├── logo.png ├── phpunit.xml.dist └── tpl │ ├── default_index.tpl │ ├── dispatch_jump.tpl │ ├── page_trace.tpl │ └── think_exception.tpl └── vendor ├── autoload.php ├── composer ├── ClassLoader.php ├── InstalledVersions.php ├── LICENSE ├── autoload_classmap.php ├── autoload_files.php ├── autoload_namespaces.php ├── autoload_psr4.php ├── autoload_real.php ├── autoload_static.php ├── installed.json ├── installed.php └── platform_check.php ├── erusev └── parsedown │ ├── LICENSE.txt │ ├── Parsedown.php │ ├── README.md │ └── composer.json └── topthink ├── think-captcha ├── .gitignore ├── LICENSE ├── README.md ├── assets │ ├── bgs │ │ ├── 1.jpg │ │ ├── 2.jpg │ │ ├── 3.jpg │ │ ├── 4.jpg │ │ ├── 5.jpg │ │ ├── 6.jpg │ │ ├── 7.jpg │ │ └── 8.jpg │ ├── ttfs │ │ ├── 1.ttf │ │ ├── 2.ttf │ │ ├── 3.ttf │ │ ├── 4.ttf │ │ ├── 5.ttf │ │ └── 6.ttf │ └── zhttfs │ │ └── 1.ttf ├── composer.json └── src │ ├── Captcha.php │ ├── CaptchaController.php │ └── helper.php └── think-installer ├── .gitignore ├── composer.json └── src ├── LibraryInstaller.php ├── Plugin.php ├── Promise.php ├── ThinkExtend.php ├── ThinkFramework.php └── ThinkTesting.php /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /.vscode 3 | *.log 4 | .env 5 | .DS_Store 6 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Options +FollowSymlinks -Multiviews 3 | RewriteEngine On 4 | 5 | RewriteCond %{REQUEST_FILENAME} !-d 6 | RewriteCond %{REQUEST_FILENAME} !-f 7 | RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] 8 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 I Am I 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 食用方法 2 | 3 | 此程序基于ThinkPHP5.1 PHP版本需`7.0-7.4`之间。 4 | 5 | `Nginx`请设置如下`伪静态` `Apache`无需配置 运行目录`默认`即可 6 | ``` 7 | location / { 8 | if (!-e $request_filename){ 9 | rewrite ^(.*)$ /index.php?s=$1 last; break; 10 | } 11 | } 12 | ``` 13 | 14 | 将程序上传至网站根目录,访问`域名/install`进行安装操作 15 | 16 | 操作指南请前往:https://github.com/5ime/API-Admin/wiki 17 | 18 | Bug反馈请提交`Issues` 19 | 20 | # 更新日志 21 | 22 | - 2020-4-1 提交API-Admin beta版 新增`随机动漫图API` 23 | - 2020-4-7 新增`抖音无水印解析API`,`IP签名图API`,`免KEY加群API` 24 | - 2020-4-15 新增安装页面/优化部分代码 新增`网站ICO获取API`,`网站icp备案查询API`,`历史上的今天API`,`QQ头像获取API`,`QQ在线状态查询API`,`服务器信息获取API`,`网站标题获取API`,`爱站权重获取API`,`城市天气获取API`,`随机一言API` 25 | - 2020-4-20 修复移动端菜单栏不显示/优化部分代码 26 | - 2020-4-22 更新首页样式 27 | - 2020-4-23 修复已知bug 新增`皮皮虾无水印解析API`,`每日Bing获取API`,`QQ短网址获取API`,`垃圾分类查询API`,`手机号归属地查询API`,`申通快递查询API` 28 | - 2020-8-4 修复部分bug,**建议重新安装** 29 | - 2020-8-21 修复已知bug 新增`蓝奏云直链获取API`,`火山小视频去水印API`,`360/搜狗/百度收录量查询API`,`短网址还原API` 30 | - 2020-9-27 修复部分已知失效API 如有其他失效API请提交Issues 31 | - 2021-1-29 优化部分代码,后台新增API总调用数统计、API搜索功能、API分类功能、程序更新检测功能、API列表分页... 32 | - 开源了聚合短视频去水印解析API https://github.com/5ime/video_spider 33 | - 2021-8-22 修复几处错误 34 | - 2022-1-6 大更新 35 | 36 | # 免责声明 37 | 38 | 本仓库只为学习研究,如涉及侵犯个人或者团体利益,请与我取得联系,我将主动删除一切相关资料,谢谢! 39 | -------------------------------------------------------------------------------- /api/bing/index.php: -------------------------------------------------------------------------------- 1 | (.+?)<\/url>/ies",$str,$matches)){ 7 | $imgurl='http://cn.bing.com'.$matches[1]; 8 | } 9 | if($imgurl){ 10 | header('Content-Type: image/JPEG'); 11 | @ob_end_clean(); 12 | @readfile($imgurl); 13 | @flush(); @ob_flush(); 14 | exit(); 15 | }else{ 16 | exit('error'); 17 | } 18 | ?> -------------------------------------------------------------------------------- /api/black.data: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/api/black.data -------------------------------------------------------------------------------- /api/dwzrec/index.php: -------------------------------------------------------------------------------- 1 | 202, 8 | "msg"=>"网址不能为空" 9 | ],JSON_UNESCAPED_UNICODE)); 10 | /* 11 | * 请求 12 | */ 13 | $json = myCurl($api); 14 | /* 15 | * 判断 16 | */ 17 | if($json){ 18 | echo json_encode(array('code'=>200,'dwz'=>$api,'rec'=>$json),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 19 | } else { 20 | echo json_encode(array('code'=>201,'msg'=>'短网址还原失败'),JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 21 | } 22 | /*** 23 | * 万能短网址还原函数 24 | * @param $url 短网址 25 | * @return 原始网址 | 空(还原失败或非短网址) 26 | */ 27 | function myCurl($url) { 28 | $curl = curl_init(); 29 | curl_setopt($curl, CURLOPT_URL, $url); 30 | curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 31 | curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0'); 32 | curl_setopt($curl, CURLOPT_HEADER, true); 33 | curl_setopt($curl, CURLOPT_NOBODY, false); 34 | curl_setopt($curl, CURLOPT_TIMEOUT, 15); 35 | curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); 36 | curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); 37 | curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); 38 | $data = curl_exec($curl); 39 | $curlInfo = curl_getinfo($curl); 40 | curl_close($curl); 41 | if($curlInfo['http_code'] == 301 || $curlInfo['http_code'] == 302) { 42 | return $curlInfo['redirect_url']; 43 | } 44 | return ''; 45 | } -------------------------------------------------------------------------------- /api/ico/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/icp/index.php: -------------------------------------------------------------------------------- 1 | (.*?)<\/td>/', $json, $mingcheng); 16 | //主办单位性质 17 | preg_match_all('/(.*?)<\/td>/', $json, $xingzhi); 18 | //网站备案/许可证号 网站名称 19 | preg_match_all('/(.*?)<\/td>/', $json, $beianhao); 20 | //网站首页 21 | preg_match_all('/(.*?)<\/td>/', $json, $index); 22 | //审核时间 23 | preg_match_all('/(.*?)<\/td>/', $json, $time); 24 | //var_dump($index); 25 | if(strpos($beianhao[1][1],'--') !== false){ 26 | $Json = array( 27 | 'code' => 202, 28 | 'msg' => '未查询到备案信息', 29 | ); 30 | }else{ 31 | $Json = array( 32 | "code" => 200, 33 | "data" => array( 34 | "name" => $mingcheng[1][0], 35 | "nature" => $xingzhi[1][0], 36 | "icp" => $beianhao[1][0], 37 | "sitename" => $beianhao[1][1], 38 | "index" => $index[1][0], 39 | "time" => $time[1][0], 40 | ) 41 | ); 42 | } 43 | $Json = json_encode($Json,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 44 | echo stripslashes($Json); 45 | return $Json; 46 | ?> 47 | -------------------------------------------------------------------------------- /api/ipinfo/msyh.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/api/ipinfo/msyh.ttf -------------------------------------------------------------------------------- /api/ipinfo/xhxh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/api/ipinfo/xhxh.jpg -------------------------------------------------------------------------------- /api/qqimg/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/qqzx/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /api/serverinfo/index.php: -------------------------------------------------------------------------------- 1 | "请输入网址!" 9 | ))); 10 | function span($str){ 11 | $result = substr($str,strripos($str,"0\">")+3); 12 | $result = substr($result,0,strrpos($result,"")); 13 | return $result; 14 | } 15 | $str = file_get_contents("http://ip.tool.chinaz.com/".$_GET['url']); 16 | preg_match_all("/(.*?)<\/span>/ism", $str, $matches) ; 17 | $arr = array_unique($matches); 18 | if (span($arr[0][7])==""){ 19 | exit("{\"msg\":\"查询失败\"}"); 20 | }else{ 21 | exit(json_encode(array( 22 | "msg"=>"ok", 23 | "host"=>span($arr[0][7]), 24 | "ip"=>span($arr[0][8]), 25 | "position"=>span($arr[0][10]) 26 | ))); 27 | } -------------------------------------------------------------------------------- /api/st/index.php: -------------------------------------------------------------------------------- 1 | -1,"msg"=>urlencode("请输入订单号!"))))); 8 | $json = json_decode(file_get_contents("https://hdgateway.zto.com/WayBill_GetDetail?billCode=".$_GET['num'])); 9 | if ($json->message!=="快递信息查询成功"){ 10 | $output = array("code"=>-1,"msg"=>urlencode("查询失败")); 11 | } else { 12 | $arr = $json->result->logisticsRecord; 13 | foreach ($arr as $k=>$v){ 14 | foreach ($v as $value){ 15 | $arrl[]=array( 16 | "time"=>urlencode($value->scanDate), 17 | "signMan"=>urlencode($value->signMan), 18 | "operateUserPhone"=>urlencode($value->operateUserPhone), 19 | "date"=>urlencode($value->date), 20 | "operateUser"=>urlencode($value->operateUser), 21 | "scanType"=>urlencode($value->scanType), 22 | "stateDescription"=>urlencode($value->stateDescription) 23 | ); 24 | } 25 | } 26 | $output = array( 27 | "code"=>1, 28 | "msg"=>urlencode("查询成功!"), 29 | "logisticsRecord"=>$arrl, 30 | "billPrescription"=>urlencode($json->result->billPrescription), 31 | "billCode"=>$json->result->billCode, 32 | "author"=>urlencode("Tenapi.cn") 33 | ); 34 | } 35 | exit(urldecode(json_encode($output))); -------------------------------------------------------------------------------- /api/test/index.php: -------------------------------------------------------------------------------- 1 | 8 | 1.升级版本号1.4>>2.0
9 | 2.修复样式错误问题
10 | 3.重写前端部分页面
11 | 4.重构全部后端代码
12 | 5.新增发布文章功能
13 | 6.新增接口TOP10功能
14 | 7.新增登录成功告警功能
15 | 8.新增Referer和IP黑名单
16 | 9.新增自定义CSS和Js功能
17 | 10.后端页面改为Ajax实时渲染
18 | 11.修复高并发下统计重置问题
19 | NaN.想起来在写... 20 | "; 21 | 22 | $Json = array( 23 | 'code' => 200, 24 | 'version' => 1.2, 25 | 'content' => urlencode($content), 26 | 'download' => 'https://github.com/5ime/adpi-admin' 27 | ); 28 | $Json = json_encode($Json,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 29 | echo stripslashes($Json); 30 | return $Json; 31 | -------------------------------------------------------------------------------- /api/title/index.php: -------------------------------------------------------------------------------- 1 | (.*?)<\/title>/',$info,$title); 10 | preg_match('/name=\"description\" content=\"(.*?)\"/',$info,$description); 11 | preg_match('/name=\"keywords\" content=\"(.*?)\"/',$info,$keywords); 12 | if($title == NULL){ 13 | $Json = array( 14 | "code"=> 202, 15 | 'msg' => '获取失败' 16 | ); 17 | }else{ 18 | $Json = array( 19 | "code"=> 200, 20 | 'data' => array( 21 | "title"=>@$title[1], 22 | "description"=>@$description[1], 23 | "keywords"=>@$keywords[1], 24 | ) 25 | ); 26 | } 27 | $Json = json_encode($Json,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE); 28 | echo stripslashes($Json); 29 | return $Json; 30 | ?> 31 | -------------------------------------------------------------------------------- /api/wether/index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /application/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /application/admin/view/api/apiRequest.html: -------------------------------------------------------------------------------- 1 | {include file="header" title="$title" /} {include file="footer" title="$title" /} -------------------------------------------------------------------------------- /application/admin/view/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /application/command.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | return []; 13 | -------------------------------------------------------------------------------- /application/provider.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // 应用容器绑定定义 13 | return [ 14 | ]; 15 | -------------------------------------------------------------------------------- /application/tags.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // 应用行为扩展定义文件 13 | return [ 14 | // 应用初始化 15 | 'app_init' => [], 16 | // 应用开始 17 | 'app_begin' => [], 18 | // 模块初始化 19 | 'module_init' => [], 20 | // 操作开始执行 21 | 'action_begin' => [], 22 | // 视图内容过滤 23 | 'view_filter' => [], 24 | // 日志写入 25 | 'log_write' => [], 26 | // 应用结束 27 | 'app_end' => [], 28 | ]; 29 | -------------------------------------------------------------------------------- /build.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | return [ 13 | // 生成应用公共文件 14 | '__file__' => ['common.php'], 15 | 16 | // 定义demo模块的自动生成 (按照实际定义的文件名生成) 17 | 'demo' => [ 18 | '__file__' => ['common.php'], 19 | '__dir__' => ['behavior', 'controller', 'model', 'view'], 20 | 'controller' => ['Index', 'Test', 'UserType'], 21 | 'model' => ['User', 'UserType'], 22 | 'view' => ['index/index'], 23 | ], 24 | 25 | // 其他更多的模块定义 26 | ]; 27 | -------------------------------------------------------------------------------- /config/cache.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 缓存设置 14 | // +---------------------------------------------------------------------- 15 | 16 | return [ 17 | // 驱动方式 18 | 'type' => 'File', 19 | // 缓存保存目录 20 | 'path' => '', 21 | // 缓存前缀 22 | 'prefix' => '', 23 | // 缓存有效期 0表示永久缓存 24 | 'expire' => 0, 25 | ]; 26 | -------------------------------------------------------------------------------- /config/console.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 控制台配置 14 | // +---------------------------------------------------------------------- 15 | return [ 16 | 'name' => 'Think Console', 17 | 'version' => '0.1', 18 | 'user' => null, 19 | 'auto_path' => env('app_path') . 'command' . DIRECTORY_SEPARATOR, 20 | ]; 21 | -------------------------------------------------------------------------------- /config/cookie.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | Cookie设置 14 | // +---------------------------------------------------------------------- 15 | return [ 16 | // cookie 名称前缀 17 | 'prefix' => '', 18 | // cookie 保存时间 19 | 'expire' => 0, 20 | // cookie 保存路径 21 | 'path' => '/', 22 | // cookie 有效域名 23 | 'domain' => '', 24 | // cookie 启用安全传输 25 | 'secure' => false, 26 | // httponly设置 27 | 'httponly' => '', 28 | // 是否使用 setcookie 29 | 'setcookie' => true, 30 | ]; 31 | -------------------------------------------------------------------------------- /config/log.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 日志设置 14 | // +---------------------------------------------------------------------- 15 | return [ 16 | // 日志记录方式,内置 file socket 支持扩展 17 | 'type' => 'File', 18 | // 日志保存目录 19 | 'path' => '', 20 | // 日志记录级别 21 | 'level' => [], 22 | // 单文件日志写入 23 | 'single' => false, 24 | // 独立日志级别 25 | 'apart_level' => [], 26 | // 最大日志文件数量 27 | 'max_files' => 0, 28 | // 是否关闭日志写入 29 | 'close' => false, 30 | ]; 31 | -------------------------------------------------------------------------------- /config/middleware.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 中间件配置 14 | // +---------------------------------------------------------------------- 15 | return [ 16 | // 默认中间件命名空间 17 | 'default_namespace' => 'app\\http\\middleware\\', 18 | ]; 19 | -------------------------------------------------------------------------------- /config/session.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 会话设置 14 | // +---------------------------------------------------------------------- 15 | 16 | return [ 17 | 'id' => '', 18 | // SESSION_ID的提交变量,解决flash上传跨域 19 | 'var_session_id' => '', 20 | // SESSION 前缀 21 | 'prefix' => 'think', 22 | // 驱动方式 支持redis memcache memcached 23 | 'type' => '', 24 | // 是否自动开启 SESSION 25 | 'auto_start' => true, 26 | ]; 27 | -------------------------------------------------------------------------------- /config/template.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | 模板设置 14 | // +---------------------------------------------------------------------- 15 | 16 | return [ 17 | // 模板引擎类型 支持 php think 支持扩展 18 | 'type' => 'Think', 19 | // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写 3 保持操作方法 20 | 'auto_rule' => 1, 21 | // 模板路径 22 | 'view_path' => '', 23 | // 模板后缀 24 | 'view_suffix' => 'html', 25 | // 模板文件名分隔符 26 | 'view_depr' => DIRECTORY_SEPARATOR, 27 | // 模板引擎普通标签开始标记 28 | 'tpl_begin' => '{', 29 | // 模板引擎普通标签结束标记 30 | 'tpl_end' => '}', 31 | // 标签库标签开始标记 32 | 'taglib_begin' => '{', 33 | // 标签库标签结束标记 34 | 'taglib_end' => '}', 35 | ]; 36 | -------------------------------------------------------------------------------- /config/trace.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // +---------------------------------------------------------------------- 13 | // | Trace设置 开启 app_trace 后 有效 14 | // +---------------------------------------------------------------------- 15 | return [ 16 | // 内置Html Console 支持扩展 17 | 'type' => 'Html', 18 | ]; 19 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // [ 应用入口文件 ] 13 | namespace think; 14 | 15 | header("Access-Control-Allow-Origin:*"); 16 | header("Access-Control-Allow-Methods:GET, POST, OPTIONS, DELETE"); 17 | header("Access-Control-Allow-Headers:DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type, Accept-Language, Origin, Accept-Encoding"); 18 | 19 | // 加载基础文件 20 | require __DIR__ . '/thinkphp/base.php'; 21 | 22 | // 支持事先使用静态方法设置Request对象和Config对象 23 | 24 | // 执行应用并响应 25 | Container::get('app')->run()->send(); 26 | -------------------------------------------------------------------------------- /install/a_welcome.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 开始安装 - 安装协议 6 | 7 | 8 | 9 | 10 | 11 |
12 |
13 |
14 | 15 |
16 |
17 | 18 |
开始安装 19 |
20 |
21 |

安装协议

22 |

本程序完全免费,如果你是花钱购买的,那么恭喜你被骗

23 |

安装完成后请及时修改后台账号、密码和删除install目录

24 |

程序使用文档:https://github.com/5ime/api-admin/wiki

25 |

您在使用中有任何问题请前往:Issues 进行意见反馈。

26 | 同意
27 |
28 |
29 | 30 | 31 | -------------------------------------------------------------------------------- /install/css/install.css: -------------------------------------------------------------------------------- 1 | .layui-main{ 2 | width: 1024px; 3 | margin: 10px auto; 4 | } 5 | .layui-main .site-h1{ 6 | margin-bottom: 20px; 7 | line-height: 60px; 8 | padding-bottom: 10px; 9 | color: #393D49; 10 | border-bottom: 1px solid #eee; 11 | font-size: 28px; 12 | font-weight: 300; 13 | text-align: center; 14 | } 15 | 16 | .layui-elem-quote{ 17 | margin-bottom: 20px; 18 | } 19 | .layui-elem-quote h1{ 20 | font-size: 24px; 21 | font-weight: 300; 22 | margin-bottom: 15px; 23 | } 24 | .btn-box{ 25 | text-align: center; 26 | } 27 | .version{ 28 | color: #555; 29 | font-size: 12px; 30 | margin-left: 10px; 31 | } 32 | @media screen and(max-width: 1024px){ 33 | .layui-main{ 34 | width: 100%; 35 | } 36 | } -------------------------------------------------------------------------------- /install/frame/layui/css/modules/code.css: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:30px;line-height:30px;border-bottom:1px solid #ddd}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #ddd;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none} -------------------------------------------------------------------------------- /install/frame/layui/css/modules/laydate/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/laydate/icon.png -------------------------------------------------------------------------------- /install/frame/layui/css/modules/layer/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/layer/default/icon-ext.png -------------------------------------------------------------------------------- /install/frame/layui/css/modules/layer/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/layer/default/icon.png -------------------------------------------------------------------------------- /install/frame/layui/css/modules/layer/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/layer/default/loading-0.gif -------------------------------------------------------------------------------- /install/frame/layui/css/modules/layer/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/layer/default/loading-1.gif -------------------------------------------------------------------------------- /install/frame/layui/css/modules/layer/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/css/modules/layer/default/loading-2.gif -------------------------------------------------------------------------------- /install/frame/layui/font/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/font/iconfont.eot -------------------------------------------------------------------------------- /install/frame/layui/font/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/font/iconfont.ttf -------------------------------------------------------------------------------- /install/frame/layui/font/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/font/iconfont.woff -------------------------------------------------------------------------------- /install/frame/layui/images/face/0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/0.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/1.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/10.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/10.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/11.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/12.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/12.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/13.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/13.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/14.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/14.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/15.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/15.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/16.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/16.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/17.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/17.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/18.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/18.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/19.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/19.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/2.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/20.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/20.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/21.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/21.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/22.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/22.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/23.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/23.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/24.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/25.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/25.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/26.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/26.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/27.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/27.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/28.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/28.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/29.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/29.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/3.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/30.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/30.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/31.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/31.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/32.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/32.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/33.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/33.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/34.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/34.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/35.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/35.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/36.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/36.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/37.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/37.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/38.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/38.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/39.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/39.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/4.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/4.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/40.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/40.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/41.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/41.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/42.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/42.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/43.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/43.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/44.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/44.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/45.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/45.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/46.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/46.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/47.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/47.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/48.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/49.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/49.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/5.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/50.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/50.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/51.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/51.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/52.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/52.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/53.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/53.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/54.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/54.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/55.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/55.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/56.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/56.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/57.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/57.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/58.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/58.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/59.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/59.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/6.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/6.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/60.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/60.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/61.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/61.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/62.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/62.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/63.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/63.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/64.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/64.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/65.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/65.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/66.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/66.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/67.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/67.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/68.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/68.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/69.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/69.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/7.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/7.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/70.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/70.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/71.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/71.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/8.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/8.gif -------------------------------------------------------------------------------- /install/frame/layui/images/face/9.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/install/frame/layui/images/face/9.gif -------------------------------------------------------------------------------- /install/frame/layui/lay/modules/code.js: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('
  1. '+o.replace(/[\r\t\n]+/g,"
  2. ")+"
"),c.find(">.layui-code-h3")[0]||c.prepend('

'+(c.attr("lay-title")||e.title||"code")+(e.about?'layui.code':"")+"

");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss"); -------------------------------------------------------------------------------- /install/frame/layui/lay/modules/laytpl.js: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},n={exp:function(e){return new RegExp(e,"g")},query:function(e,n,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return c((n||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""")},error:function(e,r){var n="Laytpl Error:";return"object"==typeof console&&console.error(n+e+"\n"+(r||"")),n+e}},c=n.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=c("^"+r.open+"#",""),l=c(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(c(r.open+"#"),r.open+"# ").replace(c(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(/(?="|')/g,"\\").replace(n.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(n.query(1),function(e){var n='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(c(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),n='"+_escape_('),n+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,n.escape)}catch(u){return delete o.cache,n.error(u,p)}},t.pt.render=function(e,r){var c,t=this;return e?(c=t.cache?t.cache(e,n.escape):t.parse(t.tpl,e),r?void r(c):c):n.error("no data")};var o=function(e){return"string"!=typeof e?n.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var n in e)r[n]=e[n]},o.v="1.2.0",e("laytpl",o)}); -------------------------------------------------------------------------------- /install/frame/layui/lay/modules/util.js: -------------------------------------------------------------------------------- 1 | /** layui-v1.0.9_rls MIT License By http://www.layui.com */ 2 | ;layui.define("jquery",function(l){"use strict";var o=layui.jquery,i={fixbar:function(l){l=l||{},l.bgcolor=l.bgcolor?"background-color:"+l.bgcolor:"";var i,a,c="layui-fixbar-top",t=[l.bar1===!0?"":l.bar1,l.bar2===!0?"":l.bar2,""],r=o(['"].join("")),e=r.find("."+c),s=function(){var i=o(document).scrollTop();i>=(l.showHeight||200)?a||(e.show(),a=1):a&&(e.hide(),a=0)};o(".layui-fixbar")[0]||("object"==typeof l.css&&r.css(l.css),o("body").append(r),s(),r.find("li").on("click",function(){var i=o(this),a=i.attr("lay-type");"top"===a&&o("html,body").animate({scrollTop:0},200),l.click&&l.click.call(this,a)}),o(document).on("scroll",function(){i&&clearTimeout(i),i=setTimeout(function(){s()},100)}))}};l("util",i)}); -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | Options +FollowSymlinks -Multiviews 3 | RewriteEngine On 4 | 5 | RewriteCond %{REQUEST_FILENAME} !-d 6 | RewriteCond %{REQUEST_FILENAME} !-f 7 | RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 8 | 9 | -------------------------------------------------------------------------------- /public/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/favicon.png -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | // [ 应用入口文件 ] 13 | namespace think; 14 | 15 | // 加载基础文件 16 | require __DIR__ . '/../thinkphp/base.php'; 17 | 18 | // 支持事先使用静态方法设置Request对象和Config对象 19 | 20 | // 执行应用并响应 21 | Container::get('app')->run()->send(); 22 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/router.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | // $Id$ 12 | 13 | if (is_file($_SERVER["DOCUMENT_ROOT"] . $_SERVER["SCRIPT_NAME"])) { 14 | return false; 15 | } else { 16 | require __DIR__ . "/index.php"; 17 | } 18 | -------------------------------------------------------------------------------- /public/static/admin/main.css: -------------------------------------------------------------------------------- 1 | .mdui-appbar{background-color:#fff;box-shadow:0 1px 6px 0 rgb(32 33 36 / 28%)}@media (min-width:1024px){.mdui-drawer{top:64px}}.mdui-drawer .mdui-list-item{padding-left:20px;border-radius:0 50px 50px 0}#drawer{display:flex;flex-direction:column}.mdui-list{flex:1}#drawer .copyright{box-sizing:border-box;width:100%;padding:20px 16px}#drawer .copyright p{margin:0;overflow:hidden;color:rgba(0,0,0,.38);font-size:13px;line-height:20px;white-space:nowrap;text-overflow:ellipsis}#drawer .copyright a{color:rgba(0,0,0,.52);text-decoration:none}.mdui-card{padding:10px;margin:20px 0 20px 0;box-shadow:0 1px 6px 0 rgb(32 33 36 / 28%)}.mdui-spinner{position:fixed;top:calc(50% - 13.5px);left:calc(50% - 13.5px);z-index:1}.loading{display:none;position:fixed;top:-5000px;right:-5000px;bottom:-5000px;left:-5000px;overflow:hidden;background:#ffffff80;opacity:1;z-index:5001}.mdui-menu{top:70px!important}.mdui-textfield-expandable.mdui-textfield-expanded{width:30%}.mdui-dialog{width:40%}.mdui-row-md-4 .mdui-col{text-align:center}.list{margin:20px 0 20px 0;box-shadow:0 1px 6px 0 rgb(32 33 36 / 28%)}.moe-btn{margin:5px}@media screen and (max-width:600px){.min-display{display:none}}td a{cursor:pointer;user-select:none}.mdui-textfield,input{user-select:none}.editormd-preview-container .mdui-table{display:inline-table}.mdui-typo a{color:#000000de}.editormd-fullscreen{z-index:5000}.mdui-select-menu{margin-top:0!important;width:130px!important} -------------------------------------------------------------------------------- /public/static/admin/public.js: -------------------------------------------------------------------------------- 1 | /* 获取url参数 */ 2 | function getQueryVariable(variable) { 3 | var query = window.location.search.substring(1); 4 | var vars = query.split("&"); 5 | for (var i = 0; i < vars.length; i++) { 6 | var pair = vars[i].split("="); 7 | if (pair[0] == variable) { 8 | return pair[1]; 9 | } 10 | } 11 | return (false); 12 | } 13 | 14 | /* 时间戳转换 */ 15 | function getLocalTime(nS) { 16 | return new Date(parseInt(nS) * 1000).toLocaleString(); 17 | } -------------------------------------------------------------------------------- /public/static/doc/css/github-gist.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GitHub Gist Theme 3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | background: white; 9 | padding: 0.5em; 10 | color: #333333; 11 | overflow-x: auto; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-meta { 16 | color: #969896; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-strong, 23 | .hljs-emphasis, 24 | .hljs-quote { 25 | color: #df5000; 26 | } 27 | 28 | .hljs-keyword, 29 | .hljs-selector-tag, 30 | .hljs-type { 31 | color: #a71d5d; 32 | } 33 | 34 | .hljs-literal, 35 | .hljs-symbol, 36 | .hljs-bullet, 37 | .hljs-attribute { 38 | color: #0086b3; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name { 43 | color: #63a35c; 44 | } 45 | 46 | .hljs-tag { 47 | color: #333333; 48 | } 49 | 50 | .hljs-title, 51 | .hljs-attr, 52 | .hljs-selector-id, 53 | .hljs-selector-class, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo { 56 | color: #795da3; 57 | } 58 | 59 | .hljs-addition { 60 | color: #55a532; 61 | background-color: #eaffea; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #bd2c00; 66 | background-color: #ffecec; 67 | } 68 | 69 | .hljs-link { 70 | text-decoration: underline; 71 | } 72 | -------------------------------------------------------------------------------- /public/static/editor/fonts/editormd-logo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/fonts/editormd-logo.ttf -------------------------------------------------------------------------------- /public/static/editor/fonts/editormd-logo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/fonts/editormd-logo.woff -------------------------------------------------------------------------------- /public/static/editor/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/static/editor/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/static/editor/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /public/static/editor/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/loading.gif -------------------------------------------------------------------------------- /public/static/editor/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/loading@2x.gif -------------------------------------------------------------------------------- /public/static/editor/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/loading@3x.gif -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-favicon-16x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-favicon-16x16.ico -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-favicon-24x24.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-favicon-24x24.ico -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-favicon-32x32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-favicon-32x32.ico -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-favicon-48x48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-favicon-48x48.ico -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-favicon-64x64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-favicon-64x64.ico -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-114x114.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-120x120.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-144x144.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-16x16.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-180x180.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-240x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-240x240.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-24x24.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-320x320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-320x320.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-32x32.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-48x48.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-57x57.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-64x64.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-72x72.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/editormd-logo-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/editormd-logo-96x96.png -------------------------------------------------------------------------------- /public/static/editor/images/logos/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/editor/images/logos/vi.png -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2014 by Marijn Haverbeke and others 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/README.md: -------------------------------------------------------------------------------- 1 | # CodeMirror 2 | [![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror) 3 | [![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror) 4 | [Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/) 5 | 6 | CodeMirror is a JavaScript component that provides a code editor in 7 | the browser. When a mode is available for the language you are coding 8 | in, it will color your code, and optionally help with indentation. 9 | 10 | The project page is http://codemirror.net 11 | The manual is at http://codemirror.net/doc/manual.html 12 | The contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md) 13 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/dialog/dialog.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-dialog { 2 | position: absolute; 3 | left: 0; right: 0; 4 | background: white; 5 | z-index: 15; 6 | padding: .1em .8em; 7 | overflow: hidden; 8 | color: #333; 9 | } 10 | 11 | .CodeMirror-dialog-top { 12 | border-bottom: 1px solid #eee; 13 | top: 0; 14 | } 15 | 16 | .CodeMirror-dialog-bottom { 17 | border-top: 1px solid #eee; 18 | bottom: 0; 19 | } 20 | 21 | .CodeMirror-dialog input { 22 | border: none; 23 | outline: none; 24 | background: transparent; 25 | width: 20em; 26 | color: inherit; 27 | font-family: monospace; 28 | } 29 | 30 | .CodeMirror-dialog button { 31 | font-size: 70%; 32 | } 33 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/display/fullscreen.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-fullscreen { 2 | position: fixed; 3 | top: 0; left: 0; right: 0; bottom: 0; 4 | height: auto; 5 | z-index: 9; 6 | } 7 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/display/fullscreen.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineOption("fullScreen", false, function(cm, val, old) { 15 | if (old == CodeMirror.Init) old = false; 16 | if (!old == !val) return; 17 | if (val) setFullscreen(cm); 18 | else setNormal(cm); 19 | }); 20 | 21 | function setFullscreen(cm) { 22 | var wrap = cm.getWrapperElement(); 23 | cm.state.fullScreenRestore = {scrollTop: window.pageYOffset, scrollLeft: window.pageXOffset, 24 | width: wrap.style.width, height: wrap.style.height}; 25 | wrap.style.width = ""; 26 | wrap.style.height = "auto"; 27 | wrap.className += " CodeMirror-fullscreen"; 28 | document.documentElement.style.overflow = "hidden"; 29 | cm.refresh(); 30 | } 31 | 32 | function setNormal(cm) { 33 | var wrap = cm.getWrapperElement(); 34 | wrap.className = wrap.className.replace(/\s*CodeMirror-fullscreen\b/, ""); 35 | document.documentElement.style.overflow = ""; 36 | var info = cm.state.fullScreenRestore; 37 | wrap.style.width = info.width; wrap.style.height = info.height; 38 | window.scrollTo(info.scrollLeft, info.scrollTop); 39 | cm.refresh(); 40 | } 41 | }); 42 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/edit/trailingspace.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | CodeMirror.defineOption("showTrailingSpace", false, function(cm, val, prev) { 13 | if (prev == CodeMirror.Init) prev = false; 14 | if (prev && !val) 15 | cm.removeOverlay("trailingspace"); 16 | else if (!prev && val) 17 | cm.addOverlay({ 18 | token: function(stream) { 19 | for (var l = stream.string.length, i = l; i && /\s/.test(stream.string.charAt(i - 1)); --i) {} 20 | if (i > stream.pos) { stream.pos = i; return null; } 21 | stream.pos = l; 22 | return "trailingspace"; 23 | }, 24 | name: "trailingspace" 25 | }); 26 | }); 27 | }); 28 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/fold/foldgutter.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-foldmarker { 2 | color: blue; 3 | text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, #b9f -1px 1px 2px; 4 | font-family: arial; 5 | line-height: .3; 6 | cursor: pointer; 7 | } 8 | .CodeMirror-foldgutter { 9 | width: .7em; 10 | } 11 | .CodeMirror-foldgutter-open, 12 | .CodeMirror-foldgutter-folded { 13 | cursor: pointer; 14 | } 15 | .CodeMirror-foldgutter-open:after { 16 | content: "\25BE"; 17 | } 18 | .CodeMirror-foldgutter-folded:after { 19 | content: "\25B8"; 20 | } 21 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/hint/show-hint.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-hints { 2 | position: absolute; 3 | z-index: 10; 4 | overflow: hidden; 5 | list-style: none; 6 | 7 | margin: 0; 8 | padding: 2px; 9 | 10 | -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 11 | -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); 12 | box-shadow: 2px 3px 5px rgba(0,0,0,.2); 13 | border-radius: 3px; 14 | border: 1px solid silver; 15 | 16 | background: white; 17 | font-size: 90%; 18 | font-family: monospace; 19 | 20 | max-height: 20em; 21 | overflow-y: auto; 22 | } 23 | 24 | .CodeMirror-hint { 25 | margin: 0; 26 | padding: 0 4px; 27 | border-radius: 2px; 28 | max-width: 19em; 29 | overflow: hidden; 30 | white-space: pre; 31 | color: black; 32 | cursor: pointer; 33 | } 34 | 35 | li.CodeMirror-hint-active { 36 | background: #08f; 37 | color: white; 38 | } 39 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/lint/coffeescript-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on coffeelint.js from http://www.coffeelint.org/js/coffeelint.js 5 | 6 | // declare global: coffeelint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "coffeescript", function(text) { 19 | var found = []; 20 | var parseError = function(err) { 21 | var loc = err.lineNumber; 22 | found.push({from: CodeMirror.Pos(loc-1, 0), 23 | to: CodeMirror.Pos(loc, 0), 24 | severity: err.level, 25 | message: err.message}); 26 | }; 27 | try { 28 | var res = coffeelint.lint(text); 29 | for(var i = 0; i < res.length; i++) { 30 | parseError(res[i]); 31 | } 32 | } catch(e) { 33 | found.push({from: CodeMirror.Pos(e.location.first_line, 0), 34 | to: CodeMirror.Pos(e.location.last_line, e.location.last_column), 35 | severity: 'error', 36 | message: e.message}); 37 | } 38 | return found; 39 | }); 40 | 41 | }); 42 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/lint/css-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on csslint.js from https://github.com/stubbornella/csslint 5 | 6 | // declare global: CSSLint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "css", function(text) { 19 | var found = []; 20 | if (!window.CSSLint) return found; 21 | var results = CSSLint.verify(text), messages = results.messages, message = null; 22 | for ( var i = 0; i < messages.length; i++) { 23 | message = messages[i]; 24 | var startLine = message.line -1, endLine = message.line -1, startCol = message.col -1, endCol = message.col; 25 | found.push({ 26 | from: CodeMirror.Pos(startLine, startCol), 27 | to: CodeMirror.Pos(endLine, endCol), 28 | message: message.message, 29 | severity : message.type 30 | }); 31 | } 32 | return found; 33 | }); 34 | 35 | }); 36 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/lint/json-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // Depends on jsonlint.js from https://github.com/zaach/jsonlint 5 | 6 | // declare global: jsonlint 7 | 8 | (function(mod) { 9 | if (typeof exports == "object" && typeof module == "object") // CommonJS 10 | mod(require("../../lib/codemirror")); 11 | else if (typeof define == "function" && define.amd) // AMD 12 | define(["../../lib/codemirror"], mod); 13 | else // Plain browser env 14 | mod(CodeMirror); 15 | })(function(CodeMirror) { 16 | "use strict"; 17 | 18 | CodeMirror.registerHelper("lint", "json", function(text) { 19 | var found = []; 20 | jsonlint.parseError = function(str, hash) { 21 | var loc = hash.loc; 22 | found.push({from: CodeMirror.Pos(loc.first_line - 1, loc.first_column), 23 | to: CodeMirror.Pos(loc.last_line - 1, loc.last_column), 24 | message: str}); 25 | }; 26 | try { jsonlint.parse(text); } 27 | catch(e) {} 28 | return found; 29 | }); 30 | 31 | }); 32 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/lint/yaml-lint.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | // Depends on js-yaml.js from https://github.com/nodeca/js-yaml 15 | 16 | // declare global: jsyaml 17 | 18 | CodeMirror.registerHelper("lint", "yaml", function(text) { 19 | var found = []; 20 | try { jsyaml.load(text); } 21 | catch(e) { 22 | var loc = e.mark; 23 | found.push({ from: CodeMirror.Pos(loc.line, loc.column), to: CodeMirror.Pos(loc.line, loc.column), message: e.message }); 24 | } 25 | return found; 26 | }); 27 | 28 | }); 29 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/mode/multiplex_test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | CodeMirror.defineMode("markdown_with_stex", function(){ 6 | var inner = CodeMirror.getMode({}, "stex"); 7 | var outer = CodeMirror.getMode({}, "markdown"); 8 | 9 | var innerOptions = { 10 | open: '$', 11 | close: '$', 12 | mode: inner, 13 | delimStyle: 'delim', 14 | innerStyle: 'inner' 15 | }; 16 | 17 | return CodeMirror.multiplexingMode(outer, innerOptions); 18 | }); 19 | 20 | var mode = CodeMirror.getMode({}, "markdown_with_stex"); 21 | 22 | function MT(name) { 23 | test.mode( 24 | name, 25 | mode, 26 | Array.prototype.slice.call(arguments, 1), 27 | 'multiplexing'); 28 | } 29 | 30 | MT( 31 | "stexInsideMarkdown", 32 | "[strong **Equation:**] [delim $][inner&tag \\pi][delim $]"); 33 | })(); 34 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/runmode/colorize.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror"), require("./runmode")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror", "./runmode"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | var isBlock = /^(p|li|div|h\\d|pre|blockquote|td)$/; 15 | 16 | function textContent(node, out) { 17 | if (node.nodeType == 3) return out.push(node.nodeValue); 18 | for (var ch = node.firstChild; ch; ch = ch.nextSibling) { 19 | textContent(ch, out); 20 | if (isBlock.test(node.nodeType)) out.push("\n"); 21 | } 22 | } 23 | 24 | CodeMirror.colorize = function(collection, defaultMode) { 25 | if (!collection) collection = document.body.getElementsByTagName("pre"); 26 | 27 | for (var i = 0; i < collection.length; ++i) { 28 | var node = collection[i]; 29 | var mode = node.getAttribute("data-lang") || defaultMode; 30 | if (!mode) continue; 31 | 32 | var text = []; 33 | textContent(node, text); 34 | node.innerHTML = ""; 35 | CodeMirror.runMode(text.join(""), mode, node); 36 | 37 | node.className += " cm-s-default"; 38 | } 39 | }; 40 | }); 41 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/scroll/simplescrollbars.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div { 2 | position: absolute; 3 | background: #ccc; 4 | -moz-box-sizing: border-box; 5 | box-sizing: border-box; 6 | border: 1px solid #bbb; 7 | border-radius: 2px; 8 | } 9 | 10 | .CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical { 11 | position: absolute; 12 | z-index: 6; 13 | background: #eee; 14 | } 15 | 16 | .CodeMirror-simplescroll-horizontal { 17 | bottom: 0; left: 0; 18 | height: 8px; 19 | } 20 | .CodeMirror-simplescroll-horizontal div { 21 | bottom: 0; 22 | height: 100%; 23 | } 24 | 25 | .CodeMirror-simplescroll-vertical { 26 | right: 0; top: 0; 27 | width: 8px; 28 | } 29 | .CodeMirror-simplescroll-vertical div { 30 | right: 0; 31 | width: 100%; 32 | } 33 | 34 | 35 | .CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler { 36 | display: none; 37 | } 38 | 39 | .CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div { 40 | position: absolute; 41 | background: #bcd; 42 | border-radius: 3px; 43 | } 44 | 45 | .CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical { 46 | position: absolute; 47 | z-index: 6; 48 | } 49 | 50 | .CodeMirror-overlayscroll-horizontal { 51 | bottom: 0; left: 0; 52 | height: 6px; 53 | } 54 | .CodeMirror-overlayscroll-horizontal div { 55 | bottom: 0; 56 | height: 100%; 57 | } 58 | 59 | .CodeMirror-overlayscroll-vertical { 60 | right: 0; top: 0; 61 | width: 6px; 62 | } 63 | .CodeMirror-overlayscroll-vertical div { 64 | right: 0; 65 | width: 100%; 66 | } 67 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/search/matchesonscrollbar.css: -------------------------------------------------------------------------------- 1 | .CodeMirror-search-match { 2 | background: gold; 3 | border-top: 1px solid orange; 4 | border-bottom: 1px solid orange; 5 | -moz-box-sizing: border-box; 6 | box-sizing: border-box; 7 | opacity: .5; 8 | } 9 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/addon/tern/worker.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | // declare global: tern, server 5 | 6 | var server; 7 | 8 | this.onmessage = function(e) { 9 | var data = e.data; 10 | switch (data.type) { 11 | case "init": return startServer(data.defs, data.plugins, data.scripts); 12 | case "add": return server.addFile(data.name, data.text); 13 | case "del": return server.delFile(data.name); 14 | case "req": return server.request(data.body, function(err, reqData) { 15 | postMessage({id: data.id, body: reqData, err: err && String(err)}); 16 | }); 17 | case "getFile": 18 | var c = pending[data.id]; 19 | delete pending[data.id]; 20 | return c(data.err, data.text); 21 | default: throw new Error("Unknown message type: " + data.type); 22 | } 23 | }; 24 | 25 | var nextId = 0, pending = {}; 26 | function getFile(file, c) { 27 | postMessage({type: "getFile", name: file, id: ++nextId}); 28 | pending[nextId] = c; 29 | } 30 | 31 | function startServer(defs, plugins, scripts) { 32 | if (scripts) importScripts.apply(null, scripts); 33 | 34 | server = new tern.Server({ 35 | getFile: getFile, 36 | async: true, 37 | defs: defs, 38 | plugins: plugins 39 | }); 40 | } 41 | 42 | var console = { 43 | log: function(v) { postMessage({type: "debug", message: v}); } 44 | }; 45 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": ["lib/codemirror.js", "lib/codemirror.css"], 5 | "ignore": [ 6 | "**/.*", 7 | "node_modules", 8 | "components", 9 | "bin", 10 | "demo", 11 | "doc", 12 | "test", 13 | "index.html", 14 | "package.json" 15 | ] 16 | } 17 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/diff/diff.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function(mod) { 5 | if (typeof exports == "object" && typeof module == "object") // CommonJS 6 | mod(require("../../lib/codemirror")); 7 | else if (typeof define == "function" && define.amd) // AMD 8 | define(["../../lib/codemirror"], mod); 9 | else // Plain browser env 10 | mod(CodeMirror); 11 | })(function(CodeMirror) { 12 | "use strict"; 13 | 14 | CodeMirror.defineMode("diff", function() { 15 | 16 | var TOKEN_NAMES = { 17 | '+': 'positive', 18 | '-': 'negative', 19 | '@': 'meta' 20 | }; 21 | 22 | return { 23 | token: function(stream) { 24 | var tw_pos = stream.string.search(/[\t ]+?$/); 25 | 26 | if (!stream.sol() || tw_pos === 0) { 27 | stream.skipToEnd(); 28 | return ("error " + ( 29 | TOKEN_NAMES[stream.string.charAt(0)] || '')).replace(/ $/, ''); 30 | } 31 | 32 | var token_name = TOKEN_NAMES[stream.peek()] || stream.skipToEnd(); 33 | 34 | if (tw_pos === -1) { 35 | stream.skipToEnd(); 36 | } else { 37 | stream.pos = tw_pos; 38 | } 39 | 40 | return token_name; 41 | } 42 | }; 43 | }); 44 | 45 | CodeMirror.defineMIME("text/x-diff", "diff"); 46 | 47 | }); 48 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/ecl/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: ECL mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

ECL mode

27 |
45 | 48 | 49 |

Based on CodeMirror's clike mode. For more information see HPCC Systems web site.

50 |

MIME types defined: text/x-ecl.

51 | 52 |
53 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/http/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: HTTP mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

HTTP mode

27 | 28 | 29 |
39 | 40 | 43 | 44 |

MIME types defined: message/http.

45 |
46 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/ntriples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: NTriples mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 15 | 28 | 29 |
30 |

NTriples mode

31 |
32 | 39 |
40 | 41 | 44 |

MIME types defined: text/n-triples.

45 |
46 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/ruby/test.js: -------------------------------------------------------------------------------- 1 | // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 | // Distributed under an MIT license: http://codemirror.net/LICENSE 3 | 4 | (function() { 5 | var mode = CodeMirror.getMode({indentUnit: 2}, "ruby"); 6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); } 7 | 8 | MT("divide_equal_operator", 9 | "[variable bar] [operator /=] [variable foo]"); 10 | 11 | MT("divide_equal_operator_no_spacing", 12 | "[variable foo][operator /=][number 42]"); 13 | 14 | })(); 15 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/rust/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Rust mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Rust mode

27 | 28 | 29 |
52 | 53 | 58 | 59 |

MIME types defined: text/x-rustsrc.

60 |
61 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/solr/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Solr mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 20 | 33 | 34 |
35 |

Solr mode

36 | 37 |
38 | 47 |
48 | 49 | 55 | 56 |

MIME types defined: text/x-solr.

57 |
58 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/spreadsheet/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Spreadsheet mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 25 | 26 |
27 |

Spreadsheet mode

28 |
29 | 30 | 37 | 38 |

MIME types defined: text/x-spreadsheet.

39 | 40 |

The Spreadsheet Mode

41 |

Created by Robert Plummer

42 |
43 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/tiddlywiki/tiddlywiki.css: -------------------------------------------------------------------------------- 1 | span.cm-underlined { 2 | text-decoration: underline; 3 | } 4 | span.cm-strikethrough { 5 | text-decoration: line-through; 6 | } 7 | span.cm-brace { 8 | color: #170; 9 | font-weight: bold; 10 | } 11 | span.cm-table { 12 | color: blue; 13 | font-weight: bold; 14 | } 15 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/tiki/tiki.css: -------------------------------------------------------------------------------- 1 | .cm-tw-syntaxerror { 2 | color: #FFF; 3 | background-color: #900; 4 | } 5 | 6 | .cm-tw-deleted { 7 | text-decoration: line-through; 8 | } 9 | 10 | .cm-tw-header5 { 11 | font-weight: bold; 12 | } 13 | .cm-tw-listitem:first-child { /*Added first child to fix duplicate padding when highlighting*/ 14 | padding-left: 10px; 15 | } 16 | 17 | .cm-tw-box { 18 | border-top-width: 0px ! important; 19 | border-style: solid; 20 | border-width: 1px; 21 | border-color: inherit; 22 | } 23 | 24 | .cm-tw-underline { 25 | text-decoration: underline; 26 | } -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/mode/z80/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CodeMirror: Z80 assembly mode 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 24 | 25 |
26 |

Z80 assembly mode

27 | 28 | 29 |
44 | 45 | 50 | 51 |

MIME type defined: text/x-z80.

52 |
53 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "codemirror", 3 | "version":"5.0.0", 4 | "main": "lib/codemirror.js", 5 | "description": "In-browser code editing made bearable", 6 | "licenses": [{"type": "MIT", 7 | "url": "http://codemirror.net/LICENSE"}], 8 | "directories": {"lib": "./lib"}, 9 | "scripts": {"test": "node ./test/run.js"}, 10 | "devDependencies": {"node-static": "0.6.0", 11 | "phantomjs": "1.9.2-5", 12 | "blint": ">=0.1.1"}, 13 | "bugs": "http://github.com/codemirror/CodeMirror/issues", 14 | "keywords": ["JavaScript", "CodeMirror", "Editor"], 15 | "homepage": "http://codemirror.net", 16 | "maintainers":[{"name": "Marijn Haverbeke", 17 | "email": "marijnh@gmail.com", 18 | "web": "http://marijnhaverbeke.nl"}], 19 | "repository": {"type": "git", 20 | "url": "https://github.com/codemirror/CodeMirror.git"} 21 | } 22 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/ambiance-mobile.css: -------------------------------------------------------------------------------- 1 | .cm-s-ambiance.CodeMirror { 2 | -webkit-box-shadow: none; 3 | -moz-box-shadow: none; 4 | box-shadow: none; 5 | } 6 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/cobalt.css: -------------------------------------------------------------------------------- 1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; } 2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539 !important; } 3 | .cm-s-cobalt.CodeMirror ::selection { background: rgba(179, 101, 57, .99); } 4 | .cm-s-cobalt.CodeMirror ::-moz-selection { background: rgba(179, 101, 57, .99); } 5 | .cm-s-cobalt .CodeMirror-gutters { background: #002240; border-right: 1px solid #aaa; } 6 | .cm-s-cobalt .CodeMirror-guttermarker { color: #ffee80; } 7 | .cm-s-cobalt .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 8 | .cm-s-cobalt .CodeMirror-linenumber { color: #d0d0d0; } 9 | .cm-s-cobalt .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-cobalt span.cm-comment { color: #08f; } 12 | .cm-s-cobalt span.cm-atom { color: #845dc4; } 13 | .cm-s-cobalt span.cm-number, .cm-s-cobalt span.cm-attribute { color: #ff80e1; } 14 | .cm-s-cobalt span.cm-keyword { color: #ffee80; } 15 | .cm-s-cobalt span.cm-string { color: #3ad900; } 16 | .cm-s-cobalt span.cm-meta { color: #ff9d00; } 17 | .cm-s-cobalt span.cm-variable-2, .cm-s-cobalt span.cm-tag { color: #9effff; } 18 | .cm-s-cobalt span.cm-variable-3, .cm-s-cobalt span.cm-def { color: white; } 19 | .cm-s-cobalt span.cm-bracket { color: #d8d8d8; } 20 | .cm-s-cobalt span.cm-builtin, .cm-s-cobalt span.cm-special { color: #ff9e59; } 21 | .cm-s-cobalt span.cm-link { color: #845dc4; } 22 | .cm-s-cobalt span.cm-error { color: #9d1e15; } 23 | 24 | .cm-s-cobalt .CodeMirror-activeline-background {background: #002D57 !important;} 25 | .cm-s-cobalt .CodeMirror-matchingbracket {outline:1px solid grey;color:white !important} 26 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/eclipse.css: -------------------------------------------------------------------------------- 1 | .cm-s-eclipse span.cm-meta {color: #FF1717;} 2 | .cm-s-eclipse span.cm-keyword { line-height: 1em; font-weight: bold; color: #7F0055; } 3 | .cm-s-eclipse span.cm-atom {color: #219;} 4 | .cm-s-eclipse span.cm-number {color: #164;} 5 | .cm-s-eclipse span.cm-def {color: #00f;} 6 | .cm-s-eclipse span.cm-variable {color: black;} 7 | .cm-s-eclipse span.cm-variable-2 {color: #0000C0;} 8 | .cm-s-eclipse span.cm-variable-3 {color: #0000C0;} 9 | .cm-s-eclipse span.cm-property {color: black;} 10 | .cm-s-eclipse span.cm-operator {color: black;} 11 | .cm-s-eclipse span.cm-comment {color: #3F7F5F;} 12 | .cm-s-eclipse span.cm-string {color: #2A00FF;} 13 | .cm-s-eclipse span.cm-string-2 {color: #f50;} 14 | .cm-s-eclipse span.cm-qualifier {color: #555;} 15 | .cm-s-eclipse span.cm-builtin {color: #30a;} 16 | .cm-s-eclipse span.cm-bracket {color: #cc7;} 17 | .cm-s-eclipse span.cm-tag {color: #170;} 18 | .cm-s-eclipse span.cm-attribute {color: #00c;} 19 | .cm-s-eclipse span.cm-link {color: #219;} 20 | .cm-s-eclipse span.cm-error {color: #f00;} 21 | 22 | .cm-s-eclipse .CodeMirror-activeline-background {background: #e8f2ff !important;} 23 | .cm-s-eclipse .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 24 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/elegant.css: -------------------------------------------------------------------------------- 1 | .cm-s-elegant span.cm-number, .cm-s-elegant span.cm-string, .cm-s-elegant span.cm-atom {color: #762;} 2 | .cm-s-elegant span.cm-comment {color: #262; font-style: italic; line-height: 1em;} 3 | .cm-s-elegant span.cm-meta {color: #555; font-style: italic; line-height: 1em;} 4 | .cm-s-elegant span.cm-variable {color: black;} 5 | .cm-s-elegant span.cm-variable-2 {color: #b11;} 6 | .cm-s-elegant span.cm-qualifier {color: #555;} 7 | .cm-s-elegant span.cm-keyword {color: #730;} 8 | .cm-s-elegant span.cm-builtin {color: #30a;} 9 | .cm-s-elegant span.cm-link {color: #762;} 10 | .cm-s-elegant span.cm-error {background-color: #fdd;} 11 | 12 | .cm-s-elegant .CodeMirror-activeline-background {background: #e8f2ff !important;} 13 | .cm-s-elegant .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 14 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/monokai.css: -------------------------------------------------------------------------------- 1 | /* Based on Sublime Text's Monokai theme */ 2 | 3 | .cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;} 4 | .cm-s-monokai div.CodeMirror-selected {background: #49483E !important;} 5 | .cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); } 6 | .cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); } 7 | .cm-s-monokai .CodeMirror-gutters {background: #272822; border-right: 0px;} 8 | .cm-s-monokai .CodeMirror-guttermarker { color: white; } 9 | .cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; } 10 | .cm-s-monokai .CodeMirror-linenumber {color: #d0d0d0;} 11 | .cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;} 12 | 13 | .cm-s-monokai span.cm-comment {color: #75715e;} 14 | .cm-s-monokai span.cm-atom {color: #ae81ff;} 15 | .cm-s-monokai span.cm-number {color: #ae81ff;} 16 | 17 | .cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;} 18 | .cm-s-monokai span.cm-keyword {color: #f92672;} 19 | .cm-s-monokai span.cm-string {color: #e6db74;} 20 | 21 | .cm-s-monokai span.cm-variable {color: #a6e22e;} 22 | .cm-s-monokai span.cm-variable-2 {color: #9effff;} 23 | .cm-s-monokai span.cm-def {color: #fd971f;} 24 | .cm-s-monokai span.cm-bracket {color: #f8f8f2;} 25 | .cm-s-monokai span.cm-tag {color: #f92672;} 26 | .cm-s-monokai span.cm-link {color: #ae81ff;} 27 | .cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;} 28 | 29 | .cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;} 30 | .cm-s-monokai .CodeMirror-matchingbracket { 31 | text-decoration: underline; 32 | color: white !important; 33 | } 34 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/neat.css: -------------------------------------------------------------------------------- 1 | .cm-s-neat span.cm-comment { color: #a86; } 2 | .cm-s-neat span.cm-keyword { line-height: 1em; font-weight: bold; color: blue; } 3 | .cm-s-neat span.cm-string { color: #a22; } 4 | .cm-s-neat span.cm-builtin { line-height: 1em; font-weight: bold; color: #077; } 5 | .cm-s-neat span.cm-special { line-height: 1em; font-weight: bold; color: #0aa; } 6 | .cm-s-neat span.cm-variable { color: black; } 7 | .cm-s-neat span.cm-number, .cm-s-neat span.cm-atom { color: #3a3; } 8 | .cm-s-neat span.cm-meta {color: #555;} 9 | .cm-s-neat span.cm-link { color: #3a3; } 10 | 11 | .cm-s-neat .CodeMirror-activeline-background {background: #e8f2ff !important;} 12 | .cm-s-neat .CodeMirror-matchingbracket {outline:1px solid grey; color:black !important;} 13 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/neo.css: -------------------------------------------------------------------------------- 1 | /* neo theme for codemirror */ 2 | 3 | /* Color scheme */ 4 | 5 | .cm-s-neo.CodeMirror { 6 | background-color:#ffffff; 7 | color:#2e383c; 8 | line-height:1.4375; 9 | } 10 | .cm-s-neo .cm-comment {color:#75787b} 11 | .cm-s-neo .cm-keyword, .cm-s-neo .cm-property {color:#1d75b3} 12 | .cm-s-neo .cm-atom,.cm-s-neo .cm-number {color:#75438a} 13 | .cm-s-neo .cm-node,.cm-s-neo .cm-tag {color:#9c3328} 14 | .cm-s-neo .cm-string {color:#b35e14} 15 | .cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier {color:#047d65} 16 | 17 | 18 | /* Editor styling */ 19 | 20 | .cm-s-neo pre { 21 | padding:0; 22 | } 23 | 24 | .cm-s-neo .CodeMirror-gutters { 25 | border:none; 26 | border-right:10px solid transparent; 27 | background-color:transparent; 28 | } 29 | 30 | .cm-s-neo .CodeMirror-linenumber { 31 | padding:0; 32 | color:#e0e2e5; 33 | } 34 | 35 | .cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } 36 | .cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } 37 | 38 | .cm-s-neo div.CodeMirror-cursor { 39 | width: auto; 40 | border: 0; 41 | background: rgba(155,157,162,0.37); 42 | z-index: 1; 43 | } 44 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/night.css: -------------------------------------------------------------------------------- 1 | /* Loosely based on the Midnight Textmate theme */ 2 | 3 | .cm-s-night.CodeMirror { background: #0a001f; color: #f8f8f8; } 4 | .cm-s-night div.CodeMirror-selected { background: #447 !important; } 5 | .cm-s-night.CodeMirror ::selection { background: rgba(68, 68, 119, .99); } 6 | .cm-s-night.CodeMirror ::-moz-selection { background: rgba(68, 68, 119, .99); } 7 | .cm-s-night .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; } 8 | .cm-s-night .CodeMirror-guttermarker { color: white; } 9 | .cm-s-night .CodeMirror-guttermarker-subtle { color: #bbb; } 10 | .cm-s-night .CodeMirror-linenumber { color: #f8f8f8; } 11 | .cm-s-night .CodeMirror-cursor { border-left: 1px solid white !important; } 12 | 13 | .cm-s-night span.cm-comment { color: #6900a1; } 14 | .cm-s-night span.cm-atom { color: #845dc4; } 15 | .cm-s-night span.cm-number, .cm-s-night span.cm-attribute { color: #ffd500; } 16 | .cm-s-night span.cm-keyword { color: #599eff; } 17 | .cm-s-night span.cm-string { color: #37f14a; } 18 | .cm-s-night span.cm-meta { color: #7678e2; } 19 | .cm-s-night span.cm-variable-2, .cm-s-night span.cm-tag { color: #99b2ff; } 20 | .cm-s-night span.cm-variable-3, .cm-s-night span.cm-def { color: white; } 21 | .cm-s-night span.cm-bracket { color: #8da6ce; } 22 | .cm-s-night span.cm-comment { color: #6900a1; } 23 | .cm-s-night span.cm-builtin, .cm-s-night span.cm-special { color: #ff9e59; } 24 | .cm-s-night span.cm-link { color: #845dc4; } 25 | .cm-s-night span.cm-error { color: #9d1e15; } 26 | 27 | .cm-s-night .CodeMirror-activeline-background {background: #1C005A !important;} 28 | .cm-s-night .CodeMirror-matchingbracket {outline:1px solid grey; color:white !important;} 29 | -------------------------------------------------------------------------------- /public/static/editor/lib/codemirror/theme/rubyblue.css: -------------------------------------------------------------------------------- 1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; } 2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F !important; } 3 | .cm-s-rubyblue.CodeMirror ::selection { background: rgba(56, 86, 111, 0.99); } 4 | .cm-s-rubyblue.CodeMirror ::-moz-selection { background: rgba(56, 86, 111, 0.99); } 5 | .cm-s-rubyblue .CodeMirror-gutters { background: #1F4661; border-right: 7px solid #3E7087; } 6 | .cm-s-rubyblue .CodeMirror-guttermarker { color: white; } 7 | .cm-s-rubyblue .CodeMirror-guttermarker-subtle { color: #3E7087; } 8 | .cm-s-rubyblue .CodeMirror-linenumber { color: white; } 9 | .cm-s-rubyblue .CodeMirror-cursor { border-left: 1px solid white !important; } 10 | 11 | .cm-s-rubyblue span.cm-comment { color: #999; font-style:italic; line-height: 1em; } 12 | .cm-s-rubyblue span.cm-atom { color: #F4C20B; } 13 | .cm-s-rubyblue span.cm-number, .cm-s-rubyblue span.cm-attribute { color: #82C6E0; } 14 | .cm-s-rubyblue span.cm-keyword { color: #F0F; } 15 | .cm-s-rubyblue span.cm-string { color: #F08047; } 16 | .cm-s-rubyblue span.cm-meta { color: #F0F; } 17 | .cm-s-rubyblue span.cm-variable-2, .cm-s-rubyblue span.cm-tag { color: #7BD827; } 18 | .cm-s-rubyblue span.cm-variable-3, .cm-s-rubyblue span.cm-def { color: white; } 19 | .cm-s-rubyblue span.cm-bracket { color: #F0F; } 20 | .cm-s-rubyblue span.cm-link { color: #F4C20B; } 21 | .cm-s-rubyblue span.CodeMirror-matchingbracket { color:#F0F !important; } 22 | .cm-s-rubyblue span.cm-builtin, .cm-s-rubyblue span.cm-special { color: #FF9D00; } 23 | .cm-s-rubyblue span.cm-error { color: #AF2018; } 24 | 25 | .cm-s-rubyblue .CodeMirror-activeline-background {background: #173047 !important;} 26 | -------------------------------------------------------------------------------- /public/static/editor/lib/jquery.flowchart.min.js: -------------------------------------------------------------------------------- 1 | /*! jQuery.flowchart.js v1.1.0 | jquery.flowchart.min.js | jQuery plugin for flowchart.js. | MIT License | By: Pandao | https://github.com/pandao/jquery.flowchart.js | 2015-03-09 */ 2 | (function(factory){if(typeof require==="function"&&typeof exports==="object"&&typeof module==="object"){module.exports=factory}else{if(typeof define==="function"){factory(jQuery,flowchart)}else{factory($,flowchart)}}}(function(jQuery,flowchart){(function($){$.fn.flowChart=function(options){options=options||{};var defaults={"x":0,"y":0,"line-width":2,"line-length":50,"text-margin":10,"font-size":14,"font-color":"black","line-color":"black","element-color":"black","fill":"white","yes-text":"yes","no-text":"no","arrow-end":"block","symbols":{"start":{"font-color":"black","element-color":"black","fill":"white"},"end":{"class":"end-element"}},"flowstate":{"past":{"fill":"#CCCCCC","font-size":12},"current":{"fill":"black","font-color":"white","font-weight":"bold"},"future":{"fill":"white"},"request":{"fill":"blue"},"invalid":{"fill":"#444444"},"approved":{"fill":"#58C4A3","font-size":12,"yes-text":"APPROVED","no-text":"n/a"},"rejected":{"fill":"#C45879","font-size":12,"yes-text":"n/a","no-text":"REJECTED"}}};return this.each(function(){var $this=$(this);var diagram=flowchart.parse($this.text());var settings=$.extend(true,defaults,options);$this.html("");diagram.drawSVG(this,settings)})}})(jQuery)})); -------------------------------------------------------------------------------- /public/static/index/css/post.css: -------------------------------------------------------------------------------- 1 | .mdui-container{max-width:1200px;margin-top:6em;margin-bottom:4em}.tags,.title{text-align:center}::selection{background:rgba(0,149,255,.1)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{border-radius:10px;background:rgba(0,0,0,.2)}body:before{top:0;left:0;right:0;bottom:0;opacity:.1;z-index:-1;content:"";position:fixed;background-image:url(https://tenapi.cn/acg)}.mdui-textfield-input{float:left;width:75%;text-transform:none}.mdui-btn{width:25%}.mdui-card{opacity:.8;padding:2em;border-radius:6px}p{opacity:.8}.mdui-card-content{padding:16px 0 0 0}.mdui-col-xs-12{margin-bottom:1em}.mdui-table-fluid{max-height:calc(100vh - 419px);overflow-y:scroll}.tags{margin-bottom:1em}.share{position:absolute;right:0;top:0;padding:1em;opacity:.8;cursor:pointer;color:#00000073}.home{position:absolute;left:0;top:0;padding:1em;opacity:.8;cursor:pointer}a{text-decoration:none!important;color:#000}.footer p{position:fixed;bottom:1em;left:0;right:0;text-align:center;font-size:18px}li{list-style:none;padding:15px 0;float:left;width:100%} -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Black.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Black.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Black.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Black.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-BlackItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-BlackItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-BlackItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-BlackItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Bold.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Bold.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-BoldItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-BoldItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Light.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Light.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Light.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Light.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-LightItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-LightItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-LightItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-LightItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Medium.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Medium.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Medium.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Medium.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-MediumItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-MediumItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-MediumItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-MediumItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Regular.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Regular.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-RegularItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-RegularItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-RegularItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-RegularItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Thin.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Thin.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-Thin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-Thin.woff2 -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-ThinItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-ThinItalic.woff -------------------------------------------------------------------------------- /public/static/mdui/fonts/roboto/Roboto-ThinItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/fonts/roboto/Roboto-ThinItalic.woff2 -------------------------------------------------------------------------------- /public/static/mdui/icons/material-icons/MaterialIcons-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/icons/material-icons/MaterialIcons-Regular.woff -------------------------------------------------------------------------------- /public/static/mdui/icons/material-icons/MaterialIcons-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/public/static/mdui/icons/material-icons/MaterialIcons-Regular.woff2 -------------------------------------------------------------------------------- /route/route.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | Route::get('verify','admin/login/verify'); 13 | Route::rule('doc/:id','index/doc'); 14 | Route::rule('post/:id','index/post'); 15 | Route::rule('list','index/postList'); 16 | Route::rule('getCount','index/getCount'); 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /think: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | 11 | // +---------------------------------------------------------------------- 12 | 13 | namespace think; 14 | 15 | // 加载基础文件 16 | require __DIR__ . '/thinkphp/base.php'; 17 | 18 | // 应用初始化 19 | Container::get('app')->path(__DIR__ . '/application/')->initialize(); 20 | 21 | // 控制台初始化 22 | Console::init(); -------------------------------------------------------------------------------- /thinkphp/.gitignore: -------------------------------------------------------------------------------- 1 | /vendor 2 | composer.phar 3 | composer.lock 4 | .DS_Store 5 | Thumbs.db 6 | /phpunit.xml 7 | /.idea 8 | /.vscode -------------------------------------------------------------------------------- /thinkphp/.htaccess: -------------------------------------------------------------------------------- 1 | deny from all -------------------------------------------------------------------------------- /thinkphp/LICENSE.txt: -------------------------------------------------------------------------------- 1 | 2 | ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 3 | 版权所有Copyright © 2006-2018 by ThinkPHP (http://thinkphp.cn) 4 | All rights reserved。 5 | ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 6 | 7 | Apache Licence是著名的非盈利开源组织Apache采用的协议。 8 | 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 9 | 允许代码修改,再作为开源或商业软件发布。需要满足 10 | 的条件: 11 | 1. 需要给代码的用户一份Apache Licence ; 12 | 2. 如果你修改了代码,需要在被修改的文件中说明; 13 | 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 14 | 带有原来代码中的协议,商标,专利声明和其他原来作者规 15 | 定需要包含的说明; 16 | 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 17 | 件中需要带有本协议内容。你可以在Notice中增加自己的 18 | 许可,但不可以表现为对Apache Licence构成更改。 19 | 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | POSSIBILITY OF SUCH DAMAGE. 33 | -------------------------------------------------------------------------------- /thinkphp/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "topthink/framework", 3 | "description": "the new thinkphp framework", 4 | "type": "think-framework", 5 | "keywords": [ 6 | "framework", 7 | "thinkphp", 8 | "ORM" 9 | ], 10 | "homepage": "http://thinkphp.cn/", 11 | "license": "Apache-2.0", 12 | "authors": [ 13 | { 14 | "name": "liu21st", 15 | "email": "liu21st@gmail.com" 16 | }, 17 | { 18 | "name": "yunwuxin", 19 | "email": "448901948@qq.com" 20 | } 21 | ], 22 | "require": { 23 | "php": ">=5.6.0", 24 | "topthink/think-installer": "2.*" 25 | }, 26 | "require-dev": { 27 | "phpunit/phpunit": "^5.0|^6.0", 28 | "johnkary/phpunit-speedtrap": "^1.0", 29 | "mikey179/vfsstream": "~1.6", 30 | "phploc/phploc": "2.*", 31 | "sebastian/phpcpd": "2.*", 32 | "squizlabs/php_codesniffer": "2.*", 33 | "phpdocumentor/reflection-docblock": "^2.0" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /thinkphp/library/think/config/driver/Ini.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\config\driver; 13 | 14 | class Ini 15 | { 16 | protected $config; 17 | 18 | public function __construct($config) 19 | { 20 | $this->config = $config; 21 | } 22 | 23 | public function parse() 24 | { 25 | if (is_file($this->config)) { 26 | return parse_ini_file($this->config, true); 27 | } else { 28 | return parse_ini_string($this->config, true); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /thinkphp/library/think/config/driver/Json.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\config\driver; 13 | 14 | class Json 15 | { 16 | protected $config; 17 | 18 | public function __construct($config) 19 | { 20 | if (is_file($config)) { 21 | $config = file_get_contents($config); 22 | } 23 | 24 | $this->config = $config; 25 | } 26 | 27 | public function parse() 28 | { 29 | return json_decode($this->config, true); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /thinkphp/library/think/config/driver/Xml.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\config\driver; 13 | 14 | class Xml 15 | { 16 | protected $config; 17 | 18 | public function __construct($config) 19 | { 20 | $this->config = $config; 21 | } 22 | 23 | public function parse() 24 | { 25 | if (is_file($this->config)) { 26 | $content = simplexml_load_file($this->config); 27 | } else { 28 | $content = simplexml_load_string($this->config); 29 | } 30 | 31 | $result = (array) $content; 32 | foreach ($result as $key => $val) { 33 | if (is_object($val)) { 34 | $result[$key] = (array) $val; 35 | } 36 | } 37 | 38 | return $result; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2004-2016 Fabien Potencier 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is furnished 8 | to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /thinkphp/library/think/console/bin/README.md: -------------------------------------------------------------------------------- 1 | console 工具使用 hiddeninput.exe 在 windows 上隐藏密码输入,该二进制文件由第三方提供,相关源码和其他细节可以在 [Hidden Input](https://github.com/Seldaek/hidden-input) 找到。 2 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/bin/hiddeninput.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/thinkphp/library/think/console/bin/hiddeninput.exe -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/Version.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | namespace think\console\command; 12 | 13 | use think\console\Command; 14 | use think\console\Input; 15 | use think\console\Output; 16 | use think\facade\App; 17 | 18 | class Version extends Command 19 | { 20 | protected function configure() 21 | { 22 | // 指令配置 23 | $this->setName('version') 24 | ->setDescription('show thinkphp framework version'); 25 | } 26 | 27 | protected function execute(Input $input, Output $output) 28 | { 29 | $output->writeln('v' . App::version()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/make/Middleware.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\console\command\make; 13 | 14 | use think\console\command\Make; 15 | 16 | class Middleware extends Make 17 | { 18 | protected $type = "Middleware"; 19 | 20 | protected function configure() 21 | { 22 | parent::configure(); 23 | $this->setName('make:middleware') 24 | ->setDescription('Create a new middleware class'); 25 | } 26 | 27 | protected function getStub() 28 | { 29 | return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'middleware.stub'; 30 | } 31 | 32 | protected function getNamespace($appNamespace, $module) 33 | { 34 | return parent::getNamespace($appNamespace, 'http') . '\middleware'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/make/Model.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\console\command\make; 13 | 14 | use think\console\command\Make; 15 | 16 | class Model extends Make 17 | { 18 | protected $type = "Model"; 19 | 20 | protected function configure() 21 | { 22 | parent::configure(); 23 | $this->setName('make:model') 24 | ->setDescription('Create a new model class'); 25 | } 26 | 27 | protected function getStub() 28 | { 29 | return __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR . 'model.stub'; 30 | } 31 | 32 | protected function getNamespace($appNamespace, $module) 33 | { 34 | return parent::getNamespace($appNamespace, $module) . '\model'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/make/Validate.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\console\command\make; 13 | 14 | use think\console\command\Make; 15 | 16 | class Validate extends Make 17 | { 18 | protected $type = "Validate"; 19 | 20 | protected function configure() 21 | { 22 | parent::configure(); 23 | $this->setName('make:validate') 24 | ->setDescription('Create a validate class'); 25 | } 26 | 27 | protected function getStub() 28 | { 29 | $stubPath = __DIR__ . DIRECTORY_SEPARATOR . 'stubs' . DIRECTORY_SEPARATOR; 30 | 31 | return $stubPath . 'validate.stub'; 32 | } 33 | 34 | protected function getNamespace($appNamespace, $module) 35 | { 36 | return parent::getNamespace($appNamespace, $module) . '\validate'; 37 | } 38 | 39 | } 40 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/make/stubs/command.stub: -------------------------------------------------------------------------------- 1 | setName('{%commandName%}'); 15 | // 设置参数 16 | 17 | } 18 | 19 | protected function execute(Input $input, Output $output) 20 | { 21 | // 指令输出 22 | $output->writeln('{%commandName%}'); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/command/make/stubs/controller.api.stub: -------------------------------------------------------------------------------- 1 | ['规则1','规则2'...] 12 | * 13 | * @var array 14 | */ 15 | protected $rule = []; 16 | 17 | /** 18 | * 定义错误信息 19 | * 格式:'字段名.规则名' => '错误信息' 20 | * 21 | * @var array 22 | */ 23 | protected $message = []; 24 | } 25 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/output/driver/Buffer.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\console\output\driver; 13 | 14 | use think\console\Output; 15 | 16 | class Buffer 17 | { 18 | /** 19 | * @var string 20 | */ 21 | private $buffer = ''; 22 | 23 | public function __construct(Output $output) 24 | { 25 | // do nothing 26 | } 27 | 28 | public function fetch() 29 | { 30 | $content = $this->buffer; 31 | $this->buffer = ''; 32 | return $content; 33 | } 34 | 35 | public function write($messages, $newline = false, $options = Output::OUTPUT_NORMAL) 36 | { 37 | $messages = (array) $messages; 38 | 39 | foreach ($messages as $message) { 40 | $this->buffer .= $message; 41 | } 42 | if ($newline) { 43 | $this->buffer .= "\n"; 44 | } 45 | } 46 | 47 | public function renderException(\Exception $e) 48 | { 49 | // do nothing 50 | } 51 | 52 | } 53 | -------------------------------------------------------------------------------- /thinkphp/library/think/console/output/driver/Nothing.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\console\output\driver; 13 | 14 | use think\console\Output; 15 | 16 | class Nothing 17 | { 18 | 19 | public function __construct(Output $output) 20 | { 21 | // do nothing 22 | } 23 | 24 | public function write($messages, $newline = false, $options = Output::OUTPUT_NORMAL) 25 | { 26 | // do nothing 27 | } 28 | 29 | public function renderException(\Exception $e) 30 | { 31 | // do nothing 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /thinkphp/library/think/db/Expression.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\db; 13 | 14 | class Expression 15 | { 16 | /** 17 | * 查询表达式 18 | * 19 | * @var string 20 | */ 21 | protected $value; 22 | 23 | /** 24 | * 创建一个查询表达式 25 | * 26 | * @param string $value 27 | * @return void 28 | */ 29 | public function __construct($value) 30 | { 31 | $this->value = $value; 32 | } 33 | 34 | /** 35 | * 获取表达式 36 | * 37 | * @return string 38 | */ 39 | public function getValue() 40 | { 41 | return $this->value; 42 | } 43 | 44 | public function __toString() 45 | { 46 | return (string) $this->value; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /thinkphp/library/think/db/exception/BindParamException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\db\exception; 13 | 14 | use think\exception\DbException; 15 | 16 | /** 17 | * PDO参数绑定异常 18 | */ 19 | class BindParamException extends DbException 20 | { 21 | 22 | /** 23 | * BindParamException constructor. 24 | * @access public 25 | * @param string $message 26 | * @param array $config 27 | * @param string $sql 28 | * @param array $bind 29 | * @param int $code 30 | */ 31 | public function __construct($message, $config, $sql, $bind, $code = 10502) 32 | { 33 | $this->setData('Bind Param', $bind); 34 | parent::__construct($message, $config, $sql, $code); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/db/exception/DataNotFoundException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\db\exception; 13 | 14 | use think\exception\DbException; 15 | 16 | class DataNotFoundException extends DbException 17 | { 18 | protected $table; 19 | 20 | /** 21 | * DbException constructor. 22 | * @access public 23 | * @param string $message 24 | * @param string $table 25 | * @param array $config 26 | */ 27 | public function __construct($message, $table = '', array $config = []) 28 | { 29 | $this->message = $message; 30 | $this->table = $table; 31 | 32 | $this->setData('Database Config', $config); 33 | } 34 | 35 | /** 36 | * 获取数据表名 37 | * @access public 38 | * @return string 39 | */ 40 | public function getTable() 41 | { 42 | return $this->table; 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /thinkphp/library/think/db/exception/ModelNotFoundException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\db\exception; 13 | 14 | use think\exception\DbException; 15 | 16 | class ModelNotFoundException extends DbException 17 | { 18 | protected $model; 19 | 20 | /** 21 | * 构造方法 22 | * @access public 23 | * @param string $message 24 | * @param string $model 25 | * @param array $config 26 | */ 27 | public function __construct($message, $model = '', array $config = []) 28 | { 29 | $this->message = $message; 30 | $this->model = $model; 31 | 32 | $this->setData('Database Config', $config); 33 | } 34 | 35 | /** 36 | * 获取模型类名 37 | * @access public 38 | * @return string 39 | */ 40 | public function getModel() 41 | { 42 | return $this->model; 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/ClassNotFoundException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | class ClassNotFoundException extends \RuntimeException 15 | { 16 | protected $class; 17 | public function __construct($message, $class = '') 18 | { 19 | $this->message = $message; 20 | $this->class = $class; 21 | } 22 | 23 | /** 24 | * 获取类名 25 | * @access public 26 | * @return string 27 | */ 28 | public function getClass() 29 | { 30 | return $this->class; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/DbException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | use think\Exception; 15 | 16 | /** 17 | * Database相关异常处理类 18 | */ 19 | class DbException extends Exception 20 | { 21 | /** 22 | * DbException constructor. 23 | * @access public 24 | * @param string $message 25 | * @param array $config 26 | * @param string $sql 27 | * @param int $code 28 | */ 29 | public function __construct($message, array $config = [], $sql = '', $code = 10500) 30 | { 31 | $this->message = $message; 32 | $this->code = $code; 33 | 34 | $this->setData('Database Status', [ 35 | 'Error Code' => $code, 36 | 'Error Message' => $message, 37 | 'Error SQL' => $sql, 38 | ]); 39 | 40 | unset($config['username'], $config['password']); 41 | $this->setData('Database Config', $config); 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/HttpException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | class HttpException extends \RuntimeException 15 | { 16 | private $statusCode; 17 | private $headers; 18 | 19 | public function __construct($statusCode, $message = null, \Exception $previous = null, array $headers = [], $code = 0) 20 | { 21 | $this->statusCode = $statusCode; 22 | $this->headers = $headers; 23 | 24 | parent::__construct($message, $code, $previous); 25 | } 26 | 27 | public function getStatusCode() 28 | { 29 | return $this->statusCode; 30 | } 31 | 32 | public function getHeaders() 33 | { 34 | return $this->headers; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/HttpResponseException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | use think\Response; 15 | 16 | class HttpResponseException extends \RuntimeException 17 | { 18 | /** 19 | * @var Response 20 | */ 21 | protected $response; 22 | 23 | public function __construct(Response $response) 24 | { 25 | $this->response = $response; 26 | } 27 | 28 | public function getResponse() 29 | { 30 | return $this->response; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/PDOException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | /** 15 | * PDO异常处理类 16 | * 重新封装了系统的\PDOException类 17 | */ 18 | class PDOException extends DbException 19 | { 20 | /** 21 | * PDOException constructor. 22 | * @access public 23 | * @param \PDOException $exception 24 | * @param array $config 25 | * @param string $sql 26 | * @param int $code 27 | */ 28 | public function __construct(\PDOException $exception, array $config, $sql, $code = 10501) 29 | { 30 | $error = $exception->errorInfo; 31 | 32 | $this->setData('PDO Error Info', [ 33 | 'SQLSTATE' => $error[0], 34 | 'Driver Error Code' => isset($error[1]) ? $error[1] : 0, 35 | 'Driver Error Message' => isset($error[2]) ? $error[2] : '', 36 | ]); 37 | 38 | parent::__construct($exception->getMessage(), $config, $sql, $code); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/RouteNotFoundException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | class RouteNotFoundException extends HttpException 15 | { 16 | 17 | public function __construct() 18 | { 19 | parent::__construct(404, 'Route Not Found'); 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/TemplateNotFoundException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | class TemplateNotFoundException extends \RuntimeException 15 | { 16 | protected $template; 17 | 18 | public function __construct($message, $template = '') 19 | { 20 | $this->message = $message; 21 | $this->template = $template; 22 | } 23 | 24 | /** 25 | * 获取模板文件 26 | * @access public 27 | * @return string 28 | */ 29 | public function getTemplate() 30 | { 31 | return $this->template; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /thinkphp/library/think/exception/ValidateException.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\exception; 13 | 14 | class ValidateException extends \RuntimeException 15 | { 16 | protected $error; 17 | 18 | public function __construct($error, $code = 0) 19 | { 20 | $this->error = $error; 21 | $this->message = is_array($error) ? implode(PHP_EOL, $error) : $error; 22 | $this->code = $code; 23 | } 24 | 25 | /** 26 | * 获取验证错误信息 27 | * @access public 28 | * @return array|string 29 | */ 30 | public function getError() 31 | { 32 | return $this->error; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Build.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Build 18 | * @mixin \think\Build 19 | * @method void run(array $build = [], string $namespace = 'app', bool $suffix = false) static 根据传入的build资料创建目录和文件 20 | * @method void module(string $module = '', array $list = [], string $namespace = 'app', bool $suffix = false) static 创建模块 21 | */ 22 | class Build extends Facade 23 | { 24 | /** 25 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 26 | * @access protected 27 | * @return string 28 | */ 29 | protected static function getFacadeClass() 30 | { 31 | return 'build'; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Config.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Config 18 | * @mixin \think\Config 19 | * @method array load(string $file, string $name = '') static 加载配置文件 20 | * @method bool has(string $name) static 检测配置是否存在 21 | * @method array pull(string $name) static 获取一级配置参数 22 | * @method mixed get(string $name,mixed $default = null) static 获取配置参数 23 | * @method array set(mixed $name, mixed $value = null) static 设置配置参数 24 | * @method array reset(string $name ='') static 重置配置参数 25 | * @method void remove(string $name = '') static 移除配置 26 | * @method void setYaconf(mixed $yaconf) static 设置开启Yaconf 或者指定配置文件名 27 | */ 28 | class Config extends Facade 29 | { 30 | /** 31 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 32 | * @access protected 33 | * @return string 34 | */ 35 | protected static function getFacadeClass() 36 | { 37 | return 'config'; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Cookie.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Cookie 18 | * @mixin \think\Cookie 19 | * @method void init(array $config = []) static 初始化 20 | * @method bool has(string $name,string $prefix = null) static 判断Cookie数据 21 | * @method mixed prefix(string $prefix = '') static 设置或者获取cookie作用域(前缀) 22 | * @method mixed get(string $name,string $prefix = null) static Cookie获取 23 | * @method mixed set(string $name, mixed $value = null, mixed $option = null) static 设置Cookie 24 | * @method void forever(string $name, mixed $value = null, mixed $option = null) static 永久保存Cookie数据 25 | * @method void delete(string $name, string $prefix = null) static Cookie删除 26 | * @method void clear($prefix = null) static Cookie清空 27 | */ 28 | class Cookie extends Facade 29 | { 30 | /** 31 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 32 | * @access protected 33 | * @return string 34 | */ 35 | protected static function getFacadeClass() 36 | { 37 | return 'cookie'; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Env.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Env 18 | * @mixin \think\Env 19 | * @method void load(string $file) static 读取环境变量定义文件 20 | * @method mixed get(string $name = null, mixed $default = null) static 获取环境变量值 21 | * @method void set(mixed $env, string $value = null) static 设置环境变量值 22 | */ 23 | class Env extends Facade 24 | { 25 | /** 26 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 27 | * @access protected 28 | * @return string 29 | */ 30 | protected static function getFacadeClass() 31 | { 32 | return 'env'; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Hook.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Hook 18 | * @mixin \think\Hook 19 | * @method \think\Hook alias(mixed $name, mixed $behavior = null) static 指定行为标识 20 | * @method void add(string $tag, mixed $behavior, bool $first = false) static 动态添加行为扩展到某个标签 21 | * @method void import(array $tags, bool $recursive = true) static 批量导入插件 22 | * @method array get(string $tag = '') static 获取插件信息 23 | * @method mixed listen(string $tag, mixed $params = null, bool $once = false) static 监听标签的行为 24 | * @method mixed exec(mixed $class, mixed $params = null) static 执行行为 25 | */ 26 | class Hook extends Facade 27 | { 28 | /** 29 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 30 | * @access protected 31 | * @return string 32 | */ 33 | protected static function getFacadeClass() 34 | { 35 | return 'hook'; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Middleware.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Middleware 18 | * @mixin \think\Middleware 19 | * @method void import(array $middlewares = []) static 批量设置中间件 20 | * @method void add(mixed $middleware) static 添加中间件到队列 21 | * @method void unshift(mixed $middleware) static 添加中间件到队列开头 22 | * @method array all() static 获取中间件队列 23 | * @method \think\Response dispatch(\think\Request $request) static 执行中间件调度 24 | */ 25 | class Middleware extends Facade 26 | { 27 | /** 28 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 29 | * @access protected 30 | * @return string 31 | */ 32 | protected static function getFacadeClass() 33 | { 34 | return 'middleware'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Template.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Template 18 | * @mixin \think\Template 19 | * @method void assign(mixed $name, mixed $value = '') static 模板变量赋值 20 | * @method mixed get(string $name = '') static 获取模板变量 21 | * @method void fetch(string $template, array $vars = [], array $config = []) static 渲染模板文件 22 | * @method void display(string $content, array $vars = [], array $config = []) static 渲染模板内容 23 | * @method mixed layout(string $name, string $replace = '') static 设置模板布局 24 | */ 25 | class Template extends Facade 26 | { 27 | /** 28 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 29 | * @access protected 30 | * @return string 31 | */ 32 | protected static function getFacadeClass() 33 | { 34 | return 'template'; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /thinkphp/library/think/facade/Url.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\facade; 13 | 14 | use think\Facade; 15 | 16 | /** 17 | * @see \think\Url 18 | * @mixin \think\Url 19 | * @method string build(string $url = '', mixed $vars = '', mixed $suffix = true, mixed $domain = false) static URL生成 支持路由反射 20 | * @method void root(string $root) static 指定当前生成URL地址的root 21 | */ 22 | class Url extends Facade 23 | { 24 | /** 25 | * 获取当前Facade对应类名(或者已经绑定的容器对象标识) 26 | * @access protected 27 | * @return string 28 | */ 29 | protected static function getFacadeClass() 30 | { 31 | return 'url'; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /thinkphp/library/think/model/Pivot.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\model; 13 | 14 | use think\Model; 15 | 16 | class Pivot extends Model 17 | { 18 | 19 | /** @var Model */ 20 | public $parent; 21 | 22 | protected $autoWriteTimestamp = false; 23 | 24 | /** 25 | * 架构函数 26 | * @access public 27 | * @param array|object $data 数据 28 | * @param Model $parent 上级模型 29 | * @param string $table 中间数据表名 30 | */ 31 | public function __construct($data = [], Model $parent = null, $table = '') 32 | { 33 | $this->parent = $parent; 34 | 35 | if (is_null($this->name)) { 36 | $this->name = $table; 37 | } 38 | 39 | parent::__construct($data); 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /thinkphp/library/think/process/exception/Faild.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\process\exception; 13 | 14 | use think\Process; 15 | 16 | class Faild extends \RuntimeException 17 | { 18 | 19 | private $process; 20 | 21 | public function __construct(Process $process) 22 | { 23 | if ($process->isSuccessful()) { 24 | throw new \InvalidArgumentException('Expected a failed process, but the given process was successful.'); 25 | } 26 | 27 | $error = sprintf('The command "%s" failed.' . "\nExit Code: %s(%s)", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText()); 28 | 29 | if (!$process->isOutputDisabled()) { 30 | $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput()); 31 | } 32 | 33 | parent::__construct($error); 34 | 35 | $this->process = $process; 36 | } 37 | 38 | public function getProcess() 39 | { 40 | return $this->process; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /thinkphp/library/think/process/exception/Failed.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\process\exception; 13 | 14 | use think\Process; 15 | 16 | class Failed extends \RuntimeException 17 | { 18 | 19 | private $process; 20 | 21 | public function __construct(Process $process) 22 | { 23 | if ($process->isSuccessful()) { 24 | throw new \InvalidArgumentException('Expected a failed process, but the given process was successful.'); 25 | } 26 | 27 | $error = sprintf('The command "%s" failed.' . "\nExit Code: %s(%s)", $process->getCommandLine(), $process->getExitCode(), $process->getExitCodeText()); 28 | 29 | if (!$process->isOutputDisabled()) { 30 | $error .= sprintf("\n\nOutput:\n================\n%s\n\nError Output:\n================\n%s", $process->getOutput(), $process->getErrorOutput()); 31 | } 32 | 33 | parent::__construct($error); 34 | 35 | $this->process = $process; 36 | } 37 | 38 | public function getProcess() 39 | { 40 | return $this->process; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /thinkphp/library/think/response/Json.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\response; 13 | 14 | use think\Response; 15 | 16 | class Json extends Response 17 | { 18 | // 输出参数 19 | protected $options = [ 20 | 'json_encode_param' => JSON_UNESCAPED_UNICODE, 21 | ]; 22 | 23 | protected $contentType = 'application/json'; 24 | 25 | /** 26 | * 处理数据 27 | * @access protected 28 | * @param mixed $data 要处理的数据 29 | * @return mixed 30 | * @throws \Exception 31 | */ 32 | protected function output($data) 33 | { 34 | try { 35 | // 返回JSON数据格式到客户端 包含状态信息 36 | $data = json_encode($data, $this->options['json_encode_param']); 37 | 38 | if (false === $data) { 39 | throw new \InvalidArgumentException(json_last_error_msg()); 40 | } 41 | 42 | return $data; 43 | } catch (\Exception $e) { 44 | if ($e->getPrevious()) { 45 | throw $e->getPrevious(); 46 | } 47 | throw $e; 48 | } 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /thinkphp/library/think/response/Jump.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\response; 13 | 14 | use think\Response; 15 | 16 | class Jump extends Response 17 | { 18 | protected $contentType = 'text/html'; 19 | 20 | /** 21 | * 处理数据 22 | * @access protected 23 | * @param mixed $data 要处理的数据 24 | * @return mixed 25 | * @throws \Exception 26 | */ 27 | protected function output($data) 28 | { 29 | $data = $this->app['view']->fetch($this->options['jump_template'], $data); 30 | return $data; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /thinkphp/library/think/route/dispatch/Callback.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\route\dispatch; 13 | 14 | use think\route\Dispatch; 15 | 16 | class Callback extends Dispatch 17 | { 18 | public function exec() 19 | { 20 | // 执行回调方法 21 | $vars = array_merge($this->request->param(), $this->param); 22 | 23 | return $this->app->invoke($this->dispatch, $vars); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /thinkphp/library/think/route/dispatch/Controller.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\route\dispatch; 13 | 14 | use think\route\Dispatch; 15 | 16 | class Controller extends Dispatch 17 | { 18 | public function exec() 19 | { 20 | // 执行控制器的操作方法 21 | $vars = array_merge($this->request->param(), $this->param); 22 | 23 | return $this->app->action( 24 | $this->dispatch, $vars, 25 | $this->rule->getConfig('url_controller_layer'), 26 | $this->rule->getConfig('controller_suffix') 27 | ); 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /thinkphp/library/think/route/dispatch/Redirect.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\route\dispatch; 13 | 14 | use think\Response; 15 | use think\route\Dispatch; 16 | 17 | class Redirect extends Dispatch 18 | { 19 | public function exec() 20 | { 21 | return Response::create($this->dispatch, 'redirect')->code($this->code); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /thinkphp/library/think/route/dispatch/Response.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\route\dispatch; 13 | 14 | use think\route\Dispatch; 15 | 16 | class Response extends Dispatch 17 | { 18 | public function exec() 19 | { 20 | return $this->dispatch; 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /thinkphp/library/think/route/dispatch/View.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\route\dispatch; 13 | 14 | use think\Response; 15 | use think\route\Dispatch; 16 | 17 | class View extends Dispatch 18 | { 19 | public function exec() 20 | { 21 | // 渲染模板输出 22 | $vars = array_merge($this->request->param(), $this->param); 23 | 24 | return Response::create($this->dispatch, 'view')->assign($vars); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /thinkphp/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/thinkphp/logo.png -------------------------------------------------------------------------------- /thinkphp/phpunit.xml.dist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | ./library/think/*/tests/ 27 | 28 | 29 | 30 | 31 | 32 | ./library/ 33 | 34 | ./library/think/*/tests 35 | ./library/think/*/assets 36 | ./library/think/*/resources 37 | ./library/think/*/vendor 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /thinkphp/tpl/default_index.tpl: -------------------------------------------------------------------------------- 1 | *{ padding: 0; margin: 0; } div{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px;} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }

:)

ThinkPHP V5.1
12载初心不改(2006-2018) - 你值得信赖的PHP框架

'; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /vendor/autoload.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/composer/InstalledVersions.php', 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_files.php: -------------------------------------------------------------------------------- 1 | $vendorDir . '/topthink/think-captcha/src/helper.php', 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_namespaces.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/erusev/parsedown'), 10 | ); 11 | -------------------------------------------------------------------------------- /vendor/composer/autoload_psr4.php: -------------------------------------------------------------------------------- 1 | array($vendorDir . '/topthink/think-installer/src'), 10 | 'think\\captcha\\' => array($vendorDir . '/topthink/think-captcha/src'), 11 | 'app\\' => array($baseDir . '/application'), 12 | ); 13 | -------------------------------------------------------------------------------- /vendor/composer/platform_check.php: -------------------------------------------------------------------------------- 1 | = 50600)) { 8 | $issues[] = 'Your Composer dependencies require a PHP version ">= 5.6.0". You are running ' . PHP_VERSION . '.'; 9 | } 10 | 11 | if ($issues) { 12 | if (!headers_sent()) { 13 | header('HTTP/1.1 500 Internal Server Error'); 14 | } 15 | if (!ini_get('display_errors')) { 16 | if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { 17 | fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); 18 | } elseif (!headers_sent()) { 19 | echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; 20 | } 21 | } 22 | trigger_error( 23 | 'Composer detected issues in your platform: ' . implode(' ', $issues), 24 | E_USER_ERROR 25 | ); 26 | } 27 | -------------------------------------------------------------------------------- /vendor/erusev/parsedown/LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2013-2018 Emanuil Rusev, erusev.com 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so, 10 | subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /vendor/erusev/parsedown/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "erusev/parsedown", 3 | "description": "Parser for Markdown.", 4 | "keywords": ["markdown", "parser"], 5 | "homepage": "http://parsedown.org", 6 | "type": "library", 7 | "license": "MIT", 8 | "authors": [ 9 | { 10 | "name": "Emanuil Rusev", 11 | "email": "hello@erusev.com", 12 | "homepage": "http://erusev.com" 13 | } 14 | ], 15 | "require": { 16 | "php": ">=5.3.0", 17 | "ext-mbstring": "*" 18 | }, 19 | "require-dev": { 20 | "phpunit/phpunit": "^4.8.35" 21 | }, 22 | "autoload": { 23 | "psr-0": {"Parsedown": ""} 24 | }, 25 | "autoload-dev": { 26 | "psr-0": { 27 | "TestParsedown": "test/", 28 | "ParsedownTest": "test/", 29 | "CommonMarkTest": "test/", 30 | "CommonMarkTestWeak": "test/" 31 | } 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/ 2 | /composer.lock 3 | .idea -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | ThinkPHP遵循Apache2开源协议发布,并提供免费使用。 3 | 版权所有Copyright © 2006-2016 by ThinkPHP (http://thinkphp.cn) 4 | All rights reserved。 5 | ThinkPHP® 商标和著作权所有者为上海顶想信息科技有限公司。 6 | 7 | Apache Licence是著名的非盈利开源组织Apache采用的协议。 8 | 该协议和BSD类似,鼓励代码共享和尊重原作者的著作权, 9 | 允许代码修改,再作为开源或商业软件发布。需要满足 10 | 的条件: 11 | 1. 需要给代码的用户一份Apache Licence ; 12 | 2. 如果你修改了代码,需要在被修改的文件中说明; 13 | 3. 在延伸的代码中(修改和有源代码衍生的代码中)需要 14 | 带有原来代码中的协议,商标,专利声明和其他原来作者规 15 | 定需要包含的说明; 16 | 4. 如果再发布的产品中包含一个Notice文件,则在Notice文 17 | 件中需要带有本协议内容。你可以在Notice中增加自己的 18 | 许可,但不可以表现为对Apache Licence构成更改。 19 | 具体的协议参考:http://www.apache.org/licenses/LICENSE-2.0 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 24 | FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 25 | COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 26 | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 27 | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 28 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 30 | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 31 | ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 32 | POSSIBILITY OF SUCH DAMAGE. 33 | -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/README.md: -------------------------------------------------------------------------------- 1 | # think-captcha 2 | thinkphp5.1 验证码类库 3 | 4 | ## 安装 5 | > composer require topthink/think-captcha 6 | 7 | 8 | ##使用 9 | 10 | ###模板里输出验证码 11 | 12 | ~~~ 13 |
{:captcha_img()}
14 | ~~~ 15 | 或者 16 | ~~~ 17 |
captcha
18 | ~~~ 19 | > 上面两种的最终效果是一样的 20 | 21 | ### 控制器里验证 22 | 使用TP5的内置验证功能即可 23 | ~~~ 24 | $this->validate($data,[ 25 | 'captcha|验证码'=>'require|captcha' 26 | ]); 27 | ~~~ 28 | 或者手动验证 29 | ~~~ 30 | if(!captcha_check($captcha)){ 31 | //验证失败 32 | }; 33 | ~~~ -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/1.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/2.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/3.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/4.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/5.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/6.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/7.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/bgs/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/bgs/8.jpg -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/1.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/2.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/2.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/3.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/3.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/4.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/4.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/5.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/5.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/ttfs/6.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/ttfs/6.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/assets/zhttfs/1.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/5ime/API-Admin/77694353c3c4fb47331a8eeb35c9ab44154e2d07/vendor/topthink/think-captcha/assets/zhttfs/1.ttf -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "topthink/think-captcha", 3 | "description": "captcha package for thinkphp5", 4 | "authors": [ 5 | { 6 | "name": "yunwuxin", 7 | "email": "448901948@qq.com" 8 | } 9 | ], 10 | "license": "Apache-2.0", 11 | "require": { 12 | "topthink/framework": "5.1.*" 13 | }, 14 | "autoload": { 15 | "psr-4": { 16 | "think\\captcha\\": "src/" 17 | }, 18 | "files": [ 19 | "src/helper.php" 20 | ] 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /vendor/topthink/think-captcha/src/CaptchaController.php: -------------------------------------------------------------------------------- 1 | 10 | // +---------------------------------------------------------------------- 11 | 12 | namespace think\captcha; 13 | 14 | use think\facade\Config; 15 | 16 | class CaptchaController 17 | { 18 | public function index($id = "") 19 | { 20 | $captcha = new Captcha((array) Config::pull('captcha')); 21 | return $captcha->entry($id); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /vendor/topthink/think-installer/.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | composer.lock 3 | /vendor -------------------------------------------------------------------------------- /vendor/topthink/think-installer/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "topthink/think-installer", 3 | "type": "composer-plugin", 4 | "require": { 5 | "composer-plugin-api": "^1.0||^2.0" 6 | }, 7 | "require-dev": { 8 | "composer/composer": "^1.0||^2.0" 9 | }, 10 | "license": "Apache-2.0", 11 | "authors": [ 12 | { 13 | "name": "yunwuxin", 14 | "email": "448901948@qq.com" 15 | } 16 | ], 17 | "autoload": { 18 | "psr-4": { 19 | "think\\composer\\": "src" 20 | } 21 | }, 22 | "extra": { 23 | "class": "think\\composer\\Plugin" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /vendor/topthink/think-installer/src/LibraryInstaller.php: -------------------------------------------------------------------------------- 1 | makePromise(parent::install($repo, $package)); 14 | } 15 | 16 | public function update(InstalledRepositoryInterface $repo, PackageInterface $initial, PackageInterface $target) 17 | { 18 | return $this->makePromise(parent::update($repo, $initial, $target)); 19 | } 20 | 21 | protected function makePromise($promise) 22 | { 23 | if ($promise instanceof PromiseInterface) { 24 | return $promise; 25 | } 26 | return new Promise(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /vendor/topthink/think-installer/src/Plugin.php: -------------------------------------------------------------------------------- 1 | getInstallationManager(); 14 | 15 | //框架核心 16 | $manager->addInstaller(new ThinkFramework($io, $composer)); 17 | 18 | //单元测试 19 | $manager->addInstaller(new ThinkTesting($io, $composer)); 20 | 21 | //扩展 22 | $manager->addInstaller(new ThinkExtend($io, $composer)); 23 | } 24 | 25 | public function deactivate(Composer $composer, IOInterface $io) 26 | { 27 | 28 | } 29 | 30 | public function uninstall(Composer $composer, IOInterface $io) 31 | { 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /vendor/topthink/think-installer/src/Promise.php: -------------------------------------------------------------------------------- 1 |