--漏洞修复
import 'android.webkit.WebView'
webView.addJavascriptInterface({},'JsInterface')

--本软件用到文件(夹)
包内文件="android_asset/"
NEICUN=Environment.getExternalStorageDirectory().toString().."/"--获取手机内存路径
BAO=activity.getPackageName()--软件包名
--TXCGB=NEICUN.."Android/data/"..BAO.."/"
TXCGB=NEICUN.."txcgb/"..BAO.."/"
tdata=TXCGB.."data/"
if BAO=="cn.coldsong.fusionapp" then
 SHUJU=NEICUN.."Android/data/"..BAO.."/files/app/"
 FILES=SHUJU
else
 SHUJU="/data/data/"..BAO.."/"--系统生成的软件数据文件夹
 FILES=SHUJU.."files/"
end
lasta=tdata.."lasta.txt"
lasts=tdata.."lasts.txt"
初始=tdata.."初始功能.txt"
语调=tdata.."yudiao.txt"
语速=tdata.."yusu.txt"
编辑=tdata.."BJ.txt"
编辑路径=tdata.."BJLJ.txt"
编辑文件=tdata.."BJWJ.txt"
布局文件=tdata.."buju.txt"
布局文件网页=tdata.."bujuw.html"
编辑文件网页=tdata.."BJWJW.html"
编辑器文件夹=FILES.."sub/1581395930/lua/"
HTM=TXCGB.."files/htm/"
HTML=tdata.."His.html"
HTML0=tdata.."His0.html"
HTML1=tdata.."His1.html"
HTML2=tdata.."His2.html"
FAV=tdata.."Fav.html"
MIMA=tdata.."密码.txt"
OPEN=tdata.."启动密码.txt"
全屏=tdata.."全屏.txt"
自动旋转=tdata.."旋转.txt"
沉浸=tdata.."沉浸.txt"
UA=tdata.."UA.txt"
护眼配置文件=tdata.."护眼配置文件.txt"
背景配置文件=tdata.."背景配置文件.txt"
按钮=tdata.."按钮.txt"
去广告=tdata.."去广告.txt"
浏览器=tdata.."浏览器.txt"
语录=tdata.."语录.txt"
主题=tdata.."主题.txt"
名言=tdata.."名言.html"
私人订制=HTM.."htm/00.html"
主页文件=tdata.."url0.txt"
首页=tdata.."首页.txt"
小说文件=tdata.."urlbook.txt"
启动图片=tdata.."启动图片.txt"
UA标识=tdata.."UA标识.txt"
搜索引擎=tdata.."搜索引擎.txt"
搜索文字=tdata.."搜索文字.txt"
悬浮按钮文件=tdata.."悬浮按钮.txt"
繁体文字=tdata.."繁体文字.txt"
文字美化=tdata.."文字美化.txt"
调色=tdata.."调色.txt"
调色左=tdata.."调色左.txt"
调色右=tdata.."调色右.txt"
当前色=tdata.."当前色.txt"
取色=tdata.."取色.txt"
取色负=tdata.."取色负.txt"
取色正=tdata.."取色正.txt"
随机色=tdata.."随机色.txt"
随机色1=tdata.."随机色1.txt"
ZYM=tdata.."ZYM.txt"
语音=tdata.."语音.txt"
开启通知=tdata.."开启通知.txt"
隐私模式=tdata.."隐私模式.txt"
记事本=tdata.."记事本.html"
计算器历史记录=tdata.."计算器历史记录.txt"
日期=tdata.."日期.txt"
时间=tdata.."时间.txt"
塞班标识文件=tdata.."塞班标识.txt"
ydm=tdata.."ydm.txt"
tqwz=tdata.."tqwz.html"
tqwztxt=tdata.."tqwz.txt"
上一章网址=tdata.."up.html"
下一章网址=tdata.."down.html"

--查看设备信息
hour=tostring(os.date("%H"))
day=tostring(os.date("%Y%m%d"))
device_model = Build.MODEL
version_xtbb = Build.VERSION.RELEASE
version_cpxh = Build.PRODUCT
version_bbxx = Build.DISPLAY
version_cpmc = Build.PRODUCT
version_xtdz = Build.BRAND
version_sbcs = Build.DEVICE
version_kfdh = Build.VERSION.CODENAME
version_sdk = Build.VERSION.SDK
version_cpu = Build.CPU_ABI
version_yjlx = Build.HARDWARE
version_zjdz = Build.HOST
version_id = Build.ID
version_rom = Build.MANUFACTURER
model_time=tostring(os.date("%Y年%m月%d日 %H:%M"))
import "android.provider.Settings$Secure"
android_id = Secure.getString(activity.getContentResolver(), Secure.ANDROID_ID)
packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)
version=tostring(packinfo.versionName)
versioncode=tostring(packinfo.versionCode)
appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0)
applabel=this.getPackageManager().getApplicationLabel(appinfo)
--电池
import "android.content.Intent"
import "android.content.IntentFilter"
batteryInfoIntent =activity.getApplicationContext().registerReceiver( null,IntentFilter(Intent.ACTION_BATTERY_CHANGED)) ;
BatteryN=batteryInfoIntent.getIntExtra( "level" , 0);--//电量（0-100）
BatteryV=batteryInfoIntent.getIntExtra("voltage", 0); --//电池电压
BatteryT=batteryInfoIntent.getIntExtra("temperature", 0); --//电池温度 
--import "android.content.Context" 
运营商名称 = this.getSystemService(Context.TELEPHONY_SERVICE).getNetworkOperatorName()

function 开机()
 解密lua("0gx")
 转换成lua("miying")
 解密lua("open")
 解密lua("yingyong")
 解密lua("jisuanqi")
 复制lua()
 if 文件是否存在(启动图片)==true then
 解密小程序("xiaohuangren")
 end
 if 文件是否存在(初始)==false then
 写入文件(初始,"直选四宫格")
 end
 初始功能()
 一言()
end

function 初始功能()
 if 读取文件(初始)=="自动选" then
 manager = activity.getSystemService(Context.CONNECTIVITY_SERVICE);  
 gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();  
 if tostring(gprs)== "CONNECTED" then
 import"lua/jisuanqi"
 else
 import"lua/open"
 end
 elseif 读取文件(初始)=="直选四宫格" then
 import"lua/open"
 elseif 读取文件(初始)=="直选计算器" then
 import"lua/jisuanqi"
 end
end

function 初始功能直选()
 items={"四宫格","计算器"}
 AlertDialog.Builder(this)
 .setTitle("初始功能")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 写入文件(初始,"直选四宫格")
 print"初始功能已变更，重启后生效。"
 end
 if v==1 then
 写入文件(初始,"直选计算器")
 print"初始功能已变更，重启后生效。"
 end
 end})
 .show() 
end

function 初始功能设置()
 items={"初始功能直选","按网络自动选择"}
 AlertDialog.Builder(this)
 .setTitle("初始功能设置")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 初始功能直选()
 end
 if v==1 then
 写入文件(初始,"自动选")
 print"初始功能已变更，重启后生效。"
 end
 end})
 .show() 
end

function 网页刷新()
 if 文件是否存在(开启通知)==true then
 开启通知栏(nil,webView. title)
 end
end

function 添加网站()
 items={}
 A="常用网站"
 B="小说网站"
 C="私人订制"
 D="学习网站"
 E="游戏大厅"
 F="电视直播"
 table.insert(items,A)
 table.insert(items,B)
 table.insert(items,C)
 table.insert(items,D)
 table.insert(items,E)
 table.insert(items,F)
 AlertDialog.Builder(this)
 .setTitle("收藏网站")
 .setItems(items,{onClick=function(l,v)
 if items[v+1]==A then
 自定义网站(HTM.."htm/changyong.html")
 elseif items[v+1]==B then
 自定义网站(HTM.."htm/book.html")
 elseif items[v+1]==C then
 自定义网站(HTM.."htm/00.html")
 elseif items[v+1]==D then
 自定义网站(HTM.."htm/study.html")
 elseif items[v+1]==E then
 添加至布局网页("收藏游戏","将你喜欢的游戏添加到游戏大厅",TXCGB.."files/tools/game.txt")
 elseif items[v+1]==F then
 if webView.getUrl():find".m3u8" or webView.getUrl():find".mp4" then
 添加电视直播()
 else
 print"你只能添加流媒体网址"
 end
 end
 end})
 .show()
end

function 觅影更新()
 local wl=activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo(); 
 if wl~= nil then
 Http.get("https://greasyfork.org/scripts/393284-%E8%A7%85%E5%BD%B1/code/%E8%A7%85%E5%BD%B1.user.js",function(code,content)
 if content~=nil then
 写入文件(TXCGB.."files/tools/miying.txt","function 觅影()\n加载Js([[\n"..content.."]])\nend\n")
 写入觅影()
 end
 end)
 end
end

function 觅影更新2()
 local wl=activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo(); 
 if wl~= nil then
 Http.get("http://txcgb.cqdm.xyz/js/miyingold.txt",function(code,content)
 if content~=nil then
 写入文件(TXCGB.."files/tools/miying.txt","function 觅影()\n加载Js([[\n"..content.."]])\nend\n")
 写入觅影()
 end
 end)
 end
end

function 写入觅影()
 task(5000,function()
 LuaUtil.copyDir(TXCGB.."files/tools/miying.txt",FILES.."tools/miying.txt")
 LuaUtil.copyDir(FILES.."tools/miying.txt",FILES.."lua/miying.lua")
 LuaUtil.copyDir(FILES.."lua/miying.lua",FILES.."sub/1554220968/lua/miying.lua")
 LuaUtil.copyDir(FILES.."lua/miying.lua",FILES.."sub/1559634258/lua/miying.lua")
 LuaUtil.copyDir(FILES.."lua/miying.lua",FILES.."sub/1581395930/lua/miying.lua")
 LuaUtil.copyDir(FILES.."lua/miying.lua",FILES.."sub/1581741136/lua/miying.lua")
 --print("觅影插件更新完毕")
 end)
end

function 网页源代码()
 print("Please waiting...")
 Http.get(网页链接,function(code,content)
 if content:find 'charset="gbk' or content:find 'charset=gbk' or content:find 'charset="GBK' or content:find 'charset=GBK' then
 Http.get(网页链接,"gbk",function(code,content)
 if content:find '<title>' then
 标题=content:match('<title>(.-)</title>')--webView.title
 else
 标题=网页链接
 end
 写入文件(TXCGB.."Html/"..标题..".html",content)
 写入文件(编辑文件,content)
 end)
 else
 Http.get(网页链接,"utf-8",function(code,content)
 if content:find '<title>' then
 标题=content:match('<title>(.-)</title>')--webView.title
 else
 标题=网页链接
 end
 写入文件(TXCGB.."Html/"..标题..".html",content)
 写入文件(编辑文件,content)
 end)
 end
 end)
 task(2000,function()
 解密小程序("bianjiqi1")
 end)
end

function 保存网页(网页链接)
 Http.get(网页链接,function(code,content)
 if content:find 'charset="gbk' or content:find 'charset=gbk' or content:find 'charset="GBK' or content:find 'charset=GBK' then
 Http.get(网页链接,"gbk",function(code,content)
 标题=content:match('<title>(.-)</title>')--webView.title
 写入文件(TXCGB.."Html/"..标题..".html",content)
 end)
 else
 Http.get(网页链接,"utf-8",function(code,content)
 标题=content:match('<title>(.-)</title>')
 写入文件(TXCGB.."Html/"..标题..".html",content)
 end)
 end
 end)
 print('网页已保存到\n"'..TXCGB..'Html/"')
end

