├── README.md └── etc └── misstar ├── .config ├── admlist.conf ├── aria2.conf ├── aria2.session ├── chnroute.txt ├── misstar ├── pac.conf ├── pdnsd.conf └── vsftpd.conf ├── arm ├── adm │ ├── 2016-08-12.log │ ├── 2016-09-03.log │ ├── ADMConfig.ini │ ├── adm │ ├── doc │ │ ├── hidecss.js │ │ ├── qiyi3.swf │ │ └── sohu_live.swf │ ├── proxylist.txt │ ├── subscribe │ │ ├── action.txt │ │ ├── actionlocal.txt │ │ ├── adminfo.dat │ │ ├── admrule_common.txt │ │ ├── admrule_downloader.txt │ │ ├── admrule_everyday.txt │ │ ├── admrule_glob.txt │ │ ├── admrule_soft_ad.txt │ │ ├── admrule_union.txt │ │ ├── admrule_unti_hijack.txt │ │ ├── admrule_video.txt │ │ ├── admrule_yellowweb.txt │ │ ├── admsubcribe.dat │ │ ├── admsubcribe.dat~ │ │ ├── admwhiterule.txt │ │ ├── clean.dat │ │ ├── cleanfromweb.dat │ │ └── https_white.txt │ ├── update │ │ └── subcribe │ │ │ └── https-below-adm.txt │ └── user.txt ├── aria2c ├── dns2socks ├── pdnsd ├── shellinaboxd ├── ss-local ├── ss-redir ├── vsftpd └── wget-ssl ├── luci ├── css │ ├── bootstrap-responsive.min.css │ ├── bootstrap.min.css │ ├── main.css │ └── public.css ├── img │ ├── action_btn.gif │ ├── dclogo.gif │ ├── glyphicons-halflings-white.png │ ├── glyphicons-halflings.png │ ├── icon_back.gif │ ├── icon_back_arrow.gif │ ├── icon_cloud_account.png │ ├── icon_cloud_handle.png │ ├── icon_cloud_order.png │ ├── icon_cloud_uninstall.png │ ├── icon_edit_blue.png │ ├── icon_edit_white.png │ ├── icon_exc.gif │ ├── icon_exc_small.gif │ ├── icon_fork.png │ ├── icon_menu.png │ ├── icon_mobile.png │ ├── icon_no.png │ ├── icon_picture.png │ ├── icon_picture_big.png │ ├── icon_yes.png │ ├── logo.gif │ ├── menu_cur.gif │ ├── top_add.gif │ └── vcode.png ├── js │ ├── aria2.js │ ├── bootstrap.min.js │ ├── global.js │ ├── jquery-1.7.2.min.js │ ├── jquery.Storage.js │ ├── jquery.autoTextarea.js │ ├── jquery.base64.min.js │ ├── jquery.jsonrpc.js │ ├── jquery.min.js │ ├── jquery.tab.js │ ├── mustache.js │ ├── qwrap.js │ └── yaaw.js └── layer-pc │ ├── extend │ └── layer.ext.js │ ├── layer.js │ └── skin │ ├── default │ ├── icon-ext.png │ ├── icon.png │ ├── loading-0.gif │ ├── loading-1.gif │ └── loading-2.gif │ ├── layer.css │ └── layer.ext.css ├── mips ├── adm │ ├── 2016-08-09.log │ ├── ADMConfig.ini │ ├── adm │ ├── cache │ │ └── user.txt │ ├── doc │ │ ├── hidecss.js │ │ ├── qiyi3.swf │ │ └── sohu_live.swf │ ├── proxylist.txt │ ├── subscribe │ │ ├── action.txt │ │ ├── actionlocal.txt │ │ ├── adminfo.dat │ │ ├── admrule_common.txt │ │ ├── admrule_downloader.txt │ │ ├── admrule_everyday.txt │ │ ├── admrule_glob.txt │ │ ├── admrule_soft_ad.txt │ │ ├── admrule_union.txt │ │ ├── admrule_unti_hijack.txt │ │ ├── admrule_video.txt │ │ ├── admrule_yellowweb.txt │ │ ├── admsubcribe.dat │ │ ├── admwhiterule.txt │ │ ├── clean.dat │ │ ├── cleanfromweb.dat │ │ └── https_white.txt │ ├── update │ │ └── subcribe │ │ │ └── https-below-adm.txt │ └── user.txt ├── aria2c ├── dns2socks ├── libstdc++.so.6.0.16 ├── libxml2.so ├── pdnsd ├── shellinaboxd ├── ss-local ├── ss-redir └── vsftpd ├── misstar ├── about.htm ├── adm.htm ├── aria.htm ├── aria2.htm ├── ftp.htm ├── help.htm ├── index.htm ├── kddb.htm ├── menu.htm ├── misstar.lua ├── mzsm.htm ├── rm.htm ├── ss.htm ├── webshell.htm └── xlkn.htm └── scripts ├── Dayjob ├── MTbase ├── Minjob ├── adm ├── aria2 ├── file_check.sh ├── install.sh ├── kuainiao.sh ├── misstar ├── pdnsd.sh ├── ss ├── uninstall.sh ├── vsftpd └── webshell /README.md: -------------------------------------------------------------------------------- 1 | # misstartools 2 | Misstar Tools For Xiaomi Router 3 | -------------------------------------------------------------------------------- /etc/misstar/.config/admlist.conf: -------------------------------------------------------------------------------- 1 | #百度广告 2 | ipset=/cbjs.baidu.com/admlist 3 | ipset=/list.video.baidu.com/admlist 4 | ipset=/nsclick.baidu.com/admlist 5 | ipset=/play.baidu.com/admlist 6 | ipset=/sclick.baidu.com/admlist 7 | ipset=/tieba.baidu.com/admlist 8 | ipset=/baidustatic.com/admlist 9 | ipset=/bdimg.com/admlist 10 | ipset=/bdstatic.com/admlist 11 | ipset=/share.baidu.com/admlist 12 | ipset=/hm.baidu.com/admlist 13 | 14 | #视频广告 15 | ipset=/v.baidu.com/admlist 16 | ipset=/1000fr.net/admlist 17 | ipset=/56.com/admlist 18 | ipset=/v-56.com/admlist 19 | ipset=/acfun.com/admlist 20 | ipset=/acfun.tv/admlist 21 | ipset=/baofeng.com/admlist 22 | ipset=/baofeng.net/admlist 23 | ipset=/cntv.cn/admlist 24 | ipset=/hoopchina.com.cn/admlist 25 | ipset=/funshion.com/admlist 26 | ipset=/fun.tv/admlist 27 | ipset=/hitvs.cn/admlist 28 | ipset=/hljtv.com/admlist 29 | ipset=/iqiyi.com/admlist 30 | ipset=/qiyi.com/admlist 31 | ipset=/agn.aty.sohu.com/admlist 32 | ipset=/itc.cn/admlist 33 | ipset=/kankan.com/admlist 34 | ipset=/ku6.com/admlist 35 | ipset=/letv.com/admlist 36 | ipset=/letvcloud.com/admlist 37 | ipset=/letvimg.com/admlist 38 | ipset=/pplive.cn/admlist 39 | ipset=/pps.tv/admlist 40 | ipset=/ppsimg.com/admlist 41 | ipset=/pptv.com/admlist 42 | ipset=/v.qq.com/admlist 43 | ipset=/l.qq.com/admlist 44 | ipset=/video.sina.com.cn/admlist 45 | ipset=/tudou.com/admlist 46 | ipset=/wasu.cn/admlist 47 | ipset=/analytics-union.xunlei.com/admlist 48 | ipset=/kankan.xunlei.com/admlist 49 | ipset=/youku.com/admlist 50 | ipset=/hunantv.com/admlist 51 | ipset=/zimuzu.tv/admlist 52 | 53 | -------------------------------------------------------------------------------- /etc/misstar/.config/aria2.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/.config/aria2.conf -------------------------------------------------------------------------------- /etc/misstar/.config/aria2.session: -------------------------------------------------------------------------------- 1 | https://downloads.openwrt.org/barrier_breaker/14.07/brcm47xx/generic/packages/base/libstdcpp_4.8-linaro-1_brcm47xx.ipk 2 | gid=233d37d8dcd18ddb 3 | split=5 4 | max-connection-per-server=5 5 | -------------------------------------------------------------------------------- /etc/misstar/.config/misstar: -------------------------------------------------------------------------------- 1 | 2 | config config 'misstar' 3 | option version '1.3.0' 4 | 5 | config config 'ss' 6 | option ss_local_port '1081' 7 | option ss_server 'hk01.veryhosts.com' 8 | option ss_server_port '12345' 9 | option ss_password 'password' 10 | option ss_method 'rc4-md5' 11 | option ss_mode 'gfwlist' 12 | option enable '0' 13 | 14 | config config 'adm' 15 | option enable '0' 16 | option mode 'videomode' 17 | 18 | config config 'web' 19 | option enable '0' 20 | 21 | config config 'sshd' 22 | option enable '0' 23 | 24 | config config 'webshell' 25 | option enable '0' 26 | 27 | config config 'vsftpd' 28 | option rm_enable '0' 29 | option root_enable '0' 30 | option any_enable '0' 31 | option write_enable '0' 32 | option ftp_user 'test' 33 | option enable '0' 34 | option ftp_password 'password' 35 | option user_path '/' 36 | 37 | config config 'aria2' 38 | option enable '0' 39 | option user_path '/tmp' 40 | -------------------------------------------------------------------------------- /etc/misstar/.config/pdnsd.conf: -------------------------------------------------------------------------------- 1 | global { 2 | daemon=on; 3 | verbosity=3; 4 | debug=off; 5 | status_ctl=on; 6 | randomize_recs=on; 7 | perm_cache=40960; 8 | cache_dir=/tmp/pdnsd; 9 | max_ttl=204800; 10 | run_as=root; 11 | paranoid=on; 12 | server_port=15353; 13 | run_ipv4=on; 14 | par_queries=2; 15 | server_ip=any; 16 | query_method=tcp_only; 17 | timeout=6; 18 | tcp_qtimeout=2; 19 | } 20 | 21 | 22 | server { 23 | label="Google"; 24 | ip=8.8.8.8,8.8.4.4; 25 | reject=4.36.66.178, 8.7.198.45, 37.61.54.158, 46.82.174.68, 59.24.3.173, 64.33.88.161, 64.33.99.47, 64.66.163.251, 65.104.202.252, 65.160.219.113, 66.45.252.237, 72.14.205.99, 72.14.205.104, 78.16.49.15, 93.46.8.89, 128.121.126.139, 159.106.121.75, 169.132.13.103, 192.67.198.6, 202.106.1.2, 202.181.7.85, 203.161.230.171, 207.12.88.98, 208.56.31.43, 209.36.73.33, 209.145.54.50, 209.220.30.174, 211.94.66.147, 213.169.251.35, 216.221.188.182, 216.234.179.13; 26 | edns_query=on; 27 | timeout=3; 28 | interval=60; 29 | uptest=none; 30 | query_test_name="a.com"; 31 | purge_cache=off; 32 | caching=on; 33 | } 34 | 35 | server { 36 | label="OpenDNS"; 37 | ip=208.67.222.222,208.67.220.220; 38 | reject=4.36.66.178, 8.7.198.45, 37.61.54.158, 46.82.174.68, 59.24.3.173, 64.33.88.161, 64.33.99.47, 64.66.163.251, 65.104.202.252, 65.160.219.113, 66.45.252.237, 72.14.205.99, 72.14.205.104, 78.16.49.15, 93.46.8.89, 128.121.126.139, 159.106.121.75, 169.132.13.103, 192.67.198.6, 202.106.1.2, 202.181.7.85, 203.161.230.171, 207.12.88.98, 208.56.31.43, 209.36.73.33, 209.145.54.50, 209.220.30.174, 211.94.66.147, 213.169.251.35, 216.221.188.182, 216.234.179.13; 39 | edns_query=on; 40 | timeout=3; 41 | interval=60; 42 | uptest=none; 43 | query_test_name="a.com"; 44 | purge_cache=off; 45 | caching=on; 46 | } 47 | 48 | source { 49 | ttl=86400; 50 | owner="localhost."; 51 | serve_aliases=on; 52 | file="/etc/hosts"; 53 | } 54 | -------------------------------------------------------------------------------- /etc/misstar/.config/vsftpd.conf: -------------------------------------------------------------------------------- 1 | background=YES 2 | listen=YES 3 | anonymous_enable=YES 4 | local_enable=YES 5 | write_enable=NO 6 | local_umask=022 7 | check_shell=NO 8 | #dirmessage_enable=YES 9 | #ftpd_banner=Welcome to blah FTP service. 10 | session_support=NO 11 | #syslog_enable=YES 12 | userlist_enable=YES 13 | userlist_deny=YES 14 | userlist_file=/etc/vsftpd.users 15 | #xferlog_enable=YES 16 | #xferlog_file=/var/log/vsftpd.log 17 | #xferlog_std_format=YES 18 | ### 19 | ### TLS/SSL options 20 | ### example key generation: openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/config/vsftpd_privkey.pem -out /etc/config/vsftpd_cert.pem -subj /C="DE"/ST="Saxony"/L="Leipzig"/CN="OpenWrt" 21 | #ssl_enable=YES 22 | #allow_anon_ssl=NO 23 | #force_local_data_ssl=NO 24 | #force_local_logins_ssl=NO 25 | #ssl_tlsv1=YES 26 | #ssl_sslv2=NO 27 | #ssl_sslv3=NO 28 | #rsa_cert_file=/etc/config/vsftpd_cert.pem 29 | #rsa_private_key_file=/etc/config/vsftpd_privkey.pem 30 | 31 | -------------------------------------------------------------------------------- /etc/misstar/arm/adm/2016-08-12.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/2016-08-12.log -------------------------------------------------------------------------------- /etc/misstar/arm/adm/2016-09-03.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/2016-09-03.log -------------------------------------------------------------------------------- /etc/misstar/arm/adm/ADMConfig.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/ADMConfig.ini -------------------------------------------------------------------------------- /etc/misstar/arm/adm/adm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/adm -------------------------------------------------------------------------------- /etc/misstar/arm/adm/doc/qiyi3.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/doc/qiyi3.swf -------------------------------------------------------------------------------- /etc/misstar/arm/adm/doc/sohu_live.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/doc/sohu_live.swf -------------------------------------------------------------------------------- /etc/misstar/arm/adm/proxylist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/proxylist.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/action.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/action.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/actionlocal.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/actionlocal.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/adminfo.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/adminfo.dat -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_common.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_common.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_downloader.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_downloader.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_everyday.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_everyday.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_glob.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_glob.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_soft_ad.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_soft_ad.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_union.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_union.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_unti_hijack.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_unti_hijack.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_video.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_video.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admrule_yellowweb.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admrule_yellowweb.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admsubcribe.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admsubcribe.dat -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admsubcribe.dat~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admsubcribe.dat~ -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/admwhiterule.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/admwhiterule.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/clean.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/clean.dat -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/cleanfromweb.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/cleanfromweb.dat -------------------------------------------------------------------------------- /etc/misstar/arm/adm/subscribe/https_white.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/subscribe/https_white.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/update/subcribe/https-below-adm.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/update/subcribe/https-below-adm.txt -------------------------------------------------------------------------------- /etc/misstar/arm/adm/user.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/adm/user.txt -------------------------------------------------------------------------------- /etc/misstar/arm/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/aria2c -------------------------------------------------------------------------------- /etc/misstar/arm/dns2socks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/dns2socks -------------------------------------------------------------------------------- /etc/misstar/arm/pdnsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/pdnsd -------------------------------------------------------------------------------- /etc/misstar/arm/shellinaboxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/shellinaboxd -------------------------------------------------------------------------------- /etc/misstar/arm/ss-local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/ss-local -------------------------------------------------------------------------------- /etc/misstar/arm/ss-redir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/ss-redir -------------------------------------------------------------------------------- /etc/misstar/arm/vsftpd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/vsftpd -------------------------------------------------------------------------------- /etc/misstar/arm/wget-ssl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/arm/wget-ssl -------------------------------------------------------------------------------- /etc/misstar/luci/css/bootstrap-responsive.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Responsive v2.0.3 3 | * 4 | * Copyright 2012 Twitter, Inc 5 | * Licensed under the Apache License v2.0 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Designed and built with all the love in the world @twitter by @mdo and @fat. 9 | */.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.hidden{display:none;visibility:hidden}.visible-phone{display:none!important}.visible-tablet{display:none!important}.hidden-desktop{display:none!important}@media(max-width:767px){.visible-phone{display:inherit!important}.hidden-phone{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(min-width:768px) and (max-width:979px){.visible-tablet{display:inherit!important}.hidden-tablet{display:none!important}.hidden-desktop{display:inherit!important}.visible-desktop{display:none!important}}@media(max-width:480px){.nav-collapse{-webkit-transform:translate3d(0,0,0)}.page-header h1 small{display:block;line-height:18px}input[type="checkbox"],input[type="radio"]{border:1px solid #ccc}.form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left}.form-horizontal .controls{margin-left:0}.form-horizontal .control-list{padding-top:0}.form-horizontal .form-actions{padding-right:10px;padding-left:10px}.modal{position:absolute;top:10px;right:10px;left:10px;width:auto;margin:0}.modal.fade.in{top:auto}.modal-header .close{padding:10px;margin:-10px}.carousel-caption{position:static}}@media(max-width:767px){body{padding-right:20px;padding-left:20px}.navbar-fixed-top,.navbar-fixed-bottom{margin-right:-20px;margin-left:-20px}.container-fluid{padding:0}.dl-horizontal dt{float:none;width:auto;clear:none;text-align:left}.dl-horizontal dd{margin-left:0}.container{width:auto}.row-fluid{width:100%}.row,.thumbnails{margin-left:0}[class*="span"],.row-fluid [class*="span"]{display:block;float:none;width:auto;margin-left:0}.input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto}}@media(min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:20px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px}.span12{width:724px}.span11{width:662px}.span10{width:600px}.span9{width:538px}.span8{width:476px}.span7{width:414px}.span6{width:352px}.span5{width:290px}.span4{width:228px}.span3{width:166px}.span2{width:104px}.span1{width:42px}.offset12{margin-left:764px}.offset11{margin-left:702px}.offset10{margin-left:640px}.offset9{margin-left:578px}.offset8{margin-left:516px}.offset7{margin-left:454px}.offset6{margin-left:392px}.offset5{margin-left:330px}.offset4{margin-left:268px}.offset3{margin-left:206px}.offset2{margin-left:144px}.offset1{margin-left:82px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.762430939%;*margin-left:2.709239449638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:99.999999993%;*width:99.9468085036383%}.row-fluid .span11{width:91.436464082%;*width:91.38327259263829%}.row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%}.row-fluid .span9{width:74.30939226%;*width:74.25620077063829%}.row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%}.row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%}.row-fluid .span6{width:48.618784527%;*width:48.5655930376383%}.row-fluid .span5{width:40.055248616%;*width:40.0020571266383%}.row-fluid .span4{width:31.491712705%;*width:31.4385212156383%}.row-fluid .span3{width:22.928176794%;*width:22.874985304638297%}.row-fluid .span2{width:14.364640883%;*width:14.311449393638298%}.row-fluid .span1{width:5.801104972%;*width:5.747913482638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:714px}input.span11,textarea.span11,.uneditable-input.span11{width:652px}input.span10,textarea.span10,.uneditable-input.span10{width:590px}input.span9,textarea.span9,.uneditable-input.span9{width:528px}input.span8,textarea.span8,.uneditable-input.span8{width:466px}input.span7,textarea.span7,.uneditable-input.span7{width:404px}input.span6,textarea.span6,.uneditable-input.span6{width:342px}input.span5,textarea.span5,.uneditable-input.span5{width:280px}input.span4,textarea.span4,.uneditable-input.span4{width:218px}input.span3,textarea.span3,.uneditable-input.span3{width:156px}input.span2,textarea.span2,.uneditable-input.span2{width:94px}input.span1,textarea.span1,.uneditable-input.span1{width:32px}}@media(min-width:1200px){.row{margin-left:-30px;*zoom:1}.row:before,.row:after{display:table;content:""}.row:after{clear:both}[class*="span"]{float:left;margin-left:30px}.container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px}.span12{width:1170px}.span11{width:1070px}.span10{width:970px}.span9{width:870px}.span8{width:770px}.span7{width:670px}.span6{width:570px}.span5{width:470px}.span4{width:370px}.span3{width:270px}.span2{width:170px}.span1{width:70px}.offset12{margin-left:1230px}.offset11{margin-left:1130px}.offset10{margin-left:1030px}.offset9{margin-left:930px}.offset8{margin-left:830px}.offset7{margin-left:730px}.offset6{margin-left:630px}.offset5{margin-left:530px}.offset4{margin-left:430px}.offset3{margin-left:330px}.offset2{margin-left:230px}.offset1{margin-left:130px}.row-fluid{width:100%;*zoom:1}.row-fluid:before,.row-fluid:after{display:table;content:""}.row-fluid:after{clear:both}.row-fluid [class*="span"]{display:block;float:left;width:100%;min-height:28px;margin-left:2.564102564%;*margin-left:2.510911074638298%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.row-fluid [class*="span"]:first-child{margin-left:0}.row-fluid .span12{width:100%;*width:99.94680851063829%}.row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%}.row-fluid .span10{width:82.905982906%;*width:82.8527914166383%}.row-fluid .span9{width:74.358974359%;*width:74.30578286963829%}.row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%}.row-fluid .span7{width:57.264957265%;*width:57.2117657756383%}.row-fluid .span6{width:48.717948718%;*width:48.6647572286383%}.row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%}.row-fluid .span4{width:31.623931624%;*width:31.5707401346383%}.row-fluid .span3{width:23.076923077%;*width:23.0237315876383%}.row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%}.row-fluid .span1{width:5.982905983%;*width:5.929714493638298%}input,textarea,.uneditable-input{margin-left:0}input.span12,textarea.span12,.uneditable-input.span12{width:1160px}input.span11,textarea.span11,.uneditable-input.span11{width:1060px}input.span10,textarea.span10,.uneditable-input.span10{width:960px}input.span9,textarea.span9,.uneditable-input.span9{width:860px}input.span8,textarea.span8,.uneditable-input.span8{width:760px}input.span7,textarea.span7,.uneditable-input.span7{width:660px}input.span6,textarea.span6,.uneditable-input.span6{width:560px}input.span5,textarea.span5,.uneditable-input.span5{width:460px}input.span4,textarea.span4,.uneditable-input.span4{width:360px}input.span3,textarea.span3,.uneditable-input.span3{width:260px}input.span2,textarea.span2,.uneditable-input.span2{width:160px}input.span1,textarea.span1,.uneditable-input.span1{width:60px}.thumbnails{margin-left:-30px}.thumbnails>li{margin-left:30px}.row-fluid .thumbnails{margin-left:0}}@media(max-width:979px){body{padding-top:0}.navbar-fixed-top{position:static;margin-bottom:18px}.navbar-fixed-top .navbar-inner{padding:5px}.navbar .container{width:auto;padding:0}.navbar .brand{padding-right:10px;padding-left:10px;margin:0 0 0 -5px}.nav-collapse{clear:both}.nav-collapse .nav{float:none;margin:0 0 9px}.nav-collapse .nav>li{float:none}.nav-collapse .nav>li>a{margin-bottom:2px}.nav-collapse .nav>.divider-vertical{display:none}.nav-collapse .nav .nav-header{color:#999;text-shadow:none}.nav-collapse .nav>li>a,.nav-collapse .dropdown-menu a{padding:6px 15px;font-weight:bold;color:#999;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px}.nav-collapse .btn{padding:4px 10px 4px;font-weight:normal;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px}.nav-collapse .dropdown-menu li+li a{margin-bottom:2px}.nav-collapse .nav>li>a:hover,.nav-collapse .dropdown-menu a:hover{background-color:#222}.nav-collapse.in .btn-group{padding:0;margin-top:5px}.nav-collapse .dropdown-menu{position:static;top:auto;left:auto;display:block;float:none;max-width:none;padding:0;margin:0 15px;background-color:transparent;border:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}.nav-collapse .dropdown-menu:before,.nav-collapse .dropdown-menu:after{display:none}.nav-collapse .dropdown-menu .divider{display:none}.nav-collapse .navbar-form,.nav-collapse .navbar-search{float:none;padding:9px 15px;margin:9px 0;border-top:1px solid #222;border-bottom:1px solid #222;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1)}.navbar .nav-collapse .nav.pull-right{float:none;margin-left:0}.nav-collapse,.nav-collapse.collapse{height:0;overflow:hidden}.navbar .btn-navbar{display:block}.navbar-static .navbar-inner{padding-right:10px;padding-left:10px}}@media(min-width:980px){.nav-collapse.collapse{height:auto!important;overflow:visible!important}} 10 | -------------------------------------------------------------------------------- /etc/misstar/luci/css/main.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Binux <17175297.hk@gmail.com> 3 | * 4 | * This file is part of YAAW (https://github.com/binux/yaaw). 5 | * 6 | * YAAW is free software: you can redistribute it and/or modify 7 | * it under the terms of the GNU Lesser General Public License as 8 | * published by the Free Software Foundation, either version 3 of 9 | * the License, or (at your option) any later version. 10 | * 11 | * YAAW is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU Lesser General Public License for more details. 15 | * 16 | * You may get a copy of the GNU Lesser General Public License 17 | * from http://www.gnu.org/licenses/lgpl.txt 18 | * 19 | */ 20 | 21 | .select-box { 22 | cursor: pointer; 23 | } 24 | .btn-inline { 25 | /* fix for MAC/chrome */ 26 | display: inline !important; 27 | } 28 | .btn-inline:before, .btn-inline:after { 29 | /* fix for IE8 */ 30 | content: none !important; 31 | display: none !important; 32 | } 33 | 34 | /* header */ 35 | .main-head { 36 | position: relative; 37 | padding-bottom: 3px; 38 | border-bottom: 1px solid #C6C6C6; 39 | } 40 | .main-head h1 { 41 | display: inline-block; 42 | } 43 | 44 | #main-alert { 45 | position: absolute; 46 | left: 0; 47 | width: 100%; 48 | text-align: center; 49 | } 50 | #main-alert-inline { 51 | display: inline-block; 52 | text-align: left; 53 | position: relative; 54 | top: -10px; 55 | z-index: 99; 56 | } 57 | 58 | #global-info { 59 | position: absolute; 60 | bottom: 0; 61 | right: 0; 62 | } 63 | #global-version { 64 | text-align: right; 65 | } 66 | 67 | /* main-control */ 68 | #main-control { 69 | margin-top: 10px; 70 | } 71 | 72 | #select-btn { 73 | margin-right: 30px; 74 | } 75 | .select-box { 76 | display: inline-block; 77 | vertical-align: text-top; 78 | border: 1px solid #C6C6C6; 79 | border: 1px solid rgba(155, 155, 155, .57); 80 | width: 14px; 81 | height: 14px; 82 | line-height: 14px; 83 | } 84 | 85 | #do-all-btn { 86 | /* fix for MAC/chrome firefox */ 87 | position: relative; 88 | left: 10px; 89 | } 90 | 91 | #info-btn { 92 | margin-left: 10px; 93 | } 94 | 95 | #other-grp { 96 | } 97 | 98 | /* active-tasks */ 99 | #active-tasks { 100 | margin-top: 40px; 101 | } 102 | .empty-tasks { 103 | text-align: center; 104 | padding: 8px; 105 | } 106 | .section-header { 107 | font-size: 16px; 108 | } 109 | .section-header i { 110 | margin-right: 5px; 111 | vertical-align: baseline; 112 | } 113 | 114 | /* other-tasks */ 115 | #other-tasks { 116 | margin-top: 40px; 117 | } 118 | #waiting-tasks-table { 119 | margin-bottom: 0; 120 | } 121 | #stoped-tasks-table { 122 | border-top: 0; 123 | margin-top: 0; 124 | } 125 | 126 | /* tasks */ 127 | .tasks-table { 128 | margin: 0; 129 | margin-top: 10px; 130 | } 131 | 132 | .task.selected { 133 | background-color: #F9F9F9; 134 | } 135 | .tasks-table > li { 136 | display: block; 137 | position: relative; 138 | margin-top: -1px; 139 | border-top: 1px solid #DDD; 140 | border-bottom: 1px solid #DDD; 141 | line-height: 18px; 142 | text-align: left; 143 | vertical-align: top; 144 | } 145 | .tasks-table > li:hover { 146 | background-color: #f5f5f5; 147 | } 148 | 149 | .left-area { 150 | position: relative; 151 | padding: 8px; 152 | } 153 | .right-area { 154 | position: absolute; 155 | top: 0; 156 | right: 0; 157 | padding: 8px; 158 | } 159 | 160 | .task .task-name { 161 | margin-right: 70px; 162 | cursor: pointer; 163 | overflow: hidden; 164 | text-overflow: ellipsis; 165 | white-space: nowrap; 166 | } 167 | .task .task-name span { 168 | margin-left: 3px; 169 | font-size: 18px; 170 | font-weight: bold; 171 | } 172 | 173 | .task .task-name .select-box { 174 | vertical-align: -15%; 175 | } 176 | .task:hover .select-box { 177 | border-color: #666; 178 | } 179 | 180 | .task .task-info span { 181 | margin-right: 8px; 182 | } 183 | 184 | .task .task-info, 185 | .task .progress-info { 186 | margin-top: 4px; 187 | } 188 | .task .progress { 189 | margin: 1px 0; 190 | } 191 | 192 | .task .download-speed, 193 | .task .upload-speed, 194 | .task .seeders { 195 | margin-right: 8px; 196 | } 197 | 198 | #other-tasks .task-info { 199 | margin: 0; 200 | overflow: hidden; 201 | white-space: nowrap; 202 | } 203 | @media (min-width: 980px) { 204 | #active-tasks .left-area { 205 | margin-right: 286px; 206 | } 207 | #active-tasks .right-area { 208 | width: 270px; 209 | } 210 | 211 | #other-tasks .left-area { 212 | margin-right: 416px; 213 | } 214 | #other-tasks .right-area { 215 | width: 400px; 216 | } 217 | #other-tasks .task-info { 218 | width: 190px; 219 | } 220 | #other-tasks .progress { 221 | width: 200px; 222 | } 223 | } 224 | 225 | @media (max-width: 980px) { 226 | #active-tasks .left-area { 227 | margin-right: 186px; 228 | } 229 | #active-tasks .right-area { 230 | width: 170px; 231 | } 232 | 233 | #other-tasks .left-area { 234 | margin-right: 246px; 235 | } 236 | #other-tasks .right-area { 237 | width: 230px; 238 | } 239 | #other-tasks .task-info { 240 | width: 120px; 241 | } 242 | #other-tasks .progress { 243 | width: 100px; 244 | } 245 | } 246 | 247 | /* task infobox */ 248 | .info-open { 249 | background-color: #F9F9F9; 250 | } 251 | .info-box { 252 | } 253 | .info-box .tab-content { 254 | height: 300px; 255 | overflow-y: auto; 256 | } 257 | .info-box .nav { 258 | margin-top: -1px; 259 | margin-bottom: 0; 260 | height: 300px; 261 | } 262 | #ib-status, 263 | #ib-files, 264 | #ib-options { 265 | position: relative; 266 | margin: 18px 0; 267 | } 268 | #ib-files ul, 269 | #ib-options ul { 270 | margin: 0; 271 | } 272 | #ib-files li { 273 | display: block; 274 | cursor: pointer; 275 | line-height: 14px; 276 | padding-bottom: 6px; 277 | vertical-align: top; 278 | border-bottom: 1px solid #FFF; 279 | } 280 | #ib-files .ib-file-title:hover { 281 | border-bottom: 1px solid #666; 282 | } 283 | #ib-file-btn, 284 | #ib-options-btn { 285 | position: absolute; 286 | top: 0; 287 | right: 18px; 288 | } 289 | .ib-file-title { 290 | margin-left: 5px; 291 | } 292 | .ib-file-size { 293 | margin-left: 20px; 294 | } 295 | #ib-options li { 296 | display: block; 297 | float: left; 298 | padding-bottom: 6px; 299 | margin-right: 100px; 300 | } 301 | #ib-options li span { 302 | display: block; 303 | text-align: right; 304 | padding-right: 1em; 305 | width: 140px; 306 | line-height: 24px; 307 | } 308 | #ib-options li > * { 309 | float: left; 310 | } 311 | 312 | /* task-contextmenu */ 313 | 314 | #task-contextmenu { 315 | position: fixed; 316 | z-index: 99; 317 | } 318 | 319 | /* add task modal */ 320 | #add-task-modal { 321 | overflow-x: hidden; 322 | } 323 | #add-task-modal .modal-body.hover { 324 | padding: 13px; 325 | border: 2px solid #666; 326 | } 327 | 328 | #add-task-uri { 329 | text-align: center; 330 | white-space: nowrap; 331 | padding: 10px 19px; 332 | margin: 0; 333 | overflow: hidden; 334 | } 335 | #uri-input { 336 | width: 370px; 337 | } 338 | #uri-textarea { 339 | width: 465px; 340 | margin: 0; 341 | } 342 | 343 | #uri-more { 344 | font-size: 7px; 345 | text-align: center; 346 | height: 10px; 347 | margin: 0 20px 20px; 348 | line-height: 10px; 349 | color: #DDD; 350 | background-color: whiteSmoke; 351 | cursor: pointer; 352 | } 353 | #uri-more:hover { 354 | background-color: #DDD; 355 | color: #999; 356 | } 357 | 358 | #torrent-up-input { 359 | position: absolute; 360 | text-align: right; 361 | height: 28px; 362 | width: 106px; 363 | -moz-opacity: 0; 364 | filter: alpha(opacity: 0); 365 | opacity: 0; 366 | z-index: 2; 367 | } 368 | #torrent-up-btn { 369 | } 370 | 371 | #add-task-alert { 372 | position: relative; 373 | top: 5px; 374 | } 375 | 376 | #add-task-option { 377 | padding-left: 20px; 378 | } 379 | #add-task-option .input-xlarge { 380 | width: 350px; 381 | } 382 | #add-task-option .half { 383 | float: left; 384 | width: 230px; 385 | margin-left: 10px; 386 | } 387 | #add-task-option .control-label { 388 | width: 70px; 389 | } 390 | #add-task-option .controls { 391 | margin-left: 85px; 392 | } 393 | 394 | /* aria2 global setting */ 395 | #copyright { 396 | margin-top: 10px; 397 | float: left; 398 | } 399 | #aria2-gs-form .input-xlarge { 400 | width: 320px; 401 | } 402 | #aria2-gs-form .half { 403 | float: left; 404 | width: 240px; 405 | margin-left: 10px; 406 | } 407 | #aria2-gs-form .half .control-label { 408 | width: 110px; 409 | } 410 | #aria2-gs-form .half .controls { 411 | margin-left: 130px; 412 | } 413 | 414 | /* vim: set et sw=4 ts=4 sts=4 fdm=marker ff=unix fenc=utf8: */ 415 | -------------------------------------------------------------------------------- /etc/misstar/luci/css/public.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/css/public.css -------------------------------------------------------------------------------- /etc/misstar/luci/img/action_btn.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/action_btn.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/dclogo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/dclogo.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/glyphicons-halflings-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/glyphicons-halflings-white.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/glyphicons-halflings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/glyphicons-halflings.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_back.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_back.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_back_arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_back_arrow.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_cloud_account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_cloud_account.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_cloud_handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_cloud_handle.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_cloud_order.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_cloud_order.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_cloud_uninstall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_cloud_uninstall.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_edit_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_edit_blue.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_edit_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_edit_white.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_exc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_exc.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_exc_small.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_exc_small.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_fork.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_menu.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_mobile.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_no.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_picture.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_picture_big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_picture_big.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/icon_yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/icon_yes.png -------------------------------------------------------------------------------- /etc/misstar/luci/img/logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/logo.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/menu_cur.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/menu_cur.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/top_add.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/top_add.gif -------------------------------------------------------------------------------- /etc/misstar/luci/img/vcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/img/vcode.png -------------------------------------------------------------------------------- /etc/misstar/luci/js/global.js: -------------------------------------------------------------------------------- 1 | /** 2 | +---------------------------------------------------------- 3 | * 下拉菜单 4 | +---------------------------------------------------------- 5 | */ 6 | $(function() { 7 | $('.M').hover(function() { 8 | $(this).addClass('active'); 9 | }, 10 | function() { 11 | $(this).removeClass('active'); 12 | }); 13 | }); 14 | 15 | /** 16 | +---------------------------------------------------------- 17 | * 刷新验证码 18 | +---------------------------------------------------------- 19 | */ 20 | function refreshimage() { 21 | var cap = document.getElementById('vcode'); 22 | cap.src = cap.src + '?'; 23 | } 24 | 25 | /** 26 | +---------------------------------------------------------- 27 | * 无组件刷新局部内容 28 | +---------------------------------------------------------- 29 | */ 30 | function dou_callback(page, name, value, target) { 31 | $.ajax({ 32 | type: 'GET', 33 | url: page, 34 | data: name + '=' + value, 35 | dataType: "html", 36 | success: function(html) { 37 | $('#' + target).html(html); 38 | } 39 | }); 40 | } 41 | 42 | /** 43 | +---------------------------------------------------------- 44 | * 表单全选 45 | +---------------------------------------------------------- 46 | */ 47 | function selectcheckbox(form) { 48 | for (var i = 0; i < form.elements.length; i++) { 49 | var e = form.elements[i]; 50 | if (e.name != 'chkall' && e.disabled != true) e.checked = form.chkall.checked; 51 | } 52 | } 53 | 54 | /** 55 | +---------------------------------------------------------- 56 | * 显示服务端扩展列表 57 | +---------------------------------------------------------- 58 | */ 59 | function get_cloud_list(unique_id, get, localsite) { 60 | $.ajax({ 61 | type: 'GET', 62 | url: 'http://cloud.douco.com/extend&rec=client', 63 | data: {'unique_id':unique_id, 'get':get, 'localsite':localsite}, 64 | dataType: 'jsonp', 65 | jsonp: 'jsoncallback', 66 | success: function(cloud) { 67 | $('.selector').html(cloud.selector) 68 | $('.cloudList').html(cloud.html) 69 | $('.pager').html(cloud.pager) 70 | } 71 | }); 72 | } 73 | 74 | /** 75 | +---------------------------------------------------------- 76 | * 写入可更新数量 77 | +---------------------------------------------------------- 78 | */ 79 | function cloud_update_number(localsite) { 80 | $.ajax({ 81 | type: 'GET', 82 | url: 'http://cloud.douco.com/extend&rec=cloud_update_number', 83 | data: {'localsite':localsite}, 84 | dataType: 'jsonp', 85 | jsonp: 'jsoncallback', 86 | success: function(cloud) { 87 | change_update_number(cloud.update, cloud.patch, cloud.module, cloud.plugin, cloud.theme, cloud.mobile) 88 | } 89 | }); 90 | } 91 | 92 | /** 93 | +---------------------------------------------------------- 94 | * 修改update_number值 95 | +---------------------------------------------------------- 96 | */ 97 | function change_update_number(update, patch, module, plugin, theme, mobile) { 98 | $.ajax({ 99 | type: 'POST', 100 | url: 'cloud.php?rec=update_number', 101 | data: {'update':update, 'patch':patch, 'module':module, 'plugin':plugin, 'theme':theme} 102 | }); 103 | } 104 | 105 | /** 106 | +---------------------------------------------------------- 107 | * 弹出窗口 108 | +---------------------------------------------------------- 109 | */ 110 | function douFrame(name, frame, url ) { 111 | $.ajax({ 112 | type: 'POST', 113 | url: url, 114 | data: {'name':name, 'frame':frame}, 115 | dataType: 'html', 116 | success: function(html) { 117 | $(document.body).append(html); 118 | } 119 | }); 120 | } 121 | 122 | /** 123 | +---------------------------------------------------------- 124 | * 显示和隐藏 125 | +---------------------------------------------------------- 126 | */ 127 | function douDisplay(target, action) { 128 | var traget = document.getElementById(target); 129 | if (action == 'show') { 130 | traget.style.display = 'block'; 131 | } else { 132 | traget.style.display = 'none'; 133 | } 134 | } 135 | 136 | /** 137 | +---------------------------------------------------------- 138 | * 清空对象内HTML 139 | +---------------------------------------------------------- 140 | */ 141 | function douRemove(target) { 142 | var obj = document.getElementById(target); 143 | obj.parentNode.removeChild(obj); 144 | } 145 | 146 | /** 147 | +---------------------------------------------------------- 148 | * 无刷新自定义导航名称 149 | +---------------------------------------------------------- 150 | */ 151 | function change(id, choose) { 152 | document.getElementById(id).value = choose.options[choose.selectedIndex].title; 153 | } -------------------------------------------------------------------------------- /etc/misstar/luci/js/jquery.Storage.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Storage plugin 3 | * Provides a simple interface for storing data such as user preferences. 4 | * Storage is useful for saving and retreiving data from the user's browser. 5 | * For newer browsers, localStorage is used. 6 | * If localStorage isn't supported, then cookies are used instead. 7 | * Retrievable data is limited to the same domain as this file. 8 | * 9 | * Usage: 10 | * This plugin extends jQuery by adding itself as a static method. 11 | * $.Storage - is the class name, which represents the user's data store, whether it's cookies or local storage. 12 | * if ($.Storage) will tell you if the plugin is loaded. 13 | * $.Storage.set("name", "value") - Stores a named value in the data store. 14 | * $.Storage.set({"name1":"value1", "name2":"value2", etc}) - Stores multiple name/value pairs in the data store. 15 | * $.Storage.get("name") - Retrieves the value of the given name from the data store. 16 | * $.Storage.remove("name") - Permanently deletes the name/value pair from the data store. 17 | * 18 | * @author Dave Schindler 19 | * 20 | * Distributed under the MIT License 21 | * 22 | * Copyright (c) 2010 Dave Schindler 23 | * 24 | * Permission is hereby granted, free of charge, to any person obtaining a copy 25 | * of this software and associated documentation files (the "Software"), to deal 26 | * in the Software without restriction, including without limitation the rights 27 | * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 28 | * copies of the Software, and to permit persons to whom the Software is 29 | * furnished to do so, subject to the following conditions: 30 | * 31 | * The above copyright notice and this permission notice shall be included in 32 | * all copies or substantial portions of the Software. 33 | * 34 | * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 35 | * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 36 | * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 37 | * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 38 | * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 39 | * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 40 | * THE SOFTWARE. 41 | */ 42 | (function($) { 43 | // Private data 44 | var isLS=typeof window.localStorage!=='undefined'; 45 | // Private functions 46 | function wls(n,v){var c;if(typeof n==="string"&&typeof v==="string"){localStorage[n]=v;return true;}else if(typeof n==="object"&&typeof v==="undefined"){for(c in n){if(n.hasOwnProperty(c)){localStorage[c]=n[c];}}return true;}return false;} 47 | function wc(n,v){var dt,e,c;dt=new Date();dt.setTime(dt.getTime()+31536000000);e="; expires="+dt.toGMTString();if(typeof n==="string"&&typeof v==="string"){document.cookie=n+"="+v+e+"; path=/";return true;}else if(typeof n==="object"&&typeof v==="undefined"){for(c in n) {if(n.hasOwnProperty(c)){document.cookie=c+"="+n[c]+e+"; path=/";}}return true;}return false;} 48 | function rls(n){return localStorage[n];} 49 | function rc(n){var nn, ca, i, c;nn=n+"=";ca=document.cookie.split(';');for(i=0;i opts.minHeight) { 18 | if (opts.maxHeight && this.scrollHeight > opts.maxHeight) { 19 | height = opts.maxHeight; 20 | style.overflowY = 'scroll'; 21 | } else { 22 | height = this.scrollHeight; 23 | style.overflowY = 'hidden'; 24 | } 25 | style.height = height + 'px'; 26 | } 27 | }); 28 | }); 29 | }; 30 | })(jQuery); -------------------------------------------------------------------------------- /etc/misstar/luci/js/jquery.base64.min.js: -------------------------------------------------------------------------------- 1 | "use strict";jQuery.base64=(function($){var _PADCHAR="=",_ALPHA="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",_VERSION="1.0";function _getbyte64(s,i){var idx=_ALPHA.indexOf(s.charAt(i));if(idx===-1){throw"Cannot decode base64"}return idx}function _decode(s){var pads=0,i,b10,imax=s.length,x=[];s=String(s);if(imax===0){return s}if(imax%4!==0){throw"Cannot decode base64"}if(s.charAt(imax-1)===_PADCHAR){pads=1;if(s.charAt(imax-2)===_PADCHAR){pads=2}imax-=4}for(i=0;i>16,(b10>>8)&255,b10&255))}switch(pads){case 1:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12)|(_getbyte64(s,i+2)<<6);x.push(String.fromCharCode(b10>>16,(b10>>8)&255));break;case 2:b10=(_getbyte64(s,i)<<18)|(_getbyte64(s,i+1)<<12);x.push(String.fromCharCode(b10>>16));break}return x.join("")}function _getbyte(s,i){var x=s.charCodeAt(i);if(x>255){throw"INVALID_CHARACTER_ERR: DOM Exception 5"}return x}function _encode(s){if(arguments.length!==1){throw"SyntaxError: exactly one argument required"}s=String(s);var i,b10,x=[],imax=s.length-s.length%3;if(s.length===0){return s}for(i=0;i>18));x.push(_ALPHA.charAt((b10>>12)&63));x.push(_ALPHA.charAt((b10>>6)&63));x.push(_ALPHA.charAt(b10&63))}switch(s.length-imax){case 1:b10=_getbyte(s,i)<<16;x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_PADCHAR+_PADCHAR);break;case 2:b10=(_getbyte(s,i)<<16)|(_getbyte(s,i+1)<<8);x.push(_ALPHA.charAt(b10>>18)+_ALPHA.charAt((b10>>12)&63)+_ALPHA.charAt((b10>>6)&63)+_PADCHAR);break}return x.join("")}return{decode:_decode,encode:_encode,VERSION:_VERSION}}(jQuery)); -------------------------------------------------------------------------------- /etc/misstar/luci/js/jquery.jsonrpc.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.extend({ 3 | jsonRPC: { 4 | // RPC Version Number 5 | version: '2.0', 6 | 7 | // End point URL, sets default in requests if not 8 | // specified with the request call 9 | endPoint: null, 10 | 11 | // Default namespace for methods 12 | namespace: null, 13 | 14 | /* 15 | * Provides the RPC client with an optional default endpoint and namespace 16 | * 17 | * @param {object} The params object which can contains 18 | * {string} endPoint The default endpoint for RPC requests 19 | * {string} namespace The default namespace for RPC requests 20 | */ 21 | setup: function(params) { 22 | this._validateConfigParams(params); 23 | this.endPoint = params.endPoint; 24 | this.namespace = params.namespace; 25 | this.auth = this.endPoint.match(/^(?:(?![^:@]+:[^:@\/]*@)[^:\/?#.]+:)?(?:\/\/)?(?:([^:@]*(?::[^:@]*)?)?@)?/)[1]; 26 | return this; 27 | }, 28 | 29 | /* 30 | * Convenience wrapper method to allow you to temporarily set a config parameter 31 | * (endPoint or namespace) and ensure it gets set back to what it was before 32 | * 33 | * @param {object} The params object which can contains 34 | * {string} endPoint The default endpoint for RPC requests 35 | * {string} namespace The default namespace for RPC requests 36 | * @param {function} callback The function to call with the new params in place 37 | */ 38 | withOptions: function(params, callback) { 39 | this._validateConfigParams(params); 40 | // No point in running if there isn't a callback received to run 41 | if(typeof(callback) === 'undefined') throw("No callback specified"); 42 | 43 | origParams = {endPoint: this.endPoint, namespace: this.namespace}; 44 | this.setup(params); 45 | callback.call(this); 46 | this.setup(origParams); 47 | }, 48 | 49 | /* 50 | * Performas a single RPC request 51 | * 52 | * @param {string} method The name of the rpc method to be called 53 | * @param {object} options A collection of object which can contains 54 | * params {array} the params array to send along with the request 55 | * success {function} a function that will be executed if the request succeeds 56 | * error {function} a function that will be executed if the request fails 57 | * url {string} the url to send the request to 58 | * id {string} the provenance id for this request (defaults to 1) 59 | * @return {undefined} 60 | */ 61 | request: function(method, options) { 62 | if(typeof(options) === 'undefined') { 63 | options = { id: 1 }; 64 | } 65 | if (typeof(options.id) === 'undefined') { 66 | options.id = 1; 67 | } 68 | 69 | // Validate method arguments 70 | this._validateRequestMethod(method); 71 | this._validateRequestParams(options.params); 72 | this._validateRequestCallbacks(options.success, options.error); 73 | 74 | // Perform the actual request 75 | this._doRequest(JSON.stringify(this._requestDataObj(method, options.params, options.id)), options); 76 | 77 | return true; 78 | }, 79 | 80 | /* 81 | * Submits multiple requests 82 | * Takes an array of objects that contain a method and params 83 | * 84 | * @params {array} requests an array of request object which can contain 85 | * method {string} the name of the method 86 | * param {object} the params object to be sent with the request 87 | * id {string} the provenance id for the request (defaults to an incrementer starting at 1) 88 | * @param {object} options A collection of object which can contains 89 | * success {function} a function that will be executed if the request succeeds 90 | * error {function} a function that will be executed if the request fails 91 | * url {string} the url to send the request to 92 | * @return {undefined} 93 | */ 94 | batchRequest: function(requests, options) { 95 | if(typeof(options) === 'undefined') { 96 | options = {}; 97 | } 98 | 99 | // Ensure our requests come in as an array 100 | if(!$.isArray(requests) || requests.length === 0) throw("Invalid requests supplied for jsonRPC batchRequest. Must be an array object that contain at least a method attribute"); 101 | 102 | // Make sure each of our request objects are valid 103 | var _that = this; 104 | $.each(requests, function(i, req) { 105 | _that._validateRequestMethod(req.method); 106 | _that._validateRequestParams(req.params); 107 | if (typeof(req.id) === 'undefined') { 108 | req.id = i + 1; 109 | } 110 | }); 111 | this._validateRequestCallbacks(options.success, options.error); 112 | 113 | var data = [], 114 | request; 115 | 116 | // Prepare our request object 117 | for(var i = 0; i 0 && json[0].jsonrpc !== '2.0') || 256 | (!$.isArray(json) && json.jsonrpc !== '2.0')) { 257 | throw 'Version error'; 258 | } 259 | 260 | return json; 261 | } 262 | catch (e) { 263 | return { 264 | error: 'Internal server error: ' + e, 265 | version: '2.0' 266 | } 267 | } 268 | } 269 | } 270 | 271 | } 272 | }); 273 | })(jQuery); 274 | -------------------------------------------------------------------------------- /etc/misstar/luci/js/jquery.tab.js: -------------------------------------------------------------------------------- 1 | /*! idTabs v3.0 ~ Sean Catchpole - Copyright 2010 MIT/GPL */ 2 | ;(function($){ 3 | 4 | // Helper functions 5 | var idTabs, //shortcut 6 | undefined, //speed up 7 | href = function(e){ return $(e).attr("href"); }, 8 | type = function(o){ //reliable 9 | return o===null && "Null" 10 | || o===undefined && "Undefined" 11 | || ({}).toString.call(o).slice(8,-1); 12 | }; 13 | 14 | $.fn.idTabs = function(){ 15 | var s = idTabs.args.apply(this,arguments), 16 | action = s.update&&"update" || s.remove&&"remove" || "bind"; 17 | s.area = this; //save context 18 | idTabs[action](s); 19 | return this; //chainable 20 | }; 21 | 22 | idTabs = $.idTabs = function(tabarea,options,data){ 23 | // Settings 24 | var e, tabs, items, test=$(), meta = $.metadata?$(tabarea).metadata():{}, //metadata 25 | s = {tab:idTabs.tab,item:idTabs.item}; //helpers 26 | s = $.extend(s,idTabs.settings,meta,options||{}); //settings 27 | s.tabarea = $(tabarea); //save context 28 | s.data = data||"idTabs"+ +new Date; //save expando 29 | 30 | // Play nice 31 | $.each({selected:'.',event:'!',start:'#'},function(n,c){ 32 | if(type(s[n])=="String" && s[n].indexOf(c)==0) 33 | s[n] = s[n].substr(1); }); //removes type characters 34 | if(s.start===null) s.start=-1; //no tab selected 35 | 36 | // Find tabs 37 | items = []; //save elements 38 | s.tabs = tabs = $("a[href^=#]",tabarea); //save tabs 39 | tabs.each(function(){ //add items 40 | test = s.item(href(this)); 41 | if(test.length) items=items.concat(test.get()); 42 | }); 43 | s.items = $(items).hide(); //hide items 44 | 45 | // Save Settings 46 | e="idTabs."+s.event; 47 | data=s.tabarea.data("idTabs")||{}; 48 | data[e]=s; 49 | s.tabarea.data("idTabs",data); 50 | 51 | // Bind idTabs 52 | tabs.trigger(e).data(s.data,s) 53 | .bind(e,{s:s},function(){ //wrapper function due to jQuery bug 54 | return idTabs.unbind.apply(this,arguments); }) 55 | .bind(s.event,{s:s},idTabs.find); 56 | 57 | // Select default tab 58 | type(s.start) == "Number" && (s.start<0 || (test=tabs.eq(s.start)).length) 59 | || type(s.start) == "String" && (test=tabs.filter("a[href=#"+s.start+"]")).length 60 | || (test=tabs.filter('.'+s.selected).removeClass(s.selected)).length 61 | || (s.start===undefined && (test=tabs.eq(0)).length); 62 | if(test.length) test.trigger(s.event); 63 | 64 | return s; //return current settings (be creative) 65 | }; 66 | 67 | // Parse arguments into settings 68 | idTabs.args = function(){ 69 | var a,i=0,s={},args=arguments, 70 | // Handle string flags .!: 71 | str = function(_,a){ 72 | if(a.indexOf('.')==0) s.selected = a; 73 | else if(a.indexOf('!')==0) 74 | if(/^!(true|false)$/i.test(a)) s.toggle = /^!true$/i.test(a); 75 | else s.event = a; 76 | else if(a.indexOf(':')==0) { 77 | a=a.substr(1).toLowerCase(); 78 | if(a.indexOf('!')==0) s[a.substr(1)]=false; 79 | else s[a]=true; 80 | } else if(a) s.start = a; 81 | }; 82 | // Loop through arguments matching options 83 | while(i'+(a.value||"")+"":function(){return''}();return layer.open($.extend({btn:["确定","取消"],content:e,skin:"layui-layer-prompt"+b("prompt"),success:function(a){d=a.find(".layui-layer-input"),d.focus()},yes:function(b){var e=d.val();""===e?d.focus():e.length>(a.maxlength||500)?layer.tips("最多输入"+(a.maxlength||500)+"个字数",d,{tips:1}):c&&c(e,b,d)}},a))},layer.tab=function(a){a=a||{};var c=a.tab||{};return layer.open($.extend({type:1,skin:"layui-layer-tab"+b("tab"),title:function(){var a=c.length,b=1,d="";if(a>0)for(d=''+c[0].title+"";a>b;b++)d+=""+c[b].title+"";return d}(),content:'
    '+function(){var a=c.length,b=1,d="";if(a>0)for(d='
  • '+(c[0].content||"no content")+"
  • ";a>b;b++)d+='
  • '+(c[b].content||"no content")+"
  • ";return d}()+"
