├── .gitignore
├── .idea
├── banruo.iml
├── encodings.xml
├── misc.xml
├── modules.xml
├── vcs.xml
└── workspace.xml
├── Dockerfile
├── LICENSE
├── README.md
├── __pycache__
└── manage.cpython-36.pyc
├── asset
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── port_scan.py
├── tests.py
├── url.py
└── views.py
├── audit
├── __init__.py
├── apps.py
├── fortify_run.py
├── info.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20200321_2302.py
│ ├── 0003_auto_20200321_2311.py
│ ├── 0004_auto_20200322_0028.py
│ ├── 0005_auto_20200322_0046.py
│ └── __init__.py
├── models.py
├── tasks.py
├── url.py
└── views.py
├── banruo
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-34.pyc
│ ├── __init__.cpython-35.pyc
│ ├── __init__.cpython-36.pyc
│ ├── celery.cpython-35.pyc
│ ├── celery.cpython-36.pyc
│ ├── settings.cpython-34.pyc
│ ├── settings.cpython-35.pyc
│ ├── settings.cpython-36.pyc
│ ├── urls.cpython-35.pyc
│ ├── urls.cpython-36.pyc
│ ├── wsgi.cpython-35.pyc
│ └── wsgi.cpython-36.pyc
├── celery.py
├── config.json
├── settings.py
├── urls.py
└── wsgi.py
├── docker
├── Dockerfile
├── run.sh
└── sources.list
├── dump.rdb
├── index
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20200322_0028.py
│ └── __init__.py
├── models.py
├── tests.py
├── url.py
└── views.py
├── lib
├── __pycache__
│ ├── config_json.cpython-36.pyc
│ └── send_msg.cpython-36.pyc
├── config_json.py
└── send_msg.py
├── manage.py
├── monitor
├── __init__.py
├── admin.py
├── apps.py
├── migrations
│ └── __init__.py
├── models.py
├── tests.py
└── views.py
├── pentest
├── __init__.py
├── __pycache__
│ ├── __init__.cpython-35.pyc
│ ├── __init__.cpython-36.pyc
│ ├── apps.cpython-35.pyc
│ ├── apps.cpython-36.pyc
│ ├── auth.cpython-36.pyc
│ ├── injection.cpython-35.pyc
│ ├── injection.cpython-36.pyc
│ ├── models.cpython-35.pyc
│ ├── models.cpython-36.pyc
│ ├── proxy.cpython-36.pyc
│ ├── url.cpython-35.pyc
│ ├── url.cpython-36.pyc
│ ├── views.cpython-35.pyc
│ └── views.cpython-36.pyc
├── apps.py
├── auth.py
├── injection.py
├── migrations
│ ├── 0001_initial.py
│ ├── 0002_auto_20200104_1740.py
│ ├── 0003_auto_20200322_1730.py
│ ├── __init__.py
│ └── __pycache__
│ │ ├── 0001_initial.cpython-35.pyc
│ │ ├── 0001_initial.cpython-36.pyc
│ │ ├── 0002_auto_20190508_1112.cpython-36.pyc
│ │ ├── 0002_auto_20191120_0510.cpython-36.pyc
│ │ ├── 0002_remove_target_info_ip.cpython-36.pyc
│ │ ├── 0003_auto_20190427_0910.cpython-36.pyc
│ │ ├── 0003_auto_20190508_1121.cpython-36.pyc
│ │ ├── 0003_auto_20191120_0517.cpython-36.pyc
│ │ ├── 0004_auto_20190508_1123.cpython-36.pyc
│ │ ├── 0004_sqlmap_log.cpython-36.pyc
│ │ ├── 0005_inject_data_api_address.cpython-36.pyc
│ │ ├── 0005_inject_data_log_status.cpython-36.pyc
│ │ ├── 0006_auto_20190427_1124.cpython-36.pyc
│ │ ├── 0006_auto_20190508_1343.cpython-36.pyc
│ │ ├── 0007_auto_20190505_1321.cpython-36.pyc
│ │ ├── 0007_auto_20190509_0903.cpython-36.pyc
│ │ ├── 0008_auto_20190509_1516.cpython-36.pyc
│ │ ├── 0008_inject_data_client_ip.cpython-36.pyc
│ │ ├── 0009_auto_20190509_1520.cpython-36.pyc
│ │ ├── 0010_auto_20191031_1230.cpython-36.pyc
│ │ ├── 0011_remove_auth_filter_raw_cookies.cpython-36.pyc
│ │ ├── 0012_auto_20191031_1235.cpython-36.pyc
│ │ ├── 0013_auto_20191031_1238.cpython-36.pyc
│ │ ├── 0014_auto_20191031_1254.cpython-36.pyc
│ │ ├── 0015_authdata_date.cpython-36.pyc
│ │ ├── 0016_authdata_leixing.cpython-36.pyc
│ │ ├── 0017_authresult.cpython-36.pyc
│ │ ├── 0018_authresult_parm.cpython-36.pyc
│ │ ├── 0019_authdata_parm.cpython-36.pyc
│ │ ├── 0020_auto_20191107_1116.cpython-36.pyc
│ │ ├── 0021_auto_20191107_1220.cpython-36.pyc
│ │ ├── 0022_auth_filter_raw_parm.cpython-36.pyc
│ │ ├── 0023_auto_20191107_1224.cpython-36.pyc
│ │ ├── 0024_auto_20191107_1318.cpython-36.pyc
│ │ ├── 0025_remove_auth_filter_raw_raw.cpython-36.pyc
│ │ ├── 0026_auto_20191107_1325.cpython-36.pyc
│ │ ├── 0027_auto_20191107_1329.cpython-36.pyc
│ │ ├── 0028_remove_proxy_data_port.cpython-36.pyc
│ │ ├── 0029_auto_20191108_0315.cpython-36.pyc
│ │ ├── 0030_auto_20191108_1515.cpython-36.pyc
│ │ ├── 0031_auto_20191108_1550.cpython-36.pyc
│ │ ├── 0032_auto_20191108_1551.cpython-36.pyc
│ │ ├── 0033_auto_20191108_1552.cpython-36.pyc
│ │ ├── 0034_auto_20191108_1553.cpython-36.pyc
│ │ ├── 0035_auth_filter_raw_cookies_status.cpython-36.pyc
│ │ ├── 0036_auth_filter_raw_get_list.cpython-36.pyc
│ │ ├── __init__.cpython-35.pyc
│ │ └── __init__.cpython-36.pyc
├── models.py
├── proxy.py
├── sqlmap-api.py
├── url.py
├── views.py
└── xss.py
├── readmepic
├── 1.jpg
├── 10.jpg
├── 11.jpg
├── 12.jpg
├── 13.jpg
├── 14.jpg
├── 15.jpg
├── 16.jpg
├── 17.jpg
├── 18.jpg
├── 19.jpg
├── 2.jpg
├── 20.jpg
├── 21.jpg
├── 22.jpg
├── 23.jpg
├── 24.jpg
├── 25.jpg
├── 26.jpg
├── 27.jpg
├── 3.jpg
├── 4.jpg
├── 5.jpg
├── 6.jpg
├── 7.jpg
├── 8.jpg
└── 9.jpg
├── requirements.txt
├── ssl
├── mitmproxy-ca-cert.cer
├── mitmproxy-ca-cert.p12
├── mitmproxy-ca-cert.pem
├── mitmproxy-ca.pem
└── mitmproxy-dhparam.pem
├── static
├── css
│ ├── animate.min.css
│ ├── application.css
│ ├── base.css
│ ├── bootstrap.css
│ ├── date_time_picker.css
│ ├── font.css
│ ├── form-elements.css
│ ├── login.css
│ ├── menu.css
│ ├── report.css
│ ├── responsive.css
│ ├── select2.min.css
│ ├── skins
│ │ └── square
│ │ │ ├── grey.css
│ │ │ └── grey.png
│ ├── style.css
│ ├── stylelogin.css
│ ├── toolkit-inverse.css
│ └── xadmin.css
├── fonts
│ ├── iconfont.eot
│ ├── iconfont.svg
│ ├── iconfont.ttf
│ └── iconfont.woff
├── icon
│ └── funnel.png
├── images
│ ├── aiwrap.png
│ └── bg.png
├── js
│ ├── codemirror
│ │ ├── addon
│ │ │ ├── comment
│ │ │ │ ├── comment.js
│ │ │ │ └── continuecomment.js
│ │ │ ├── dialog
│ │ │ │ ├── dialog.css
│ │ │ │ └── dialog.js
│ │ │ ├── display
│ │ │ │ ├── autorefresh.js
│ │ │ │ ├── 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
│ │ │ │ ├── html-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
│ │ │ │ ├── jump-to-line.js
│ │ │ │ ├── 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
│ │ ├── keymap
│ │ │ ├── emacs.js
│ │ │ ├── sublime.js
│ │ │ └── vim.js
│ │ ├── lib
│ │ │ ├── codemirror.css
│ │ │ └── codemirror.js
│ │ ├── mode
│ │ │ ├── apl
│ │ │ │ ├── apl.js
│ │ │ │ └── index.html
│ │ │ ├── asciiarmor
│ │ │ │ ├── asciiarmor.js
│ │ │ │ └── index.html
│ │ │ ├── asn.1
│ │ │ │ ├── asn.1.js
│ │ │ │ └── index.html
│ │ │ ├── asterisk
│ │ │ │ ├── asterisk.js
│ │ │ │ └── index.html
│ │ │ ├── brainfuck
│ │ │ │ ├── brainfuck.js
│ │ │ │ └── index.html
│ │ │ ├── clike
│ │ │ │ ├── clike.js
│ │ │ │ ├── index.html
│ │ │ │ ├── scala.html
│ │ │ │ └── test.js
│ │ │ ├── clojure
│ │ │ │ ├── clojure.js
│ │ │ │ └── index.html
│ │ │ ├── cmake
│ │ │ │ ├── cmake.js
│ │ │ │ └── index.html
│ │ │ ├── cobol
│ │ │ │ ├── cobol.js
│ │ │ │ └── index.html
│ │ │ ├── coffeescript
│ │ │ │ ├── coffeescript.js
│ │ │ │ └── index.html
│ │ │ ├── commonlisp
│ │ │ │ ├── commonlisp.js
│ │ │ │ └── index.html
│ │ │ ├── crystal
│ │ │ │ ├── crystal.js
│ │ │ │ └── index.html
│ │ │ ├── css
│ │ │ │ ├── css.js
│ │ │ │ ├── gss.html
│ │ │ │ ├── gss_test.js
│ │ │ │ ├── index.html
│ │ │ │ ├── less.html
│ │ │ │ ├── less_test.js
│ │ │ │ ├── scss.html
│ │ │ │ ├── scss_test.js
│ │ │ │ └── test.js
│ │ │ ├── cypher
│ │ │ │ ├── cypher.js
│ │ │ │ ├── index.html
│ │ │ │ └── test.js
│ │ │ ├── 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
│ │ │ │ └── test.js
│ │ │ ├── ebnf
│ │ │ │ ├── ebnf.js
│ │ │ │ └── index.html
│ │ │ ├── ecl
│ │ │ │ ├── ecl.js
│ │ │ │ └── index.html
│ │ │ ├── eiffel
│ │ │ │ ├── eiffel.js
│ │ │ │ └── index.html
│ │ │ ├── elm
│ │ │ │ ├── elm.js
│ │ │ │ └── index.html
│ │ │ ├── erlang
│ │ │ │ ├── erlang.js
│ │ │ │ └── index.html
│ │ │ ├── factor
│ │ │ │ ├── factor.js
│ │ │ │ └── index.html
│ │ │ ├── fcl
│ │ │ │ ├── fcl.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
│ │ │ ├── handlebars
│ │ │ │ ├── handlebars.js
│ │ │ │ └── index.html
│ │ │ ├── haskell-literate
│ │ │ │ ├── haskell-literate.js
│ │ │ │ └── index.html
│ │ │ ├── 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
│ │ │ ├── javascript
│ │ │ │ ├── index.html
│ │ │ │ ├── javascript.js
│ │ │ │ ├── json-ld.html
│ │ │ │ ├── test.js
│ │ │ │ └── typescript.html
│ │ │ ├── jinja2
│ │ │ │ ├── index.html
│ │ │ │ └── jinja2.js
│ │ │ ├── jsx
│ │ │ │ ├── index.html
│ │ │ │ ├── jsx.js
│ │ │ │ └── test.js
│ │ │ ├── julia
│ │ │ │ ├── index.html
│ │ │ │ └── julia.js
│ │ │ ├── livescript
│ │ │ │ ├── index.html
│ │ │ │ └── livescript.js
│ │ │ ├── lua
│ │ │ │ ├── index.html
│ │ │ │ └── lua.js
│ │ │ ├── markdown
│ │ │ │ ├── index.html
│ │ │ │ ├── markdown.js
│ │ │ │ └── test.js
│ │ │ ├── mathematica
│ │ │ │ ├── index.html
│ │ │ │ └── mathematica.js
│ │ │ ├── mbox
│ │ │ │ ├── index.html
│ │ │ │ └── mbox.js
│ │ │ ├── meta.js
│ │ │ ├── mirc
│ │ │ │ ├── index.html
│ │ │ │ └── mirc.js
│ │ │ ├── mllike
│ │ │ │ ├── index.html
│ │ │ │ └── mllike.js
│ │ │ ├── modelica
│ │ │ │ ├── index.html
│ │ │ │ └── modelica.js
│ │ │ ├── mscgen
│ │ │ │ ├── index.html
│ │ │ │ ├── mscgen.js
│ │ │ │ ├── mscgen_test.js
│ │ │ │ ├── msgenny_test.js
│ │ │ │ └── xu_test.js
│ │ │ ├── mumps
│ │ │ │ ├── index.html
│ │ │ │ └── mumps.js
│ │ │ ├── nginx
│ │ │ │ ├── index.html
│ │ │ │ └── nginx.js
│ │ │ ├── nsis
│ │ │ │ ├── index.html
│ │ │ │ └── nsis.js
│ │ │ ├── ntriples
│ │ │ │ ├── index.html
│ │ │ │ └── ntriples.js
│ │ │ ├── octave
│ │ │ │ ├── index.html
│ │ │ │ └── octave.js
│ │ │ ├── oz
│ │ │ │ ├── index.html
│ │ │ │ └── oz.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
│ │ │ ├── powershell
│ │ │ │ ├── index.html
│ │ │ │ ├── powershell.js
│ │ │ │ └── test.js
│ │ │ ├── properties
│ │ │ │ ├── index.html
│ │ │ │ └── properties.js
│ │ │ ├── protobuf
│ │ │ │ ├── index.html
│ │ │ │ └── protobuf.js
│ │ │ ├── pug
│ │ │ │ ├── index.html
│ │ │ │ └── pug.js
│ │ │ ├── puppet
│ │ │ │ ├── index.html
│ │ │ │ └── puppet.js
│ │ │ ├── python
│ │ │ │ ├── index.html
│ │ │ │ ├── python.js
│ │ │ │ └── test.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
│ │ │ │ └── test.js
│ │ │ ├── sas
│ │ │ │ ├── index.html
│ │ │ │ └── sas.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
│ │ │ ├── solr
│ │ │ │ ├── index.html
│ │ │ │ └── solr.js
│ │ │ ├── soy
│ │ │ │ ├── index.html
│ │ │ │ ├── soy.js
│ │ │ │ └── test.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
│ │ │ ├── swift
│ │ │ │ ├── index.html
│ │ │ │ ├── swift.js
│ │ │ │ └── test.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
│ │ │ ├── troff
│ │ │ │ ├── index.html
│ │ │ │ └── troff.js
│ │ │ ├── ttcn-cfg
│ │ │ │ ├── index.html
│ │ │ │ └── ttcn-cfg.js
│ │ │ ├── ttcn
│ │ │ │ ├── index.html
│ │ │ │ └── ttcn.js
│ │ │ ├── turtle
│ │ │ │ ├── index.html
│ │ │ │ └── turtle.js
│ │ │ ├── twig
│ │ │ │ ├── index.html
│ │ │ │ └── twig.js
│ │ │ ├── vb
│ │ │ │ ├── index.html
│ │ │ │ └── vb.js
│ │ │ ├── vbscript
│ │ │ │ ├── index.html
│ │ │ │ └── vbscript.js
│ │ │ ├── velocity
│ │ │ │ ├── index.html
│ │ │ │ └── velocity.js
│ │ │ ├── verilog
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── verilog.js
│ │ │ ├── vhdl
│ │ │ │ ├── index.html
│ │ │ │ └── vhdl.js
│ │ │ ├── vue
│ │ │ │ ├── index.html
│ │ │ │ └── vue.js
│ │ │ ├── webidl
│ │ │ │ ├── index.html
│ │ │ │ └── webidl.js
│ │ │ ├── xml
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xml.js
│ │ │ ├── xquery
│ │ │ │ ├── index.html
│ │ │ │ ├── test.js
│ │ │ │ └── xquery.js
│ │ │ ├── yacas
│ │ │ │ ├── index.html
│ │ │ │ └── yacas.js
│ │ │ ├── yaml-frontmatter
│ │ │ │ ├── index.html
│ │ │ │ └── yaml-frontmatter.js
│ │ │ ├── yaml
│ │ │ │ ├── index.html
│ │ │ │ └── yaml.js
│ │ │ └── z80
│ │ │ │ ├── index.html
│ │ │ │ └── z80.js
│ │ ├── rollup.config.js
│ │ └── theme
│ │ │ ├── 3024-day.css
│ │ │ ├── 3024-night.css
│ │ │ ├── abcdef.css
│ │ │ ├── ambiance-mobile.css
│ │ │ ├── ambiance.css
│ │ │ ├── base16-dark.css
│ │ │ ├── base16-light.css
│ │ │ ├── bespin.css
│ │ │ ├── blackboard.css
│ │ │ ├── cobalt.css
│ │ │ ├── colorforth.css
│ │ │ ├── dracula.css
│ │ │ ├── duotone-dark.css
│ │ │ ├── duotone-light.css
│ │ │ ├── eclipse.css
│ │ │ ├── elegant.css
│ │ │ ├── erlang-dark.css
│ │ │ ├── hopscotch.css
│ │ │ ├── icecoder.css
│ │ │ ├── isotope.css
│ │ │ ├── lesser-dark.css
│ │ │ ├── liquibyte.css
│ │ │ ├── material.css
│ │ │ ├── mbo.css
│ │ │ ├── mdn-like.css
│ │ │ ├── midnight.css
│ │ │ ├── monokai.css
│ │ │ ├── neat.css
│ │ │ ├── neo.css
│ │ │ ├── night.css
│ │ │ ├── panda-syntax.css
│ │ │ ├── paraiso-dark.css
│ │ │ ├── paraiso-light.css
│ │ │ ├── pastel-on-dark.css
│ │ │ ├── railscasts.css
│ │ │ ├── rubyblue.css
│ │ │ ├── seti.css
│ │ │ ├── solarized.css
│ │ │ ├── the-matrix.css
│ │ │ ├── tomorrow-night-bright.css
│ │ │ ├── tomorrow-night-eighties.css
│ │ │ ├── ttcn.css
│ │ │ ├── twilight.css
│ │ │ ├── vibrant-ink.css
│ │ │ ├── xq-dark.css
│ │ │ ├── xq-light.css
│ │ │ ├── yeti.css
│ │ │ └── zenburn.css
│ ├── dump.rdb
│ ├── echarts.min.js
│ ├── info.js
│ ├── jquery.js
│ ├── layui.js
│ ├── verificationNumbers.js
│ ├── xadmin.js
│ └── xcity.js
└── lib
│ └── layui
│ ├── css
│ ├── layui.css
│ ├── layui.mobile.css
│ └── modules
│ │ ├── code.css
│ │ ├── laydate
│ │ └── default
│ │ │ └── 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
│ └── modules
│ │ ├── carousel.js
│ │ ├── code.js
│ │ ├── element.js
│ │ ├── flow.js
│ │ ├── form.js
│ │ ├── jquery.js
│ │ ├── laydate.js
│ │ ├── layedit.js
│ │ ├── layer.js
│ │ ├── laypage.js
│ │ ├── laytpl.js
│ │ ├── mobile.js
│ │ ├── table.js
│ │ ├── tree.js
│ │ ├── upload.js
│ │ └── util.js
│ ├── layui.all.js
│ └── layui.js
└── templates
├── asset
├── assetinfo.html
├── ipinfo.html
├── nmap.html
└── scan.html
├── audit
├── chandao.html
├── info.html
├── overview.html
├── projects.html
├── scan.html
└── settings.html
├── index
├── 403.html
├── base.html
├── index.html
├── login.html
└── overview.html
└── pentest
├── check_data.html
├── check_filter_data.html
├── check_log.html
├── check_nlog.html
├── overview.html
├── passive_sqli.html
├── pentest_setting.html
├── proxy.html
├── sqlmap.html
└── update_auth.html
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | *.egg-info/
24 | .installed.cfg
25 | *.egg
26 | MANIFEST
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 | .pytest_cache/
49 |
50 | # Translations
51 | *.mo
52 | *.pot
53 |
54 | # Django stuff:
55 | *.log
56 | local_settings.py
57 | db.sqlite3
58 |
59 | # Flask stuff:
60 | instance/
61 | .webassets-cache
62 |
63 | # Scrapy stuff:
64 | .scrapy
65 |
66 | # Sphinx documentation
67 | docs/_build/
68 |
69 | # PyBuilder
70 | target/
71 |
72 | # Jupyter Notebook
73 | .ipynb_checkpoints
74 |
75 | # pyenv
76 | .python-version
77 |
78 | # celery beat schedule file
79 | celerybeat-schedule
80 |
81 | # SageMath parsed files
82 | *.sage.py
83 |
84 | # Environments
85 | .env
86 | .venv
87 | env/
88 | venv/
89 | ENV/
90 | env.bak/
91 | venv.bak/
92 |
93 | # Spyder project settings
94 | .spyderproject
95 | .spyproject
96 |
97 | # Rope project settings
98 | .ropeproject
99 |
100 | # mkdocs documentation
101 | /site
102 |
103 | # mypy
104 | .mypy_cache/
105 |
--------------------------------------------------------------------------------
/.idea/banruo.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM centos:7
2 | COPY fortify_linux /opt/fortify_linux
3 |
4 |
5 | RUN yum update -y
6 | RUN yum install epel-release -y
7 | RUN yum install -y git wget python36 gcc python36-libs python36-tools python36-devel zlib-devel rpm-build openssl-devel python redis
8 |
9 | #django
10 | RUN cd /opt && git clone https://github.com/yingshang/banruo.git
11 | RUN cd /opt/banruo && pip3 install -r requirements.txt
12 | RUN cd /opt/banruo && python3 manage.py makemigrations && python3 manage.py migrate
13 |
14 | #这个是fortify的运行程序
15 | RUN mkdir /data && mkdir /data/fortify && mkdir /data/fortify/report && chmod +x /data -R
16 | RUN chmod +x -R /opt/fortify_linux/ && ln -s /opt/fortify_linux/bin/sourceanalyzer /usr/local/bin/sourceanalyzer && ln -s /opt/fortify_linux/bin/ReportGenerator /usr/local/bin/ReportGenerator
17 |
18 | #sqlmap
19 | RUN mkdir /opt/taskid
20 | RUN cd /opt && git clone https://github.com/sqlmapproject/sqlmap
21 | RUN ln -s /opt/sqlmap/sqlmapapi.py /usr/bin/sqlmapapi && ln -s /opt/sqlmap/sqlmap.py /usr/bin/sqlmap
22 |
23 |
24 | #config.json
25 | COPY config.json /opt/banruo/banruo/
26 |
27 | #ENTRYPOINT redis-server & && cd /opt/ && python3 manage.py celery -A banruo worker -l info --beat & && python3 manage.py runserver 0.0.0.0:8000
28 |
--------------------------------------------------------------------------------
/__pycache__/manage.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/__pycache__/manage.cpython-36.pyc
--------------------------------------------------------------------------------
/asset/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/asset/__init__.py
--------------------------------------------------------------------------------
/asset/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/asset/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class AssetConfig(AppConfig):
5 | name = 'asset'
6 |
--------------------------------------------------------------------------------
/asset/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/asset/migrations/__init__.py
--------------------------------------------------------------------------------
/asset/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | # Create your models here.
4 |
5 | #扫描任务
6 | class scantask(models.Model):
7 | name = models.CharField(max_length=100)
8 | ip = models.CharField(max_length=100)
9 | masscan_status = models.CharField(max_length=100) #扫描状态
10 | scantime = models.DateTimeField() #扫描时间
11 | endtime = models.DateTimeField(null=True)#结束时间
12 |
13 |
14 |
15 | #扫描IP地址
16 | class scanIP(models.Model):
17 | ip = models.CharField(max_length=100)
18 | #name = models.CharField(max_length=100,blank=True,null=True)
19 | scantime = models.DateTimeField() # 扫描时间
20 | rate = models.CharField(max_length=100,default='0.00') #扫描进度
21 | endtime = models.DateTimeField(null=True)#结束时间
22 | task = models.ForeignKey(scantask,on_delete=models.CASCADE)
23 |
24 | #IP端口情况
25 | class scan_ip_info(models.Model):
26 | port = models.CharField(max_length=100)
27 | name = models.CharField(max_length=100)
28 | product = models.CharField(max_length=100)
29 | cpe = models.CharField(max_length=200)
30 | state = models.CharField(max_length=100)
31 | ipfor = models.ForeignKey(scanIP,on_delete=models.CASCADE)
32 |
33 |
34 |
35 | #nmap扫描进度
36 | # class nmapscan(models.Model):
37 | # ip = models.CharField(max_length=100)
38 | # scantime = models.DateTimeField(auto_now=True) # 扫描时间
39 | # rate = models.CharField(max_length=100,default='0.00') #扫描进度
40 | # endtime = models.DateTimeField(null=True)#结束时间
41 | # task = models.ForeignKey(scantask,on_delete=models.CASCADE)
42 |
43 |
44 |
45 | #保存扫描资产列表
46 | class scanlist(models.Model):
47 | ips = models.CharField(max_length=100)
48 |
--------------------------------------------------------------------------------
/asset/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/asset/url.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 | from .views import *
3 |
4 | urlpatterns = [
5 | path('asset_info', asset_info, name='asset_info'),
6 | path('ip_info', ip_info, name='ip_info'),
7 | path('asset_info_api', asset_info_api, name='asset_info_api'),
8 | path('ip_info_api', ip_info_api, name='ip_info_api'),
9 | path('asset_scan', asset_scan, name='asset_scan'),
10 | path('asset_scan_api', asset_scan_api, name='asset_scan_api'),
11 | path('get_scan_task', get_scan_task, name='get_scan_task'),
12 | path('check_nmap', check_nmap, name='check_nmap'),
13 |
14 |
15 |
16 | ]
17 |
--------------------------------------------------------------------------------
/audit/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/audit/__init__.py
--------------------------------------------------------------------------------
/audit/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class AduitConfig(AppConfig):
5 | name = 'audit'
6 |
--------------------------------------------------------------------------------
/audit/migrations/0002_auto_20200321_2302.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-21 23:02
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('audit', '0001_initial'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='proj_info',
15 | options={'permissions': (('upload_code', '可以上传代码'),)},
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/audit/migrations/0003_auto_20200321_2311.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-21 23:11
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('audit', '0002_auto_20200321_2302'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='proj_info',
15 | options={'permissions': (('upload_code', '可以上传代码'), ('dashboard', '首页仪表盘'))},
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/audit/migrations/0004_auto_20200322_0028.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-22 00:28
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('audit', '0003_auto_20200321_2311'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='proj_info',
15 | options={'permissions': (('upload_code', '可以上传代码'), ('display_projects', '展示所有代码审计项目'), ('display_info', '展示一个项目的详细信息'))},
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/audit/migrations/0005_auto_20200322_0046.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-22 00:46
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('audit', '0004_auto_20200322_0028'),
10 | ]
11 |
12 | operations = [
13 | migrations.DeleteModel(
14 | name='setting',
15 | ),
16 | migrations.AlterModelOptions(
17 | name='chandao_data',
18 | options={'permissions': (('chandao_index', '展示禅道主页'), ('hidden_vul', '隐藏发送到禅道的漏洞'), ('filter_vul', '过滤发送到禅道的漏洞'), ('send_vul', '发送到禅道的漏洞'))},
19 | ),
20 | migrations.AlterModelOptions(
21 | name='proj_info',
22 | options={'permissions': (('upload_code_and_scan', '可以上传代码并且进行代码审计扫描'), ('restart_scan', '重新进行代码审计扫描'), ('display_projects', '展示所有代码审计项目'), ('display_info', '展示一个项目的详细信息'), ('delelte_project', '删除代码审计项目'))},
23 | ),
24 | migrations.AlterModelOptions(
25 | name='vul_info',
26 | options={'permissions': (('vullist', '返回一个项目的漏洞列表'), ('vuldetail', '返回一个项目的漏洞列表具体信息'))},
27 | ),
28 | ]
29 |
--------------------------------------------------------------------------------
/audit/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/audit/migrations/__init__.py
--------------------------------------------------------------------------------
/audit/tasks.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/audit/tasks.py
--------------------------------------------------------------------------------
/audit/url.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from .views import *
4 |
5 |
6 | urlpatterns = [
7 | path('projects/',display_project,name='audit_display_project'),
8 | path('info',project_info,name='audit_project_info'),
9 | path('scan', scan,name='audit_scan'),
10 | path('chandao',chandao,name='audit_chandao'),
11 | path('filter_vul', filter_vul,name='audit_filter_vul'),
12 | path('send_chaodao', send_chandao,name='audit_send_chandao'),
13 | path('api/proj_del',api_proj_del,name='audit_proj_del'),
14 | path('api/restart',restart,name='audit_audit_restart'),
15 | path('api/chandao_hidden',api_chandao_hidden,name='audit_chandao_hidden'),
16 | path('api/vullist',vullist,name='audit_vul_list'),
17 | path('api/vuldetail',vuldetail,name='audit_vul_detail'),
18 |
19 | ]
--------------------------------------------------------------------------------
/banruo/__init__.py:
--------------------------------------------------------------------------------
1 | import pymysql
2 | pymysql.install_as_MySQLdb()
3 |
4 |
5 |
6 | # This will make sure the app is always imported when
7 | # Django starts so that shared_task will use this app.
8 | from .celery import app as celery_app
9 |
10 | __all__ = ('celery_app',)
--------------------------------------------------------------------------------
/banruo/__pycache__/__init__.cpython-34.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/__init__.cpython-34.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/celery.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/celery.cpython-35.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/celery.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/celery.cpython-36.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/settings.cpython-34.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/settings.cpython-34.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/settings.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/settings.cpython-35.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/settings.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/settings.cpython-36.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/urls.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/urls.cpython-35.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/urls.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/urls.cpython-36.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/wsgi.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/wsgi.cpython-35.pyc
--------------------------------------------------------------------------------
/banruo/__pycache__/wsgi.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/banruo/__pycache__/wsgi.cpython-36.pyc
--------------------------------------------------------------------------------
/banruo/celery.py:
--------------------------------------------------------------------------------
1 | from __future__ import absolute_import, unicode_literals
2 | import os
3 | from celery import Celery
4 | from django.conf import settings
5 |
6 | # set the default Django settings module for the 'celery' program.
7 | os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'banruo.settings')
8 | app = Celery('banruo')
9 |
10 | # Using a string here means the worker will not have to
11 | # pickle the object when using Windows.
12 | app.config_from_object('django.conf:settings')
13 | app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
14 | app.conf.CELERYD_CONCURRENCY = 16
15 |
16 |
17 | @app.task(bind=True)
18 | def debug_task(self):
19 | print('Request: {0!r}'.format(self.request))
20 |
--------------------------------------------------------------------------------
/banruo/urls.py:
--------------------------------------------------------------------------------
1 | """banruo URL Configuration
2 |
3 | The `urlpatterns` list routes URLs to views. For more information please see:
4 | https://docs.djangoproject.com/en/2.0/topics/http/urls/
5 | Examples:
6 | Function views
7 | 1. Add an import: from my_app import views
8 | 2. Add a URL to urlpatterns: path('', views.home, name='home')
9 | Class-based views
10 | 1. Add an import: from other_app.views import Home
11 | 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
12 | Including another URLconf
13 | 1. Import the include() function: from django.urls import include, path
14 | 2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
15 | """
16 | from django.contrib import admin
17 | from django.urls import path,include
18 |
19 | urlpatterns = [
20 | path('admin/', admin.site.urls),
21 | path('',include('index.url')),
22 | path('audit/', include('audit.url')),
23 | path('pentest/',include('pentest.url')),
24 | #path('asset/',include('asset.url')),
25 | ]
26 |
27 |
--------------------------------------------------------------------------------
/banruo/wsgi.py:
--------------------------------------------------------------------------------
1 | """
2 | WSGI config for banruo project.
3 |
4 | It exposes the WSGI callable as a module-level variable named ``application``.
5 |
6 | For more information on this file, see
7 | https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/
8 | """
9 |
10 | import os
11 |
12 | from django.core.wsgi import get_wsgi_application
13 |
14 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "banruo.settings")
15 |
16 | application = get_wsgi_application()
17 |
--------------------------------------------------------------------------------
/docker/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM ubuntu:16.04
2 |
3 | COPY run.sh /opt/run.sh
4 | COPY sources.list /etc/apt/sources.list
5 |
6 | COPY fortify_linux /opt/fortify_linux
7 |
8 | ENV DEBIAN_FRONTEND noninteractive
9 | RUN chmod 777 /opt/run.sh
10 | RUN apt-get update -y \
11 | && apt-get install -y mysql-server mysql-client libmysqlclient-dev --no-install-recommends \
12 | && apt-get clean \
13 | && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
14 | RUN apt-get update -y
15 | RUN apt-get install -y redis-server unzip python3-pip wget vim git libffi-dev libssl-dev libjpeg8-dev zlib1g-dev libxml2-dev libxslt-dev libyaml-cpp-dev
16 | RUN pip3 install django
17 | RUN pip3 install mitmproxy==0.18.2
18 | RUN pip3 install django-celery redis pymysql
19 | RUN pip3 install typing
20 |
21 | RUN cd /opt && git clone https://github.com/yingshang/banruo.git
22 | RUN service mysql start && mysql -e "create database banruo DEFAULT CHARSET utf8 COLLATE utf8_general_ci; " && mysql -e "set password for 'root'@'localhost' =password('123456');"
23 | RUN service mysql start && cd /opt/banruo && python3 manage.py makemigrations && python3 manage.py migrate
24 | RUN mkdir /data && mkdir /data/fortify && mkdir /data/fortify/report && chmod 777 /data -R
25 | #这个是fortify的运行程序
26 | #RUN chmod 777 -R /opt/fortify_linux/ && ln -s /opt/fortify_linux/bin/sourceanalyzer /usr/local/bin/sourceanalyzer && ln -s /opt/fortify_linux/bin/ReportGenerator /usr/local/bin/ReportGenerator
27 | EXPOSE 8000
28 |
29 | ENTRYPOINT /opt/run.sh
30 |
31 |
--------------------------------------------------------------------------------
/docker/run.sh:
--------------------------------------------------------------------------------
1 | service mysql start
2 | redis-server &
3 | python3 /opt/banruo/manage.py celery -A banruo worker -l info --beat &
4 | python3 /opt/banruo/manage.py runserver 0.0.0.0:8000
5 |
--------------------------------------------------------------------------------
/docker/sources.list:
--------------------------------------------------------------------------------
1 | deb-src http://archive.ubuntu.com/ubuntu xenial main restricted #Added by software-properties
2 | deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
3 | deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted multiverse universe #Added by software-properties
4 | deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
5 | deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted multiverse universe #Added by software-properties
6 | deb http://mirrors.aliyun.com/ubuntu/ xenial universe
7 | deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
8 | deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
9 | deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
10 | deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
11 | deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse #Added by software-properties
12 | deb http://archive.canonical.com/ubuntu xenial partner
13 | deb-src http://archive.canonical.com/ubuntu xenial partner
14 | deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
15 | deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted multiverse universe #Added by software-properties
16 | deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
17 | deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
18 |
--------------------------------------------------------------------------------
/dump.rdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/dump.rdb
--------------------------------------------------------------------------------
/index/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/index/__init__.py
--------------------------------------------------------------------------------
/index/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/index/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class IndexConfig(AppConfig):
5 | name = 'index'
6 |
--------------------------------------------------------------------------------
/index/migrations/0001_initial.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-21 23:42
2 |
3 | from django.db import migrations, models
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | initial = True
9 |
10 | dependencies = [
11 | ]
12 |
13 | operations = [
14 | migrations.CreateModel(
15 | name='im',
16 | fields=[
17 | ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
18 | ],
19 | options={
20 | 'permissions': (('upload_code', '可以上传代码'), ('dashboard', '首页仪表盘')),
21 | },
22 | ),
23 | ]
24 |
--------------------------------------------------------------------------------
/index/migrations/0002_auto_20200322_0028.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-22 00:28
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('index', '0001_initial'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='im',
15 | options={'permissions': (('dashboard', '首页仪表盘'),)},
16 | ),
17 | ]
18 |
--------------------------------------------------------------------------------
/index/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/index/migrations/__init__.py
--------------------------------------------------------------------------------
/index/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | # Create your models here.
4 |
5 | class im(models.Model):
6 |
7 | class Meta:
8 | permissions = (
9 |
10 | ("dashboard", "首页仪表盘"),
11 | )
12 |
13 |
--------------------------------------------------------------------------------
/index/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/index/url.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 |
3 | from .views import *
4 |
5 |
6 | urlpatterns = [
7 | path('overview/',overview,name='index_overview'),
8 | path('',base,name='index_base'),
9 | path('login/',login,name='index_login'),
10 | path('logout/',logout,name='index_logout'),
11 | #path('index/',index,name='index_index'),
12 |
13 | ]
14 |
15 | handler403 = permission_denied
16 |
--------------------------------------------------------------------------------
/lib/__pycache__/config_json.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/lib/__pycache__/config_json.cpython-36.pyc
--------------------------------------------------------------------------------
/lib/__pycache__/send_msg.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/lib/__pycache__/send_msg.cpython-36.pyc
--------------------------------------------------------------------------------
/manage.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | import os
3 | import sys
4 |
5 | if __name__ == "__main__":
6 | os.environ.setdefault("DJANGO_SETTINGS_MODULE", "banruo.settings")
7 | try:
8 | from django.core.management import execute_from_command_line
9 | except ImportError as exc:
10 | raise ImportError(
11 | "Couldn't import Django. Are you sure it's installed and "
12 | "available on your PYTHONPATH environment variable? Did you "
13 | "forget to activate a virtual environment?"
14 | ) from exc
15 | execute_from_command_line(sys.argv)
16 |
--------------------------------------------------------------------------------
/monitor/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/monitor/__init__.py
--------------------------------------------------------------------------------
/monitor/admin.py:
--------------------------------------------------------------------------------
1 | from django.contrib import admin
2 |
3 | # Register your models here.
4 |
--------------------------------------------------------------------------------
/monitor/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class MonitorConfig(AppConfig):
5 | name = 'monitor'
6 |
--------------------------------------------------------------------------------
/monitor/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/monitor/migrations/__init__.py
--------------------------------------------------------------------------------
/monitor/models.py:
--------------------------------------------------------------------------------
1 | from django.db import models
2 |
3 | # Create your models here.
4 |
--------------------------------------------------------------------------------
/monitor/tests.py:
--------------------------------------------------------------------------------
1 | from django.test import TestCase
2 |
3 | # Create your tests here.
4 |
--------------------------------------------------------------------------------
/monitor/views.py:
--------------------------------------------------------------------------------
1 | from django.shortcuts import render
2 |
3 | # Create your views here.
4 |
--------------------------------------------------------------------------------
/pentest/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__init__.py
--------------------------------------------------------------------------------
/pentest/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/apps.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/apps.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/apps.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/apps.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/auth.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/auth.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/injection.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/injection.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/injection.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/injection.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/models.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/models.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/models.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/models.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/proxy.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/proxy.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/url.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/url.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/url.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/url.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/views.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/views.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/__pycache__/views.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/__pycache__/views.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/apps.py:
--------------------------------------------------------------------------------
1 | from django.apps import AppConfig
2 |
3 |
4 | class PentestConfig(AppConfig):
5 | name = 'pentest'
6 |
7 |
--------------------------------------------------------------------------------
/pentest/migrations/0002_auto_20200104_1740.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-01-04 17:40
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('pentest', '0001_initial'),
10 | ]
11 |
12 | operations = [
13 | migrations.RemoveField(
14 | model_name='scan_ip_info',
15 | name='ipfor',
16 | ),
17 | migrations.DeleteModel(
18 | name='scan_ip_info',
19 | ),
20 | migrations.DeleteModel(
21 | name='scanIP',
22 | ),
23 | ]
24 |
--------------------------------------------------------------------------------
/pentest/migrations/0003_auto_20200322_1730.py:
--------------------------------------------------------------------------------
1 | # Generated by Django 2.1.15 on 2020-03-22 17:30
2 |
3 | from django.db import migrations
4 |
5 |
6 | class Migration(migrations.Migration):
7 |
8 | dependencies = [
9 | ('pentest', '0002_auto_20200104_1740'),
10 | ]
11 |
12 | operations = [
13 | migrations.AlterModelOptions(
14 | name='filter_data',
15 | options={'permissions': (('filter_packect', '过滤数据包'),)},
16 | ),
17 | migrations.AlterModelOptions(
18 | name='inject_data',
19 | options={'permissions': (('display_sqli', '展示被动注入的页面'), ('start_sqlmap', '开始SQLMAP注入'), ('get_inject_data', '获取sqlmap注入的数据'), ('update_auth', '更新cookie的有效性'), ('check_log', '查看sqlmap扫描的实时日志'), ('check_nlog', '查看sqlmap扫描的最终日志'), ('check_data', '查看sqlmap注入的数据包'), ('start_sqlmap_api', '启动SQLMAP的API'), ('resart_injection_api', '对单一数据包重新SQL注入'))},
20 | ),
21 | migrations.AlterModelOptions(
22 | name='proxy_data',
23 | options={'permissions': (('proxy_index', '展示代理抓包的页面'), ('starting_proxy', '启动mitmproxy进行代理监听'), ('display_proxy_data', '展示全部代理数据包的信息'), ('check_filter_data', '展示过滤之后的数据包'))},
24 | ),
25 | ]
26 |
--------------------------------------------------------------------------------
/pentest/migrations/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__init__.py
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0001_initial.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0001_initial.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0001_initial.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0001_initial.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0002_auto_20190508_1112.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0002_auto_20190508_1112.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0002_auto_20191120_0510.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0002_auto_20191120_0510.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0002_remove_target_info_ip.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0002_remove_target_info_ip.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0003_auto_20190427_0910.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0003_auto_20190427_0910.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0003_auto_20190508_1121.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0003_auto_20190508_1121.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0003_auto_20191120_0517.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0003_auto_20191120_0517.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0004_auto_20190508_1123.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0004_auto_20190508_1123.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0004_sqlmap_log.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0004_sqlmap_log.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0005_inject_data_api_address.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0005_inject_data_api_address.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0005_inject_data_log_status.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0005_inject_data_log_status.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0006_auto_20190427_1124.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0006_auto_20190427_1124.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0006_auto_20190508_1343.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0006_auto_20190508_1343.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0007_auto_20190505_1321.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0007_auto_20190505_1321.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0007_auto_20190509_0903.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0007_auto_20190509_0903.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0008_auto_20190509_1516.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0008_auto_20190509_1516.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0008_inject_data_client_ip.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0008_inject_data_client_ip.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0009_auto_20190509_1520.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0009_auto_20190509_1520.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0010_auto_20191031_1230.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0010_auto_20191031_1230.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0011_remove_auth_filter_raw_cookies.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0011_remove_auth_filter_raw_cookies.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0012_auto_20191031_1235.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0012_auto_20191031_1235.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0013_auto_20191031_1238.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0013_auto_20191031_1238.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0014_auto_20191031_1254.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0014_auto_20191031_1254.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0015_authdata_date.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0015_authdata_date.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0016_authdata_leixing.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0016_authdata_leixing.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0017_authresult.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0017_authresult.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0018_authresult_parm.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0018_authresult_parm.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0019_authdata_parm.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0019_authdata_parm.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0020_auto_20191107_1116.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0020_auto_20191107_1116.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0021_auto_20191107_1220.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0021_auto_20191107_1220.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0022_auth_filter_raw_parm.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0022_auth_filter_raw_parm.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0023_auto_20191107_1224.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0023_auto_20191107_1224.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0024_auto_20191107_1318.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0024_auto_20191107_1318.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0025_remove_auth_filter_raw_raw.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0025_remove_auth_filter_raw_raw.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0026_auto_20191107_1325.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0026_auto_20191107_1325.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0027_auto_20191107_1329.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0027_auto_20191107_1329.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0028_remove_proxy_data_port.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0028_remove_proxy_data_port.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0029_auto_20191108_0315.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0029_auto_20191108_0315.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0030_auto_20191108_1515.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0030_auto_20191108_1515.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0031_auto_20191108_1550.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0031_auto_20191108_1550.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0032_auto_20191108_1551.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0032_auto_20191108_1551.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0033_auto_20191108_1552.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0033_auto_20191108_1552.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0034_auto_20191108_1553.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0034_auto_20191108_1553.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0035_auth_filter_raw_cookies_status.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0035_auth_filter_raw_cookies_status.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/0036_auth_filter_raw_get_list.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/0036_auth_filter_raw_get_list.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/__init__.cpython-35.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/__init__.cpython-35.pyc
--------------------------------------------------------------------------------
/pentest/migrations/__pycache__/__init__.cpython-36.pyc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/pentest/migrations/__pycache__/__init__.cpython-36.pyc
--------------------------------------------------------------------------------
/pentest/sqlmap-api.py:
--------------------------------------------------------------------------------
1 | import requests
2 | import json
3 | headers = {'Content-Type': 'application/json'}
4 | r = requests.get(url="http://127.0.0.1:8775/scan/b9272f9a3ddeff7b/log",headers=headers)
5 | logs = r.json()['log']
6 | log = ""
7 |
8 |
9 | print(logs[-1]['message'])
--------------------------------------------------------------------------------
/pentest/url.py:
--------------------------------------------------------------------------------
1 | from django.urls import path
2 | from .views import *
3 |
4 | urlpatterns = [
5 | path('proxy', proxy, name='proxy'),
6 | path('starting_proxy', starting_proxy, name='starting_proxy'),
7 | path('filter_packect', filter_packect, name='filter_packect'),
8 | path('passive_sqli', passive_sqli, name='passive_sqli'),
9 | path('start_sqlmap_api', start_sqlmap_api, name='start_sqlmap_api'),
10 | path('stop_sqlmap_api', stop_sqlmap_api, name='stop_sqlmap_api'),
11 | path('update_auth', update_auth, name='update_auth'),
12 | path('start_sqlmap', start_sqlmap, name='start_sqlmap'),
13 | path('check_log', check_log, name='check_log'),
14 | path('check_nlog', check_nlog, name='check_nlog'),
15 | path('check_data', check_data, name='check_data'),
16 | path('check_filter_data', check_filter_data, name='check_filter_data'),
17 | path('api/proxy/', display_proxy_data, name='display_proxy_data'),
18 | path('api/get_inject_data/', get_inject_data, name='get_inject_data'),
19 | path('api/resart_injection_api/', resart_injection_api, name='resart_injection_api'),
20 |
21 |
22 | ]
23 |
--------------------------------------------------------------------------------
/pentest/xss.py:
--------------------------------------------------------------------------------
1 | import json
2 | import time
3 | import requests
4 |
5 | headers={'Content-Type':'application/json'}
6 | data = {
7 | "url":"http://5.133.109.136:8080/index.php?page=user-info.php&username=1&password=1&user-info-php-submit-button=View+Account+Details"
8 | }
9 |
10 | r = requests.post(url="http://192.168.2.142:2333/xssfork/create_task/fW7rmRje1fPHObw/",data=json.dumps(data),headers=headers)
11 | print(r.text)
12 |
13 |
14 |
--------------------------------------------------------------------------------
/readmepic/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/1.jpg
--------------------------------------------------------------------------------
/readmepic/10.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/10.jpg
--------------------------------------------------------------------------------
/readmepic/11.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/11.jpg
--------------------------------------------------------------------------------
/readmepic/12.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/12.jpg
--------------------------------------------------------------------------------
/readmepic/13.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/13.jpg
--------------------------------------------------------------------------------
/readmepic/14.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/14.jpg
--------------------------------------------------------------------------------
/readmepic/15.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/15.jpg
--------------------------------------------------------------------------------
/readmepic/16.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/16.jpg
--------------------------------------------------------------------------------
/readmepic/17.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/17.jpg
--------------------------------------------------------------------------------
/readmepic/18.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/18.jpg
--------------------------------------------------------------------------------
/readmepic/19.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/19.jpg
--------------------------------------------------------------------------------
/readmepic/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/2.jpg
--------------------------------------------------------------------------------
/readmepic/20.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/20.jpg
--------------------------------------------------------------------------------
/readmepic/21.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/21.jpg
--------------------------------------------------------------------------------
/readmepic/22.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/22.jpg
--------------------------------------------------------------------------------
/readmepic/23.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/23.jpg
--------------------------------------------------------------------------------
/readmepic/24.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/24.jpg
--------------------------------------------------------------------------------
/readmepic/25.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/25.jpg
--------------------------------------------------------------------------------
/readmepic/26.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/26.jpg
--------------------------------------------------------------------------------
/readmepic/27.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/27.jpg
--------------------------------------------------------------------------------
/readmepic/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/3.jpg
--------------------------------------------------------------------------------
/readmepic/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/4.jpg
--------------------------------------------------------------------------------
/readmepic/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/5.jpg
--------------------------------------------------------------------------------
/readmepic/6.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/6.jpg
--------------------------------------------------------------------------------
/readmepic/7.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/7.jpg
--------------------------------------------------------------------------------
/readmepic/8.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/8.jpg
--------------------------------------------------------------------------------
/readmepic/9.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/readmepic/9.jpg
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | mitmproxy==5.1.1
2 | django==2.1.15
3 | redis==2.10.6
4 | pymysql==0.9.3
5 | django-celery==3.2.2
6 | celery==3.1.26.post2
7 | python_json_config==1.2.1
8 | anyjson==0.3.3
9 | celery-with-redis
10 | psutil
11 | IPy
12 | django_crontab
13 | requests
14 | markdown
15 | jira
16 | pyecharts
17 |
--------------------------------------------------------------------------------
/ssl/mitmproxy-ca-cert.cer:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIDoTCCAomgAwIBAgIGDeUPZcxAMA0GCSqGSIb3DQEBCwUAMCgxEjAQBgNVBAMM
3 | CW1pdG1wcm94eTESMBAGA1UECgwJbWl0bXByb3h5MB4XDTE4MDUyOTA1NDgyMFoX
4 | DTIxMDUzMDA1NDgyMFowKDESMBAGA1UEAwwJbWl0bXByb3h5MRIwEAYDVQQKDAlt
5 | aXRtcHJveHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKuKugJt4V
6 | XdNythv6or9I+NuA+KEqfef1XcvVvy7KfPJo3RVALd1gt4ReXo7gT7LOKFT7PEBi
7 | t5hFr83O8pTDs77II7KPbrGBILRDBCkyMQuwEAaMq0yYH7gY+OMzkLhfjE9vHrQm
8 | HOgrRTcD7Ck//K4DfAAKuvHcKd6Cq6caebvSg9fCJM88Oy8YDK9mR/f1JU2ckTl3
9 | wz3tbmsPDb6H8r95vdVEjZRDf3KNqQhH3KwAF1zqULM0LRaO+taJ7WK9tHegKQoL
10 | z+AwVswJzH742ZSHHf/TuyKW5EZiLLkgGVwtlifRFldsNxjFW0EWYWArOJX/5a6c
11 | AlThxm169ZizAgMBAAGjgdAwgc0wDwYDVR0TAQH/BAUwAwEB/zARBglghkgBhvhC
12 | AQEEBAMCAgQweAYDVR0lBHEwbwYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcD
13 | BAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQBgjcCARYGCisGAQQBgjcKAwEG
14 | CisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG+EIEATAOBgNVHQ8BAf8EBAMC
15 | AQYwHQYDVR0OBBYEFMnJZ0RcKza/N5OGy7oxkQW7WzExMA0GCSqGSIb3DQEBCwUA
16 | A4IBAQAEf5xB29fDwUmPov5QsE2LjybhITpFctcJPANlA/tdfG3cXhz4W490Q6gN
17 | Lc1yzVdrxDBGghria2EyubChmYKCq3kN5SmfFJoHL/XUCPCKN27bzSXZ+22vRRX8
18 | K1gp+Zj/zvhKYDhnHeFKv5ry+kGCO1U4NxSKXwphCnNKKY2H7y75Ss2jvAOb3Zwv
19 | tc16jU8NyMUT6nM+35GewRQ/ZCkcvD6niFOFtHgJtdODX72InfqAkRxnyPTx6MwU
20 | gvmazVxcfULM2W2HcXk4jMiDZxN3UmOgpZRTfvbRkV9gPdY/XPlqPV8v3qxa19Nw
21 | Im6ZEbjf1LAOu2GdemLru4Sjc6it
22 | -----END CERTIFICATE-----
23 |
--------------------------------------------------------------------------------
/ssl/mitmproxy-ca-cert.p12:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/ssl/mitmproxy-ca-cert.p12
--------------------------------------------------------------------------------
/ssl/mitmproxy-ca-cert.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIDoTCCAomgAwIBAgIGDeUPZcxAMA0GCSqGSIb3DQEBCwUAMCgxEjAQBgNVBAMM
3 | CW1pdG1wcm94eTESMBAGA1UECgwJbWl0bXByb3h5MB4XDTE4MDUyOTA1NDgyMFoX
4 | DTIxMDUzMDA1NDgyMFowKDESMBAGA1UEAwwJbWl0bXByb3h5MRIwEAYDVQQKDAlt
5 | aXRtcHJveHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDKuKugJt4V
6 | XdNythv6or9I+NuA+KEqfef1XcvVvy7KfPJo3RVALd1gt4ReXo7gT7LOKFT7PEBi
7 | t5hFr83O8pTDs77II7KPbrGBILRDBCkyMQuwEAaMq0yYH7gY+OMzkLhfjE9vHrQm
8 | HOgrRTcD7Ck//K4DfAAKuvHcKd6Cq6caebvSg9fCJM88Oy8YDK9mR/f1JU2ckTl3
9 | wz3tbmsPDb6H8r95vdVEjZRDf3KNqQhH3KwAF1zqULM0LRaO+taJ7WK9tHegKQoL
10 | z+AwVswJzH742ZSHHf/TuyKW5EZiLLkgGVwtlifRFldsNxjFW0EWYWArOJX/5a6c
11 | AlThxm169ZizAgMBAAGjgdAwgc0wDwYDVR0TAQH/BAUwAwEB/zARBglghkgBhvhC
12 | AQEEBAMCAgQweAYDVR0lBHEwbwYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEFBQcD
13 | BAYIKwYBBQUHAwgGCisGAQQBgjcCARUGCisGAQQBgjcCARYGCisGAQQBgjcKAwEG
14 | CisGAQQBgjcKAwMGCisGAQQBgjcKAwQGCWCGSAGG+EIEATAOBgNVHQ8BAf8EBAMC
15 | AQYwHQYDVR0OBBYEFMnJZ0RcKza/N5OGy7oxkQW7WzExMA0GCSqGSIb3DQEBCwUA
16 | A4IBAQAEf5xB29fDwUmPov5QsE2LjybhITpFctcJPANlA/tdfG3cXhz4W490Q6gN
17 | Lc1yzVdrxDBGghria2EyubChmYKCq3kN5SmfFJoHL/XUCPCKN27bzSXZ+22vRRX8
18 | K1gp+Zj/zvhKYDhnHeFKv5ry+kGCO1U4NxSKXwphCnNKKY2H7y75Ss2jvAOb3Zwv
19 | tc16jU8NyMUT6nM+35GewRQ/ZCkcvD6niFOFtHgJtdODX72InfqAkRxnyPTx6MwU
20 | gvmazVxcfULM2W2HcXk4jMiDZxN3UmOgpZRTfvbRkV9gPdY/XPlqPV8v3qxa19Nw
21 | Im6ZEbjf1LAOu2GdemLru4Sjc6it
22 | -----END CERTIFICATE-----
23 |
--------------------------------------------------------------------------------
/ssl/mitmproxy-dhparam.pem:
--------------------------------------------------------------------------------
1 |
2 | -----BEGIN DH PARAMETERS-----
3 | MIICCAKCAgEAyT6LzpwVFS3gryIo29J5icvgxCnCebcdSe/NHMkD8dKJf8suFCg3
4 | O2+dguLakSVif/t6dhImxInJk230HmfC8q93hdcg/j8rLGJYDKu3ik6H//BAHKIv
5 | j5O9yjU3rXCfmVJQic2Nne39sg3CreAepEts2TvYHhVv3TEAzEqCtOuTjgDv0ntJ
6 | Gwpj+BJBRQGG9NvprX1YGJ7WOFBP/hWU7d6tgvE6Xa7T/u9QIKpYHMIkcN/l3ZFB
7 | chZEqVlyrcngtSXCROTPcDOQ6Q8QzhaBJS+Z6rcsd7X+haiQqvoFcmaJ08Ks6LQC
8 | ZIL2EtYJw8V8z7C0igVEBIADZBI6OTbuuhDwRw//zU1uq52Oc48CIZlGxTYG/Evq
9 | o9EWAXUYVzWkDSTeBH1r4z/qLPE2cnhtMxbFxuvK53jGB0emy2y1Ei6IhKshJ5qX
10 | IB/aE7SSHyQ3MDHHkCmQJCsOd4Mo26YX61NZ+n501XjqpCBQ2+DfZCBh8Va2wDyv
11 | A2Ryg9SUz8j0AXViRNMJgJrr446yro/FuJZwnQcO3WQnXeqSBnURqKjmqkeFP+d8
12 | 6mk2tqJaY507lRNqtGlLnj7f5RNoBFJDCLBNurVgfvq9TCVWKDIFD4vZRjCrnl6I
13 | rD693XKIHUCWOjMh1if6omGXKHH40QuME2gNa50+YPn1iYDl88uDbbMCAQI=
14 | -----END DH PARAMETERS-----
15 |
--------------------------------------------------------------------------------
/static/css/application.css:
--------------------------------------------------------------------------------
1 | /* global body padding */
2 | body {
3 | padding-top: 20px;
4 | padding-bottom: 20px;
5 | }
6 |
7 | @media (min-width: 768px) {
8 | body {
9 | padding-top: 50px;
10 | padding-bottom: 50px;
11 | }
12 | }
13 |
14 | /* global spacing overrides */
15 | h1, h2, h3, h4, h5, h6,
16 | .a, .b, .c, .d, .e, .f {
17 | margin-top: 0;
18 | }
19 |
20 | hr {
21 | margin-top: 30px;
22 | margin-bottom: 30px;
23 | }
24 |
25 | .g,
26 | .h {
27 | border-bottom: 0;
28 | }
29 |
30 | .chart {
31 | background: transparent !important;
32 | }
33 |
--------------------------------------------------------------------------------
/static/css/base.css:
--------------------------------------------------------------------------------
1 | @import url("bootstrap.css"); /* Main Bootstrap */
2 | @import url("animate.min.css"); /* Animate On Page Scroll */
3 | @import url("style.css"); /* Main theme styles */
4 | @import url("menu.css"); /* Menu styles */
5 | @import url("responsive.css"); /* Responsive */
6 |
7 | /*
8 | How to change colors
9 | 1) uncomment one of the color variation below
10 | 2) rename the color variation logo img inside the img folder to match the default logo file name (logo.png/logo_sticky.png), this avoid to change the logo file name in every page.
11 |
12 | DONE!
13 | */
14 |
15 | /* @import url("color-aqua.css"); Color variation aqua */
16 | /* @import url("color-orange.css"); Color variation Orange */
17 | /* @import url("color-green.css"); Color variation Green */
--------------------------------------------------------------------------------
/static/css/font.css:
--------------------------------------------------------------------------------
1 | @font-face {
2 | font-family: 'iconfont';
3 | src: url('../fonts/iconfont.eot');
4 | src: url('../fonts/iconfont.eot?#iefix') format('embedded-opentype'),
5 | url('../fonts/iconfont.woff') format('woff'),
6 | url('../fonts/iconfont.ttf') format('truetype'),
7 | url('../fonts/iconfont.svg#iconfont') format('svg');
8 | }
9 | .iconfont{
10 | font-family:"iconfont" !important;
11 | font-size:16px;font-style:normal;
12 | -webkit-font-smoothing: antialiased;
13 | -webkit-text-stroke-width: 0.2px;
14 | -moz-osx-font-smoothing: grayscale;
15 | }
16 |
17 |
--------------------------------------------------------------------------------
/static/css/skins/square/grey.css:
--------------------------------------------------------------------------------
1 | /* iCheck plugin Square skin, grey
2 | ----------------------------------- */
3 | .icheckbox_square-grey,
4 | .iradio_square-grey {
5 | display: inline-block;
6 | *display: inline;
7 | vertical-align: middle;
8 | margin: 0 10px 0 0;
9 | padding: 0;
10 | width: 22px;
11 | height: 22px;
12 | background: url(grey.png) no-repeat;
13 | border: none;
14 | cursor: pointer;
15 | }
16 |
17 | .icheckbox_square-grey {
18 | background-position: 0 0;
19 | }
20 | .icheckbox_square-grey.hover {
21 | background-position: -24px 0;
22 | }
23 | .icheckbox_square-grey.checked {
24 | background-position: -48px 0;
25 | }
26 | .icheckbox_square-grey.disabled {
27 | background-position: -72px 0;
28 | cursor: default;
29 | }
30 | .icheckbox_square-grey.checked.disabled {
31 | background-position: -96px 0;
32 | }
33 |
34 | .iradio_square-grey {
35 | background-position: -120px 0;
36 | }
37 | .iradio_square-grey.hover {
38 | background-position: -144px 0;
39 | }
40 | .iradio_square-grey.checked {
41 | background-position: -168px 0;
42 | }
43 | .iradio_square-grey.disabled {
44 | background-position: -192px 0;
45 | cursor: default;
46 | }
47 | .iradio_square-grey.checked.disabled {
48 | background-position: -216px 0;
49 | }
50 |
51 | /* HiDPI support */
52 | @media (-o-min-device-pixel-ratio: 5/4), (-webkit-min-device-pixel-ratio: 1.25), (min-resolution: 120dpi) {
53 | .icheckbox_square-grey,
54 | .iradio_square-grey {
55 | background-image: url(grey@2x.png);
56 | -webkit-background-size: 240px 24px;
57 | background-size: 240px 24px;
58 | }
59 | }
--------------------------------------------------------------------------------
/static/css/skins/square/grey.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/css/skins/square/grey.png
--------------------------------------------------------------------------------
/static/fonts/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/fonts/iconfont.eot
--------------------------------------------------------------------------------
/static/fonts/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/fonts/iconfont.ttf
--------------------------------------------------------------------------------
/static/fonts/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/fonts/iconfont.woff
--------------------------------------------------------------------------------
/static/icon/funnel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/icon/funnel.png
--------------------------------------------------------------------------------
/static/images/aiwrap.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/images/aiwrap.png
--------------------------------------------------------------------------------
/static/images/bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/images/bg.png
--------------------------------------------------------------------------------
/static/js/codemirror/addon/dialog/dialog.css:
--------------------------------------------------------------------------------
1 | .CodeMirror-dialog {
2 | position: absolute;
3 | left: 0; right: 0;
4 | background: inherit;
5 | z-index: 15;
6 | padding: .1em .8em;
7 | overflow: hidden;
8 | color: inherit;
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 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/display/autorefresh.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("autoRefresh", false, function(cm, val) {
15 | if (cm.state.autoRefresh) {
16 | stopListening(cm, cm.state.autoRefresh)
17 | cm.state.autoRefresh = null
18 | }
19 | if (val && cm.display.wrapper.offsetHeight == 0)
20 | startListening(cm, cm.state.autoRefresh = {delay: val.delay || 250})
21 | })
22 |
23 | function startListening(cm, state) {
24 | function check() {
25 | if (cm.display.wrapper.offsetHeight) {
26 | stopListening(cm, state)
27 | if (cm.display.lastWrapHeight != cm.display.wrapper.clientHeight)
28 | cm.refresh()
29 | } else {
30 | state.timeout = setTimeout(check, state.delay)
31 | }
32 | }
33 | state.timeout = setTimeout(check, state.delay)
34 | state.hurry = function() {
35 | clearTimeout(state.timeout)
36 | state.timeout = setTimeout(check, 50)
37 | }
38 | CodeMirror.on(window, "mouseup", state.hurry)
39 | CodeMirror.on(window, "keyup", state.hurry)
40 | }
41 |
42 | function stopListening(_cm, state) {
43 | clearTimeout(state.timeout)
44 | CodeMirror.off(window, "mouseup", state.hurry)
45 | CodeMirror.off(window, "keyup", state.hurry)
46 | }
47 | });
48 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/fold/indent-fold.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.registerHelper("fold", "indent", function(cm, start) {
15 | var tabSize = cm.getOption("tabSize"), firstLine = cm.getLine(start.line);
16 | if (!/\S/.test(firstLine)) return;
17 | var getIndent = function(line) {
18 | return CodeMirror.countColumn(line, null, tabSize);
19 | };
20 | var myIndent = getIndent(firstLine);
21 | var lastLineInFold = null;
22 | // Go through lines until we find a line that definitely doesn't belong in
23 | // the block we're folding, or to the end.
24 | for (var i = start.line + 1, end = cm.lastLine(); i <= end; ++i) {
25 | var curLine = cm.getLine(i);
26 | var curIndent = getIndent(curLine);
27 | if (curIndent > myIndent) {
28 | // Lines with a greater indent are considered part of the block.
29 | lastLineInFold = i;
30 | } else if (!/\S/.test(curLine)) {
31 | // Empty lines might be breaks within the block we're trying to fold.
32 | } else {
33 | // A non-empty line at an indent equal to or less than ours marks the
34 | // start of another block.
35 | break;
36 | }
37 | }
38 | if (lastLineInFold) return {
39 | from: CodeMirror.Pos(start.line, firstLine.length),
40 | to: CodeMirror.Pos(lastLineInFold, cm.getLine(lastLineInFold).length)
41 | };
42 | });
43 |
44 | });
45 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/fold/markdown-fold.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.registerHelper("fold", "markdown", function(cm, start) {
15 | var maxDepth = 100;
16 |
17 | function isHeader(lineNo) {
18 | var tokentype = cm.getTokenTypeAt(CodeMirror.Pos(lineNo, 0));
19 | return tokentype && /\bheader\b/.test(tokentype);
20 | }
21 |
22 | function headerLevel(lineNo, line, nextLine) {
23 | var match = line && line.match(/^#+/);
24 | if (match && isHeader(lineNo)) return match[0].length;
25 | match = nextLine && nextLine.match(/^[=\-]+\s*$/);
26 | if (match && isHeader(lineNo + 1)) return nextLine[0] == "=" ? 1 : 2;
27 | return maxDepth;
28 | }
29 |
30 | var firstLine = cm.getLine(start.line), nextLine = cm.getLine(start.line + 1);
31 | var level = headerLevel(start.line, firstLine, nextLine);
32 | if (level === maxDepth) return undefined;
33 |
34 | var lastLineNo = cm.lastLine();
35 | var end = start.line, nextNextLine = cm.getLine(end + 2);
36 | while (end < lastLineNo) {
37 | if (headerLevel(end + 1, nextLine, nextNextLine) <= level) break;
38 | ++end;
39 | nextLine = nextNextLine;
40 | nextNextLine = cm.getLine(end + 2);
41 | }
42 |
43 | return {
44 | from: CodeMirror.Pos(start.line, firstLine.length),
45 | to: CodeMirror.Pos(end, cm.getLine(end).length)
46 | };
47 | });
48 |
49 | });
50 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/hint/anyword-hint.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 | var WORD = /[\w$]+/, RANGE = 500;
15 |
16 | CodeMirror.registerHelper("hint", "anyword", function(editor, options) {
17 | var word = options && options.word || WORD;
18 | var range = options && options.range || RANGE;
19 | var cur = editor.getCursor(), curLine = editor.getLine(cur.line);
20 | var end = cur.ch, start = end;
21 | while (start && word.test(curLine.charAt(start - 1))) --start;
22 | var curWord = start != end && curLine.slice(start, end);
23 |
24 | var list = options && options.list || [], seen = {};
25 | var re = new RegExp(word.source, "g");
26 | for (var dir = -1; dir <= 1; dir += 2) {
27 | var line = cur.line, endLine = Math.min(Math.max(line + dir * range, editor.firstLine()), editor.lastLine()) + dir;
28 | for (; line != endLine; line += dir) {
29 | var text = editor.getLine(line), m;
30 | while (m = re.exec(text)) {
31 | if (line == cur.line && m[0] === curWord) continue;
32 | if ((!curWord || m[0].lastIndexOf(curWord, 0) == 0) && !Object.prototype.hasOwnProperty.call(seen, m[0])) {
33 | seen[m[0]] = true;
34 | list.push(m[0]);
35 | }
36 | }
37 | }
38 | }
39 | return {list: list, from: CodeMirror.Pos(cur.line, start), to: CodeMirror.Pos(cur.line, end)};
40 | });
41 | });
42 |
--------------------------------------------------------------------------------
/static/js/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 | white-space: pre;
29 | color: black;
30 | cursor: pointer;
31 | }
32 |
33 | li.CodeMirror-hint-active {
34 | background: #08f;
35 | color: white;
36 | }
37 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/lint/html-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 htmlhint.js from http://htmlhint.com/js/htmlhint.js
5 |
6 | // declare global: HTMLHint
7 |
8 | (function(mod) {
9 | if (typeof exports == "object" && typeof module == "object") // CommonJS
10 | mod(require("../../lib/codemirror"), require("htmlhint"));
11 | else if (typeof define == "function" && define.amd) // AMD
12 | define(["../../lib/codemirror", "htmlhint"], mod);
13 | else // Plain browser env
14 | mod(CodeMirror);
15 | })(function(CodeMirror) {
16 | "use strict";
17 |
18 | var defaultRules = {
19 | "tagname-lowercase": true,
20 | "attr-lowercase": true,
21 | "attr-value-double-quotes": true,
22 | "doctype-first": false,
23 | "tag-pair": true,
24 | "spec-char-escape": true,
25 | "id-unique": true,
26 | "src-not-empty": true,
27 | "attr-no-duplication": true
28 | };
29 |
30 | CodeMirror.registerHelper("lint", "html", function(text, options) {
31 | var found = [];
32 | if (!window.HTMLHint) return found;
33 | var messages = HTMLHint.verify(text, options && options.rules || defaultRules);
34 | for (var i = 0; i < messages.length; i++) {
35 | var message = messages[i];
36 | var startLine = message.line - 1, endLine = message.line - 1, startCol = message.col - 1, endCol = message.col;
37 | found.push({
38 | from: CodeMirror.Pos(startLine, startCol),
39 | to: CodeMirror.Pos(endLine, endCol),
40 | message: message.message,
41 | severity : message.type
42 | });
43 | }
44 | return found;
45 | });
46 | });
47 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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&delim-open $][inner&tag \\pi][delim&delim-close $]");
33 | })();
34 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/addon/scroll/scrollpastend.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("scrollPastEnd", false, function(cm, val, old) {
15 | if (old && old != CodeMirror.Init) {
16 | cm.off("change", onChange);
17 | cm.off("refresh", updateBottomMargin);
18 | cm.display.lineSpace.parentNode.style.paddingBottom = "";
19 | cm.state.scrollPastEndPadding = null;
20 | }
21 | if (val) {
22 | cm.on("change", onChange);
23 | cm.on("refresh", updateBottomMargin);
24 | updateBottomMargin(cm);
25 | }
26 | });
27 |
28 | function onChange(cm, change) {
29 | if (CodeMirror.changeEnd(change).line == cm.lastLine())
30 | updateBottomMargin(cm);
31 | }
32 |
33 | function updateBottomMargin(cm) {
34 | var padding = "";
35 | if (cm.lineCount() > 1) {
36 | var totalH = cm.display.scroller.clientHeight - 30,
37 | lastLineH = cm.getLineHandle(cm.lastLine()).height;
38 | padding = (totalH - lastLineH) + "px";
39 | }
40 | if (cm.state.scrollPastEndPadding != padding) {
41 | cm.state.scrollPastEndPadding = padding;
42 | cm.display.lineSpace.parentNode.style.paddingBottom = padding;
43 | cm.off("refresh", updateBottomMargin);
44 | cm.setSize();
45 | cm.on("refresh", updateBottomMargin);
46 | }
47 | }
48 | });
49 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 | this.console = {
43 | log: function(v) { postMessage({type: "debug", message: v}); }
44 | };
45 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/asciiarmor/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
CodeMirror: ASCII Armor (PGP) mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | ASCII Armor (PGP) mode
27 |
36 |
37 |
42 |
43 | MIME types
44 | defined: application/pgp
, application/pgp-keys
, application/pgp-signature
45 |
46 |
47 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/css/gss_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 | "use strict";
6 |
7 | var mode = CodeMirror.getMode({indentUnit: 2}, "text/x-gss");
8 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), "gss"); }
9 |
10 | MT("atComponent",
11 | "[def @component] {",
12 | "[tag foo] {",
13 | " [property color]: [keyword black];",
14 | "}",
15 | "}");
16 |
17 | })();
18 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/cypher/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({tabSize: 4, indentUnit: 2}, "cypher");
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7 |
8 | MT("unbalancedDoubledQuotedString",
9 | "[string \"a'b\"][variable c]");
10 |
11 | MT("unbalancedSingleQuotedString",
12 | "[string 'a\"b'][variable c]");
13 |
14 | MT("doubleQuotedString",
15 | "[string \"a\"][variable b]");
16 |
17 | MT("singleQuotedString",
18 | "[string 'a'][variable b]");
19 |
20 | MT("single attribute (with content)",
21 | "[node {][atom a:][string 'a'][node }]");
22 |
23 | MT("multiple attribute, singleQuotedString (with content)",
24 | "[node {][atom a:][string 'a'][node ,][atom b:][string 'b'][node }]");
25 |
26 | MT("multiple attribute, doubleQuotedString (with content)",
27 | "[node {][atom a:][string \"a\"][node ,][atom b:][string \"b\"][node }]");
28 |
29 | MT("single attribute (without content)",
30 | "[node {][atom a:][string 'a'][node }]");
31 |
32 | MT("multiple attribute, singleQuotedString (without content)",
33 | "[node {][atom a:][string ''][node ,][atom b:][string ''][node }]");
34 |
35 | MT("multiple attribute, doubleQuotedString (without content)",
36 | "[node {][atom a:][string \"\"][node ,][atom b:][string \"\"][node }]");
37 | })();
38 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/dart/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Dart mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Dart mode
27 |
63 |
64 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/elm/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Elm mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Elm mode
27 |
28 |
52 |
53 |
59 |
60 | MIME types defined: text/x-elm
.
61 |
62 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/gherkin/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Gherkin mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Gherkin mode
27 |
42 |
45 |
46 | MIME types defined: text/x-feature
.
47 |
48 |
49 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/haskell-literate/haskell-literate.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("../haskell/haskell"))
7 | else if (typeof define == "function" && define.amd) // AMD
8 | define(["../../lib/codemirror", "../haskell/haskell"], mod)
9 | else // Plain browser env
10 | mod(CodeMirror)
11 | })(function (CodeMirror) {
12 | "use strict"
13 |
14 | CodeMirror.defineMode("haskell-literate", function (config, parserConfig) {
15 | var baseMode = CodeMirror.getMode(config, (parserConfig && parserConfig.base) || "haskell")
16 |
17 | return {
18 | startState: function () {
19 | return {
20 | inCode: false,
21 | baseState: CodeMirror.startState(baseMode)
22 | }
23 | },
24 | token: function (stream, state) {
25 | if (stream.sol()) {
26 | if (state.inCode = stream.eat(">"))
27 | return "meta"
28 | }
29 | if (state.inCode) {
30 | return baseMode.token(stream, state.baseState)
31 | } else {
32 | stream.skipToEnd()
33 | return "comment"
34 | }
35 | },
36 | innerMode: function (state) {
37 | return state.inCode ? {state: state.baseState, mode: baseMode} : null
38 | }
39 | }
40 | }, "haskell")
41 |
42 | CodeMirror.defineMIME("text/x-literate-haskell", "haskell-literate")
43 | });
44 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/htmlembedded/htmlembedded.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("../htmlmixed/htmlmixed"),
7 | require("../../addon/mode/multiplex"));
8 | else if (typeof define == "function" && define.amd) // AMD
9 | define(["../../lib/codemirror", "../htmlmixed/htmlmixed",
10 | "../../addon/mode/multiplex"], mod);
11 | else // Plain browser env
12 | mod(CodeMirror);
13 | })(function(CodeMirror) {
14 | "use strict";
15 |
16 | CodeMirror.defineMode("htmlembedded", function(config, parserConfig) {
17 | return CodeMirror.multiplexingMode(CodeMirror.getMode(config, "htmlmixed"), {
18 | open: parserConfig.open || parserConfig.scriptStartRegex || "<%",
19 | close: parserConfig.close || parserConfig.scriptEndRegex || "%>",
20 | mode: CodeMirror.getMode(config, parserConfig.scriptingModeSpec)
21 | });
22 | }, "htmlmixed");
23 |
24 | CodeMirror.defineMIME("application/x-ejs", {name: "htmlembedded", scriptingModeSpec:"javascript"});
25 | CodeMirror.defineMIME("application/x-aspx", {name: "htmlembedded", scriptingModeSpec:"text/x-csharp"});
26 | CodeMirror.defineMIME("application/x-jsp", {name: "htmlembedded", scriptingModeSpec:"text/x-java"});
27 | CodeMirror.defineMIME("application/x-erb", {name: "htmlembedded", scriptingModeSpec:"ruby"});
28 | });
29 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/idl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: IDL mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | IDL mode
27 |
28 |
52 |
62 |
63 | MIME types defined: text/x-idl
.
64 |
65 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/javascript/typescript.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: TypeScript mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | TypeScript mode
27 |
28 |
29 |
51 |
52 |
59 |
60 | This is a specialization of the JavaScript mode.
61 |
62 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/mbox/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: mbox mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | mbox mode
27 |
38 |
41 |
42 | MIME types defined: application/mbox
.
43 |
44 |
45 |
--------------------------------------------------------------------------------
/static/js/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 |
40 |
41 |
44 | MIME types defined: text/n-triples
.
45 |
46 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/oz/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Oz mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
14 |
26 |
27 |
28 | Oz mode
29 |
50 | MIME type defined: text/x-oz
.
51 |
52 |
59 |
60 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/pascal/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Pascal mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Pascal mode
27 |
28 |
29 |
52 |
53 |
59 |
60 | MIME types defined: text/x-pascal
.
61 |
62 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/perl/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Perl mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Perl mode
27 |
28 |
29 |
67 |
68 |
73 |
74 | MIME types defined: text/x-perl
.
75 |
76 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/pig/index.html:
--------------------------------------------------------------------------------
1 |
2 | CodeMirror: Pig Latin mode
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
23 |
24 |
25 | Pig Latin mode
26 |
38 |
39 |
46 |
47 |
48 | Simple mode that handles Pig Latin language.
49 |
50 |
51 | MIME type defined: text/x-pig
52 | (PIG code)
53 |
54 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/properties/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Properties files mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Properties files mode
27 |
46 |
49 |
50 | MIME types defined: text/x-properties
,
51 | text/x-ini
.
52 |
53 |
54 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/protobuf/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: ProtoBuf mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | ProtoBuf mode
27 |
58 |
61 |
62 | MIME types defined: text/x-protobuf
.
63 |
64 |
65 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/python/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: 4},
6 | {name: "python",
7 | version: 3,
8 | singleLineStringErrors: false});
9 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
10 |
11 | // Error, because "foobarhello" is neither a known type or property, but
12 | // property was expected (after "and"), and it should be in parentheses.
13 | MT("decoratorStartOfLine",
14 | "[meta @dec]",
15 | "[keyword def] [def function]():",
16 | " [keyword pass]");
17 |
18 | MT("decoratorIndented",
19 | "[keyword class] [def Foo]:",
20 | " [meta @dec]",
21 | " [keyword def] [def function]():",
22 | " [keyword pass]");
23 |
24 | MT("matmulWithSpace:", "[variable a] [operator @] [variable b]");
25 | MT("matmulWithoutSpace:", "[variable a][operator @][variable b]");
26 | MT("matmulSpaceBefore:", "[variable a] [operator @][variable b]");
27 |
28 | MT("fValidStringPrefix", "[string f'this is a {formatted} string']");
29 | MT("uValidStringPrefix", "[string u'this is an unicode string']");
30 | })();
31 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/rust/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Rust mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Rust mode
28 |
29 |
30 |
53 |
54 |
62 |
63 | MIME types defined: text/x-rustsrc
.
64 |
65 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/rust/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: 4}, "rust");
6 | function MT(name) {test.mode(name, mode, Array.prototype.slice.call(arguments, 1));}
7 |
8 | MT('integer_test',
9 | '[number 123i32]',
10 | '[number 123u32]',
11 | '[number 123_u32]',
12 | '[number 0xff_u8]',
13 | '[number 0o70_i16]',
14 | '[number 0b1111_1111_1001_0000_i32]',
15 | '[number 0usize]');
16 |
17 | MT('float_test',
18 | '[number 123.0f64]',
19 | '[number 0.1f64]',
20 | '[number 0.1f32]',
21 | '[number 12E+99_f64]');
22 |
23 | MT('string-literals-test',
24 | '[string "foo"]',
25 | '[string r"foo"]',
26 | '[string "\\"foo\\""]',
27 | '[string r#""foo""#]',
28 | '[string "foo #\\"# bar"]',
29 |
30 | '[string b"foo"]',
31 | '[string br"foo"]',
32 | '[string b"\\"foo\\""]',
33 | '[string br#""foo""#]',
34 | '[string br##"foo #" bar"##]',
35 |
36 | "[string-2 'h']",
37 | "[string-2 b'h']");
38 |
39 | })();
40 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/sass/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Sass mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
25 |
26 |
27 | Sass mode
28 |
58 |
64 |
65 | MIME types defined: text/x-sass
.
66 |
67 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/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 | }
--------------------------------------------------------------------------------
/static/js/codemirror/mode/turtle/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Turtle mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Turtle mode
27 |
41 |
47 |
48 | MIME types defined: text/turtle
.
49 |
50 |
51 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/twig/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: Twig mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | Twig mode
27 |
40 |
45 |
46 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/vbscript/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | CodeMirror: VBScript mode
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
24 |
25 |
26 | VBScript mode
27 |
28 |
29 |
46 |
47 |
53 |
54 | MIME types defined: text/vbscript
.
55 |
56 |
--------------------------------------------------------------------------------
/static/js/codemirror/mode/xml/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}, "xml"), mname = "xml";
6 | function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1), mname); }
7 |
8 | MT("matching",
9 | "[tag&bracket <][tag top][tag&bracket >]",
10 | " text",
11 | " [tag&bracket <][tag inner][tag&bracket />]",
12 | "[tag&bracket ][tag top][tag&bracket >]");
13 |
14 | MT("nonmatching",
15 | "[tag&bracket <][tag top][tag&bracket >]",
16 | " [tag&bracket <][tag inner][tag&bracket />]",
17 | " [tag&bracket ][tag&error tip][tag&bracket&error >]");
18 |
19 | MT("doctype",
20 | "[meta ]",
21 | "[tag&bracket <][tag top][tag&bracket />]");
22 |
23 | MT("cdata",
24 | "[tag&bracket <][tag top][tag&bracket >]",
25 | " [atom ]",
27 | "[tag&bracket ][tag top][tag&bracket >]");
28 |
29 | // HTML tests
30 | mode = CodeMirror.getMode({indentUnit: 2}, "text/html");
31 |
32 | MT("selfclose",
33 | "[tag&bracket <][tag html][tag&bracket >]",
34 | " [tag&bracket <][tag link] [attribute rel]=[string stylesheet] [attribute href]=[string \"/foobar\"][tag&bracket >]",
35 | "[tag&bracket ][tag html][tag&bracket >]");
36 |
37 | MT("list",
38 | "[tag&bracket <][tag ol][tag&bracket >]",
39 | " [tag&bracket <][tag li][tag&bracket >]one",
40 | " [tag&bracket <][tag li][tag&bracket >]two",
41 | "[tag&bracket ][tag ol][tag&bracket >]");
42 |
43 | MT("valueless",
44 | "[tag&bracket <][tag input] [attribute type]=[string checkbox] [attribute checked][tag&bracket />]");
45 |
46 | MT("pThenArticle",
47 | "[tag&bracket <][tag p][tag&bracket >]",
48 | " foo",
49 | "[tag&bracket <][tag article][tag&bracket >]bar");
50 |
51 | })();
52 |
--------------------------------------------------------------------------------
/static/js/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 |
45 |
46 |
51 |
52 | MIME types defined: text/x-z80
, text/x-ez80
.
53 |
54 |
--------------------------------------------------------------------------------
/static/js/codemirror/rollup.config.js:
--------------------------------------------------------------------------------
1 | import buble from 'rollup-plugin-buble';
2 |
3 | export default {
4 | banner: `// CodeMirror, copyright (c) by Marijn Haverbeke and others
5 | // Distributed under an MIT license: http://codemirror.net/LICENSE
6 |
7 | // This is CodeMirror (http://codemirror.net), a code editor
8 | // implemented in JavaScript on top of the browser's DOM.
9 | //
10 | // You can find some technical background for some of the code below
11 | // at http://marijnhaverbeke.nl/blog/#cm-internals .
12 | `,
13 | entry: "src/codemirror.js",
14 | format: "umd",
15 | dest: "lib/codemirror.js",
16 | moduleName: "CodeMirror",
17 | plugins: [ buble({namedFunctionExpressions: false}) ]
18 | };
19 |
--------------------------------------------------------------------------------
/static/js/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 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/bespin.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Bespin
4 | Author: Mozilla / Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-bespin.CodeMirror {background: #28211c; color: #9d9b97;}
12 | .cm-s-bespin div.CodeMirror-selected {background: #36312e !important;}
13 | .cm-s-bespin .CodeMirror-gutters {background: #28211c; border-right: 0px;}
14 | .cm-s-bespin .CodeMirror-linenumber {color: #666666;}
15 | .cm-s-bespin .CodeMirror-cursor {border-left: 1px solid #797977 !important;}
16 |
17 | .cm-s-bespin span.cm-comment {color: #937121;}
18 | .cm-s-bespin span.cm-atom {color: #9b859d;}
19 | .cm-s-bespin span.cm-number {color: #9b859d;}
20 |
21 | .cm-s-bespin span.cm-property, .cm-s-bespin span.cm-attribute {color: #54be0d;}
22 | .cm-s-bespin span.cm-keyword {color: #cf6a4c;}
23 | .cm-s-bespin span.cm-string {color: #f9ee98;}
24 |
25 | .cm-s-bespin span.cm-variable {color: #54be0d;}
26 | .cm-s-bespin span.cm-variable-2 {color: #5ea6ea;}
27 | .cm-s-bespin span.cm-def {color: #cf7d34;}
28 | .cm-s-bespin span.cm-error {background: #cf6a4c; color: #797977;}
29 | .cm-s-bespin span.cm-bracket {color: #9d9b97;}
30 | .cm-s-bespin span.cm-tag {color: #cf6a4c;}
31 | .cm-s-bespin span.cm-link {color: #9b859d;}
32 |
33 | .cm-s-bespin .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-bespin .CodeMirror-activeline-background { background: #404040; }
35 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/cobalt.css:
--------------------------------------------------------------------------------
1 | .cm-s-cobalt.CodeMirror { background: #002240; color: white; }
2 | .cm-s-cobalt div.CodeMirror-selected { background: #b36539; }
3 | .cm-s-cobalt .CodeMirror-line::selection, .cm-s-cobalt .CodeMirror-line > span::selection, .cm-s-cobalt .CodeMirror-line > span > span::selection { background: rgba(179, 101, 57, .99); }
4 | .cm-s-cobalt .CodeMirror-line::-moz-selection, .cm-s-cobalt .CodeMirror-line > span::-moz-selection, .cm-s-cobalt .CodeMirror-line > span > span::-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; }
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; }
25 | .cm-s-cobalt .CodeMirror-matchingbracket { outline:1px solid grey;color:white !important; }
26 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/colorforth.css:
--------------------------------------------------------------------------------
1 | .cm-s-colorforth.CodeMirror { background: #000000; color: #f8f8f8; }
2 | .cm-s-colorforth .CodeMirror-gutters { background: #0a001f; border-right: 1px solid #aaa; }
3 | .cm-s-colorforth .CodeMirror-guttermarker { color: #FFBD40; }
4 | .cm-s-colorforth .CodeMirror-guttermarker-subtle { color: #78846f; }
5 | .cm-s-colorforth .CodeMirror-linenumber { color: #bababa; }
6 | .cm-s-colorforth .CodeMirror-cursor { border-left: 1px solid white; }
7 |
8 | .cm-s-colorforth span.cm-comment { color: #ededed; }
9 | .cm-s-colorforth span.cm-def { color: #ff1c1c; font-weight:bold; }
10 | .cm-s-colorforth span.cm-keyword { color: #ffd900; }
11 | .cm-s-colorforth span.cm-builtin { color: #00d95a; }
12 | .cm-s-colorforth span.cm-variable { color: #73ff00; }
13 | .cm-s-colorforth span.cm-string { color: #007bff; }
14 | .cm-s-colorforth span.cm-number { color: #00c4ff; }
15 | .cm-s-colorforth span.cm-atom { color: #606060; }
16 |
17 | .cm-s-colorforth span.cm-variable-2 { color: #EEE; }
18 | .cm-s-colorforth span.cm-variable-3 { color: #DDD; }
19 | .cm-s-colorforth span.cm-property {}
20 | .cm-s-colorforth span.cm-operator {}
21 |
22 | .cm-s-colorforth span.cm-meta { color: yellow; }
23 | .cm-s-colorforth span.cm-qualifier { color: #FFF700; }
24 | .cm-s-colorforth span.cm-bracket { color: #cc7; }
25 | .cm-s-colorforth span.cm-tag { color: #FFBD40; }
26 | .cm-s-colorforth span.cm-attribute { color: #FFF700; }
27 | .cm-s-colorforth span.cm-error { color: #f00; }
28 |
29 | .cm-s-colorforth div.CodeMirror-selected { background: #333d53; }
30 |
31 | .cm-s-colorforth span.cm-compilation { background: rgba(255, 255, 255, 0.12); }
32 |
33 | .cm-s-colorforth .CodeMirror-activeline-background { background: #253540; }
34 |
--------------------------------------------------------------------------------
/static/js/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; }
23 | .cm-s-eclipse .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
24 |
--------------------------------------------------------------------------------
/static/js/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; }
13 | .cm-s-elegant .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
14 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/hopscotch.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Hopscotch
4 | Author: Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-hopscotch.CodeMirror {background: #322931; color: #d5d3d5;}
12 | .cm-s-hopscotch div.CodeMirror-selected {background: #433b42 !important;}
13 | .cm-s-hopscotch .CodeMirror-gutters {background: #322931; border-right: 0px;}
14 | .cm-s-hopscotch .CodeMirror-linenumber {color: #797379;}
15 | .cm-s-hopscotch .CodeMirror-cursor {border-left: 1px solid #989498 !important;}
16 |
17 | .cm-s-hopscotch span.cm-comment {color: #b33508;}
18 | .cm-s-hopscotch span.cm-atom {color: #c85e7c;}
19 | .cm-s-hopscotch span.cm-number {color: #c85e7c;}
20 |
21 | .cm-s-hopscotch span.cm-property, .cm-s-hopscotch span.cm-attribute {color: #8fc13e;}
22 | .cm-s-hopscotch span.cm-keyword {color: #dd464c;}
23 | .cm-s-hopscotch span.cm-string {color: #fdcc59;}
24 |
25 | .cm-s-hopscotch span.cm-variable {color: #8fc13e;}
26 | .cm-s-hopscotch span.cm-variable-2 {color: #1290bf;}
27 | .cm-s-hopscotch span.cm-def {color: #fd8b19;}
28 | .cm-s-hopscotch span.cm-error {background: #dd464c; color: #989498;}
29 | .cm-s-hopscotch span.cm-bracket {color: #d5d3d5;}
30 | .cm-s-hopscotch span.cm-tag {color: #dd464c;}
31 | .cm-s-hopscotch span.cm-link {color: #c85e7c;}
32 |
33 | .cm-s-hopscotch .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-hopscotch .CodeMirror-activeline-background { background: #302020; }
35 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/isotope.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Isotope
4 | Author: David Desandro / Jan T. Sott
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-isotope.CodeMirror {background: #000000; color: #e0e0e0;}
12 | .cm-s-isotope div.CodeMirror-selected {background: #404040 !important;}
13 | .cm-s-isotope .CodeMirror-gutters {background: #000000; border-right: 0px;}
14 | .cm-s-isotope .CodeMirror-linenumber {color: #808080;}
15 | .cm-s-isotope .CodeMirror-cursor {border-left: 1px solid #c0c0c0 !important;}
16 |
17 | .cm-s-isotope span.cm-comment {color: #3300ff;}
18 | .cm-s-isotope span.cm-atom {color: #cc00ff;}
19 | .cm-s-isotope span.cm-number {color: #cc00ff;}
20 |
21 | .cm-s-isotope span.cm-property, .cm-s-isotope span.cm-attribute {color: #33ff00;}
22 | .cm-s-isotope span.cm-keyword {color: #ff0000;}
23 | .cm-s-isotope span.cm-string {color: #ff0099;}
24 |
25 | .cm-s-isotope span.cm-variable {color: #33ff00;}
26 | .cm-s-isotope span.cm-variable-2 {color: #0066ff;}
27 | .cm-s-isotope span.cm-def {color: #ff9900;}
28 | .cm-s-isotope span.cm-error {background: #ff0000; color: #c0c0c0;}
29 | .cm-s-isotope span.cm-bracket {color: #e0e0e0;}
30 | .cm-s-isotope span.cm-tag {color: #ff0000;}
31 | .cm-s-isotope span.cm-link {color: #cc00ff;}
32 |
33 | .cm-s-isotope .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-isotope .CodeMirror-activeline-background { background: #202020; }
35 |
--------------------------------------------------------------------------------
/static/js/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; }
12 | .cm-s-neat .CodeMirror-matchingbracket { outline:1px solid grey; color:black !important; }
13 |
--------------------------------------------------------------------------------
/static/js/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 .CodeMirror-cursor {
39 | width: auto;
40 | border: 0;
41 | background: rgba(155,157,162,0.37);
42 | z-index: 1;
43 | }
44 |
--------------------------------------------------------------------------------
/static/js/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; }
5 | .cm-s-night .CodeMirror-line::selection, .cm-s-night .CodeMirror-line > span::selection, .cm-s-night .CodeMirror-line > span > span::selection { background: rgba(68, 68, 119, .99); }
6 | .cm-s-night .CodeMirror-line::-moz-selection, .cm-s-night .CodeMirror-line > span::-moz-selection, .cm-s-night .CodeMirror-line > span > span::-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; }
12 |
13 | .cm-s-night span.cm-comment { color: #8900d1; }
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-builtin, .cm-s-night span.cm-special { color: #ff9e59; }
23 | .cm-s-night span.cm-link { color: #845dc4; }
24 | .cm-s-night span.cm-error { color: #9d1e15; }
25 |
26 | .cm-s-night .CodeMirror-activeline-background { background: #1C005A; }
27 | .cm-s-night .CodeMirror-matchingbracket { outline:1px solid grey; color:white !important; }
28 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/railscasts.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Railscasts
4 | Author: Ryan Bates (http://railscasts.com)
5 |
6 | CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)
7 | Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)
8 |
9 | */
10 |
11 | .cm-s-railscasts.CodeMirror {background: #2b2b2b; color: #f4f1ed;}
12 | .cm-s-railscasts div.CodeMirror-selected {background: #272935 !important;}
13 | .cm-s-railscasts .CodeMirror-gutters {background: #2b2b2b; border-right: 0px;}
14 | .cm-s-railscasts .CodeMirror-linenumber {color: #5a647e;}
15 | .cm-s-railscasts .CodeMirror-cursor {border-left: 1px solid #d4cfc9 !important;}
16 |
17 | .cm-s-railscasts span.cm-comment {color: #bc9458;}
18 | .cm-s-railscasts span.cm-atom {color: #b6b3eb;}
19 | .cm-s-railscasts span.cm-number {color: #b6b3eb;}
20 |
21 | .cm-s-railscasts span.cm-property, .cm-s-railscasts span.cm-attribute {color: #a5c261;}
22 | .cm-s-railscasts span.cm-keyword {color: #da4939;}
23 | .cm-s-railscasts span.cm-string {color: #ffc66d;}
24 |
25 | .cm-s-railscasts span.cm-variable {color: #a5c261;}
26 | .cm-s-railscasts span.cm-variable-2 {color: #6d9cbe;}
27 | .cm-s-railscasts span.cm-def {color: #cc7833;}
28 | .cm-s-railscasts span.cm-error {background: #da4939; color: #d4cfc9;}
29 | .cm-s-railscasts span.cm-bracket {color: #f4f1ed;}
30 | .cm-s-railscasts span.cm-tag {color: #da4939;}
31 | .cm-s-railscasts span.cm-link {color: #b6b3eb;}
32 |
33 | .cm-s-railscasts .CodeMirror-matchingbracket { text-decoration: underline; color: white !important;}
34 | .cm-s-railscasts .CodeMirror-activeline-background { background: #303040; }
35 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/rubyblue.css:
--------------------------------------------------------------------------------
1 | .cm-s-rubyblue.CodeMirror { background: #112435; color: white; }
2 | .cm-s-rubyblue div.CodeMirror-selected { background: #38566F; }
3 | .cm-s-rubyblue .CodeMirror-line::selection, .cm-s-rubyblue .CodeMirror-line > span::selection, .cm-s-rubyblue .CodeMirror-line > span > span::selection { background: rgba(56, 86, 111, 0.99); }
4 | .cm-s-rubyblue .CodeMirror-line::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span::-moz-selection, .cm-s-rubyblue .CodeMirror-line > span > span::-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; }
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; }
26 |
--------------------------------------------------------------------------------
/static/js/codemirror/theme/tomorrow-night-bright.css:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Name: Tomorrow Night - Bright
4 | Author: Chris Kempson
5 |
6 | Port done by Gerard Braad
7 |
8 | */
9 |
10 | .cm-s-tomorrow-night-bright.CodeMirror { background: #000000; color: #eaeaea; }
11 | .cm-s-tomorrow-night-bright div.CodeMirror-selected { background: #424242; }
12 | .cm-s-tomorrow-night-bright .CodeMirror-gutters { background: #000000; border-right: 0px; }
13 | .cm-s-tomorrow-night-bright .CodeMirror-guttermarker { color: #e78c45; }
14 | .cm-s-tomorrow-night-bright .CodeMirror-guttermarker-subtle { color: #777; }
15 | .cm-s-tomorrow-night-bright .CodeMirror-linenumber { color: #424242; }
16 | .cm-s-tomorrow-night-bright .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
17 |
18 | .cm-s-tomorrow-night-bright span.cm-comment { color: #d27b53; }
19 | .cm-s-tomorrow-night-bright span.cm-atom { color: #a16a94; }
20 | .cm-s-tomorrow-night-bright span.cm-number { color: #a16a94; }
21 |
22 | .cm-s-tomorrow-night-bright span.cm-property, .cm-s-tomorrow-night-bright span.cm-attribute { color: #99cc99; }
23 | .cm-s-tomorrow-night-bright span.cm-keyword { color: #d54e53; }
24 | .cm-s-tomorrow-night-bright span.cm-string { color: #e7c547; }
25 |
26 | .cm-s-tomorrow-night-bright span.cm-variable { color: #b9ca4a; }
27 | .cm-s-tomorrow-night-bright span.cm-variable-2 { color: #7aa6da; }
28 | .cm-s-tomorrow-night-bright span.cm-def { color: #e78c45; }
29 | .cm-s-tomorrow-night-bright span.cm-bracket { color: #eaeaea; }
30 | .cm-s-tomorrow-night-bright span.cm-tag { color: #d54e53; }
31 | .cm-s-tomorrow-night-bright span.cm-link { color: #a16a94; }
32 | .cm-s-tomorrow-night-bright span.cm-error { background: #d54e53; color: #6A6A6A; }
33 |
34 | .cm-s-tomorrow-night-bright .CodeMirror-activeline-background { background: #2a2a2a; }
35 | .cm-s-tomorrow-night-bright .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
36 |
--------------------------------------------------------------------------------
/static/js/dump.rdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yingshang/banruo/f2163cc5a6aee91d7bc6ac726d43037c480e9925/static/js/dump.rdb
--------------------------------------------------------------------------------
/static/js/verificationNumbers.js:
--------------------------------------------------------------------------------
1 | function showCheck(a){
2 | var c = document.getElementById("myCanvas");
3 | var ctx = c.getContext("2d");
4 | ctx.clearRect(0,0,1000,1000);
5 | ctx.font = "80px 'Microsoft Yahei'";
6 | ctx.fillText(a,0,100);
7 | ctx.fillStyle = "rgba(255,255,255,.9)";
8 | }
9 | var code ;
10 | function createCode(){
11 | code = "";
12 | var codeLength = 4;
13 | var selectChar = new Array(1,2,3,4,5,6,7,8,9,'a','b','c','d','e','f','g','h','j','k','l','m','n','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','J','K','L','M','N','P','Q','R','S','T','U','V','W','X','Y','Z');
14 | for(var i=0;i/g,">").replace(/'/g,"'").replace(/"/g,""")),c.html('- '+o.replace(/[\r\t\n]+/g,"
- ")+"
"),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");
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/flow.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.6 MIT License By https://www.layui.com */
2 | ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="加载更多",h=l('");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;su)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
--------------------------------------------------------------------------------
/static/lib/layui/lay/modules/laytpl.js:
--------------------------------------------------------------------------------
1 | /** layui-v2.2.6 MIT License By https://www.layui.com */
2 | ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+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 c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.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=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
--------------------------------------------------------------------------------
/templates/asset/nmap.html:
--------------------------------------------------------------------------------
1 | {% load static %}
2 |
3 |
4 |
5 |
6 |
7 | 端口情况
8 |
9 |
10 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
28 |
29 |