function 提取文字(网页链接)
 Http.get(网页链接,function(code,content)
 if content:find 'charset="gbk' or content:find 'charset=gbk' or content:find 'charset="GBK' or content:find 'charset=GBK'
 then
 编码="GBK"
 else
 编码="UTF-8"
 end
 end)
 task(150,function()
 Http.get(网页链接,编码,function(code,content)
 写入文件(ydm,content)
 文件夹=tostring(父文件夹(网页链接))
 if content:find '<h1 id="chaptername" class="chaptername">' then
 标题=content:match('<h1 id="chaptername" class="chaptername">(.-)</h1>')
 end
 if content:find '<h1>' then
 标题=content:match('<h1>(.-)</h1>')
 end
 if content:find 'id="nr_title">' then
 标题=content:match('id="nr_title">(.-)</div>')
 if 标题:find"<h2>" then
 标题=标题:match("<h2>(.-)</h2>")
 end
 else
 标题=webView.title
 end
 ------以上标题代码------
 if content:find'id="pb_next" href="' then
 下一章文件=content:match('id="pb_next" href="(.-)">下一章')
 elseif content:find '<a id="pb_next" href="' and content:find'下章' then
 下一章文件=content:match('<a id="pb_next" href="(.-)">下章</a>')
 while(下一章文件:find"/")
 do
 下一章文件=下一章文件:match("/(.+)")
 end
 下一章=文件夹.."/"..下一章文件
 写入文件(下一章网址,下一章)
 else
 写入文件(下一章网址,"")
 end
 ------以下为小说内容代码------
 if content:find'<div class="text"><p>' then
 content=content:match('<div class="text"><p>(.-)</div>') 
 end
 if content:find'id="chapterContent">' then
 content=content:match('id="chapterContent">(.-)</div>') 
 end
 if content:find'class="Readarea ReadAjax_content">' then
 content=content:match('class="Readarea ReadAjax_content">(.-)<p style="') 
 end
 --[[if content:find"<script>chapter();</script></dt>" then
 content=content:match('<script>chapter();</script></dt>(.-)<div class="bd">') 
 end]]
 if content:find"<script>chapter();</script></dt>" then
 content=content:match('&nbsp;&nbsp;&nbsp;&nbsp;(.-)(www.x23qb.com)<br') 
 end
 if content:find"<script>merror();</script>" then
 content=content:match('merror();</script>(.-)<script>merror();') 
 end
 if content:find'<div id="nr1">' then
 content=content:match('<div id="nr1">(.-)</div>')
 end
 if content:find'<div id="content">' then
 content=content:match('<div id="content">(.-)</div>')
 end
 content=string.gsub(content,"&nbsp;","&nbsp;&nbsp;")
 写入文件(tqwz,"<br><title>"..标题.."</title>\n<h1><center>"..标题..'</center></h1><br><br>\n'..content.."<br/><br/><br/>\n<center>(本章完)</center>\n<br/><br/>")
 --写入文件(tqwz,"<br><title>"..标题.."</title>\n<h1><center>"..标题..'</center></h1><br><br>\n<a href="https://yd.txcgb.com">朗读</a><br/><br/>\n'..content..'<br/><br/><br/>\n<center>(本章完)</center><br/><br/>\n<a href="'..读取文件(下一章网址)..'"><div align="right">下一章</div></a><br/><br/><br/><br/>')
 content=string.gsub(content,"&nbsp;"," ")
 content=string.gsub(content,"<br/>","\n")
 content=string.gsub(content,"< br/>","\n")
 content=string.gsub(content,"< br />","\n")
 content=string.gsub(content,"<br />","\n")
 写入文件(tqwztxt,标题.."\n\n"..content.."\n\n")
 end)
 end)
end

function 小说阅读模式()
 print "Please waiting..."
 提取文字(网页链接)
 task(2000,function()
 子页面("塞班","file:///"..tqwz)
 返回网页顶部()
 end)
end

function 文件更新(文件名)
 local wl=activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo(); 
 if wl~= nil then
 Http.get("http://txcgb.3vkj.net/txt/"..文件名..".txt",function(code,content)
 if content~=nil then
 写入文件(FILES.."tools/"..文件名..".txt",content)
 task(5000,function()
 if 文件名~="jisuanqi" and 文件名~="0gx" then
 print("文件 "..文件名.." 更新完毕，重启软件后生效。")
 end
 end)
 end
 end)
 end
end

function 每时更新()
 文件更新("jisuanqi")
end

function 读取数据()
 ------分割线------
 生成随机数(随机色)
 生成随机数(随机色1)
 ------分割线------
 if 文件是否存在(TXCGB.."files/tools/miying.txt")==false 
 or 文件是否存在(日期)==false 
 or day~=读取文件(日期)
 then 
 写入文件(日期,day) 
 觅影更新() 
 end
 --[[----分割线------
 if 文件是否存在(时间)==false then 写入文件(时间,hour) end
 if hour~=读取文件(时间) then 
 写入文件(时间,hour) 
 每时更新() 
 end]]
 ------分割线------
 if 文件是否存在(首页)==false then 写入文件(首页,"http://txcgb.cqdm.xyz/") end
 ------分割线------
 if 文件是否存在(编辑文件)==false then 写入文件(编辑文件,"") end
 ------分割线------
 if 文件是否存在(tqwz)==false then 写入文件(tqwz,"") end
 ------分割线------
 if 文件是否存在(取色负)==false then 写入文件(取色负,"-13000110") end
 ------分割线------
 if 文件是否存在(取色)==false then 写入文件(取色,"-13000110") end
 ------分割线------
 if 文件是否存在(当前色)==false then 写入文件(当前色,"-13000110") end
 ------分割线------
 if 文件是否存在(取色正)==false then 写入文件(取色正,"-13000110") end
 ------分割线------
 if 文件是否存在(调色左)==false then 写入文件(调色左,"-13000110") end
 ------分割线------
 if 文件是否存在(调色)==false then 写入文件(调色,"-13000110") end
 ------分割线------
 if 文件是否存在(调色右)==false then 写入文件(调色右,"-13000110") end
 ------分割线------
 if 文件是否存在(沉浸)==false then 写入文件(沉浸,"自定义单色") end
 ------分割线------
 if 文件是否存在(记事本)==false then 写入文件(记事本,"记事本为空") end
 ------分割线------
 if 文件是否存在(背景配置文件)==false then 写入文件(背景配置文件,"全局默认") end
 ------分割线------
 if 文件是否存在(护眼配置文件)==false then 写入文件(护眼配置文件,"默认") end
 ------分割线------
 if 文件是否存在(语录)==false or 读取文件(语录)=="" then 写入文件(语录,"笑是对身边的事物感到一瞬间的幸福而表现出来的东西。——朋也《Clannad》") end
 ------分割线------
 if 文件是否存在(繁体文字)==false then 写入文件(繁体文字,"默认") end
 ------分割线------
 if 文件是否存在(HTM)==false then 复制文件(FILES.."htm/",HTM) end
 ------分割线------
 if 文件是否存在(TXCGB.."files/tools/")==false then 复制文件(FILES.."tools/",TXCGB.."files/tools/") end
 ------分割线------
 if 文件是否存在(TXCGB.."files/sub/")==false then 复制文件(FILES.."sub/",TXCGB.."files/sub/") end
 ------分割线------
if 文件是否存在(语调)==false then 写入文件(语调,"1") 写入文件(语速,"1") end
 ------分割线------
 --[[if 读取文件(ZYM)=="安卓" then 
 写入文件(UA,"") 写入文件(UA标识,"安卓") 
 webView.getSettings().setUserAgentString("");
 elseif 读取文件(ZYM)=="塞班" then 
 写入文件(UA,塞班) 写入文件(UA标识,"塞班") 
 webView.getSettings().setUserAgentString(塞班);
 end]]
 --获取默认主页链接
 if 文件是否存在(主页文件)==true then
 url0=读取文件(主页文件)
 else
 url0="http://txcgb.3vkj.net/"
 写入文件(主页文件,url0)
 end
 --自定义软件数据
 if 文件是否存在(全屏)==false then
 退出全屏()
 else
 进入全屏()
 end
 ------分割线------
 if 文件是否存在(自动旋转)==false then
 activity.setRequestedOrientation(1);
 else
 自由旋转()
 end
 ------分割线------
 --收藏夹文件，历史记录文件
 if 文件是否存在(FAV)==false then
 写入文件(FAV,收藏夹框架.."\n")
 end
 if 文件是否存在(HTML)==false then
 写入文件(HTML,框架..历史记录框架.."\n<title>我的历史记录</title> \n<style>a{TEXT-DECORATION:none}a{COLOR: #505050; TEXT-DECORATION: none}</style>\n")
 end
 if 文件是否存在(HTML0)==false then
 写入文件(HTML0,框架..历史记录框架.."\n<title>我的历史记录</title> \n<style>a{TEXT-DECORATION:none}a{COLOR: #505050; TEXT-DECORATION: none}</style>\n")
 end
 if 文件是否存在(HTML2)==false then
 写入文件(HTML2,框架..历史记录框架.."\n<title>我的历史记录</title> \n<style>a{TEXT-DECORATION:none}a{COLOR: #505050; TEXT-DECORATION: none}</style>\n")
 end
 if 文件是否存在(HTML1)==false then
 写入文件(HTML1,框架..历史记录框架.."\n<title>我的历史记录</title> \n<style>a{TEXT-DECORATION:none}a{COLOR: #505050; TEXT-DECORATION: none}</style>\n")
 end
 if 文件是否存在(计算器历史记录)==false then
 写入文件(计算器历史记录,"计算器历史记录\n")
 end
 ------分割线------
 --去广告
 if 文件是否存在(去广告)==true then
 gg=读取文件(去广告)
 if gg=="去广告1" then
 去广告1()
 elseif gg=="去广告2" then
 去广告2()
 elseif gg=="去广告3" then
 去广告3()
 elseif gg=="去广告4" then
 去广告4()
 elseif gg=="去广告5" then
 去广告5()
 end
 end
 ------分割线------
 --浏览器标识
 if 文件是否存在(UA)==false or 文件是否存在(UA标识)==false then 写入文件(UA,"") 写入文件(UA标识,"安卓") end
 webView.getSettings().setUserAgentString(读取文件(UA));
 ------分割线------
 --主题
 if 文件是否存在(主题)==false then
 activity.setTheme(android.R.style.Theme_Holo_Light_Dialog_MinWidth)
 else
 activity.setTheme(android.R.style.Theme_Material_Light)
 end
end
读取数据()

function 服务器()
 items={"服务器一: 三维网","服务器二: 我的磨","服务器三: 热铁盒","服务器四: 免费网","服务器五: 本地网"}
 AlertDialog.Builder(this)
 .setTitle("切换服务器")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 写入文件(主页文件,"http://txcgb.3vkj.net/")
 主页()
 end
 if v==1 then
 写入文件(主页文件,"https://txcgb.wodemo.net/entry/481077")
 主页()
 end
 if v==2 then
 写入文件(主页文件,"https://txcgb.rthe.xyz/")
 主页()
 end
 if v==3 then
 写入文件(主页文件,"http://txcgb.ccaeo.com/")
 主页()
 end
 if v==4 then
 写入文件(主页文件,"file:///"..包内文件.."htm/index.html")
 --主页()
 end
 end})
 .show()
end