",success:function(b){var c=b.find(".layui-layer-title").children(),d=b.find(".layui-layer-tabmain").children();c.on("mousedown",function(b){b.stopPropagation?b.stopPropagation():b.cancelBubble=!0;var c=$(this),e=c.index();c.addClass("layui-layer-tabnow").siblings().removeClass("layui-layer-tabnow"),d.eq(e).show().siblings().hide(),"function"==typeof a.change&&a.change(e)})}},a))},layer.photos=function(a,c,d){function e(a,b,c){var d=new Image;d.onload=function(){d.onload=null,b(d)},d.onerror=function(a){d.onerror=null,c(a)},d.src=a}var f={};if(a=a||{},a.photos){var g=a.photos.constructor===Object,h=g?a.photos:{},i=h.data||[],j=h.start||0;if(f.imgIndex=j+1,g){if(0===i.length)return layer.msg("没有图片")}else{var k=$(a.photos),l=function(){return i=[],k.find(a.img||"img").each(function(a){var b=$(this);i.push({alt:b.attr("alt"),pid:b.attr("layer-pid"),src:b.attr("layer-src")||b.attr("src"),thumb:b.attr("src")})}),arguments.callee}();if(0===i.length)return;if(c||k.on("click",a.img||"img",function(){var b=$(this),c=b.index();l(),layer.photos($.extend(a,{photos:{start:c,data:i,tab:a.tab},full:a.full}),!0)}),!c)return}f.imgprev=function(a){f.imgIndex--,f.imgIndex<1&&(f.imgIndex=i.length),f.tabimg(a)},f.imgnext=function(a,b){f.imgIndex++,f.imgIndex>i.length&&(f.imgIndex=1,b)||f.tabimg(a)},f.keyup=function(a){if(!f.end){var b=a.keyCode;a.preventDefault(),37===b?f.imgprev(!0):39===b?f.imgnext(!0):27===b&&layer.close(f.index)}},f.tabimg=function(b){i.length<=1||(h.start=f.imgIndex-1,layer.close(f.index),layer.photos(a,!0,b))},f.event=function(){f.bigimg.hover(function(){f.imgsee.show()},function(){f.imgsee.hide()}),f.bigimg.find(".layui-layer-imgprev").on("click",function(a){a.preventDefault(),f.imgprev()}),f.bigimg.find(".layui-layer-imgnext").on("click",function(a){a.preventDefault(),f.imgnext()}),$(document).on("keyup",f.keyup)},f.loadi=layer.load(1,{shade:"shade"in a?!1:.9,scrollbar:!1}),e(i[j].src,function(c){layer.close(f.loadi),f.index=layer.open($.extend({type:1,area:function(){var b=[c.width,c.height],d=[$(window).width()-100,$(window).height()-100];return!a.full&&b[0]>d[0]&&(b[0]=d[0],b[1]=b[0]*d[1]/b[0]),[b[0]+"px",b[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,shift:5*Math.random()|0,skin:"layui-layer-photos"+b("photos"),content:'
'+(i[j].alt||
'+(i.length>1?'':"")+'
'+(i[j].alt||"")+""+f.imgIndex+"/"+i.length+"
",success:function(b,c){f.bigimg=b.find(".layui-layer-phimg"),f.imgsee=b.find(".layui-layer-imguide,.layui-layer-imgbar"),f.event(b),a.tab&&a.tab(i[j],b)},end:function(){f.end=!0,$(document).off("keyup",f.keyup)}},a))},function(){layer.close(f.loadi),layer.msg("当前图片地址异常
是否继续查看下一张?",{time:3e4,btn:["下一张","不看了"],yes:function(){i.length>1&&f.imgnext(!0,!0)}})})}}}(); -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/layer.js: -------------------------------------------------------------------------------- 1 | /*! layer-v2.2 弹层组件 License LGPL http://layer.layui.com/ By 贤心 */ 2 | ;!function(a,b){"use strict";var c,d,e={getPath:function(){var a=document.scripts,b=a[a.length-1],c=b.src;if(!b.getAttribute("merge"))return c.substring(0,c.lastIndexOf("/")+1)}(),enter:function(a){13===a.keyCode&&a.preventDefault()},config:{},end:{},btn:["确定","取消"],type:["dialog","page","iframe","loading","tips"]},f={v:"2.2",ie6:!!a.ActiveXObject&&!a.XMLHttpRequest,index:0,path:e.getPath,config:function(a,b){var d=0;return a=a||{},f.cache=e.config=c.extend(e.config,a),f.path=e.config.path||f.path,"string"==typeof a.extend&&(a.extend=[a.extend]),f.use("skin/layer.css",a.extend&&a.extend.length>0?function g(){var c=a.extend;f.use(c[c[d]?d:d-1],d'+(i?f.title[0]:f.title)+"":"";return f.zIndex=g,b([f.shade?'
':"",'
'+(a&&2!=f.type?"":k)+'
'+(0==f.type&&-1!==f.icon?'':"")+(1==f.type&&a?"":f.content||"")+'
'+function(){var a=j?'':"";return f.closeBtn&&(a+=''),a}()+""+(f.btn?function(){var a="";"string"==typeof f.btn&&(f.btn=[f.btn]);for(var b=0,c=f.btn.length;c>b;b++)a+=''+f.btn[b]+"";return'
'+a+"
"}():"")+"
"],k),c},g.pt.creat=function(){var a=this,b=a.config,g=a.index,i=b.content,j="object"==typeof i;if(!c("#"+b.id)[0]){switch("string"==typeof b.area&&(b.area="auto"===b.area?["",""]:[b.area,""]),b.type){case 0:b.btn="btn"in b?b.btn:e.btn[0],f.closeAll("dialog");break;case 2:var i=b.content=j?b.content:[b.content||"http://layer.layui.com","auto"];b.content='';break;case 3:b.title=!1,b.closeBtn=!1,-1===b.icon&&0===b.icon,f.closeAll("loading");break;case 4:j||(b.content=[b.content,"body"]),b.follow=b.content[1],b.content=b.content[0]+'',b.title=!1,b.fix=!1,b.tips="object"==typeof b.tips?b.tips:[b.tips,!0],b.tipsMore||f.closeAll("tips")}a.vessel(j,function(d,e){c("body").append(d[0]),j?function(){2==b.type||4==b.type?function(){c("body").append(d[1])}():function(){i.parents("."+h[0])[0]||(i.show().addClass("layui-layer-wrap").wrap(d[1]),c("#"+h[0]+g).find("."+h[5]).before(e))}()}():c("body").append(d[1]),a.layero=c("#"+h[0]+g),b.scrollbar||h.html.css("overflow","hidden").attr("layer-full",g)}).auto(g),2==b.type&&f.ie6&&a.layero.find("iframe").attr("src",i[0]),c(document).off("keydown",e.enter).on("keydown",e.enter),a.layero.on("keydown",function(a){c(document).off("keydown",e.enter)}),4==b.type?a.tips():a.offset(),b.fix&&d.on("resize",function(){a.offset(),(/^\d+%$/.test(b.area[0])||/^\d+%$/.test(b.area[1]))&&a.auto(g),4==b.type&&a.tips()}),b.time<=0||setTimeout(function(){f.close(a.index)},b.time),a.move().callback()}},g.pt.auto=function(a){function b(a){a=g.find(a),a.height(i[1]-j-k-2*(0|parseFloat(a.css("padding"))))}var e=this,f=e.config,g=c("#"+h[0]+a);""===f.area[0]&&f.maxWidth>0&&(/MSIE 7/.test(navigator.userAgent)&&f.btn&&g.width(g.innerWidth()),g.outerWidth()>f.maxWidth&&g.width(f.maxWidth));var i=[g.innerWidth(),g.innerHeight()],j=g.find(h[1]).outerHeight()||0,k=g.find("."+h[6]).outerHeight()||0;switch(f.type){case 2:b("iframe");break;default:""===f.area[1]?f.fix&&i[1]>=d.height()&&(i[1]=d.height(),b("."+h[5])):b("."+h[5])}return e},g.pt.offset=function(){var a=this,b=a.config,c=a.layero,e=[c.outerWidth(),c.outerHeight()],f="object"==typeof b.offset;a.offsetTop=(d.height()-e[1])/2,a.offsetLeft=(d.width()-e[0])/2,f?(a.offsetTop=b.offset[0],a.offsetLeft=b.offset[1]||a.offsetLeft):"auto"!==b.offset&&(a.offsetTop=b.offset,"rb"===b.offset&&(a.offsetTop=d.height()-e[1],a.offsetLeft=d.width()-e[0])),b.fix||(a.offsetTop=/%$/.test(a.offsetTop)?d.height()*parseFloat(a.offsetTop)/100:parseFloat(a.offsetTop),a.offsetLeft=/%$/.test(a.offsetLeft)?d.width()*parseFloat(a.offsetLeft)/100:parseFloat(a.offsetLeft),a.offsetTop+=d.scrollTop(),a.offsetLeft+=d.scrollLeft()),c.css({top:a.offsetTop,left:a.offsetLeft})},g.pt.tips=function(){var a=this,b=a.config,e=a.layero,f=[e.outerWidth(),e.outerHeight()],g=c(b.follow);g[0]||(g=c("body"));var i={width:g.outerWidth(),height:g.outerHeight(),top:g.offset().top,left:g.offset().left},j=e.find(".layui-layer-TipsG"),k=b.tips[0];b.tips[1]||j.remove(),i.autoLeft=function(){i.left+f[0]-d.width()>0?(i.tipLeft=i.left+i.width-f[0],j.css({right:12,left:"auto"})):i.tipLeft=i.left},i.where=[function(){i.autoLeft(),i.tipTop=i.top-f[1]-10,j.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left+i.width+10,i.tipTop=i.top,j.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",b.tips[1])},function(){i.autoLeft(),i.tipTop=i.top+i.height+10,j.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",b.tips[1])},function(){i.tipLeft=i.left-f[0]-10,i.tipTop=i.top,j.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",b.tips[1])}],i.where[k-1](),1===k?i.top-(d.scrollTop()+f[1]+16)<0&&i.where[2]():2===k?d.width()-(i.left+i.width+f[0]+16)>0||i.where[3]():3===k?i.top-d.scrollTop()+i.height+f[1]+16-d.height()>0&&i.where[0]():4===k&&f[0]+16-i.left>0&&i.where[1](),e.find("."+h[5]).css({"background-color":b.tips[1],"padding-right":b.closeBtn?"30px":""}),e.css({left:i.tipLeft,top:i.tipTop})},g.pt.move=function(){var a=this,b=a.config,e={setY:0,moveLayer:function(){var a=e.layero,b=parseInt(a.css("margin-left")),c=parseInt(e.move.css("left"));0===b||(c-=b),"fixed"!==a.css("position")&&(c-=a.parent().offset().left,e.setY=0),a.css({left:c,top:parseInt(e.move.css("top"))-e.setY})}},f=a.layero.find(b.move);return b.move&&f.attr("move","ok"),f.css({cursor:b.move?"move":"auto"}),c(b.move).on("mousedown",function(a){if(a.preventDefault(),"ok"===c(this).attr("move")){e.ismove=!0,e.layero=c(this).parents("."+h[0]);var f=e.layero.offset().left,g=e.layero.offset().top,i=e.layero.outerWidth()-6,j=e.layero.outerHeight()-6;c("#layui-layer-moves")[0]||c("body").append('
'),e.move=c("#layui-layer-moves"),b.moveType&&e.move.css({visibility:"hidden"}),e.moveX=a.pageX-e.move.position().left,e.moveY=a.pageY-e.move.position().top,"fixed"!==e.layero.css("position")||(e.setY=d.scrollTop())}}),c(document).mousemove(function(a){if(e.ismove){var c=a.pageX-e.moveX,f=a.pageY-e.moveY;if(a.preventDefault(),!b.moveOut){e.setY=d.scrollTop();var g=d.width()-e.move.outerWidth(),h=e.setY;0>c&&(c=0),c>g&&(c=g),h>f&&(f=h),f>d.height()-e.move.outerHeight()+e.setY&&(f=d.height()-e.move.outerHeight()+e.setY)}e.move.css({left:c,top:f}),b.moveType&&e.moveLayer(),c=f=g=h=null}}).mouseup(function(){try{e.ismove&&(e.moveLayer(),e.move.remove(),b.moveEnd&&b.moveEnd()),e.ismove=!1}catch(a){e.ismove=!1}}),a},g.pt.callback=function(){function a(){var a=g.cancel&&g.cancel(b.index);a===!1||f.close(b.index)}var b=this,d=b.layero,g=b.config;b.openLayer(),g.success&&(2==g.type?d.find("iframe").on("load",function(){g.success(d,b.index)}):g.success(d,b.index)),f.ie6&&b.IE6(d),d.find("."+h[6]).children("a").on("click",function(){var e=c(this).index();g["btn"+(e+1)]&&g["btn"+(e+1)](b.index,d),0===e?g.yes?g.yes(b.index,d):f.close(b.index):1===e?a():g["btn"+(e+1)]||f.close(b.index)}),d.find("."+h[7]).on("click",a),g.shadeClose&&c("#layui-layer-shade"+b.index).on("click",function(){f.close(b.index)}),d.find(".layui-layer-min").on("click",function(){f.min(b.index,g),g.min&&g.min(d)}),d.find(".layui-layer-max").on("click",function(){c(this).hasClass("layui-layer-maxmin")?(f.restore(b.index),g.restore&&g.restore(d)):(f.full(b.index,g),g.full&&g.full(d))}),g.end&&(e.end[b.index]=g.end)},e.reselect=function(){c.each(c("select"),function(a,b){var d=c(this);d.parents("."+h[0])[0]||1==d.attr("layer")&&c("."+h[0]).length<1&&d.removeAttr("layer").show(),d=null})},g.pt.IE6=function(a){function b(){a.css({top:f+(e.config.fix?d.scrollTop():0)})}var e=this,f=a.offset().top;b(),d.scroll(b),c("select").each(function(a,b){var d=c(this);d.parents("."+h[0])[0]||"none"===d.css("display")||d.attr({layer:"1"}).hide(),d=null})},g.pt.openLayer=function(){var a=this;f.zIndex=a.config.zIndex,f.setTop=function(a){var b=function(){f.zIndex++,a.css("z-index",f.zIndex+1)};return f.zIndex=parseInt(a[0].style.zIndex),a.on("mousedown",b),f.zIndex}},e.record=function(a){var b=[a.outerWidth(),a.outerHeight(),a.position().top,a.position().left+parseFloat(a.css("margin-left"))];a.find(".layui-layer-max").addClass("layui-layer-maxmin"),a.attr({area:b})},e.rescollbar=function(a){h.html.attr("layer-full")==a&&(h.html[0].style.removeProperty?h.html[0].style.removeProperty("overflow"):h.html[0].style.removeAttribute("overflow"),h.html.removeAttr("layer-full"))},a.layer=f,f.getChildFrame=function(a,b){return b=b||c("."+h[4]).attr("times"),c("#"+h[0]+b).find("iframe").contents().find(a)},f.getFrameIndex=function(a){return c("#"+a).parents("."+h[4]).attr("times")},f.iframeAuto=function(a){if(a){var b=f.getChildFrame("html",a).outerHeight(),d=c("#"+h[0]+a),e=d.find(h[1]).outerHeight()||0,g=d.find("."+h[6]).outerHeight()||0;d.css({height:b+e+g}),d.find("iframe").css({height:b})}},f.iframeSrc=function(a,b){c("#"+h[0]+a).find("iframe").attr("src",b)},f.style=function(a,b){var d=c("#"+h[0]+a),f=d.attr("type"),g=d.find(h[1]).outerHeight()||0,i=d.find("."+h[6]).outerHeight()||0;(f===e.type[1]||f===e.type[2])&&(d.css(b),f===e.type[2]&&d.find("iframe").css({height:parseFloat(b.height)-g-i}))},f.min=function(a,b){var d=c("#"+h[0]+a),g=d.find(h[1]).outerHeight()||0;e.record(d),f.style(a,{width:180,height:g,overflow:"hidden"}),d.find(".layui-layer-min").hide(),"page"===d.attr("type")&&d.find(h[4]).hide(),e.rescollbar(a)},f.restore=function(a){var b=c("#"+h[0]+a),d=b.attr("area").split(",");b.attr("type");f.style(a,{width:parseFloat(d[0]),height:parseFloat(d[1]),top:parseFloat(d[2]),left:parseFloat(d[3]),overflow:"visible"}),b.find(".layui-layer-max").removeClass("layui-layer-maxmin"),b.find(".layui-layer-min").show(),"page"===b.attr("type")&&b.find(h[4]).show(),e.rescollbar(a)},f.full=function(a){var b,g=c("#"+h[0]+a);e.record(g),h.html.attr("layer-full")||h.html.css("overflow","hidden").attr("layer-full",a),clearTimeout(b),b=setTimeout(function(){var b="fixed"===g.css("position");f.style(a,{top:b?0:d.scrollTop(),left:b?0:d.scrollLeft(),width:d.width(),height:d.height()}),g.find(".layui-layer-min").hide()},100)},f.title=function(a,b){var d=c("#"+h[0]+(b||f.index)).find(h[1]);d.html(a)},f.close=function(a){var b=c("#"+h[0]+a),d=b.attr("type");if(b[0]){if(d===e.type[1]&&"object"===b.attr("conType")){b.children(":not(."+h[5]+")").remove();for(var g=0;2>g;g++)b.find(".layui-layer-wrap").unwrap().hide()}else{if(d===e.type[2])try{var i=c("#"+h[4]+a)[0];i.contentWindow.document.write(""),i.contentWindow.close(),b.find("."+h[5])[0].removeChild(i)}catch(j){}b[0].innerHTML="",b.remove()}c("#layui-layer-moves, #layui-layer-shade"+a).remove(),f.ie6&&e.reselect(),e.rescollbar(a),c(document).off("keydown",e.enter),"function"==typeof e.end[a]&&e.end[a](),delete e.end[a]}},f.closeAll=function(a){c.each(c("."+h[0]),function(){var b=c(this),d=a?b.attr("type")===a:1;d&&f.close(b.attr("times")),d=null})},e.run=function(){c=jQuery,d=c(a),h.html=c("html"),f.open=function(a){var b=new g(a);return b.index}},"function"==typeof define?define(function(){return e.run(),f}):function(){e.run(),f.use("skin/layer.css")}()}(window); -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/default/icon-ext.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/layer-pc/skin/default/icon-ext.png -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/default/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/layer-pc/skin/default/icon.png -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/default/loading-0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/layer-pc/skin/default/loading-0.gif -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/default/loading-1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/layer-pc/skin/default/loading-1.gif -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/default/loading-2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/luci/layer-pc/skin/default/loading-2.gif -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/layer.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | @Name: layer's style 4 | @Author: 贤心 5 | @Blog: sentsin.com 6 | 7 | */*html{background-image:url(about:blank);background-attachment:fixed}html #layui_layer_skinlayercss{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{top:150px;left:50%;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;box-shadow:1px 1px 50px rgba(0,0,0,.3);border-radius:2px;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.3);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-moves{position:absolute;border:3px solid #666;border:3px solid rgba(0,0,0,.5);cursor:move;background-color:#fff;background-color:rgba(255,255,255,.3);filter:alpha(opacity=50)}.layui-layer-load{background:url(default/loading-0.gif) center center no-repeat #fff}.layui-layer-ico{background:url(default/icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.03);-ms-transform:scale(1.03);transform:scale(1.03)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layui-anim-close{-webkit-animation-name:bounceOut;animation-name:bounceOut;-webkit-animation-duration:.2s;animation-duration:.2s}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-01{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layui-anim-02{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layui-anim-03{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layui-anim-04{-webkit-animation-name:rollIn;animation-name:rollIn}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-anim-05{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layui-anim-06{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:0 -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 10px 12px;pointer-events:auto}.layui-layer-btn a{height:28px;line-height:28px;margin:0 6px;padding:0 15px;border:1px solid #dedede;background-color:#f1f1f1;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.7}.layui-layer-btn .layui-layer-btn0{border-color:#4898d5;background-color:#2e8ded;color:#fff}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;font-size:14px;overflow:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe .layui-layer-content{overflow:hidden}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(default/loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(default/loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(default/loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:5px 10px;font-size:12px;_float:left;border-radius:3px;box-shadow:1px 1px 3px rgba(0,0,0,.3);background-color:#F90;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#F90}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:1px;border-bottom-style:solid;border-bottom-color:#F90}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#BBB5B5;border:none}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1} -------------------------------------------------------------------------------- /etc/misstar/luci/layer-pc/skin/layer.ext.css: -------------------------------------------------------------------------------- 1 | /*! 2 | 3 | @Name: layer拓展样式 4 | @Date: 2012.12.13 5 | @Author: 贤心 6 | @blog: sentsin.com 7 | 8 | */.layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span{text-overflow:ellipsis;white-space:nowrap}.layui-layer-iconext{background:url(default/icon-ext.png) no-repeat}html #layui_layer_skinlayerextcss{display:none;position:absolute;width:1989px}.layui-layer-prompt .layui-layer-input{display:block;width:220px;height:30px;margin:0 auto;line-height:30px;padding:0 5px;border:1px solid #ccc;box-shadow:1px 1px 5px rgba(0,0,0,.1) inset;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;border-bottom:1px solid #ccc;background-color:#eee;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;cursor:default;overflow:hidden}.layui-layer-tab .layui-layer-title span.layui-layer-tabnow{height:43px;border-left:1px solid #ccc;border-right:1px solid #ccc;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.xubox_tab_layer{display:block}.xubox_tabclose{position:absolute;right:10px;top:5px;cursor:pointer}.layui-layer-photos{-webkit-animation-duration:1s;animation-duration:1s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal} -------------------------------------------------------------------------------- /etc/misstar/mips/adm/2016-08-09.log: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/2016-08-09.log -------------------------------------------------------------------------------- /etc/misstar/mips/adm/ADMConfig.ini: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/ADMConfig.ini -------------------------------------------------------------------------------- /etc/misstar/mips/adm/adm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/adm -------------------------------------------------------------------------------- /etc/misstar/mips/adm/cache/user.txt: -------------------------------------------------------------------------------- 1 | [ADM] 2 | ! ------------------------------ 阿呆喵[ADM] 自定义过滤语法简表--------------------------------- 3 | ! -------------- 规则基于ABP规则,并进行了字符替换部分的扩展----------------------------- 4 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 5 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 6 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 7 | ! "^" 为分隔符,可以匹配除了字母、数字或者 _ - . % 之外的任何字符。 8 | ! "|" 为管线符号,来表示地址的最前端或最末端 比如 "|http://" 或 |http://www.abc.com/a.js| 9 | ! "||" 为子域通配符,方便匹配主域名下的所有子域。比如 "||www.baidu.com" 就可以不要前面的 "http://" 10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 11 | 12 | ! ## #@# ##& 这3种为元素插入语法 (在语句末尾加 $B , 可以选择插入css语句在前, 默认为) 13 | ! "##" 为元素选择器标识符,后面跟需要隐藏元素的CSS样式例如 #ad_id .ad_class 14 | ! "#@#" 元素选择器白名单 15 | ! "##&" 为JQuery选择器标识符,后面跟需要隐藏元素的JQuery筛选语法 16 | ! 元素隐藏支持全局规则 ##.ad_text 不需要前面配置域名,对所有页面有效. 误杀会比较多, 慎用. 17 | 18 | ! 文本替换选择器标识符, 支持通配符*和?,格式:"页面C$s@内容A@内容B@" 意思为 <在使用"某正则模式" 在 "页面C"上用"内容A"替换"内容B" > ; 19 | ! 文本替换方式1: S@ 使用正则匹配替换 20 | ! 文本替换方式2: s@ 使用通配符 ? * 匹配替换 21 | ! ------------------------------------------------------------------------------------------- 22 | 23 | !新增规则语法测试样例 24 | 25 | !样例1 使用正则删除某地方(替换 "" 字符串为 "http://www.admflt.com") 26 | !