function 导航()
 items={"本地","小说","音乐","影视","应用","游戏","学习","路由","购物","开发","收藏夹","历史记录"}
 AlertDialog.Builder(this)
 .setTitle("快速打开")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 子页面("安卓","file:///"..包内文件.."htm/index.html")
 end
 if v==1 then
 写入文件(UA,塞班)
 写入文件(UA标识,"塞班")
 子页面("塞班",读取文件(小说文件))
 end
 if v==2 then
 音乐()
 end
 if v==3 then
 子页面("电影")
 end
 if v==4 then
 应用()
 end
 if v==5 then
 游戏()
 end
 if v==6 then
 学习()
 end
 if v==7 then
 工具()
 end
 if v==8 then
 购物()
 end
 if v==9 then
 开发()
 end
 if v==10 then
 加载网页("file:///"..tdata.."Fav.html")
 end
 if v==11 then
 加载网页("file:///"..tdata.."His.html")
 end
 end})
 .show()
end

function 音乐()
 items={"网络收音机","音乐搜索","酷狗音乐","QQ音乐","网易云音乐","酷我音乐"}
 AlertDialog.Builder(this)
 .setTitle("音乐欣赏")
 .setItems(items,{onClick=function(l,v)
 webView.getSettings().setUserAgentString("");
 if v==0 then
 写入文件(UA,塞班)
 写入文件(UA标识,"塞班")
 子页面("安卓","https://tingfm.com/")
 end
 if v==1 then
 items={}
 for i=1,4 do
 table.insert(items,"音乐接口"..tostring(i))
 end
 AlertDialog.Builder(this)
 .setTitle("免费音乐搜索")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 加载网页("http://cndkk.com/Music/")
 end
 if v==1 then
 加载网页("http://music.uixsj.cn/")
 end
 if v==2 then
 加载网页("http://test.tmaize.net/music/")
 end
 if v==3 then
 加载网页("https://www.tikitiki.cn/search.do?keyword=%E6%88%90%E9%BE%99&page=1&type=1")
 end
 end})
 .show()
 end
 if v==2 then
 加载网页("http://m.kugou.com/")
 end
 if v==3 then
 加载网页("http://m.y.qq.com/")
 end
 if v==4 then
 加载网页("http://music.163.com/")
 end
 if v==5 then
 加载网页("http://m.kuwo.cn/")
 end
 end})
 .show()
end

function 学习()
 items={"百度好学","百度汉语","纳米盒","有道翻译","海词","腾讯翻译君","智能计算器"}
 AlertDialog.Builder(this)
 .setTitle("学习工具")
 .setItems(items,{onClick=function(l,v)
 webView.getSettings().setUserAgentString("");
 if v==0 then
 加载网页("http://haoxue.baidu.com/")
 end
 if v==1 then
 加载网页("http://hanyu.baidu.com/")
 end
 if v==2 then
 加载网页("https://namibox.com/app")
 end
 if v==3 then
 加载网页("http://m.youdao.com/translate")
 end
 if v==4 then
 加载网页("http://m.dict.cn/")
 end
 if v==5 then
 加载网页("http://m.fanyi.qq.com/browser")
 end
 if v==6 then
 计算器()
 end
 end})
 .show()
end

function 计算器()
 加载网页("https://www.zybang.com/static/question/m-calculator/m-calculator.html")
end

function 工具()
 打开网页("宽带工具","192.168.0.1","http://192.168.0.1","192.168.1.1","http://192.168.1.1","192.168.1.2","http://192.168.1.2","360路由器","luyou.360.cn","普联路由器","http://tplogin.cn/","迅捷路由器","http://falogin.cn/","斐讯路由器","http://p.to","水星路由器","http://melogin.cn","小米路由器","http://192.168.31.1","刷脸机联网","http://192.168.4.1")
end

function 游戏()
 items={"网页小游戏","聊天机器人","欢乐斗地主"}
 AlertDialog.Builder(this)
 .setTitle("游戏娱乐")
 .setItems(items,{onClick=function(l,v)
 webView.getSettings().setUserAgentString("");
 if v==0 then
 打开网页("网页小游戏","4399","http://h.4399.com/wap/","7724","http://m.7724.com/","好123","http://game.m.hao123.com/xyx/","腾讯H5","http://h5.qq.com/","乐趣","http://h.lequ.com/","安锋","http://h5.anfeng.com/#/home/game","07073","https://h5.07073.com/wap","其它","http://h5games.applinzi.com/")
 end
 if v==1 then
 写入文件(全屏,"已开启全屏")
 子页面("全屏","http://ai.sm.cn/")
 end
 if v==2 then
 写入文件(全屏,"已开启全屏")
 子页面("全屏","http://hlddz.huanle.qq.com/")
 end
 end})
 .show()
end

function 应用()
 打开网页("软件商店","酷安","https://www.coolapk.com/apk/update","手机乐园","https://wap.shouji.com.cn/applist/soft_0_new_1.html","安软","http://a.ruansky.com/","小米应用商店","http://m.app.mi.com/","沙发管家","http://m.shafa.com/list","魅族应用商店","https://i3.mzres.com/resources/appStore/browser/views/browser-list.html?business=2")
end

function 影音()
 打开网页("家庭影院","电影","http://m.360kan.com/list/dianying","电视","http://m.360kan.com/list/dianshi","动漫","http://m.360kan.com/list/dongman","综艺","http://m.360kan.com/list/zongyi")
end

function 开发()
 items={"菜鸟教程","代码编辑器","个人网页制作","现实君工具箱","孟坤工具箱","网易乐乎博客"}
 AlertDialog.Builder(this)
 .setTitle("==开发专区==")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 加载网页("http://m.runoob.com/")
 end
 if v==1 then
 ------分割线------
 items={"菜鸟在线编辑器","孟坤在线编辑器","鲶鱼本地编辑器","前端开发工具"}
 AlertDialog.Builder(this)
 .setTitle("==在线编辑器==")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 加载网页("https://m.runoob.com/try/try2.php?filename=tryhtml_basic_link")
 end
 if v==1 then
 加载网页("http://tool.mkblog.cn/codeonline/")
 end
 if v==2 then
 加载网页("http://txcgb.3vkj.net/editor/index.html")
 end
 if v==3 then
 加载网页("http://tool.mkblog.cn/qdtools/#qd-hcodemirror")
 end
 end})
 .show()
 end
 ------分割线------
 if v==2 then
 加载网页("http://www.144g.com/geren.html")
 end
 if v==3 then
 加载网页("http://tool.uixsj.cn/")
 end
 if v==4 then
 加载网页("http://tool.mkblog.cn/")
 end
 if v==5 then
 加载网页("http://www.lofter.com/blog/cgb0523?act=qbwapmyblog_20160216_01")
 end
 end})
 .show()
end

function 购物()
 打开网页("败家玩意儿","淘宝商城","https://h5.m.taobao.com/","京东商城","https://m.jd.com/","小米商城","https://m.mi.com/")
end

function 网络()
 if not searchEdtTxt.Text:find".js" or not searchEdtTxt.Text:find"//" then 写入文件(搜索文字,searchEdtTxt.Text) end
 if(searchEdtTxt.Text=="关于" or searchEdtTxt.Text=="49")then
 searchEdtTxt.Text=""
 关于()
 elseif(searchEdtTxt.Text:find"新代码")then
 ddd=searchEdtTxt.Text:match('新代码(.+)')
 复制文本(ddd)
 写入文件(编辑文件,ddd)
 写入文件(编辑器文件夹.."bianjiqi.lua",ddd)
 进入子页面("编辑器")
 elseif(searchEdtTxt.Text:find"代码")then
 ccc=searchEdtTxt.Text:match('代码(.+)')
 复制文本(ccc)
 运行代码(ccc)
 searchEdtTxt.Text=""
 elseif(searchEdtTxt.Text=="via")then
 searchEdtTxt.Text=""
 加载网页("file:///"..包内文件.."htm/htm/via.html")
 elseif(searchEdtTxt.Text=="VIA")then
 searchEdtTxt.Text=""
 调用APP("mark.via",网页链接,"https://www.coolapk.com/apk/mark.via")
 elseif(searchEdtTxt.Text=="00")then
 searchEdtTxt.Text=""
 加载网页("http://txcgb.cqdm.xyz/htm/00.html")
 elseif(searchEdtTxt.Text=="语录")then
 searchEdtTxt.Text=""
 子页面("安卓","file:///"..名言)
 elseif(searchEdtTxt.Text=="默认")then
 searchEdtTxt.Text=""
 写入文件(背景,"全局默认") 默认模式() 刷新网页()
 elseif(searchEdtTxt.Text=="夜间")then
 searchEdtTxt.Text=""
 写入文件(背景,"全局夜间") 夜间模式()
 elseif(searchEdtTxt.Text=="阅读")then
 searchEdtTxt.Text=""
 写入文件(背景,"全局阅读") 阅读模式txcgb()
 elseif(searchEdtTxt.Text=="蓝奏云" or searchEdtTxt.Text=="云")then
 searchEdtTxt.Text=""
 加载网页("https://up.woozooo.com/u")
 elseif(searchEdtTxt.Text:find "http://" or searchEdtTxt.Text:find "https://" or searchEdtTxt.Text:find "rtmp://" or searchEdtTxt.Text:find "rtsp://" or searchEdtTxt.Text:find "file:///")then
 加载网页(searchEdtTxt.Text)
 elseif(searchEdtTxt.Text:find ".com"
 or searchEdtTxt.Text:find ".tv"
 or searchEdtTxt.Text:find ".top"
 or searchEdtTxt.Text:find ".to"
 or searchEdtTxt.Text:find ".org"
 or searchEdtTxt.Text:find ".xyz"
 or searchEdtTxt.Text:find ".net"
 or searchEdtTxt.Text:find ".info"
 or searchEdtTxt.Text:find ".mobi"
 or searchEdtTxt.Text:find ".biz"
 -- or searchEdtTxt.Text:find ""
 or searchEdtTxt.Text:find ".cn")then
 加载网页("http://"..searchEdtTxt.Text)
 searchEdtTxt.Text=""
 elseif 文件是否存在(搜索引擎)==false or 读取文件(搜索引擎):find "必应搜索" then
 加载网页("http://cn.bing.com/search?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "搜狗搜索" then
 加载网页("https://m.sogou.com/web/searchList.jsp?keyword="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "油猴脚本" then
 加载网页("https://greasyfork.org/zh-CN/scripts?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "百度搜索" then
 加载网页("https://m.baidu.com/s?word="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "脚本之家" then
 加载网页("https://m.baidu.com/s?word=inurl%3Am.jb51.net+"..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "神马搜索" then
 加载网页("https://so.m.sm.cn/s?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "360搜索" then
 加载网页("https://m.so.com/index.php?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "小说搜索" then
 加载网页("https://m.xiashu.cc/search.html?searchkey="..searchEdtTxt.Text.."&searchtype=all")
 elseif 读取文件(搜索引擎):find "海词词典" then
 加载网页("http://m.dict.cn/msearch.php?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "有道翻译" then
 加载网页("http://m.youdao.com/dict?le=eng&q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "百度汉语" then
 加载网页("https://hanyu.baidu.com/s?wd="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "百度好学" then
 加载网页("https://haoxue.baidu.com/haoxue/maths/equation?wd="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "金山词霸" then
 加载网页("http://m.iciba.com/"..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "喜马拉雅" then
 加载网页("http://m.ximalaya.com/search/"..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "酷安市场" then
 加载网页("https://www.coolapk.com/search?q="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "小米应用" then
 加载网页("http://m.app.mi.com/?word="..searchEdtTxt.Text.."#page=search")
 elseif 读取文件(搜索引擎):find "安软游戏" then
 加载网页("http://a.ruansky.com/search?words="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "知网搜索" then
 加载网页("http://wap.cnki.net/touch/web/Article/Search/?field=5&kw="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "沙发应用" then
 加载网页("http://m.shafa.com/search?kw="..searchEdtTxt.Text)
 elseif 读取文件(搜索引擎):find "页内查找" then
 页内查找(tostring(searchEdtTxt.Text))
 elseif 读取文件(搜索引擎):find "影视搜索" then
 影视搜索()
 end
end
function 影视搜索()
 searchEdtTxt.Text=读取文件(搜索文字)
 --打开网页("影视搜索","爱奇艺搜索","http://m.iqiyi.com/search.html?source=input&vfrm=2-3-0-1&key="..searchEdtTxt.Text,"优酷搜索","http://www.soku.com/m/y/video?q="..searchEdtTxt.Text,"腾讯视频搜索","https://m.v.qq.com/search.html?act=0&keyWord="..searchEdtTxt.Text,"哔哩哔哩","https://m.bilibili.com/search.html?keyword="..searchEdtTxt.Text,"初心视频","http://v.bwcxy.com/vodsearch/-------------.html?wd="..searchEdtTxt.Text.."&submit=")
 加载网页("http://txcgb.cqdm.xyz/search-"..searchEdtTxt.Text..".html")
end
function 搜索引擎设置()
 A="必应搜索"
 A1="百度搜索"
 B="搜狗搜索"
 C="神马搜索"
 D="360搜索"
 D1="油猴脚本"
 D2="脚本之家"
 E="小说搜索"
 E1="知网搜索"
 F="海词词典"
 G="有道翻译"
 H="百度汉语"
 I="百度好学"
 J="金山词霸"
 K="喜马拉雅"
 L="酷安市场"
 M="小米应用"
 N="安软游戏"
 O="沙发应用"
 P="影视搜索"
 Q="页内查找"
 if 文件是否存在(搜索文字)==false then 写入文件(搜索文字,"") end
 if 文件是否存在(搜索引擎)==false then 写入文件(搜索引擎,"必应搜索") end
 if 读取文件(搜索引擎):find "必应搜索" then A="★必应搜索" end
 if 读取文件(搜索引擎):find "百度搜索" then A1="★百度搜索" end
 if 读取文件(搜索引擎):find "搜狗搜索" then B="★搜狗搜索" end
 if 读取文件(搜索引擎):find "神马搜索" then C="★神马搜索" end
 if 读取文件(搜索引擎):find "360搜索" then D="★360搜索" end
 if 读取文件(搜索引擎):find "油猴脚本" then D1="★油猴脚本" end
 if 读取文件(搜索引擎):find "脚本之家" then D2="★脚本之家" end
 if 读取文件(搜索引擎):find "小说搜索" then E="★小说搜索" end
 if 读取文件(搜索引擎):find "知网搜索" then E1="★知网搜索" end
 if 读取文件(搜索引擎):find "海词词典" then F="★海词词典" end
 if 读取文件(搜索引擎):find "有道翻译" then G="★有道翻译" end
 if 读取文件(搜索引擎):find "百度汉语" then H="★百度汉语" end
 if 读取文件(搜索引擎):find "百度好学" then I="★百度好学" end
 if 读取文件(搜索引擎):find "金山词霸" then J="★金山词霸" end
 if 读取文件(搜索引擎):find "喜马拉雅" then K="★喜马拉雅" end
 if 读取文件(搜索引擎):find "酷安市场" then L="★酷安市场" end
 if 读取文件(搜索引擎):find "小米应用" then M="★小米应用" end
 if 读取文件(搜索引擎):find "安软游戏" then N="★安软游戏" end
 if 读取文件(搜索引擎):find "沙发应用" then O="★沙发应用" end
 if 读取文件(搜索引擎):find "影视搜索" then P="★影视搜索" end
 if 读取文件(搜索引擎):find "页内查找" then Q="★页内查找" end
 items={"直接访问",A,A1,B,C,D,D1,D2,E,E1,F,G,H,I,J,K,L,M,N,O,P,Q}
 AlertDialog.Builder(this)
 .setTitle("搜索引擎设置")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 加载网页(searchEdtTxt.Text)
 end
 if v==1 then
 写入文件(搜索引擎,A)
 加载网页("http://cn.bing.com/search?q="..读取文件(搜索文字))
 end
 if v==2 then
 写入文件(搜索引擎,A1)
 加载网页("https://m.baidu.com/s?word="..读取文件(搜索文字))
 end
 if v==3 then
 写入文件(搜索引擎,B)
 加载网页("https://m.sogou.com/web/searchList.jsp?keyword="..读取文件(搜索文字))
 end
 if v==4 then
 写入文件(搜索引擎,C)
 加载网页("https://so.m.sm.cn/s?q="..读取文件(搜索文字))
 end
 if v==5 then
 写入文件(搜索引擎,D)
 加载网页("https://m.so.com/index.php?q="..读取文件(搜索文字))
 end
 if v==6 then
 写入文件(搜索引擎,D1)
 加载网页("https://greasyfork.org/zh-CN/scripts?q="..读取文件(搜索文字))
 end
 if v==7 then
 写入文件(搜索引擎,D2)
 加载网页("https://m.baidu.com/s?word=inurl%3Am.jb51.net+"..读取文件(搜索文字))
 end
 if v==8 then
 写入文件(搜索引擎,E)
 加载网页("https://m.xiashu.cc/search.html?searchkey="..读取文件(搜索文字).."&searchtype=all")
 end
 if v==9 then
 写入文件(搜索引擎,E1)
 加载网页("http://wap.cnki.net/touch/web/Article/Search/?field=5&kw="..读取文件(搜索文字))
 end
 if v==10 then
 写入文件(搜索引擎,F)
 加载网页("http://m.dict.cn/msearch.php?q="..读取文件(搜索文字))
 end
 if v==11 then
 写入文件(搜索引擎,G)
 加载网页("http://m.youdao.com/dict?le=eng&q="..读取文件(搜索文字))
 end
 if v==12 then
 写入文件(搜索引擎,H)
 加载网页("https://hanyu.baidu.com/s?wd="..读取文件(搜索文字))
 end
 if v==13 then
 写入文件(搜索引擎,I)
 加载网页("https://haoxue.baidu.com/haoxue/maths/equation?wd="..读取文件(搜索文字))
 end
 if v==14 then
 写入文件(搜索引擎,J)
 加载网页("http://m.iciba.com/"..读取文件(搜索文字))
 end
 if v==15 then
 写入文件(搜索引擎,K)
 加载网页("http://m.ximalaya.com/search/"..读取文件(搜索文字))
 end
 if v==16 then
 写入文件(搜索引擎,L)
 加载网页("https://www.coolapk.com/search?q="..读取文件(搜索文字))
 end
 if v==17 then
 写入文件(搜索引擎,M)
 加载网页("http://m.app.mi.com/?word="..读取文件(搜索文字).."#page=search")
 end
 if v==18 then
 写入文件(搜索引擎,N)
 加载网页("http://a.ruansky.com/search?words="..读取文件(搜索文字))
 end
 if v==19 then
 写入文件(搜索引擎,O)
 加载网页("http://m.shafa.com/search?kw="..读取文件(搜索文字))
 end
 if v==20 then
 写入文件(搜索引擎,P)
 加载网页("http://txcgb.cqdm.xyz/search-"..读取文件(搜索文字)..".html")
 end
 if v==21 then
 写入文件(搜索引擎,Q)
 页内查找(tostring(搜索文字))
 end
 end})
 .show()
end

function 加载完毕()
 取色器(取色负,-7655)
 取色器(取色,0)
 取色器(取色正,7655)
 觅影()
 美化()
 繁体()
 --主页()
 --翻页按钮()
 网页沉浸()
 双击滚动()
 记住密码()
 --新标题历史记录()
 --新标题历史记录全记录()
 ------分割线------
end

function 替换()
 tihuan_layout={
 LinearLayout;
 orientation="vertical";
 id="Download_father_layout",
 {
 TextView;
 id="czhint",
 layout_marginTop="10dp";
 text="查找",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="cz",
 layout_width="80%w";
 layout_gravity="center"; 
 };
 {
 TextView;
 id="thhint",
 layout_marginTop="10dp";
 text="替换",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="th",
 layout_width="80%w";
 layout_gravity="center"; 
 };
};
AlertDialog.Builder(this)
.setTitle("替换")
.setView(loadlayout(tihuan_layout))
.setPositiveButton("全部替换",{onClick=function(v)
 ------分割线------
替换=string.gsub(edit.text,cz.text,th.text)
edit.text=替换
 ------分割线------
end})
--[[.setNeutralButton("替换",{onClick=function(v)
 ------分割线------
替换=string.gsub(edit.text,cz.text,th.text,"1")
edit.text=替换
 ------分割线------
end})]]
.setNegativeButton("取消",nil)
.show()
end

function 下载器()
Download_layout={
 LinearLayout;
 orientation="vertical";
 id="Download_father_layout",
 {
 TextView;
 id="linkhint",
 layout_marginTop="10dp";
 text="下载链接",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="linkedit",
 layout_width="80%w";
 layout_gravity="center"; 
 };
};
AlertDialog.Builder(this)
.setTitle("下载文件")
.setView(loadlayout(Download_layout))
.setPositiveButton("地址解析",{onClick=function(v)
 ------分割线------
链接=linkedit.text
下载工具()
linkedit.text=链接
 wjm=linkedit.text
 while(wjm:find"/")
 do
 wjm=wjm:match("/(.+)")
 end
 wjname.text=wjm
 ------分割线------
end})
.setNegativeButton("取消",nil)
.show()
end

function 下载工具()
 if webView.getUrl():find".js" or webView.getUrl():find".css" or webView.getUrl():find".htm" then
 下载路径="txcgb/"..BAO.."/download/html/"
 elseif webView.getUrl():find".rar" or webView.getUrl():find".zip" then
 下载路径="txcgb/"..BAO.."/download/zip/"
 else
 下载路径="txcgb/"..BAO.."/download/others/"
 end

 Download_layout={
 LinearLayout;
 orientation="vertical";
 id="Download_father_layout",
 {
 TextView;
 id="linkhint",
 layout_marginTop="10dp";
 text="下载链接",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="linkedit",
 layout_width="80%w";
 layout_gravity="center"; 
 };
 {
 TextView;
 id="wjmhint",
 text="文件名称",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_marginTop="10dp";
 layout_gravity="center";
 };
 {
 EditText;
 id="wjname",
 Hint="输入为空，则为默认名称",
 layout_width="80%w";
 layout_gravity="center";
 };
 {
 TextView;
 id="pathhint",
 text="下载路径",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_marginTop="10dp";
 layout_gravity="center";
 };
 {
 EditText;
 id="pathedit",
 text=下载路径,
 layout_width="80%w";
 layout_gravity="center";
 };
};
AlertDialog.Builder(this)
.setTitle("下载文件")
.setView(loadlayout(Download_layout))
.setPositiveButton("下载",{onClick=function(v)
 downloadManager=activity.getSystemService(Context.DOWNLOAD_SERVICE);
 url=Uri.parse(linkedit.text);
wjm=linkedit.text
 while(wjm:find"/")
 do
 wjm=wjm:match("/(.+)")
end
 if wjname.text=="" then
 wjmc=wjm 
 elseif wjname.text~="" and wjname.text~=wjm then 
 wjmc=wjname.text 
 else
 wjmc=wjm 
 end
 request=DownloadManager.Request(url);
 request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE|DownloadManager.Request.NETWORK_WIFI);
 request.setDestinationInExternalPublicDir(pathedit.Text,wjmc);
 request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
 downloadManager.enqueue(request);
end})
.setNegativeButton("取消",nil)
.show()
end

function 一言()
 --[[if 文件是否存在(名言)==false then 写入文件(名言,框架..语录框架.."\n") end
 cjson=require ("cjson") --解析json字符 一言服务器1开始
 url="https://v1.jinrishici.com/all.txt"
 Http.get(url,"utf8",function(code,content)
 YY=content
 写入文件(语录,YY)
 追加写入(名言,YY.."<br><br>\n")
 end) --一言服务器1结束]]
end

function 蓝奏云地址更换()
 if(webView.getUrl():find"lanzous.com/")then
 停止加载()
 ------分割线------
 function trim(s) 
  return (string.gsub(webView.getUrl(), "lanzous","lanzoux"))
 end-- 字符串，被替换字符，替换字符，替换次数(可省略)
 ------分割线------
 调用浏览器(trim(s))
 end
end

function 即将加载()
 蓝奏云地址更换()
 一言()
 读取数据()
 自定义解析读取()
 自动删除历史记录()
 收藏夹启动事件()
 searchEdtTxt.Text="" --清除搜索文字
 ------分割线------
 if(webView.getUrl():find"http://app.91kds.com/91ktv/"
 or webView.getUrl():find"pkgname="
 or webView.getUrl():find"rpcs.myapp.com/myapp/rcps/"
 or webView.getUrl():find"webappban"
 or webView.getUrl():find"webappplay"
 or webView.getUrl():find"http://d1.music.126.net/dmusic/CloudMusic"
 or webView.getUrl():find"163.com/m/download?"
 or webView.getUrl():find"CloudMusic_official"
 or webView.getUrl():find"downmobile.kugou") then
 停止加载()
 --嗅探()
 end
 ------分割线------
 if(webView.getUrl():find"http://down1.5156edu.com/showzipdown_wap.php")then
 停止加载()
 调用浏览器(网页链接)
 end
 ------分割线------
 if(webView.getUrl():find"http://qqfankui.txcgb.com/") then
 停止加载()
 联系QQ(659933898)
 end
 ------分割线------
 if(webView.getUrl():find".shoucangjia.com/") then
 停止加载()
 子页面("安卓","file:///"..FAV)
 end
 ------分割线------
 if(webView.getUrl():find"https://m.rzlib.net/")then
 写入文件(UA,电脑)
 写入文件(UA标识,"PC")
 end
 ------分割线------
 if(webView.getUrl():find"http://wapzt.189.cn/") then
 停止加载()
 加载网页("http://wapjs.189.cn/tysh/pages/main/home.html")
 end
 ------分割线------
 if(webView.getUrl():find"http://wap.10086.cn/") then
 停止加载()
 加载网页("http://wap.js.10086.cn/index.thtml")
 end
 ------分割线------
 if(webView.getUrl():find"http://m1905.cn/") then
 停止加载()
 加载网页("http://vip.1905.com/")
 end
 ------分割线------
 if(webView.getUrl():find"www.3v.do/")then
 停止加载()
 加载网页("http://txcgb.3v.do/")
 end
 ------分割线------
 if(webView.getUrl():find"yd.txcgb.com")then
 停止加载()
 speak(读取文件(tqwztxt),1,1)
 end
 ------分割线------
 if(webView.getUrl():find".mp3" or webView.getUrl():find".flac")then
 停止加载()
 下载工具()
 linkedit.text=网页链接
 pathedit.Text="Music"
 wjm=linkedit.text
 while(wjm:find"/")
 do
 wjm=wjm:match("/(.+)")
 end
 wjname.text=wjm
 end
 ------分割线------
if(webView.getUrl():find".user.js")then
对话框()
.设置标题("重要提示！")
.设置消息("你确定下载此插件吗？")
.设置积极按钮("确定",function()
 停止加载()
 下载器()
 linkedit.text=网页链接
end)
.设置消极按钮("取消")
.显示()
end
 ------分割线------
end

function 即将加载塞班()
 if(webView.getUrl():find"xiashutxt.com")
 or(webView.getUrl():find"bimo.cc")
 or(webView.getUrl():find"/wapbook/")
 or(webView.getUrl():find"/b/") and not(webView.getUrl():find"mgtv.com")
 or(webView.getUrl():find"/view/") and not(webView.getUrl():find"wk.baidu")
 or(webView.getUrl():find"/xiaoshuo/")
 or(webView.getUrl():find"tingfm.com")
 or(webView.getUrl():find"book.html")and not(webView.getUrl():find"qjty.xyz")
 or(webView.getUrl():find"/read_")
 or(webView.getUrl():find"m.bimo.cc")
 or(webView.getUrl():find"m.iptv444.com")
 or(webView.getUrl():find"mobile.goonjin.com")
 or(webView.getUrl():find"m.meiguixs.net")
 or(webView.getUrl():find"kehuan.net.cn")
 or(webView.getUrl():find"m.mzhu8.com")
 or(webView.getUrl():find"m.dict.cn")
 or(webView.getUrl():find"m.x23us.com/html/")
 or(webView.getUrl():find"m.bimo.cc/id")
 or(webView.getUrl():find"m.seego.co/")
 or(webView.getUrl():find"/xs/")
 or(webView.getUrl():find"m.meiguixs.net/")
 or(webView.getUrl():find"m.juyit.com/")
 or(webView.getUrl():find"m.yuedyue.com")
 --or(webView.getUrl():find"/chapter")
 or(webView.getUrl():find"xiashu")
 or(webView.getUrl():find"/book/")
 or(webView.getUrl():find"m.as16.com")
 or(webView.getUrl():find"m.4sdyy.com")
 or(webView.getUrl():find"xanbhx.com")
 or(webView.getUrl():find"100ben.net")
 or(webView.getUrl():find"m.2kxs.")
 or(webView.getUrl():find"owllook.net") then
 停止加载()
 写入文件(UA,塞班)
 写入文件(UA标识,"塞班")
 子页面("塞班",网页链接)
 end
 ------分割线------
 if(webView.getUrl():find"https://m.rzlib.net/")then
 停止加载()
 写入文件(UA,电脑)
 写入文件(UA标识,"PC")
 子页面("塞班",网页链接)
 end
end

function 分享()
 items={"分享给好友","投屏到电视","浏览器打开","二维码分享"}
 AlertDialog.Builder(this)
 .setTitle("好东西大家分享")
 -- .setCancelable(false)--点击外围可取消
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 分享文本(webView. title.."\n"..webView.getUrl())
 end
 if v==1 then
 快点投屏()
 end
 if v==2 then
 免流设置()
 end
 if v==3 then
 调用浏览器("http://dh.freeee.ml/qr/?text="..网页链接.."&size=300*300")
 end
 end})
 .show()
end

function 购物菜单()
 if(webView.getUrl():find"taobao" or webView.getUrl():find"tmall")then
 打开网页("手机淘宝","手机淘宝","https://h5.m.taobao.com/","宝贝分类","https://market.m.taobao.com/app/tbsearchwireless-pages/categories/p/categories?","我要寻宝","https://s.m.taobao.com/h5?search","查看物流","https://h5.m.taobao.com/awp/mtb/olist.htm?sta=5#!/awp/mtb/olist.htm?sta=5","我要付款","https://h5.m.taobao.com/awp/base/bag.htm?pds=cart%23h%23taojia","我的珍藏","https://h5.m.taobao.com/fav/index.htm?spm=a1z0b.8163239.0.0#!goods/queryColGood-1","订单列表","https://h5.m.taobao.com/mlapp/olist.html?spm=a215s.7406091/B.toolbar.i2","售后服务","https://refund.m.taobao.com/dispute/wirelessList.htm?spm","我的淘宝","https://h5.m.taobao.com/mlapp/mytaobao.html#mlapp-mytaobao")
 elseif(webView.getUrl():find"mi.com")then
 打开网页("小米商城","商城首页","https://m.mi.com/","宝贝分类","https://m.mi.com/category","我要寻宝","https://m.mi.com/search","我的小米","https://m.mi.com/user","我要结账","https://m.mi.com/cart","我的订单","https://m.mi.com/order/list","商城设置","https://m.mi.com/user/set")
 elseif(webView.getUrl():find"jd.com")then
 打开网页("京东商城","京东商城","https://m.jd.com/","宝贝分类","https://so.m.jd.com/webportal/channel/m_category?searchFrom=home","我要付款","https://p.m.jd.com/cart/cart.action","我的京东","https://plogin.m.jd.com/user/login.action?appid=461&returnurl=http%3A%2F%2Fhome.m.jd.com%2FmyJd%2Fhome.action&ipChanged=")
 else
 网页控制()
 end
end
function 网页控制()
 if 文件是否存在(自动旋转)==true then XZ="锁定竖屏" else XZ="自由旋转" end
 if 文件是否存在(全屏)==true then QP="退出全屏" else QP="全屏打开" end
 if webView.getUrl():find"/wapbook/"
 or webView.getUrl():find"/b/" and not webView.getUrl():find"mgtv.com"
 or webView.getUrl():find"/view/" and not webView.getUrl():find"wk.baidu"
 or webView.getUrl():find"https://m.xiashuwu.com/" and webView.getUrl():find".html"
 or webView.getUrl():find"https://m.meiguixs.net/" and webView.getUrl():find".shtml"
 or webView.getUrl():find"/xiaoshuo/"
 or webView.getUrl():find"/views/"
 or webView.getUrl():find"m.bimo.cc/id"
 or webView.getUrl():find"/read_"
 or webView.getUrl():find"/xs/"
 or webView.getUrl():find"/chapter"
 or webView.getUrl():find"/book/" then
 YD="阅读模式"
 --LD="听书模式"
 else
 YD=nil
 --LD=nil
 end
 ------分割线------
 items={"网页前进","刷新网页","回到顶部","回到底部","新开窗口",QP,XZ,"分享网页","网页翻译","查看源码","解析播放"}
 AlertDialog.Builder(this)
 --.setTitle("网页控制")
 -- .setCancelable(false)--点击外围可取消
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 网页前进()
 end
 if v==1 then
 刷新()
 end
 if v==2 then
 网页顶部()
 end
 if v==3 then
 网页底部()
 end
 if v==4 then
 新窗口()
 end
 if v==5 then
 if 文件是否存在(全屏)==false then 
 写入文件(自动旋转,"已开启自动旋转") 
 写入文件(全屏,"已开启全屏")
 子页面("全屏",网页链接)
 else
 关闭窗口()
 end
 end
 if v==6 then
 if 文件是否存在(自动旋转)==true then
 删除文件(自动旋转) 
 --竖屏
 activity.setRequestedOrientation(1);
 else 
 写入文件(自动旋转,"已开启自动旋转") 
 自由旋转()
 end
 end
 if v==7 then
 分享()
 end
 if v==8 then
 加载网页("https://translate.sogoucdn.com/pcvtsnapshot?from=auto&to=zh-CHS&tfr=translatepc&url="..webView.getUrl())
 end
 if v==9 then
 ------分割线------
 items={"方式一(JS)","方式二(VIA)","方式三(编辑保存)","打开保存网页"}
 AlertDialog.Builder(this)
 .setTitle("查看源码")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 加载Js([[s=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=s;]])--网页源码
 end
 if v==1 then
 加载网页("view-source:"..webView.getUrl())
 end
 if v==2 then
 网页源代码()
 end
 if v==3 then
 打开html(TXCGB.."Html/")
 end
 end})
 .show()
 end
 ------分割线------
 if v==100 then
  zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 id="zdy_father_layout",
 {
 EditText;--编辑框控件
 id="pathedit",
 layout_marginTop='15dp';--布局顶距
 layout_width="80%w";--编辑框宽度
 layout_gravity="center";--重力属性
 Hint="请输入自定义代码";--设置编辑框为空时的提示文字
 };
 };
 AlertDialog.Builder(this)
 .setTitle("加载代码")--设置标题
 .setCancelable(false)--点击外围可取消
 .setView(loadlayout(zdy_layout))--设置布局
 .setPositiveButton("运行代码",function(v)--设置积极按钮
 运行代码(pathedit.text)
 end)
 .setNeutralButton("复制代码",function()
 复制文本(pathedit.text)
 end)
 .setNegativeButton("取消",function(v)--设置消极按钮
 end)
 .show()
 end
 ------分割线------ 
 if v==10 then
 加载网页("file:///android_asset/htm/777player/index.html?url="..webView.getUrl())
 end
 end})
 .show()
end

function 刷新()
 items={"刷新网页","定时刷新"}
 AlertDialog.Builder(this)
 .setTitle("刷新网页")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 刷新网页()
 end
 if v==1 then
 自动刷新()
 end
 end})
 .show()
end

function 软件设置()
 if 文件是否存在(文字美化)==true then MH="去除美化" else MH="文字美化" end
 if 读取文件(繁体文字)=="繁体" then ZT="简体网页" elseif 读取文件(繁体文字)=="简体" then ZT="默认字体" else ZT="繁体网页" end
 if 文件是否存在(启动图片)==true then TP="关启动图" else TP="启动图片" end
 if 文件是否存在(隐私模式)==false then YS="无痕浏览" else YS="退出无痕" end
 if 文件是否存在(开启通知)==false then TZ="通知栏开" else TZ="通知栏关" end
------分割线------
 items={"默认主页","内核修复","解析设置",TP,"主题设置",ZT,"设浏览器","设备标识",MH,YS,"觅影更新",TZ,"初始功能"}
 AlertDialog.Builder(this)
 .setTitle("软件设置")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 主页设置()
 end
 if v==1 then
 修复()
 end
 if v==2 then
 解析设置()
 end
 
 if v==3 then
 if 文件是否存在(启动图片)==true then 
 删除文件(启动图片) 
 else 
 zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 id="zdy_father_layout",
 {
 EditText;--编辑框控件
 id="pathedit",
 inputType="number";--数字格式
 layout_marginTop='15dp';--布局顶距
 layout_width="80%w";--编辑框宽度
 layout_gravity="center";--重力属性
 Hint="请输入启动图片显示秒数";--设置编辑框为空时的提示文字
 };
 };
 AlertDialog.Builder(this)
 .setTitle("启动图片显示时间")--设置标题
 .setCancelable(false)--点击外围可取消
 .setView(loadlayout(zdy_layout))--设置布局
 .setPositiveButton("确认",function()--设置积极按钮
 写入文件(启动图片,pathedit.text) 
 end)
 .setNegativeButton("取消",function()--设置消极按钮
 end)
 .show()
 end
 end
 
 if v==4 then
 主题设置()
 end
 if v==5 then
 if 读取文件(繁体文字)=="繁体" then 写入文件(繁体文字,"简体") 繁体() elseif 读取文件(繁体文字)=="简体" then 写入文件(繁体文字,"默认") 刷新网页() else 写入文件(繁体文字,"繁体") 繁体() end
 end
 if v==6 then
 免流设置()
 end
 if v==7 then
 切换UA()
 end
 if v==8 then
 if 文件是否存在(文字美化)==false then 写入文件(文字美化,"开启文字美化") else 删除文件(文字美化) end
 美化()
 end
 if v==9 then
 if 文件是否存在(隐私模式)==false then 写入文件(隐私模式,"开启隐私模式") else 删除文件(隐私模式) end
 读取数据()
 end

 if v==10 then
 items={"官方新版","官方旧版"}
 AlertDialog.Builder(this)
 .setTitle("觅影更新")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 觅影更新()
 end
 if v==1 then
 觅影更新2()
 end
 end})
 .show()
 end
 
 if v==11 then
 if 文件是否存在(开启通知)==false then 写入文件(开启通知,"") 开启通知栏(nil,webView. title) else 删除文件(开启通知) 清除通知栏() end
 end

 if v==12 then
 初始功能设置()
 end
 end})
 .show()