27 | !||www.baidu.com$S@@http://www.admflt.com@ 28 | !||kafan.cn$s@
@
@ 29 | -------------------------------------------------------------------------------- /etc/misstar/mips/adm/doc/qiyi3.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/doc/qiyi3.swf -------------------------------------------------------------------------------- /etc/misstar/mips/adm/doc/sohu_live.swf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/doc/sohu_live.swf -------------------------------------------------------------------------------- /etc/misstar/mips/adm/proxylist.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/proxylist.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/action.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/action.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/actionlocal.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/actionlocal.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/adminfo.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/adminfo.dat -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_common.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_common.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_downloader.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_downloader.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_everyday.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_everyday.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_glob.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_glob.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_soft_ad.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_soft_ad.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_union.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_union.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_unti_hijack.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_unti_hijack.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_video.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_video.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admrule_yellowweb.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admrule_yellowweb.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admsubcribe.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admsubcribe.dat -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/admwhiterule.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/admwhiterule.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/clean.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/clean.dat -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/cleanfromweb.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/cleanfromweb.dat -------------------------------------------------------------------------------- /etc/misstar/mips/adm/subscribe/https_white.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/subscribe/https_white.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/update/subcribe/https-below-adm.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/adm/update/subcribe/https-below-adm.txt -------------------------------------------------------------------------------- /etc/misstar/mips/adm/user.txt: -------------------------------------------------------------------------------- 1 | [ADM] 2 | ! ------------------------------ 阿呆喵[ADM] 自定义过滤语法简表--------------------------------- 3 | ! -------------- 规则基于ABP规则,并进行了字符替换部分的扩展----------------------------- 4 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 5 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 6 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 7 | ! "^" 为分隔符,可以匹配除了字母、数字或者 _ - . % 之外的任何字符。 8 | ! "|" 为管线符号,来表示地址的最前端或最末端 比如 "|http://" 或 |http://www.abc.com/a.js| 9 | ! "||" 为子域通配符,方便匹配主域名下的所有子域。比如 "||www.baidu.com" 就可以不要前面的 "http://" 10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 11 | 12 | ! ## #@# ##& 这3种为元素插入语法 (在语句末尾加 $B , 可以选择插入css语句在前, 默认为) 13 | ! "##" 为元素选择器标识符,后面跟需要隐藏元素的CSS样式例如 #ad_id .ad_class 14 | ! "#@#" 元素选择器白名单 15 | ! "##&" 为JQuery选择器标识符,后面跟需要隐藏元素的JQuery筛选语法 16 | ! 元素隐藏支持全局规则 ##.ad_text 不需要前面配置域名,对所有页面有效. 误杀会比较多, 慎用. 17 | 18 | ! 文本替换选择器标识符, 支持通配符*和?,格式:"页面C$s@内容A@内容B@" 意思为 <在使用"某正则模式" 在 "页面C"上用"内容A"替换"内容B" > ; 19 | ! 文本替换方式1: S@ 使用正则匹配替换 20 | ! 文本替换方式2: s@ 使用通配符 ? * 匹配替换 21 | ! ------------------------------------------------------------------------------------------- 22 | 23 | !新增规则语法测试样例 24 | 25 | !样例1 使用正则删除某地方(替换 "" 字符串为 "http://www.admflt.com") 26 | !