end

function 菜单栏()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu
 menu.add("快速打开").onMenuItemClick=function(a)
 导航()
 end
 menu.add("软件设置").onMenuItemClick=function(a)
 软件设置()
 end
 menu.add("历史收藏").onMenuItemClick=function(a)
 历史记录与收藏夹()
 end
 menu.add("下载文件").onMenuItemClick=function(a)
 复制文本(网页链接)
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu
 menu.add("下载文件").onMenuItemClick=function(a)
 下载器()
 end
 menu.add("下载网页").onMenuItemClick=function(a)
 Download_layout={
 LinearLayout;
 orientation="vertical";
 id="Download_father_layout",
 {
 TextView;
 id="linkhint",
 layout_marginTop="10dp";
 text="下载链接",
 layout_width="80%w";
 textColor=WidgetColors,
 layout_gravity="center";
 };
 {
 EditText;
 id="linkedit",
 layout_width="80%w";
 layout_gravity="center"; 
 };
 };
 AlertDialog.Builder(this)
 .setTitle("下载网页")
 .setView(loadlayout(Download_layout))
 .setPositiveButton("下载",{onClick=function(v)
 网页链接=linkedit.text
 保存网页(网页链接)
 end})
 .setNegativeButton("取消",nil)
 .show()
 end
 pop.show()
 end
 menu.add("关闭窗口").onMenuItemClick=function(a)
 关闭窗口()
 end
 pop.show()