27 | !||www.baidu.com$S@@http://www.admflt.com@ 28 | !||kafan.cn$s@
@
@ 29 | -------------------------------------------------------------------------------- /etc/misstar/mips/aria2c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/aria2c -------------------------------------------------------------------------------- /etc/misstar/mips/dns2socks: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/dns2socks -------------------------------------------------------------------------------- /etc/misstar/mips/libstdc++.so.6.0.16: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/libstdc++.so.6.0.16 -------------------------------------------------------------------------------- /etc/misstar/mips/libxml2.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/libxml2.so -------------------------------------------------------------------------------- /etc/misstar/mips/pdnsd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/pdnsd -------------------------------------------------------------------------------- /etc/misstar/mips/shellinaboxd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/shellinaboxd -------------------------------------------------------------------------------- /etc/misstar/mips/ss-local: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/ss-local -------------------------------------------------------------------------------- /etc/misstar/mips/ss-redir: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/ss-redir -------------------------------------------------------------------------------- /etc/misstar/mips/vsftpd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/misstar/misstartools/c748f7410c441725e0b2f4b93623f75c7f5cbfc8/etc/misstar/mips/vsftpd -------------------------------------------------------------------------------- /etc/misstar/misstar/about.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | <%include("web/inc/header")%> 24 | 25 |
26 | <%include("web/inc/menu")%> 27 |
28 | 29 |
30 |
31 |
32 |
33 |
34 |