end

function 上下章()
 items={"上一章","下一章"}
 AlertDialog.Builder(this)
 --.setTitle("菜单")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 上一章()
 end
 if v==1 then
 下一章()
 end
 end})
 .show()
end

function 按钮菜单()
 ------分割线------
 if 文件是否存在(悬浮按钮文件)==true and 读取文件(悬浮按钮文件)=="游戏菜单" then
 if 文件是否存在(自动旋转)==true then XZ="锁定竖屏" else XZ="自由旋转" end
 items={"重新开始",XZ,"退出全屏","退出游戏"}
 AlertDialog.Builder(this)
 --.setTitle("菜单")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 刷新网页()
 end
 ------分割线------
 if v==1 then
 if 文件是否存在(自动旋转)==true then 
 删除文件(自动旋转) 
 --竖屏
 activity.setRequestedOrientation(1);
 else 
 写入文件(自动旋转,"已开启自动旋转") 
 自由旋转() 
 end
 end
 ------分割线------
 if v==2 then
 删除文件(自动旋转)
 url=网页链接
 关闭窗口()
 子页面("安卓",url)
 end
 ------分割线------
 if v==3 then
 删除文件(自动旋转)
 删除文件(悬浮按钮文件)
 关闭窗口()
 end
 end})
 .show()
 ------分割线------
 elseif webView.getUrl():find".m3u8" then
 ------分割线------
 items={"重新加载","关闭窗口"}
 AlertDialog.Builder(this)
 --.setTitle("菜单")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 刷新网页()
 end
 if v==15 then
 添加至布局网页("收藏电视直播","将你喜欢的视频添加到电视直播",TXCGB.."files/tools/tvlive.txt")
 end
 if v==1 then
 删除文件(自动旋转)
 关闭窗口()
 end
 end})
 .show()
 ------分割线------
 else
 ------分割线------
 items={"快速打开","网页控制","关闭窗口"}
 AlertDialog.Builder(this)
 --.setTitle("菜单")
 .setItems(items,{onClick=function(l,v)
 if v==0 then
 导航()
 end
 if v==1 then
 网页控制()
 end
 if v==2 then
 删除文件(自动旋转)
 关闭窗口()
 end
 end})
 .show()
 ------分割线------
 end
end

function 按钮()
 items={}
 table.insert(items,"打开")
 table.insert(items,"关闭")
 AlertDialog.Builder(this)
 .setTitle("悬浮按钮开关")
 .setItems(items,{onClick=function(l,v) 
 if items[v+1]=="打开" then
 fltBtn.setVisibility(View.VISIBLE)
 elseif items[v+1]=="关闭" then
 fltBtn.setVisibility(View.GONE)
 end
 end})
 .show()
end

function 机器人()
 if webView.title :find "txcgb" and not webView.title :find "com.txcgb.computer/data/tqwz.html" then
 主题设置()
 elseif webView.getUrl():find "tqwz.html" then
 退出页面()
 elseif webView.getUrl():find"/wapbook/"
 or webView.getUrl():find"/b/" and not webView.getUrl():find"mgtv.com"
 or webView.getUrl():find"/view/" and not webView.getUrl():find"wk.baidu"
 or webView.getUrl():find"https://m.xiashuwu.com/" and webView.getUrl():find".html"
 or webView.getUrl():find"https://m.meiguixs.net/" and webView.getUrl():find".shtml"
 or webView.getUrl():find"/xiaoshuo/"
 or webView.getUrl():find"/views/"
 or webView.getUrl():find"m.bimo.cc/id"
 or webView.getUrl():find"/read_"
 or webView.getUrl():find"/xs/"
 or webView.getUrl():find"/chapter"
 or webView.getUrl():find"/book/" then
 夜间模式设置()
 elseif(webView.getUrl():find"taobao.com")
 or(webView.getUrl():find"tmall")
 or(webView.getUrl():find"jd.com")
 or(webView.getUrl():find"m.mi.com/")
 then
 加载网页("http://tool.manmanbuy.com/m/history.aspx?siteurl="..webView.getUrl())
 elseif webView.getUrl():find"https://wk.baidu.com/view/" then
 复制文本(webView.title)
 文库id=网页链接:match("/view/(.+)")
 加载网页("https://wk.baiduvvv.com/view/"..文库id)
 elseif webView.getUrl():find"m.mzitu.com" then
 加载Js("document.getElementsByClassName('button radius')[1].click()")
 elseif(webView.getUrl():find"https://music.163.com/m/song") then
 复制文本(网页链接)
 音乐名称=webView.title
 音乐id=网页链接:match("?id=(.+)")
 ------分割线------
 对话框()
 .设置标题("友情提示:")
 .设置消息('即将为你下载:\n '..'“'..音乐名称..'”')
 .设置积极按钮("确定",function()
 文件下载("http://music.163.com/song/media/outer/url?id="..音乐id..".mp3","Music",音乐名称..".mp3")
 end)
 .设置消极按钮("取消")
 .显示()
 ------分割线------
 else
 加载网页("view-source:"..网页链接)
 end
end

function 退出()
 执行Shell("rm -rf /data/data/"..this.packageName.."/cache/")
 执行Shell("rm -rf /data/user/0/"..this.packageName.."/cache/")
 执行Shell("rm -rf /data/data/"..this.packageName.."/files/data/")
 执行Shell("rm -rf /data/user/0/"..this.packageName.."/files/data/")
 执行Shell("rm -rf "..NEICUN.."VideoCache")
 执行Shell("rm -rf "..NEICUN.."QQBrowser/视频/")
 执行Shell("rm -rf "..NEICUN.."Android/data/"..BAO.."/files/VideoCache/")
 复制文件(FILES.."lua/",TXCGB.."backups/lua/")
 复制文件(FILES.."htm/",TXCGB.."backups/htm/")
 复制文件(FILES.."tools/",TXCGB.."backups/tools/")
 清除通知栏()
 退出页面()
end