<%:关于我们%>:

35 |

作者:Starry、孤瘾 ๓

36 |

邮箱:admin@misstar.com

37 |

微博:

38 |

QQ群:WOL

39 |

特别感谢参与测试的群友:

40 |

哲♂学、小白、无痕、告别(了)突然

41 |
42 |
43 |
44 | 45 |
46 |
47 |
48 |
49 |
50 | 56 |
57 | 58 |
59 |
60 | 61 |
62 | <%include("web/inc/footer")%> 63 | 64 | 67 | 68 | -------------------------------------------------------------------------------- /etc/misstar/misstar/adm.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | <%include("web/inc/header")%> 22 | 23 |
24 | <%include("web/inc/menu")%> 25 |
26 | 27 |
28 |
29 |

阿呆喵

30 |
31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 47 | 48 | 51 | 52 | 53 | 54 | 62 | 63 | 64 | 65 | 66 | 70 | 71 |
阿呆喵
开启广告过滤 40 | 42 | 44 |
说明 49 |

开启:过滤视频广告
关闭:不过滤视频广告

50 |
工作模式 55 | 59 |

视频模式:针对主流视频网站进行过滤开头广告,直接播放视频[强力推荐]
60 | 全局模式:过滤所有网站的广告,包括视频、弹窗等广告,占用资源较大。

61 |
67 | 68 | 69 |
72 |
73 |
74 | 75 |
76 |
77 |
78 |
79 |
80 | 86 |
87 | 88 |
89 |
90 | 91 |
92 | <%include("web/inc/footer")%> 93 | 94 | 120 | 121 | 150 | 151 | -------------------------------------------------------------------------------- /etc/misstar/misstar/aria2.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 | 33 |
34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 48 | 49 | 50 | 51 | 56 | 57 | 58 | 59 | 63 | 64 |
Aria2
开启 43 | 45 | 47 |
下载路径 52 | 53 |

请确认设置的目录真实存在也有写权限。

54 |

修改下载路径后需要重启Aria2进程。

55 |
60 | 61 | 62 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | 78 |
79 | 80 |
81 |
82 | 83 |
84 | <%include("web/inc/footer")%> 85 | 86 | 135 | -------------------------------------------------------------------------------- /etc/misstar/misstar/ftp.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

VSFTP服务器

31 |
32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 47 | 48 | 49 | 50 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 68 | 69 | 70 | 71 | 72 | 79 | 80 | 81 | 82 | 89 | 90 | 91 | 92 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 111 | 112 | 113 | 114 | 117 | 118 | 119 | 120 | 123 | 124 | 125 | 126 | 127 | 131 | 132 |
VSFTP
开启FTP服务器 41 | 43 | 45 | 46 |
说明 51 |

开启:开启ftp服务器,可远程上传下载文件
关闭:关闭FTP

52 |
FTP服务器配置
允许外网访问 61 | 63 | 65 | 66 |

外网访问需要固定IP或者配合DDNS使用

67 |
允许匿名登录 73 | 75 | 77 | 78 |
允许上传 83 | 85 | 87 | 88 |
允许ROOT用户登录 93 | 95 | 97 | 98 |
FTP用户
用户名 107 | 108 |

新建的ftp用户无法ssh登录路由器

109 |

这里请不要填写root用户,会导致root用户无法ssh登录路由器

110 |
登录密码 115 | 116 |
默认路径 121 | 122 |
128 | 129 | 130 |
133 |
134 |
135 | 136 |
137 |
138 |
139 |
140 |
141 | 147 |
148 | 149 |
150 |
151 | 152 |
153 | <%include("web/inc/footer")%> 154 | 155 | 271 | 272 | -------------------------------------------------------------------------------- /etc/misstar/misstar/help.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

免责声明

31 |
32 |
33 |

1.安装本工具箱需要开启路由器SSH功能,由此产生的任何风险、出现任何问题与本工具无关。

34 |

<%:2.本工具尚在测试阶段,存在部分功能、安全漏洞,对可能产生的风险本工具不做任何承担%>

35 |

<%:3.本工具箱内所有工具均作学习、研究之用,禁止用于商业和非法用途,由此产生的任何后果与本工具无关%>

36 |

<%:4.若安装使用本工具,视为同意上述声明。%>

37 |
38 |
39 | 40 |
41 |
42 |
43 |
44 |
45 | 51 |
52 | 53 |
54 |
55 | 56 |
57 | <%include("web/inc/footer")%> 58 | 59 | 62 | -------------------------------------------------------------------------------- /etc/misstar/misstar/index.htm: -------------------------------------------------------------------------------- 1 | <% 2 | local last_version=luci.sys.exec("curl -s http://www.misstar.com/tools/last_version.txt | grep misstar | awk '{print $2}'") 3 | 4 | local curr_version=luci.sys.exec("uci get misstar.misstar.version") 5 | %> 6 | 7 | 8 | 9 | 10 | <%include("web/inc/head")%> 11 | 12 | Misstar Tools - 小米路由器 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | <%include("web/inc/header")%> 28 | 29 |
30 | <%include("web/inc/menu")%> 31 |
32 | 33 |
Misstar Tools
34 |
35 | 36 |
37 | 38 | 39 | 104 | 105 |
40 |
41 |
插件状态
42 |
    43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 53 | 56 | 57 | 58 | 59 | 60 | 63 | 64 | 65 | 66 | 67 | 70 | 71 | 72 | 73 | 74 | 77 | 78 | 79 | 80 | 81 | 84 | 85 | 86 | 87 | 88 | 91 | 92 | 93 | 94 | 95 | 98 | 99 | 100 |
    ShadowSocks: 47 | 48 |
    阿呆喵: 54 | 55 |
    VSFTP: 61 | 62 |
    迅雷快鸟: 68 | 69 |
    Web: 75 | 76 |
    远程Ssh: 82 | 83 |
    Webshell: 89 | 90 |
    Aria2: 96 | 97 |
    101 |
102 |
103 |
106 |
107 |
工具箱状态
108 |
    109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 125 | 126 |
    工具箱版本:<%=curr_version%>卸载
    版本时间:2016-09-03
    版本日志: 122 |

    修复绝大部分BUG,可以正常使用

    123 |

    新增Aria2支持

    124 |
    127 |
128 |
129 | 130 |
131 |
132 |
133 |
134 | 140 |
141 | 142 |
143 |
144 | <%include("web/inc/footer")%> 145 | 146 | 233 | 234 | -------------------------------------------------------------------------------- /etc/misstar/misstar/kddb.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

宽带多拨

31 |
32 | 敬请期待! 33 |
34 | 35 |
36 |
37 |
38 |
39 |
40 | 46 |
47 | 48 |
49 |
50 | 51 |
52 | <%include("web/inc/footer")%> 53 | 54 | 57 | -------------------------------------------------------------------------------- /etc/misstar/misstar/menu.htm: -------------------------------------------------------------------------------- 1 | <% 2 | local XQSysUtil = require "xiaoqiang.util.XQSysUtil" 3 | local XQTopology = require("xiaoqiang.module.XQTopology") 4 | local homeUrl = '/' 5 | if XQSysUtil.getInitInfo() then 6 | homeUrl = luci.dispatcher.build_url("web", "home") 7 | end 8 | local XQFunction = require("xiaoqiang.common.XQFunction") 9 | local router_name = XQFunction.getRouterName() 10 | -- ap model 11 | local netMode = 0 12 | local mode = XQFunction.getNetMode() 13 | if mode == "lanapmode" then 14 | netMode = 2 15 | elseif mode == "wifiapmode" then 16 | netMode = 1 17 | end 18 | local hardware = string.lower( XQSysUtil.getHardware() ) 19 | local uci = require("luci.model.uci").cursor() 20 | local usbIsSupport = tostring(uci:get("features", "hardware", "usb")) 21 | local showTopoLink = 0 22 | local topo = XQTopology.topologicalGraph() 23 | local leafs = topo["leafs"] 24 | if leafs and #leafs > 0 then 25 | showTopoLink = 1 26 | end 27 | 28 | %> 29 | 32 | 35 |
-------------------------------------------------------------------------------- /etc/misstar/misstar/mzsm.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