function 选择文件打开()
 pop=PopupMenu(activity,popmenu_position)
 menu=pop.Menu
 menu.add("下载").onMenuItemClick=function(a)
 打开文件(TXCGB.."download/")
 end
 menu.add("相册").onMenuItemClick=function(a)
 打开文件(NEICUN.."DCIM/Camera/")
 end
 menu.add("图片").onMenuItemClick=function(a)
 打开文件(NEICUN.."pictures/")
 end
 menu.add("音乐").onMenuItemClick=function(a)
 打开文件(NEICUN.."music/")
 end
 menu.add("我的文档").onMenuItemClick=function(a)
 打开文件(NEICUN.."documents/")
 end
 menu.add("QQ下载").onMenuItemClick=function(a)
 打开文件(NEICUN.."Tencent/QQfile_recv/")
 end
 menu.add("TIM下载").onMenuItemClick=function(a)
 打开文件(NEICUN.."Tencent/TIMfile_recv/")
 end
 menu.add("微信下载").onMenuItemClick=function(a)
 打开文件(NEICUN.."Tencent/MicroMsg/Download/")
 end
 menu.add("系统数据").onMenuItemClick=function(a)
 zdy_layout={
 LinearLayout;
 orientation="vertical";--重力属性
 --Focusable=true,--可聚焦
 --FocusableInTouchMode=true,--可聚焦在触摸模式下，可变色
 id="zdy_father_layout",
 {
 EditText;--编辑框控件
 id="edit",
 layout_marginTop='15dp';--布局顶距
 layout_width="82%w";--编辑框宽度
 layout_gravity="center";--重力属性
 inputType="textPassword";--密码格式
 Hint='******';--设置编辑框为空时的提示文字
 };
 };
 AlertDialog.Builder(this)
 .setView(loadlayout(zdy_layout))--设置布局
 .setCancelable(false)--点击外围可取消
 .setTitle("请输入密码:")--设置标题
 .setPositiveButton("确认",function(v)--设置积极按钮
 if (edit.text=="0")then
 打开文件(FILES)
 else
 print("密码错误")
 end
 end)
 .setNegativeButton("取消",function()--设置消极按钮
 end)
 .show()
 end
 menu.add("上次保存").onMenuItemClick=function(a)
 edit.text=读取文件(编辑文件网页)
 end
 menu.add("保存屏幕").onMenuItemClick=function(a)
 写入文件(编辑文件网页,edit.text)
 end
 pop.show()
end

function 查看代码(文件名,密钥)
 local aaa=读取文件(FILES.."tools/"..文件名..".txt")
 local bbb=解密(aaa,密钥)
 function 加密代码()
 对话框()
 .设置消息(aaa)
 .设置积极按钮("复制加密代码",function()
 复制文本(aaa)
 end)
 .设置消极按钮("显示解密代码",function()
 解密代码()
 end)
 .显示()
 end
 function 解密代码()
 对话框()
 .设置消息(bbb)
 .设置积极按钮("复制解密代码",function()
 复制文本(aaa)
 end)
 .设置消极按钮("显示加密代码",function()
 加密代码()
 end)
 .显示()
 end
 加密代码()
end

function 收藏夹启动事件()
--可供修改的设置↓
--收藏夹数据存储地址(可换为外部存储)
fav_ads=tdata.."/FavoritesData.txt" --文件名
--返回上级目录的项目的内容
fav_lastFolderItem="..."
--界面标题的颜色(默认蓝色)
fav_titleColor=0xFF8BC8FF
--文件夹图标
fav_folderIcon="drawable/folder1.png"
--收藏的图标
fav_favIcon="drawable/book1.png"
--文件夹栏的字体颜色(默认黄色)
fav_folderTextColor=0xFF800000
--收藏栏的字体颜色(默认灰色)
fav_favTextColor=0x8F000000
--非标题的字体大小
fav_textSize="18sp"
--对话框按钮颜色(默认黑色)
fav_btnColor=0xFF000000


--MyQQ=2867036639


--主代码↓

--序列化
function slz(obj) 
 local lua = "" 
 local t = type(obj) 
 if t == "number" then 
 lua = lua .. obj 
 elseif t == "boolean" then 
 lua = lua .. tostring(obj) 
 elseif t == "string" then 
 lua = lua .. string.format("%q", obj) 
 elseif t == "table" or t=="function" then 
 lua = lua .. "{\n" 
 for k, v in pairs(obj) do 
 lua = lua .. "[" .. slz(k) .. "]=" .. slz(v) .. ",\n" 
 end 
 local metatable = getmetatable(obj) 
 if metatable ~= nil and type(metatable.__index) == "table" then 
 for k, v in pairs(metatable.__index) do 
 lua = lua .. "[" .. slz(k) .. "]=" .. slz(v) .. ",\n" 
 end 
 end 
 lua = lua .. "}" 
 elseif t == "nil" then 
 return nil 
 else 
 error("can not serialize a " .. t .. " type.") 
 end 
 return lua 
end 

--反序列化
function rslz(lua) 
 local t = type(lua) 
 if t == "nil" or lua == "" then 
 return {}
 elseif t == "number" or t == "string" or t == "boolean" then 
 lua = tostring(lua) 
 else 
 error("can not unserialize a " .. t .. " type.") 
 end 
 lua = "return " .. lua 
 local func = loadstring(lua) 
 if func == nil then 
 return nil 
 end 
 return func() 
end

--读取文件
function readData(fromAddress)
 import "java.io.File"
 File(fromAddress).createNewFile()
 local strData=io.open(fromAddress):read("*a")
 local data=rslz(strData)
 return data
end

--储存文件
function saveData(data,toAddress)
 local strData=slz(data)
 file=io.open(toAddress,"w+")
 io.output(file)
 io.write(strData)
 io.flush()
 io.close(file)
end

--读取收藏文件
function readFav()
 favList=readData(fav_ads) 
end

--储存收藏文件
function saveFav()
 saveData(favList,fav_ads)
end

--判定项目是否为文件夹
function isFavFolder(isFolderList)
 if isFolderList["url"]==nil then
 return true
 else
 return false
 end
end

--列表排序，上移
function moveUpItem(movelist,b)
 local upItem=movelist[b]
 table.remove(movelist,b)
 table.insert(movelist,b-1,upItem) 
end

--列表排序，下移
function moveDownItem(movelist,b)
 local downItem=movelist[b]
 table.remove(movelist,b)
 table.insert(movelist,b+1,downItem)
end

--根据索引返回表
function selectList(indexTable)
 local newList=favList
 for i=1,#indexTable do
 newList=newList[indexTable[i]]
 if type(newList)~="table" then
 break
 end
 end
 return newList
end