免责声明

31 |
32 |
33 |

1.安装本工具箱需要开启路由器SSH功能,由此产生的任何风险、出现任何问题与本工具无关。

34 |

<%:2.本工具尚在测试阶段,存在部分功能、安全漏洞,对可能产生的风险本工具不做任何承担%>

35 |

<%:3.本工具箱内所有工具均作学习、研究之用,禁止用于商业和非法用途,由此产生的任何后果与本工具无关%>

36 |

<%:4.若安装使用本工具,视为同意上述声明。%>

37 |
38 |
39 | 40 |
41 |
42 |
43 |
44 |
45 | 51 |
52 | 53 |
54 |
55 | 56 |
57 | <%include("web/inc/footer")%> 58 | 59 | 62 | -------------------------------------------------------------------------------- /etc/misstar/misstar/rm.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

远程控制

31 |
32 |
33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 46 | 47 | 48 | 49 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 67 | 68 | 69 | 70 | 75 | 76 | 77 | 78 | 82 | 83 |
远程web
开启远程web 41 | 43 | 45 |
说明 50 |

开启远程web后,可配合DDNS在外网对路由器进行管理。

51 |

默认端口:8098(小米路由器内置)

52 |

注意:开启远程web后,web相关的如WebShell、Aria2组件也将开启外网访问权限。

53 |
远程ssh
开启ssh 62 | 64 | 66 |
说明 71 |

在外网环境下允许使用ssh登录到路由器(不是WebShell)。

72 | 73 |

默认端口:22

74 |
79 | 80 | 81 |
84 |
85 |
86 | 87 |
88 |
89 |
90 |
91 |
92 | 98 |
99 | 100 |
101 |
102 | 103 |
104 | <%include("web/inc/footer")%> 105 | 106 | 137 | 138 | 161 | -------------------------------------------------------------------------------- /etc/misstar/misstar/webshell.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | <%include("web/inc/header")%> 24 | 25 |
26 | <%include("web/inc/menu")%> 27 |
28 | 29 |
30 |
31 |

WebShell

32 | 35 |
36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 61 | 66 | 67 |
Webshell
开启Webshell 45 | 47 | 49 | 50 |
说明 55 |

开启Webshell有风险,请注意保管好root用户密码

56 |
62 | 63 | 64 | 65 |
68 | 69 |
70 |
71 | 72 |
73 |
74 |
75 |
76 |
77 | 83 |
84 | 85 |
86 |
87 | 88 |
89 | <%include("web/inc/footer")%> 90 | 91 | 146 | 147 | -------------------------------------------------------------------------------- /etc/misstar/misstar/xlkn.htm: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | <%include("web/inc/head")%> 6 | 7 | Misstar Tools - 小米路由器 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | <%include("web/inc/header")%> 23 | 24 |
25 | <%include("web/inc/menu")%> 26 |
27 | 28 |
29 |
30 |

迅雷快鸟

31 |
32 | 敬请期待! 33 |
34 | 35 |
36 |
37 |
38 |
39 |
40 | 46 |
47 | 48 |
49 |
50 | 51 |
52 | <%include("web/inc/footer")%> 53 | 54 | 57 | -------------------------------------------------------------------------------- /etc/misstar/scripts/Dayjob: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | START=99 3 | STOP=99 4 | 5 | #检查重启服务 6 | /etc/misstar/scripts/adm restart 7 | /etc/misstar/scripts/vsftpd restart 8 | /etc/misstar/scripts/webshell restart 9 | /etc/misstar/scripts/ss restart 10 | -------------------------------------------------------------------------------- /etc/misstar/scripts/MTbase: -------------------------------------------------------------------------------- 1 | MTlog() 2 | { 3 | now=`date "+%Y-%m-%d %H:%M:%S" ` 4 | echo -e "[$now]\t[$1]\t$2" >> /tmp/MisTols.log 5 | } -------------------------------------------------------------------------------- /etc/misstar/scripts/Minjob: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | START=99 3 | STOP=99 4 | 5 | result=$(ps | grep adm | grep -v grep | wc -l) 6 | 7 | if [ "$result" == "0" ]; then 8 | 9 | /etc/misstar/scripts/adm restart 10 | 11 | fi 12 | 13 | result=$(ps | grep vsftpd | grep -v grep | wc -l) 14 | 15 | if [ "$result" == "0" ]; then 16 | 17 | /etc/misstar/scripts/vsftpd restart 18 | 19 | fi 20 | 21 | result=$(ps | grep webshell | grep -v grep | wc -l) 22 | 23 | if [ "$result" == "0" ]; then 24 | 25 | /etc/misstar/scripts/webshell restart 26 | 27 | fi 28 | 29 | result=$(ps | grep ss-redir | grep -v grep | wc -l) 30 | 31 | if [ "$result" == "0" ]; then 32 | 33 | /etc/misstar/scripts/ss restart 34 | 35 | fi 36 | 37 | result=$(ps | grep aria2c | grep -v grep | wc -l) 38 | 39 | if [ "$result" == "0" ]; then 40 | 41 | /etc/misstar/scripts/aria2 restart 42 | 43 | fi -------------------------------------------------------------------------------- /etc/misstar/scripts/adm: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=99 4 | 5 | EXTRA_COMMANDS=" status version" 6 | EXTRA_HELP=" status Get shadowsocks status 7 | version Get Misstar Tools Version" 8 | 9 | ## Check The Router Hardware Model 10 | Hardware_ID=$(uname -a | grep arm | wc -l) 11 | if [ "$Hardware_ID" = '0' ];then 12 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 13 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 14 | exit 15 | fi 16 | fi 17 | 18 | if [ "$Hardware_ID" = '1' ];then 19 | Hardware_model="arm" 20 | else 21 | Hardware_model="mips" 22 | fi 23 | 24 | appname=adm 25 | start() { 26 | adm_enable=$(uci get misstar.$appname.enable) 27 | if [ "$adm_enable" = '0' ];then 28 | echo "service Adm is disabeld!" 29 | exit 30 | fi 31 | echo "running adm..." 32 | AreadyRunning=$(ps | grep adm | grep -v grep | grep -v scripts | wc -l) 33 | if [ "$AreadyRunning" != 0 ];then 34 | echo "vsftpd is aleady running,Exit..." 35 | exit 36 | fi 37 | 38 | lanip=$(ifconfig br-lan | grep "inet addr:" | cut -d: -f2 | awk '{print$1}') 39 | 40 | adm_mode=$(uci get misstar.$appname.mode) 41 | if [ "$adm_mode" == "wholemode" ]; then 42 | iptables -t nat -N ADM 43 | iptables -t nat -A ADM -d $lanip/16 -j RETURN 44 | iptables -t nat -A ADM -p tcp --dport 80 -j REDIRECT --to-ports 18309 45 | iptables -t nat -A PREROUTING -p tcp -j ADM 46 | service_start /etc/misstar/$Hardware_model/adm/adm & >/dev/null 2>&1 47 | echo "ok adm!" 48 | elif [ "$adm_mode" == "videomode" ]; then 49 | service_start /etc/misstar/$Hardware_model/adm/adm & >/dev/null 2>&1 50 | ipset -N admlist iphash 51 | iptables -t nat -N ADM 52 | iptables -t nat -A ADM -d 0.0.0.0/8 -j RETURN 53 | iptables -t nat -A ADM -d 10.0.0.0/8 -j RETURN 54 | iptables -t nat -A ADM -d 127.0.0.0/8 -j RETURN 55 | iptables -t nat -A ADM -d 169.254.0.0/16 -j RETURN 56 | iptables -t nat -A ADM -d 172.16.0.0/12 -j RETURN 57 | iptables -t nat -A ADM -d 192.168.0.0/16 -j RETURN 58 | iptables -t nat -A ADM -d 224.0.0.0/4 -j RETURN 59 | iptables -t nat -A ADM -d 240.0.0.0/4 -j RETURN 60 | iptables -t nat -A ADM -p tcp --dport 80 -m set --match-set admlist dst -j REDIRECT --to-port 18309 61 | iptables -t nat -A PREROUTING -p tcp -j ADM 62 | ln -s /etc/misstar/.config/admlist.conf /etc/dnsmasq.d/ 63 | /etc/init.d/dnsmasq restart 64 | echo "ok adm!" 65 | fi 66 | } 67 | stop() { 68 | echo "stop adm..." 69 | service_stop /etc/misstar/$Hardware_model/adm/adm 70 | iptables -t nat -D PREROUTING -p tcp -j ADM &> /dev/null 71 | iptables -t nat -F ADM &> /dev/null 72 | iptables -t nat -X ADM &> /dev/null 73 | rm -rf /etc/dnsmasq.d/admlist.conf 74 | rm -rf /tmp/etc/dnsmasq.d/admlist.conf 75 | ipset destroy admlist &> /dev/null 76 | echo "end adm!" 77 | } 78 | restart() { 79 | stop;sleep 2;start 80 | } -------------------------------------------------------------------------------- /etc/misstar/scripts/aria2: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | # Copyright (C) 2006-2011 OpenWrt.org 3 | 4 | START=50 5 | 6 | EXTRA_COMMANDS=" status version" 7 | EXTRA_HELP=" status Get shadowsocks status 8 | version Get Misstar Tools Version" 9 | 10 | ## Check The Router Hardware Model 11 | Hardware_ID=$(uname -a | grep arm | wc -l) 12 | if [ "$Hardware_ID" = '0' ];then 13 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 14 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 15 | exit 16 | fi 17 | fi 18 | 19 | if [ "$Hardware_ID" = '1' ];then 20 | Hardware_model="arm" 21 | else 22 | Hardware_model="mips" 23 | result1=$(md5sum /lib/libstdc\+\+.so | awk '{print $1}') 24 | result2=$(md5sum /etc/misstar/mips/libstdc\+\+.so.6.0.16 | awk '{print $1}') 25 | if [ "$result1" != "$result2" ]; then 26 | rm -rf /lib/libstdc\+\+.so 27 | ln -s /etc/misstar/mips/libstdc\+\+.so.6.0.16 /lib/libstdc\+\+.so 28 | fi 29 | result3=$(md5sum /lib/libstdc\+\+.so.6 | awk '{print $1}') 30 | if [ "$result3" != "$result2" ]; then 31 | rm -rf /lib/libstdc\+\+.so.6 32 | ln -s /etc/misstar/mips/libstdc\+\+.so.6.0.16 /lib/libstdc\+\+.so.6 33 | fi 34 | ln -s /etc/misstar/mips/libxml2.so /usr/lib/libxml2.so.2 35 | fi 36 | 37 | appname=aria2 38 | 39 | 40 | start() { 41 | vsftpd_enable=$(uci get misstar.$appname.enable) 42 | if [ "$vsftpd_enable" = '0' ];then 43 | echo "service $appname is disabeld!" 44 | exit 45 | fi 46 | 47 | AreadyRunning=$(ps | grep aria2c | grep -v grep | wc -l) 48 | if [ "$AreadyRunning" != '0' ];then 49 | echo "Aria2 is aleady running,Exit..." 50 | exit 51 | fi 52 | 53 | userpath=$(uci get misstar.$appname.user_path) 54 | if [ $userpath ];then 55 | sed -i "/^dir=/cdir=$userpath" /etc/misstar/.config/aria2.conf 56 | else 57 | MTlog "Error" "Download path is NULL,Exiting..." 58 | exit 59 | fi 60 | service_start /etc/misstar/$Hardware_model/aria2c --conf-path=/etc/misstar/.config/aria2.conf -D >/dev/null 2>&1 61 | } 62 | 63 | stop() { 64 | service_stop /etc/misstar/$Hardware_model/aria2c --conf-path=/etc/misstar/.config/aria2.conf -D >/dev/null 2>&1 65 | } 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | -------------------------------------------------------------------------------- /etc/misstar/scripts/file_check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | ## Check The Router Hardware Model 5 | Hardware_ID=$(uname -a | grep arm | wc -l) 6 | if [ "$Hardware_ID" = '1' ];then 7 | echo "Your Router Model Is R1D/R2D" 8 | Hardware_model="arm" 9 | else 10 | echo "Your Router Model Is R1C/Mini/R3" 11 | Hardware_model="mips" 12 | fi 13 | 14 | 15 | mount -o remount,rw / 16 | ln -s /etc/misstar/misstar /usr/lib/lua/luci/view/web/setting/ >> /tmp/ss-redir.log 17 | ln -s /etc/misstar/misstar/menu.htm /usr/lib/lua/luci/view/web/inc/ 18 | ln -s /etc/misstar/luci /www/xiaoqiang/web/ 19 | ln -s /etc/misstar/misstar/misstar.lua /usr/lib/lua/luci/controller/api/ 20 | 21 | 22 | 23 | result=$(cat /etc/crontabs/root | grep Minjob | wc -l) 24 | 25 | if [ "$result" == "0" ]; then 26 | 27 | echo "*/3 * * * * /etc/misstar/scripts/Minjob >/dev/null 2>&1" >> /etc/crontabs/root 28 | 29 | fi 30 | 31 | result=$(cat /etc/crontabs/root | grep Dayjob | wc -l) 32 | 33 | if [ "$result" == "0" ]; then 34 | 35 | echo "0 4 * * * /etc/misstar/scripts/Dayjob >/dev/null 2>&1" >> /etc/crontabs/root 36 | 37 | fi 38 | 39 | 40 | 41 | result=$(cat /usr/lib/lua/luci/controller/web/index.lua | grep misstar | wc -l) 42 | 43 | if [ "$result" == "0" ]; then 44 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"kddb\"}, template(\"web/setting/misstar/kddb\"), _(\"实用工具\"), 95)" /usr/lib/lua/luci/controller/web/index.lua 45 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"webshell\"}, template(\"web/setting/misstar/webshell\"), _(\"实用工具\"), 94)" /usr/lib/lua/luci/controller/web/index.lua 46 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"mzsm\"}, template(\"web/setting/misstar/mzsm\"), _(\"实用工具\"), 91)" /usr/lib/lua/luci/controller/web/index.lua 47 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"help\"}, template(\"web/setting/misstar/help\"), _(\"实用工具\"), 90)" /usr/lib/lua/luci/controller/web/index.lua 48 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"xlkn\"}, template(\"web/setting/misstar/xlkn\"), _(\"实用工具\"), 89)" /usr/lib/lua/luci/controller/web/index.lua 49 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"ftp\"}, template(\"web/setting/misstar/ftp\"), _(\"实用工具\"), 88)" /usr/lib/lua/luci/controller/web/index.lua 50 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"rm\"}, template(\"web/setting/misstar/rm\"), _(\"实用工具\"), 87)" /usr/lib/lua/luci/controller/web/index.lua 51 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"adm\"}, template(\"web/setting/misstar/adm\"), _(\"实用工具\"), 86)" /usr/lib/lua/luci/controller/web/index.lua 52 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"ss\"}, template(\"web/setting/misstar/ss\"), _(\"实用工具\"), 85)" /usr/lib/lua/luci/controller/web/index.lua 53 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"aria\"}, template(\"web/setting/misstar/aria\"), _(\"实用工具\"), 84)" /usr/lib/lua/luci/controller/web/index.lua 54 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"aria2\"}, template(\"web/setting/misstar/aria2\"), _(\"实用工具\"), 83)" /usr/lib/lua/luci/controller/web/index.lua 55 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"about\"}, template(\"web/setting/misstar/about\"), _(\"关于\"), 82)" /usr/lib/lua/luci/controller/web/index.lua 56 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\", \"index\"}, template(\"web/setting/misstar/index\"), _(\"实用工具\"), 81)" /usr/lib/lua/luci/controller/web/index.lua 57 | sed -i "/"topograph"/a\\ entry({\"web\", \"misstar\"}, alias(\"web\", \"misstar\", \"index\"), _(\"路由设置\"), 80)" /usr/lib/lua/luci/controller/web/index.lua 58 | echo "/etc/misstar/index.lua /usr/lib/lua/luci/controller/web/index.lua" >> /tmp/ss-redir.log 59 | 60 | fi 61 | 62 | 63 | result=$(cat /usr/lib/lua/luci/view/web/inc/header.htm | grep misstar | wc -l) 64 | 65 | if [ "$result" == "0" ]; then 66 | 67 | result=$(grep -rn '
  • class="active"' /usr/lib/lua/luci/view/web/inc/header.htm | awk -F : '{print $1}') 68 | #result=`expr $result + 1` 69 | sed -i ""$result"a\\
  • class=\"active\"<%end%>>\"><%:百宝箱%>
  • " /usr/lib/lua/luci/view/web/inc/header.htm 70 | echo "Add /usr/lib/lua/luci/view/web/inc/header.htm" >> /tmp/ss-redir.log 71 | 72 | fi 73 | -------------------------------------------------------------------------------- /etc/misstar/scripts/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | clear 3 | echo "Thank you for install Misstar Tools For MiRouter!" 4 | 5 | 6 | ## Check The Router Hardware Model 7 | Hardware_ID=$(uname -a | grep arm | wc -l) 8 | if [ "$Hardware_ID" = '0' ];then 9 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 10 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 11 | exit 12 | fi 13 | fi 14 | 15 | if [ "$Hardware_ID" = '1' ];then 16 | echo "Your Router Model Is R1D/R2D" 17 | Hardware_model="arm" 18 | else 19 | echo "Your Router Model Is R3" 20 | Hardware_model="mips" 21 | fi 22 | 23 | 24 | 25 | echo "The installnation process will reboot your router after complete" 26 | 27 | echo "Do you want to continue?" 28 | echo -n "[Press any key to continue and CTRL+C to EXIT]:" 29 | 30 | read continue 31 | 32 | 33 | url="http://www.misstar.com/tools/"${Hardware_model}"/qixi" 34 | 35 | wget ${url}/misstar.tar.gz -O /tmp/misstar.tar.gz 36 | 37 | if [ $? -eq 0 ];then 38 | echo "DownLoad installnation package complete" 39 | else 40 | echo "Error:DownLoad installnation package Failed" 41 | exit 42 | fi 43 | 44 | 45 | mount -o remount,rw / 46 | 47 | if [ $? -eq 0 ];then 48 | echo "Mount the filesystem to RW complete" 49 | else 50 | echo "Error:Mount the filesystem to RW Failed" 51 | exit 52 | fi 53 | 54 | 55 | sed -i '/misstar/d' /usr/lib/lua/luci/controller/web/index.lua 56 | sed -i '/\"misstar\"/d' /usr/lib/lua/luci/view/web/inc/header.htm 57 | sed -i '/misstar/,/end/d' /usr/lib/lua/luci/view/web/inc/header.htm 58 | sed -i '/file_check/d' /etc/firewall.user 59 | rm -rf /usr/lib/lua/luci/controller/api/misstar.lua 60 | rm -rf /etc/comfig/ss-redir 61 | rm -rf /etc/misstar 62 | 63 | 64 | mkdir /etc/misstar 65 | 66 | tar -zxvf /tmp/misstar.tar.gz -C / 67 | 68 | 69 | if [ $? -eq 0 ];then 70 | echo "Uncompress package complete" 71 | else 72 | echo "Error:Uncompress package Failed" 73 | exit 74 | fi 75 | 76 | echo "Copy file to the destination directory..." 77 | 78 | 79 | 80 | chmod +x /etc/misstar/$Hardware_model/* 81 | 82 | chmod +x /etc/misstar/scripts/* 83 | 84 | 85 | cd /etc/misstar/scripts 86 | 87 | 88 | cp -rf /etc/misstar/.config/misstar /etc/config/misstar 89 | 90 | echo "Copy file to the destination directory DONE" 91 | 92 | 93 | 94 | chmod 777 /etc/firewall.user 95 | 96 | 97 | if [ $(cat /etc/firewall.user | grep 'file_check.sh' | wc -l) == '0' ]; then 98 | echo "/etc/misstar/scripts/file_check.sh" >> /etc/firewall.user 99 | fi 100 | 101 | if [ $? -eq 0 ];then 102 | echo -e "Misstar Tools install complete\n The System is restarting" 103 | else 104 | echo "Error:Misstar Tools install Failed" 105 | exit 106 | fi 107 | 108 | /etc/misstar/scripts/file_check.sh 109 | 110 | reboot 111 | -------------------------------------------------------------------------------- /etc/misstar/scripts/kuainiao.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #eval `#dbus export kuainiao` 3 | #source /koolshare/scripts/base.sh 4 | version="0.3.6" 5 | 6 | #双WAN判断 7 | wans_mode=$(nvram get wans_mode) 8 | if [ "$kuainiao_config_wan" == "1" ] && [ "$wans_mode" == "lb" ]; then 9 | wan_selected=$(nvram get wan0_ipaddr) 10 | if [ "$wan_selected" != "0.0.0.0" ]; then 11 | bind_address=$wan_selected 12 | else 13 | bind_address="" 14 | fi 15 | elif [ "$kuainiao_config_wan" == "2" ] && [ "$wans_mode" == "lb" ]; then 16 | wan_selected=$(nvram get wan1_ipaddr) 17 | if [ "$wan_selected" != "0.0.0.0" ]; then 18 | bind_address=$wan_selected 19 | else 20 | bind_address="" 21 | fi 22 | else 23 | bind_address="" 24 | fi 25 | 26 | #定义请求函数 27 | if [ -n "$bind_address" ]; then 28 | HTTP_REQ="wget-ssl --bind-address=$bind_address --no-check-certificate -O - " 29 | POST_ARG="--post-data=" 30 | else 31 | HTTP_REQ="wget-ssl --no-check-certificate -O - " 32 | POST_ARG="--post-data=" 33 | fi 34 | 35 | #获取加速API 36 | get_kuainiao_api(){ 37 | portal=`$HTTP_REQ http://api.portal.swjsq.vip.xunlei.com:81/v2/queryportal` 38 | portal_ip=`echo $portal|grep -oE '([0-9]{1,3}[\.]){3}[0-9]{1,3}'` 39 | portal_port_temp=`echo $portal|grep -oE "port...[0-9]{1,5}"` 40 | portal_port=`echo $portal_port_temp|grep -oE '[0-9]{1,5}'` 41 | if [ -z "$portal_ip" ] 42 | then 43 | kuainiao_warning="迅雷快鸟服务API获取失败,请检查网络环境,或稍后再试!" 44 | echo "迅雷快鸟服务API获取失败,请检查网络环境,或稍后再试!" 45 | else 46 | api_url="http://$portal_ip:$portal_port/v2" 47 | kuainiao_config_api=$api_url 48 | fi 49 | } 50 | 51 | #从#dbus中获取uid,pwd等 52 | uid=$kuainiao_config_uid 53 | pwd=$kuainiao_config_pwd 54 | nic=$kuainiao_config_nic 55 | peerid=$kuainiao_config_peerid 56 | uid_orig=$uid 57 | api_url=$kuainiao_config_api 58 | devicesign=$kuainiao_device_sign 59 | dial_account=$kuainiao_dial_account 60 | app_version=$kuainiao_app_version 61 | 62 | #初始化计数器 63 | if [ -z "$kuainiao_run_i" ]; then 64 | kuainiao_run_i=6 65 | kuainiao_run_i=6 66 | fi 67 | 68 | #初始化运行状态(kuainiao_run_status 0表示运行异常,1表示运行正常) 69 | if [ -z "$kuainiao_run_status" ]; then 70 | kuainiao_run_status=0 71 | kuainiao_run_status=0 72 | fi 73 | 74 | #判断是否可以加速 75 | if [[ ! $kuainiao_can_upgrade -eq 1 ]]; then 76 | kuainiao_run_i=6 77 | echo "您的宽带不能使用讯鸟快鸟加速!"$(date "+%Y-%m-%d %H:%M:%S") 78 | kuainiao_run_status=0 79 | exit 21 80 | fi 81 | 82 | #初始化日期 83 | if [[ -z $kuainiao_run_orig_day ]]; then 84 | day_of_month_orig=`date +%d` 85 | orig_day_of_month=`echo $day_of_month_orig|grep -oE "[1-9]{1,2}"` 86 | kuainiao_run_orig_day=$orig_day_of_month 87 | kuainiao_run_orig_day=$orig_day_of_month 88 | fi 89 | 90 | #开始执行逻辑 91 | ##判断是否跨天 92 | day_of_month_orig=`date +%d` 93 | day_of_month=`echo $day_of_month_orig|grep -oE "[1-9]{1,2}"` 94 | if [[ -z $kuainiao_run_orig_day || $day_of_month -ne $kuainiao_run_orig_day ]]; then 95 | kuainiao_run_orig_day=$day_of_month 96 | kuainiao_run_orig_day=$day_of_month 97 | _ts=`date +%s`000 98 | $HTTP_REQ "$api_url/recover?peerid=$peerid&userid=$uid&user_type=1&sessionid=$kuainiao_run_session&dial_account=$dial_account&client_type=android-swjsq-$app_version&client_version=androidswjsq-$app_version&os=android-5.0.1.24SmallRice&time_and=$_ts" 99 | kuainiao_run_i=6 100 | kuainiao_run_i=6 101 | sleep 5 102 | fi 103 | 104 | #判断是否需要重新登陆 105 | if test $kuainiao_run_i -ge 6; then 106 | #改变sequenceNo值 107 | sequence=$(expr $kuainiao_run_i + 100001) 108 | ret=`$HTTP_REQ --header "User-Agent: android-async-http/xl-acc-sdk/version-1.6.1.177600" https://login.mobile.reg2t.sandai.net:443/ $POST_ARG"{\"userName\": \""$kuainiao_config_uname"\", \"businessType\": 68, \"clientVersion\": \"2.0.3.4\", \"appName\": \"ANDROID-com.xunlei.vip.swjsq\", \"isCompressed\": 0, \"sequenceNo\": "$sequence", \"sessionID\": \"\", \"loginType\": 0, \"rsaKey\": {\"e\": \"010001\", \"n\": \"AC69F5CCC8BDE47CD3D371603748378C9CFAD2938A6B021E0E191013975AD683F5CBF9ADE8BD7D46B4D2EC2D78AF146F1DD2D50DC51446BB8880B8CE88D476694DFC60594393BEEFAA16F5DBCEBE22F89D640F5336E42F587DC4AFEDEFEAC36CF007009CCCE5C1ACB4FF06FBA69802A8085C2C54BADD0597FC83E6870F1E36FD\"}, \"cmdID\": 1, \"verifyCode\": \"\", \"peerID\": \""$peerid"\", \"protocolVersion\": 108, \"platformVersion\": 1, \"passWord\": \""$pwd"\", \"extensionList\": \"\", \"verifyKey\": \"\", \"sdkVersion\": 177550, \"devicesign\": \""$devicesign"\"}"` 109 | session=`echo $ret|awk -F '"sessionID":' '{print $2}'|awk -F ',' '{print $1}'|grep -oE "[A-F,0-9]{32}"` 110 | uid=`echo $ret|awk -F '"userID":' '{print $2}' | awk -F ',' '{print $1}'` 111 | #判断登陆是否成功 112 | if [ -z "$session" ]; then 113 | #登陆失败重置计数器到6 114 | kuainiao_run_i=6 115 | kuainiao_run_warnning="迅雷账号登陆失败!请检查迅雷账号配置!"$(date "+%Y-%m-%d %H:%M:%S") 116 | kuainiao_run_status=0 117 | echo "迅雷账号登陆失败!请检查迅雷账号配置!"$(date "+%Y-%m-%d %H:%M:%S") 118 | exit 20 119 | else 120 | #登陆成功设置登陆日期和session 121 | day_of_month_orig=`date +%d` 122 | orig_day_of_month=`echo $day_of_month_orig|grep -oE "[1-9]{1,2}"` 123 | kuainiao_run_orig_day=$orig_day_of_month 124 | kuainiao_run_session=$session 125 | kuainiao_run_orig_day=$orig_day_of_month 126 | kuainiao_run_session=$session 127 | fi 128 | #判断返回的uid 129 | if [ -z "$uid" ]; then 130 | uid=$uid_orig 131 | fi 132 | #登陆完成重置计数器 133 | kuainiao_run_i=0 134 | kuainiao_run_i=0 135 | #登录完成重置下加速api 136 | get_kuainiao_api 137 | #开始加速 138 | _ts=`date +%s`000 139 | $HTTP_REQ "$api_url/upgrade?peerid=$peerid&userid=$uid&user_type=1&sessionid=$kuainiao_run_session&dial_account=$dial_account&client_type=android-swjsq-$app_version&client_version=androidswjsq-$app_version&os=android-5.0.1.24SmallRice&time_and=$_ts" 140 | echo $? 141 | echo "加速成功" 142 | fi 143 | 144 | sleep 1 145 | 146 | #保持心跳 147 | _ts=`date +%s`000 148 | ret=`$HTTP_REQ "$api_url/keepalive?peerid=$peerid&userid=$uid&user_type=1&sessionid=$kuainiao_run_session&dial_account=$dial_account&client_type=android-swjsq-$app_version&client_version=androidswjsq-$app_version&os=android-5.0.1.24SmallRice&time_and=$_ts"` 149 | if [ ! -z "`echo $ret|grep "not exist channel"`" ]; then 150 | kuainiao_run_i=6 151 | echo "迅雷快鸟心跳保持失败!"$(date "+%Y-%m-%d %H:%M:%S") 152 | kuainiao_run_status=0 153 | exit 22 154 | else 155 | kuainiao_run_i=$(expr $kuainiao_run_i + 1) 156 | echo "迅雷快鸟运行正常!"$(date "+%Y-%m-%d %H:%M:%S") 157 | kuainiao_run_status=1 158 | fi 159 | -------------------------------------------------------------------------------- /etc/misstar/scripts/misstar: -------------------------------------------------------------------------------- 1 | #!/bin/ash 2 | START=99 3 | STOP=99 4 | 5 | case "$1" in 6 | "vsftpd") 7 | olduser=`uci get misstar.vsftpd.ftp_user` 8 | sed -i "/$olduser/"d /etc/passwd 9 | sed -i "/$olduser/"d /etc/shadow 10 | sed -i "/$2/"d /etc/passwd 11 | sed -i "/$2/"d /etc/shadow 12 | echo "$2:*:10086:10086:$2:$4:/bin/false" >> /etc/passwd 13 | echo "$2:*:0:0:99999:7:::" >> /etc/shadow 14 | echo -e "$3\n$3" | passwd $2 15 | uci set misstar.vsftpd.ftp_user=$2 16 | uci set misstar.vsftpd.ftp_password=$3 17 | uci commit misstar 18 | ;; 19 | "adm") 20 | case "$2" in 21 | "start") 22 | echo "/etc/misstar/scripts/adm start" 23 | ;; 24 | "stop") 25 | echo "/etc/misstar/scripts/adm stop" 26 | ;; 27 | "status") 28 | status=`ps | grep adm | grep misstar | wc -l` 29 | echo $status 30 | esac 31 | ;; 32 | "sshd") 33 | case "$2" in 34 | "enable") 35 | uci set firewall.sshd=rule 36 | uci set firewall.sshd.src=wan 37 | uci set firewall.sshd.proto=tcp 38 | uci set firewall.sshd.target=ACCEPT 39 | uci set firewall.sshd.family=ipv4 40 | uci set firewall.sshd.dest_port=22 41 | uci commit firewall 42 | /etc/init.d/firewall restart 43 | ;; 44 | "disable") 45 | uci delete firewall.sshd 46 | uci commit firewall 47 | ;; 48 | "status") 49 | status=`uci show firewall | grep sshd | wc -l` 50 | echo $status 51 | esac 52 | ;; 53 | "web") 54 | case "$2" in 55 | "enable") 56 | sed -i '/set \$finalvar \"\$canproxy \$isluci\"/i\ set \$isluci "1"; #misstar' /etc/sysapihttpd/miwifi-webinitrd.conf 57 | uci set firewall.rmweb=rule 58 | uci set firewall.rmweb.src=wan 59 | uci set firewall.rmweb.proto=tcp 60 | uci set firewall.rmweb.target=ACCEPT 61 | uci set firewall.rmweb.family=ipv4 62 | uci set firewall.rmweb.dest_port=8098 63 | uci set firewall.aria=rule 64 | uci set firewall.aria.src=wan 65 | uci set firewall.aria.proto=tcp 66 | uci set firewall.aria.target=ACCEPT 67 | uci set firewall.aria.family=ipv4 68 | uci set firewall.aria.dest_port=10086 69 | uci set firewall.webshell=rule 70 | uci set firewall.webshell.src=wan 71 | uci set firewall.webshell.proto=tcp 72 | uci set firewall.webshell.target=ACCEPT 73 | uci set firewall.webshell.family=ipv4 74 | uci set firewall.webshell.dest_port=4200 75 | uci commit firewall 76 | ;; 77 | "disable") 78 | sed -i '/misstar/d' /etc/sysapihttpd/miwifi-webinitrd.conf 79 | uci delete firewall.rmweb 80 | uci delete firewall.aria 81 | uci delete firewall.webshell 82 | uci commit firewall 83 | ;; 84 | "status") 85 | status=`uci show firewall | grep sshd | wc -l` 86 | echo $status 87 | esac 88 | ;; 89 | "ftp") 90 | case "$2" in 91 | "enable") 92 | uci set firewall.vsftpd=rule 93 | uci set firewall.vsftpd.src=wan 94 | uci set firewall.vsftpd.proto=tcp 95 | uci set firewall.vsftpd.target=ACCEPT 96 | uci set firewall.vsftpd.family=ipv4 97 | uci set firewall.vsftpd.dest_port=21 98 | uci commit firewall 99 | /etc/init.d/firewall restart 100 | ;; 101 | "disable") 102 | uci delete firewall.vsftpd 103 | uci commit firewall 104 | /etc/init.d/firewall restart 105 | ;; 106 | "status") 107 | status=`uci show firewall | grep vsftpd | wc -l` 108 | echo $status 109 | esac 110 | ;; 111 | "ss") 112 | case "$2" in 113 | "status") 114 | status=`ps | grep ss-redir | grep -v 'grep' | wc -l` 115 | if [ "$status" == "1" ];then #进程存在,已运行 116 | echo -e "2\c" 117 | else 118 | echo -e "1\c" 119 | fi 120 | ;; 121 | "dnsstatus") 122 | status=`nslookup www.youtube.com > /dev/null 2>&1 ; echo $?` 123 | if [ "$status" == "0" ]; then 124 | echo -e "1\c" 125 | else 126 | echo -e "0\c" 127 | fi 128 | ;; 129 | esac 130 | ;; 131 | esac 132 | -------------------------------------------------------------------------------- /etc/misstar/scripts/pdnsd.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=65 4 | NAME=pdnsd 5 | DESC="proxy DNS server" 6 | 7 | ## Check The Router Hardware Model 8 | Hardware_ID=$(uname -a | grep arm | wc -l) 9 | if [ "$Hardware_ID" = '0' ];then 10 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 11 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 12 | exit 13 | fi 14 | fi 15 | 16 | if [ "$Hardware_ID" = '1' ];then 17 | Hardware_model="arm" 18 | else 19 | Hardware_model="mips" 20 | fi 21 | 22 | 23 | DAEMON=/etc/misstar/$Hardware_model/pdnsd 24 | PID_FILE=/var/run/$NAME.pid 25 | CACHEDIR=/var/pdnsd 26 | CONFIGPATH=/etc/misstar/.config/pdnsd.conf 27 | CACHE=$CACHEDIR/pdnsd.cache 28 | 29 | USER=root 30 | GROUP=root 31 | 32 | start() { 33 | echo -n "Starting $DESC: $NAME" 34 | 35 | gen_cache 36 | 37 | $DAEMON --daemon -p $PID_FILE -c $CONFIGPATH 38 | echo " ." 39 | } 40 | 41 | stop() { 42 | echo -n "Stopping $DESC: $NAME" 43 | killall pdnsd 44 | rm -rf $PID_FILE 45 | echo " ." 46 | } 47 | 48 | restart() { 49 | echo "Restarting $DESC: $NAME... " 50 | stop 51 | sleep 2 52 | start 53 | } 54 | 55 | gen_cache() 56 | { 57 | if ! test -f "$CACHE"; then 58 | mkdir -p `dirname $CACHE` 59 | dd if=/dev/zero of="$CACHE" bs=1 count=4 2> /dev/null 60 | chown -R $USER.$GROUP $CACHEDIR 61 | fi 62 | } 63 | 64 | -------------------------------------------------------------------------------- /etc/misstar/scripts/ss: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | # Copyright (C) 2006-2011 OpenWrt.org 3 | 4 | START=95 5 | 6 | SERVICE_USE_PID=1 7 | SERVICE_WRITE_PID=1 8 | SERVICE_DAEMONIZE=1 9 | 10 | . /etc/misstar/scripts/MTbase 11 | 12 | wan_mode=`ifconfig | grep pppoe-wan | wc -l` 13 | if [ "$wan_mode" = '1' ];then 14 | wanip=$(ifconfig pppoe-wan | grep "inet addr:" | cut -d: -f2 | awk '{print$1}') 15 | else 16 | wanip=$(ifconfig eth0.2 | grep "inet addr:" | cut -d: -f2 | awk '{print$1}') 17 | fi 18 | 19 | lanip=$(ifconfig br-lan | grep "inet addr:" | cut -d: -f2 | awk '{print$1}') 20 | CONFIG=/etc/misstar/.config/shadowsocks.json 21 | DNSCONF=/etc/misstar/.config/dns2socks.conf 22 | DNS_PORT=1082 23 | 24 | chnroute=/etc/misstar/.config/chnroute.txt 25 | 26 | ## Check The Router Hardware Model 27 | Hardware_ID=$(uname -a | grep arm | wc -l) 28 | if [ "$Hardware_ID" = '0' ];then 29 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 30 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 31 | exit 32 | fi 33 | fi 34 | 35 | if [ "$Hardware_ID" = '1' ];then 36 | Hardware_model="arm" 37 | else 38 | Hardware_model="mips" 39 | fi 40 | 41 | 42 | 43 | 44 | APPPATH=/etc/misstar/$Hardware_model/ss-redir 45 | LOCALPATH=/etc/misstar/$Hardware_model/ss-local 46 | DNSPATH=/etc/misstar/$Hardware_model/dns2socks 47 | appname=misstar 48 | ss_getconfig() { 49 | local_ip=0.0.0.0 50 | ss_server_ip=$(uci get $appname.ss.ss_server) 51 | #ss_server_ip=`nslookup $ss_server_ip | grep 'Address 1' | grep -v '127.0.0.1' | awk '{print $3}'` 52 | ss_server_port=$(uci get $appname.ss.ss_server_port) 53 | ss_server_password=$(uci get $appname.ss.ss_password) 54 | ss_local_port=$(uci get $appname.ss.ss_local_port) 55 | ss_server_method=$(uci get $appname.ss.ss_method) 56 | rm -rf $CONFIG 57 | echo -e '{\n "server":"'$ss_server_ip'",\n "server_port":'$ss_server_port',\n "local_port":'$ss_local_port',\n "local_address":"'$local_ip'",\n "password":"'$ss_server_password'",\n "timeout":600,\n "method":"'$ss_server_method'"\n}' > $CONFIG 58 | DNS_PORT=`expr $ss_local_port + 1` 59 | echo -e '{\n "server":"'$ss_server_ip'",\n "server_port":'$ss_server_port',\n "local_port":'$DNS_PORT',\n "local_address":"'$local_ip'",\n "password":"'$ss_server_password'",\n "timeout":600,\n "method":"'$ss_server_method'"\n}' > $DNSCONF 60 | } 61 | ss_getconfig 62 | 63 | start() 64 | { 65 | vsftpd_enable=$(uci get misstar.ss.enable) 66 | if [ "$vsftpd_enable" = '0' ];then 67 | echo "service ss is disabeld!" 68 | exit 69 | fi 70 | 71 | AreadyRunning=$(ps | grep ss-redir | grep -v grep | wc -l) 72 | if [ "$AreadyRunning" != '0' ];then 73 | echo "SS is aleady running,Exit..." 74 | exit 75 | fi 76 | 77 | insmod ipt_REDIRECT 2>/dev/null 78 | chmod +x /etc/misstar/$Hardware_model/ss-redir 79 | chmod +x /etc/misstar/$Hardware_model/ss-local 80 | #/etc/misstar/scripts/pdnsd.sh start 81 | 82 | 83 | MTlog "INFO" "Start DNS Process..." 84 | 85 | service_start $LOCALPATH -c $DNSCONF 86 | service_start $DNSPATH 127.0.0.1:$DNS_PORT 8.8.8.8:53 127.0.0.1:15353 87 | 88 | if [ $? -eq 0 ];then 89 | MTlog "INFO" "Done!" 90 | else 91 | MTlog "Error" "DNS Process start failed,Exiting..." 92 | exit 93 | fi 94 | 95 | ss_mode=$(uci get $appname.ss.ss_mode) 96 | case $ss_mode in 97 | "gfwlist") 98 | service_start $APPPATH -b 0.0.0.0 -c $CONFIG 99 | if [ $? -eq 0 ];then 100 | MTlog "INFO" "Start Shadowsocks as GFWlist Mode. Done" 101 | else 102 | MTlog "Error" "Shadowsocks Process start failed,Exiting..." 103 | exit 104 | fi 105 | start_ss_rules_gfwlist 106 | ;; 107 | "whitelist") 108 | service_start $APPPATH -b 0.0.0.0 -c $CONFIG 109 | if [ $? -eq 0 ];then 110 | MTlog "INFO" "Start Shadowsocks as whitelist Mode. Done" 111 | else 112 | MTlog "Error" "Shadowsocks Process start failed,Exiting..." 113 | exit 114 | fi 115 | start_ss_rules_whitelist 116 | ;; 117 | "gamemode") 118 | service_start $APPPATH -b 0.0.0.0 -u -c $CONFIG 119 | if [ $? -eq 0 ];then 120 | MTlog "INFO" "Start Shadowsocks as Game Mode. Done" 121 | else 122 | MTlog "Error" "Shadowsocks Process start failed,Exiting..." 123 | exit 124 | fi 125 | start_ss_rules_whitelist 126 | start_ss_udp 127 | ;; 128 | "wholemode") 129 | service_start $APPPATH -b 0.0.0.0 -c $CONFIG 130 | if [ $? -eq 0 ];then 131 | MTlog "INFO" "Start Shadowsocks as Whole Mode. Done" 132 | else 133 | MTlog "Error" "Shadowsocks Process start failed,Exiting..." 134 | exit 135 | fi 136 | start_ss_rules 137 | ;; 138 | esac 139 | ln -s /etc/misstar/.config/pac.conf /etc/dnsmasq.d/ 140 | /etc/init.d/dnsmasq restart 141 | # Client Mode 142 | #service_start /usr/bin/ss-local -b 0.0.0.0 -u -c $CONFIG -l 5353 143 | # Proxy Mode 144 | #service_start /usr/bin/ss-redir -b 0.0.0.0 -u -c $CONFIG 145 | # Tunnel 146 | #service_start /usr/bin/ss-tunnel -b 0.0.0.0 -u -c $CONFIG -l $TUNNEL_PORT -L $DNS 147 | #start_ss_rules 148 | #start_ss_udp 149 | } 150 | 151 | start_ss_rules_whitelist() 152 | { 153 | MTlog "INFO" "Add iptables rules... " 154 | iptables -t nat -N SHADOWSOCKS 155 | iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN 156 | iptables -t nat -A SHADOWSOCKS -d $lanip/16 -j RETURN 157 | iptables -t nat -A SHADOWSOCKS -d $wanip/16 -j RETURN 158 | iptables -t nat -A SHADOWSOCKS -d $ss_server_ip -j RETURN 159 | sed -e "s/^/-A nogfwnet &/g" -e "1 i\-N nogfwnet hash:net" $chnroute | ipset -R -! 160 | iptables -t nat -A SHADOWSOCKS -p tcp -m set ! --match-set nogfwnet dst -j REDIRECT --to-ports $ss_local_port 161 | iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS 162 | #iptables -t nat -A PREROUTING -s $lanip/24 -p udp --dport 53 -j DNAT --to $lanip 163 | MTlog "INFO" "Done!" 164 | } 165 | 166 | start_ss_rules() 167 | { 168 | MTlog "INFO" "Add iptables rules... " 169 | iptables -t nat -N SHADOWSOCKS 170 | iptables -t nat -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN 171 | iptables -t nat -A SHADOWSOCKS -d $lanip/24 -j RETURN 172 | iptables -t nat -A SHADOWSOCKS -d $wanip/16 -j RETURN 173 | iptables -t nat -A SHADOWSOCKS -d $ss_server_ip -j RETURN 174 | iptables -t nat -A SHADOWSOCKS -p tcp -j REDIRECT --to-ports $ss_local_port 175 | iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS 176 | MTlog "INFO" "Done!" 177 | } 178 | 179 | start_ss_rules_gfwlist() 180 | { 181 | MTlog "INFO" "Add iptables rules... " 182 | ipset -N gfwlist iphash -! 183 | iptables -t nat -N SHADOWSOCKS 184 | iptables -t nat -A SHADOWSOCKS -p tcp -m set --match-set gfwlist dst -j REDIRECT --to-port $ss_local_port 185 | iptables -t nat -A PREROUTING -p tcp -j SHADOWSOCKS 186 | MTlog "INFO" "Done!" 187 | } 188 | 189 | start_ss_udp() 190 | { 191 | MTlog "INFO" "Add iptables UDP rules... " 192 | ip rule add fwmark 0x01/0x01 table 300 193 | ip route add local 0.0.0.0/0 dev lo table 300 194 | iptables -t mangle -N SHADOWSOCKS 195 | iptables -t mangle -A SHADOWSOCKS -d 0.0.0.0/8 -j RETURN 196 | iptables -t mangle -A SHADOWSOCKS -d 127.0.0.1/16 -j RETURN 197 | iptables -t mangle -A SHADOWSOCKS -d $lanip/16 -j RETURN 198 | iptables -t mangle -A SHADOWSOCKS -d $wanip/16 -j RETURN 199 | iptables -t mangle -A SHADOWSOCKS -d $ss_server_ip -j RETURN 200 | iptables -t mangle -A PREROUTING -p udp -j SHADOWSOCKS 201 | iptables -t mangle -A SHADOWSOCKS -p udp -m set ! --match-set nogfwnet dst -j TPROXY --on-port $ss_local_port --tproxy-mark 0x01/0x01 202 | MTlog "INFO" "Done!" 203 | 204 | 205 | chmod -x /opt/filetunnel/stunserver 206 | killall -9 stunserver 207 | } 208 | 209 | stop() 210 | { 211 | # Client Mode 212 | #service_stop /usr/bin/ss-local 213 | # Proxy Mode 214 | service_stop $APPPATH 215 | service_stop $LOCALPATH 216 | service_stop $DNSPATH 217 | # Tunnel 218 | #service_stop /usr/bin/ss-tunnel 219 | stop_ss_rules 220 | } 221 | 222 | stop_ss_rules() 223 | { 224 | MTlog "INFO" "Delete iptables rules... " 225 | ip rule del fwmark 0x01/0x01 table 300 &> /dev/null 226 | ip route del local 0.0.0.0/0 dev lo table 300 &> /dev/null 227 | iptables -t mangle -D PREROUTING -p udp -j SHADOWSOCKS &> /dev/null 228 | iptables -t nat -D PREROUTING -p tcp -j SHADOWSOCKS &> /dev/null 229 | iptables -t mangle -F SHADOWSOCKS &> /dev/null 230 | iptables -t mangle -X SHADOWSOCKS &> /dev/null 231 | iptables -t nat -F SHADOWSOCKS &> /dev/null 232 | iptables -t nat -X SHADOWSOCKS &> /dev/null 233 | ipset destroy nogfwnet &> /dev/null 234 | ipset destroy gfwlist &> /dev/null 235 | #/etc/misstar/scripts/pdnsd.sh stop 236 | iptables -t nat -D PREROUTING -s $lanip/24 -p udp --dport 53 -j DNAT --to $lanip &> /dev/null 237 | MTlog "INFO" "Done!" 238 | MTlog "INFO" "Remove Cache files..." 239 | rm -rf /etc/dnsmasq.d/pac.conf 240 | rm -rf /etc/dnsmasq.d/dnsmasq.conf.add 241 | /etc/init.d/dnsmasq restart 242 | MTlog "INFO" "Done!" 243 | chmod +x /opt/filetunnel/stunserver 244 | } 245 | 246 | restart() 247 | { 248 | stop 249 | sleep 3 250 | start 251 | } 252 | -------------------------------------------------------------------------------- /etc/misstar/scripts/uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | mount -o remount,rw / 3 | sed -i '/misstar/d' /usr/lib/lua/luci/controller/web/index.lua 4 | sed -i '/\"misstar\"/d' /usr/lib/lua/luci/view/web/inc/header.htm 5 | sed -i '/misstar/,/end/d' /usr/lib/lua/luci/view/web/inc/header.htm 6 | sed -i '/file_check/d' /etc/firewall.user 7 | sed -i '/misstar/d' /etc/crontabs/root 8 | rm -rf /usr/lib/lua/luci/view/web/setting/misstar 9 | rm -rf /usr/lib/lua/luci/view/web/inc/menu.htm 10 | rm -rf /www/xiaoqiang/web/luci 11 | rm -rf /etc/config/ss-redir 12 | rm -rf /etc/config/misstar 13 | rm -rf /etc/misstar 14 | uci delete firewall.vsftpd 15 | uci delete firewall.sshd 16 | uci delete firewall.web 17 | 18 | Hardware_ID=$(uname -a | grep arm | wc -l) 19 | if [ "$Hardware_ID" = '0' ];then 20 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 21 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 22 | exit 23 | fi 24 | fi 25 | if [ "$Hardware_ID" = '1' ];then 26 | Hardware_model="arm" 27 | else 28 | Hardware_model="mips" 29 | rm /lib/libstdc\+\+.so 30 | rm /lib/libstdc\+\+.so.6 31 | ln -s /lib/libstdc\+\+.so.6.0.16 /lib/libstdc\+\+.so 32 | ln -s /lib/libstdc\+\+.so.6.0.16 /lib/libstdc\+\+.so.6 33 | fi 34 | reboot -------------------------------------------------------------------------------- /etc/misstar/scripts/vsftpd: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | # Copyright (C) 2006-2011 OpenWrt.org 3 | 4 | START=50 5 | 6 | EXTRA_COMMANDS=" status version" 7 | EXTRA_HELP=" status Get shadowsocks status 8 | version Get Misstar Tools Version" 9 | 10 | ## Check The Router Hardware Model 11 | Hardware_ID=$(uname -a | grep arm | wc -l) 12 | if [ "$Hardware_ID" = '0' ];then 13 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 14 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 15 | exit 16 | fi 17 | fi 18 | 19 | if [ "$Hardware_ID" = '1' ];then 20 | Hardware_model="arm" 21 | else 22 | Hardware_model="mips" 23 | fi 24 | 25 | appname=vsftpd 26 | ftp_getconfig() { 27 | vsftpd_enable=$(uci get misstar.$appname.enable) 28 | if [ "$vsftpd_enable" = '0' ];then 29 | echo "service vsftpd is disabeld!" 30 | exit 31 | fi 32 | 33 | AreadyRunning=$(ps | grep vsftpd | grep -v grep | grep -v scripts | wc -l) 34 | if [ "$AreadyRunning" != '0' ];then 35 | echo "vsftpd is aleady running,Exit..." 36 | exit 37 | fi 38 | 39 | rm_enable=$(uci get misstar.$appname.rm_enable) 40 | if [ "$rm_enable" = '0' ];then 41 | /etc/misstar/scripts/misstar ftp disable 42 | else 43 | /etc/misstar/scripts/misstar ftp enable 44 | fi 45 | 46 | 47 | root_enable=$(uci get misstar.$appname.root_enable) 48 | if [ "$root_enable" = '0' ];then 49 | echo "root" >> /etc/vsftpd.users 50 | else 51 | sed -i "/root/"d /etc/vsftpd.users 52 | fi 53 | 54 | anonymous_enable=$(uci get misstar.$appname.any_enable) 55 | if [ "$anonymous_enable" = '1' ];then 56 | sed -i 's/anonymous_enable=NO/anonymous_enable=YES/' /etc/misstar/.config/vsftpd.conf 57 | else 58 | sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/misstar/.config/vsftpd.conf 59 | fi 60 | 61 | write_enable=$(uci get misstar.$appname.write_enable) 62 | if [ "$write_enable" = '1' ];then 63 | sed -i 's/write_enable=NO/write_enable=YES/' /etc/misstar/.config/vsftpd.conf 64 | else 65 | sed -i 's/write_enable=YES/write_enable=NO/' /etc/misstar/.config/vsftpd.conf 66 | fi 67 | 68 | cp -rf /etc/misstar/.config/vsftpd.conf /etc/ 69 | } 70 | 71 | 72 | start() { 73 | ftp_getconfig 74 | mkdir -m 0755 -p /var/run/vsftpd 75 | service_start /etc/misstar/$Hardware_model/vsftpd 76 | } 77 | 78 | stop() { 79 | service_stop /etc/misstar/$Hardware_model/vsftpd 80 | } 81 | 82 | status() { 83 | status=`ps | grep vsftpd | grep -v grep | wc -l` 84 | if [ "$status" = '2' ];then 85 | echo "service vsftpd is not running" 86 | else 87 | echo "service vsftpd is running" 88 | fi 89 | } 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | -------------------------------------------------------------------------------- /etc/misstar/scripts/webshell: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | 3 | START=99 4 | 5 | EXTRA_COMMANDS=" status version" 6 | EXTRA_HELP=" status Get shadowsocks status 7 | version Get Misstar Tools Version" 8 | 9 | ## Check The Router Hardware Model 10 | Hardware_ID=$(uname -a | grep arm | wc -l) 11 | if [ "$Hardware_ID" = '0' ];then 12 | if [ $(uname -a | awk '{print $4;}' | sed 's/'#'//') = '2' ]; then 13 | echo "Error:Misstar Tools temporarily does not support Xiaomi Mini Router!" 14 | exit 15 | fi 16 | fi 17 | 18 | if [ "$Hardware_ID" = '1' ];then 19 | Hardware_model="arm" 20 | else 21 | Hardware_model="mips" 22 | fi 23 | 24 | appname=webshell 25 | start() { 26 | adm_enable=$(uci get misstar.$appname.enable) 27 | if [ "$adm_enable" = '0' ];then 28 | echo "service Adm is disabeld!" 29 | exit 30 | fi 31 | AreadyRunning=$(ps | grep shellinabox | grep -v grep | wc -l) 32 | if [ "$AreadyRunning" != '0' ];then 33 | echo "Webshell is aleady running,Exit..." 34 | exit 35 | fi 36 | echo "running shellinaboxd..." 37 | service_start /etc/misstar/$Hardware_model/shellinaboxd -s /:LOGIN -u root & 38 | echo "ok!" 39 | } 40 | stop() { 41 | echo "stop shellinaboxd..." 42 | service_stop /etc/misstar/$Hardware_model/shellinaboxd 43 | echo "end!" 44 | } 45 | restart() { 46 | stop;sleep 2;start 47 | } --------------------------------------------------------------------------------