--索引数组关系比较
function isSameIndexs(indexs1,indexs2,num)
 if #indexs1==#indexs2 then
 local s=true
 for i=1,#indexs1 do
 s=s and (indexs1[i]==indexs2[i])
 if s==false then
 break
 end
 end
 return s
 elseif #indexs1<=#indexs2-1 then
 local t=true
 for i=1,#indexs1 do
 t=t and (indexs1[i]==indexs2[i])
 if t==false then
 break
 end
 end 
 if num>indexs2[#indexs1+1] then
 t=false
 end
 if t==true then
 return "debug"
 else return false
 end
 else 
 return false
 end
end

--拷贝数组
function cpyIndexs(index_a)
 local index_b={}
 for i=1,#index_a do
 table.insert(index_b,index_a[i])
 end
 return index_b
end

--配置图标和文字颜色
function chooseFavIcon(csiList,n)
 local icon=""
 if isFavFolder(csiList[n])==false then 
 icon=fav_favIcon
 else
 icon=fav_folderIcon
 end
 return icon
end
function chooseFavColor(cscList,n)
 local clr=""
 if isFavFolder(cscList[n])==false then 
 clr=fav_favTextColor
 else
 clr=fav_folderTextColor
 end
 return clr
end

--设置对话框样式
function setDlBtnColor(dl) 
 dl.getButton(dl.BUTTON_POSITIVE).setTextColor(fav_btnColor)
 dl.getButton(dl.BUTTON_NEGATIVE).setTextColor(fav_btnColor)
 dl.getButton(dl.BUTTON_NEUTRAL).setTextColor(fav_btnColor)
end

--展示收藏夹
function showFav(favIndexs)
 import "android.widget.LinearLayout"
 import "android.widget.TextView"
 import "android.widget.ListView"
 import "android.app.AlertDialog"
 readFav()
 local listIndexs=favIndexs
 if listIndexs==nil then
 listIndexs={}
 end
 local nowList=selectList(listIndexs)
 fav_lv=ListView(activity).setFastScrollEnabled(true)
 space1=TextView(activity)
 fav_title=TextView(activity).setText("收藏夹").setTextSize(30).setTextColor(fav_titleColor).setGravity(1)
 fav_path=TextView(activity).setGravity(1)
 FavLayout=LinearLayout(activity).setOrientation(1).addView(space1).addView(fav_title).addView(fav_path).addView(fav_lv)
 fav_dl=AlertDialog.Builder(activity)
 .setView(FavLayout)
 --.setPositiveButton("取消",nil)
 .setNegativeButton("添加收藏",function()
 addFav(listIndexs)
 end)
 .setNeutralButton("新建文件夹",function()
 createFavFolder(listIndexs)
 end)
 .show()
 setDlBtnColor(fav_dl)
 --获取文件夹路径
 function getFavPath(pathIndexs)
 local path=""
 if #pathIndexs~=0 then
 local pathNowIndex={}
 for i=1,#pathIndexs do
 table.insert(pathNowIndex,pathIndexs[i])
 path=path.."/"..selectList(pathNowIndex)["title"]
 end
 end
 return path
 end
 --项目布局
 favItem={
 LinearLayout,
 layout_width="match_parent",
 orientation="horizontal",
 paddingLeft="12dp",
 paddingRight="15dp",
 paddingTop="10dp",
 paddingBottom="5dp",
 {
 ImageView,
 id="fav_img",
 adjustViewBounds="true",
 maxHeight="30dp",
 maxWidth="30dp",
 layout_width="wrap_content",
 layout_height="match_parent",
 layout_marginBottom="5dp",
 },
 {
 TextView,
 id="fav_text",
 textSize=fav_textSize,
 layout_marginLeft="10dp",
 layout_width="match_parent",
 layout_height="match_parent",
 },
 }
 --设置适配器
 function setFavItem(itemIndexs)
 readFav()
 fav_path.text=getFavPath(itemIndexs)
 local dataList=selectList(itemIndexs)
 local itemList={}
 for i=1,#dataList do
 table.insert(itemList,{
 fav_text={
 text=dataList[i]["title"],
 textColor=chooseFavColor(dataList,i),
 }, 
 fav_img={
 src=chooseFavIcon(dataList,i),
 },
 })
 end
 if #itemIndexs~=0 then
 table.insert(itemList,1,{
 fav_text={
 text=fav_lastFolderItem,
 textColor=fav_folderTextColor,
 }, 
 fav_img={
 src=fav_folderIcon,
 },
 })
 end
 fav_adp=LuaAdapter(activity,itemList,favItem)
 fav_lv.Adapter=fav_adp
 end
 --显示当前列表
 setFavItem(listIndexs)
 --列表点击事件
 fav_lv.onItemClick=function(l,v,p,s)
 local content=tostring(v.Tag.fav_text.text)
 --修正b
 local b=p+1
 if #listIndexs~=0 then
 b=p
 end
 --返回上级目录
 if content==fav_lastFolderItem then
 local indexNum=#listIndexs
 table.remove(listIndexs,indexNum)
 nowList=selectList(listIndexs)
 setFavItem(listIndexs)
 --进入子目录
 elseif isFavFolder(nowList[b])==true then
 local indexNum=#listIndexs
 listIndexs[indexNum+1]=b
 nowList=nowList[b]
 setFavItem(listIndexs)
 --直接加载网页
 elseif isFavFolder(nowList[b])==false then
 加载网页(nowList[b]["url"])
 fav_dl.hide()
 end
 end
 --列表长按事件
 fav_lv.onItemLongClick=function(l,v,p,s)
 local content=tostring(v.Tag.fav_text.text)
 local b=p+1
 if #listIndexs~=0 then
 b=p
 end
 if content~=fav_lastFolderItem then
 favPopWin(listIndexs,b)
 end
 return true
 end
end

--收藏编辑框布局
function editFavLayout(favTitle,favUrl)
 EditFavLayout={
 LinearLayout,
 orientation="1",
 Focusable=true,
 FocusableInTouchMode=true,
 {
 EditText,
 id="ed_fav1",
 text=favTitle,
 layout_marginTop="5dp",
 layout_width="80%w",
 layout_gravity="center",
 },
 {
 EditText,
 id="ed_fav2",
 text=favUrl,
 layout_margiTop="5dp",
 layout_width="80%w",
 layout_gravity="center",
 },
 }
end

--文件夹编辑框布局
function editFavFolderLayout(folderName)
 EditFavFolderLayout={
 LinearLayout,
 orientation="1",
 Focusable=true,
 FocusableInTouchMode=true,
 {
 EditText,
 id="favFolder1",
 text=folderName,
 hint="FolderName",
 layout_marginTop="5dp",
 layout_width="80%w",
 layout_gravity="center",
 },
 }
end

--显示收藏编辑框
function showEditFav(editIndexs,b)
 editList=selectList(editIndexs)
 --收藏编辑
 if isFavFolder(editList[b])==false then
 local favTitle=editList[b]["title"]
 local favUrl=editList[b]["url"]
 editFavLayout(favTitle,favUrl)
 ed_fav_dl=AlertDialog.Builder(activity)
 .setTitle("编辑收藏")
 .setView(loadlayout(EditFavLayout))
 .setPositiveButton("确认",DialogInterface.OnClickListener{
 onClick=function()
 if (ed_fav1.text=="" or ed_fav2.text=="") then 
 print("请填写完整")
 else
 editList[b]["title"]=ed_fav1.text
 editList[b]["url"]=ed_fav2.text
 saveFav()
 print("修改成功")
 ed_fav_dl.dismiss()
 setFavItem(editIndexs)
 end
 end})
 .setNegativeButton("取消",DialogInterface.OnClickListener{
 onClick=function() 
 end})
 .setNeutralButton("删除",DialogInterface.OnClickListener{
 onClick=function()
 local ddl=AlertDialog.Builder(activity)
 .setMessage("确定要删除吗？")
 .setPositiveButton("确定",function()
 table.remove(editList,b)
 saveFav()
 print("删除成功")
 ed_fav_dl.dismiss()
 setFavItem(editIndexs)
 end)
 --.setNegativeButton("取消",nil)
 .create()
 .show()
 setDlBtnColor(ddl)
 end})
 .create()
 ed_fav_dl.show()
 setDlBtnColor(ed_fav_dl)
 else
 --文件夹编辑
 local folderName=editList[b]["title"]
 editFavFolderLayout(folderName)
 ed_favFolder_dl=AlertDialog.Builder(activity)
 .setTitle("修改文件夹")
 .setView(loadlayout(EditFavFolderLayout))
 .setPositiveButton("保存",DialogInterface.OnClickListener{
 onClick=function()
 if (favFolder1.text=="") then
 print("请填写完整")
 else
 editList[b]["title"]=favFolder1.text
 saveFav()
 print("修改成功")
 setFavItem(editIndexs)
 end
 end})
 .setNegativeButton("取消",DialogInterface.OnClickListener{
 onClick=function()
 end})
 .setNeutralButton("删除",DialogInterface.OnClickListener{
 onClick=function()
 local ddl=AlertDialog.Builder(activity)
 .setMessage("确定要删除吗？")
 .setPositiveButton("确定",function()
 table.remove(editList,b)
 saveFav()
 print("删除成功")
 setFavItem(editIndexs)
 end)
 .setNegativeButton("取消",nil)
 .create()
 .show()
 setDlBtnColor(ddl)
 end})
 .create()
 ed_favFolder_dl.show()
 setDlBtnColor(ed_favFolder_dl)
 end
end

--新建文件夹
function createFavFolder(createIndexs)
 local folderName=""
 editFavFolderLayout(folderName)
 new_favFolder_dl=AlertDialog.Builder(activity)
 .setTitle("新建文件夹")
 .setView(loadlayout(EditFavFolderLayout))
 .setPositiveButton("保存",DialogInterface.OnClickListener{
 onClick=function()
 if (favFolder1.text=="") then
 print("请填写完整")
 new_favFolder_dl.dismiss()
 showFav(createIndexs)
 else
 local newFolder={}
 newFolder["title"]=favFolder1.text
 table.insert(selectList(createIndexs),1,newFolder)
 saveFav()
 print("创建成功")
 new_favFolder_dl.dismiss()
 showFav(createIndexs)
 end
 end})
 .setNegativeButton("取消",DialogInterface.OnClickListener{
 onClick=function()
 new_favFolder_dl.dismiss()
 showFav(createIndexs) 
 end})
 .create()
 new_favFolder_dl.show()
 setDlBtnColor(new_favFolder_dl)
end

--长按弹窗
function favPopWin(popIndexs,popNum)
 local hod=popNum
 local popList=selectList(popIndexs)
 local win1="向上移动"
 local win2="编辑"
 local win3="剪切"
 local win4="向下移动"
 local wina={win1,win3,win2,win4}
 local winb={win3,win2,win4}
 local winc={win1,win2,win3}
 local wind={win3,win2}
 if #popList==1 then
 win=wind
 elseif hod==1 then
 win=winb
 elseif hod==#popList then
 win=winc
 else
 win=wina
 end
 local PopWinLayout={
 LinearLayout,
 orientation="vertical",
 {ListView,
 id="pop_win_lv",
 items=win,
 layout_width="fill_parent",
 layout_height="wrap_content",},
 }
 local pop_win_dl=AlertDialog.Builder(activity)
 .setView(loadlayout(PopWinLayout))
 .create()
 pop_win_dl.show()
 pop_win_lv.onItemClick=function(l,v,c,b)
 if win[b]==win1 then
 moveUpItem(popList,hod)
 saveFav()
 setFavItem(popIndexs)
 elseif win[b]==win2 then
 showEditFav(popIndexs,hod)
 elseif win[b]==win3 then
 moveFavToFolder(popIndexs,hod)
 elseif win[b]==win4 then
 moveDownItem(popList,hod)
 saveFav()
 setFavItem(popIndexs)
 end
 pop_win_dl.dismiss()
 end
end

--移动至文件夹
function moveFavToFolder(moveIndexs,moveNum)
 import "android.widget.LinearLayout"
 import "android.widget.TextView"
 import "android.widget.ListView"
 import "android.app.AlertDialog"
 readFav()
 local listIndexs2=cpyIndexs(moveIndexs)
 local nowList2=selectList(listIndexs2)
 fav2_lv=ListView(activity).setFastScrollEnabled(true)
 space2=TextView(activity)
 fav2_title=TextView(activity).setText("选择目录").setTextSize(30).setTextColor(fav_titleColor).setGravity(1)
 fav2_path=TextView(activity).setGravity(1)
 Fav2Layout=LinearLayout(activity).setOrientation(1).addView(space2).addView(fav2_title).addView(fav2_path).addView(fav2_lv)
 fav2_dl=AlertDialog.Builder(activity)
 .setView(Fav2Layout)
 .setPositiveButton("选择",function()
 if isSameIndexs(moveIndexs,listIndexs2,moveNum)=="debug" then
 local nlistIndexs2=cpyIndexs(listIndexs2)
 nlistIndexs2[#moveIndexs+1]=listIndexs2[#moveIndexs+1]-1
 local cpyItem=selectList(moveIndexs)[moveNum]
 table.remove(selectList(moveIndexs),moveNum)
 table.insert(selectList(nlistIndexs2),1,cpyItem)
 saveFav()
 fav_dl.dismiss()
 showFav(nlistIndexs2)
 else
 local cpyItem=selectList(moveIndexs)[moveNum]
 table.remove(selectList(moveIndexs),moveNum)
 table.insert(selectList(listIndexs2),1,cpyItem)
 saveFav()
 fav_dl.dismiss()
 showFav(listIndexs2)
 end
 print("转移成功")
 end)
 .setNegativeButton("取消",nil)
 .show()
 setDlBtnColor(fav2_dl)
 function setFavItem2(itemIndexs)
 readFav()
 fav2_path.text=getFavPath(itemIndexs)
 local dataList=selectList(itemIndexs)
 local itemList={}
 for i=1,#dataList do
 table.insert(itemList,{
 fav_text={
 text=dataList[i]["title"],
 textColor=chooseFavColor(dataList,i),
 }, 
 fav_img={
 src=chooseFavIcon(dataList,i),
 },
 })
 end
 if #itemIndexs~=0 then
 table.insert(itemList,1,{
 fav_text={
 text=fav_lastFolderItem,
 textColor=fav_folderTextColor,
 }, 
 fav_img={
 src=fav_folderIcon,
 },
 })
 end
 fav2_adp=LuaAdapter(activity,itemList,favItem)
 fav2_lv.Adapter=fav2_adp
 end
 setFavItem2(listIndexs2)
 --列表点击事件
 fav2_lv.onItemClick=function(l,v,p,s)
 local content=tostring(v.Tag.fav_text.Text)
 local b=p+1
 if #listIndexs2~=0 then
 b=p
 end
 if content==fav_lastFolderItem then
 local indexNum=#listIndexs2
 table.remove(listIndexs2,indexNum)
 nowList2=selectList(listIndexs2)
 setFavItem2(listIndexs2)
 elseif isFavFolder(nowList2[b])==true then
 local indexNum=#listIndexs2
 if isSameIndexs(moveIndexs,listIndexs2,moveNum)==true and moveNum==b then 
 print("不可以选定自身目录")
 else
 listIndexs2[indexNum+1]=b
 nowList2=nowList2[b]
 setFavItem2(listIndexs2)
 end
 elseif isFavFolder(nowList2[b])==false then
 print("无法打开该目录")
 end
 end
end

--添加收藏
function addFav(adIndexs)
 readFav()
 local addIndexs=adIndexs
 if addIndexs==nil then
 addIndexs={}
 end 
 local addList=selectList(addIndexs)
 function haveSameFav(samelist)
 local s=false
 for k,v in ipairs(samelist) do
 if isFavFolder(v)==false then
 s=s or v["url"]==webView.getUrl()
 else
 s=s or haveSameFav(v)
 end
 if s==true then
 break
 end
 end
 return s
 end
 if haveSameFav(favList)==true then 
 print("该网页已在收藏夹")
 else 
 local favTitle=webView.getTitle()
 local favUrl=webView.getUrl()
 editFavLayout(favTitle,favUrl)
 add_fav_dl=AlertDialog.Builder(activity)
 .setTitle("添加收藏")
 .setView(loadlayout(EditFavLayout))
 .setPositiveButton("添加",DialogInterface.OnClickListener{
 onClick=function()
 if (ed_fav1.text=="" or ed_fav2.text=="") then
 print("请填写完整")
 else
 table.insert(addList,1,{})
 addList[1]["title"]=ed_fav1.text
 addList[1]["url"]=ed_fav2.text
 saveFav()
 print("收藏成功")
 showFav(adIndexs)
 end
 end})
 .setNegativeButton("取消",DialogInterface.OnClickListener{
 onClick=function() end})
 .create()
 add_fav_dl.show()
 setDlBtnColor(add_fav_dl)
 end
 end
end

function 加入收藏夹()
 addDataDialog("Collection","加入收藏",webView.getTitle(),webView.getUrl())
end

function 查看收藏夹()
 showFav()
 showDataDialog("Collection","收藏")
end

